Introduction & Software Process Models Flashcards

1
Q

What is Software Engineering?

A

Software Engineering is an engineering disipline that is concerned with all aspects of software production from initial conception to operation and maintenance.

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

What are the key challenges facing software engineering?

A

Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software.

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

What are the best software engineering techniques and methods?

A

Different techniques are appropriate for different types of systems. There are no methods and techniques that are good for everything.

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

What are the costs of software engineering?

A

Roughly 60% of software costs are development costs, 40% are testing costs.

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

What is the difference between software engineering and computer science?

A

Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.

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

Is software engineering intended to support individual programming?

A

Not really. Software engineering is intended to support professional software development. It includes techniques that support program specification, design and evolution.

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

Is software just another word for computer programs, or is it more than that?

A

Software is not just the programs themselves, but also all associated documentation, libraries, support websites and configuration data that are needed to make these programs useful.

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

What are the two kinds of software product?

A

Generic products - standalone systems that are produced by a development organisation and sold on the open market to any customer who is able to buy them.
Customized (or bespoke) software - systems that are commissioned by and developed for a particular customer.

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

Why is the distinction between generic products and customized software becoming increasingly blurred?

A

More and more systems are built with a generic product as a base, which is then adapted to suit the requirements of a customer.

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

What is a software process?

A

A sequence of activities that leads to the production of a software product.

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

What are the four fundamental activities that are common to all software processes?

A

Software specification, software development, software validation, software evolution.

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

What is software specification?

A

Where customers and engineers define the software that is to be produced and the constraints on its operation.

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

What is software development?

A

Where the software is designed and programmed.

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

What is software validation?

A

Where the software is checked to ensure that it is what the customer requires.

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

What is software evaluation?

A

Where the software is modified to reflect changing customer and market requirements.

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

What is perhaps the most significant factor in determining which software engineering methods and techniques are most important?

A

The type of application being developed.

17
Q

What are some software engineering fundamentals that apply to all types of software system?

A

Should be developed using a managed and understood development process.
Dependability and performance are important.
Understanding and managing the software specification and requirements are important,
Where appropriate, you should reuse software that has already been developed.

18
Q

What is a software process model sometimes also called?

A

Software Development Life Cycle or SDLC model.

19
Q

What is the waterfall model?

A

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

20
Q

What is incremental development?

A

Approach that 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.

21
Q

What is integration and configuration?

A

Approach that relies on availability of reusable components or systems. The system development process focuses on configuring these components for use in a new setting and integrating them into a system.

22
Q

Does it make sense to combine elements from e.g. both the waterfall method and the incremental development method?

A

Yes, in practice a lot of projects will use elements from all 3 general models.

23
Q

What are the stages of the 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.

24
Q

Software typically has to be flexible and accommodate change as it is being developed. What types of system is the waterfall model appropriate for?

A

Embedded systems where the software has to interface with inflexible hardware systems.
Critical systems where there is a need for extensive safety and security analysis of the software specification and design.

25
Q

When is the waterfall model not the right process model?

A

In situations where informal team communication is possible and requirements change quickly.

26
Q

Are activities separated in the incremental development model?

A

No. The specification, development, and validation activities are interleaved rather than separate.

27
Q

What are some advantages of incremental development over the waterfall model?

A

1) The cost of implementing requirements changes is reduced.
2) It is easier to get customer feedback on the development work.
3) Early delivery and deployment is possible, so customers can gain value from the software earlier.