software development taxonomy
TRANSCRIPT
![Page 1: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/1.jpg)
Software development
Taxonomy
![Page 2: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/2.jpg)
Taxonomy Overview
Core Activities
Process Models
Methodologies & Frameworks
Supporting Disciplines
Tools
Standards & BOKs
2 o f 3 0
![Page 3: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/3.jpg)
Core Activities
Requirements
Design
Construction
Testing
Debugging
Deployment
Maintenance
3 o f 3 0
![Page 4: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/4.jpg)
Process Models
Waterfall: a sequential (non-iterative) design process in which progress is seen as flowing steadily downwards.
Incremental: the product is designed, implemented and tested incrementally until the product is finished.
V-Model: It’s like the waterfall model but Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape.
Spiral: The spiral model is similar to the incremental model, with more emphasis placed on risk analysis.
Agile: Agile development model is also a type of Incremental model. small incremental releases with each release building on previous functionality.
Concurrent Development: Focuses on concurrent engineering activities in a software engineering process such as prototyping, analysis modeling, requirements specification and design.
Prototyping: instead of freezing the requirements before a design or coding can proceed, a throwaway prototype is built to understand the requirements.
4 o f 3 0
![Page 5: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/5.jpg)
Waterfall Model
Source: www.mbaskool.com
5 o f 3 0
![Page 6: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/6.jpg)
Waterfall Model - Advantages
This model is simple and easy to understand and use.
It is easy to manage due to the rigidity of the model – each phase has specific deliverablesand a review process.
In this model phases are processed and completed one at a time. Phases do not overlap.
Waterfall model works well for smaller projects where requirements a-re very wellunderstood.
6 o f 3 0
![Page 7: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/7.jpg)
Waterfall Model – Disadvantages
Once an application is in the testing stage, it is very difficult to go back and changesomething that was not well-thought out in the concept stage.
No working software is produced until late during the life cycle.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high risk ofchanging.
7 o f 3 0
![Page 8: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/8.jpg)
Waterfall Model – When To Use
This model is used only when the requirements are very well known, clear and fixed.
Product definition is stable.
Technology is understood.
There are no ambiguous requirements.
Ample resources with required expertise are available freely.
The project is short.
8 o f 3 0
![Page 9: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/9.jpg)
Incremental Model
The product is decomposed into anumber of components, each ofwhich is designed and built separately(termed as builds).
Each component is delivered to theclient when it is complete. This allowspartial utilization of the product andavoids a long development time. Italso avoids a large initial capital outlayand subsequent long waiting period.
Source: www.bbci.co.uk
9 o f 3 0
![Page 10: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/10.jpg)
Incremental Model - Advantages
Generates working software quickly and early during the software life cycle.
This model is more flexible – less costly to change scope and requirements.
It is easier to test and debug during a smaller iteration.
In this model customer can respond to each built.
Lowers initial delivery cost.
Easier tomanage risk because risky pieces are identified and handled during it’d iteration.
1 0 o f 3 0
![Page 11: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/11.jpg)
Incremental Model – Disadvantages & When To Use
Needs good planning and design.
Needs a clear and complete definition of the whole system before it can be broken downand built incrementally.
Total cost is higher than waterfall.
There is a need to get a product to the market early.
Resources with needed skill set are not available.
A new technology is being used and There are some high risk features and goals.
1 1 o f 3 0
![Page 12: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/12.jpg)
V-Model
Requirements
Detailed Design
Implementation
Test & Integration
Operation & Maintenance
Project Definition
Time
Project Test & Integration
Verification & Validation1 2 o f 3 0
![Page 13: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/13.jpg)
V-Model - Advantages
Simple and easy to use.
Testing activities like planning, test designing happens well before coding.
This saves a lot of time.
Hence higher chance of success over the waterfall model.
Avoids the downward flow of the defects.
Works well for small projects where requirements are easily understood.
1 3 o f 3 0
![Page 14: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/14.jpg)
V-Model – Disadvantages & When To Use
Very rigid and least flexible.
Software is developed during the implementation phase, so no early prototypes of thesoftware are produced.
If any changes happen in midway, then the test documents along with requirementdocuments has to be updated.
The V-shaped model should be used for small to medium sized projects whererequirements are clearly defined and fixed.
The V-Shaped model should be chosen when ample technical resources are available withneeded technical expertise.
1 4 o f 3 0
![Page 15: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/15.jpg)
Spiral Model 1 5 o f 3 0
![Page 16: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/16.jpg)
Spiral Model - Advantages
High amount of risk analysis hence, avoidance of Risk is enhanced.
Good for large and mission-critical projects.
Strong approval and documentation control.
Additional Functionality can be added at a later date.
Software is produced early in the software life cycle.
1 6 o f 3 0
![Page 17: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/17.jpg)
Spiral Model - Disadvantages
Can be a costlymodel to use.
Risk analysis requires highly specific expertise.
Project’s success is highly dependent on the risk analysis phase.
Doesn’t work well for smaller projects.
1 7 o f 3 0
![Page 18: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/18.jpg)
Spiral Model – Where To Use
When costs and risk evaluation is important
For medium to high-risk projects
unwise because of potential changes to economic priorities
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and exploration)
1 8 o f 3 0
![Page 19: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/19.jpg)
Agile Model 1 9 o f 3 0
![Page 20: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/20.jpg)
Agile Model - Advantages
Customer satisfaction by rapid, continuous delivery of useful software.
People and interactions are emphasized rather than process and tools.
Customers, developers and testers constantly interact with each other.
Working software is delivered frequently (weeks rather than months).
Face-to-face conversation is the best form of communication.
Close, daily cooperation between business people and developers.
Even late changes in requirements are welcomed
2 0 o f 3 0
![Page 21: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/21.jpg)
Agile Model - Disadvantages
In case of some software deliverables, especially the large ones, it is difficult to assess theeffort required at the beginning of the software development life cycle.
There is lack of emphasis on necessary designing and documentation.
The project can easily get taken off track if the customer representative is not clear whatfinal outcome that they want.
Only senior programmers are capable of taking the kind of decisions required during thedevelopment process.
Hence it has no place for newbie programmers, unless combined with experiencedresources.
2 1 o f 3 0
![Page 22: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/22.jpg)
Agile Model – When To Use
When new changes are needed to be implemented. The freedom agile gives to change isvery important.
New changes can be implemented at very little cost because of the frequency of newincrements that are produced.
To implement a new feature the developers need to lose only the work of a few days, oreven only hours, to roll back and implement it.
This effectively gives the customer the finished system they want or need.
Both system developers and stakeholders alike, find they also get more freedom of timeand options than if the software was developed in a more rigid sequential way.
2 4 o f 3 0
![Page 23: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/23.jpg)
Concurrent Development 2 3 o f 3 0
![Page 24: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/24.jpg)
Concurrent Development – How to Achieve Concurrency
1. System and component activities occur simultaneously and can be modeling using thestate-oriented approach
2. A typical client/server application is implemented with many components,each can bedesigned and realized concurrently.
2 4 o f 3 0
![Page 25: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/25.jpg)
Concurrent Development – Why to Use
Rather than confining software engineering activities to a sequence of events, itdefines a network of activities.
Each activity on the network exists simultaneously with other activities.
Events generated within a given activity or at some other place in the activity networktrigger transitions among the states of an activity.
2 5 o f 3 0
![Page 26: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/26.jpg)
Concurrent Development – Example
Source: http://www.manockdesign.com
2 6 o f 3 0
![Page 27: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/27.jpg)
Prototyping – How it Works? 2 7 o f 3 0
![Page 28: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/28.jpg)
Prototyping – Advantages
Users are actively involved in the development.
Since in this methodology a working model of the system is provided, the users get a
better understanding of the system being developed.
Errors can be detected much earlier.
Quicker user feedback is available leading to better solutions.
Missing functionality can be identified easily.
Confusing or difficult functions can be identified.
Requirements validation, Quick implementation of, incomplete, but functional, application.
2 8 o f 3 0
![Page 29: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/29.jpg)
Prototyping – Disadvantages
Leads to implementing and then repairing way of building systems.
Practically, this methodology may increase the complexity of the system as scope of the
system may expand beyond original plans.
Incomplete application may cause application not to be used as the full system was
designed.
Incomplete or inadequate problem analysis.
2 9 o f 3 0
![Page 30: Software Development Taxonomy](https://reader031.vdocuments.mx/reader031/viewer/2022030301/587f26d91a28ab350c8b7f39/html5/thumbnails/30.jpg)
Made with <3
By Ali Gholami
@ Amirkabir University of Technology