Software development Flashcards

(22 cards)

1
Q

What is the waterfall lifecycle model?

A
  • The Waterfall Model is a sequential software development process divided into distinct phases
  • Each phase must be completed before the next one begins
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Steps of the waterfall lifecycle model

A
  • Requirement gathering and analysis: all possible system requirements to be developed are captured and documented
  • System design: the requirements are translated into a design
  • Implementation: the actual code is written based on the design
  • Integration and testing: all the modules are integrated and tested
  • Deployment: the product is released to the market or handed over to the client
  • Maintenance: post-release, the system needs regular maintenance to fix bugs and add new features
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Benefits of the waterfall lifecycle model?

A
  • Simple and linear
  • Clear stages and milestones
  • Suitable for well-defined projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Drawbacks of the waterfall lifecycle model?

A
  • Inflexible: changes are difficult to implement once the project has started
  • Expensive to fix late problems
  • Long development cycle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Suitability of the waterfall lifecycle model

A
  • Suitable for projects where the requirements are well understood and unlikely to change
  • High quality and compliance are essential, must be a clear understanding of the end goal
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the agile programming model?

A
  • Extreme programming is a type of agile software development methodology that promotes adaptability and high customer involvement
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the steps of the agile programming model?

A
  • Identify user stories and requirements: work closely with stakeholders to gather functional and non-functional requirements
  • Plan the sprint: break down requirements into tasks; choose a set of tasks for the current sprint
  • Design the solution: focus on a simple and adaptable design
  • Develop the features
  • Test continuously: testing is ongoing, not saved for the end
  • Review progress: collect feedback from stakeholders
  • Reflect on sprint
  • Release: may release after every sprint or every few sprints
  • Repeat: move onto the next sprint
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a sprint in agile programming?

A
  • A short, time-boxed development period
  • Focusing on a specific task or a few tasks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Benefits of the agile programming model

A
  • High adaptability
  • Frequent communication
  • Quality focus
  • Customer collaboration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Drawbacks of the agile programming model

A
  • Requires experienced team members
  • Intensive collaboration can lead to burnout
  • May lack documentation
  • Uncontrolled changes in requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Suitability of the agile programming model

A
  • Most suitable for small to medium-sized projects where requirements can change and customer involvement is high
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the spiral programming model?

A
  • A software development methodology that combines aspects of both iterative (agile) and sequential (waterfall) processes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the steps of the spiral programming model?

A
  • Planning: defining the objectives, alternatives and constraints for the current phase of the project
  • Risk analysis: identify and assess potential risks and plan mitigation strategies
  • Engineering: develop the next version of the product, including design, coding, testing and integration
  • Evaluation and feedback: review the progress with stakeholders and plan the next iteration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What’s special about the spiral programming model?

A
  • The process repeats, spiralling through stages, with each spiral loop representing a development phase until the final product is ready
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Benefits of the spiral programming model

A
  • Flexibility
  • Risk management
  • Strong customer involvement
  • Incremental releases
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Drawbacks of the spiral programming model

A
  • Complexity
  • Time-consuming
  • Expensive
  • Not suitable for small projects
17
Q

Suitability of the spiral programming model

A
  • Most suitable for large, complex projects where requirements may change, and risk management is essential
18
Q

What is rapid application development (RAD)?

A
  • A software development methodology that emphasises fast and iterative development
19
Q

What are the steps of rapid application development?

A
  • Requirement planning: gather general system requirements
  • User design and prototyping: collaborate with users to design prototypes
  • Construction or iterative development: build the system incrementally, with continuous user feedback
  • Cutover of development: transition the product into the live environment
  • Maintenance and updates: continue to adapt and improve the system
20
Q

Benefits of the rapid application development model

A
  • Speed
  • User involvement
  • Flexibility
  • Incremental development
21
Q

Drawbacks of the rapid application development model

A
  • Dependent on strong team collaboration
  • Potential lack of quality
  • Not suitable for small projects
  • Can lead to scope creep: flexible nature leads to uncontrolled changes in requirements
22
Q

Suitability of the rapid application development model

A
  • Most suitable for projects where rapid development is required and where requirements can be developed and refined on the go