Date post: | 11-Jan-2016 |
Category: |
Documents |
Upload: | kristian-ryan |
View: | 225 times |
Download: | 0 times |
1
Chapter 1Software and Software Engineering
2
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)
3
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?
4
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
5
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
6
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)
7
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
8
What is Software? (cont.)
Software is a set of items or objects that form a “configuration” that includes • programs • documents • data ...
9
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
10
Software Characteristics (cont.)
11
Product Bathtub Curve ModelFa
ilure
Rat
e
Time
“Infant Mortality” --due to design or manufacturing defects
“Wear Out” --due to cumulative affects of environments
12
Software Idealized CurveFa
ilure
Rat
e
Time
Idealized Curve
13
Software Actual Failure Curve
idealized curve
change
actual curve
Failurerate
Time
increased failurerate due to side effects
14
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
15
What is Software Engineering? (cont.)
16
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
What is Software Engineering? (cont.)
17
Software Applications
system software application software engineering/scientific software embedded software product-line software WebApps (Web applications) AI software
18
Software—New CategoriesUbiquitous computing —wireless networksNetsourcing—the Web as a computing engineOpen source—”free” source code open to the
computing community (a blessing, but also a potential curse!)
Also … (see Chapter 32)Data miningGrid computingCognitive machinesSoftware for nanotechnologies
19
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.
20
Software Evolution The Law of Continuing Change (1974)
E-type systems must be continually adapted else they become progressively less satisfactory.
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)
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
21
Software Evolution (cont.)
The Law of Conservation of Familiarity (1980) 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 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)
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.
22
Software Myths
Affect managers, customers (and other non-technical 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
23
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.
24
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.
25
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.
26
Software Industry Independent Programming Service Software Product Enterprise Solution Packed Software for the Mass Internet Software and Services
27
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
28
Software Product (Era 2) 1962 John A. Postley originated the concept of “Software
Product” The key role in developing MARK IV file management system A pre-runner for the database management system 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 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
29
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)
30
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)
31
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
32
IT Market
33
Software Products and Services
Professional Software Services
Enterprise 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
34
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