Software Development Processes Flashcards

1
Q

List the 5 activities of the SW development process

A
  • Requirements
  • Design
  • Implementation
  • Verification
  • Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Define refactoring in SWE

A

Refactoring refers to changing internal structure or code without changing its external behaviour/functionality

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

List the 5 steps of the waterfall model

A

Step 1. Requirements
Step 2. Design
Step 3. Implementation
Step 4. Verification
Step 5. Maintenance

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

Explain why the waterfall model is considered outdated and rarely used

A

The waterfall model assumes the requirements will remain the same throughout the entire software development process - requirements changes far down the waterfall can be extremely costly

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

Explain some advantages of creating prototypes in software engineering

A
  • Users become actively involved in development
  • Feedback is received much more frequently
  • Missing/broken functionality can be detected earlier
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

When should prototyping be used in software engineering?

A

The prototype model should be used when the desired system has lots of interaction with end users. This is very common in web interfaces

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

Describe incremental development

A

In an incrementally developed system, features are fully developed before being added to the system. Each increment builds on top of existing released functionality.

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

Describe iterative development

A

Iterative development starts with a high-breadth prototype with full functionality. The following iterations gradually add functionality to features usually based on user feedback

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

Describe reuse-oriented SWE

A

Reuse-oriented SWE is a general process model that analyzes and incorporates existing software to develop a system. The steps of R-O SWE are
1. Component analysis - search for components
2. Requirements modification - requirements are modified to reflect available components
3. System design w/ reuse - The framework of the system is designed/reused if possible
4. Development and integration - whatever can’t be found is developed and the components are integrated to create the new system

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

Describe the V-Model

A

The V model is an alternative to the waterfall model. It follows the same general steps, except after each stage, extensive testing occurs to verify and validate the product at its current stage of development.

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

Name some disadvantages of the V-model

A
  • Not flexible
  • No prototypes are developed
  • If specifications change mid way, test documents and requirements documents have to be updated
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

When should the V-model be used?

A

Small to medium sized projects where the requirements are clearly defined and ample technical resources are available.

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

The spiral model combines key aspects of what two methodologies?

A

The waterfall model and rapid prototyping methodologies

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

List the 4 repeating steps of the spiral model

A
  1. Determine objectives
  2. Identify/resolve risks
  3. Development and testing
  4. Plan next iteration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Name the two axes of the spiral model’s graph

A
  1. The radial dimension - represents the cumulative cost incurred to date
  2. The angular dimension - represents the progress completed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Name some pros and cons of the spiral model

A

Pros
- High amount of risk analysis, high risk avoidance
- Good for large, mission-critical projects
Cons
- Can be expensive
- Risk analysis requires highly specific expertise
- Project’s success is dependent on specific expertise

17
Q

When should the spiral model be used?

A
  • For high risk projects
  • When the budget is high
  • Users are unsure of their needs/requirements are complex
  • Significant changes are expected
18
Q

Describe RAD

A

RAD stands of Rapid Application Development and it favors iterative development and the rapid construction of prototypes instead of large up-front planning.

19
Q

When should the RAD model be used?

A
  • When there is a short deadline (2-3 months)
  • High availability for designers for modeling
  • Resources with high business knowledge are available
20
Q

Does Agile employ methods of iterative or incremental development?

A

Iterative

21
Q

Describe plan-driven processes

A

All process activities are planned in advance and progress is measured against this plan.

22
Q

Describe Agile planning processes compared to plan driven processes

A

Planning is done incrementally and it is easier to change the process to reflect changing requirements

23
Q

Describe the agile methodology

A

Agile is a group of methodologies based on iterative development - it advocates a people-centric viewpoint and continuous customer feedback.

24
Q

List some benefits of agile development

A
  • Changes can be implemented at low cost
  • Continuous customer feedback
  • Developers and stakeholders get more freedom
25
Q

What are two ways to reduce the cost of changing requirements

A

Change anticipation - the software includes activities that can anticipate possible changes before significant rework is required
Change tolerance - the process is designed so changes can be accommodated at low cost