0% found this document useful (0 votes)
95 views44 pages

Mastering Object-Oriented Analysis and Design With UML

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
95 views44 pages

Mastering Object-Oriented Analysis and Design With UML

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 44

Mastering Object-Oriented Analysis

and Design with UML


Module 1: Best Practices of Software
Engineering
Objectives
 Identify activities for understanding and
solving software engineering problems.
 Explain the Six Best Practices.
 Present the Rational Unified Process (RUP)
within the context of the Six Best Practices.

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 2
Module 1 Content Outline
 Software development problems
 The Six Best Practices
 RUP within the context of the Six Best
Practices

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 3
Symptoms of Software Development Problems
 User or business needs not met
 Requirements not addressed
 Modules not integrating
 Difficulties with maintenance
 Late discovery of flaws
 Poor quality of end-user experience
 Poor performance under load
 No coordinated team effort
 Build-and-release issues

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 4
Trace Symptoms to Root Causes

Symptoms Root Causes Best Practices


Needs not met Insufficient requirements Develop Iteratively
Requirements churn Ambiguous communications
Modules do notfitfit
don’t Brittle architectures Manage Requirements
Hard to maintain Overwhelming complexity
Undetected inconsistencies Use Component Architectures
Late discovery
Poor quality Poor testing
Model Visually
Model Visually (UML)
(UML)
Poor performance Subjective assessment
Colliding developers Waterfall development
Continuously Verify
Continuously Verify Quality
Quality
Build-and-release Uncontrolled change
Insufficient automation Manage Change

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 5
Module 1 Content Outline
 Software development problems
 The Six Best Practices
 RUP within the context of the Six Best
Practices

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 6
Practice 1: Develop Iteratively

Best Practices
Process Made Practical

Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 7
Waterfall Development Characteristics
 Delays confirmation of
critical risk resolution
Waterfall Process  Measures progress by
assessing work
Requirements products that are poor
analysis
predictors of time-to-
Design
completion
Code and unit test
 Delays and aggregates
Subsystem integration integration and testing
System test  Precludes early
deployment
 Frequently results in
major unplanned
iterations
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 8
Iterative Development Produces an Executable
Requirements
Analysis & Design
Planning
Implementation
Initial
Planning Management
Environment
Test

Evaluation

Each iteration Deployment


results in an
executable release

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 9
Risk Profiles

Waterfall Risk
Risk

Risk Reduction

Iterative Risk

Time

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 10
Practice 2: Manage Requirements

Best Practices
Process Made Practical

Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 11
Requirements Management

Making sure you


 solve the right problem
 build the right system
by taking a systematic approach to
 eliciting
 organizing
 documenting
 managing
the changing requirements of a
software application.

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 12
Aspects of Requirements Management
 Analyze the Problem
 Understand User Needs
 Define the System
 Manage Scope
 Refine the System Definition
 Manage Changing Requirements

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 13
Map of the Territory

Problem Problem
Space
Needs

Solution

Tr
Space

a
Features

ce
a bil
The

ity
Product
Software to Be
Requirements Built

Test Scripts Design User


Docs

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 14
Practice 3: Use Component Architectures

Best Practices
Process Made Practical

Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 15
Resilient Component-Based Architectures
 Resilient
 Meets current and future requirements
 Improves extensibility
 Enables reuse
 Encapsulates system dependencies
 Component-based
 Reuse or customize components
 Select from commercially available components
 Evolve existing software incrementally

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 16
Purpose of a Component-Based Architecture
 Basis for reuse
 Component reuse
 Architecture reuse Component-based
 Basis for project management architecture with
layers
 Planning
 Staffing Application-
specific
 Delivery Business-
specific
 Intellectual control
Middleware
 Manage complexity
 Maintain integrity System-
software

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 17
Practice 4: Model Visually (UML)

Best Practices
Process Made Practical

Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 18
Why Model Visually?
 Captures structure and behavior
 Shows how system elements fit together
 Keeps design and implementation
