Professional Documents
Culture Documents
Engineering
CS3201 [3 1 0 4]
Contents
Text Book
• R. Mall, “Fundamental of Software Engineering”, 4th Edition, PHI, 2014
• Ian Summerville, “Software Engineering”, 9th Edition, Addition Wesley,
2002.
Reference Books
• Pankaj Jalote, “Software Engineering a Precise Approach”, Wiley, 2010.
• Roger S. Pressman, “Software Engineering: A Practitioners Approach”, 7th
Edition, TMH, 2016.
What is Software Engineering?
• Engineering approach to develop software.
• Building Construction Analogy.
• Systematic collection of past experience:
• techniques,
• methodologies,
4
Software Engineering
• Software engineering is:
• An engineering discipline that provides knowledge, tools, and methods for:
• Defining software requirements
• Performing software design
• Software construction
• Software testing
• Software maintenance tasks
• Software project management
5
Introduction: Software is Complex
• Complex complicated
Customer
Customer
Programmer
System-to-be
(includes hardware)
Problem Domain
Software-to-be
User
10
Example: ATM Machine
Understanding the money-machine problem:
Communication link
1
4 2
7 5 3
8 6
0 9
Bank’s
remote
ATM machine
datacenter
Bank
customer
11
Problem-solving Strategy
Divide-and-conquer:
• Identify logical parts of the system that each solves a part
of the problem
• Easiest done with the help of a domain expert who already
knows the steps in the process (“how it is currently done”)
• Result:
A Model of the Problem Domain
(or “domain model”)
12
How ATM Machine Might Work Domain Model
Transaction
How may I record
help you? Cash
Bookkeeper
Speakerphone Safe
Safe keeper
Phone
Window clerk
Datacenter
liaison
Dispenser
Bank’s
remote
datacenter 13
Customer
Cartoon Strip : How ATM Machine Works
A Enter B C Verify
account
D
your PIN
XYZ
Verify
this
account
Withdraw Dispense
H Dispensing!
$60 $60
Please take
your cash
14
Sub-disciplines of Software Engineering
• Software engineering can be divided into 11 sub disciplines. They are:
• Software requirements: The elicitation, analysis, specification, and validation of requirements for
software.
• Software architecture: The elicitation, analysis, specification, definition and design, and
validation and control of software architecture requirements.
• Software design: The design of software is usually done with Computer-Aided Software
Engineering (CASE) tools and use standards for the format, such as the Unified Modeling
Language (UML).
• Software development: The construction of software through the use of programming languages.
• Software testing
• Software maintenance: Software systems often have problems and need enhancements for a long
time after they are first completed. This subfield deals with those problems.
15
16
Projects were:
• Late.
• Over budget.
• Unreliable.
• Difficult to maintain.
• Performed poorly.
18
Software Crisis
Example 1: 2009,Computer glitch delays flights
Software Crisis
Example 2: Ariane 5 Explosion
Software Crisis
Example 3: 1992, London Ambulance Service
• Overloaded problem.
• 46 deaths.
22
Therefore…
A well-disciplined approach to software
development and management is
necessary. This is called engineering.
23
Software Engineering
What is Software?
Programs
Software
System
Documentation
Data Documentation
User
Documentation
25
Types of Software
• Generic products.
• Stand-alone systems that are marketed and sold to any customer who wishes to buy them.
• Examples – PC software such as graphics programs, project management tools; CAD software;
software for specific markets such as appointments systems for dentists.
• The specification of what the software should do is owned by the software developer and
decisions on software change are made by the developer.
Systems Engineering:
Interdisciplinary engineering field (computer, software, and process eng.).
Focuses on how complex engineering projects should be designed and managed.
28
Software products
• Generic products
• Stand-alone systems that are marketed and sold to any customer who wishes
to buy them.
• Examples – PC software such as editing, graphics programs, project
management tools; CAD software; software for specific markets such as
appointments systems for dentists.
• Customized products
• Software that is commissioned by a specific customer to meet their own
needs.
• Examples – embedded control systems, air traffic control software, traffic
monitoring systems.
29
Software Applications
1. System software: such as compilers, editors, file management utilities
2. Application software: stand-alone programs for specific needs.
3.Engineering/scientific software: Characterized by “number crunching”algorithms. such as
automotive stress analysis, molecular biology, orbital dynamics etc
4. Embedded software resides within a product or system. (keypad control of a microwave oven,
digital function of dashboard display in a car)
5. Product-line software focus on a limited marketplace to address mass consumer market. (word
processing, graphics, database management)
6. WebApps (Web applications) network centric software. As web 2.0 emerges, more sophisticated
computing environments is supported integrated with remote database and business applications.
7. AI software uses non-numerical algorithm to solve complex problem. Robotics, expert system,
pattern recognition game playing.
30
Need for Software Engineering
31
Software Characteristics
• Its characteristics that make it different from other things human being build.
32
FAQ about software engineering
Question Answer
What is software? Computer programs, data structures and associated documentation. Software
products may be developed for a particular customer or may be developed for a
general market.
What are the attributes of good Good software should deliver the required functionality and performance to the
software? user and should be maintainable, dependable and usable.
What is software engineering? Software engineering is an engineering discipline that is concerned with all
aspects of software production.
What is the difference between Computer science focuses on theory and fundamentals; software engineering is
software engineering and concerned with the practicalities of developing and delivering useful software.
computer science?
What is the difference between System engineering is concerned with all aspects of computer-based systems
software engineering and system development including hardware, software and process engineering. Software
engineering? engineering is part of this more general process.
33
Essential attributes of good software
Product Description
characteristic
Maintainability Software should be written in such a way so that it can evolve to meet the changing needs
of customers. This is a critical attribute because software change is an inevitable
requirement of a changing business environment.
Dependability and Software dependability includes a range of characteristics including reliability, security and
security safety. Dependable software should not cause physical or economic damage in the event
of system failure. Malicious users should not be able to access or damage the system.
Efficiency Software should not make wasteful use of system resources such as memory and
processor cycles. Efficiency therefore includes responsiveness, processing time, memory
utilisation, etc.
Acceptability Software must be acceptable to the type of users for which it is designed. This means that
it must be understandable, usable and compatible with other systems that they use.
34
Software Qualities
Pressman's definition of “Software Quality”
1. explicitly stated functional and performance requirements,
2. explicitly documented development standards, and
3. implicit characteristics that are expected of all professionally developed software.
IEEE Definition of “Software Quality”
4. The degree to which a system, component, or process meets specified
requirements.
5. The degree to which a system, component, or process meets customer or user
needs or expectations.
35
Software Qualities
• Software quality:
• Conformance to explicitly stated requirements and standards
• Quality assurance:
• is the activity that leads to “fitness of purpose”.
• Quality product:
• is the one that does what the customer expects it to do.
User satisfaction = compliant product + good quality + delivery within
budget and schedule
36
Software Qualities
Quality criteria include but are not limited to:
• Correctness • Evolvability
• Reliability • Reusability
• Robustness • Portability
• Performance • Understandability
• User friendliness • Productivity
• Verifiability • Size
• Maintainability
• Timeliness
• Reparability
• Safety • Visibility
38
Benefits Of Software Quality
• Reduced maintenance cost
• Stable and useful product
• Satisfy customer needs
• Better chances for continuing releases
• Build corporate culture and identity
• Better chances for software and design reuse
39
McCall’s Quality Factors
• McCall’s quality factors were proposed in the early 1970s. They are as
valid today as they were in that time. It’s likely that software built to
conform to these factors will exhibit high quality well into the 21st
century, even if there are dramatic changes in technology.
M a i n t a i n a b ilit y P o r t a b ilit y
F l e x i b ili t y R e u s a b ilit y
T e s t a b ili t y
I n t e r o p e r a b ilit y
P R O D U C T R E V IS I O N P R O D U C T T R A N S IT I O N
P R O D U C T O P E R A T IO N
R e l i a b il i t y I n t e g r it y
40
McCall’s Software Quality Factors
• Product Operations
• Operational characteristics
• Product Revision
• Ability to undergo changes
• Product Transition
• Adaptability to new environments
41
McCall’s Quality Factors Model Tree
42
McCall’s Software Quality Factors
Factor Criteria Description
Product Maintainability Can I fix it?
Revision Flexibility Can I change it?
Testability Can I test it?
Product Portability Will I be able to use it on another machine?
Transition Reusability Will I be able to reuse some of the other
software in other application?
Interoperability Will I be able to interface it with another
system?
Product Correctness Does it do what I want?
Operation Reliability Does it do it accurately all the time?
Efficiency Will it run as well as it can?
Integrity Is it secure?
Usability Is it easy to use?
43
McCall Quality Model and Alternative Models
44
45
Description of the software process that represents one view, such as the activities,
data or roles of people involved.
Role/Action What is the role of people involved in each step of the process?
47
Component-Based Software
Waterfall approach Iterative development
Engineering CBSE
Depends on:
The process used, and
The type of software being developed.
Roughly 60% of costs are development costs, 40% are testing costs.
Cost distribution
Custom software development (Bespoke)
Software Model Waterfall Model
Cost units 0 25 50 75 100
Cost distribution
Software development activity Specification Design Development Integration and testing
Iterative Development
0 25 50 75 100
Cost distribution
Generic software development
0 25 50 75 100
What is CASE?
Activity
What are the key attributes for..
Players, score, scenes, theme. Client accounts, stocks bonds, heart rate, temperature, blood
money transfers. pressure.
54
Result:
YES!
Stu Elmer
Object:
method-1: method-2: method-3:
ATM machine
Accept card Read code Take selection
1234
5678
12345
1
4 2
7 5 3
8 6
0 9
Object Interface
Interface defines method “signatures”
Method signature: name, parameters, parameter types, return type
Interface
attributes
method-1 Object hides its
state (attributes).
method-2 The attributes
are accessible
only through the
method-3 interface.
Clients, Servers, Messages
Client
Client Object
Object Server
Server
Object
Object
Message
Data
(state)
62
Software Development Life Cycle
(SDLC)
• A (software/system) lifecycle model is a description of the sequence of activities
carried out in an SE project, and the relative order of these activities.
• Software Development Life Cycle (SDLC) is a process used by a systems
analyst to develop an information system, including requirements, validation,
training, and user (stakeholder) ownership.
• Any SDLC should result in a high quality software that meets or exceeds
customer expectations, reaches completion within time and cost estimates, works
effectively and efficiently in the current and planned Information Technology
infrastructure, and is inexpensive to maintain and cost-effective to enhance.
• It provides a sequence of activities for system designers and developers to follow.
• It consists of a set of steps or phases in which each phase of the SDLC uses the
results of the previous one.
63
Strength and Weaknesses of SDLC
64
Software Development Process Model
• A software development process model is an abstract
representation of a software process.
• The development process is the sequence of activities that will
produce high quality software.
• A software development process model is broken down into
distinct activities.
• A software development process model specifies how these
activities are organized in the entire software development
effort.
65
Types of Software Development Process
Model
• A software development process model is either a descriptive or
prescriptive characterization of how software is or should be
developed.
• A descriptive model describes the history of how a particular software
system was developed. Descriptive models may be used as the basis
for understanding and improving software development processes or
for building empirically grounded prescriptive models.
• A prescriptive model prescribes how a new software system should be
developed. Prescriptive models are used as guidelines or frameworks
to organize and structure how software development activities should
be performed, and in what order. Typically, it is easier and more
common to articulate a prescriptive life cycle model for how software
systems should be developed.
66
Waterfall Model
• Sometimes called the classic life cycle or the linear sequential
model.
• It suggests a systematic, sequential approach to software
development that begins at the system level and progresses through
analysis, design, coding, testing, and support.
• Waterfall model is the simplest & oldest prescriptive process model.
• It is a rigid and linear process model.
• Although the original waterfall model proposed by Winston Royce
made provision for “feedback loops,” the vast majority of
organizations that apply this process model treat it as if it were
strictly linear.
67
Stages of Waterfall Model
68
Waterfall Model
• In theory:
• Each phase produces documents that are:
• Verified and validated.
• Assumed to be complete.
• Each phase depends on the documents of the previous stage
to proceed → it has to wait for the completion of previous
stage.
• In practice:
• The phases overlap and feedback to each other (see the
feedback arrow in the diagram).
69
When to use the Waterfall Model
• Requirements are very well known
• Product definition is stable
• Technology is understood
• New version of an existing product
• Porting an existing product to a new platform.
70
Advantages & Disadvantages
Advantages of the Waterfall Model:
• Easy to explain to the user.
• Stages and activities are well defined.
• Helps to plan and schedule the project.
72
Incremental Process Model
• Construct a partial implementation of a total system
• Then slowly add increased functionality
• The incremental model prioritizes requirements of the system and then
implements them in groups.
• Each subsequent release of the system adds function to the previous release, until
all designed functionality has been implemented.
• It combines the advantages of Waterfall and Evolutionary Model.
• Each increment is a mini-waterfall.
73
Stages of Incremental Model
74
When to use the Incremental Model
• Risk, funding, schedule, program complexity, or need for early realization of
benefits.
• Most of the requirements are known up-front but are expected to evolve over
time.
• A need to get basic functionality to the market early.
• On projects which have lengthy development schedules.
• On a project with new technology.
75
Advantages & Disadvantages
• Advantages of Incremental Model:
• Less Human Resources.
• Manage Technologies.
• Customer Evaluation and Satisfaction
• Customer gains experience.
• Low Project Failure Risk.
•
• Disadvantages of Incremental Model:
• Increments size should be neither too small nor too large.
• It is very difficult to categorize requirements as most important and least important.
76
Prototyping Model
• Prototyping is a technique for providing a reduced functionality or a limited performance
version of a software system early in its development.
• Prototyping can more directly accommodate early user participation in determining,
shaping, or evaluating emerging system functionality.
• Prototyping is the practice of building an early version of software.
• This model is built at the early stages of the software development. It is built very rapidly
and fast, so that it can be checked time-to-time by the customer. That is why, it is also
called as the “Rapid Prototyping”.
• Prototyping is well suited for projects where requirements are hard to determine and the
confidence in the stated requirements is low.
77
Prototyping Model
78
Steps of Prototyping Model
• A preliminary project plan is developed
• An partial high-level paper model is created
• The model is source for a partial requirements specification
• A prototype is built with basic and critical attributes
• The designer builds
• the database
• user interface
• algorithmic functions
• The designer demonstrates the prototype, the user evaluates for problems and
suggests improvements.
• This loop continues until the user is satisfied
79
When to use Prototyping Model
• Requirements are unstable or have to be clarified
• As the requirements clarification stage of a waterfall model
• Develop user interfaces
• Short-lived demonstrations
• New, original development
• With the analysis and design portions of object-oriented development.
80
Advantages of Prototyping Model
• Misunderstandings between software developer and users may be identified.
• Missing facilities and features may be found out.
• Any non-conform, hard or confusing facilities or characteristics may be identified.
• Software developer may be found the incomplete or inconsistent requirements as
the prototype is developed.
• Development effort is reduced because the resultant system is the right system.
• User-developer communication is enhanced.
81
Disadvantages of Prototyping Model
• The customer will want the early version of the model which may not have good
quality concerns and maintainability.
• The developer often makes implementation compromises in order to get a
prototype working quickly. An inappropriate operating system or programming
language may be used simply because it is available and known; an inefficient
algorithm may be implemented simply to demonstrate capability. After a time, the
developer may become familiar with these choices and forget all the reasons why
they were inappropriate. The less-than-ideal choice has now become an integral
part of the system.
82
Spiral Model
• The spiral model, originally proposed by Barry W. Boehm in his 1986 article "A
Spiral Model of Software Development and Enhancement“.
• It is an evolutionary software process model that couples the iterative nature of
prototyping with the controlled and systematic aspects of the linear sequential
model.
• It provides the potential for rapid development of incremental versions of the
software.
• Using the spiral model, software is developed in a series of incremental releases.
83
Stages of Spiral Model
84
Spiral Model
• Process is represented as a spiral rather than as a sequence of activities with
backtracking.
• Each loop = One Iteration = A process phase.
• Each Loop passes through 4 quadrants (90°):
• Objective Setting.
• Risk Assessment and Reduction.
• Development and Validation.
• Planning.
• As loops move away from center → Time and Cost increase.
• Adds risk analysis, and RAD prototyping to the waterfall model.
• Each cycle involves the same sequence of steps as the waterfall process model.
85
When to use Spiral Model
• When creation of a prototype is appropriate
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment unwise because of potential changes to economic
priorities
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and exploration)
86
Advantages of Spiral Model
• The software development indicates that the software remain active till it is retired.
• It is a realistic approach to be used.
• If the process is going to be old, and requires some type of change, then maintenance or
some enhancements can be done in the project.
• The main and most important feature of this model is risk analysis. The risk analyst will
try to reduce the risks arise. Prototyping can be used as risk reduction mechanism.
87
Disadvantages of Spiral Model
• It is very hard to satisfy the customer.
• If the risks are not covered initially then they may arise at any time in later stages.
• This model can’t be used so frequently so the results are not available soon.
• It requires a large sum of money to be completed.
• Very difficult to implement.
88
Rapid Application Development Model
• RAD model is Rapid Application Development model.
• It is an adoption of the waterfall model.
• It targets at developing software in a short span of time.
• It is a type of incremental model.
• In RAD model, the components or functions are developed in parallel as if they were
mini projects.
• The developments are time boxed, delivered and then assembled into a working
prototype.
• RAD model has following phases
1. Business Modeling 4. Application Generation
2. Data Modeling 5. Testing and Turnover
3. Process Modeling
89
RAD Model
90
Different phases of RAD model
Phases of RAD Activities performed in RAD Model
model
Business Modeling •On basis of the flow of information and distribution between various business channels,
the product is designed
Data Modeling •The information collected from business modeling is refined into a set of data objects that
are significant for the business
Process Modeling •The data object that is declared in the data modeling phase is transformed to achieve the
information flow necessary to implement a business function
Application •Automated tools are used for the construction of the software, to convert process and data
Generation models into prototypes
Testing and •As prototypes are individually tested during every iteration, the overall testing time is
Turnover reduced in RAD.
91
When to use RAD Methodology?
• When a system needs to be produced in a short span of time (2-3 months)
• When the requirements are known
• When the user will be involved all through the life cycle
• When technical risk is less
• When there is a necessity to create a system that can be modularized in 2-3
months of time
• When a budget is high enough to afford designers for modeling along with the
cost of automated tools for code generation
92
RAD Examples
• Purchase Order
• Gather all the people who know the process best, starting with the procurement team. Bring
together current forms and a complete understanding of the workflow. Discuss how you want the
app to function. With purchase orders, it’s often helpful to also have a vendor database for quick
reference to call up information in the form.
• Employee Resignation
• Travel Request
93
RAD Model Vs Traditional SDLC
• The traditional SDLC follows a rigid process models with high emphasis on
requirement analysis and gathering before the coding starts. It puts pressure on the
customer to sign off the requirements before the project starts and the customer doesn’t
get the feel of the product as there is no working solution available for a long time.
• The customer may need some changes after he gets to see the software. However, the
change process is quite rigid and it may not be feasible to incorporate major changes in
the product in the traditional SDLC.
• The RAD model focuses on iterative and incremental delivery of working models to the
customer. This results in rapid delivery to the customer and customer involvement
during the complete development cycle of product reducing the risk of non-
conformance with the actual user requirements.
94
Advantages of the RAD Model
• Changing requirements can be accommodated.
• Progress can be measured.
• Iteration time can be short with use of powerful RAD tools.
• Productivity with fewer people in a short time.
• Reduced development time.
• Increases reusability of components.
• Quick initial reviews occur.
• Encourages customer feedback.
• Integration from very beginning solves a lot of integration issues.
95
Disadvantages of the RAD Model
• Dependency on technically strong team members for identifying business requirements.
• Only system that can be modularized can be built using RAD.
• Requires highly skilled developers/designers.
• High dependency on modeling skills.
• Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.
• Management complexity is more.
• Suitable for systems that are component based and scalable.
• Requires user involvement throughout the life cycle.
• Suitable for project requiring shorter development times.
96
Agile Modeling
• Rapid development and delivery is now often the most important requirement for
software systems
• Businesses operate in a fast –changing requirement and it is practically impossible to produce
a set of stable software requirements
• Software has to evolve quickly to reflect changing business needs.
• Plan-driven development is essential for some types of system but does not meet
these business needs.
• Dissatisfaction with the overheads involved in software design methods of the
1980s and 1990s led to the creation of agile methods.
• Agile development methods emerged in the late 1990s whose aim was to radically
reduce the delivery time for working software systems.
97
Dynamic System Development Method
• The Dynamic Systems Development technique (DSDM) is an associate degree
agile code development approach that provides a framework for building and
maintaining systems.
• The DSDM philosophy is borrowed from a modified version of the sociologist
principle—80% of An application is often delivered in twenty percent of the time
it’d desire deliver the entire (100 percent) application.
• DSDM is a Rapid Application Development (RAD) approach to software
development and provides an agile project delivery framework.
• The important aspect of DSDM is that the users are required to be involved
actively, and the teams are given the power to make decisions.
• Frequent delivery of product becomes the active focus with DSDM.
98
DSDM Life Cycle
• DSDM life cycle that defines 3 different unvarying cycles, preceded by 2 further life cycle
activities:
• Feasibility Study: It establishes the essential business necessities and constraints related to the
applying to be designed then assesses whether or not the application could be a viable candidate
for the DSDM method.
• Business Study: It establishes the use and knowledge necessities that may permit the applying to
supply business value; additionally, it is the essential application design and identifies the
maintainability necessities for the applying.
• Functional Model Iteration: It produces a collection of progressive prototypes that demonstrate
practicality for the client. The intent throughout this unvarying cycle is to collect further
necessities by eliciting feedback from users as they exercise the paradigm.
99
DSDM Life Cycle
• Design and Build Iteration: It revisits prototypes designed throughout useful
model iteration to make sure that everyone has been designed during a manner that
may alter it to supply operational business price for finish users. In some cases,
useful model iteration and style and build iteration occur at the same time.
• Implementation: It places the newest code increment (an “operationalized”
prototype) into the operational surroundings. It ought to be noted that:
(a) the increment might not 100% complete or,
(b) changes are also requested because the increment is placed into place.
• In either case, DSDM development work continues by returning to the useful model
iteration activity.
100
101
Requirement Engineering
Requirement Engineering
• The process of establishing the services the system should provide and the
constraints under which it must operate’ - Roger S. Pressman Software Engineering
– A practitioner’s Approach European Adaptation, fifth edition
• The appropriate mechanism for understanding what the customer wants, analyzing
need, assessing feasibility, negotiating a reasonable solution, specifying the solution
unambiguously, validating the specification, and managing the requirements as they
are transformed into an operational system.
- Thayer, R.H. and M. Dorfman, Software requirements engineering.
103
Requirements Engineering
• The process of establishing the services that a customer requires from a system and
the constraints under which it operates and is developed.
• Begins during the communication activity and continues into the modeling activity
• Builds a bridge from the system requirements into software design and construction
• Allows the requirements engineer to examine
• the context of the software work to be performed
• the specific needs that design and construction must address
• the priorities that guide the order in which work is to be completed
• the information, function, and behavior that will have a profound impact on the resultant design
104
Requirements Engineering Tasks
• Seven distinct tasks
• Inception
• Elicitation (Induction)
• Elaboration
• Negotiation
• Specification
• Validation
• Requirements Management
• Some of these tasks may occur in parallel and all are adapted to the needs of the
project
• All strive to define what the customer wants
• All serve to establish a solid foundation for the design and construction of the
software
105
Inception Task
• During inception, the requirements engineer asks a set of questions to
establish…
• A basic understanding of the problem
• The people who want a solution
• The nature of the solution that is desired
• The effectiveness of preliminary communication and collaboration between the customer
and the developer
• Through these questions, the requirements engineer needs to…
• Identify the stakeholders
• Recognize multiple viewpoints
• Work toward collaboration
• Break the ice and initiate the communication
106
Elicitation Task
• Elicitation may be accomplished through two activities
• Collaborative requirements gathering
• Quality function deployment
• Eliciting requirements is difficult because of
• Problems of scope in identifying the boundaries of the system or specifying
too much technical detail rather than overall system objectives
• Problems of understanding what is wanted, what the problem domain is, and
what the computing environment can handle (Information that is believed to
be "obvious" is often omitted)
• Problems of volatility because the requirements change over time
107
Collaborative Requirements Gathering
• Meetings are conducted and attended by both software engineers, customers, and
other interested stakeholders
• Rules for preparation and participation are established
• An agenda is suggested that is formal enough to cover all important points but
informal enough to encourage the free flow of ideas
• A "facilitator" (customer, developer, or outsider) controls the meeting
• A "definition mechanism" is used such as work sheets, flip charts, wall stickers,
electronic bulletin board, chat room, or some other virtual forum
• The goal is to identify the problem, propose elements of the solution, negotiate
different approaches, and specify a preliminary set of solution requirements
108
Quality Function Deployment
• This is a technique that translates the needs of the customer into technical
requirements for software.
• It emphasizes an understanding of what is valuable to the customer and then
deploys these values throughout the engineering process through functions,
information, and tasks.
• It identifies three types of requirements
• Normal requirements: These requirements are the objectives and goals stated for a product
or system during meetings with the customer.
• Expected requirements: These requirements are implicit to the product or system and may
be so fundamental that the customer does not explicitly state them.
• Exciting requirements: These requirements are for features that go beyond the customer's
expectations and prove to be very satisfying when present.
109
Elicitation Work Products
The work products will vary depending on the system, but should include one or more
of the following items:
1. A statement of need and feasibility
2. A bounded statement of scope for the system or product
3. A list of customers, users, and other stakeholders who participated in requirements
elicitation
4. A description of the system's technical environment
5. A list of requirements (organized by function) and the domain constraints that
apply to each
6. A set of preliminary usage scenarios (in the form of use cases) that provide insight
into the use of the system or product under different operating conditions
7. Any prototypes developed to better define requirements
110
Elaboration Task
• During elaboration, the software engineer takes the information obtained during
inception and elicitation and begins to expand and refine it.
• Elaboration focuses on developing a refined technical model of software
functions, features, and constraints.
• It is an analysis modeling task
• Use cases are developed.
• Domain classes are identified along with their attributes and relationships.
• State machine diagrams are used to capture the life on an object.
• The end result is an analysis model that defines the functional, informational,
and behavioral domains of the problem.
111
Negotiation Task
• During negotiation, the software engineer reconciles the conflicts between what
the customer wants and what can be achieved given limited business resources.
• Requirements are ranked (i.e., prioritized) by the customers, users, and other
stakeholders.
• Risks associated with each requirement are identified and analyzed.
• Rough guesses of development effort are made and used to assess the impact of
each requirement on project cost and delivery time.
• Using an iterative approach, requirements are eliminated, combined and/or
modified so that each party achieves some measure of satisfaction .
112
The Art of Negotiation
• Recognize that it is not competition
• Map out a strategy
• Listen actively
• Focus on the other party’s interests
• Don’t let it get personal
• Be creative
• Be ready to commit
113
Specification Task
114
Validation Task
• During validation, the work products produced as a result of requirements
engineering are assessed for quality.
• The specification is examined to ensure that
• all software requirements have been stated unambiguously
• inconsistencies, omissions, and errors have been detected and corrected
• the work products conform to the standards established for the process, the project, and the
product
• The formal technical review serves as the primary requirements validation
mechanism.
• Members include software engineers, customers, users, and other stakeholders.
115
Questions to ask when Validating Requirements
• Is each requirement consistent with the overall objective for the system/product?
• Have all requirements been specified at the proper level of abstraction? That is, do
some requirements provide a level of technical detail that is inappropriate at this
stage?
• Is the requirement really necessary or does it represent an add-on feature that may
not be essential to the objective of the system?
• Is each requirement bounded and unambiguous?
• Does each requirement have attribution? That is, is a source (generally, a specific
individual) noted for each requirement?
• Do any requirements conflict with other requirements?
• Is each requirement achievable in the technical environment that will house the
system or product?
116
Requirements Management Task
• 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 proceeds
• Each requirement is assigned a unique identifier
• The requirements are then placed into one or more traceability tables
• These tables may be stored in a database that relate features, sources,
dependencies, subsystems, and interfaces to the requirements
• A requirements traceability table is also placed at the end of the
software requirements specification
117
Software Requirement Specification (SRS)
Software Requirement Specification (SRS)
• A software requirements specification (SRS) is a complete description of the behavior
of the system to be developed.
• It may include a set of use cases that describe interactions the users will have with the
software.
• A document that clearly and precisely describes, each of the essential requirements of
the software and the external interfaces.
• (functions, performance, design constraint, and quality attributes)
• Each requirement is defined in such a way that its achievement is capable of being
objectively verified by a prescribed method; for example inspection, demonstration,
analysis, or test.
• Software requirements specification establishes the basis for agreement between
customers and contractors or suppliers on what the software product is to do as well as
what it is not expected to do.
119
An example organization of an SRS
• Introduction Specific requirements
• Purpose External interface requirements
• Definitions Functional requirements
• System overview Introduction
Inputs
• References
Processing
• Overall description Outputs
• Product perspective Performance requirements
• System Interfaces Design constraints
• User Interfaces Standards Compliance
• Hardware interfaces Logical database requirement
• Software interfaces
Software System attributes
• Communication Interfaces
Reliability
• Memory Constraints
Availability
• Operations
Security
• Site Adaptation Requirements
Maintainability
• Product functions Portability
• User characteristics Other requirements 120
• Constraints, assumptions and dependencies
Characteristics of a Good SRS (IEEE 830)
1. Unambiguous
2. Complete
3. Verifiable
4. Consistent
5. Modifiable
6. Traceable
7. Usable during the Operation and Maintenance Phase
121
IEEE Software Document Definitions
• SQAP – Software Quality Assurance Plan (IEEE 730)
• SCMP – Software Configuration Management Plan (IEEE 828)
• STD – Software Test Documentation (IEEE 829)
• SRS – Software requirements specification (IEEE 830)
• SVVP – Software Validation & Verification Plan IEEE 1012
• SDD – Software Design Description IEEE 1016
• SPMP – Software Project Management Plan IEEE 1058
• SUD – Software User Documentation IEEE 1063
122
Requirements vs. Design
Requirements Design
123
Types of Requirement
• User requirements
• Statements in natural language plus diagrams of the services the system
provides and its operational constraints. Written for customers.
• System requirements
• A structured document setting out detailed descriptions of the system’s
functions, services and operational constraints. Defines what should be
implemented so may be part of a contract between client and contractor.
124
User and System Requirements
125
Functional and Non-functional Requirements
• Functional requirements
• Statements of services the system should provide, how the system should
react to particular inputs and how the system should behave in particular
situations.
• May state what the system should not do.
• Non-functional requirements
• Constraints on the services or functions offered by the system such as timing
constraints, constraints on the development process, standards, etc.
• Often apply to the system as a whole rather than individual features or
services.
• Domain requirements
• Constraints on the system from the domain of operation
126
Functional Requirements
• Describe functionality or system services.
• Depend on the type of software, expected users and the type
of system where the software is used.
• Functional user requirements may be high-level statements of
what the system should do.
• Functional system requirements should describe the system
services in detail.
127
Non-functional Requirements
• These define system properties and constraints e.g. reliability, response time and
storage requirements. Constraints are I/O device capability, system
representations, etc.
• Process requirements may also be specified mandating a particular IDE,
programming language or development method.
• Non-functional requirements may be more critical than functional requirements. If
these are not met, the system may be useless.
128
Types of Non-functional Requirement
129
Users of a requirements document
130
Types of Requirements
• Functional requirements
• Performance requirements
• Speed, accuracy, frequency, throughput
• External interface requirements
• Design constraints
• Requirements are usually about “what”, this is a “how”.
• Quality attributes
• i.e. reliability, portability, maintainability, supportability
131
System Analyst
• A systems analyst is an IT professional who specializes in analyzing, designing and
implementing software systems.
• System analysts assess the suitability of information systems in terms of their intended
outcomes and liaise with end users, software vendors and programmers in order to
achieve these outcomes.
• Requirements analysis allows the software engineer (called an analyst or modeler in this
role) to:
• elaborate on basic requirements established during earlier requirement engineering
tasks
• build models that depict user scenarios, functional activities, problem classes and
their relationships, system and class behavior, and the flow of data as it is
transformed.
132
System Analyst
A systems analyst may:
• Identify, understand and plan for organizational and human impacts of planned systems, and ensure that new technical
requirements are properly integrated with existing processes and skill sets.
• Plan a system flow from the ground up.
• Interact with internal users and customers to learn and document requirements that are then used to produce business
requirements documents.
• Write technical requirements from a critical phase.
• Interact with designers to understand software limitations.
• Help programmers during system development, ex: provide use cases, flowcharts or even database design.
• Perform system testing.
• Deploy the completed system.
• Document requirements or contribute to user manuals.
• Whenever a development process is conducted, the system analyst is responsible for designing components and providing
that information to the developer.
133
Knowledge and Qualities of System Analyst
• An analyst must process various skills to effectively carry out the job.
Specifically, they must be divided into two categories:
• Interpersonal skill: This skills deal with relationships and the interface of the
analyst with people in business. They are useful in establishing trust, resolving
conflict, and communicating information.
134
Knowledge and Qualities of System Analyst
The Interpersonal skills include: -
• Communication: Communication is not just reports, telephone conversations, and
interviews. It is people talking, listening, feeling and reacting to one another, their
experience and reactions.
• Understanding: Identifying problems and assessing their ramifications, having a grasp of
company goals and objectives, and showing sensitivity to the impact of the system on
people at work.
• Teaching: Educating people in use of computer system, selling the system to user, and
giving support when needed.
• Selling: Selling ideas and promoting innovations in problem solving using computers.
135
Knowledge and Qualities of System Analyst
The technical skills include: -
• Creativity: Helping users model ideas into concrete plans and developing candidate systems to
match user requirements.
• Problem solving: Reducing problems to their elemental levels for analysis, developing
alternative solutions to a given problem, and delineating the pros and cons of candidate system.
• Project management: Scheduling, performing well under time constraints, coordinating team
efforts, and managing costs and expenditures.
• Dynamic interface: Blending technical and nontechnical consideration in functional
specifications and general design.
• Questioning attitude and inquiring mind: Knowing the what, when, why, where, who and how a
system works.
• Knowledge of the basics of the computer and the business function.
136
Role of a System Analyst
• The primary role of a systems analyst is to study the problems and needs of an
organization in order to determine how people, methods, and information
technology can best be combined to bring about improvements in the organization.
(Hoffer, George & Valachich, 1999).
• The systems analyst is a key person analyzing the business, identifying
opportunities for improvement, and designing information systems to implement
these ideas (Dennis, Wixom & Tegarden, 2002).
• Systems analysts are key to the systems development process. The analyst's
primary focus is on what not how. What data does the system produce and
consume, what functions must the system perform, what interfaces are defined and
what constrains apply?" (Pressman, 1997).
137
Role of a System Analyst
• The systems analyst must understand both the business requirements of an organization
and the workings of the various technologies - the systems analyst builds the bridges
between organizational needs and technology solutions.
• “When a system developer walks away from the successful implementation of a good
system, what has been achieved is the acceptance and efficient operation of a technical
computer system by a human community.
• The system has both a technical and a social dimension - it is a socio-technical system .
• The project plan will have allowed for the evolution of the technical aspects of the system
with the active involvement of the human community that will operate it" (Lejk and
Deeks, 1998).
138
Feasibility Study and It’s Types
• The feasibility study is an evaluation and analysis of the potential of a proposed project which is
based on extensive investigation and research to support the process of decision making.
• It is quantifying benefits and costs
• Payback analysis
• Net Present Value Analysis
• Return on Investment Analysis
Following are different components of the feasibility study:
• Operational feasibility
• Economic feasibility
• Technical feasibility
• Human factors feasibility
• Legal/Political feasibility
139
Feasibility Study Contents
1. Purpose & scope of the study 5. Possible alternatives
Objectives (of the study) …including ‘do nothing’.
who commissioned it & who did it,
6. Criteria for comparison
sources of information, definition of the criteria
process used for the study,
how long did it take,…
7. Analysis of alternatives
description of each alternative
2. Description of present situation evaluation with respect to criteria
organizational setting, current system(s). cost/benefit analysis and special implications.
Related factors and constraints.
8. Recommendations
3. Problems and requirements what is recommended and implications
What’s wrong with the present situation? what to do next;
What changes are needed? E.g. may recommend an interim solution and a
permanent solution
4. Objectives of the new system.
Goals and relationships between them 9. Appendices
to include any supporting material.
140
User Transaction Requirement
• Each user view will involve certain transactions, stipulating how the
data is to be used
• There are three broad categories:
• Data entry: every data item needs to be created somewhere
• Data update and deletion
• Data queries
• Transactions should be related to the user view to ensure all functions
are supported
• Do transactions needed to be atomic
141
User Design Requirements
• There are tools for guiding the user design process and for discussing user
design requirements with users.
• Mostly, Use Cases are used for this.
• A design specification provides explicit information about the requirements for
a product and how the product is to be put together.
142
Structure Model / Class Model
Different Views of a System
• A view is a projection into the organization and structure of a
system’s model, focused on one aspect of a system.
• Five most important views :
• Use case view.
• Design view.
• Process view.
• Implementation view.
• Deployment view.
144
Diagrams
• A diagram is a graphical projection into the elements
that make up a system.
• Each diagram provides a view into the elements that
make up the system.
• Structural diagrams to view the static parts and
Behavioral diagrams to view the dynamic parts of a
system.
145
Structural Diagrams
• Structure models emphasize the things that must be present in the system being
modeled.
• Since structure diagrams represent the structure, they are used extensively in
documenting the software architecture of software systems.
• The UML’s structural diagrams are used to visualize, specify, construct, and
document the static aspects of a system.
• Static aspects: represent system’s relatively stable skeleton and scaffolding.
• UML’s four/six structural diagrams:
• Class diagrams
• Object diagrams
• Component diagrams • Composite Structure
• Deployment diagrams • Package
146
Types of Structural Diagrams
• Class diagram: describes the structure of a system by showing the system's classes, their
attributes, and the relationships among the classes.
• Object diagram: shows a complete or partial view of the structure of a modeled system at a
specific time.
• Component diagram: describes how a software system is split up into components and shows the
dependencies among these components.
• Deployment diagram: describes the hardware used in system implementations and the execution
environments and artifacts deployed on the hardware.
• Composite structure diagram: describes the internal structure of a class and the collaborations
that this structure makes possible.
• Package diagram: describes how a system is split up into logical groupings by showing the
dependencies among these groupings.
147
Behavioral Model /
State Model
148
Behavioral Model
• Behavioral models describe the internal dynamic aspects of a system that
supports the business processes in an organization.
• Dynamic aspects: represent a system’s changing parts.
• Behavior diagrams emphasize what must happen in the system being modeled.
• Since behavior diagrams illustrate the behavior of a system, they are used
extensively to describe the functionality of software systems.
• Diagrams interact by passing events and through side effects of guard conditions.
• Events and guard conditions must match across diagrams in the model.
149
• During the analysis phase, analysts use behavioral models to capture a basic
understanding of the dynamic aspects of the underlying business process.
• During the analysis phase, the structural model presents the logical organization of
data without indicating how the data are stored, created, or manipulated so that
analysts can focus on the business without being distracted by technical details.
• Later, during the design phase, the structural model is updated to reflect exactly
how the data will be stored in databases and files.
• Traditionally, behavioral models have been used primarily during the design phase
where analysts refine the behavioral models to include implementation details.
150
• Behavioral models that are used to represent the underlying details of a business
process portrayed by a use case model.
• In UML, interaction diagrams (sequence and communication) are used for this
type of behavioral model.
• Behavioral model that is used to represent the changes that occur in the
underlying data.
• UML uses behavioral state machines for this.
151
Types of Behavioural Diagrams
• UML’s three behavioural diagrams:
• Use case diagrams
• State Machine diagrams
• Activity diagrams
• Use case diagram: describes the functionality provided by a system in terms of actors,
their goals represented as use cases, and any dependencies among those use cases.
• State Machine diagram: describes the states and state transitions of the system.
• Activity diagram: describes the business and operational step-by-step workflows of
components in a system. An activity diagram shows the overall flow of control.
152
Creating Behavioral Model
• An iterative process
• iterating over the individual behavioral models (e.g., interaction (sequence and
communication) diagrams and behavioral state machines)
• iterating over the functional and structural models.
• As the behavioral models are created, making changes to the structural models
may be required.
153
Interaction Model
154
Interaction Diagram
• Interaction diagrams, a subset of behaviour diagrams, emphasize the flow of
control and data among the things in the system being modeled.
• Used to describe some type of interactions among the different elements in the
model. So this interaction is a part of dynamic behaviour of the system.
• Purposes of interaction diagram:
• To capture dynamic behaviour of a system.
• To describe the message flow in the system.
• To describe structural organization of the objects.
• To describe interaction among objects.
155
Types of Interaction Models
• Sequence diagram: shows how objects communicate with each other in terms of
a sequence of messages. Also indicates the lifespans of objects relative to those
messages.
• Communication diagram: shows the interactions between objects or parts in
terms of sequenced messages. They represent a combination of information taken
from Class, Sequence, and Use Case Diagrams describing both the static
structure and dynamic behavior of a system.
• Interaction overview diagram: provides an overview in which the nodes
represent interaction diagrams.
• Timing diagram: are a specific type of interaction diagram, where the focus is
on timing constraints.
156
Some Extra Points
• Primary purposes of behavioral models
• to show how the underlying objects in the problem domain will collaborate to support each of
the use cases.
• Structural models
• represent the objects and the relationships between them,
• Behavioral models
• depict the internal view of the business process that a use case describes.
160
Steps during class modeling
• Steps during class modeling
• 1. Class identification
• Based on the fundamental assumption that we can find abstractions
• 2. Find the attributes
• 3. Find the methods
• 4. Find the associations between classes
161
Class Identification
1) Perform a grammatical parse of the problem statement or use cases
2) Classes are determined by underlining each noun or noun clause
3) A class should NOT have an imperative procedural name (i.e., a verb)
4) List the potential class names in a table and "classify" each class according to
some taxonomy and class selection characteristics
162
Class Identification
• General classifications for a potential class
• External entity (e.g., another system, a device, a person)
• Thing (e.g., report, screen display)
• Occurrence or event (e.g., movement, completion)
• Role (e.g., manager, engineer, salesperson)
• Organizational unit (e.g., division, group, team)
• Place (e.g., manufacturing floor, loading dock)
• Structure (e.g., sensor, vehicle, computer)
163
Class Identification
• Six class selection characteristics
1) Retained information
– Information must be remembered about the system over time
2) Needed services
– Set of operations that can change the attributes of a class
3) Multiple attributes
– Whereas, a single attribute may denote an atomic variable rather than a class
4) Common attributes
– A set of attributes apply to all instances of a class
5) Common operations
– A set of operations apply to all instances of a class
6) Essential requirements
– Entities that produce or consume information
164
Class Identification - Example
• Manipal University Jaipur wants to make a library management system for
its library.
• Library has 10000 books.
• For memberships of library, there are 2 types : - Faculty & Students.
• Librarian should issue books.
• There should be functionality to deposit books.
• There are four types of books.
• Magazine
• E-Books
• Journals
• Text Books. 165
Class Identification - Example
Potential classes General classification Selection Characteristics
MUJ External Entity
Library Management Structure
System
Library Organizational Unit
Book External Entity
Membership Role
Faculty External Entity
Student External Entity
Librarian Role
Magazine External Entity
E-Books External Entity
Journals External Entity
Text Books External Entity
166
Defining Attributes of a Class
• Attributes of a class are those nouns from the grammatical parse that reasonably
belong to a class
• Attributes hold the values that describe the current properties or state of a class
• An attribute may also appear initially as a potential class that is later rejected
because of the class selection criteria
• In identifying attributes, the following question should be answered
• What data items (composite and/or elementary) will fully define a specific class in the
context of the problem at hand?
• Usually an item is not an attribute if more than one of them is to be associated
with a class
167
Defining Operations of a Class
• Operations define the behavior of an object
• Four categories of operations
• Operations that manipulate data in some way to change the state of an object (e.g., add, delete,
modify)
• Operations that perform a computation
• Operations that inquire about the state of an object
• Operations that monitor an object for the occurrence of a controlling event
• An operation has knowledge about the state of a class and the nature of its
associations
• The action performed by an operation is based on the current values of the
attributes of a class
• Using a grammatical parse again, circle the verbs; then select the verbs that relate
to the problem domain classes that were previously identified .
168
Class Diagram
• Recall: A class is a collection of objects with common structure, common
behavior, common relationships and common semantics
• A class diagram
• expresses class definitions to be implemented
• lists name, attributes, and methods for each class
• shows relationships between classes
• describes the structure of a system.
• Most common diagram.
• The main building block in object oriented modeling.
169
Where do we use class diagrams
Class diagrams are used in:
• Analysis To build a conceptual domain model with semantic associations
between concepts
• Design Structural model of a design in terms of class interfaces
• Implementation Source code documentation, exposing the implementation
170
Class Diagram - Notation
• A class with three
sections. Produt
171
Class Name - Signature
• Name should start with capital letter.
• It should be noun.
172
Attributes - Signature
[visibility] name [[multiplicity]] [: type] [=initial value] [{property}]
• First word of the name should start with small letter followed by capital letter for
next words.
• visibility: the access rights to the attribute
- multiplicity: how many instances of the attribute are they:
- middleName [0..1] : String, phoneNumber [1..*]
• An operation can have zero or more parameters, each has the syntax:
• [direction] name : type [=default-value]
• Direction can be: in (input paremter - can’t be modified), out (output
parameter - may be modified), inout (both, may be modified)
• Property:
• {leaf} – concrete operation
• {abstract} – cannot be called directly
• {isQuery} – operation leaves the state of the operation unchanged
• …
• Omit return_type on constructors and when return type is void
Operations - Examples What’s the
difference?
+ isLightOn() : boolean
+ addColor(newColor : Color)
+ addColor(newColor : Color) : void
# convertToPoint(x : int, y : int) : Point
- changeItem([in] key : string, [out] newItem :
Item) : int
Class Diagram - Example
177
Scope & Visibility
• Instance Scope — each instance of the class holds its own value.
• Class Scope — one value is held for all instances of the class (underlined).
Instance scope
Frame
class scope
header : FrameHeader
uniqueID : Long
private
Account
Responsibilities
-- handles deposits
-- reports fraud to managers
179
Multiplicity
• It specifies the number of instances of one class that
may relate to a single instance of the associated class.
• UML diagrams explicitly list multiplicity at the end of
association lines.
• Intervals are used to express multiplicity:
• 1 (exactly one)
• 0..1 (zero or one)
• 1..* (one or more)
• 0..* (zero or more)
• 3..5 (three to five inclusive)
Different levels of detail
Tips for modeling
Express as much or as little detail as needed
Often, a rectangle with a name is enough
write <<interface>> on top of interfaces' names
use italics for an abstract class name
Perhaps a method or an attribute clarifies
Simple is good
Sketches on paper or white board are effective
10
UML
184 6-184
First up: Class Diagrams
A class diagram
expresses class definitions to be implemented
lists name, attributes, and methods for each class
shows relationships between classes
UML allows different levels of detail on both the attributes
and the methods of one class
could be just the the class name in a rectangle
or like the general form shown on the next slide
185 6-185
Software Specification (Class Name)
attribute
attribute : type
attribute : type = initial value
classAttribute
derivedAttribute
...
method1()
method2(parameter : Type) : return type
abstractMethod()
+publicMethod()
-privateMethod()
#protectedMethod()
classMethod()
...
186 6-186
AccountCollection
- allAccounts : HashMap
+AccountCollection ()
+getAccountWithID (ID: String) : Account
+add(accountToAdd: Account) : boolean
+iterator() : Iterator
187 6-187
Sterotypes
188 6-188
Different levels of detail
189 6-189
Relationships
190 6-190
1) Dependency: A Uses Relationship
Dependencies
occurs when one object depends on another
if you change one object's interface, you need to
change the dependent object
arrows point from dependent to needed objects
CardReader
Jukebox
CDCollection
SongSelector
191 6-191
2) Association: Structural Relationship
Association
a relationship between classes indicates some meaningful or
interesting connection
Associations can be labeled getAccountWithID for example
BTW: The box with association is an official UML comment, must have that fold
association
getAccountWithID
Jukebox JukeboxAccountCollection
1 1
192 6-192
Associations
Associations imply
our knowledge that a relationship must be preserved for some
time (0.01 ms to forever)
Between what objects do we need to remember a relationship?
• Does a Transaction need to remember Account?
• Would AccountCollection need to remember Accounts?
Stores
AccountCollection Account
1 0..*
193 6-193
Notation and Multiplicity Adornments
UML Association:
a line between two concepts and a name
they are bi-directional * T
zero or more;
"many"
can have a multiplicity
exist in class diagrams 1..*
T one or more
1..52
T one to fifty two
5
Multiplicity T exactly five
adornments
194 6-194
Association
Names • Read these Type-VerbPhrase-Type
• POST is a Point of Sale Terminal)
Store • Not shown here: Attributes and Methods
1
• This just shows associations between objects
C ontai ns
1. . *
A i rl i ne
1
Empl oys
1. . *
A ssi gned- to A ssi gned- to
Person Fl i ght Pl ane
1 * * 1
1 *
Supervi ses
195 6-195
Aggregation: A Special Association
*
Student
Model aggregation or composition? When in doubt, use association (just a
simple line) don't sweat the diff in 335
197 6-197
Sequence Diagrams
Interaction diagrams describe how groups of objects
collaborate in some behavior
The UML defines several forms of interaction
diagram, the most common is the sequence diagram
A class diagram shows a fixed view of a system
A sequence diagram represents a dynamic view of a
system by capturing message sends over time
Can document a scenario such as
Dealer deals cards to all players
Withdraw Money when there is enough balance
Withdraw Money when there is not enough balance
198 6-198
Sequence Diagrams
199 6-199
Syntax
Objects are lined up on top in rectangles
Object names :CardReader
Dashed lines represent lifetime of objects
Rectangles are activation lines
When the object is "alive"
Activation bar of the receivers of the message is
smaller than the sender's activation bar
Not much detail written
200 6-200
Example
Scenario: The user tries to use an ATM, but the account is not known
201 6-201
Scenario: The user
successfully withdraws
money from an ATM
202 6-202