/
Introduction to Software Engineering Introduction to Software Engineering

Introduction to Software Engineering - PowerPoint Presentation

bikershomemaker
bikershomemaker . @bikershomemaker
Follow
343 views
Uploaded On 2020-06-22

Introduction to Software Engineering - PPT Presentation

Lecture 3 André van der Hoek Todays Lecture What makes software engineering difficult An introduction to software life cycle models Visibility vs Invisibility Software as is cannot be viewed meaningfully ID: 782653

verify phase implementation design phase verify design implementation integration test specification risk analysis maintenance retirement mode operations development version

Share:

Link:

Embed:

Download Presentation from below link

Download The PPT/PDF document "Introduction to Software Engineering" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Introduction to Software EngineeringLecture 3

André

van der

Hoek

Slide2

Today’s Lecture

What makes software engineering difficult?

An introduction to software life cycle models

Slide3

Visibility vs…

Slide4

…Invisibility

Software as is cannot be viewed meaningfully

Stack of paper

Set of files

Software cannot be interpreted easily

How to read source code?How to read a million lines of source code?How to read a part of source code?

Invisibility affects processHow to measure progress?Is a bigger stack of paper closer to the end-result than a smaller stack of paper?

Slide5

Manageable Complexity vs…

Slide6

…Unmanageable Complexity

Software cannot be easily abstracted

Formulas

Only in very few domains

Diagrams, graphs, and other representations

Typically non-hierarchicalFar too many cross-references

Few concepts are available to use in an abstractionTension between high-level understanding and low-level detailed specificationHigh-level understanding leaves out important detailsAggregation often does not work

Slide7

Environment Can Be Changed vs…

Slide8

…Environment Cannot Be Changed

Software has to adhere to the “world” in which it is placed

Cannot change the hardware

Cannot change the way people do business

The “world” is often not clearly specified

How can you change something that you cannot specify?Leads to many software changes

Perception is that software is easier to change

Slide9

No Major Changes vs…

Slide10

…Major Changes

Software is remarkably easy to change

Change the source code, recompile, rerun

“One line here, one line there”

Unfortunately, even small changes can have disastrous consequences

A single wrong character can surreptitiously change the behavior of the softwareThe effects of most changes are only visible in certain circumstances

Sometimes, the environment does changeSoftware is used in different organizationsSoftware is used for different purposes

Slide11

Drastic Consequences

Deceased patients

X-ray machine delivered very high doses because of a timing problem in its control software

Crashed planes

Software prevented pilots from performing emergency maneuvers

Software had similar codes for different airportsDecreased national security

NSA computers down for four days due to a “software problem”

Peter Neumann’s Risks Digest: http://catless.ncl.ac.uk/Risks

Slide12

High Cost

[Schach]

Slide13

Cost of Change Progressively Higher

[Schach]

Slide14

Processes as a Remedy

Institute processes through which software is engineered

Cover all steps from initial idea and requirements to delivery, maintenance, and final retirement

Make sure we do the right things/things right

Make sure we do not forget to do anything

Different processes for different kinds of software

Not a silver bullet [Brooks “No Silver Bullet”]Software is still intrinsically difficult to deal withProcesses help, but cannot guarantee anything

Remember: People + Processes + Tools

 Product

Slide15

Processes

Elements

Activities (“Phases”)

Artifacts

Can include process specifications

Resources

People (their time and their cost)Tools (their time and their cost)Relationships between the elementsPrecedence, requires, provides, refines to, …Constraints

TimeCostQualities (repeatable process?)

Slide16

Software Life Cycle Models

Build-and-fix

Waterfall

Rapid prototyping

Incremental

Synchronize-and-stabilizeSpiral

A software life cycle model is a high-level process

Slide17

Build-and-Fix

Build first

version

Modify until

client is satisfied

Operations mode

Retirement

Development

Maintenance

Slide18

Build-and-Fix

Build first

version

Modify until

client is satisfied

Operations mode

Retirement

Development

Maintenance

Slide19

Build-and-Fix

Build first

version

Modify until

client is satisfied

Operations mode

Retirement

Development

Maintenance

Slide20

Build-and-Fix

Build first

version

Modify until

client is satisfied

Operations mode

Retirement

Development

Maintenance

Slide21

Build-and-Fix

Build first

version

Modify until

client is satisfied

Operations mode

Retirement

Development

Maintenance

Slide22

Build-and-Fix

Build first

version

Modify until

client is satisfied

Operations mode

Retirement

Development

Maintenance

Slide23

Build-and-Fix

Build first

version

Modify until

client is satisfied

Operations mode

Retirement

Development

Maintenance

Slide24

Build-and-Fix

Build first

version

Modify until

client is satisfied

Operations mode

Retirement

Development

Maintenance

Slide25

Build-and-Fix

Build first

version

Modify until

client is satisfied

Operations mode

Retirement

Development

Maintenance

Slide26

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide27

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide28

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide29

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide30

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide31

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide32

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide33

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide34

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide35

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide36

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide37

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide38

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide39

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide40

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide41

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide42

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide43

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide44

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide45

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide46

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide47

Waterfall

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide48

Rapid Prototyping

Operations mode

Retirement

Build and discard

simple prototype

Verify

Specification

phase

Verify

Design

phase

Verify

Implementation

phase

Test

Integration

phase

Test

Changed

requirementsVerify

Development

Maintenance

Slide49

FOR EACH BUILD

Perform detailed design,

implementation, and

integration. Test.

Deliver to client.

Incremental

Operations mode

Retirement

