Software Engineering: Dr.N.D.Kodikara, UCSC
Software Engineering: Dr.N.D.Kodikara, UCSC
Software Engineering: Dr.N.D.Kodikara, UCSC
Overall Objectives:
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
Dr.N.D.Kodikara, UCSC
Software Engineering
Introduction
Learning Outcomes Appreciate the problems associated with developing software
Dr.N.D.Kodikara, UCSC
Software
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.
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.
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.
Hardware vs Software
cost software
hardware
Time 1960
Dr.N.D.Kodikara, UCSC
2002
[Pressman]
Infant
mortality
Wear out
Time
Dr.N.D.Kodikara, UCSC
Failure rate
Development Failures
IBM Survey, 2000 55% of systems cost more than expected
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
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
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
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
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
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.
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
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