What is Software Engineering?

advertisement
Chapter 1
Software and Software
Engineering
1
Scope of Software Engineering

Historical Aspects



1968 NATO Conference, Garmisch
Aim: to solve the “Software Crisis”
Software is delivered



Late
Over budget
Unreliable (with residual faults)
2
Scope of Software Engineering
(cont.)

always with complaints like






why does it take so long to get software finished?
why are development costs so high?
why can’t we find all the errors before we give to
customers?
why do we continue to have difficulty in measuring
progress as software is being developed?
why we always need to restart during installation?
3
Real Cases

84% of software projects were not
completed on time and within budget (a
survey conducted by Standish Group)



8000 projects in US in 1995
more than 30% were cancelled
189% over budget
4
Real Cases (cont.)

Bank of America Master Net System


Trust business, 1982
Spend 18 months in deep research & analysis of
the target system





Original budget: 20 million
Original schedule: 9 month, due to 1984/12/31
Not until March 1987, and spent 60 million
Lost 600 millions business
Eventually, gave up the software system and 34
billion trust accounts transferred
5
Software’s Dual Role

Software is a product



Delivers computing potential
Produces, manages, acquires, modifies, displays, or
transmits information
Software is a vehicle for delivering a product




Supports or directly provides system functionality
Controls other programs (e.g., an operating system)
Effects communications (e.g., networking software)
Helps build other software (e.g., software tools)
6
What is Software?






an information transformer that produces, manages, acquires,
modifies, displays, or transmits information
both a product and a vehicle for delivering a product
the basis for the control of the computer (OS), the
communication of information (networks), the creation and
control of other programs (S/W tools)
instructions (computer programs) that when executed provide
desired function and performance
data structures that enable the programs to adequately
manipulate information
documents that describe the operation and use of the programs
7
What is Software? (cont.)
Software is a set of items or objects
that form a “configuration” that
includes
• programs
• documents
• data ...
8
Software Characteristics




software is a logical system element
software is engineered, not
manufactured
software doesn’t wear out but
“deteriorating”
software is complex

most software continuing to be custom
built
9
Software Characteristics (cont.)
10
Failure Rate
Product Bathtub Curve Model
“Infant Mortality” -due to design or
manufacturing defects
“Wear Out” -due to cumulative
affects of environments
Time
11
Failure Rate
Software Idealized Curve
Idealized Curve
Time
12
Software Actual Failure Curve
13
What is Software Engineering?

Definition of “Engineering”
The profession in which
a knowledge of the mathematical and natural
sciences gained by study, experience, and
practice
is applied with judgment
to develop ways to utilize, economically, the
materials and forces of nature for the benefit of
mankind
-- Accreditation Board for Engineering and Technology, 1996
14
What is Software Engineering?
(cont.)
15
What is Software Engineering?
(cont.)
Software Engineering:
-- technologies that make it easier, faster, and less expensive
to build high-quality computer programs
-- a discipline aiming to the production of fault-free software,
delivered on time and within budget, that satisfies the
users’ needs
-- an engineerlinglike activity in software production
-- the philosophy and paradigm of established engineering
disciplines to solve what are termed software crisis
16
Software Applications







system software
application software
engineering/scientific software
embedded software
product-line software
WebApps (Web applications)
AI software
17
Software—New Categories
Ubiquitous computing —wireless networks
 Netsourcing—the Web as a computing engine
 Open source—”free” source code open to the
computing community (a blessing, but also a
potential curse!)
 Also … (see Chapter 32)

Data mining
 Grid computing
 Cognitive machines
 Software for nanotechnologies

18
Legacy Software
Why must it change?

software must be adapted to meet the needs of new
computing environments or technology.

software must be enhanced to implement new
business requirements.

software must be extended to make it interoperable
with other more modern systems or databases.

software must be re-architected to make it viable
within a network environment.
19
Software Evolution

The Law of Continuing Change (1974)


The Law of Increasing Complexity (1974)


As an E-type system evolves its complexity increases unless
work is done to maintain or reduce it.
The Law of Self Regulation (1974)


E-type systems must be continually adapted else they
become progressively less satisfactory.
The E-type system evolution process is self-regulating with
distribution of product and process measures close to normal.
The Law of Conservation of Organizational Stability (1980)

