Software Development Models and Methodologies PDF

Document Details

SplendidGyrolite5000

Uploaded by SplendidGyrolite5000

Ladoke Akintola University of Technology

Tags

software development software methodologies software models computer science

Summary

This document discusses various software development models and methodologies, including Waterfall, Agile, V-Model, Incremental, Spiral, and others. It outlines the characteristics, advantages, and disadvantages of each model, targeting an understanding of their applications for different software projects.

Full Transcript

out. The ly in te gr at e d and tested, system testing is carried conforms hl: been successf ul system is u_: en s ure that the developed stem testin g la id ou t in...

out. The ly in te gr at e d and tested, system testing is carried conforms hl: been successf ul system is u_: en s ure that the developed stem testin g la id ou t in th e S RS document.. unirements \ : ftwar SOftW: e produ ct requi/ res much a typica l i ce: Maintenance of Many studies carried itself. o neces sary to develop the prodqct of a typic Ffi M;'\’::'f‘fg?t and indic ate that the relati ve effort of development ;h:n ast confirm this effort is roughly in t_he 40:60 ratios, main tena nce kinds of soRSvare product to jts any one or more of the following three rming Maintenance involves perfo. _ %c‘g' orfec ivities : ting errors that were not disco vered durin g the product development : k. tiv e ma in te na nc e. phase. This is called correc functionalities the im pl em en ta ti on of the system, and enhancing the 0 Improv ing to the cus tom er' s req uir eme nts. This is called perfective of the system according ; j maintenance. be the sof twa re to wor k in a new env ironment. For example, porting may 0 Porting new computer platform or with a new required to get the software to work on a tenance. operating system. This is called adaptive main 33 Software Development Models and Architecture ss of creating Software development models are frameworks that guide the proce software applications. They provide a structured approach to planning, designing, implementing, testing, and deploying software. Types of Software Methodologies include Waterfall, Agile, V-Model, Incremental, Spiral, Rapid Application Development (RAD), Extreme Programming (XP), Scrum, Kanban, and Lean 2 3 Software Development. Characteristics of Software Methodologies 1. lterative or sequential approach 2 &. 3. Customer involvement and feedback 4: Eg\apr:-:acifi C::)dof:umentanon orflegi e 5. Risk management and mitigation 6. Testing anad fat fon and communication 7. Change management and version control Validation Software Methodolo gy Selection Criteria: 1. Proi : 3 3. Zmiffeififl:fi\?fiffi :trzld expectations ‘2{ -{?am Size and experience 5. Technology and infrastructure -. 1'me and budget constraj S 7. Regulatory and compliance requirements 6. Risk tolerance and ma::lms Benefits of Software Methodologies qomene ;. llr::f:ave:dprojz:t management 2. Enhanced t : sed customer satisfaction B €am col i 5. Faster time-to-market 4. Reduced risks and“eart::'r:mn 7. \mproved maintainability and scalabili 8- Better quality softwa ?hall-ngos in Implementing safiwgm Meth, - Cultural and organizational chang 3 es 2 ;ds:(ogles - Resisf nce K to change £ il 3 Lackof trfain ing_and expertise g cient aling budget 6. Integrating mflr@m ocesses i in sc ructure ; Balangyng flexibility and st Pr ns Real-World Applicatio T em companies 1. Software qevglopm 3 Heafigamnem 3 Financial institutions 6 E~oom::: ogrg;' :ftam es 5. Government agenci orms 7. Mobile app development 33.1 Waterfall Model The Waterfall model invo> lves initially developipin, e s 4 ¢ ous type s of test ing. Less ttigi step nt r panithecip%final clieafte appureju whichtheis wate on. with catiéred owedl follrfal byparavari digm. Debugging take s plac e Waterf nder this model, while problem identification occurs during testing. forThesmal l pr‘r::'I M“el.folloWSasma' linear sequence of phases and is best ined requ«remen!s. It produces the final product only after all Je:‘:ts with well-def This model is basically used for small projects. phases are completed. Classical Waterfall Model Key Features 1. Linear, sequential approach 2. Each phase completes before next begins g g: gzzggpozeégs;: g:;?s 4. Predictable timeline and budget ion Advantages 1. Easy to manage and understand 2. Clear timelines and milestones 3.'Suitable for small, well-defined projects 4. Less complex and less risky Disadvantages nge 1 In_flexible to changes (2. High risk if requirements cha cycle g- Qlfficult to incorporate feedback ( 4. Testing occurs late in the 3.3le|ted customer involvement -3.2 Incremental Model i del? Incremental Model develops the software in smaller fleaiive,_ CYERE ap'Ve”ng a working version early and adding fony deero::lch offers more flexibility and lower fisk. lopment cycles take place and these o - cycle: m in incremen software odules. Generally a working 18 bsequent re Jease of the modul S e adds : function to the pre | first module. Ea;hmiilafqmodeh process continues till the complete sys‘em“'; } release. In inc development is a softwareincrements, e mf(ie,:‘:nst;lallerodelmanageable process that breaks d Hence, with each increment by g the projec ' upon the previous one. s: : :(eé;;:':gjea into smaller increments (2. Flexible and adaptable Ite 3.. Iterative development : ! (4. Emphas is on continuous improvemen 5. Each increment has specific goals and deliverables Advantages : 1. Faster time-to-market 2 Redyced risk 3. Increased customer satisfaction 4. Easier maintenance and updates 5. Improved team morale Disadvantages y ok 1. Requires careful planning 2. Difficulty in predicting final product 3. May lead to scope creep 4. Requires continuous testing and integration 333 V-Model The V-Model is a software development process that combines the elements of Waterfall and Verification/Validation models. V-model is the most important model “that is used in the process of software testing. The late Paul Rook introduced it in the 1980s. The V-model is a sequential process in which the next phase begins only after the completion of the present phase. It's characterized by phases 1. Requirements Gathering 2. System viz; Design 3. Architecture 4. ModulelDesign 5. Coding Design 7. Integration Testing 6. Unit Testing 8. System Testing Y Acceptance Text 9. Acc eptance Testing (i g S — l:«;' System Tese ‘:fi% a7 ot Key Features S 1 Testi rs ram v-shapedng occudiag in paral tingdeve reprlelesenwith phas es ent lopm 4... asis 2. Emph Feodh o verifyeri ication and vag eedback loops for it. idation e has specific deliverables 5.3 E -ach phas ‘wamag:stesling and quality assuran 2.. Improved = 5 Ce 2. R Reduced def ; Better requirements tracing 4. Increased w:z;aerr\d rework satisfaction Suitable for complex projects e an ¢ lme-cpnsumlngi 1. More complex an 2. Requires more : 3 pifficult to adapt to changing requirements 4. Higher w':;f’ufoes and Planmng 334 Spiral Model ' riven software develo; The Spiral model is a risk-d r;er;‘;tgofng:s;h é:; combines elements of Waterfall and Iterative models. its diagrg jie a spiral with many loops. The exact number of loops of th spirar: istmiul-nooks *Qration and can vary from project to project. Each loop of the spiral is called a ur;“ ownf It the software lopment deve s. proces es t It provid ng. suppor for Risk Har‘:dli se(: consists of the following phases: S of the Nt modef uced it in 1. Planning Phase e begins S Viz; )esign A Faluation Mase 2sting 1. Objectives Defined: In first phase of the spiral model' we cIan'fy what the..ect project aims to achieve, including functional and non-funcnpnal re«_qunremenls 2. Risk Analysis: In the risk analysis phase, the risks associated with the proj are identified and evaluated. i i phase, the 59flware is developed bas 3. Engineering: In the engineering ted to determine it the requirements gathered in the previous iteration. 4. Evaluation: In the evaluation phase, the Sfofiwafr:'ishev:ahlji?y meets the customer’s requirements and if itis of i q planning phase: 5. Planning: The next iteration of the spiral begins with a new based on the results of the evaluation. Key Features 2. lteralive developmen! I. Risk assessment and mitigation % Flexible 3 nd adaptive -Emphasis on customer feedback - Multiple cycles (spirals) 20 handle large The incremental model also can't j, waterfall model can’t The large projects. projects. ini the waterfall mod el Flexibility to change in incrementa| Mogy Flexibility to change is Easy. is Difficult. The cost of the incremental model js al The cost of the Waterfall model is Low. Low. Iso Testing is done in the waterfall model after Testing is done in the incremental modg| the completion of the coding phase. after every iteration of the phase. Returning to the previous stage/phase is Returning to the previous stage/phase s not possible. possible. In the waterfall model, a large team is In an incremental model large team is not required. required. In the waterfall model overlapping of" In incremental model ‘overlapping of phases is not possible. phases is possible. There is only one cycle in the waterfall Multiple development cycles take place model. in the incremental model. The customer is involved only at the !In beginning of development. incremental model, customer involvement is intermediate. The linear framework type is used. Linear with = itera tive fi ramework type is The customer is having least contro| the administrator. Lol The cust Omer administratey has more cont rol over the RAusnblllty is the least Possible, REUSab“I l Yy IS p ossip I © to some extent, 23 Cts otyPINg < model can help help to red uce the risk i of d software P“" does not meet the needs of end-users or stak:vhzllzglng. o opment time and cost. The prototype can be deve|oped o' o erent methods: such as throwaway prototyping, evolutiona uot,smg,pmm mcremental prototyping. The prototyping model can be userz g bt other software development methodologies, such as agi|. G ate software products that meet the needs of end-usersg e advantages of Software Prototyping ol sk " Users help to shape the future. As a result, erro i the first stage of the software development procesr: b. Prototyping is also considered a risk reduction fund' i existent performance to be seen, lowering the risk of'?;‘ill::ause S oo Assists team members in effectively communicating : customer satisfaction exists, and he can feel the r‘ There will be no risk of software loss. o. Quick user feedback aids in the development of better softw. i pisadvantages of Software Prototyping o i -. Prototyping is a t?me‘consuming and labor-intensive process.. The cost of creating a specific type of waste is completely wasted because the prototype is eventually discarded. Prototyping may resultin an overabundance of change requests. Customers may be unwilling to commit to the iteration cycle for an extended period of time. variations in software During each customer test, there may be too many requirements. customer needs. Poor documentation as a result of changing model and Incremental model Difference between Waterfall early-stage model, stage planning In an incremental In the waterfall model, early planning is also nec ess ary- is necessary. : Y s of risk in the There is a low amount There is a high amount of risk i n the incremental model- that waterfall model. opiflg = e for runnini g is a short waitindntal model- that ¢ is a lon g wai tin g tim :::tzare o the inc The re et is Software in the waterfall model. y the The _4_____——-,,—""// Advantages: o 2 i v e r i : ageme i Flexible and adaptabl le 1. Effective risk man fe back ( 4. Suitable for complex projects hasizes customer r feed en gv E:::F:)urages continuous improvem Disadvanrages‘; 2. Requires skilled team 1. High overhea 3. Difficult to predict timeline 4. May lead to scope P! creep 335 i iterati Iterative Moy del ftware development that workKss ini | is a way of softwa smaj Steps || o ‘ter:g::k:g?nd:nt of the software. It was developgd by aeggousv ;)f s‘gftw p el"l'e:‘::en dev rs ts forintobeta tersoftwa ways re sol of utide on. veloThi pisng work require onse. in It iteisratan ions as ylar large yt tag S are divVIided into small steps and easy ste k p is developed in iterations to achiev solution. e a fina @T Sy oo ':H RS ot e gundl | E;T“:;:]? lerative Waterfall Mod el Advantages of Iterative : + It makes €asy debugg ing of errors. « Itis a more flexible way of creating softwa Disadvantages of re. Iterative: + ltrequires good pla nnin. g for decidi « Itneeds well-def ng iterations. ined m odules to wo 33 rk on. 3 methodolog Zz:etig uesded Tto gath y that er fee;dback and wo rking moge| of refine the de an ef ore developing ng are prodyct that requlreene;nshe i hping DodeLl part ~defined or apic e ulliankeyly 1oefy = rore th nal Product is Or Projects wher e the Ver time. The software should be easy to use and have a user-friendly M The s "":fiv The system must have 99.9% uptime. Rel Data must be encrypted during transmission and storage * 4.3sectl”Doma" in Requ: irreemquenirX ts : ; are specific to the domain or indust ements ry in which n &4 amion: Doma! 3 They include | termino inology I and stand l , rules, e in. Domain requirements reflect the uniqir:sneedsw‘o at PAC " of a particular industry. They ensure that the software is releva nt el and regulat ions and standards. pliant with industry-specific cular % requirements are the requirements that are characteristic of ooy o domaln.Of pro]_ects. Domain requirements can be fu:tg:‘:al funcfional- Domain requue_ments engineering is a continuous process (; be fining the requirements for all foreseeable applications to jvely de s sic function th. at a proquct line. The e baun in.the software ssar de r this category Fm:;: gevel st ne ce il y ex hi bi t c o m.domain mu ic so ft wa r e that maintains records of a school or college, the academ faculty and list of students of each functionality of bt_eing aple to access the list of from requirements are therefore identified de is a domain requirement. These not user-specific. that domain model and are Examples: ling so ft wa re mu st co mp ly wi th HIPAA regulations for hand. Healthcare: The patient data. rting. AP standards for financial repo st em sh ou ld ad he re to GA. Finance: The sy ld sup po! rt var ious payment gateways like ftware sh ou. E-commerce: The so cards. PayPal, Stripe, and credit can be: mm on cl as si fi ca ti on s of software requirements Other co re qu ir em ent is a documents A us er 1, User requirements: from a sys users requires particular user or set of e sp ec if ic ne eds, expectations. fe r to th User requirements re will interact with the the end users or stakeholders who al ies, fegtures, desired functionalit outline the system’s requireme the user's perspective. t User me et use r eee ds and ne software solution s tha lay do wn cri tic al gui del ine s f°'.th e°g mdg : s experience. Thes e ueuserer Sex8pe r i e n the desired encapsulatining g systerem,quir af e These ements ed in ISt “yijprvey:: s system. User requirem hts interviews, sur >: gathered throug typically fu nctions to th e user. rates on the so ftware and its be havior. ct io n: s of intera understand te rs for softwa re. g p a r a m e ning test in rams. -f ra me s an d concep! tual diag re deSlger aid for wi Provides bett i ng a Useman, mples: s y s t e m mu s! t allow users to log in usi tication: The Extls:r Authen fo and password.. so ft wa re sh ou ld en able users to search “ tionality: The. Search Func |l name or catego ry. s reports forz n: able to generate sale e system should be pR r: sg ‘c ‘t s Gi yn er a( io Th nge. specified date ra ts -functional Requiremen : tware performs a nct ion al req uir eme nts des cri be how : the sof Definition: Non-fu s s, performance tha n wha t it sho uld do. The y define the quality attribute task rather irements are about the system's criteria, and constraints. Non-functional requ that the software meets certain ensure behavior, quality, and constraints. They y, and security. standards of performance, usability, reliabilit the system must satisfy according These are basically the quality constraints that related to the system to the project contract. Nonfunctional requirements, not rity or extent to : functionality, rather define how the system should perform The prio are which these factors are implemented varies from one project to other. They also called non-behavioral requirements. They basically deal with issues like: Portability, Security, Maintainability, ~Reliability, ~Scalability, Performance, Reusability, Flexibility..Nolnn-tf:rrf\:;;o::r: Sr;gilrxlit;ements are classified into the following types: « Performance constraints: response time i R i traints: constrai : nts main 8?e’afi 3- Life ng cycl e cons tainabili ili nts R b porbabilly, atc. e COno.ThE ess cons procmic traifying non-functi i e fac tonaof speci gf thz sgystem, 2;’“:[2;' ;:quwements requires the knowledge of which the system will operate. the knowledge of the context within They are divided into two main categories » Execution qualities: These consist of th; : are observable at run time. of thing like security and usabili i { - Evolution qualities: These consis t of Y. which things like testability extensibility, and scalability that a i} i '® embodied i ; main: tainabili \ STNES Syslen. n the static structyre 2?|lt|rt1ye' Pertes - niu Exa : formance: The system should process 1.000 tran: % Sactions per

Use Quizgecko on...
Browser
Browser