design for changes
TRANSCRIPT
Delivering peace of mind
Architecting for Changes with UML
Emmanuel FUCHS
C2 Architect
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006 THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Content
What to Model ? Object Domain Model.
There Is No Silver Bullet: Software Is Complex by Essence.
Why is software complex ?
There Is No Silver Bullet Refired: Object Technologies a Brass Bullet.
Promote Great Designers: Dual Ladder Of Advancement
Technical Process And Management Process for High Quality Software.
Design For Changes: Iterative and Incremental Development Process (Spiral).
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
What, Why, How
Facts: There Is No Way to Make a Simplified Software System Specification. Design Is Complex Because of Human to Human Communication.
What: Apply Object Technologies for System Design : UML Object Domain Model.
Why: The Costs Spring From the Design Not From the Construction
How: Dual Ladder Of Advancement for Experts Recognizing. Dual Process Management and Technical Process. Spiral Use Case Driven Prototyping and Refactoring Process.
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Business/Domain modeling
1986: Ada OOD Grady Booch.
1990: OSI level 7 Application Service Element (ASE).
1992: NAOS: DCE IDL, Boehm Spiral.
1994: CORBA IDL.
1996: European Commission, Eurocontrol, ATC domain model.
1997: OMG transportation domain task force.
2001: OMG Radar Interface Standard definition.
2003: OMG Architecture Driven Modernization (ADM).
2004: Air Operations training and simulation.
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006 THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Content
What to Model ? Object Domain Model.
There Is No Silver Bullet: Software Is Complex by Essence.
Why is software complex ?
There Is No Silver Bullet Refired: Object Technologies a Brass Bullet.
Promote Great Designers: Dual Ladder Of Advancement
Technical Process And Management Process for High Quality Software.
Design For Changes: Iterative and Incremental Development Process (Spiral).
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Fred Brooks
IBM OS/360 project manager: 1965
The Mythical Man-Month : 1975.
No Silver Bullet: Essence and Accidental in Software Engineering: 1986.
MMM Second Edition: 1995. No Silver Bullet Refired
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Werewolves in V cycle
DocumentationAnd mock-up
Phase
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Werewolves in V cycle
DocumentationAnd mock-up
Phase
werewolvesSilverBullet
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Well Known Silver Bullets
Ada
OSI telecom
CORBA
Relation Data Base
….
They all failed because of the lack of domain model (essence).
No Silver Bullet Refired: OOD Brass Bullet
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Essential VS Accidental
Real gains are in the design not in the construction: Essential Task:
The fashioning of complex conceptual structures that compose the abstract software entity.
Accidental Task: The representation of the abstract software entities in programming language.
The costs spring from the design (The Essential) Essential = Design. Accidental = Development.
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Essential And Accidental in V cycle
Essential
Accidental
Design
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Essential And Accidental Gain Ratio
The costs spring from the design
PotentialGain 90%
PotentialGain 10%
Essential: Design
Accidental: Development
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006 THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Content
What to Model ? Object Domain Model.
There Is No Silver Bullet: Software Is Complex by Essence.
Why is software complex ?
There Is No Silver Bullet Refired: Object Technologies a Brass Bullet.
Promote Great Designers: Dual Ladder Of Advancement
Technical Process And Management Process for High Quality Software.
Design For Changes: Iterative and Incremental Development Process (Spiral).
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
E=MC²
Creation of stars and planets, Michelangelo, Sistine Chapel
Simple Unifying Principles.
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Human Creation
?
No Simple Unifying Principles.
Software is a human creation
Software
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Brook Suggestions and remarks
Buy Versus Build: COTS, Open Source. Components Based Development.
Requirement refinement and rapid Prototyping: Use Case driven. Early Operational Handbook. Based on COTS. Refactoring.
Incremental development-grow no build: Spiral iterative and incremental development. Functional Value Analysis
Great Designers: Dual Ladder of advancement Architects of the future.
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006 THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Content
What to Model ? Object Domain Model.
There Is No Silver Bullet: Software Is Complex by Essence.
Why is software complex ?
There Is No Silver Bullet Refired: Object Technologies a Brass Bullet.
Promote Great Designers: Dual Ladder Of Advancement
Technical Process And Management Process for High Quality Software.
Design For Changes: Iterative and Incremental Development Process (Spiral).
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Mythical Man Month (MMM= 3M)
t
t
Man
T
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Mythical Man Month (MMM= 3M)
t
t
Man
Man T
T/3
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Mythical Man Month (MMM= 3M)
The Bearing of a child takes nine months, no matter how many women are assigned.
=
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Mythical Man Month (MMM= 3M)
t
t
Man
Man
9 months
3 months
=
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Division Case
Division (A/B)
Division(B = 0)
Division(B <> 0)
=
Brass Bullet
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Factory
Division (A/B)
Division(B = 0)
Division(B <> 0)
Create()Factory
=
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
The design pattern seminal book
Ralph, Erich, Richard, and John at OOPSLA 1994
The Gang of Four
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006 THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Content
What to Model ? Object Domain Model.
There Is No Silver Bullet: Software Is Complex by Essence.
Why is software complex ?
There Is No Silver Bullet Refired: Object Technologies a Brass Bullet.
Promote Great Designers: Dual Ladder Of Advancement
Technical Process And Management Process for High Quality Software.
Design For Changes: Iterative and Incremental Development Process (Spiral).
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Great Designers: Dual Ladder
Managerial Ladder
Technical Ladder
Senior member of the technical staff
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Thales People First Dual Ladder
Senior member of the technical staff
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006 THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Content
What to Model ? Object Domain Model.
There Is No Silver Bullet: Software Is Complex by Essence.
Why is software complex ?
There Is No Silver Bullet Refired: Object Technologies a Brass Bullet.
Promote Great Designers: Dual Ladder Of Advancement
Technical Process And Management Process for High Quality Software.
Design For Changes: Iterative and Incremental Development Process (Spiral).
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Modeling method
Grady Booch: Object Oriented Analysis and design with application.
“A modeling method is a disciplined process for generating a set of models that describe various aspects of a software system under development using some well-defined notation.”
UML is “only” the notation.
We need a process: a modeling process.
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Grady Booch: OOAD
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
ManagementProcess
TechnicalProcess
Dual Track Process
CMMI
DOD498
For example :RUP(Rational Unified Process)
SSSICD
SSDDIRSSRS
Business/DomainModel(UML)
Sys-EM
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006 THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Content
What to Model ? Object Domain Model.
There Is No Silver Bullet: Software Is Complex by Essence.
Why is software complex ?
There Is No Silver Bullet Refired: Object Technologies a Brass Bullet.
Promote Great Designers: Dual Ladder Of Advancement
Technical Process And Management Process for High Quality Software.
Design For Changes: Iterative and Incremental Development Process (Spiral).
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Barry W. Boehm spiral
PairReview
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Iterative and Incremental
time
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Iterative and Incremental
Incremental
Iterative
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Iterative and Incremental
Not This !
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Use Case Prototyping Cycle
Prototyping
Refactoring
Review Review
Start Here Halfwaybreak
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Typical learning Increment
Quick And DirtyPrototyping
And ModellingCode and Model
Refactoring
Review
Review
Break
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Martin Fowler
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Typical Prototyping Increment
RapidPrototyping
And ModellingModel
Refactoring
Objective: Use CaseBasic Functions
Secondary Functions
Review
Review
Objective: Use CaseBasic Functions
Secondary Functions
Break
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Iterative and Incremental
Learning
Modelling/Prototyping
Building
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Iterative and Incremental
time
SpecificationsRedaction
Common V CycleLearning
And prototyping
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Iterative and Incremental
CMMIPair
Review
High Quality steady Level
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Conclusion
Domain modeling Discover domain essential objects. Dual management ladder for expert recognizing Dual process management and technical process Spiral global process
Domain process modeling
SOA: Require Business/Domain model. Web Service. Work Flow, orchestration.
WEB 2.0 Browser DOM example: IDL
THALESRAYTHEONSYSTEMS PROPRIETARYMay 23 2006
Conclusion
Thank You For Your Attention
Questions are welcome
Contacts :