consistent
 Hides or exposes details as appropriate
 Promotes unambiguous communication
 The UML provides one language for all
practitioners

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 19
Visual Modeling With the Unified Modeling Language
 Multiple views
 Precise syntax and semantics Static
Diagrams
Class
Use-Case Diagrams
Sequence Diagrams Object
Diagrams Diagrams

Collaboration Component
Models
Diagrams Diagrams

Dynamic Statechart Deployment


Diagrams Diagrams Diagrams
Activity
Diagrams

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 20
Visual Modeling Using UML Diagrams
Use-Case
Diagram Statechart
Class Diagram Diagram add file

DocumentList

Use Case 1 FileMgr Document

add( )
name : int
Actor A Actor B fetchDoc( ) delete( )
docid : int
sortByName( ) numField : int Writing
add file [ numberOffile==MAX ] /
flag OFF
get( )
open( ) read() fill the
Use Case 2 close( ) code..
Openning
FileList read( )
sortFileList( )
fList create( )
fillDocument( ) close file
add( )
delete( )
1

Use Case 3 Reading


close file
Closing

rep

File
Repository

(from Persistence)

name : char * = 0

readDoc( )
readFile( )
read( )
GrpFile

read( )
open( )
create( )
Deployment
Diagram
fillFile( )

Collaboration 9: sortByName ( )
Repository DocumentList

Diagram 1: Doc view request ( )


mainWnd : MainWnd
L

2: fetchDoc( )
FileManager
Window95

¹®¼­°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
Windows95

Windows95

4: create ( ) gFile : GrpFile Document ¹®¼­°ü¸® ¾ÖÇø´

8: fillFile ( ) Windows
NT

user : Clerk Solaris

fileMgr : FileMgr ¹®¼­°ü¸® ¿£Áø.EXE

3: create ( ) GraphicFile Alpha


UNIX
ÀÀ¿ë¼­¹ ö.EXE
6: fillDocument ( )
File FileList
Windows
NT

IBM

7: readFile ( ) Mainframe

5: readDoc ( )
document : Document
repository : Repository µ¥ÀÌŸº£À̽º¼­¹ ö

user
mainWnd fileMgr :
FileMgr
document :
Document
gFile repository
Component
Diagram
Target
ƯÁ¤¹®¼ ­¿¡ ´ëÇÑ º¸±â¸¦ 1: Doc view request ( )
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

2: fetchDoc( )

3: create ( )

4: create ( )

System
5: readDoc ( )

È­Àϰü¸®ÀÚ´Â Àоî¿Â 6: fillDocument ( )


¹®¼­ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼­
°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

7: readFile ( )

8: fillFile ( )

Forward and
È­¸ é °´Ã¼´Â ÀÐ¾îµ éÀÎ 9: sortByName ( )
°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ÃÄÑ È­¸ é¿¡
º¸¿©ÁØ´Ù.

Sequence Reverse
Diagram Engineering
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 21
Practice 5: Continuously Verify Quality

Best Practices
Process Made Practical

Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously
Verify Quality
Manage Change
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 22
Continuously Verify Your Software’s Quality
Software problems are
100 to 1000 times more costly
to find and repair after deployment

 Cost to Repair Software


 Cost of Lost Opportunities
Cost  Cost of Lost Customers

Inception Elaboration Construction Transition


Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 23
Testing Dimensions of Quality
Usability
 Test application
from the
perspective
of convenience to
end user.

Functionality Reliability
 Test the accurate  Test that the application
workings of each behaves consistently
usage scenario. and predictably.

Supportability Performance
 Test the ability to  Test the online response
maintain and support under average and
application under peak loading.
production use.
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 24
Test Each Iteration
Iteration 1 Iteration 2 Iteration 3 Iteration 4

UML Model
and
Implementation

Test Suite 1 Test Suite 2 Test Suite 3 Test Suite 4

Tests

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 25
Test Within the Product Development Lifecycle
Iteration Iteration Iteration
X X+1 X+2

