SlideShare a Scribd company logo
Object-Oriented Analysis and Design
Lecture 1: Best Practices of
Software Engineering
2
Object Oriented Analysis and Design
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.
3
Object Oriented Analysis and Design
Content Outline
 Software development problems
 The Six Best Practices
 RUP within the context of the Six Best
Practices
4
Object Oriented Analysis and Design
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
5
Object Oriented Analysis and Design
Trace Symptoms to Root Causes
Needs not met
Requirements churn
Modules don’t fit
Hard to maintain
Late discovery
Poor quality
Poor performance
Colliding developers
Build-and-release
Insufficient requirements
Ambiguous communications
Brittle architectures
Overwhelming complexity
Undetected inconsistencies
Poor testing
Subjective assessment
Waterfall development
Uncontrolled change
Insufficient automation
Symptoms Root Causes Best Practices
Ambiguous communications
Undetected inconsistencies
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
Model Visually (UML)
Continuously Verify Quality
Modules do not fit
6
Object Oriented Analysis and Design
Content Outline
 Software development problems
 The Six Best Practices
 RUP within the context of the Six Best
Practices
7
Object Oriented Analysis and Design
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
Practice 1: Develop Iteratively
8
Object Oriented Analysis and Design
Waterfall Development Characteristics
 Delays confirmation of
critical risk resolution
 Measures progress by
assessing work
products that are poor
predictors of time-to-
completion
 Delays and aggregates
integration and testing
 Precludes early
deployment
 Frequently results in
major unplanned
iterations
Code and unit test
Design
Subsystem integration
System test
Waterfall Process
Requirements
analysis
9
Object Oriented Analysis and Design
Iterative Development Produces an Executable
Initial
Planning
Planning
Requirements
Analysis & Design
Implementation
Deployment
Test
Evaluation
Management
Environment
Each iteration
results in an
executable release
10
Object Oriented Analysis and Design
Risk Reduction
Time
Risk
Waterfall Risk
Iterative Risk
Risk Profiles
Best Practices in Object Oriented Analysis and Design
Best Practices in Object Oriented Analysis and Design
Best Practices in Object Oriented Analysis and Design
11
Object Oriented Analysis and Design
Practice 2: Manage Requirements
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
12
Object Oriented Analysis and Design
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.
13
Object Oriented Analysis and Design
Aspects of Requirements Management
 Analyze the Problem
 Understand User Needs
 Define the System
 Manage Scope
 Refine the System Definition
 Manage Changing Requirements
14
Object Oriented Analysis and Design
Problem
Solution
Space
Problem
Space
Needs
Features
Software
Requirements
Test Scripts Design User
Docs
The
Product
to Be
Built
Map of the Territory
15
Object Oriented Analysis and Design
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
Best Practices in Object Oriented Analysis and Design
16
Object Oriented Analysis and Design
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
17
Object Oriented Analysis and Design
Purpose of a Component-Based Architecture
 Basis for reuse
 Component reuse
 Architecture reuse
 Basis for project management
 Planning
 Staffing
 Delivery
 Intellectual control
 Manage complexity
 Maintain integrity System-
software
Middleware
Business-
specific
Application-
specific
Component-based
architecture with
layers
18
Object Oriented Analysis and Design
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
19
Object Oriented Analysis and Design
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
20
Object Oriented Analysis and Design
Visual Modeling With the Unified Modeling Language
Activity
Diagrams
Models
Dynamic
Diagrams
Static
Diagrams
 Multiple views
 Precise syntax and