Requirements

phase

Verify

Specification

phase

Verify

Architectural

design

Verify

Development

Maintenance

Slide50

Synchronize-and-Stabilize

Specifications

Implementation,

Integration

Deliver to

client (version 1)

Specifications

Design

Implementation,

Integration

Deliver to

client (version 2)

Specifications

Design

Implementation,

Integration

Deliver to

client (version 3)

Specifications

Design

Implementation,Integration

Deliver toclient (version n)

...

.....

.

Specification team

Design team

Implementation/integration team

Design

Slide51

Synchronize-and-Stabilize

Specifications

Implementation,

Integration

Deliver to

client (version 1)

Specifications

Design

Implementation,

Integration

Deliver to

client (version 2)

Specifications

Design

Implementation,

Integration

Deliver to

client (version 3)

Specifications

Design

Implementation,Integration

Deliver toclient (version n)

...

.....

.

Specification team

Design team

Implementation/integration team

Design

Slide52

Synchronize-and-Stabilize

Specifications

Implementation,

Integration

Deliver to

client (version 1)

Specifications

Design

Implementation,

Integration

Deliver to

client (version 2)

Specifications

Design

Implementation,

Integration

Deliver to

client (version 3)

Specifications

Design

Implementation,Integration

Deliver toclient (version n)

...

.....

.

Specification team

Design team

Implementation/integration team

Design

Slide53

Synchronize-and-Stabilize

Specifications

Implementation,

Integration

Deliver to

client

version 1

Specifications

Design

Implementation,

Integration

Deliver to

client version 2

Specifications

Design

Implementation,

Integration

Deliver to

client version 3

Specifications

DesignImplementation,Integration

Deliver toclient version n

...

....

..

Specification team

Design team

Implementation/integration team

Design

Slide54

Synchronize-and-Stabilize

Specifications

Implementation,

Integration

Deliver to

client

version 1

Specifications

Design

Implementation,

Integration

Deliver to

client

version 2

Specifications

Design

Implementation,

Integration

Deliver to

client version 3

SpecificationsDesignImplementation,

IntegrationDeliver toclient version n

...

...

...

Specification team

Design team

Implementation/integration team

Design

Slide55

Synchronize-and-Stabilize

Specifications

Implementation,

Integration

Deliver to

client

version 1

Specifications

Design

Implementation,

Integration

Deliver to

client

version 2

Specifications

Design

Implementation,

Integration

Deliver to

client version 3

SpecificationsDesignImplementation,

IntegrationDeliver toclient version n

...

...

...

Specification team

Design team

Implementation/integration team

Design

Slide56

Spiral

Risk

analysis

Risk

analysis

Risk

analysis

Risk

analysis

Rapid

prototype

Specification

Design

Implementation

Verify

Verify

Verify

Verify

Slide57

Spiral

Risk

analysis

Risk

analysis

Risk

analysis

Risk

analysis

Rapid

prototype

Specification

Design

Implementation

Verify

Verify

Verify

Verify

Slide58

Spiral

Risk

analysis

Risk

analysis

Risk

analysis

Risk

analysis

Rapid

prototype

Specification

Design

Implementation

Verify

Verify

Verify

Verify

Slide59

Spiral

Risk

analysis

Risk

analysis

Risk

analysis

Risk

analysis

Rapid

prototype

Specification

Design

Implementation

Verify

Verify

Verify

Verify

Slide60

Spiral

Risk

analysis

Risk

analysis

Risk

analysis

Risk

analysis

Rapid

prototype

Specification

Design

Implementation

Verify

Verify

Verify

Verify

Slide61

Spiral

Risk

analysis

Risk

analysis

Risk

analysis

Risk

analysis

Rapid

prototype

Specification

Design

Implementation

Verify

Verify

Verify

Verify

Slide62

Spiral

Risk

analysis

Risk

analysis

Risk

analysis

Risk

analysis

Rapid

prototype

Specification

Design

Implementation

Verify

Verify

Verify

Verify

Slide63

Spiral

Risk

analysis

Risk

analysis

Risk

analysis

Risk

analysis

Rapid

prototype

Specification

Design

Implementation

Verify

Verify

Verify

Verify

Slide64

Spiral

Risk

analysis

Risk

analysis

Risk

analysis

Risk

analysis

Rapid

prototype

Specification

Design

Implementation

Verify

Verify

Verify

Verify

Full spiral model is discussed in Sommerville

Slide65

Boehm’s Top Ten Software Risks

Personnel shortfalls

Unrealistic schedules and budgets

Developing the wrong software functions

Developing the wrong user interface

“Gold plating”

Continuing stream of requirements changes

Shortfalls in externally furnished componentsShortfalls in externally performed tasks

Real-time performance shortfallsStraining computer-science capabilities

Slide66

A Comparison of Life Cycle Models

Model

Strengths

Weaknesses

Build-and-Fix

Fine for small programs that do not require much maintenance

Totally unsatisfactorily for nontrivial programs

Waterfall

Disciplined approach

Document driven

Delivered product may not meet client’s needs

Rapid

Prototyping

Ensures that delivered product meets client’s needs

A need to build twice

Cannot always be used

Incremental

Maximizes early return on investment

Promotes maintainability

Requires open architecture

May degenerate into build-and-fix

Synchronize-

and-stabilize

Future user’s needs are met

Ensures components can be successfully integrated

Has not been widely used other than in Microsoft

Spiral

Incorporates features of all the above models

Can be used only for large-scale products

Developers have to be competent at risk-analysis

Slide67

Homework

Read

Chapter

3 of van

Vliet