440 likes | 452 Views
Explore various software development life cycle models to build successful software systems. Learn to analyze project characteristics, select appropriate methodologies, and assess advantages and disadvantages.
E N D
Software Project management SE603Unit 3: Software Development Life Cycle Models Egypt, 1.6.2014
Introduction Project managers are always investigating the unique nature of each project including stakeholderengagement, industry standards, environmentconsiderations, handling risk, etc. They identify as well the various ways to achieve the project goals through selecting the proper software development life cycle models.
Introduction Software Development Life Cycle is a process that ensures good software is built. It is a general model of the software development process, including all the activities and work products required to develop a software system.
Introduction In this unit, we go through the steps of analyzing project characteristics and the different types of software development methodologies, while discussing the factors of selecting the appropriate methodologies; and quantifying advantages and disadvantages of each approach.
Objectives Determine the stepsof analyzing project characteristics Identify the differenttypes of software development methodologies, including the factors of selection and quantifying advantages and disadvantages of each approach
Unit 3: List of topics Analyzing Project Characteristics 1.1. In-house development or ready made product? 1.2 what is different about project? 1.3 What could go wrong? 1.4 Were Implementation requirements considered? 1.5 Selecting development life cycle model? 2. Software Development life Cycle Models 2.1. Waterfall Model 2.2. V-Process Model 2.3. Incremental Model 2.3.1. RAD Model 2.3.2. Agile Model 2.3.3. Spiral Model 2.4. Iterative Model 2.4.1. Prototyping model 6
1. Analyzing Project Characteristics Step 0 Initiation • In order to analyze project characteristics, step 3 of Step Wise Planning, mentioned in Unit 2, is investigated. • Step 3 aims to enable project managers to have strong technical plan by going through 5 sub steps. Step 1: Defining Scope and Objectives Step 2: Understanding Client infrastructure Step 3 Project Characteristics Analysis review Step 4 Identifying deliverables Lower level detail Step 5 Effort Estimation For Each activity Step 6 Handling risks Step 10 Low-Level Planning Step 7 Resources Allocation Step 9 Plans Execution Step 8 Plans Review Figure: STEP WISE Planning Steps [1]
1.1. In-house development or ready made product? Projects could be product driven or objective driven (sub step 3.1). In the first case, the client’s responsibility is develop a product to meet his objectives (in-house development). In the second case, the client asks a company to develop a product or purchase ready-made products [2].
1.2 what is different about project? It is about attributing the critical and natural related requirements of the the project (sub step 3.2). For the project nature related requirements: determining if the system is process-oriented or data oriented is an example of such requirements [3]. For process oriented systems: they are Limited systems as business processes and applications supporting them change constantly. Whilst for Data-Oriented system: they are more enduring as the dataneeds of anorganization donot change frequently. For the critical attributes: deterring if the system is safety-critical is an example. safety-critical system is a system where its failure might cause a serious injury to people.
1.3 What could go wrong? Risks could be the result of product, process or resource uncertainty (sub step 3.3) [4]. For Product Uncertainty, some environments change progressively resulting in continuous change of requirements. For ProcessUncertainty, any change in the way systems were developed would introduce uncertainty. For ResourceUncertainty, the larger the number of resources or the longer the duration of the project, the more risks will be present strongly.
1.4 Were Implementation requirements considered? Some clients have their own procedural requirements (sub step 3.4)). That is more clear for some governments that require the use of certain software project life cycles such as waterfall method [5]
1.5 Selecting development life cycle model? • According to the configurations of the project and the requirements of the clients driven from the previous steps, lifecycle approach and the development methodology would be selected (sub step 3.5). Development methodology considers the following: • Product: what is created? • Process: what tasks are to be carried out? • People: what bout the workforce? • Time: how do all activities get organized in time? • Software development life cycle modeling: which model would fit?
2. Software Development life Cycle Models Software process models (development life cycle models) are generic approaches used to organize project into series of activities. That’s done to help project manager determine the work that should be done and in what sequence to be performed. 15
2.1. Waterfall Model (1/2) Waterfall model is the most basic life cycle model. The name inspired as the model runs in sequential fashion from top to down as the waterfall, where each phase must be completed before the next one begins. By the end of each phase, a review process is performed to to make sure that project is running properly . Testing is conducted starts after the development process is complete [6].
2.1. Waterfall Model (1/2) When to be used: Waterfall is used when the project time window is short, scale is small and the requirements are well determined and fixed. It is used when the definition of the product is stable, the used technology is well understood and resources to run the project are available. [6]
2.1. Waterfall Model (2/2) • Disadvantages: • Not for complex and long projects with frequent changes in requirements • Expensive post- implementation in case of any changes • No working version till that the implementation stage. That entails high risk and uncertainty • Advantages: • Works well for smaller projects • Easy to use and manage • No overlaps between phases 20
2.2. V-Process Model (1/3) [1] (test-driven) Vstands means Verification and Validation model. It is the same as the waterfall in the flow of execution. Each phase must be completed before the next phase begins. The difference between the v-model and the waterfall thattesting of the product is done in parallel with the corresponding phase of development [7]. When to be used: The model is for small to medium scale projects where requirements are well defined and fixed. It is used when there are enough technical resources with needed technical expertise to run the operations. 23
2.2. V-Process Model (2/2) • Disadvantages: • Software is developed during the implementation phase, so, no early prototypes are produced. • Advantages: • Works well for small and medium projects • Testing is done before coding, resulting in detecting defects are found at early stage. 24
2.3. Incremental Model (1/2) (product-driven) Requirement are dividedinto various builds. Each buildruns in complete waterfall cycle. This means multipledevelopment cycles. Each cycle produces small and easily managed module. A working copy of the software is produced during the first module. Each subsequent release of the module addsmore functionsto the previous release. The process continues by building the product incrementally till the complete system is achieved. [10] 26
2.3. Incremental Model (1/2) (product-driven) When to be used: When the client would like to have his product in the market early like minimal viable products where newtechnology is being used and resources with needed skill set are not available. There are high risk features and goals. 27
2.3. Incremental Model (2/2) • Advantages [11]: • Working copy of the system is available @ the early stage, so, customer could respond to each build • Flexible to requirements change • Testing and debugging is done during the builds • Risks are handled during the iterations. • Disadvantages [11]: • Requires a comprehensive definition of the whole system before break it down and built incrementally. • Higher than waterfall in total costs • Time factor is so crucial ; for short period projects 28
2.3.1. RAD Model (1/2) RAD stands for Rapid Application Development model. it is a type of the incremental model. In this model, components are developed in parallel then assembled into a working prototype. As prototypes are produced @ the early stages, that is why we call it Rapid developments [12]. Automated code generation tools are used to convert the result of the process models to a valid code of the output system. When to be used: The model is used for developing system in short time span (2-3 months) while considering the system could be modularized. That is conditioned based on the the availability of caliber resources and the budget to afford their cost. [12] 29
2.3.1. RAD Model (2/2) • Advantages: • development time is reduced and reusability of components is increased • Customer has the opportunity to check the product @ the early stage • integration issues are minimized as the integration is progressing from the early stages • Disadvantages: • Requires caliber resources ; the cost of the automated code generation and modeling are high • Applied only for systems that could be broken into modules • are not applied on low budget projects as modularization and integration are costly 30
2.3.2. Agile Model (1/2) It is a type of the Incremental model and also known as Extreme Programming (XP). Product is developed incrementally through rapid cycles. In each each cycle a release is produced in short time that adds functionality to the previous release. Each release is tested to make sure that quality standards are met. [13]. When to be used: It is used for time critical applicationswhere new changes are done at little cost due to incremental building of releases. This model requires limited planning to kick start the project compared to the waterfall. [13] 31
2.3.2. Agile Model (2/2) • Advantages: • Customer satisfaction is high for the rapid delivery of useful releases. • Constant interaction between customers, developers and testers. • Adaptation to changing circumstances. • Even late changes in requirements are welcomed • Disadvantages: • For large projects • The project could be off track in case the customer representative doesn’t have clear perception on the final outcome. • Only caliber programmers are on top preferences 32
2.3.3. Spiral Model (1/2) It is a type of the incremental model. It starts with a small prototype representing the high level requirements. Then, a mini-waterfall process (requirements, specification, design, implementation, etc.) is followed where it’s applied on the first phase of requirements is followed to have the first prototype that afterwards reviewed. Risk analysis is conducted before starting the new loop [17]. When to be used: It is used for medium to high-risk projects where users are unsure of their needs and significant changes are expected (research and exploration); it is used primarily for new product line. [17] 33
2.3.3. Spiral Model (2/2) • Advantages: • For medium to high risk projects • Extra functions could be at late stages. • Prototypes are produced in each loop ; enable customer to experience the product and pass his feedback. • Disadvantages: • Is not suited for small projects ; only medium to large • Risk analysis requires high caliber resources in the analysis domain as project success is fundamentally depend on forecasting risks and managing their presence. 34
2.4. Iterative Model (1/2) Unlike the incremental models that start with the currently available requirements, this model should have the requirement complete and clear. This model does not start with the full specification of requirements. Development starts by specifying and implementing part of the software (part of the requirements), then the process is repeated, producing a new version of the software for each cycle of the model [14]. When to be used: When the project is big in scale and the requirements are clear and well formulated. [14] 35
2.4. Iterative Model (2/2) • Advantages [16] • Building product step by step • Detect bugs @ the early stages. • Getting reliable user feedback. As soon as sketches of the product are presented to the users for their feedback, the users could depict how the product will work. • Disadvantages: [16] • no overlaps between iterations • High cost system architecture • Design concerns might arise in case the full requirements are not collected before running the life cycle 36
2.4.1 Prototyping model (1/2) This prototype is developed based on the currently known requirements. So instead of holding the design or coding till collecting the full requirements, a throwaway prototype is developed to understand the requirements [8]. When to be used: It is used when the clients would like to interact with the prototype @ the early stage. This model enables the client to better understand the requirements of the desired system and let him gets the “actual feel” of the system. [8] 37
2.4.1 Prototyping model (2/2) • Advantages: [9] • Working copy of the system is available @ the early stage, so users could have a better understanding of the system being developed. • Quicker user feedback • Errors can be detected @ the early stage. • Disadvantages: [9] • the complexity of the system could be increased as the project scope might expand beyond original plans. 38
References 1. Hughes, B. and Cotterell, M., Software Project Management, McGraw-Hill, 5th ed., 2009. 2. Agarwal, B. B.. Software engineering and testing / B.B. Agarwal, S.P. Tayal, M. Gupta. p. cm. ISBN 978-1-934015-55-1 (hardcover). ISBN 978-0-7637-8302-0 (e). 3. Data-oriented approach versus process-oriented approach : from Computing to Archaeology, Djindjian François ; The Computer Applications and Quantitative Methods in Archaeology (CAA) 2012 4. Towards a Software Factory, M. Van Genuchten Springer Science & Business Media, Dec 6, 2012 5. PMBOK 5th Edition 6. https://www.slac.stanford.edu/BFROOT/www/doc/workbook_kiwi/coding/SWModels.html 7. http://istqbexamcertification.com/what-is-v-model-advantages-disadvantages-and-when-to-use-it/ 39
References 8. http://istqbexamcertification.com/what-is-prototype-model-advantages-disadvantages-and-when-to-use-it/ 9. http://www.freetutes.com/systemanalysis/sa2-prototyping-model.htm 10. http://istqbexamcertification.com/what-is-incremental-model-advantages-disadvantages-and-when-to-use-it/ 11. http://istqbexamcertification.com/what-is-incremental-model-advantages-disadvantages-and-when-to-use-it/ 12. http://www.tutorialspoint.com/sdlc/sdlc_rad_model.htm 13. http://istqbexamcertification.com/what-is-agile-model-advantages-disadvantages-and-when-to-use-it/ 14. http://istqbexamcertification.com/what-is-iterative-model-advantages-disadvantages-and-when-to-use-it/ 15. http://softwaredevelopmentisfun.blogspot.com/2011/02/incremental-development-versus.html 40
References 16. http://istqbexamcertification.com/what-is-iterative-model-advantages-disadvantages-and-when-to-use-it/ 17. http://www.d.umn.edu/~gshute/softeng/new/process/images/spiral.png 18. http://istqbexamcertification.com/what-is-iterative-model-advantages-disadvantages-and-when-to-use-it/ 41
Conclusion (1/2) • Development methodologies could be in-house or through ready made products • 3types of uncertainies the project could face: product / Process / Resource • Development methodologies consider: product / process / people / time / lifecycle model • Software development life cycle (SDLC) models are approaches for organizing a project into activities. • Many factors affect selecting the appropriate SDLC: project scale (small / medium / large) ; change frequency of requirements (small / high) ; availability of resources and how caliber they are ; the availability of the full requirements @ the inception of the project ; Risk analysis intensity ; budget of the project ; the speed of injecting the project into market ; etc. • Waterfall is the basic lifecycle model 42
Conclusion (2/2) • V-model is the extension of waterfall where testing of the product is planned in parallel with a corresponding phase of development. • InIncremental Model: a release of product is delivered to the customer after each iteration (RAD Model + Agile Model) • In Iterative Model, the customer won’t have the product till all iterations are completed (spiral model) 43
Thank you for yourattention.