Requirements Capture

Analysis and Design


Project
Implementation
Planning
Build

Define Validate Test and Achieve Improve


Mission Build Evaluate Mission Assets

Verify Approach

Time

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 26
Practice 6: Manage Change

Best Practices
Process Made Practical

Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 27
What Do You Want to Control?
 Secure workspaces for each developer
 Automated integration/build management
 Parallel development
Workspace Parallel
Management Development

Configuration
Management is
more than just
check-in and check- REPORT ALERT
out Process Build
Integration Management

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 28
Aspects of a CM System
 Change Request Management (CRM)
 Configuration Status Reporting
 Configuration Management (CM)
 Change Tracking
 Version Selection
 Software Manufacture

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 29
Unified Change Management (UCM)
UCM involves:
 Management across the lifecycle
 System
 Project Management
 Activity-Based Management
 Tasks
 Defects
 Enhancements
 Progress Tracking
 Charts
 Reports
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 30
Best Practices Reinforce Each Other
Best Practices
Develop Iteratively

Ensures users are involved


Manage Requirements as requirements evolve

Validates architectural
Use Component Architectures
decisions early on

Addresses complexity of
Model Visually (UML) design/implementation incrementally

Continuously Verify Quality Measures quality early and often

Manage Change Evolves baselines incrementally

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 31
Module 1 Content Outline
 Software development problems
 The Six Best Practices
 RUP within the context of the Six Best
Practices

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 32
Rational Unified Process Implements Best Practices

Best Practices
Process Made Practical

Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 33
Achieving Best Practices

 Iterative approach
 Guidance for activities
and artifacts
 Process focus on
architecture
 Use cases that drive
design and
implementation
 Models that abstract
the system

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 34
A Team-Based Definition of Process
A process defines Who is doing What,
When, and How, in order to reach a certain
goal.

New or changed Software Engineering New or changed


requirements Process system

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 35
Process Structure - Lifecycle Phases

Inception Elaboration Construction Transition

time

Rational Unified Process has four phases:


 Inception - Define the scope of project
 Elaboration - Plan project, specify features and
baseline architecture
 Construction - Build the product
 Transition - Transition the product into end-user
community

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 36
Phase Boundaries Mark Major Milestones

Inception Elaboration Construction Transition

time

Lifecycle Lifecycle Initial Operational Product


Objective Architecture Capability Release
Milestone Milestone Milestone
(LCO) (LCA) (IOC)

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 37
Iterations and Phases

Inception Elaboration Construction Transition

Preliminary Architect. Architect. Devel. Devel. Devel. Transition Transition


Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration

Minor Milestones: Releases

An iteration is a distinct sequence of activities based on


an established plan and evaluation criteria, resulting in an
executable release (internal or external).

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 38
Bringing It All Together: The Iterative Approach
In an
iteration,
you walk
through all
disciplines.

Disciplines
group
activities
logically.

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 39
Disciplines Produce Models

Business Require- Analysis & Implement-


Disciplines Modeling Design ation
ments

Models

Implemented
Realized By By
Realized Business Use- Use-Case
By Case Model Model

B
B B B
Automated
Business By Design Model Implementation
Object Model Model

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 40
Disciplines Guide Iterative Development
Business
Modeling:
Workflow

Requirements:
Workflow
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 41
Overview of Rational Unified Process Concepts
Divided into Considers Described by

Workflow
Phase Iteration Discipline Detail
Participates in References

Role Activity
Responsible for Modifies

Model
Document Model
Element
Artifact
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 42
Review
 Best Practices guide software engineering
by addressing root causes.
 Best Practices reinforce each other.
 Process guides a team on who does what,
when, and how.
 The Rational Unified Process is a means of
achieving Best Practices.

Mastering Object Oriented Analysis and Design with UML


Copyright © 2003 Rational Software, all rights reserved 43
Mastering Object Oriented Analysis and Design with UML
Copyright © 2003 Rational Software, all rights reserved 44

You might also like