ii - software processes Flashcards

1
Q

coherent set of activities for software production

A

software process

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

process descriptions may also include…

A
  1. products
  2. roles
  3. pre- and post-conditions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

[1] discuss, each approach is suitable for different types of software

A

Boehm and Turner (2003)

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

what are the process models covered?

A
  1. waterfall model
  2. incremental development
  3. reuse-oriented software engineering
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

fundamental process activities of specification,
development, validation, and evolution and represents them as separate process phases such as requirements specification, software design, implementation, testing, and so on.

A

waterfall model

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

interleaves the activities of specification,
development, and validation. The system is developed as a series of versions (increments), with each version adding functionality to the previous version.

A

incremental development

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

This approach is based on the existence of a significant number of reusable components. The system development process focuses on integrating these components into a system rather than developing
them from scratch.

A

Reuse-oriented software engineering

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

The [1] model is an example of a plan-driven process—in principle, you must plan and schedule all of the process activities before starting work on them.

A

waterfall

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

enumerate

principal stages of waterfall model

A
  1. requirements analysis and definition
  2. system and software design
  3. implementation and unit testing
  4. integration and system testing
  5. operation and maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

An example of a formal development process, originally developed by IBM; each software increment is formally specified and this specification is transformed into an
implementation

A

Cleanroom process

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

Description: A sequential software development model that follows distinct phases, producing documentation at each stage.
Key Feature: Consistency with engineering process models, visibility for managers to monitor progress, but inflexible partitioning of the project.

A

waterfall model

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

Description: Major problem lies in the inflexible partitioning of the project into distinct stages.

Key Challenge: Commitments made early in the process, difficulty in responding to changing customer requirements.

Use Case: Suitable when requirements are well understood and unlikely to change radically during system development.

A

Waterfall Model Challenges

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

Description: A variant of the waterfall model involving creating a mathematical model of a system specification, refined into executable code using mathematical transformations.

Use Case: Particularly suited for systems with stringent safety, reliability, or security requirements.

Advantage: Simplifies the production of a safety or security case, demonstrating compliance with requirements to customers or regulators.

A

Formal System Development

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

Description: Typically applied to the development of safety-critical or security-critical systems, requiring specialized expertise.

Consideration: Not generally cost-effective for the majority of systems, but beneficial for projects with stringent safety or security requirements.

Examples: B method (Schneider, 2001; Wordsworth, 1996).

A

Processes Based on Formal Transformations

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

based on the idea of developing an initial implementation, exposing this to user comment and evolving it through several versions until an adequate system has been developed

A

incremental development

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

From a management perspective, the incremental approach has two problems

A
  1. process is not visible
  2. system structure tends to degrade as new increments are added
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

stages in reuse-oriented process

A
  1. component analysis
  2. requirements modification
  3. system design with reuse
  4. development and integration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

3 types of software component in reuse-oriented process

A
  1. web services
  2. collections of objects developed as package
  3. stand-alone software systems
19
Q

Specifications are written on cards.
Executable tests are developed before the actual program.
Evolution may involve substantial system restructuring or refactoring.

A

extreme programming

20
Q

particularly critical stage of the software process as errors at this stage inevitably lead to later problems in the system design and implementation.

A

Requirements engineering

21
Q

programs that are used to support software engineering process activities. These tools therefore include design
editors, data dictionaries, compilers, debuggers, system building tools, etc.

A

Software development tools (sometimes called Computer-Aided Software Engineering or CASE tools)

22
Q

4 main activities in requirements engineering process

A
  1. feasibility study
  2. requirements elicitation and analysis
  3. requirements specification
  4. requierments validation
23
Q

description of the structure of the software to be implemented, the data models and structures used by the system, the interfaces between system components
and, sometimes, the algorithms used.

A

software design

24
Q

4 activities part of design process for information systems

A
  1. architectural design
  2. interface design
  3. component design
  4. database design
25
* Evolution of structured methods. * Emphasizes architectural models with abstract and implementation-specific levels. * Detailed models enable executable system generation.
Model-Driven Development (MDD)
26
* Follows naturally from system design. * Interleaved stages of design and program development are common. * Software development tools may generate a skeleton program, allowing developers to focus on component details.
program development
27
system is executed using simulated test data, is the principal validation technique
Program testing
28
stages in testing process
1. development testing 2. system testing 3. acceptance testing
29
acceptance testing is also called [1] where custom systems are developed for a single client and the testing process continues until both agree that the system is acceptable.
alpha testing
30
system is marketed as a software product so [1] testing is used; delivering a system to a number of potential customers who agree to use that system
beta testing
31
2 approaches to reduce costs of rework
1. change avoidance 2. change tolerance
32
2 ways of coping with change and changing system requirements
1. system prototyping 2. incremental delivery
33
initial version of a software system that is used to demonstrate concepts, try out design options, and find out more about the problem and its possible solutions
prototype
34
A risk-driven software process framework (the spiral model) was proposed by [1]
Boehm (1988)
35
each loop in the spiral is split into 4 sectors...
1. objective setting 2. risk assessment and reduction 3. development and validation 4. planning
36
modern generic process model that is organized into phases (inception, elaboration, construction, and transition) but separates activities (requirements, analysis, and design, etc.) from these phases.
The Rational Unified Process
37
3 perspective of RUP
1. dynamic perspective 2. static perspective 3. practice perspective
38
shows the phases of the model over time.
dynamic perspective
39
shows the process activities that are enacted.
static perspective
40
good practices to be used during the process.
practice perspective
41
phases of RUP
1. inception 2. elaboration 3. construction 4. transition
42
6 fundamental best practices recommended in RUP
1. develop software iteratively 2. manage requirements 3. use component-based architectures 4. visually model software 5. verify software quality 6. control changes to software
43
standardized modeling language in the field of software engineering that uses graphical notations to create visual models of software systems; help in understanding, visualizing, specifying, constructing, and documenting the artifacts of a software system.
Unified Modeling Language (UML)
44