Comparison of Life Cycle Models Flashcards
(42 cards)
What is the Software Development Life Cycle (SDLC) in software engineering?
A methodology that defines the logical steps for developing a custom software product
What is a key characteristic of the Agile Model?
It focuses on processes for getting requirements and developing code and does not focus on product design. It also emphasizes rapid, continuous delivery of useful software
Advantages of Agile Model
- customer satisfaction by rapid, continuous delivery of useful software
- working software is delivered frequently
- even late changes in requirements are welcomed
Disadvantages of Agile Model?
- lack of emphasis on necessary designing and documentation
- project can easily get taken off track if the customer representative is not clear what final outcome that they want
- only senior programmers are capable of taking the kind of decisions required during the development process
When to use Agile?
- When new changes need to be implemented
- To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it
- Unlike the waterfall model in agile model very limited planning is required to get started with the project, Agile assumes that end users’ needs are ever changing in a dynamic business and IT world
most simple model of software development
Build-and-Fix Model
the product is constructed with minimal requirements, and generally no specifications nor any attempt at design, and testing is most often neglected
Build-and-Fix Model
Advantages of BuildnFix
- cost efficient for very small projects of limited complexity
- requires less project planning
- requires less experience to execute
Disadvantages of BuildnFix
- unsatisfying approach for products of reasonable size
- cost is higher for larger projects
- product will not be delivered on time most of the times
- often results in a product of overall low quality
- no documentation is produced
- maintenance can be extremely difficult without specification and design document
When to use Build-and-Fix?
- When project with minimal functionalities and simple program design like competitors, assignments, and demonstrations
- considered as a meta-model
- flexibility and risk handling are the main characteristics of this model
- similar to the iterative model, but places more emphasis on risk analysis
Spiral Model
Advantages of Spiral Model
- good for large and critical projects
- working software is produced early during the lifecycle
- large amount of risk analysis
Disadvantages of Spiral Model
- involves higher cost
- not suitable for smaller projects
- projects success depends on the risk analysis phase - hence, it requires highly specific expertise in risk analysis
When to use Spiral?
- When project is large
- For medium to high-risk projects
- When risk and costs evaluation is important
- When long term project commitment is not feasible due to changes in economic priorities
- used to overcome the limitations of waterfall model
- a prototype is built to clearly understand the requirements
- the client gets a better understand of the features of the final product
Prototype Model
Advantages of Prototype Model
- benefits from user input
- as a working model of the system is provided, users get a better understanding of the system that is being developed
- errors and risks can be detected at a much earlier stage, as the system is developed using prototypes
Disadvantages of Prototype Model
- increases complexity of the overall system
- involves exploratory methodology and therefore involves higher risk
- involves implementing and then repairing the way a system is built, so errors are an inherent part of the development process
- When to use Prototyping?
- complex factors must be considered, which may include tasks requiring intense levels of problem-solving, organizational constraints in time and money, or where predicting an instructional outcome is difficult.
- designer is unfamiliar with the instructional context including the learners, clients
a prototype is built, tested and then reworked as necessary until an acceptable prototype is eventually achieved from which the complete system or product can be developed
Rapid Prototyping Model
Advantages of RPM
- reduced time and costs
- improved and increased user involvement
Disadvantages of RPM
- insufficient analysis
- user confusion
When to use Rapid Prototyping?
- should be used when the desired system needs to have a lot of interaction with the end users.
- end users constantly work with the system and provide a feedback which is incorporated in the prototype to result in a useable system.
- Typically, online systems, web interfaces have a very high amount of interaction with end users, are best suited.
- used to overcome the limitations of waterfall model
- a prototype is built to clearly understand the requirements
- the client gets a better understanding of the features of the final product
Extreme Programming Model
Advantages of EPM
- cost reduction
- better risk management
- robustness