software engineering is the science and art of building...

24
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 1 Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable performance 4) with correct operation.

Upload: others

Post on 05-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 1

Software Engineering

• Software Engineering is the science and art of

building significant software systems that are:

1) on time

2) on budget

3) with acceptable performance

4) with correct operation.

Page 2: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 2

Software Engineering

Yuvraj Bhairappa

Page 3: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 3

The economies of all developed nations are

dependent on software.

More and more systems are software controlled.

Software engineering is concerned with theories,

methods and tools for professional software

development.

Software engineering expenditure represents a

significant fraction of the GNP of developed

countries.

Software Engineering

Page 4: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 4

Software costs often dominate system costs. The

costs of software on a PC are often greater than

the hardware cost.

Software costs more to maintain than it does to

develop.

Software engineering is concerned with cost-

effective software development.

Software Costs

Page 5: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 5

Software Products

Generic products:– Stand-alone systems which are produced by a development

organization and sold on the open market to any customer.

Customized products:– Systems which are commissioned by a specific customer and

developed specially by some contractor.

Page 6: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 6

Software Product Attributes

Maintainability

Dependability

Efficiency

Usability

Page 7: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 7

Importance of Product Characteristics

The relative importance of these characteristics

depends on the product and the environment in

which it is to be used.

In some cases, some attributes may dominate– In safety-critical real-time systems, key attributes may be

dependability and efficiency.

Costs tend to rise exponentially if very high

levels of any one attribute are required.

Page 8: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 8

Efficiency Costs

Cost

Ef ficiency

Page 9: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 9

The Software Process

Structured set of activities required to develop a

software system– Specification

– Design

– Validation

– Evolution

Activities vary depending on the organization

and the type of system being developed.

Must be explicitly modeled if it is to be

managed.

Page 10: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 10

Engineering Process Model

Specification: Set out the requirements and

constraints on the system.

Design: Produce a model of the system.

Manufacture: Build the system.

Test: Check the system meets the required

specifications.

Install: Deliver the system to the customer and

ensure it is operational.

Maintain: Repair faults in the system as they

are discovered.

Page 11: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 11

Software Engineering is Different

Normally, specifications are incomplete.

Very blurred distinction between specification,

design and manufacture.

No physical realization of the system for testing.

Software does not wear out - maintenance

does not mean component replacement.

Page 12: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 12

Generic Software Process Models

Waterfall– Separate and distinct phases of specification and development

Evolutionary– Specification and development are interleaved

Formal Transformation– A mathematical system model is formally transformed to an

implementation

Reuse-based– The system is assembled from existing components

Page 13: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 13

Waterfall Process ModelRequirements

definition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

Page 14: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 14

Evolutionary Process Model

ValidationFinal

version

DevelopmentIntermediate

versions

SpecificationInitial

version

Outline

description

Concurrent

activities

Page 15: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 15

Process Model Problems

Waterfall– High risk for new systems because of specification and

design problems.

– Low risk for well-understood developments using familiar

technology.

Prototyping– Low risk for new applications because specification and

program stay in step.

– High risk because of lack of process visibility.

Transformational– High risk because of need for advanced technology and

staff skills.

Page 16: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 16

Hybrid Process Models

Large systems are usually made up of several

sub-systems.

The same process model need not be used for

all subsystems.

Prototyping for high-risk specifications.

Waterfall model for well-understood

developments.

Page 17: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 17

Spiral Process Model

Riskanalys is

Riskanalys is

Riskanalys is

Riskanalysis Proto-

type 1

Prototype 2

Prototype 3Opera-tionalprotoype

Concept o fOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

design

Code

Unit tes t

Integr ationtestAccep tance

testServ ice Develop, verifynext-level p roduct

Evaluate alternativesiden tify, resolve risks

Determine ob jectivesalternatives and

constraints

Plan next phase

Integrationand test p lan

Developmentplan

Requirements planLife-cycle plan

REVIEW

Page 18: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 18

Spiral Model Advantages

Focuses attention on reuse options.

Focuses attention on early error elimination.

Puts quality objectives up front.

Integrates development and maintenance.

Provides a framework for hardware/software

development.

Page 19: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 19

Spiral Model Problems

Contractual development often specifies

process model and deliverables in advance.

Requires risk assessment expertise.

Page 20: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 20

Process Visibility

Software systems are intangible so managers

need documents to assess progress.

Waterfall model is still the most widely used

model.

Page 21: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 21

Waterfall Model Documents

Activity Output docume nts

Requirements analysis Feasibility study, Outline requi rements

Requirements definition Requirements document

System specification Functional specification, Acceptance test planDraft user manual

Architectural design Architectural specification, Sys tem tes t plan

Interface design Interface specification, Integration test plan

Detailed design Design specification, Unit test plan

Coding Program code

Unit testing Unit test report

Module testing Module test report

Integration testing Integration test report, Final user manual

System testing System test report

Acceptance testing Final system plus documentation

Page 22: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 22

Process Model Visibility

Process model Process visibility

Waterfall model Good vis ibility, each activity produces somedeliverable

Evolutionarydevelopment

Poor visibility, uneconomic to producedocuments during rapid iteration

Formaltransformations

Good visibility, documents must be producedfrom each phase for the process to continue

Reuse-orienteddevelopment

Moderate visibility, it may be artificial toproduce documents describing reuse andreusable components.

Spiral model Good vis ibility, each segment and each ringof the spiral should produce some document.

Page 23: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 23

Professional Responsibility

Software engineers should not just be concerned

with technical considerations. They have wider

ethical, social and professional responsibilities.

No clear rights and wrongs about many of these

issues:– Development of military systems

– Whistle blowing

Page 24: Software Engineering is the science and art of building ...dcomm.org/wp-content/uploads/2019/05/Software-engineering-PPT2.pdf · ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 24

Ethical Issues

Confidentiality

Competence

Intellectual property rights

Computer misuse