semantics
Sequence
Diagrams
Collaboration
Diagrams
Statechart
Diagrams
Deployment
Diagrams
Component
Diagrams
Object
Diagrams
Class
Diagrams
Use-Case
Diagrams
21
Object Oriented Analysis and Design
Visual Modeling Using UML Diagrams
Actor A
Use Case 1
Use Case 2
Actor B
user : Clerk
mainWnd : MainWnd
fileMgr : FileMgr
repository : Repository
document : Document
gFile : GrpFile
9: sortByName ( )
L
1: Doc view request ( )
2: fetchDoc( )
5: readDoc ( )
7: readFile ( )
3: create ( )
6: fillDocument ( )
4: create ( )
8: fillFile ( )
Window95
¹®¼-°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
Windows
NT
¹®¼-°ü¸® ¿£Áø.EXE
Windows
NT
Windows95
Solaris
ÀÀ¿ë¼-¹ö.EXE
Alpha
UNIX
IBM
Mainframe
µ¥ÀÌŸº£À̽º¼-¹ö
Windows95
¹®¼-°ü¸® ¾ÖÇø´
Document
FileManager
GraphicFile
File
Repository DocumentList
FileList
user
mainWnd fileMgr :
FileMgr
repository
document :
Document
gFile
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
9: sortByName ( )
ƯÁ¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
È-Àϰü¸®ÀÚ´Â Àоî¿Â
¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼-
°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
È-¸é °´Ã¼´Â ÀоîµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ÃÄÑ È-¸é¿¡
º¸¿©ÁØ´Ù.
Forward and
Reverse
Engineering
Target
System
Openning
Writing
Reading
Closing
addfile[numberOffile==MAX]/
flagOFF
addfile
closefile
closefile
Use Case 3
Use-Case
Diagram
Class Diagram
Collaboration
Diagram
Sequence
Diagram
Component
Diagram
Statechart
Diagram
GrpFile
read( )
open( )
create( )
fillFile( )
rep
Repository
name : char * = 0
readDoc( )
readFile( )
(from Persistence)
FileMgr
fetchDoc( )
sortByName( )
DocumentList
add( )
delete( )
Document
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
fList
1
FileList
add( )
delete( )
1
File
read( )
read() fill the
code..
Deployment
Diagram
22
Object Oriented Analysis and Design
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
23
Object Oriented Analysis and Design
Continuously Verify Your Software’s Quality
Cost
Transition
Construction
Elaboration
Inception
Software problems are
100 to 1000 times more costly
to find and repair after deployment
 Cost to Repair Software
 Cost of Lost Opportunities
 Cost of Lost Customers
Best Practices in Object Oriented Analysis and Design
24
Object Oriented Analysis and Design
Testing Dimensions of Quality
Reliability
 Test that the application
behaves consistently
and predictably.
Performance
 Test the online response
under average and
peak loading.
Functionality
 Test the accurate
workings of each
usage scenario.
Usability
 Test application
from the perspective
of convenience to
end user.
Supportability
 Test the ability to
maintain and support
application under
production use.
25
Object Oriented Analysis and Design
UML Model
and
Implementation
Tests
Iteration 1
Test Suite 1
Iteration 2
Test Suite 2
Iteration 4
Test Suite 4
Iteration 3
Test Suite 3
Test Each Iteration
26
Object Oriented Analysis and Design
Test Within the Product Development Lifecycle
Iteration
X
Iteration
X + 2
Iteration
X + 1
Requirements Capture
Analysis and Design
Implementation
Time
Project
Planning
Define
Mission
Build
Test and
Evaluate
Validate
Build
Achieve
Mission
Improve
Assets
Verify Approach
27
Object Oriented Analysis and Design
Practice 6: Manage Change
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
28
Object Oriented Analysis and Design
ALERT
REPORT
Workspace
Management
Process
Integration
Parallel
Development
Build
Management
Configuration
Management is
more than just
check-in and
check-out
What Do You Want to Control?
 Secure workspaces for each developer
 Automated integration/build management
 Parallel development
29
Object Oriented Analysis and Design
Aspects of a CM System
 Change Request Management (CRM)
 Configuration Status Reporting
 Configuration Management (CM)
 Change Tracking
 Version Selection
 Software Manufacture
