2. Software Engineering
What is Software?
Software is the collection of computer
programs,rules,and associated documentation and data.
What is Software Engineering?
It is the systematic approach to the development,
operations. Maintenance and retirement of software.
3. Software Engineering
As defined in IEEE Standard 610.12:
(1) The application of a systematic, disciplined,
quantifiable approach to the development, operation,
and maintenance of software; that is, the application of
engineering to software.
As defined
Software engineering is a discipline whose aim is the
production of fault-free software, delivered on time and
within budget, that satisfies the user’s needs
4. Software Engineering
Software engineering is concerned with
theories, methods and tools for professional
software development.
The cost of software on a PC are often greater
than the hardware cost.
Software costs more to maintain than it does to
develop.
For systems with a long life, maintenance costs
may be several times development costs:
60% of costs are development costs, 40% are
testing costs.
5. Software Engineering
For custom software, evolution costs
often exceed development costs.
Costs vary depending on the type of
system being developed and the
requirements of system attributes such
as performance and system reliability.
Distribution of costs depends on the
development model that is used.
Software engineering is concerned
with cost-effective software
development.
6. Software Engineering
Software products may be developed for a particular
customer or may be developed for a general market.
Software products may be Generic - developed to be
sold to a range of different customers. Bespoke
(custom) - developed for a single customer according to
their specification
7. Software Engineering
Software engineers should adopt a systematic and
organized approach to their work and
Use appropriate tools and techniques depending on
• the problem to be solved,
• the development constraints and
• the resources available.
8. Software Engineering
The basic goal of software engineering is to produce a
high quality software at low cost.
Two basic factors are quality and cost.
Cost of a completed project can be calculated easily if
proper accounting procedure are followed
9. The evolving role of software
Today, software takes on dual role
It is a product
At the same time, the vehicle for delivering a product.
Software delivers what many believe will be the most
important product of 21st century------Information
10. The evolving role of software
Software transform personal data.
It provides a gateway to the worldwide
networks(Internet)
The role of computer software has undergone
significant change through the 2nd half of 20th century.
11. The evolving role of software
Osborne called a new industrial revolution.
Toffler called the advent of microelectronics
12. Different Eras
During first era software was
viewed an afterthought
A few systematic methods existed
Software development was
virtually unmanaged
No cost scheduling techniques
Software was custom design for
each application
Limited distribution.
13. The evolving role of software
Product software was not common
Documentation was uncommon
14. The evolving role of software
The 2nd era of computer system evolution spanned the
decade from mid-1950s to the late 1970s
Multiprogramming,multi-user systems introduced
Real time systems
DBMS
15. The evolving role of software
The 2nd era was also characterized by the use of product
software and advent of software houses
Wide distribution.
16. The evolving role of software
The 3rd era began in 1970s and spanned more than half
a decade
Distributed systems
Global and local area networks
High Bandwidth digital communication.
The conclusion of the 3rd era was characterized by the
advent and wide spread use of microprocessors.
17. The evolving role of software
The 4th era of computer systems includes powerful
Desktop computers controlled by sophisticated OS
Network locally and globally
Internet
Change in computer architecture
18. The evolving role of software
MS put billions of dollars at risk
OOP
Expert systems
AI with fuzzy logic has opened pattern matching and
human like information like qualities
Virtual Reality programming and multimedia systems
19. Ongoing Problems
Hardware advances outpace ability to build
software to tap potential
Ability to build new programs cannot meet
demand for new programs, nor do we build fast
enough to meet business and market needs
Widespread use of computers has made society
increasingly dependent
Struggle to build software with high reliability
& quality
Ability to support and enhance programs is
threatened by poor design and few resources
20. Why Study Software Engineering?
Software Crisis
- Software hard to create well
- budget over runs
- time over runs
- faulty products
e.g., billing example
21. Programming methods do not scale up
"Toy" programs 100's of lines
Small programs 10,000 lines
Medium programs100,000 lines
Large programs 1,000,000 lines
Very Large programs 10,000,000 lines
Small programs are typically implemented
by individuals.
Medium and larger programs are
implemented by teams.
22. COST EFFORT LINES
Product ($million) (Person Year) (of
code)
Lotus 1-2-3 Ver 3 22 263
400k
NASA Space Shuttle 1200 22096
25.6k
CitiBank ATM 13.2 50
780k
IBM Checkout 3 58
90k
Scanner
23. dBase II took two programmers and 50,000 lines of code
- 1970s
dBase IV took 100 people, 500,000 lines of code in 1986
24. Students Professionals
Get assignment from instructor
Ask clarifying questions 5%
Devise an appropriate algorithm 5%
Code the algorithm 20%
Validation: Testing 5%
Debugging 65%
Never_look_at_it_again
Get request from user.
Requirements_Analysis 10%
|Functional Specifications 20 %
Design 15%
Implementation 15%
Validation: Testing 30%
Debugging 10%
Maintainence 100-200%
25. The Software Crisis
It became clear in the mid-60s that:
software systems were
developed far too slowly
many software projects failed
most projects were delivered
late and cost far more than
was budgeted
delivered systems were often
of very low quality
This collection of maladies (which is
still with us) was labeled the
“software crisis”
26. A view of the software crisis
Experts tried to resolve such as :
Why does software development take so long?
Why does it cost so much?
Why does software has bugs?
Why do we have difficulty managing software
development efforts?
The software crisis prompted the
creation of “software engineering”
as a discipline
27. Eight years ago
From a 1995 American General Accounting Office
report:
more than 50% of SW contracts had cost overruns
more than 60% of SW contracts had schedule overruns
more than 45% of delivered SW could not be used
more than 28% of SW was never delivered
28. A recent IEEE survey found that 30% of all software
development projects are canceled, 50% are more
than 150% over budget and, on average, only 60% of
desired functionality is achieved.
29. Hardware versus Software
Costs
While the cost of hardware has come down
dramatically, the cost of software is increasing
Most SW errors and cost of repair are traceable to
failures in the initial requirements
2/3 of lifetime SW cost comes after installation
30.
31. Challenges
The key challenges facing software
engineering are:
Coping with legacy systems -old, valuable
systems must be maintained and updated
Coping with increasing diversity - systems
are distributed and include a mix of
hardware and
Software coping with demands for
reduced delivery times.
There is increasing pressure for faster
delivery of software.