0% found this document useful (0 votes)
22 views21 pages

Chapter 01 A

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views21 pages

Chapter 01 A

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Supplementary Slides for

Software Engineering:
A Practitioner's Approach, 6/e
Part 1

Instructor: Muhammad Imran Saeed

copyright © 1996, 2001, 2005


R.S. Pressman & Associates, Inc.

For University Use Only


May be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.
Any other reproduction or use is expressly prohibited.
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

Instructor: Muhammad Imran Saeed

copyright © 1996, 2001, 2005


R.S. Pressman & Associates, Inc.

For University Use Only


May be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.
Any other reproduction or use is expressly prohibited.
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
What is Software?
Software is:
(1) Instructions (computer programs) that
when executed provide desired features,
function, and performance;
(2) Data structures that enable the programs
to adequately manipulate information, and
(3) Descriptive information in both hard copy
and digital form that describes the operation
and use of the programs.
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
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 5
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 6
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 7
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 8
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 9
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 10
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 11
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 12
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 13
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, Good Appropriate Solution.
 Both quality and maintainability are result of good design:
Crucial Situations and a failure may cause irreversible loss.

These simple realities lead to one conclusion: Software in all of its


forms and across all of its application domains should be engineered.

That is why “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 14
1.3 Software Engineering (Cont..)
Software Engineering Definitions:
 [Software engineering is] the establishment and use of sound
engineering principles in order to obtain economically, software that
is reliable and works efficiently on real machines. [Fritz Bauer]
 Software Engineering: (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. (2) The study of approaches as in (1). IEEE [IEE93a]

 KEY POINT: Software engineering encompasses (includes) a


process, methods for managing and engineering software, and
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 15
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 16
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.

 A software process defines the approach that is taken as


software is engineered.

 It is a roadmap to create timely, high quality result.

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..)
 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 18
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 19
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.

Home Assignment: (Due Date: 11/09/2023)


Read, Understand and “re-write” in your own words:
“General / Basic Activities in a Process”
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
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 21

You might also like