Lecture 1 Flashcards

1
Q

Software Engeneering

A
  1. engeneering discipline concerned with all aspects of software production (early stages of system specifications –> maintenance)
  2. Concerned with professional software development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

SE Activities

A

Software Specification
Software Development
Software Validation
Software Evolution

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

Software Specification

A

Specification of steps, rules, processes to build software

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

1968

A

Software engeneering started as a tem with the objective to adress the software crisis caused by individual aproaches to development not scaling up to complex systems

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

Software Validation

A

testing the software

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

Sfotware Development

A

development of tools, framerorks…

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

Software Evolution

A

Management of the software development over its lifetime

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

Issues of Software

A

Heterogeneity - different types of computer and devices for distributed software
Bussines/Social change - software needs to respond well to quick changes
Security, Trust, Privacy - we must trust the software as it is ubiquitous

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

Software Engeneering Fundamentals

A
  1. Software should be developed using a managed and understood process
  2. Dependability and performance - important for all kinds of systems
  3. Software specification and requirements need to be well understood
  4. Reuse software already deployed where applicable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Software Engeneering Process (definition)

A

A structured set of activities required to develop a software system
(Process: series of actions or steps taken to achieve a particular end)

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

SEP Activities

A
  1. Specification - what software does
  2. Design - how it does it
  3. Implementation
  4. Test and validation
  5. Maintenance and Evolution - changing sofotware over time according to customer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Software Process Model

A

Abstract representation of a process. Is composed of:
- Activities: what steps are defined by the model
- Products: outcomes of a process activity
- Roles: responsibilities of the people involved
- Pre and Post Conditions: statements true before and after an activity has been enacted or a product produced

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

Types of Software Process Models

A

Plan Driven - All activities are planned in advance and progress is measured against set plam
Agile - Planning is incremental. Easier to change the process to reflect change in requirements

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

Waterfall Model (general)

A

Plan Driven, Sequential and separate activities.

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

Reuse Oriented SE

A

Software is assembled from existing components. Plan driven/agile

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

Waterfall Steps (general)

A

Analysis - requirements and specifications
Design - Solution proposal and description
Implementing and unit testing - coding and testing
Integration, system testing and deployment
Maintenance and Evolution
(one after another)

17
Q

Waterfall: Analysis

A

Establishes required functionality and contraints on the software operation and dev.
Requirements engeneering process:
- Feasability study
- Requirements elicitation and analysis
- Requirements specification
- Requirements validation

18
Q

Waterfall: Design

A

Design a solution meeting the requirements specification.

19
Q

Waterfall: Implementation

A

Translate the design into executable program. Design and implementation are often interleaved

20
Q

Waterfall: Integration, Testing, Deployment

A

Verification and validation - the software conforms to its specifications and meets requirements
Testing: Execute system with test cases.

21
Q

Waterfall: Maintenance and Evolution

A

Solve bugs and other issues, improve existent functionality, extend software with additional features

22
Q

Waterfalll: Advantages and Limitations

A

+ Applied where requirements are stable. Useful for coordinating large projects with development on several sites. Easy to follow progress
- Does not cope well with changes in the requirements and is not flexible.
Suitable for:
- Embedded systems
- Critical Systems (need for safety and security)
- Large Software Systems

23
Q

Incremental Development

A

Activities are interleaved. Can be plan driven or agile

Objective: Cope with changes

System is develops in increments, evaluated (by user/customer proxy) before proceeding.

Requirements are prioritized (high priority adressed early). During dev, req are frozen and later adressed.

24
Q

Incremental Delivery

A

Deploy an increment for use by end-users –> more realistic evaluation about practical use.

25
Q

Incremental Development Advantages and Limitations

A

+ Customer value is delivered with each increment and functionality is available earlier. Early increments can help elicit requirements for later increments. Low risk of project failure. Highest priority functionality receives the most testing

  • Process is not visssible. Structure degrades as increments are added. Hard to identify common facilities for all increments.
26
Q

Bohem’s Spiral Model

A

Loop in spiral = phase in process
No fixed phases, loops are chosen depending on what is required
Risks are explicitly assessed and resolved throughout the process

27
Q

Spiral Model Sectors

A

Objective Setting
Risk assessment and reduction
Development and validation
Planning - project is reviewed, next phase is planned

28
Q

Spiral Model Usage

A

Introduced iteration and risk-driven approach to development in software processes
Model rarelly used in practice

29
Q

Reuse Oriented SE

A

reuse of available software. Systems are integrated from existing components or commercial off the shelf systems.
Standard approach for building many types of bussines systems