The average effective global activity rate in an evolving E-type
system is invariant over product lifetime.
Source: Lehman, M., et al, “Metrics and Laws of Software Evolution—The Nineties View,”
Proceedings of the 4th International Software Metrics Symposium (METRICS '97), IEEE, 1997, can be
downloaded from: http://www.ece.utexas.edu/~perry/work/papers/feast1.pdf
20
Software Evolution (cont.)

The Law of Conservation of Familiarity (1980)


The Law of Continuing Growth (1980)


The functional content of E-type systems must be continually
increased to maintain user satisfaction over their lifetime.
The Law of Declining Quality (1996)


As an E-type system evolves all associated with it, developers,
sales personnel, users, for example, must maintain mastery of
its content and behavior to achieve satisfactory evolution.
The quality of E-type systems will appear to be declining
unless they are rigorously maintained and adapted to
operational environment changes.
The Feedback System Law (1996)

E-type evolution processes constitute multi-level, multi-loop,
multi-agent feedback systems and must be treated as such to
achieve significant improvement over any reasonable base.
21
Software Myths
Affect managers, customers (and other nontechnical stakeholders) and practitioners
 Are believable because they often have
elements of truth,
but …
 Invariably lead to bad decisions,
therefore …
 Insist on reality as you navigate your way
through software engineering

22
Software Myths (Management)

Myth1: We already have a book that’s full of
standards and procedures for building s/w, won’t
that provide my people with everything they need to
know?

Myth2: If we get behind schedule, we can add more
programmers and catch up.

Myth3: If I decide to outsource the software project
to a third party, I can just relax and let that firm build
it.
23
Software Myths (Customer)

Myth1: A general statement of objectives is
sufficient to begin writing programs – we can
fill in the details later.

Myth2: Project requirements continually
change, but change can be easily
accommodated because software is flexible.
24
Software Myths (Practitioner)




Myth1: Once we write the program and get it to work, our
job is done.
 Fact: the sooner you begin writing code, the longer it
will take you to get done.
Myth2: Until I get the program “running,” I have no way
of assessing its quality.
Myth3: The only deliverable work product for a
successful project is the working program.
Myth4: Software engineering will make us create
voluminous and unnecessary documentation and will
invariable slow us down.
25
Software Industry





Independent Programming Service
Software Product
Enterprise Solution
Packed Software for the Mass
Internet Software and Services
26
Independent Programming
Service (Era 1)



Feb 1955, Elmer Kubie and John Sheldon founded
CUC
The first software company that devoted to the
constuction of software especially for hardware
company
Promoting software industry: two major projects


SABRE: airline reservation system, $30 million
SAGE: air defense system (1949~1962)
700/1000 programmers in the US $8 billion
27
Software Product (Era 2)

1962 John A. Postley originated the concept of “Software
Product”




John A. Postley, Mark IV: evolution of the software product, a memoir,
IEEE Annals of the History of Computing,Vol. 20, No. 1, 1998, pp. 43
- 50
1964 Martin Goetz developed Flowchart Software –
Autoflow for RCA, but rejected



The key role in developing MARK IV file management system
A pre-runner for the database management system
Sale to the customer of RCA & IBM
Develop and market software products not specifically
designed for a particular hardware platform
IBM unbundled software from hardware from 1970
28
Enterprise Solutions (Era 3)

Dietmar Hopp. IBM Germany




Systems, Applications and Products (SAP) $3.3
billion (1997)
Setting up shop in Walldorf, Germany
Marked by the emergence of enterprise solutions
providers
e.g. Baan 1978, Netherland $680 million (1997)
Oracle 1977 US, founded by Larry Ellison
ERP, $45 billion (1997)
29
Packed Software for the Masses
(Era 4)

Software products for the masses 1979


VisiCalc, Spreadsheet program
August 1981: The deal of the century


Bill Gates bought the first version of the OS from a small
firm called Seattle Computer Products for $50,000
without telling them it was for IBM
The development of IBM PC, 1981, initiated a 4th
software era


PC-based mass-market software. Few additional services
are required for installation
Microsoft reached revenues of $11.6 billion. Packed
software products, $57 billion (1997)
30
Internet Software and Services
(Era 5)

Internet and value-added services period,
1994.


with Netscape’s browser software for the internet
Free on-line software service, e.g., Google’s Apps
for Your Domain
31
IT Market
32
Software Products and Services
Professional
Enterprise
Software Services Solutions
Packed Mars-Market
Software
Anderson Consulting
IBM
Microsoft
IBM
Oracle
IBM
EDS
Computer Associates
Computer Associates
CSC
SAP
Adobe
Science Application
HP
Novell
Gap Gemini
Fujitsu
Symantec
HP
Hitachi
Intuit
DEC
People Soft
Autodesk
Fujitsu
Siemens
Apple
33
Conclusions

Software has become the key element in the
evolution of computer-based systems and products

Software has evolved into a industry in itself


Yet still have trouble developing high-quality software on
time and within budget
The intent of software engineering is to provide a
framework for building high-quality software
34
Download