"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
04 ooad uml-04
1. Object-Oriented Analysis and Design Using UML
Objectives
In this session, you will learn to:
Analyze a problem by using business and system modeling
Create use case diagrams for system modeling
Ver. 1.0 Slide 1 of 29
2. Object-Oriented Analysis and Design Using UML
Defining the System
Defining a new software system consists of the following
phases:
Analyzing a problem
Identifying stakeholders
Identifying, gathering, organizing, and documenting
requirements
Ver. 1.0 Slide 2 of 29
3. Object-Oriented Analysis and Design Using UML
Analyzing a Problem
Analyzing a problem involves preparing a concise problem
statement that:
Defines the workflow of the existing processes of the
organization.
Defines the constraints that exist for the proposed solution.
Defines the goals that need to be achieved by the new
software system.
To analyze a problem, two types of modeling techniques
are used:
Business modeling
System modeling
Ver. 1.0 Slide 3 of 29
4. Object-Oriented Analysis and Design Using UML
Business Modeling
Business modeling describes the working of the existing
process of an organization and the role that each person
plays in the process.
Business modeling provides two models for analyzing the
existing system:
– Business use case model: Represents the functionality of the
existing process using business actors and use cases.
– Business object model: Represents detailed interaction
between business workers and business entities. A business
object model uses the following diagrams for a representation
of the workflow of the existing processes:
Class diagram
Activity diagram
Interaction diagram
Ver. 1.0 Slide 4 of 29
5. Object-Oriented Analysis and Design Using UML
Business Modeling (Contd.)
Consider the following case study of Analyzing a Hospital
Administration System and identify business use cases,
business workers, and business actors to analyze the
existing process of the hospital administration system.
Microsoft Word
Document
Ver. 1.0 Slide 5 of 29
6. Object-Oriented Analysis and Design Using UML
System Modeling
System modeling shows the flow of information between the
proposed software system and its environment at different
levels of hierarchy.
The business modeling constructs that you can derive and
use for system modeling are:
Business use cases
Business actors
Behaviors of business workers
Business entities
Ver. 1.0 Slide 6 of 29
7. Object-Oriented Analysis and Design Using UML
System Modeling (Contd.)
Use the business use cases identified for the hospital
administration system case study to derive the system use
cases for the hospital administration system.
Ver. 1.0 Slide 7 of 29
8. Object-Oriented Analysis and Design Using UML
Just a minute
Which of the following diagrams of Business Object Model
shows the static or internal structure of the business in the
form of relationships among various classes for the existing
system?
1. Class diagrams
2. Use-case diagrams
3. Activity diagram
4. Interaction diagram
• Answer:
Class diagram
Ver. 1.0 Slide 8 of 29
9. Object-Oriented Analysis and Design Using UML
Identifying Stakeholders
Identifying the needs of stakeholders enables a software
team to make better decisions in the definition and
implementation phases of the development process.
Guidelines that you should follow when you interview the
stakeholders are:
Ask direct questions.
Probe stakeholders to define the conflicting requirements in
detail.
Document the input gathered from interviews in a universally
accepted language, such as English.
The input provided by stakeholders during the interview is
documented as the required features of the software
system.
Ver. 1.0 Slide 9 of 29
10. Object-Oriented Analysis and Design Using UML
Identifying Stakeholders (Contd.)
The attributes of the features that you should document are:
Status
Rank
Effort
Uncertainty
Stability
Target release
Assigned to
Source
Ver. 1.0 Slide 10 of 29
11. Object-Oriented Analysis and Design Using UML
Identifying and Managing Requirements
Requirement management is a systematic approach for
managing the requirements of a project.
The various phases of requirement management are:
Requirements gathering
Requirements analysis and negotiation
Requirements specification
Requirements validation
Ver. 1.0 Slide 11 of 29
12. Object-Oriented Analysis and Design Using UML
Requirements Gathering
The various activities involved in gathering requirements
are:
Assessing the economic, technical, and operational feasibility
for the proposed software system
Identifying the stakeholders and end users who specify
requirements and jargons appearing in the existing process
Identifying the domain constraints in the proposed software
system
Identifying methods for requirement elicitation
Identifying ambiguous requirements
Identifying the trivial requirement
Ver. 1.0 Slide 12 of 29
13. Object-Oriented Analysis and Design Using UML
Requirement Analysis and Negotiation
Requirement analysis is the process of categorizing and
organizing requirements into functional and non-functional
requirements.
Functional requirements are derived from the need of the
stakeholders and include the functions and features of the
software system.
Non-functional requirements address the implied features of
the software system.
Non-functional requirements do not directly indicate the
functions of a software system.
Ver. 1.0 Slide 13 of 29
14. Object-Oriented Analysis and Design Using UML
Requirements Specification
Requirement specification is an activity that involves
documenting the requirements analyzed in the analysis
phase.
The Software Requirements Specification (SRS) is a
document produced at the culmination of the analysis task.
The information that an SRS must provide is:
Definition of the software system
Purpose of the SRS document
Scope of the software system
Functional requirements
Non-functional requirements
Conditions under which the proposed software system
operates
Ver. 1.0 Slide 14 of 29
15. Object-Oriented Analysis and Design Using UML
Requirement Validation
Requirement validation is an activity that involves validating
all the requirements after they are specified.
Validating the requirements involves:
Identifying all the ambiguous requirements
Identifying the source of each requirement
Stating the requirements quantitatively
Identifying the dependence among requirements
Verifying if the requirements are concise, testable, and
traceable
Verifying that no requirement is conflicting with the constraints
imposed on the software system
Ver. 1.0 Slide 15 of 29
16. Object-Oriented Analysis and Design Using UML
Requirement Gathering Techniques
To gather requirements effectively, you need to follow a
predefined approach. For example, you need to perform the
following activities to gather requirements:
Interview stakeholders.
Conduct brainstorming sessions among stakeholders.
Prepare questionnaires.
Observe the existing processes of the organization.
Appoint a domain expert.
Ver. 1.0 Slide 16 of 29
17. Object-Oriented Analysis and Design Using UML
Identifying Storyboarding Techniques
Storyboarding is a technique that involves the task to design
the user interface on paper before you develop the software
system.
The user interface storyboards match the definitions of the
use case paths described in the basic course of events and
provide the graphic presentations of various processes.
Storyboarding enables you to obtain customer feedback on
how the system should work at a very early stage.
The objective of storyboarding is to:
Understand data visualization.
Define and understand business rules.
Model algorithms and other mathematical constructs.
Demonstrate reports.
Ver. 1.0 Slide 17 of 29
18. Object-Oriented Analysis and Design Using UML
Identifying Storyboarding Techniques (Contd.)
Types of storyboards:
Passive
Active
Interactive
Ver. 1.0 Slide 18 of 29
19. Object-Oriented Analysis and Design Using UML
Creating Use Case Diagrams for System Modeling
A use case diagram for system modeling describes:
The interaction between use cases and actors of the proposed
software system.
The relationships, such as associations and generalizations,
existing between use cases and the actor.
The use cases are text descriptions of the interaction
between outside entities and the software system.
The use cases for the proposed software system should
contain the following characteristics:
Provide value to actors
Provide a brief description of the desired functionality
Ver. 1.0 Slide 19 of 29
20. Object-Oriented Analysis and Design Using UML
Creating Use Case Diagrams for System Modeling (Contd.)
The information that a use case should contain is:
Name
Summary
Basic course of events
Alternative paths
Exception paths
Triggers
Assumptions
Preconditions
Post conditions
Business rules
Non-functional requirements
Authors
Date
Ver. 1.0 Slide 20 of 29
21. Object-Oriented Analysis and Design Using UML
Creating Use Case Diagrams for System Modeling (Contd.)
System actors are external entities that interact with the
software system and affect the system functionality.
System actors can be classified as:
– Primary actors: Directly interact with the system and initiate
the use case.
– Secondary actors: Do not directly interact with the system but
can initiate interaction of a primary actor with the system.
Ver. 1.0 Slide 21 of 29
22. Object-Oriented Analysis and Design Using UML
Creating Use Case Diagrams for System Modeling (Contd.)
The relationship among actors represents their interaction
with other actors and use cases.
The various types of relationships that exist among actors
are:
– Generalization relationship: Exists among actors that have
similar behavior and similar properties.
– Association relationship: Shows the communication path
between the use case and the actor.
• Association is represented using an arrow or a simple line.
• The arrow show the direction of communication and the line
indicates that the communication is occurring in both the
directions.
Ver. 1.0 Slide 22 of 29
23. Object-Oriented Analysis and Design Using UML
Demo: Identifying Requirements and Creating a Use Case Diagram for InfoSuper Bank
Problem Statement:
The InfoSuper bank is a leading financial institution having its
clientele across the globe. The bank offers following services to
the customers:
Corporate banking
Personal banking
Mutual funds
Financer
Home loans
The InfoSuper bank earns 45% of its total revenue from the
personal banking service. As a result, they want to improve
their customer satisfaction level and put efforts for retaining
and gaining customer loyalty. The bank conducts a survey to
find the customer requirements in terms of process time,
satisfaction level, and resource requirement for personal
banking.
Ver. 1.0 Slide 23 of 29
24. Object-Oriented Analysis and Design Using UML
Demo: Identifying Requirements and Creating a Use Case Diagram for InfoSuper Bank (Contd.)
The result of the survey highlights that on an average a
customer visits the bank 10 to 15 times per month for
transactions, such as cash withdrawal, check deposit, and
acquiring transaction summary.
The bank needs to have a software system, which can reduce
customer visits and improve customer service through
improved facilities. The representatives of the InfoSuper bank
presented the requirements for the software system to Janes
Technologies After analyzing the requirement document, the
project manager, Jennifer, of Janes Technologies suggested
that the bank should incorporate an Automatic Teller Machine
(ATM) system with the following features:
– Cash withdrawal
– Cash deposit
– Transaction summary
– Changing the PIN
Ver. 1.0 Slide 24 of 29
25. Object-Oriented Analysis and Design Using UML
Demo: Identifying Requirements and Creating a Use Case Diagram for InfoSuper Bank (Contd.)
Fund transfer within the same bank
Information about various other services provided by the bank
– The place where the ATM system will be deployed should also
provide boxes where customers can drop the checks and
request for checkbooks.
– Jennifer needs to design the ATM system highlighting the
system advantages and constituents.
Ver. 1.0 Slide 25 of 29
26. Object-Oriented Analysis and Design Using UML
Demo: Identifying Requirements and Creating a Use Case Diagram for InfoSuper Bank (Contd.)
Solution:
To design the ATM system, you need to perform the following
tasks:
Identify requirements.
Create SRS.
Identify use cases.
Identify actors.
Depict the relationship between use cases and actors.
Save the model.
Ver. 1.0 Slide 26 of 29
27. Object-Oriented Analysis and Design Using UML
Summary
In this session, you learned that:
Business modeling and system modeling enable you to
construct the behavioral as well as functional models of a
system. As a result, they enable you to identify the problems of
the existing system and the requirements of the proposed
system.
It is essential to identify the stakeholders and their needs to
develop a system.
Requirement management is an activity that enables you to
systematically manage requirements that evolve during the
development of a system.
Requirement management consists of various activities, such
as requirement gathering, requirement analysis and
negotiation, requirement specification, and requirement
validation.
Ver. 1.0 Slide 27 of 29
28. Object-Oriented Analysis and Design Using UML
Summary (Contd.)
An SRS is a formal document that contains all the final
requirements gathered through various processes, such as
stakeholder interviews.
The requirements validation phase enables you to identify and
remove ambiguous requirements.
Requirements can be classified as functional and non-
functional. The customer explicitly states the functional
requirements as opposed to the non-functional requirements,
which are the extensions of functional requirements.
Use cases are used to model both, functional as well as non-
functional requirements.
The use case diagram shows the interaction between actors
and use cases.
Actors represent any external entity that has an effect on the
output of the system.
Ver. 1.0 Slide 28 of 29
29. Object-Oriented Analysis and Design Using UML
Summary (Contd.)
There are two types of relationships in which an actor
participates, generalization and association.
Ver. 1.0 Slide 29 of 29
Editor's Notes
Initiate the session by explaining the session objectives to the students.
Tell the students that when they undertake the development of a software project, all the requirements of the project should be available to them for preliminary planning. Lack of clarity in understanding the requirements of the existing process leads to rework in the designing of the new software system. Next, explain the phases in the definition of a new software system.
Explain the constituents of the problem statement that is created after analyzing a problem. Explain the two types of modeling techniques used for analyzing a problem.
When you discuss business modeling concepts, you need to emphasize on the factors that distinguish a business actor from a business worker. A business actor initiates or triggers an event in the business scenario. A business worker is involved in the event or the process. The explanation for the hospital administration system also emphasizes on these two statements and derives the business actors and workers. Explain that communication, sequence, interaction overview, and timing diagrams are together called interaction diagrams. Explain business modeling by using the scenario of the hospital administration system given in the student guide. Explain the business use cases, business workers, and business actors for the hospital administration system.
When you discuss business modeling concepts, you need to emphasize on the factors that distinguish a business actor from a business worker. A business actor initiates or triggers an event in the business scenario. A business worker is involved in the event or the process. The explanation for the hospital administration system also emphasizes on these two statements and derives the business actors and workers. Explain that communication, sequence, interaction overview, and timing diagrams are together called interaction diagrams. Explain business modeling by using the scenario of the hospital administration system given in the student guide. Explain the business use cases, business workers, and business actors for the hospital administration system.
When you explain the business and system modeling concepts, it is likely that the students may get confused on when to draw a business model, system model, and the role of UML diagrams in the entire scenario. You create a business model to analyze the workflow of processes or the workflow of the existing software system of an organization. The notations that UML provides for business modeling are different from the notations for creating the diagrams for the proposed or the new software system. The UML diagrams that you create for the proposed system are a part of the system modeling process. Explain system modeling by using the scenario of the hospital administration system given in the student guide. When explaining System Context Diagram (SCD) tell the students that an organization that uses UML for the proposed software system may not create SCD and only create a use case diagram. SCD is a standard technique used in system modeling. It is still used in the industry as a crucial tool to depict the proposed software system. Notice that after UML was accepted as a standard modeling language, there was a shift from SCD to use case diagrams.
When you explain the business and system modeling concepts, it is likely that the students may get confused on when to draw a business model, system model, and the role of UML diagrams in the entire scenario. You create a business model to analyze the workflow of processes or the workflow of the existing software system of an organization. The notations that UML provides for business modeling are different from the notations for creating the diagrams for the proposed or the new software system. The UML diagrams that you create for the proposed system are a part of the system modeling process. Explain system modeling by using the scenario of the hospital administration system given in the student guide. When explaining System Context Diagram (SCD) tell the students that an organization that uses UML for the proposed software system may not create SCD and only create a use case diagram. SCD is a standard technique used in system modeling. It is still used in the industry as a crucial tool to depict the proposed software system. Notice that after UML was accepted as a standard modeling language, there was a shift from SCD to use case diagrams.
Check the learning of the students by asking the following question.
Tell the students that the success of a project depends upon the satisfaction of the stakeholders. Therefore, it is necessary to identify the stakeholders before you develop a product.
Explain the attributes of the features that need to documented by referring to the content given in the student guide.
Explain that requirements define the features that the software system should deliver. Non-conformance to these features may lead to the failure of the software system. Therefore, you need to establish a process to identify, document, organize, and track these requirements.
Explain the factors that make it difficult to gather requirements. Also explain the output of the requirements gathering phase.
Explain the process of requirements analysis and negotiation. Also explain the difference between functional and non-functional requirements.
When you discuss the Requirements Specification topic, you need to emphasize on the fact that a complete Software Requirements Specification (SRS) document forms the foundation of a good solution and design for the specified requirement. You may take up this topic briefly because the demo, Identifying Requirements and Creating Use Case Diagram for the InfoSuper Bank, provides the requirements in the standard IEEE format.
Explain the definition of the term requirement validation. In addition, explain the points in the checklist for requirement validation.
Explain the various techniques for gathering requirements by referring to the content given in the student guide.
Introduce the topic by telling the students that the customer may not state the requirements clearly. Therefore, you are required to interpret the requirements, create an outline of the proposed software system, and present the outline to the customer for approval. The outline may be created in the form of storyboards. Also explain the concept of storyboarding by using the analogy of an advertisement project given in the student guide.
List the various types of storyboards and explain the features of each.
Tell the students that for every use case, you need to create a Use Case Specification. The Use Case Specification must specify the name, summary, basic course of events, alternative paths, exception paths, triggers, assumptions, preconditions, post conditions, business rules, authors, and date of creation of the use case. Use the example of Give Appointment use case given in the student guide to explain the components of a use case specification.
Tell the students that for creating the system model they need to identify the system actors. Explain what system actors are by using the information given on the slide. Also explain the two types of system actors by using examples given in the student guide. Ask the students to identify the system actors for the hospital administration system. Tell the students that in case of the hospital administration system, the system actors will be identical to the business actors. However, this might not be the case in all the business scenarios.
Explain the generalization and association relationships by using the examples given in the student guide.
Demonstrate the solution of the problem statement given on the slide by performing the steps given in the student guide. The data file for this activity is provided in the TIRM CD. The path for the data file is: <<<<<PATH>>>>>
Summarize the session by using the summary points given in the slide.
Summarize the session by using the summary points given in the slide.
Summarize the session by using the summary points given in the slide.