Comparison of Life Cycle Models Flashcards

(42 cards)

1
Q

What is the Software Development Life Cycle (SDLC) in software engineering?

A

A methodology that defines the logical steps for developing a custom software product

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a key characteristic of the Agile Model?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Advantages of Agile Model

A
  • customer satisfaction by rapid, continuous delivery of useful software
  • working software is delivered frequently
  • even late changes in requirements are welcomed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Disadvantages of Agile Model?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

When to use Agile?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

most simple model of software development

A

Build-and-Fix Model

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

the product is constructed with minimal requirements, and generally no specifications nor any attempt at design, and testing is most often neglected

A

Build-and-Fix Model

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Advantages of BuildnFix

A
  • cost efficient for very small projects of limited complexity
  • requires less project planning
  • requires less experience to execute
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Disadvantages of BuildnFix

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

When to use Build-and-Fix?

A
  • When project with minimal functionalities and simple program design like competitors, assignments, and demonstrations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  • 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
A

Spiral Model

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Advantages of Spiral Model

A
  • good for large and critical projects
    • working software is produced early during the lifecycle
    • large amount of risk analysis
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Disadvantages of Spiral Model

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

When to use Spiral?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  • 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
A

Prototype Model

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Advantages of Prototype Model

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Disadvantages of Prototype Model

A
  • 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
18
Q
  • When to use Prototyping?
A
  • 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
19
Q

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

A

Rapid Prototyping Model

20
Q

Advantages of RPM

A
  • reduced time and costs
    • improved and increased user involvement
21
Q

Disadvantages of RPM

A
  • insufficient analysis
    • user confusion
22
Q

When to use Rapid Prototyping?

A
  • 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.
23
Q
  • 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
A

Extreme Programming Model

24
Q

Advantages of EPM

A
  • cost reduction
    • better risk management
    • robustness
25
Disadvantages of EPM
- requires a detailed planning from the start due to charging costs & scope - very difficult to test the codes due to not structured and also defects are not well documented
26
When to use Extreme Programming?
- problem domains whose requirements change - risks caused by fixed time projects using new technology
27
- This is one of the simplest, classic life-cycle models - also known as the "linear-sequential" life cycle model - each phase must be completed before moving onto the next
Waterfall Model
28
Advantages of Waterfall
- simple to use and understand - each phase is independent of other phases and is processed and completed separately - suitable for smaller projects, and for projects where the requirements are clearly outlined
29
Disadvantages of Waterfall
- no output or working software is produced until late in the life cycle - high degree of uncertainty and risks - not a good choice for big or ongoing projects
30
When to use Waterfall?
- only when requirements are very well known, clear and fixed - technology is understood - the project is short - there are no ambiguous requirements
31
- requirements are broken down into multiple standalone modules of software development cycle - is done in steps from analysis, design, implementation, testing/verification, maintenance
Incremental Model
32
Advantages Incremental Model
- simple to understand and use - each phase is independent of other phases and is processed and completed separately - suitable for smaller projects, and for projects where the requirements are clearly outlined
33
Disadvantages Incremental Model
- no output or working software is produced until late in the life cycle - high degree of uncertainty and risks - not a good choice for big or ongoing projects
34
When to use Incremental?
- such models used where requirements are clear - used in web applications and product based companies
35
- teams work in parallel on individual application modules - teams in-charge of the project frequently synchronizes their code - They also debug their code at a regular basis throughout the development process
Synchronize and Stabilize Model
36
Advantages of Synchronize and Stabilize Model
- it breaks down large projects into small segments - makes a product team very responsive to events taking place in the market - time and money are judicially and effectively utilized - changes in the system are easily integrated
37
Disadvantages of Synchronize and Stabilize Model
- each team has to keep up with the overall progress - lack of communications among teams can greatly disrupt the development process - highly experienced, competent and dedicated team members are mandatory
38
When to use Synchronize and Stabilize?
- Projects of medium to large scale - high level of communication and coordination
39
- developed on a component basis which enables the effective re-use of existing components and facilitates - higher productivity, lower maintenance cost and better quality can be achieved
Object Oriented Model
40
Advantages of OOM
- reduced maintenance - high quality system - high code reusability
41
Disadvantages of OOM
- low efficiency when dealing with simple data - unfamiliar and shortage of experienced programmers - difficult to implement purely
42
When to use OOM?
- When to use Object Oriented? - Projects of medium to large scale - Projects with an inventory of suitable components available either in-house or in the market - teams with a planned series of developments within a similar business area