Software Engineering: Dr.N.D.Kodikara, UCSC

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 36

Software Engineering

Overall Objectives:

After successfully completing this module, students should be able to:

Explain the software engineering principles and techniques in developing quality software products
Apply software engineering principles and techniques appropriately in developing a moderately complex software system
Dr.N.D.Kodikara, UCSC

Main References

1. Ian Sommerville, Software Engineering, 6th Edition, Addison Wesley, 2000.


2. R Pressman, Software Engineering - A Practitioners Approach, 5th Edition, McGraw Hill.

Dr.N.D.Kodikara, UCSC

Software Engineering
Introduction
Learning Outcomes Appreciate the problems associated with developing software

Understanding the need for a managed approach to software


development Be able to define the term Software Engineering

Identify software quality attributes and their classification

Dr.N.D.Kodikara, UCSC

Software

Instructions given to a computer (computer programs)

Systems software

Application software

Dr.N.D.Kodikara, UCSC

Types of software
System Software: System software is a collection of programs written to service the other programs.

eg. Operating systems, drivers, communication software.

compilers

Dr.N.D.Kodikara, UCSC

Types of software
Business software: System have evolved into management information system software that access one or more large database containing business information.

Embedded software:
Embedded software resides in read-only memory and is used to control product and system for the customer and industrial markets.
Dr.N.D.Kodikara, UCSC

Types of software
Engineering and scientific software: They have been characterized by number crunching algorithms.

Personal computer software:


Personal computer software market has burgeoned over the past two decades. Word processing, spreadsheets, computer graphic, multimedia and db management
Dr.N.D.Kodikara, UCSC

Types of software
Web-based software: The network becomes a massive computer providing an almost unlimited software resources that can be accessed by anyone with a modem.

Artificial intelligence software:


AI software makes use of nonnumerical algorithms to solve the complex problems that are not amenable to computing or straightforward analysis.
Dr.N.D.Kodikara, UCSC

Hardware vs Software
cost software

hardware

Time 1960
Dr.N.D.Kodikara, UCSC

2002

Failure curve for hardware


Failure rate

[Pressman]

Infant
mortality

Wear out

Time
Dr.N.D.Kodikara, UCSC

Failure rate

Failure curves for software -Pressman


Increase failure rates due to side effects

change Actual curve Idealized curve Time


Dr.N.D.Kodikara, UCSC

Development Failures
IBM Survey, 2000 55% of systems cost more than expected

68% overran the schedules


88% had to be substantially redesigned

Bureau of Labour Statistics (2001)


for every 6 new systems put into operation, 2 cancelled probability of cancellation is about 50% for large systems average project overshoots schedule by 50%
Dr.N.D.Kodikara, UCSC

Over Budget
Home Office IT project millions over budget

Home Office (UK) IT project run by Bull Information Systems is expected to blow its budget by millions of pounds and is hampered by a restrictive contract, according to a leaked report. The National Audit Office Report is expected to reveal damning evidence that the project to implement two systems the National Probation Service Information System, and the Case Record and Management System will cost 118m pounds by the end of the year, 70% over its original budget.
www.computing.co.uk/News/111627
Dr.N.D.Kodikara, UCSC

Over Schedule
New air traffic system is already obsolete National Air Traffic Services (Nats) is already looking at replacing the systems at its new control center at Swanwick in Hampshire, even though the system doesnt become operational until next week. This project is six years late and 180m pounds over budget.

Swanwick was originally meant to be operational by 1997, but problems with the development of software by Lockheed Martin caused delays, according to Nats.

www.vnunet.com/News/1128597
Dr.N.D.Kodikara, UCSC

Safety London Ambulance Dispatching System The full introduction of the computer system effectively did away with the radio and telephone calls to stations, with the computer dispatching crews to answer calls. But within hours, during the morning rush, it became obvious to crews and control room staff that calls were going missing in the system; ambulances were arriving late or doubling up on calls. Distraught emergency callers were also held in a queuing system which failed to put them through for up to 30 minutes. Chris Humphreys, Nupes divisional officer, said that it was hard to verify how many people might have died because of the delays but it could be as many as 20. Causes : The managers who produced the software were nave. They made a terrible mistake of trying to go on-line abruptly, without running the new and old systems together for a while.

http:/128.240.150.127/Risks/13.88.html#subj1.1
Dr.N.D.Kodikara, UCSC

Programming/testing Error Ariane 5 (June 1996)

It took the European Space Agency 10 years and $7 billion to produce Ariane 5, a giant rocket capable of hurling a pair of three ton satellites into orbit.
At 39 seconds after launch, as the rocket reached an altitude of two and a half miles, a self-destruct mechanism finished off Ariane 5, along with its payload of two expensive and uninsured scientific satellites. The rocket was making an abrupt course correction that was not needed, compensating for a wrong turn that had not taken place.
Dr.N.D.Kodikara, UCSC

