Title: Object Oriented Analysis and Design
1Object Oriented Analysis and Design
2Analysis I
3The Unified Process
4The Unified Process
- Why a Process?
- Software projects are large, complex,
sophisticated - time to market is key
- many facets involved in getting to the end
- Common process should
- integrate the many facets
- provide guidance to the order of activities
- specify what artifacts need to be developed
- offer criteria for monitoring and measuring a
project
5The Unified Process
- Component based - meaning the software system is
built as a set of software components
interconnected via interfaces - Uses the Unified Modeling Language (UML)
- Use case driven
- Architecture-centric
- Iterative and incremental
This is what makes the Unified process Unique
Component A physical and replaceable part of a
system that conforms to and provides realization
of a set of interfaces. Interface A collection
of operations that are used to specify a service
of a class or a component
6The Unified Process
Users requirements
Software Development Process
Software System
7The Unified Process
- Use Case driven
- A use case is a piece of functionality in the
system that gives a user a result of value - Use cases capture functional requirements
- Use case answers the question What is the system
supposed to do for the user?
8The Unified Process
- Architecture centric
- similar to architecture for building a house
- Embodies the most significant static and dynamic
aspects of the system - Influenced by platform, OS, DBMS etc.
- Primarily serves the realization of use cases
9The Unified Process
- Iterative and Incremental
- commercial projects continue many months and
years - to be most effective - break the project into
iterations - Every iteration - identify use cases,create a
design, implement the design - Every iteration is a complete development process
10The Unified Process
- Look at the whole process
- Life cycle
- Artifacts
- Workflows
- Phases
- Iterations
11The Life of the Unified Process
- Unified process repeats over a series of cycles
- Each cycle concludes with a product release
- Each cycle consists of four phases (page 8 T2)
- inception
- elaboration
- construction
- transition
12The Life of the Unified Process
Time
Elaboration
Inception
Construction
Transition
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
1
1
1
1
Release 1
A cycle with its phases and its iterations
13Intentionally left blank
14Analysis I
15Introduction to object-oriented analysis and
design(all slides from UML, ch. 1, 3,4)
16Objectives
- Compare and Contrast analysis and design
- Defined object-oriented analysis and design
- Relate by analogy object-oriented analysis and
design to organizing a business
17What is Analysis and Design?
- Analysis - investigation of the problem (what)
- Design - logical solution to fulfill the
requirements (how)
18What is OO analysis and design?
- Essence of OO analysis - consider a problem
domain from the perspective of objects (real
world things, concepts) - Essence of OO design - define the solution as a
collection of software objects (allocating
responsibilities to objects)
19Examples
- OO Analysis - in the case of the library
information systems, one would find concepts like
book, library, patron - OO Design - emphasis on defining the software
objects ultimately these objects implemented in
some programming language Book may have a method
print
20Example - contd.
Representation in analysis of concepts
Domain concept
Book ______ title print()
Public class Book public void print() private
string title
Representation in oo programming language
21What are the business processes?
- First step - consider what the business must do
in the case of a library - lending books, keeping
track of due dates, buying new books - in oo terms - requirements analysis represent
the business processes in textual narration (Use
Cases)
22Business processes - contd.
- Identifying and recording the business processes
as use cases is not actually an object oriented
activity however it is a widely accepted first
step (a necessary first step)
23Roles in the organization
- Identify the roles of people who will be involved
in the business processes - in oo terms - domain analysis
- examples - customer, library assistant,
24Who does what? Collaboration
- Business processes and people identified time to
determine how to fulfill the processes and who
does these processes - in oo terms - object oriented design assigning
responsibilities to the various software objects - often expressed in class diagrams
25In Summary...
26Simple example to see big picture
- Define use cases
- Define conceptual model
- Define collaboration diagrams
- Define design class diagrams
Example Dice game a player rolls two die.
If the total is 7 they win otherwise they lose
27Define use cases
- Use cases - narrative descriptions of domain
processes in a structured prose format
Use case Play a game Actors
Player Description This use case begins when
the player picks up and rolls the die.
28Define conceptual model
- OO Analysis concerns
- specification of the problem domain
- identification of concepts (objects)
- Decomposition of the problem domain includes
- identification of objects, attributes,
associations - results can be expressed in conceptual model
29Conceptual model - dice game
Player _____ name
Die ____ facevalue
1
2
Rolls
2
1
DiceGame
Includes
Plays
1
1
Conceptual model is not a description of the
software components it represents concepts in
the real world problem domain
30Defining collaboration diagram
- OO Design is concerned
- defining logical software specification that
fulfills the requirements - Essential step - allocating responsibility to
objects and illustrating how they interact with
other objects - Expressed as Collaboration diagrams
Collaboration diagrams show the flow of messages
between objects
31Example - collaboration diagram
32Defining class diagrams
- Key questions to ask
- How do objects connect to other objects?
- What are the behaviors (methods) of these
objects? - Collaboration diagrams suggests connections to
support these connections methods are needed - Expressed as class diagrams
33Example - Class diagram
A line with an arrow at the end may suggest an
attribute. For example, DiceGame has an attribute
that points to an instance of a Player
34Intentionally left blank
35Defining Models and Artifacts
- Objectives
- analysis and design models
- familiarize UML notations and diagrams
- real world software systems are inherently
complex - Models provide a mechanism for decomposition and
expressing specifications
36Analysis and Design models
- Analysis model - models related to an
investigation of the domain and problem space
(Use case model qualifies as an example) - Design model - models related to the solution
(class diagrams qualifies as an example)
37Introduction to UML
- UML is NOT a methodology
- UML is NOT a process
- UML is NOT proprietary (Now under the OMG)
- UML is strictly Notations
38 Introduction to UML
- Goals of UML notation
- Simple requires only a few concepts and
symbols - Expressive applicable to a wide spectrum of
systems and life cycle methods - Useful focuses only upon those necessary
elements to software engineering - Consistent the same concept and symbol should
be applied in the same fashion throughout
39Introduction to UML
- Goals of UML notation
- Printable
- Extensible users and tool builders should have
some freedom to extend the notation - UML has different parts
- Views - shows different aspects of the system
that are modeled, links the modeling language to
the method/process chosen for development - Diagrams - graphs that describe the contents in a
view - Model elements - concepts used in a diagram
40Introduction to UML
Component View
Logical View
Use Case View
Deployment View
Concurrency View
41Introduction to UML
- Use-case view A view showing the functionality
of the system as perceived by the external actors - Logical view A view showing how the
functionality is designed inside the system, in
terms of the static structure and dynamic
behavior - Component view A view showing the organization
of the code components
42Introduction to UML
- Concurrency view A view showing the concurrency
of the system - Deployment view A view showing the deployment of
the system in terms of the physical architecture
43Introduction to UML
- Major UML Diagrams
- Use case view
- Use Case Diagram
- Logical View
- Class Diagram (static)
- Object Diagram (static)
- State Diagram
- Sequence Diagram
- Collaboration Diagram
- Activity Diagram
44Introduction to UML
- Major UML diagrams
- Component view
- Component diagram
- Deployment view
- Deployment diagram
45Introduction to UML
- Model elements
- Class
- Object
- State
- Use case
- Interface
- Association
- Link
- Package .
46Introduction to UML
- Use Case diagram External interaction with
actors - Class/Object Diagram captures static structural
aspects, objects and relationships - State Diagram Dynamic state behavior
- Sequence diagram models object interaction over
time - Collaboration diagram models component
interaction and structural dependencies
47Introduction to UML
- Activity diagram models object activities
- Deployment diagram models physical architecture
- Component diagram models software architecture
48Case study - Point of Sale
- POS terminal should support the following
- record sales
- handle payments
- many architectural layers
- presentation
- application logic (problem domain, service
support) - persistence
- Emphasis - problem domain application objects
49Case study - Strategy
- Iterative, more than one development cycle
- Use Object oriented analysis and design
- No emphasis on implementation
50Understanding requirements
- Objectives
- create requirements phase artifacts, namely
function specifications - identify and categorize system functions
51Understanding requirements
- Requirements are a description of needs or
desires for a product - Recommended artifacts
- overview statement
- customers (stakeholders)
- goals
- system functions
52Understanding requirements
Overview Statement The purpose of this project
is to create a point of sale terminal system to
be used in retail sales
Customers ObjectStore, Inc, a multinational
retailer
- Goals
- Quick checkout for customers
- fast and accurate sales analysis
- automatic inventory control
53Understanding requirements
- System functions are what a system is supposed to
do - examples authorize credit payments
- To verify that some X is indeed a system
function, it should make sense in the following
sentence - the system should do ltXgt
54Understanding requirements
- How to categorize system functions?
55Understanding requirements
56Intentionally left blank
57Analysis
- Objectives
- Identification of Use cases
- Draw use case diagrams
- Ranking Use cases
- Contrast essential and real use cases
58OO Analysis
SRS - chapter 11
59More Object Oriented Analysis
- Two ways of looking at software product
- just the data perspective
- just the actions performed on the data
- The above method is Structured systems analysis -
inherently not realistic! - Object oriented analysis - look at data and
actions at the same time
60OO Analysis - Contd.
- Formal specification technique
- Consists of three steps
- Use case modeling (action oriented)
- Class modeling (data oriented)
- Dynamic modeling (action oriented)
61Use case modeling
- Describes the functionality of the product to be
considered - represented in a use case diagram
62Use cases - Introduction
- Excellent technique for improving the
understanding of requirements - narrative in nature
- Use cases are dependent on having some
understanding of the requirements (expressed in
functional specifications document)
63Use Cases - Example
- Use case - narration of the sequence of events of
an actor using a system - UML icon for use case
64Use Cases - Introduction
- Actor - an entity external to the system who in
some way participate in the use case - An actor typically stimulates the system with
input events or receives outputs from the system - UML notation
65Identification of Use Cases
- Method 1 - Actor based
- Identify the actors related to the system
- Identify the processes these actors initiate or
participate in - Method II - Event based
- Identify the external events that a system must
respond to - Relate the events to actors and use cases
66Point of Sale - Actors
- Actors
- Cashier
- Customer
- Supervisor
67Point of Sale - Use Cases
- Cashier
- Log In
- Cash out
- Customer
- Buy items
- Return items
68Common mistake
- Common error - representing individual steps as
use cases - Example printing a receipt (Why?)
69Use Case Diagram - Example
Use Case Diagram illustrates a set of use cases
for a system
70More on Use Cases
- Try to describe use cases independent of
implementation - Be as narrative as possible
- State success scenarios (how do you measure the
success of an use case) - A use case can have many scenarios (threads of
execution) - Agree on a format style for use case
description - Name a use case starting with a verb in order to
emphasize that it is a process (Buy Items, Enter
an order, Reduce inventory)
71More on Use Cases
- Document exception handling or branching
- when an Buy Item fails, what is expected of the
system - when a credit card approval fails, what is
expected of the system
72A sample of a Use Case
Use case Buy Items Actors Customer,
Cashier Type Primary, Essential Description A
customer arrives at a checkout with items to
purchase. The cashier records the purchase
items and collects payment.
73Ranking Use Cases
74Ranking Use Cases
- Overarching strategy
- pick the use cases that significantly influence
the core architecture - pick the use cases that are critical to the
success of the business - a useful rule of thumb - pick the use cases that
are the highest risk!!!
75Ranking Use Cases
- Use some ordering that is customary to your
environment - Example High, Medium, Low
- Example Must have, Essential, Nice to have
- Point of sale Examples
- Buy Items - High
- Refund Items - Medium (Why?)
- Shut Down POS terminal - Low
76Questions?