{"id":551,"date":"2023-02-28T14:58:36","date_gmt":"2023-02-28T14:58:36","guid":{"rendered":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/?page_id=551"},"modified":"2023-03-02T16:18:31","modified_gmt":"2023-03-02T16:18:31","slug":"analysis","status":"publish","type":"page","link":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/software-design-and-development\/week-5\/analysis\/","title":{"rendered":"Analysis"},"content":{"rendered":"\n<p>The first step in software design is the identification of need. Why is this new piece of software required? What problem does it seek to solve?<\/p>\n\n\n\n<p>The design is then divided into 5 sections:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Purpose<\/li><li>Scope<\/li><li>Functional Requirements<\/li><li>Boundaries<\/li><li>Final details<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Purpose<\/h2>\n\n\n\n<p>Your design plan should explain what the purpose of the software is and what it will be used for.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example<\/h2>\n\n\n\n<p><em>The purpose of this software is to take in any number of pupil first names, surnames, their school year (1-6 integer) and their exam mark (0-100 integer). The software then calculates the grade of each pupil and prints a table showing the names, years and grades order alphabetically by the pupil names.&nbsp;<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Scope<\/h2>\n\n\n\n<p>The next stage is to create a scope document. This should contain a list of all the deliverables that the developer(s) will create but goes beyond just the software itself. The scope document includes such items as the software, user interface designs, documentation, test plans and results, and any evaluation carried out on project conclusion.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example<\/h2>\n\n\n\n<p><em>The deliverables include:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Detailed design of the program structure, indicating top level program, refinements and data flow<\/em><\/li><li><em>Detailed design of the user interface, identifying validated inputs and outputs<\/em><\/li><li><em>Test plan<\/em><\/li><li><em>Working software including comprehensive comments<\/em><\/li><li><em>Results of testing<\/em><\/li><li><em>Evaluation report<\/em><\/li><\/ul>\n\n\n\n<p><em>The timescale for this is 4 hours.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Functional requirements<\/h2>\n\n\n\n<p>Figure out what the system needs in terms of inputs. What outputs it will generate. These could be printed on the screen, written to a file, etc. And finally the processes needed to get from the inputs to the outputs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example<\/h2>\n\n\n\n<p><em>Inputs:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>First name \u2013 string, maximum 100 characters<\/em><\/li><li><em>Surname \u2013 string, maximum 100 characters<\/em><\/li><li><em>Year \u2013 integer, in the range 1 \u2013 6 inclusive<\/em><\/li><li><em>Exam mark \u2013 integer, in the range 0 \u2013 100 inclusive<\/em><\/li><\/ul>\n\n\n\n<p><em>Outputs:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Asking for a First name \u2013 string, maximum 100 characters<\/em><\/li><li><em>Asking for a Surname \u2013 string, maximum 100 characters<\/em><\/li><li><em>Asking for a Year \u2013 integer, in the range 1 \u2013 6 inclusive<\/em><\/li><li><em>Displaying a First name, Surname and Year<\/em><\/li><li><em>Displaying a Grade \u2013 string, one of the values: A, B, C, D, No Award<\/em><\/li><\/ul>\n\n\n\n<p><em>Processes:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Loop until nothing entered<\/em><\/li><li><em>Prompt for pupil details<\/em><\/li><li><em>Validate name<\/em><\/li><li><em>Validate year<\/em><\/li><li><em>Validate exam mark<\/em><\/li><li><em>Calculate grade<\/em><\/li><li><em>Order list of pupils<\/em><\/li><li><em>Print list of pupils<\/em><\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Boundaries<\/h2>\n\n\n\n<p>The limits set on a program. What counts as a valid input? How can you check an output is correct? These are usually used when it comes to test the software.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example<\/h2>\n\n\n\n<p><em>The program will check that any first name or surname is within a range or 1 to 100 characters inclusive. If no first name is entered then the program will stop prompting for a new pupil. The year is within the range 1 to 6 inclusive. The exam mark is within the range 0 to 100 inclusive. The grade will be calculated from the exam mark using the following ranges:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>A: 70 \u2013 100<\/em><\/li><li><em>B: 60 \u2013 69<\/em><\/li><li><em>C: 50 \u2013 59<\/em><\/li><li><em>D: 40 \u2013 49<\/em><\/li><li><em>No Award: 0 \u2013 39<\/em><\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Final details<\/h2>\n\n\n\n<p>The design document should also highlight any assumptions that have been made during the design process. This should consider details such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Software compatibility<\/strong>&nbsp;\u2013 Does this program require additional software? Does it only run on certain operating systems?<\/li><li><strong>Hardware<\/strong>&nbsp;\u2013 What is the minimum hardware specification to run the program? Does it require an input device?<\/li><li><strong>Internet \/ Network connection<\/strong>&nbsp;\u2013 Is this software self-contained or does it require network access?<\/li><li><strong>Training<\/strong>&nbsp;\u2013 Depending on the complexity of the program it might require users to be trained.<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<p class=\"nextlink\"><a href=\"https:\/\/blogs.glowscotland.org.uk\/es\/software\/software-design-and-development\/week-5\/project-analysis\/\" data-type=\"page\" data-id=\"557\">Next: Project &#8211; Analysis<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The first step in software design is the identification of need. Why is this new piece of software required? What problem does it seek to solve? The design is then divided into 5 sections: Purpose Scope Functional Requirements Boundaries Final details Purpose Your design plan should explain what the purpose of the software is and&hellip; <a class=\"more-link\" href=\"https:\/\/blogs.glowscotland.org.uk\/es\/software\/software-design-and-development\/week-5\/analysis\/\">Continue reading <span class=\"screen-reader-text\">Analysis<\/span><\/a><\/p>\n","protected":false},"author":5710,"featured_media":0,"parent":22,"menu_order":5,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-551","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/wp-json\/wp\/v2\/pages\/551","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/wp-json\/wp\/v2\/users\/5710"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/wp-json\/wp\/v2\/comments?post=551"}],"version-history":[{"count":5,"href":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/wp-json\/wp\/v2\/pages\/551\/revisions"}],"predecessor-version":[{"id":659,"href":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/wp-json\/wp\/v2\/pages\/551\/revisions\/659"}],"up":[{"embeddable":true,"href":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/wp-json\/wp\/v2\/pages\/22"}],"wp:attachment":[{"href":"https:\/\/blogs.glowscotland.org.uk\/es\/software\/wp-json\/wp\/v2\/media?parent=551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}