Title: Introduction UML: ObjectOriented Analysis and Design
1Introduction UML Object-Oriented Analysis and
Design
- Harold Miles
- Eric Ruttenbur
2Agenda
- Object-Oriented Analysis Design
- Analysis vs. Design
- OOAD Concepts
- OOAD Tips
- What is UML?
- Purpose of UML
- UML Perspective
- UML Diagrams
- Criticisms
3Object-Oriented Analysis Design
- Considers a problem domain and logical solution
from the perspective of objects, i.e. - Things
- Concepts
- Entities
- Define the problem (not necessarily the solution)
- Analysis consists of written requirements and/or
use cases (UML)
4Object-Oriented Analysis Design (Cont.)
- Take conceptual model from analysis and add
constraints, the programming language, and
architectural assumptions as basis of design - UML is the standard language used in
object-oriented analysis and design
5Analysis vs. Design
- Division between analysis and design is fuzzy
- Not a rigid difference, more of a continuum
- Leads from investigation (analysis) to solution
(design)
Analysis
Design
6OOAD Concepts
7Requirements Analysis
- Preliminary study
- Describes the nature of the problem and which
principal alternatives are possible solutions - RAD Workshop
- Important business processes, use cases, and
components are contemplated - Business process analysis
- Analyze in the context of the new system
8Requirements Analysis (Cont.)
- Use case analysis
- What it should do and in what context
- Architecture and software development environment
- To force a more efficient software development
9Requirement Analysis Questions
- Objects
- Which objects are used in the application domain
(forms, contracts, folders, persons)? - Properties
- What are the properties of these objects, what
are their structures, how are they put together? - Communication
- How do employees communicate with each other?
10Requirements Analysis Questions (Cont.)
- Roles
- Which objects are used by whom?
- Work processes
- What kind of working instructions exist or can be
identified? Which concepts, principles, and
guidelines? - Organization, rights, responsibilities
- How are users organized? Who is responsible for
what?
11Requirements Analysis Questions (Cont.)
- Events
- When do different events occur? Who triggers
events? - Conditions
- Are the events and activities exceptions or are
they standard cases? - Where are future changes to be expected? Are
there bottlenecks?
12Requirements Analysis Tips
- Make complete list of requirements as possible,
as early as possible, rather than start off with
code - Requirements are NOT use cases use cases are not
requirements - There should be one test case to verify each
requirement
13OOAD Concepts
14Domain Analysis
- Identify the roles of the persons using the
system - Domain experts elicit designs and discuss
requirements - They may not be a future user, but ideally know a
lot about the proposed or existing systems
15Domain Analysis (Cont.)
- Domain experts should know
- How things are carried out
- Various use cases
- Knowledge of GUI components
- Expressed with a conceptual model
- Illustrates the different categories of things in
the domain, all things of interest
16Conceptual Model
17OOAD Concepts
18Responsibility of Assignments
- Define responsibilities of employees in order to
fulfill a process - Determine how people will collaborate or share
the work - Emphasizes allocating tasks and responsibilities
to various objects in the application - Utilizes class and collaboration diagrams
19Collaboration Diagram
20Object-Oriented Analysis and Design Tips
- Dont try to write use cases until you know what
the users will actually be doing - Dont spend weeks building elaborate, elegant use
case models that you cant design from - Dont waste time perfecting the robustness of
diagrams as the design evolves
21Object-Oriented Analysis and Design Tips (Cont.)
- Dont do state diagrams for objects with two
states - Dont model what you dont really need to model
- Dont do state diagrams just because you can
22What is UML?
- Industry standard language for specifying,
visualizing, constructing, and documenting the
artifacts of software systems. - Officially defined at the Object Management Group
(OMG) - Catalyst for the evolution of model-driven
technologies - Model Driven Development (MDD)
- Model Driven Engineering (MDE)
- Model Driven Architecture
23What is UML? (Cont.)
- Tells the story in context
- Official current version 2.0
- Free for download
24What UML IS NOT
- Software development process
- Meant be used within the development process
- Silver bullet
- Still requires actual code!
- But is a means of organizing information
25Purpose of UML
- Communication Comprehensive notation
- Requirements
- Architecture
- Implementation
- Deployment
- States of the System
26Particular Perspective
- Focused on Objects
- Actions that an object take
- Relationships between objects
- Deployment of objects
- State the objects take in response to external
events
27Design Playing With Models
- Object-Oriented Design using UML provides models
to test design features and seek efficient
possibilities. - Static Diagrams (User Interface)
- Component or class access to interfaces
- Flow of action or methods to be carried out
- Efficient to design compared to the actual coding
283 Core Models
These types of models may confuse them... maybe
stick with types of models in UML 2.0 (structural
and behavioral?)
- Analysis Model
- Usually a high level model of the current system
solving current requirements - Architecture Model
- Adapting model focused on the architecture, the
components, interfaces and structure across nodes - Provides the solution, trade-offs and business
assumptions for the structure
293 Core Model (Cont.)
- Component (Design) Models
- Many Models usually one per component
- Depicts the internal structure of each component
- Attributes
- Operations
- Dependencies
- Behaviors of its classes
30Advantage of Models
- Concept mastery
- Active Focus
- Early bug capture
- Improve Communication
- Easy to change early in the process
- Provide clearer deadlines and schedule objectives
- Cost effective compared to code change
31Types of Models
- Structural
- Class Diagram
- Component Diagram
- Deployment Diagram
- Package Diagram
- Object Diagram
32Types of Diagrams (Cont.)
- Behavioral
- Use Case Diagrams
- Interactions Diagrams
- Activity Diagrams
- State Chart Diagrams
33Unified Modeling Language Diagrams
Phase 1
Phase 2
Phase 3
Phase 4
Phase 5
Class Diagrams
Use Case Diagram
Activity Diagram
Component Diagrams
Sequence Diagrams
Type of Diagram
- Shows the detailed behavior inside a single
function or single case - Primary Scenarios
- Alternate Scenarios
- Diagram objects
- Initial State
- Action State
- Decision
- Final State
- Displays the external behavior of the system
- People
- Systems outside system
- What the system does in response
- Demonstrates actions by people and systems
outside the system
Initial architectural model of system Models
high-level software components and corresponding
interfaces Helps organize teams and sub-teams
development Often referred to as the wiring
diagram
- Time specific walk through of objects capturing
behaviors and flow of messages - Diagram Objects
- Message Information transfer between objects
- Activation When an object is performing an
action
- Depicts the classes and interfaces within design
of your system as well as relationships - Displays internal object oriented structure of
code - Diagram Objects
- Class
- Attributes
- Methods
- Associations
- Dependencies
Definition
Business Process Model of each single use case
Initial Architecture of high level software
components
Links classes together ERD but for classes
OUTCOMES/GOALS
Provides functional requirements
Object Lifeline Life of an object
Structural Diagram
Structural Diagram
Behavior Diagram
Behavior Diagram
Behavior Diagram
34Unified Modeling Language Diagrams
Statechart Diagrams
Phase 7
Phase 8
Phase 9
Deployment Diagrams
Package Diagrams
Type of Diagram
- Models hardware used in implementing a system
- Diagram Objects
- Component
- Node
- Association
- How object state changes in response to internal
and external events - Diagram Objects
- Initial and Final State
- State
- Transition
- Depicts groupings of related elements or packages
and dependencies between them. - Package is an grouping of model elements such as
use cases or classes
Definition
Hardware and applications required for deployment
- High-level
- Requirements
- Design
- Java source code
OUTCOMES/GOALS
Documents various modes States a class goes
through and trigger events
Behavioral Diagram
Structural Diagram
Structural Diagram
35UML Case Kennel Management System (KMS)
Sample UML
- Sandys Pet
- Long and short term boarding
- Cats, Dogs, Birds exotic pets
- Handles each pet time accordingly
- Reservations Occupancy
- Exercise and Grooming
- Nutrition and dietetics
- Inventory and ordering
- Etc.
36Use Case Diagram Care Giver Use Case
Uses
Use Case
Relationships - Extends
Actor
37Activity Diagram Create Pen Assignment
Initial State
Action State
Decision
Final State
38Component Diagram Kennel Management System
Component
Dependency
Interface
39Sequence Diagram Vet Record
Activation
Object Lifeline
Message
40Class Diagram Pen Assignment Classes
Class
Attributes
Methods
Association
Dependency
41Statechart Diagram Pet Check In
Initial State
State
Transition
Final State
42Deployment Diagram KMS System Architecture
Node
Means of Communication
43Package Diagram Kennel Management Packages
Package
Dependency
44Criticisms
- Large and complex
- Contains diagrams that are redundant or
infrequently used - Imprecise semantics
45Demos
- http//info.borland.com/media/shockwave/together/1
009_tvs_2.0_intro.html - http//resource.visual-paradigm.com/tips_and_trick
s/code_engineering/generate_java_using_instant_gen
erator.html
46Reference
- http//www.devshed.com/c/a/Practices/Introducing-U
MLObjectOriented-Analysis-and-Design/6/ - http//www.agilemodeling.com/style/useCaseDiagram.
htmActors - Open Source UML Tools Tutorials
- http//argouml.tigris.org/tours/bdStateDiagram.htm
l - http//www.dotnetcoders.com/web/learning/uml/diagr
ams/statechart.aspx - http//en.wikipedia.org/wiki/Unified_Modeling_Lang
uage - http//en.wikipedia.org/wiki/Object_oriented
- Rosenberg, Doug and Scott, Kendall. Use Case
Driven Object Modeling with UML A Practical
Approach. Addison Wesley Longman, Inc., 1999. - Larmain, Craig. Applying UML and Patterns An
Introduction to Object-Oriented Analysis and
Design. Prentice Hall, 1998.