Software development processes Flashcards

1
Q

Custom software

A

Developed for a single customer according to their specification

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

Generic Software

A

Developed to the general market, e.g. excel or word

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

No silver bullet

A

The core argument is that there is no single development technique or technology (a “silver bullet”) that can result in an order-of-magnitude improvement in productivity, reliability, or simplicity within a decade.

Complexity (in communication, scaling up software etc.)

Conformity (change in management, or interface, etc.)

Changeability (software commonly modified)

Invisibility (Software structures are inherently unvisualizable, diagramming structures are hard)

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

What is the difference between the application (problem) domain and the solution domain?

A

Application Domain: Focuses on understanding the problem, requirements, and concepts of the real-world scenario or business domain.
Solution Domain: Focuses on technical aspects, design, and implementation strategies to build a software solution that addresses the problem.

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

Software process activity:
Software specification

A

Establish what services are required (functional requirements) and the constraints on the system’s operation and development (non-functional requirements)

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

Software process activity:
Software development

A

Software design (realise specifications) and implementation (translate design into executable)

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

Software process activity:
Software validation

A

Verification: Are we building the product right?
Validation: Are we building the right product?

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

Software process activity:
Software evolution

A

Change existing software systems to meet new requirements.
The software must evolve to remain useful.

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

Software processes can be split up into two kinds, the methodologies / basic models and concrete software processes. Mention 3 of each.

A

Methodologies:
Phase model, Spiral model, Incremental / iterative, Prototyping, Agile models

Concrete models:
Waterfall, Rational Unified Process, V-model, Scrum, Kanban, eXtreme programming, feature-driven development

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

Explain waterfall model

A

A software development methodology. A phase is only begun when the previous is finished. Sequential approach.

User requirements.
System requirements.
Analysis.
Program design.
Coding
Testing Integration.
Operations.

Look also iPad notebook.

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

What are process activities that are common in the life cycle of software? List and describe
three of them.

A

Software specification.
Software development.
Software validation.
Software evolution.

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

Explain V-model

A

A software development and testing methodology. Similar to the Waterfall Model, the V-Model follows a sequential approach. However, in the V-Model, each development stage has a corresponding testing phase.
Each development stage has a corresponding testing phase.

User requirements engineering – Acceptance testing
System requirements engineering – System testing
Architecture engineering – System integration testing
Design – subsystem Integration testing
Coding (sw) and fabrication (hw) – unit testing

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

Explain spiral model

A

Software development methodology. Emphasises the need to address potential risks in the project early and continuously throughout the development life cycle. Each loop represents a phase in the sw development process.

The development process is divided into a series of iterations, with each iteration resulting in a deliverable increment of the software. Each iteration includes risk analysis.

Repeat the steps:
Define goals
Analyse risks
Development and validation
Plan next iteration

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

Explain incremental / iterative approach

A

The incremental/iterative approach in software development is a methodology that emphasizes breaking down the development process into smaller, manageable parts, called iterations or increments. Instead of delivering the entire system at once, the development team works on and delivers a portion of the software in each iteration.

Basis for almost all agile methods.

Feedback driven.
Flexibility and adaptability.
Parallel development.

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

Change tolerance

A

where the process is designed so that changes can be accommodated at
relatively low cost.

E.g., incremental development in which proposed changes may be
implemented in increments

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

Change avoidance

A

the software process includes activities that can anticipate possible changes
before significant rework is required

E.g., a prototype system may be developed to show some key features of the
system to customers

13
Q

Incremental approach

A

We finish a small part of the project so it’s completely functional. We deliver functional i.e. website with few important features the customer can start using. Add new features at new increment. The final product is delivered through multiple increments.
Mona Lisa: Draw one top of corner and so on.

14
Q

Iterative approach

A

We look at the entire product. Create very basic framework and then for each iteration refining.
Mona Lisa: sketching

14
Q

Iterative/incremental approach

A

We deliver the smaller increments as well as refine the website through iteration. Here the customer’s feedback and change in requirements are adapted through multiple iterative and incremental deliveries. Iterations and increments continue until the final product is delivered.

With each iteration the system scope is extended.
The system ‘grows’ step by step.
Based on the spiral model.

15
Q

Evaluation agile processes

A

Pro:
Change- and feedback affine
Client and team in the spotlight
Approach is pragmatic and goal-oriented
Con:
Requires harmony (‘feeling blue’ syndrome)
Requires highly skilled clients and team members
Availability of client
Difficult contracting

15
Q

Explain Extreme Programming

A

Agile Method.
Takes an ‘extreme’ approach to iterative development.
New versions may be built several times per day.
Increments are delivered to customers often.
All tests must be run for every build and the build is only accepted if tests run successfully. Program is tested after every change has been made.

Test-first development: Developers write tests for a feature before writing the actual code for the feature. The test guides the development.
Pair programming
Continuous integration into repository
Refactoring – incremental improvements to code and design
Simple design
Small releases
One-site customer – Customer / user is part of the XP team
Requirements by user stories

16
Q

SCRUM

A

Agile method.
The product is broken down into a set of manageable and understandable chunks
Customers see on-time delivery of increments and gain feedback on how the product works.

Product backlog – user stories
Sprint planning
Sprint backlog
Sprint (1-3 weeks) daily scrum
To a potentially shippable product
Sprint review

Product owner – They prioritise the product backlog, a list of all desired work on the project.
Developers – perform the work
SCRUM master – they facilitate the Scrum process, remove impediments, and ensure that the team adheres to Scrum practices

16
Q
A
17
Q
A
18
Q
A
18
Q
A