Se note
Se note
Software
Capstone
Introduction to Project
Project
Management
Software Engineering
Develop
programs is the complexity and difficulty levels of the
programs increase exponentially with their sizes as
shown in Fig. 1.1 Size
• Pattern recognition (image and voice), For non-profit educational use only
and game playing are representative of All copyright information MUST appear if these slides are posted on a website for student
use.
applications within this category.
Slide Set - 3
A Layered Technology
A Generic Process Model
Software Engineering
tools
methods
process model
a “quality” focus
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
A Process Framework
Framework Activities
■ Communication
Process framework
■ Planning
Framework activities ■ Modeling
work tasks ■ Analysis of requirements
work products ■ Design
milestones & deliverables ■ Construction
■ Code generation
QA checkpoints ■ Testing
Umbrella Activities ■ Deployment
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 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 Flow
Umbrella Activities
■ Software project management
■ Formal technical reviews
■ Software quality assurance
■ Software configuration management
■ Work product preparation and production
■ Reusability management
■ Measurement
■ Risk management
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
Quick
plan
communication
Modeling
Quick design
Deployment Construction
delivery & of prototype
feedback Construction
of prototype
■ Spiral Model
https://www.youtube.com/watch?v=6gMgXP1Sa9I
Requirements Gathering
( 7 Step Model )
Inception
Elicitation
Negotiation
Specification
Validation
Requirements
Management
Inception Task The First Set of Questions
These questions focus on the customer, other stakeholders, the overall
• During inception, the requirements engineer asks a set of questions to goals, and the benefits
establish…
– A basic understanding of the problem
– The people who want a solution
– The nature of the solution that is desired • Who is behind the request for this work?
– The effectiveness of preliminary communication and collaboration between the
customer and the developer
• Who will use the solution?
• Through these questions, the requirements engineer needs to… • What will be the economic benefit of a successful solution?
– Identify the stakeholders • Is there another source for the solution that you need?
– Recognize multiple viewpoints
– Work toward collaboration
– Break the ice and initiate the communication
• Information deployment identifies data objects and events • Expected Requirements. These requirements are implicit to the product or
system and may be so fundamental that the customer does not explicitly state
them. Their absence will be a cause for significant dissatisfaction.
Examples of expected requirements are: ease of human/machine
• Task deployment examines the behavior of the system interaction, overall operational correctness and reliability, and ease of software
installation.
e.g: CUT, COPY, PASTE, REPLACE,DELETE
• Value analysis determines the relative priority of • Exciting Requirements. These features go beyond the customer’s
expectations and prove to be very satisfying when present. For example, word
requirements processing software is requested with standard features. The delivered product
contains a number of page layout capabilities that are quite pleasing and
unexpected.
E,g. Software provide more fuctionality like CUT, COPY, PASTE, REPLACE and
DELETE Graphic content, SPELL Checker
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright
2009 by Roger Pressman.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger
Pressman.
Building the Analysis Model
• Elements of the analysis model State Diagram
– Scenario-based elements
• Functional—processing narratives for software functions
Reading
• Use-case—descriptions of the interaction between an “actor” Command
State name
s
and the system System status = “ready”
Display msg = “enter cmd”
– Class-based elements
Display status = steady
State variables
• State diagram
– Flow-oriented elements
• Data flow diagram
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright
copyright 2009 by Roger Pressman. 2009 by Roger Pressman.
Validation
Requirements
Management
Requirements Gathering Negotiation Task
(Negotiation)
Inception
• During negotiation, the software engineer reconciles the conflicts
between what the customer wants and what can be achieved given
limited business resources
Elicitation • Requirements are ranked (i.e., prioritized) by the customers, users,
and other stakeholders
Elaboration • Risks associated with each requirement are identified and analyzed
• Rough guesses of development effort are made and used to assess
Negotiation the impact of each requirement on project cost and delivery time
• Using an iterative approach, requirements are eliminated, combined
Specification and/or modified so that each party achieves some measure of
satisfaction
Validation
Requirements
Management
Requirements Gathering
The Art of Negotiation
(Specification)
Inception
Requirements
Management
Typical Contents of a Software
Specification Task
Requirements Specification
• Requirements
• A specification is the final work product produced by the – Required states and modes
requirements engineer – Software requirements grouped by capabilities (i.e., functions, objects)
• It is normally in the form of a software requirements specification – Software external interface requirements
• It serves as the foundation for subsequent software engineering – Software internal interface requirements
activities – Software internal data requirements
• It describes the function and performance of a computer-based – Other software requirements (safety, security, privacy, environment,
hardware, software, communications, quality, personnel, training, logistics,
system and the constraints that will govern its development etc.)
• It formalizes the informational, functional, and behavioral – Design and implementation constraints
requirements of the proposed software in both a graphical and • Qualification provisions to ensure each requirement has been met
textual format – Demonstration, test, analysis, inspection, etc.
• Requirements traceability
– Trace back to the system or subsystem where each requirement applies
Requirements
Management
Requirements Gathering
Requirements Management Task
(Requirement Management)
Inception • During requirements management, the project team performs a set
of activities to identify, control, and track requirements and
changes to the requirements at any time as the project
Elicitation proceeds
Process Modeling
Process Modeling • Modeling a system’s process
• Level-N Diagrams
– A DFD that is the result of n nested
decompositions of a series of subprocesses
from a process on a level-0 diagram
Balancing DFDs: An unbalanced
Balancing DFDs example
• Here we have the • In context
same inputs and diagram, we
output, that is no new have one input
inputs or outputs have to the system,
been introduced A and one
output, B
• We can say that the
context diagram and • Level 1
level-1 DFD are diagram has
balanced one additional
data flow, C
B. No process
can have
• Objects always have a only inputs
unique name (black hole)
– In order to keep the
C. A process
diagram uncluttered,
has a verb
you can repeat data phrase
stores and data flows on label
a diagram (except
for context
diagram)
Data Flow Diagramming Rules: Data Data Flow Diagramming Rules:
Store Source/Sink
D. Data cannot be
moved from
one store to
another. H. Data cannot move
directly from a source to
E. Data cannot a sink
move from an
outside source
to a data store
F. Data cannot
move directly
from a data I. A source/sink has a
store to a data noun phrase label
sink
Data Flow Diagramming Rules: Data Data Flow Diagramming Rules: Data
Flow Flow (Continued)
J. A data flow L. A join means that exactly the
same data come from any two
has only one
or more different processes,
direction of data stores or sources/sinks to a
flow between common location
symbols.
• Chart which shows the breakdown of a system to its lowest Data Flow
manageable levels.
• Program modules are arranged in a tree structure.
• Each module is represented by a box, which contains the module's
name.
• The tree structure visualizes the relationships between modules.
• An actor is some one or something that must interact • It is role a user plays with respect to system.
with the system under development • Actors are not part of the system they represent anyone
• UML notation for actor is stickman, shown below. or anything that must interact with the system.
• Actors carry out use cases and a single actor may
perform more than one use cases.
• Actors are determined by observing the direct uses of
the system,
Customer Manager Cashier
10 11
ACTOR: ACTOR:
How do we find the actor?
Contd…
• Ask following questions to find the actors:
– Who uses the system?
• Those are responsible for its use and maintain as well as
other systems that interact with the developed system. – Who installs the system?
– Who Starts up the system?
• An actor may – What other systems use this system?
- input information to the system. – Who gets the information from the system?
- receive information from the system. – Who provides information to the system?
- input to and out from the system.
• Actor is always external to the system. They are never
part of the
12 system to be developed. 13
ACTOR: USE CASE:
What is USE case?
• A use case is a pattern of behavior, the system exhibits
4-Categories of an actor:
• Each use case is a sequence of related transactions
performed by an actor and the system in dialogue.
• Primary Actor : Who uses the main system functions. • USE CASE is dialogue between an actor and the
• Secondary Actor: Who takes care of administration & system.
maintenance. • Examples:
• External h/w : The h/w devices which are part of
application domain and must be used.
• Other system: The other system with which the system
must interact. Open new account Withdrawal of cash
from ATM
14 15
– Overview : Description.
24 25
Another Example – Library Management
USE CASE Template Contd. System
• Typical Course of Events/ Successful Scenario/
Normal Scenario Pls Note: Use
<<extends>>
ACTOR ACTION(AA) : Numbered actions of the
instead of
actor.
<<extend>> and
SYSTEM RESPONSE(SR): Numbered description of <<includes>>
system responses. instead of
SYSTEM ACTION(SA): Numbered description of <<include>>
system responses.
• Exceptional Flow of Events/ Extension points
• Alternate Flow
• Post Condition( if any)
Relationships Relationships
(1) Association
(2) Aggregation
• These are most general type of relationship: • This is a special type of association
• The association with label “contains “ or “is part of” is
– It denotes a semantic connection between two
an aggregation
classes
• It represents “has a” relationship
– It is a weak coupling as associated classes remain • It is used when one object logically or physically contains
somewhat independent of each other. other
– Example: • The container is called as aggregate
• It has a diamond symbol at its end
• It expresses a whole – part relationship
Relationships Relationships
(3) Composition (4) Dependency
• This is a strong form of aggregation • Dependency is a semantic relationship between two
• It expresses the stronger coupling between the things in which a change to one thing (independent
classes thing) may affect the semantics of other thing (the
• The owner is explicitly responsible for creation and dependent thing)
deletion of the part
• Any deletion of whole is considered to cascade its part • Graphically, a dependency is represented as a directed
• The aggregate has a filled diamond symbol at its end dashed line,