Chapter 2 Flashcards

(48 cards)

1
Q

4 core software activities

A

Specification
Design and implementation
Validation
Evolution

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

What does process descriptions target, besides technical aspects like data model, user interface? (3 important aspects)

A

Products created by the software
Roles given to the users
Pre- and post- conditions for procesess activities and product creation

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

2 main software processes types

A

Plan-driven
Incremental/Agile

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

3 software process models

A

Waterfall (plan-driven)
Incremental (step-by-step)
Integration and configuration (component/software reuse)

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

5 steps in the waterfall model

A

Requirements definition
Design of software and system
Implementation and unit testing
Integration and system testing
Operation and maintanance

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

Benefits (3) and drawbacks (1) of the waterfall model

A

B: Easy management
B: Efficient development of small systems
B: Easier to make a high quality software
D: Costly changes (require a lot of time and money)

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

What should developers/managers focus on, when obeying the waterfall model?

A

Focus on upper levels, because bugs there spread onto the rest of the steps

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

What is the first step in agile software development?

A

Software outline description/ baseline

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

What are the 3 concurrent activities done during agile development?

A

Specification
Development
Validation

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

Benefits (3) and drawbacks () of agile development

A

B: Low costs of implementing a change
B: Easy access to customer’s feedback
B: Quicker delivery and deployment
D: Hard to manage (low visibility)
D: Quality degradation with each change

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

What is the integration and configuration model about?

A

Already existing software/components reuse

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

What does the acronym COTS stand for?

A

Commercial Off The Shelt - software buyable on general market (for direct use and reuse in the software development)

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

3 types of software, that can be reused for development

A

Standalone apps
Packages with objects and functions integrated using frameworks
Web services available for remote invocation

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

What are the 4 activities (2 done concurrently) done at the beginning of the reuse-oriented software engineering?

A

Requirement specification
Software discovery
Software evaluation
Requirements refinement

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

In reuse-oriented software engineering, there are 2 types of appropriate software to reuse:

A

Whole application system
Certain components

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

What to do in the reuse-oriented software engineering, when an appropriate application system is available?

A

Just configure it to your needs

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

What to do in the reuse-oriented software engineering, when you find certain appropriate components (3 steps)?

A

Adapt components
Create missing ones
Integrate them all

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

Benefits (2) and drawbacks (2) of reuse-oriented software development

A

B: Reduced costs and development risks
B: Fast delivery and deployment
D: Possibly a need for compromises
D: Loss of control over reused component evolution

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

What 3 tasks are done concurrently when creating requirements document?

A

Elicitation and analysis (What the customer wants; What the system could do)
Specification (Describing the details)
Validation (Checking the feasibility of requirements)

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

Give 3 main design “steps”:

A

Design inputs
Design activities
Design outputs

21
Q

Give 3 design inputs (1st phase of the design info)

A

Platform info (Windows, Linux Server)
Customer’s requirements (Customer wants a secure, company-internal, web-based data repository)
Data description (User will store pdf documents)

22
Q

What are the 4 design activities (2nd phase of design process):

A

Architectural design
Interface design
Component design
Database design

23
Q

Give 4 design outputs (3rd phase in design process)

A

System architecture
Database specification
Interface specification
Component specifcation

24
Q

3 stages of software testing

A

Component testing (unit testing)
System testing (system as a whole)
Acceptance testing (with customer’s data)

25
Plan-driven software process (V-model) 4 design/specification stages:
Requirements specification System specification System design Detailed design
26
Plan-driven software process (V-model) 4 test stages
Unit/Module tests Sub-system integration tests System integration tests Acceptance tests
27
Plan-driven software process (V-model) 3 test plans (give names of specification/design stages and test stages for each plans)
Acceptance plan (from Requirements specs. and System specs. to Acceptance tests) System integration test plan (from System specs. and System design to System integration tests) Sub-system integration test plan (from System design and Detailed design to Sub-system integration test)
28
4 stages of system evolution process
Define system requirements Assess existing/newly created systems (from the 4'th stage) Propose system changes Modify/Create systems
29
Give 3 main sources of the need for change in software projects
Business changes New technologies Changing platforms
30
2 ways of rework cost reduction
1. Change anticipation - help customer(s) and/or developer(s) find out possible changes earlier (ex. prototypes help with requirement specification [creating, modifying, checking the feasibility]) 2. Change tolerance - structure allowing for easier changes (i.e. less convoluded; standardised; generalised)
31
2 ways of dealing with changing requirements
1. Prototyping 2. Incremental delivery (interleaved specification and development)
32
4 uses of software prototype
1. Requirements assessing 2. Design aiding (exploring options) 3. Testing back-to-back 4. Training users
33
5 prototyping benefits
1. Improved usability 2. Help in finding the real customer needs 3. Better quality 4. Better maintainability 5. Reduced development effort
34
Describe the prototype development process (4 steps - What they are and what they produce?)
1. Establish objectives -> (Plan) 2. Define functionality -> (Outline) 3. Develop -> (Executable prototype) 4. Evaluate -> (Evaluation report)
35
What can be left out during prototyping? (3)
1. Well understood aspects 2. Error checking 3. Non-functional requirements (visuals; performance)
36
Why are prototypes bad as a basis for production? (4 reasons
1. Lack of documentation (typically) 2. Degraded structure due to rapid development 3. Insufficient quality 4. Non-functional requirements may be impossible to fulfill
37
What's the main difference between incremental development and incremental delivery?
Inc. dev. - Whole product delivered Inc. del. - Product delivered in increments
38
In incremental delivery what are the 3 steps before an increment development step?
1. Define outline reqs 2. Assign reqs to incs 3. Design system architecture
39
In incremental delivery what are the 3 steps between an increment development and deployment?
1. Validate increment 2. Integrate increment 3. Validate system
40
In incremental delivery what to do if system is complete and what to do if system is incomplete?
System complete -> System is finished System incomplete -> Develop another system increment
41
4 incremental delivery advantages
1. Functionalities avaliable earlier 2. Practical feedback 3. Lower risk of project failure 4. Most important components recieve most testing
42
2 main incremental delivery problems
Difficult to create general components Impossible to provide the complete initial software specification (sometimes required by some clients)
43
What does process improvment require and result in?
Requires understanding of the processes Affects overall product quality - Higher performance and lower cost
44
Steps in the cycle of process improvement
1. Measure 2. Analyze 3. Change
45
How can you approach the improvement from 2 different software dev. areas?
1. Management - Using software dev. methods and practices (process maturity) 2. Engineers - Iterative software improvement (agile)
46
List the process metrics
Time taken (May and June; 6 hours) Resources required (200 man-hours; 30k $) Number of occurances of a particular event (15 bugs detected; 6 customer complaints)
47
47
List (software engineering institute) capability maturity levels
1. **Initial** *(Uncontrolled)* 2. **Repeatable** *(Process broadly characterised)* 3. **Defined** *(Process taillored to company needs)* 4. **Quantitavely managed** (Process measured and controlled) 5. **Optimising** (Process under improvement)