Professional Documents
Culture Documents
Software Engineering: A Practitioner's Approach, 6/e: Supplementary Slides For
Software Engineering: A Practitioner's Approach, 6/e: Supplementary Slides For
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
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
Failure Curve for Hardware
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 Applications
system software
application software
engineering/scientific software
embedded software
WebApps (Web applications)
AI software
Mobile Apps
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
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
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
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 10
The Unique Nature of Web Apps
Network Intensiveness: A WebApp resides on a network
and must serve the needs of a diverse community of
clients. (Internet /Intranet)
Concurrency: A large number of users may access the
WebApp at one time.
Unpredictable load: The number of users of the WebApp
may vary by orders of magnitude from day to day.
Performance: If a WebApp user must wait too long,
he/she may decide to go elsewhere.
Availability: 24/7/365. Time Difference between Canada
and Pakistan.
Data driven: Accessing Data (Text, Images, Sounds,
Movie Clips etc.
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
The Unique Nature of Web Apps (Cont..)
Content Sensitive: Quality of Data is important.
Continuous evolution: Minute-by-Minute Updation in
Data e.g, News portals, Score board portals etc.
Immediacy: WebApps often exhibit a time-to-market that
can be a matter of a few days or weeks.
Security: Multiple users and risk of breach in security e.g.
Hacking, Illegal Access to data.
Aesthetics: An undeniable part of the appeal of a
WebApp is its look and feel.
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
1.3 Software Engineering
A few simple realities to be recognized to build a software:
Understand the problem before you build a solution: Different
users of an application, so different requirements.
Design is a pivotal software engineering activity: Good
/Appropriate Design, Goon Appropriate Solution.
Both quality and maintainability are result of good design:
Crucial Situations and a failure may cause irreversible loss.
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
1.4 The Software Process
Process: A process is a collection of activities, actions, and tasks
that are performed when some work product is to be created.
Activity: An activity strives to achieve a broad objective and is
applied regardless of the application domain, size of the project,
complexity of the effort, or degree of rigor with which software
engineering is to be applied (e.g., communication with stakeholders).
Action: An action (e.g., architectural design) encompasses a set of
tasks that produce a major work product (e.g., an architectural
design model).
Task: A task focuses on a small, but well-defined objective (e.g.,
conducting a unit test) that produces a tangible outcome.
KEY POINT:: A process is not a rigid prescription rather you can pick
and choose the appropriate set of work actions and tasks.
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 15
1.4 The Software Process (Cont..)
A software Process
is a framework of the activities, actions and tasks
that are required to build high quality 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 16
1.4 The Software Process (Cont..)
A Generic Model has five basic activities
- Communication
- Planning
- Modeling
- Construction
- Deployment
Process Flow
- Each S/W process has a process flow.
- Describes how the framework activities and the actions
n tasks within each frame work are organized with
respect to sequence and 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 17
1.4 The Software Process (Cont..)
Umbrella Activities:
- Software project tracking and control: allows the software team to
assess progress against the project plan and take any necessary action
to maintain the schedule
- Risk management: assesses risks that may affect the outcome of the
project or the quality of the product
- Software quality assurance: defines and conducts the activities
required to ensure software quality
- Technical reviews: assesses software engineering work products in
an effort to uncover and remove errors before they are propagated to
the next activity
- Measurement: defines and collects process, project, and product
measures that assist the team in delivering software that meets
stakeholders’ needs.
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 18
1.4 The Software Process (Cont..)
Umbrella Activities (Cont..):
- Software configuration management: manages the effects of
change throughout the software process.
- Reusability management: defines criteria for work product reuse
(including software components) and establishes mechanisms to
achieve reusable components.
- Work product preparation and production: encompasses the
activities required to create work products such as models, documents,
logs, forms, and lists.
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 20
1.5 Software Engineering Practice (Cont..)
a. Understand the Problem (Communication and Analysis)
Who has a stake in the solution to the problem? That is, who are the
stakeholders?
What are the unknowns? What data, functions, and features are
required to properly solve the problem?
Can the problem be compartmentalized? Is it possible to represent
smaller problems that may be easier to understand?
Can the problem be represented graphically? Can an analysis model
be created?
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 21
1.5 Software Engineering Practice (Cont..)
b. Plan a Solution (Modelling and Software Design)
Have you seen similar problems before? Are there patterns that are
recognizable in a potential solution? Is there existing software that
implements the data, functions, and features that are required?
Has a similar problem been solved? If so, are elements of the
solution reusable?
Can subproblems be defined? If so, are solutions readily apparent for
the subproblems?
Can you represent a solution in a manner that leads to effective
implementation?
Can a design model be created?
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 22
1.5 Software Engineering Practice (Cont..)
c. Carryout the Plan (Code Generation)
Does the solution conform to the plan? Is source code traceable to the
design model?
Is each component part of the solution provably correct? Have the
design and code been reviewed, or better, have correctness proofs
been applied to the algorithm?
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 23
1.5 Software Engineering Practice (Cont..)
1.5.2 General Principles:
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided 24
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
1.5 Software Engineering Practice (Cont..)
1.5.2 General Principles (Cont..):
- Management Myths
- Customer Myths
- Practitioner’s Myths
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided 26
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
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 27
Software Myths (Cont..)
Management Myths:
- Myth: If we get behind schedule, we can add more
programmers and catch up.
- Reality: Software Development is not a mechanistic
process like manufacturing.
- More time will be spent to educate new people.
- People can be added but only in a planned and well-
coordinated manner.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided 28
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Software Myths (Cont..)
Management Myths:
- Myth: We already have a book that’s full of standards
and procedures for building software. Won’t that
provide my people with everything they need to know?
- Reality: -Do we use book?
- S/W Engineer aware of it?
- It reflects Modern Practices?
- Is it Complete?
- Is it Adaptable?
- Provides Quality with Time-to-Delivery?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided 29
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Software Myths (Cont..)
Management Myths:
- Myth: If we get behind schedule, we can add more
programmers and catch up.
- Reality: Software Development is not a mechanistic
process like manufacturing.
- More time will be spent to educate new people.
- People can be added but only in a planned and well-
coordinated manner.
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 30
Software Myths (Cont..)
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 31
Software Myths (Cont..)
Customer Myths:
- Myth: A general statement of objectives is sufficient
to begin writing programs-we can fill in the details later.
- Reality: -Ambiguous statement of objectives can be
dangerous.
- Effective and Continuous Communication can
produce Unambiguous Requirements.
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 32
Software Myths (Cont..)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided 33
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Software Myths (Cont..)
Practitioner’s Myths:
- Myth: Once we write the program and get it to work,
our job is done.
- Reality: - 60-80% percent of all effort expended on
software will be expended after it is delivered to the
customer for the first time.
- The sooner you begin writing code, the longer it will
take you to get done.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided 34
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Software Myths (Cont..)
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
35
Software Myths (Cont..)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided 36
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
Software Myths (Cont..)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided 37
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005
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 38