Software Engineering: A Practitioner's Approach, 6/e
Software Engineering: A Practitioner's Approach, 6/e
Software Engineering: A Practitioner's Approach, 6/e
Software Engineering:
A Practitioner's Approach, 6/e
Part 1
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1
Software Engineering: A Practitioner’s Approach, 6/e
Chapter 1
Software and Software Engineering
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 2
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)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 3
What is Software?
Software is a set of items or objects
that form a “configuration” that
includes
• programs
• documents
• data ...
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 4
What is Software?
software is engineered
software doesn’t wear out
software is complex
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 5
Wear vs. Deterioration
increased failure
rate due to side effects
Failure
rate
change
actual curve
idealized curve
Time
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 6
Software Applications
system software
application software
engineering/scientific software
embedded software
product-line software
WebApps (Web applications)
AI software
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 7
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
colloidal science, device physics, and supramolecular
chemistry
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 8
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 9
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
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 10
Software Myths
Myth: It’s in the software. So, we can easily change it.
Reality: Requirements changes are a major cause of software
degradation.
Myth: We can solve schedule problems by adding more programmers.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 11
Software Myths
Myth: Writing code is the major part of creating a software
product.
Reality: Coding may be as little as 10% of the effort, and 50 -
70% may occur after delivery.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 12
Software Myths
Myth: I can’t tell you how well we are doing until I get
parts of it running.
Reality: Formal reviews of various types both can give good
information and are critical to success in large projects.
Myth: The only deliverable that matters is working code.
Reality: A sign of immaturity. A formula for failure. Software projects are done
by teams, not individuals, and success requires much more than just coding.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 13
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.
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.
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
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 14
CPSC 431 Software Engineering
SE - the use of techniques, methods and processes to develop high
quality software, that is, software that is reliable, easy to
understand, useful, modular, efficient, modifiable, reusable and
delivered in a cost effective and timely manner. A good user
interface is paramount to a successful system. Must be well
documented.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Production systems: large scale, distributed, embedded,
real-time systems - daily operations
Software chronic ailment - DoD $30 billion, US $150
billion, world-wide $225 billion
user/customer can’t tell developer what they want
need a medium for communication
key words:
communication
context
requirements capture
conceptual model
look at syllabus
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Life Cycle Model - Software Process
Model Water Fall Model
requirements
specifications
design
implementation
integrate/test
install/operate
maintain - 70% of cost
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Process
describes how to perform the tasks of a phase/stage
would like to be seamless
would like to support Methodman document criteria for
embodying methodology
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Teamwork
working in teams on projects
personal interactions
what are people like, characteristics?
what are major personal problems we struggle with
what is weltanschauung?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
The Triad
be good for people
do not be deceived
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Worldviews
nihilism
humanism
secularism
hedonism
solipsism
Mormonism
Hinduism
Buddhism
Christianity
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Interesting Quotes
vanity of vanities
I do not the good that I desire, but the evil I do not desire
I do
examine yourself, who are you and how do you made
decisions?
worldview has great impact
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
The great theologian Paul laments,"The good that I
desire is not what I do, but the evil I do not desire is
what I do." (Romans 7:19)
• Voltaire, "I wish I had never been born."
• Lord Byron, "The worm, the canker and grief are alone mine."
• Jay Gould, "I suppose I am the most miserable man on earth."
• Maugham, "The only thing I know for sure is that I don't know
anything for sure."
• "My whole life has been one long series of disappointments. I can
scarely remember one thing that I have been successful in.", John
Quincy Adams.
• "I am a complete failure; now everything leaves on my tongue only
the taste of ashes.", Robert Oppenheimer.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 24
Life
life is all about relationship
most people get a very poor grade on relationship
do you care about other people?
how well do you see yourself?
find an approach to life that allows you do well in
accomplishing the Triad
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
LCAM - life cycle artifact manager
has a graphical interface that facilitates the
management of software artifacts created throughout
the entire life cycle of the development of a software
system
requirements, specifications, design, code, integrate
and test data; install, operation and maintenance
manuals, overviews, narratives, design rationale
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
traceability
configuration management
open ended
supports CORBA
does not hinder the developer in the process of
producing software.
enhances communications among all stakeholders
interface then is key
qualities of good interface
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Seven Habits of Highly Effective
People
be proactive - not reactive
we are free to choose
began with the end in mind - goal setting - identify
personal goals and missions
put first things first - prioritize
act on our priorities
think win/win
look for alternatives that allow everyone to win
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
7 habits continues
seek first to understand, then to be understood
both an attitude and skill of listening deeply for
complete understanding
synergize - we discover a creativity that people can
experience when they explore their differences together
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
7 habits continues
sharpen the saw - improvements in your life
simple daily activities that implant the principles of
effectiveness in our minds
what is effectiveness?
three person teaching - be taught and then teach
someone else
paradigm shifting - different viewpoints, conceptual
blockbusting, critical thinking
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005