{"id":542,"date":"2020-04-11T15:11:48","date_gmt":"2020-04-11T15:11:48","guid":{"rendered":"http:\/\/learnlearn.uk\/alevelcs\/?page_id=542"},"modified":"2020-09-16T00:10:19","modified_gmt":"2020-09-16T00:10:19","slug":"development-life-cycles","status":"publish","type":"page","link":"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/","title":{"rendered":"Development Life Cycles"},"content":{"rendered":"<div class=\"responsive-tabs\">\n<h2 class=\"tabtitle\">Introduction<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Software Development Life Cycles<\/h3>\n<p>Software development life cycles are used to plan and manage the software development process, from the beginning through to the end of the process. Which model you may choose to use depends on a number of factors, including:<\/p>\n<ul>\n<li>The time-frame for development<\/li>\n<li>The size of the project<\/li>\n<li>The budget (also whether the budget is tightly fixed)<\/li>\n<li>The type of software being developed (e.g. GUI driven versus database driven)<\/li>\n<li>Whether the design of the final project can be accurately conceived at the Analysis phase.<\/li>\n<li>Whether final product is intended to be static or constantly added to.<\/li>\n<\/ul>\n\n<\/div><h2 class=\"tabtitle\">Waterfall Model<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Waterfall Model (1970 &#8211; )<\/h3>\n<p>Originally designed to cater for building physical engineer projects such as bridges and buildings, the model was adapted for software in the 1970s<\/p>\n<p><a href=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/waterfall-model.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-869\" src=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/waterfall-model.png\" alt=\"\" width=\"756\" height=\"477\" srcset=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/waterfall-model.png 756w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/waterfall-model-300x189.png 300w\" sizes=\"(max-width: 756px) 100vw, 756px\" \/><\/a><\/p>\n<p><strong>Used for:<\/strong><\/p>\n<ul>\n<li>Large projects where the specification\/requirements are unlikely to change<\/li>\n<\/ul>\n<p><strong>Advantages<\/strong><\/p>\n<ul>\n<li>Very easy to see where the project is up to \/ whether it is on track<\/li>\n<li>Easy to manage from the top down &#8211; clear responsibilities<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Disadvantages<\/strong><\/p>\n<ul>\n<li>Not very useful in rapidly changing environments or where the end product is going to be constantly changing<\/li>\n<li>Slow to implement &#8211; often 1 year plus<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n\n<\/div><h2 class=\"tabtitle\">Iterative Development<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Iterative Development (Late 1970s + )<\/h3>\n<p>The iterative development model is an adaption of the waterfall model where initially only a subset of the full solution is initially created. Once this subset has been released the next iteration begins, each time round adding more components. The process doesn&#8217;t necessarily end.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_870\" style=\"width: 760px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/Iterative-development-model-cie-a-level-computer-science-9618.png\"><img aria-describedby=\"caption-attachment-870\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-870\" src=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/Iterative-development-model-cie-a-level-computer-science-9618-1024x553.png\" alt=\"\" width=\"750\" height=\"405\" srcset=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/Iterative-development-model-cie-a-level-computer-science-9618-1024x553.png 1024w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/Iterative-development-model-cie-a-level-computer-science-9618-300x162.png 300w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/Iterative-development-model-cie-a-level-computer-science-9618-768x415.png 768w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/Iterative-development-model-cie-a-level-computer-science-9618.png 1258w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/a><p id=\"caption-attachment-870\" class=\"wp-caption-text\">Source: Wikipedia<\/p><\/div>\n<p>Useful for<\/p>\n<p>Rapidly advancing technology, were the end product might not initially be known.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Advantages<\/strong><\/p>\n<ul>\n<li>Constant testing and user involvement means that the product should closely match user requirements<\/li>\n<li>Extra features can be added depending on the time remaining.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Disadvantages<\/strong><\/p>\n<ul>\n<li>Difficult to manage and to known how long before the final product will be ready.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Iterative_design\">Marshmallow challenge Adv of iterative vs waterfall anecdote<\/a><\/p>\n<p>&nbsp;<\/p>\n\n<\/div><h2 class=\"tabtitle\">RAD<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Rapid Application Development ( 1990 &#8211; )<\/h3>\n<p>Note: CIE haven&#8217;t specified which version of the RAD model they are using so their specific model may differ from the one below.<\/p>\n<p>The RAD process was a reaction to the limitations of traditional waterfall model development. The process is heavily prototype driven, with constant user and customer interaction required throughout the process.<\/p>\n<p><a href=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/RAd-Model-Diagram-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-904\" src=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/RAd-Model-Diagram-1.jpg\" alt=\"\" width=\"900\" height=\"400\" srcset=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/RAd-Model-Diagram-1.jpg 900w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/RAd-Model-Diagram-1-300x133.jpg 300w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/RAd-Model-Diagram-1-768x341.jpg 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/codebots.com\/app-development\/what-is-rapid-application-development-rad\">RAD vs Waterfall<\/a><\/p>\n<p><a href=\"https:\/\/www.lucidchart.com\/blog\/rapid-application-development-methodology\">Introduction to RAD<\/a><\/p>\n<p><a href=\"https:\/\/blog.capterra.com\/what-is-rapid-application-development\/#:~:text=Rapid%20Application%20Development%20(RAD)%20is,strict%20planning%20and%20requirements%20recording.\">Introduction to RAD 2\u00a0<\/a><\/p>\n<p><strong>Advantages<\/strong><\/p>\n<ul>\n<li>Great for small teams or where the system has a highly modular design where each component is independent.<\/li>\n<li>Particularly useful for GUI driven applications where constant user feedback is desirable.<\/li>\n<li>Quick to develop and implement<\/li>\n<li>Good involvement from the customer \/ user all through the process<\/li>\n<li>Highly flexible &#8211; great for new technology or where the the final product is unknown.<\/li>\n<\/ul>\n<p><strong>Disadvantages<\/strong><\/p>\n<ul>\n<li>A lack of control means it&#8217;s difficult to use with large projects\/organisations.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n\n<\/div><h2 class=\"tabtitle\">Resources<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Resources<\/h3>\n<p><a href=\"https:\/\/docs.google.com\/presentation\/d\/1jhZ4k4Haqm6ppvO3qg5ScRoc8qwEApt1dvH_oFuKBKo\/edit?usp=sharing\">Presentation<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Software Development Life Cycles Software development life cycles are used to plan and manage the software development process, from the beginning through to the end of the process. Which model you may choose to use depends on a number of factors, including: The time-frame for development The size of the project The budget (also whether&hellip;&nbsp;<a href=\"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Development Life Cycles<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":70,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Development Life Cycles - A Level Computer Science<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Development Life Cycles - A Level Computer Science\" \/>\n<meta property=\"og:description\" content=\"Software Development Life Cycles Software development life cycles are used to plan and manage the software development process, from the beginning through to the end of the process. Which model you may choose to use depends on a number of factors, including: The time-frame for development The size of the project The budget (also whether&hellip;&nbsp;Read More &raquo;Development Life Cycles\" \/>\n<meta property=\"og:url\" content=\"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/\" \/>\n<meta property=\"og:site_name\" content=\"A Level Computer Science\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-16T00:10:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/waterfall-model.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/\",\"name\":\"Development Life Cycles - A Level Computer Science\",\"isPartOf\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#website\"},\"datePublished\":\"2020-04-11T15:11:48+00:00\",\"dateModified\":\"2020-09-16T00:10:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"A Level Computer Science Home\",\"item\":\"https:\/\/learnlearn.uk\/alevelcs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Development Life Cycles\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#website\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/\",\"name\":\"A Level Computer Science\",\"description\":\"CIE Specification\",\"publisher\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/learnlearn.uk\/alevelcs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#organization\",\"name\":\"A Level Computer Science\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png\",\"contentUrl\":\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png\",\"width\":710,\"height\":98,\"caption\":\"A Level Computer Science\"},\"image\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Development Life Cycles - A Level Computer Science","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/","og_locale":"en_GB","og_type":"article","og_title":"Development Life Cycles - A Level Computer Science","og_description":"Software Development Life Cycles Software development life cycles are used to plan and manage the software development process, from the beginning through to the end of the process. Which model you may choose to use depends on a number of factors, including: The time-frame for development The size of the project The budget (also whether&hellip;&nbsp;Read More &raquo;Development Life Cycles","og_url":"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/","og_site_name":"A Level Computer Science","article_modified_time":"2020-09-16T00:10:19+00:00","og_image":[{"url":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/waterfall-model.png"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/","url":"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/","name":"Development Life Cycles - A Level Computer Science","isPartOf":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#website"},"datePublished":"2020-04-11T15:11:48+00:00","dateModified":"2020-09-16T00:10:19+00:00","breadcrumb":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/learnlearn.uk\/alevelcs\/development-life-cycles\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"A Level Computer Science Home","item":"https:\/\/learnlearn.uk\/alevelcs\/"},{"@type":"ListItem","position":2,"name":"Development Life Cycles"}]},{"@type":"WebSite","@id":"https:\/\/learnlearn.uk\/alevelcs\/#website","url":"https:\/\/learnlearn.uk\/alevelcs\/","name":"A Level Computer Science","description":"CIE Specification","publisher":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/learnlearn.uk\/alevelcs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/learnlearn.uk\/alevelcs\/#organization","name":"A Level Computer Science","url":"https:\/\/learnlearn.uk\/alevelcs\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/","url":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png","contentUrl":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png","width":710,"height":98,"caption":"A Level Computer Science"},"image":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/"}}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"learnlearnadmin","author_link":"https:\/\/learnlearn.uk\/alevelcs\/author\/learnlearnadmin\/"},"rttpg_comment":0,"rttpg_category":null,"rttpg_excerpt":"Software Development Life Cycles Software development life cycles are used to plan and manage the software development process, from the beginning through to the end of the process. Which model you may choose to use depends on a number of factors, including: The time-frame for development The size of the project The budget (also whether&hellip;&nbsp;Read&hellip;","_links":{"self":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/542"}],"collection":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/comments?post=542"}],"version-history":[{"count":8,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/542\/revisions"}],"predecessor-version":[{"id":905,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/542\/revisions\/905"}],"wp:attachment":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/media?parent=542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}