30
Object Oriented Analysis and Design
Unified Change Management (UCM)
UCM involves:
 Management across the lifecycle
 System
 Project Management
 Activity-Based Management
 Tasks
 Defects
 Enhancements
 Progress Tracking
 Charts
 Reports
31
Object Oriented Analysis and Design
Best Practices Reinforce Each Other
Validates architectural
decisions early on
Addresses complexity of
design/implementation incrementally
Measures quality early and often
Evolves baselines incrementally
Ensures users are involved
as requirements evolve
Best Practices
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
32
Object Oriented Analysis and Design
Module 1 Content Outline
 Software development problems
 The Six Best Practices
 RUP within the context of the Six Best
Practices
33
Object Oriented Analysis and Design
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
34
Object Oriented Analysis and Design
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
35
Object Oriented Analysis and Design
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
requirements
New or changed
system
Software Engineering
Process
36
Object Oriented Analysis and Design
Inception Elaboration Construction Transition
Process Structure - Lifecycle Phases
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
time
37
Object Oriented Analysis and Design
Phase Boundaries Mark Major Milestones
Inception Elaboration Construction Transition
Lifecycle
Objective
Milestone
(LCO)
Lifecycle
Architecture
Milestone
(LCA)
Initial Operational
Capability
Milestone
(IOC)
Product
Release
time
38
Object Oriented Analysis and Design
Iterations and Phases
An iteration is a distinct sequence of activities based on
an established plan and evaluation criteria, resulting in an
executable release (internal or external).
Preliminary
Iteration
Architect.
Iteration
Architect.
Iteration
Devel.
Iteration
Devel.
Iteration
Devel.
Iteration
Transition
Iteration
Transition
Iteration
Inception Elaboration Construction Transition
Minor Milestones: Releases
Best Practices in Object Oriented Analysis and Design
39
Object Oriented Analysis and Design
Bringing It All Together: The Iterative Approach
Disciplines
group
activities
logically.
In an
iteration,
you walk
through all
disciplines.
40
Object Oriented Analysis and Design
Disciplines Produce Models
Realized By
Implementation
Model
Design Model
Use-Case
Model
Models
Disciplines
Implement-
ation
Analysis &
Design
Require-
ments
Business Use-
Case Model
Business
Modeling
Business
Object Model
B
B
B
B
Realized
By
Automated
By
Implemented
By
41
Object Oriented Analysis and Design
Disciplines Guide Iterative Development
Business
Modeling:
Workflow
Requirements:
Workflow
42
Object Oriented Analysis and Design
Overview of Rational Unified Process Concepts
Phase Iteration Discipline
Workflow
Detail
Role
Artifact
Activity
Divided into Considers Described by
Responsible for Modifies
References
Participates in
Document
Model
Element
Model
43
Object Oriented Analysis and Design
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.

More Related Content

Similar to Best Practices in Object Oriented Analysis and Design (20)

PPT
Object Oriented Analysis and Design - Overview
rmk_rrj
 
PPT
Jar chapter 1
Reham Maher El-Safarini
 
PPTX
1. object oriented concepts & principles
poonam bora
 
PPTX
Unit-1 OOAD Introduction.pptx
Ravindranath67
 
PDF
ppt_ooad.pdf
anuj962198
 
PPT
Unit 1( modelling concepts & class modeling)
Manoj Reddy
 
PPTX
Lecture 3 software_engineering
moduledesign
 
PPT
Ooad
gantib
 
PPTX
Lecture 3 software_engineering
moduledesign
 
PPTX
OOSDLC.pptx
RAJESH S
 
PPT
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
VGaneshKarthikeyan
 
PPT
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
VGaneshKarthikeyan
 
PPT
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
VGaneshKarthikeyan
 
PPT
Oose unit 4 ppt
Dr VISU P
 
PPTX
UNIT 01 SMD.pptx
Kalpna Saharan
 
PPT
Object Oriented Analysis & Design
vishykn
 
