Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e

advertisement
Supplementary Slides for
Software Engineering:
A Practitioner's Approach, 5/e
copyright © 1996, 2001
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.
This presentation, slides, or hardcopy may NOT be used for
short courses, industry seminars, or consulting purposes.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
1
Chapter 2
The Process
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
2
DEFINITION
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 [by Fritz
Bauer]
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
3
DEFINITION (2)
(1) The application of 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)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
4
A Layered Technology
Software
Software Engineering
Engineering
tools
methods
process model
a “quality” focus
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
5
Process, Methods, Tools
SE process is the glue that holds the
technology layer together and enables
rational and timely development of software
SE methods provide the technical how-to’s
for building software.
SE tools provide automated or semiautomated support for the process and the
methods.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
6
GENERIC VIEW
Definition phase – what
Development phase – how
Support phase – change
(correction, adaptation, enhancement,
prevention)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
7
A Common Process Framework
Common process framework
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella Activities
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
8
Umbrella Activities
Software project management
Formal technical reviews
Software quality assurance
Software configuration management
Document preparation and production
Reusability management
Measurement
Risk management
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
9
Common Process Framework (2)
 A common process framework is established by
defining a small number of framework activities that
are applicable to all software projects, regardless of
their size and complexity
 Task set, a collection of SE work tasks, project
milestones, work product, and quality assurance
points, enable the framework activities to be adapted to
the characteristics of the project
 Umbrella activities overlay the process model
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
10
Capability Maturity Model (CMM)
Level 1: Initial – ad hoc, occasional
Level 2: Repeatable – basic project
management processes are established
Level 3: Defined – process is documented,
standardized, and integrated
Level 4: Managed – process and products are
quantitatively understood and controlled
using detailed measures
Level 5: Optimizing – quantitative feedback,
innovative ideas and technology
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
11
Process as Problem Solving
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
12
The Process Model:
Adaptability
the framework activities will always be
applied on every project ... BUT
the tasks (and degree of rigor) for each
activity will vary based on:
 the type of project (an “entry point” to the model)
 characteristics of the project
 common sense judgment; concurrence of the
project team
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
13
The Primary Goal:
High Quality
Remember:
High quality = project timeliness
Why?
Less rework!
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
14
The Linear Model
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
15
Problems on linear model
Real project rarely follow the sequential flow
It is often difficult for the customer to state all
requirements explicitly
The customer must have patience since the
working version will not available until late in
the project time-span
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
16
Iterative Models
Prototyping
RAD
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
17
Problems in prototyping
The customer sees what appears to be a
working version of the software, which was
built in rush
The developer often makes implementation
compromises in order to get prototype
working properly
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
18
Rapid Application Development (RAD)
An incremental software development
process model that emphasizes an extremely
short development cycle.
Achieved using component-based
construction
Requirements are well understood, and
project scope is constrained
Phases: business modeling, data modeling,
application generation, testing & turnover
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
19
RAD’s drawbacks
Requires sufficient human resources for large
but scalable projects
Requires commitment from developers and
customers to complete the system in short
time
Not all types of applications are appropriate
for RAD – good for modular, not for high
performance system
Not appropriate when technical risks are high
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
20
The Incremental Model
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
21
An Evolutionary (Spiral) Model
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
22
Still Other Process Models
 Component assembly model—the process to apply when
reuse is a development objective
 Concurrent process model—recognizes that different
part of the project will be at different places in the
process
 Formal methods—the process to apply when a
mathematical specification is to be developed
 Cleanroom software engineering—emphasizes error
detection before testing
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
23
Download