You are on page 1of 43

Software Engineering

An Introduction

Fakhar Lodhi

Engineering
The science concerned with putting scientific knowledge to practical use.
Websters Dictionary

Physics versus Electrical Engineering

Software Engineering
The science concerned with putting computer science knowledge to practical use. Computer Science versus Software Engineering

Software Engineering - IEEE


1.

2.

The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. The study of approaches as in 1.

One of the largest efforts in Software Engineering has been the design of Ada Programming Language!
4

Breakdown of Effort Cost - Software Cost


Estimation by Capers Jones
No. Activity 1 Requirements 2 Prototyping 3 Architecture 4 Project Plans 5 Initial Design 6 Detailed Design 7 Design Reviews 8 Coding 9 Reuse acquisition 10 Package Purchase 11 Code Inspection 12 Independent V&V Effort 3.84% 4.50% 2.25% 1.33% 3.84% 4.50% 3.02% 13.50% 1.13% 1.69% 4.50% 5.42% 13 14 15 16 17 18 19 20 21 22 23 24 25 Configuration Mgt. Integration User Documentation Unit Testing Function Testing Integration Testing System Testing Beta Testing Acceptance Testing Independent Testing Quality Assurance Installation and Training Project Management 0.41% 2.71% 9.67% 4.50% 4.50% 3.84% 3.38% 3.02% 1.94% 3.38% 4.50% 1.94% 6.75%

Effort Breakdown of ~10000 Projects - Capers Jones


Project Management Requirements Design Coding SQA SCM Integration Misc. 8.08% 14.43% 11.36% 13.50% 30.64% 13.02% 6.54% ~3%

Software Development
Management project planning and management configuration management quality assurance installation and training etc. Requirements Design Coding Testing Maintenance etc.

Construction

Basic Activities of Software Engineering

defining the software development process to be used managing the development project describing the intended software product designing the product implementing the product testing the parts of the product integrating the parts and testing them as a whole maintaining the product

The Four Ps of Software Engineering


Project People Process Product the task at hand by whom it is done the manner it is done the artifacts produced

Well-Engineered Software

Provides the required functionality Maintainable Reliable Efficient User-friendly Cost-effective

10

Well-Engineered Software - contd.

These requirements may be conflicting:


Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface

Law of diminishing returns. Challenge is to balance these requirements.

11

Software Life-Cycle Models


The way you organize your activities The steps through which the product progresses

Requirements phase Specification phase Design phase Implementation phase Integration phase Maintenance phase Retirement

12

Software Processes
Build-and-fix model Waterfall model Rapid prototyping model Incremental model Extreme programming Synchronize-and-stabilize model Spiral model Object-oriented life-cycle models Comparison of life-cycle models
13

Build and Fix Model


Problems

No specifications No design

Totally unsatisfactory Need life-cycle model


Game plan Phases Milestones

14

Waterfall Model (contd)


Characterized by

With or without feedback loops Documentation-driven Documentation Maintenance easier Client feedback

Advantages

Disadvantages

15

Rapid Prototyping Model


Linear model Rapid Horizontal versus vertical prototyping

16

Three Key Points


Do not turn into product Rapid prototyping may replace specification phasenever the design phase Comparison:

Waterfall modeltry to get it right first time Rapid prototypingfrequent change, then discard

17

Waterfall and Rapid Prototyping Models


Waterfall model

Many successes Client needs Cannot be used for robust applications Rapid prototyping for requirements phase Waterfall for rest of life cycle

Rapid prototyping model

Solution

18

Incremental Model
Divide project into builds

19

Incremental Model (contd)


Waterfall, rapid prototyping models

Operational quality complete product at end Operational quality portion of product within weeks

Incremental model

Less traumatic Smaller capital outlay, rapid return on investment Need open architecturemaintenance implications Variations used in object-oriented life cycle
20

Incremental Model (contd)


Problems

Build-and-fix danger Contradiction in terms

21

Incremental Model (contd)


More risky versionpieces may not fit

CABTAB and its dangers

22

Code a bit, test a bit CABTAB


Haphazard undisciplined approach

23

Extreme Programming
Somewhat controversial new approach Stories (features client wants) Estimate duration and cost of each story Select stories for next build Each build is divided into tasks Test cases for task are drawn up first Pair programming Continuous integration of tasks
24

Extreme Programming

25

Unusual Features of XP
Computers are put in center of large room lined with cubicles Pair programming with shared computers Client representative is always present Cannot work overtime for 2 successive weeks No specialization Refactoring

26

Evaluating XP
XP has had some successes Good when requirements are vague or changing Too soon to evaluate XP

27

Dilbert on eXtreme Programming

28

Synchronize-and Stabilize Model


Microsofts life-cycle model Requirements analysisinterview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel

29

Synchronize-and Stabilize Model (contd)


At the end of the daysynchronize (test and debug) At the end of the buildstabilize (freeze build) Components always work together

Get early insights into operation of product

30

Spiral Model
Simplified form

Waterfall model plus risk analysis Alternatives Risk analysis Evaluation Planning of next phase

Precede each phase by


Follow each phase by


31

Simplified Spiral Model


If risks cannot be resolved, project is immediately terminated

32

Full Spiral Model


Radial dimension: cumulative cost to date Angular dimension: progress through the spiral

33

Full Spiral Model (contd)

34

Analysis of Spiral Model


Strengths

Easy to judge how much to test No distinction between development, maintenance

Weaknesses

For large-scale software only For internal (in-house) software only

35

Object-Oriented Life-Cycle Models


Need for iteration within and between phases

Fountain model Recursive/parallel life cycle Round-trip gestalt Unified software development process Iteration Parallelism Incremental development CABTAB

All incorporate some form of


Danger
36

Conclusions
Different life-cycle models Each with own strengths Each with own weaknesses Criteria for deciding on a model include

The organization Its management Skills of the employees The nature of the product Mix-and-match life-cycle model

Best suggestion
37

Quality Assurance?
There is NO QA phase QA is an activity performed throughout software production Verification

Performed at the end of each phase Performed before delivering the product to the client

Validation

38

Documentation Phase?
There is NO documentation phase Every phase must be fully documented before starting the next phase

Postponed documentation may never be completed The responsible individual may leave The product is constantly changingwe need the documentation to do this The design (for example) will be modified during development, but the original designers may not be available to document it

39

Phase
Requirement Definition Functional Specification

Documents
Rapid prototype, or Requirements document Specification document (specifications) Software Product Management Plan Architectural Design Detailed Design Source code Test cases Source code Test cases Change record Regression test cases

QA
Rapid prototype Reviews Traceability FS Review Check the SPMP Traceability Review Traceability Review Testing Integration testing Acceptance testing Regression testing

Design Coding

Integration Maintenance

40

Traceability matrix
Requirement Use Case UID ID ID Class/ function Test Case ID

41

Questions?

42

Thank you!

43

You might also like