PPT
OOSE Unit 4 PPT.ppt
itadmin33
 
PPT
Unit-1 OOMD- Inthhro- class modeling.ppt
ChiragSuresh
 
PPT
15 object orienteddesign
randhirlpu
 
PDF
Software Development Life Cycle steps.pdf
rajesshs31r
 
Object Oriented Analysis and Design - Overview
rmk_rrj
 
1. object oriented concepts & principles
poonam bora
 
Unit-1 OOAD Introduction.pptx
Ravindranath67
 
ppt_ooad.pdf
anuj962198
 
Unit 1( modelling concepts & class modeling)
Manoj Reddy
 
Lecture 3 software_engineering
moduledesign
 
Ooad
gantib
 
Lecture 3 software_engineering
moduledesign
 
OOSDLC.pptx
RAJESH S
 
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
VGaneshKarthikeyan
 
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
VGaneshKarthikeyan
 
UNIT-I(Unified_Process_and_Use Case_Diagrams)_OOAD.ppt
VGaneshKarthikeyan
 
Oose unit 4 ppt
Dr VISU P
 
UNIT 01 SMD.pptx
Kalpna Saharan
 
Object Oriented Analysis & Design
vishykn
 
OOSE Unit 4 PPT.ppt
itadmin33
 
Unit-1 OOMD- Inthhro- class modeling.ppt
ChiragSuresh
 
15 object orienteddesign
randhirlpu
 
Software Development Life Cycle steps.pdf
rajesshs31r
 

Recently uploaded (20)

PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
PPTX
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PPTX
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
PDF
Salesforce CRM Services.VALiNTRY360
VALiNTRY360
 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PPTX
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
 
PPTX
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
PDF
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
Tally software_Introduction_Presentation
AditiBansal54083
 
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
Salesforce CRM Services.VALiNTRY360
VALiNTRY360
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
The Role of a PHP Development Company in Modern Web Development
SEO Company for School in Delhi NCR
 
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
Ad

