You are on page 1of 23

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.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 1

Software Engineering

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, 6th edition. Chapters 1,3 Slide 2

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Costs

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 costeffective software development.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 3

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.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 4

Software Product Attributes

Maintainability Dependability Efficiency Usability

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 5

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.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 6

Efficiency Costs
Cost

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

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.
Software Engineering, 6th edition. Chapters 1,3 Slide 8

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

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.
Software Engineering, 6th edition. Chapters 1,3 Slide 9

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

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.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 10

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

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 11

Waterfall Process Model


Requirements definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 12

Evolutionary Process Model


Concurr ent activities Initial version Specification

Outline description

Development

Intermediate versions

Validation

Final version

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 13

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.
Software Engineering, 6th edition. Chapters 1,3 Slide 14

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

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.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 15

Spiral Process Model


Determine ob jectiv es alternatives and cons traints Risk analys is Risk analys is Risk analys is Prototyp e 3 Prototyp e 2 Operational protoyp e Ev aluate altern atives id en tify, resolve risk s

REVIEW Requirements plan Life-cycle plan

Ris k analys is Prototy pe 1 Concept o f Operation

Simulations, models, b en ch marks S/W requirements Prod uct design

Develop ment plan Integration and test p lan

Plan next p has e

Code Unit tes t Design V&V Integr ation test Accep tance test Develop, v erify Serv ice next-level p rod uct

Requirement valid ation

Detailed design

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 16

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.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 17

Spiral Model Problems


Contractual development often specifies process model and deliverables in advance. Requires risk assessment expertise.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 18

Process Visibility

Software systems are intangible so managers need documents to assess progress. Waterfall model is still the most widely used model.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 19

Waterfall Model Documents


Activ ity Requirements analysis Requirements definition System specification Architectural design Interface design Detailed design Coding Unit testing Module testing Integration testing System testing Acceptance testing Output documents Feasibility study, Outline requirements Requirements document Functional specification, Acceptance test plan Draft user manual Architectural specification, System test plan Interface specification, Integration test plan Design specification, Unit test plan Program code Unit test report Module test report Integration test report, Final user manual System test report Final system plus documentation
Software Engineering, 6th edition. Chapters 1,3 Slide 20

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Process Model Visibility


Proces s model Waterfall mod el Evolu tionary develop ment Formal tran sformations Reuse-oriented develop ment Spiral model Proces s visibility Goo d visibility, each activity produ ces some deliverable Poor visibility , u neco nomic to pro duce documen ts during rapid iteration Goo d visibility, documents mu st be prod uced fro m each phase for the pro cess to continu e Moderate visib ility, it may be artificial to pro duce do cuments describ ing reuse an d reusable compo nents. Goo d visibility, each segmen t and each ring of the spiral should pro duce some do cument.

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 21

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

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 22

Ethical Issues

Confidentiality Competence Intellectual property rights Computer misuse

Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999)

Software Engineering, 6th edition. Chapters 1,3

Slide 23

You might also like