{"id":37539,"date":"2016-09-20T00:38:00","date_gmt":"2016-09-20T05:38:00","guid":{"rendered":"https:\/\/kenscourses.com\/tc1019fall2016\/?guid=c947e1b0a5884ba62395194b18558717"},"modified":"2016-09-20T00:41:45","modified_gmt":"2016-09-20T05:41:45","slug":"software-requirements-3","status":"publish","type":"post","link":"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/software-requirements-3\/","title":{"rendered":"Software Requirements"},"content":{"rendered":"In order to define what a piece of software can do, you have to define clearly the functions and requirements that it must contain for the customer to be satisfied and your team to know what to do and how.<br \/><br \/>The goal is to arrive at a Software Requirements Specification (SRS) Document, a spec sheet that details what the software can do.<br \/><table align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"tr-caption-container\" style=\"margin-left: auto; margin-right: auto; text-align: center;\"><tbody><tr><td style=\"text-align: center;\"><a href=\"http:\/\/3.bp.blogspot.com\/-pf5CC5OuWAA\/V-DG3fwDEfI\/AAAAAAAAA7k\/NePcQ-pCRP0GkB0h0NGOARcrg0sUSv5rwCK4B\/s1600\/4325067780_c251777417_z.jpg\" imageanchor=\"1\" style=\"margin-left: auto; margin-right: auto;\"><img border=\"0\" height=\"292\" src=\"https:\/\/3.bp.blogspot.com\/-pf5CC5OuWAA\/V-DG3fwDEfI\/AAAAAAAAA7k\/NePcQ-pCRP0GkB0h0NGOARcrg0sUSv5rwCK4B\/s400\/4325067780_c251777417_z.jpg\" width=\"400\" \/><\/a><\/td><\/tr><tr><td class=\"tr-caption\" style=\"text-align: center;\">Photo by Nathanael Coyne on <a href=\"https:\/\/www.flickr.com\/photos\/purecaffeine\/4325067780\/in\/photolist-7Ac6Y9-gV5Znf-ofeKdx-oyCs9B-dgZcgm-gJVVBX-7ZhK5P-iPEXcJ-gse97q-eKzRNz-pZQUnr-o4TPzw-adgvMF-H7qgU8-5Re5b8-bkJkPp-bEKWz2-qXfSwc-mFsVhi-wCHxqJ-kQLgZx-pzZj9A-fheCaZ-beXo6g-92WqGv-J6XXcn-p514SN-bb7FMR-b7dLiz-bprjSF-7Zgydh-5UCiYs-7ZkWpL-6UBxTK-qD3arF-dYTXDT-q9oYFz-b814nZ-bmKfT7-8nKg2m-eVyXiU-br1dQF-9kfy3h-7Au9Ze-ikR4rf-byxiLK-bojWGP-7AdKZX-ec4V5z-bYABno\/\">Flickr<\/a>. CC BY-NC-ND<\/td><\/tr><\/tbody><\/table>Requirement Engineering is a discipline that aims towards understanding client's requirements and translating them into technical and detailed specifications for the developers, it consists of four basic steps:<br \/><br \/><div style=\"clear: left; float: left; margin-bottom: 1em; margin-right: 1em;\"><\/div><ol><li><u>Feasibility Study<\/u>: Knowing if what the client wants is possible, taking into account technical, economical, and organizational aspects. This stage outputs the feasibility study report.<\/li><li><u>Requirement Gathering<\/u>: Getting the expectations of what the software should do from the client and end-users. Requirements must be clear, correct, consistent, coherent, modifiable, verifiable, unambiguous, traceable, and from a credible source.<\/li><li><u>Software Requirement Specification<\/u>: After collecting information from all the people involved, an engineer creates the SRS, where the client's specifications are expressed in natural language, and all the technical aspects of the project are detailed in order for it to be useful for the development team, including pseudo code and GUI sketches.<\/li><li><u>Software Requirement Validation<\/u>: Between the developer and client, the specifications are reviewed to verify that they are correct, within scope, and achievable.<\/li><li><br \/><\/li><\/ol><div>REQUIREMENT ELICITATION<\/div><div>It is an organized process to gather requirements for the software, it has four steps.<\/div><div><br \/><\/div><div class=\"separator\" style=\"clear: both; text-align: center;\"><a href=\"https:\/\/www.tutorialspoint.com\/software_engineering\/images\/requirement_elicitation_process.png\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"><img alt=\"Requirement elicitation process\" border=\"0\" src=\"https:\/\/www.tutorialspoint.com\/software_engineering\/images\/requirement_elicitation_process.png\" \/><\/a><\/div><div><br \/><\/div><div>First the developer gets the requirements from the client, then they are prioritized and categorized, next they are reviewed with the stakeholders to remove any ambiguity or doubts about the requirements, finally, they are documented correctly for the next phases of development.<\/div><div><br \/><\/div><div>One or more of these methods can be <!--more--> in the elicitation phases, each one with its ups and downs:<\/div><div><ul><li>Interviews<\/li><li>Surveys<\/li><li>Questionnaires<\/li><li>Brainstorming<\/li><li>Prototyping<\/li><li>Observation<\/li><\/ul><div>Hope y'all learned something from this :)<\/div><\/div><div><br \/>Sources:<br \/><br \/><a href=\"http:\/\/www.tutorialspoint.com\/software_engineering\/software_requirements.htm\">Tutorialspoint: Software Requirements<\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>In order to define what a piece of software can do, you have to define clearly the functions and requirements that it must contain for the customer to be satisfied and your team to know what to do and how.The goal is to arrive at a Software Requirements Specification (SRS) Document, a spec sheet that &hellip; <a href=\"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/software-requirements-3\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Software Requirements<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":37540,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,4],"tags":[173,162,276,278,174,279,54,60,25],"class_list":["post-37539","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blogs","category-syndicated","tag-process","tag-development","tag-elicitation","tag-initiation","tag-methodology","tag-requirement","tag-software","tag-software-engineering","tag-tc1019"],"_links":{"self":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/37539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/comments?post=37539"}],"version-history":[{"count":1,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/37539\/revisions"}],"predecessor-version":[{"id":37541,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/37539\/revisions\/37541"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/media\/37540"}],"wp:attachment":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/media?parent=37539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/categories?post=37539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/tags?post=37539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}