Best Practices in Object Oriented Analysis and Design

  • 1. Object-Oriented Analysis and Design Lecture 1: Best Practices of Software Engineering
  • 2. 2 Object Oriented Analysis and Design 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.
  • 3. 3 Object Oriented Analysis and Design Content Outline  Software development problems  The Six Best Practices  RUP within the context of the Six Best Practices
  • 4. 4 Object Oriented Analysis and Design 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
  • 5. 5 Object Oriented Analysis and Design Trace Symptoms to Root Causes Needs not met Requirements churn Modules don’t fit Hard to maintain Late discovery Poor quality Poor performance Colliding developers Build-and-release Insufficient requirements Ambiguous communications Brittle architectures Overwhelming complexity Undetected inconsistencies Poor testing Subjective assessment Waterfall development Uncontrolled change Insufficient automation Symptoms Root Causes Best Practices Ambiguous communications Undetected inconsistencies Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Model Visually (UML) Continuously Verify Quality Modules do not fit
  • 6. 6 Object Oriented Analysis and Design Content Outline  Software development problems  The Six Best Practices  RUP within the context of the Six Best Practices
  • 7. 7 Object Oriented Analysis and Design Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Practice 1: Develop Iteratively
  • 8. 8 Object Oriented Analysis and Design Waterfall Development Characteristics  Delays confirmation of critical risk resolution  Measures progress by assessing work products that are poor predictors of time-to- completion  Delays and aggregates integration and testing  Precludes early deployment  Frequently results in major unplanned iterations Code and unit test Design Subsystem integration System test Waterfall Process Requirements analysis
  • 9. 9 Object Oriented Analysis and Design Iterative Development Produces an Executable Initial Planning Planning Requirements Analysis & Design Implementation Deployment Test Evaluation Management Environment Each iteration results in an executable release
  • 10. 10 Object Oriented Analysis and Design Risk Reduction Time Risk Waterfall Risk Iterative Risk Risk Profiles
  • 14. 11 Object Oriented Analysis and Design Practice 2: Manage Requirements Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 15. 12 Object Oriented Analysis and Design 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.
  • 16. 13 Object Oriented Analysis and Design Aspects of Requirements Management  Analyze the Problem  Understand User Needs  Define the System  Manage Scope  Refine the System Definition  Manage Changing Requirements
  • 17. 14 Object Oriented Analysis and Design Problem Solution Space Problem Space Needs Features Software Requirements Test Scripts Design User Docs The Product to Be Built Map of the Territory
  • 18. 15 Object Oriented Analysis and Design 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
  • 20. 16 Object Oriented Analysis and Design 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
  • 21. 17 Object Oriented Analysis and Design Purpose of a Component-Based Architecture  Basis for reuse  Component reuse  Architecture reuse  Basis for project management  Planning  Staffing  Delivery  Intellectual control  Manage complexity  Maintain integrity System- software Middleware Business- specific Application- specific Component-based architecture with layers
  • 22. 18 Object Oriented Analysis and Design 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
  • 23. 19 Object Oriented Analysis and Design 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
  • 24. 20 Object Oriented Analysis and Design Visual Modeling With the Unified Modeling Language Activity Diagrams Models Dynamic Diagrams Static Diagrams  Multiple views  Precise syntax and semantics Sequence Diagrams Collaboration Diagrams Statechart Diagrams Deployment Diagrams Component Diagrams Object Diagrams Class Diagrams Use-Case Diagrams
  • 25. 21 Object Oriented Analysis and Design Visual Modeling Using UML Diagrams Actor A Use Case 1 Use Case 2 Actor B user : Clerk mainWnd : MainWnd fileMgr : FileMgr repository : Repository document : Document gFile : GrpFile 9: sortByName ( ) L 1: Doc view request ( ) 2: fetchDoc( ) 5: readDoc ( ) 7: readFile ( ) 3: create ( ) 6: fillDocument ( ) 4: create ( ) 8: fillFile ( ) Window95 ¹®¼-°ü¸® Ŭ¶óÀ̾ðÆ®.EXE Windows NT ¹®¼-°ü¸® ¿£Áø.EXE Windows NT Windows95 Solaris ÀÀ¿ë¼-¹ö.EXE Alpha UNIX IBM Mainframe µ¥ÀÌŸº£À̽º¼-¹ö Windows95 ¹®¼-°ü¸® ¾ÖÇø´ Document FileManager GraphicFile File Repository DocumentList FileList user mainWnd fileMgr : FileMgr repository document : Document gFile 1: Doc view request ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( ) 5: readDoc ( ) 6: fillDocument ( ) 7: readFile ( ) 8: fillFile ( ) 9: sortByName ( ) ƯÁ¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù. È-Àϰü¸®ÀÚ´Â Àоî¿Â ¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼- °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù. È-¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È-¸é¿¡ º¸¿©ÁØ´Ù. Forward and Reverse Engineering Target System Openning Writing Reading Closing addfile[numberOffile==MAX]/ flagOFF addfile closefile closefile Use Case 3 Use-Case Diagram Class Diagram Collaboration Diagram Sequence Diagram Component Diagram Statechart Diagram GrpFile read( ) open( ) create( ) fillFile( ) rep Repository name : char * = 0 readDoc( ) readFile( ) (from Persistence) FileMgr fetchDoc( ) sortByName( ) DocumentList add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) fList 1 FileList add( ) delete( ) 1 File read( ) read() fill the code.. Deployment Diagram
  • 26. 22 Object Oriented Analysis and Design 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
  • 27. 23 Object Oriented Analysis and Design Continuously Verify Your Software’s Quality Cost Transition Construction Elaboration Inception Software problems are 100 to 1000 times more costly to find and repair after deployment  Cost to Repair Software  Cost of Lost Opportunities  Cost of Lost Customers
  • 29. 24 Object Oriented Analysis and Design Testing Dimensions of Quality Reliability  Test that the application behaves consistently and predictably. Performance  Test the online response under average and peak loading. Functionality  Test the accurate workings of each usage scenario. Usability  Test application from the perspective of convenience to end user. Supportability  Test the ability to maintain and support application under production use.
  • 30. 25 Object Oriented Analysis and Design UML Model and Implementation Tests Iteration 1 Test Suite 1 Iteration 2 Test Suite 2 Iteration 4 Test Suite 4 Iteration 3 Test Suite 3 Test Each Iteration
  • 31. 26 Object Oriented Analysis and Design Test Within the Product Development Lifecycle Iteration X Iteration X + 2 Iteration X + 1 Requirements Capture Analysis and Design Implementation Time Project Planning Define Mission Build Test and Evaluate Validate Build Achieve Mission Improve Assets Verify Approach
  • 32. 27 Object Oriented Analysis and Design Practice 6: Manage Change Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 33. 28 Object Oriented Analysis and Design ALERT REPORT Workspace Management Process Integration Parallel Development Build Management Configuration Management is more than just check-in and check-out What Do You Want to Control?  Secure workspaces for each developer  Automated integration/build management  Parallel development
  • 34. 29 Object Oriented Analysis and Design Aspects of a CM System  Change Request Management (CRM)  Configuration Status Reporting  Configuration Management (CM)  Change Tracking  Version Selection  Software Manufacture
  • 35. 30 Object Oriented Analysis and Design Unified Change Management (UCM) UCM involves:  Management across the lifecycle  System  Project Management  Activity-Based Management  Tasks  Defects  Enhancements  Progress Tracking  Charts  Reports
  • 36. 31 Object Oriented Analysis and Design Best Practices Reinforce Each Other Validates architectural decisions early on Addresses complexity of design/implementation incrementally Measures quality early and often Evolves baselines incrementally Ensures users are involved as requirements evolve Best Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 37. 32 Object Oriented Analysis and Design Module 1 Content Outline  Software development problems  The Six Best Practices  RUP within the context of the Six Best Practices
  • 38. 33 Object Oriented Analysis and Design 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
  • 39. 34 Object Oriented Analysis and Design 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
  • 40. 35 Object Oriented Analysis and Design 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 requirements New or changed system Software Engineering Process
  • 41. 36 Object Oriented Analysis and Design Inception Elaboration Construction Transition Process Structure - Lifecycle Phases 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 time
  • 42. 37 Object Oriented Analysis and Design Phase Boundaries Mark Major Milestones Inception Elaboration Construction Transition Lifecycle Objective Milestone (LCO) Lifecycle Architecture Milestone (LCA) Initial Operational Capability Milestone (IOC) Product Release time
  • 43. 38 Object Oriented Analysis and Design Iterations and Phases An iteration is a distinct sequence of activities based on an established plan and evaluation criteria, resulting in an executable release (internal or external). Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration Inception Elaboration Construction Transition Minor Milestones: Releases
  • 45. 39 Object Oriented Analysis and Design Bringing It All Together: The Iterative Approach Disciplines group activities logically. In an iteration, you walk through all disciplines.
  • 46. 40 Object Oriented Analysis and Design Disciplines Produce Models Realized By Implementation Model Design Model Use-Case Model Models Disciplines Implement- ation Analysis & Design Require- ments Business Use- Case Model Business Modeling Business Object Model B B B B Realized By Automated By Implemented By
  • 47. 41 Object Oriented Analysis and Design Disciplines Guide Iterative Development Business Modeling: Workflow Requirements: Workflow
  • 48. 42 Object Oriented Analysis and Design Overview of Rational Unified Process Concepts Phase Iteration Discipline Workflow Detail Role Artifact Activity Divided into Considers Described by Responsible for Modifies References Participates in Document Model Element Model
  • 49. 43 Object Oriented Analysis and Design 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.