The cause (Ariane 5)


Steering was controlled by the on-board computer, which mistakenly thought the rocket needed a course change because of the numbers, which in fact was an error, coming from the inertial guidance system. The guidance system had in fact shut down 36.7 seconds after launch, when the guidance systems own computer tried to convert one piece of data the sideways velocity of the rocket from a 64 bit format to a 16 bit format = overflow error.

Dr.N.D.Kodikara, UCSC

The Statistics
Project completion Delivered and operational but over budget, over schedule or with fewer features and functions Cancelled before they were completed 53% On time,on budget, with all of the specified features and functions
Dr.N.D.Kodikara, UCSC

16%

31%

Distribution of software cost over life cycle 1. Requirements capture 2. Requirement specification 14% 3. Design 4. Implementation 5. Testing 6% 6. Maintenance 60%
Dr.N.D.Kodikara, UCSC

40%

Software Problems
1. Time Schedules and cost estimates of many software projects are grossly inaccurate. 2. Software is costly. 3. The quality of software is not satisfactory. 4. Software is difficult to maintain. 5. The productivity of software people is not satisfactory to meet the demand.
Dr.N.D.Kodikara, UCSC

What makes software special?


The main difference in software engineering compared to other engineering disciplines are listed below. 1. It is difficult for a customer to specify requirements completely. 2. It is difficult for the developer to understand fully the customer needs. 3. Software requirements change regularly. 4. Software is primarily intangible; much of the process of creating software is also intangible, involving experience, thought and imagination. 5. It is difficult to test software exhaustively.
Dr.N.D.Kodikara, UCSC

A Solution Software Engineering


Greater emphasis on systematic , scientific development. Computer assistance in software development (CASE)

A concentration on finding out the users requirements


Formal/Semi Formal specification of the requirements of a system.

Demonstration of early version of a system (prototyping)


Grater emphasis on development of error free easy to understand code.

Dr.N.D.Kodikara, UCSC

Evolution of software engineering 1. Software development began as a single person activity in 1940s and 1950s. 2. Software engineering was considered a new scientific discipline in 1960s and 1970s. 3. In 1980s and 1990s engineering ideas dominated software development
Dr.N.D.Kodikara, UCSC

Software Engineering
Definitions
Simple definition : Designing, building and maintening large software systems.

Others
=> Software engineering is concerned with the theories, methods and tools for developing, managing and evolving software products - I Sommerville
Dr.N.D.Kodikara, UCSC

=> The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them
- B.W.Boehm => The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines

- F.L. Bauer
=> The application of systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software - IEEE Standard 610.12
Dr.N.D.Kodikara, UCSC

Software Engineering Definition

Use of systematic, engineering approach in all stages of software development and project management to develop high quality and economical software using appropriate software tools.

Dr.N.D.Kodikara, UCSC

Software Quality Attributes


Bohems Classification
Current usefulness

- The qualities expected from a software system in users point of view.


Potential Usefulness - The qualities expected from a software system in developers point of view.
Dr.N.D.Kodikara, UCSC

Current usefulness
Efficiency
Reliability Usability Correctness User friendliness

Robustness

Dr.N.D.Kodikara, UCSC

Potential usefulness
Maintainability
Modularity Reusability Portability

Dr.N.D.Kodikara, UCSC

McCalls Classification
Product operation Product revision Product transition

Dr.N.D.Kodikara, UCSC

Product Operation
Efficiency
Correctness User friendliness Usability Reliability

Robustness

Dr.N.D.Kodikara, UCSC

Product Revision
Maintainability

Flexibility
Testability

Product Transition
Interoperability Reusability Portability
Dr.N.D.Kodikara, UCSC

Software Maintenance
Any software system needs to be changed. Maintenance is the costliest operation in the software development process (about 60%). Software need to be changed due to various reasons.

Errors in the system.


Changes in the user requirements Availability of new technology Changes in the enterprise or Govt. policy.
Dr.N.D.Kodikara, UCSC

Review Questions
1. Look at the following list of goals of software a) Meeting the users needs b) Low cost of production c) High Performance

d) Portability
e) Low cost of maintenance f) High Reliability

e) Delivery on time

Dr.N.D.Kodikara, UCSC

For each of the following systems choose the two most important
goals. (i) A system to manage student fees to track whether they have paid, calculate the correct amount, issue invoices, send out reminders etc. (ii) A system to manage the temperature of a nuclear reactor core. (iii) An experimental program to test the efficiency of an algorithm for some mathematical theory. (iv) A program that allows viewing of cricket scores on mobile phones.

Dr.N.D.Kodikara, UCSC

2. Which stage of software development is most expensive?

3. Where are the most errors introduced in software projects?

4. What do project managers say is the worst problem (consequence) in software projects? 5. All Microsoft software is bug free Bill Gates Is he correct? 6. Define the term Software Engineering.
Dr.N.D.Kodikara, UCSC

You might also like