صفحه 1:
aad مت
را(00©) عدا أده
Grady Ooock
صفحه 2:
Can be built by one person
Requires
Minimal modeling
Simple process
Simple tools
صفحه 3:
ilt most efficiently and timely by a team
equires
Modeling
Well-defined process
Power tools
صفحه 4:
صفحه 5:
الس مانا
ee
صفحه 6:
cd
۳
6
0
od
صفحه 7:
RATIONAL
صفحه 8:
مس له ص ما
0 ener شیاه ee
۱ 5
ا 0
(6۳) و
نك
ie Oodera wovewedt (Oright, LeCorbusier)
صفحه 9:
تاس یمه سسوم ری دا
7
LCA cai Bn ANS IN UAC NAN CPA A CaS
مس سر سرا
ache SPINS Cacao
Oc aid و
a ACS SN Co NLDA oa NS No رت
0
عمجم 2 سا راو
صفحه 10:
۱ to vivid achitertune
1 ۴ دما
ee
“lhe ba
9 5 ۳
مب ها یرت
-Odw heme
- ea aie
تس
Cd ede a ee ad
اس ام ای یت Ra et Ree
0
صفحه 11:
aeel وس تا
صفحه 12:
تست
اجه مه و9
۳
5 coh dents
سای 4و
|
صفحه 13:
(aa EOE ia 5
Functionality
992۹ Compatibility
Capacity ۹ وم
>
۳
Availability —> 7 <=—Fault tolerance
sy Ac
ir) SS
(۱۱۱6 / Throughput
Technology churn كات لتنا
ie challenge over the next 20 years will not be speed or cost or perform
will be a question of complexity.
Raduchel, Chief Strategy Officer, Sun Microsystems
Our enemy is complexity, and it’s our goal to kill it.
۳
صفحه 14:
OI at Ee gr cad a]
aad Leen) انا
0و
لت res
ات 6 | تا
ميات مشا بر رس
5۵ وه ورن
sta Tt نامه
7
Definerha “how” ا
Pligg
re
توت ات لت
ووععممط
ات
صفحه 15:
022025-85
دص اا
ee جك كك ees
افص لكا
ری ری ار کی مرو مره
و یو ی رورت وس 1 امس او
ع لا اا د ۱
مت يت اننا
(iil Shoo oe oe
اما دمم سس مس سم
Mee a Rela asa
اي اك
صفحه 16:
| وت eel eal eee
۵
رس هه هس سم
evict eae DA Nake a Bes a ea a ۱۳
oa م OAS ce ASIA SCA ASE La aN
Sb ۱
Ne ea cael CRIN UEC ae Nace eae ad
structure <the upvel backs ~>
صفحه 17:
Orchitevture dePiced (oa) me
> ۱4۳2 architecture purowpusses the set oP
SNe Ae INN Ct oa Cana ل AN) aS ST
۱
هواس سا مت مه دا متس cd
AN ON eo ae a
1 LCL CAS CISC عومكاا
سس تا
Deas, eed ACR cence aU ee Ree جلوجصوصات امسصصد
ES Pale nd ci oaN o220 irl card
rans ia ee Ber PL ce ase NSCs coe ca as تمه
صفحه 18:
عصحر
DACA aN CARSON BN Cie امه لت جوم
esd 00
صفحه 19:
©0000 وس وت
ویو ۴و بامه ه حول ارزو متام و) خ
مه ۱
7 Sa ee ee
Ne ae ONS AEBS, CAN CAN SARS ACA id cae Ocoee
0 ae ha oe AE VOM SUA aE ce CANT Neca
Ee eA NCS oe ل
Pee emcee rac eca ceo a oie esr cas arated
۱ ceca ol vas oa
صفحه 20:
صفحه 21:
۱ مس
Valen ceed ned ck cae ean aera
نها مورو با ناهوس ست طعلن() خ
فاعم
|
راچد
> Oise wodels, bluepricts
0
en coi Ra hs aot aca e apa aa aa
و
صفحه 22:
NA aed RAN, ea
> Orchterture ما روم ها to مخ روم
۱۳ Pan ce
وت ورس
تياد
Poet wocager
eel ES Aca cial
ای
7
viker developers
> Oulidkrecsizcd rect
> Dutiple stakeholders
۲ OE ceca
صفحه 23:
Orchtecturd view
> @a achiecturd view ts u siwplPted descriptiva
000 clas cca) Re cA AS Cac
Dee حور رو ار و وه
۱ تم
۱
صفحه 24:
صفحه 25:
سس سم مت تست هب9
aoe
0 ern
0
عصس اه مه موه وال <
اا ماو اه ee 0
at 8 موم عوومولن) خ
صفحه 26:
Implementation
View
Programmers
Software management
Deployment
View System engineering
System topology
Delivery, installation
Communication
| RATIONAL
Logical
View
Functionality
Process
System integrators W
Performance
Scalability
Throughput
صفحه 27:
صفحه 28:
Wow wey views?
اصمسه لا 2۱ ها عاطلسب للم خ
جرب Ake tele serena ake ey
Giclee provessor: drop deploysedt view
Gingle provess: drop provess view
tara eC ar or, od casio ees Og 00ت
@ddhoy views! >
Ota view, sevurity view
صفحه 29:
۱
و
صاصروعتناا
| 0
> ۱ crn erica CN ENN Aa an
DOW UT
a موی ح
صفحه 30:
کر 6
OMG Acceptance, Nov 1997
Final submission to OMG, Sep ‘97
1 a Coke Cee Le
2
UML partners UML 1.0
ee Teel UML 0.9
OOPSLA ‘95 Unified Method 0.8
Other methods Booch method وله 005۴
صفحه 31:
۱۱/۱/۹۵
تمس نا
امس وس ۳
و
۳
راخ
9
۷
Wee Ne
تست
كاقل
و
اسان
9
aoa
سا1
00 ee Cav ioad
2 00
VVVVVVVY
۳
صفحه 32:
Oa AU Asal PAOLO)
Harel
Gamma, et al وت ت۱
Statecharts
er ET re Ce LTR eT aren 1
conditions
HP Fusion
تفر
0 کوهنام 0256 009۳2600
aired | = 0وطاعجم ۱
Embley ةم معنا
7 ۳ وى الس ا انين
LANGUAGE Tae oe)
eens 4 م
4 یتسین [cele ve
ees Responsibilities
Odell ۸۲ - 5۱۵6۲
Object lifecycles Classification
صفحه 33:
Overview oF the DOL
< ۳ AO an aa
UNIFIED
MODELIN
LANGUAGE
صفحه 34:
ا هتسسگ
01
SS Gia
02
مب <
صفحه 35:
Cleweuts سم
0
RS a RS ees nC ae
,امجدممددمت ,عجدات جمطامهد ca cd
5 موه
۱ aS Ras CNS
> Croup pees
pockuye, subspstew
7” 1
0
وا
۵ ۵
transformations
صفحه 36:
صفحه 37:
tagged value
Femava(n : Inte
صفحه 38:
Oe om Oiews, مسر در كت
model is a complete
scription of a system
ا ل اناه
ع اأناعع مومه
صفحه 39:
4۱/۹
va CON Nata aR UUM acoA ot
كا ae eR ae ad ON a
cdc cd ard لي ا
Oecd عجكاه كلابب اوجاكتكووص الدج rae ۱۸
dt KOO eee
CT ا Rn aR aoe ca Aaa ries
هم
Oa ا
سس
صفحه 40:
Receive
pho
Use
scheduler system boundary —
Cellular Telephone
صفحه 41:
ل 6210ل
arene cra 5 hyp by 0 0
ult ia cody stayes oP develop 2
ری a
Ce a weer ee ee
eee eS جنا
0
ل ا 20111111111111 11
و ا >
صفحه 42:
(Oo ON acitrd
> Cuptures the vocabulary oP a spstew
صفحه 43:
21
زر ۱6 و 4
> ۱۱۶2۹ Mar a ca Daa AUN Dc aerial]
دوووس ) و
casa mE Neca ase 10
CT BRN as asd
Ce BALA at RS asc a ASA
Pak en Caen oe oe eee
ترا
صفحه 44:
0
0ادورهاموو > 462
tile = “VP of Sale:
صفحه 45:
Oy را ane,
اسب م6 ط
سس ورس تشه
Purpose >
Gee dM aa aad
ما
> ل eee Panera ا
NaS ed
صفحه 46:
۱0 One mcnerd
۲ ١
۵
executable
صفحه 47:
ام مر سم
مه او وج یب در
CAT هر |
Bult os port of achiterturd sperPicct >
are خ
لو مرس سیم
cd لجحجوج جه اسسصاوو )0
Core eat Rca
acd پر سس(
صفحه 48:
“processor ‘processor
leaching server icaching server
networks I
processor «processor»
server server «|
‘processor processor»
primary server, server
| RATIONAL
صفحه 49:
دجوعند(1) اججدوررصاحج (])
01 at ae dd es a
> Bult os pot of architecturd specification
0
يي Cee eM aA
مس مس مت
ا Oe eR A و
NN or ONAN cc acd
صفحه 50:
Interaction
message اعطق
صفحه 51:
)8 ععجروج ON echt
> Purpose
۱٩ام ام مات
Ne eee Wel rs Roa cane eed
صفحه 52:
collaboration diagrary|
صفحه 53:
67 ant Oi ached
Nees
تناكف eae as acl
A Ne et oe ل act
صفحه 54:
nested state
guard
action
صفحه 55:
م ص۹۱ (Coal
سم تست اناما وتو الج با د
> Purpose
لك
ل 0 ل devices, et.)
صفحه 56:
صفحه 57:
۱6/۳ ۹ nner
< امس رس ییاجر جببین)
9 (Purpose
Oodel busicess workPows
عوصةسججرت أعلكن(])
صفحه 58:
Implementation
View
Design
View
Emlasses, interfaces,
ep liaborations
Process
View
Deployment
View
ctive classes
Organization
صفحه 59:
تمه دمص مت
Ce و و
Oars DOAN a RAN Na cic ND CANN PAU oa PAA eT
اود ae cds a Pe عاد CAA NONI ANN شحف ۰
Orchitecturd provess و
rl ccd ad ممم جكاا صا لمجا اكلا جصارهامه خأم جموجدوج 8)
ماس سم
1
iat 10
صفحه 60:
تم اه ده دا
نمی <
01 ere ae a
Val eerie a ot
0 Ne ere aan
صفحه 61:
Mo
تست م۱
صفحه 62:
ع و هت Key
> Pkose, Tercivas ما( oes: 7
0 eid
جما ص دا(0
aad نا
eed ‘Oka 3 0
proses سم
مه سم ما
0 0 eri?
صفحه 63:
|
ec) se ea cn aCcneotay Transition
OePice the svope of the project oot
develop busisess vase
a و۱
ae سم هر
مور
وموك صلا صا امسعصصحم Dee oe
كنك
صفحه 64:
وصدصاوصا(1) عجره (1)
|
كنك
۹ 4 ۹ ۹
Vision ۱ الیل دییات Product
Architecture Capability تستات ها
صفحه 65:
acd : هت او هت )۱
ا | ا(
__|
1 0
1 0
"اعد
1
0
1
Alecia ۱
۱ 0
1 0 1
ا 0
ل لت Iteration, _; Iteration,
AAAAA A A A
led ات ات ات وا ات وتات را
An iteration is a sequence of activities with an
established plan and evaluation criteria, resulting
in an executable release
صفحه 66:
سس سم
ا ططلن() خ
Ae aN RO NON Ra aN acd
> Dke Ouihied Proves presuribes the survessive
rehicewedt oP oo exevutble urchitevtune
۱
کیت
صفحه 67:
صفحه 68:
صفحه 69:
0
3 on
> Oot everpihiag is acchitectune
ON NI CN eM وعوكهات
۱۸ BRST Ns cane
ها هم م۱
0
UN مس وی
Va ars RC ei aed lara ar ak ec)
صفحه 70:
0 او له el
an OR ae een ne mae
eg ne ees beste eae
0 trade ee emcee
۱۳ oN ca Re eared ee
0 nn or tae =
a rence Ran a aac ced سم
| ok eed aren
0 carn aad
25-5
صفحه 71:
صفحه 72:
(esd
ی جات لو سا سیم ()) ا ee
02 1 Pa ا ene ere
Lg ASA ce Pict aS RRR AACS
> Ol welbstructured spstews ure Pull oP putteras
dios
۱0۱
اا potteras
صفحه 73:
مس وس(
(OT Cand
2 ل 0
* Os Td
نون ۰ سین ۰
وا و مق Pres, ates, shots *
٠ 05 مهن ۰
0 ب ا ا oe
0 ا ا rece
000“
00 0
ee eae
0 aye ne eee
یه ۰
صفحه 74:
یت
QOestya putercs
> Creciowd poterus
Clean ae
Care eed
” aa a
۱0 cad
لس
و
Va eas cs acd
9 respoosibttiy
Deda
9
07 ure the soul oP oc architecture
صفحه 75:
Command:
1
Command
ل
Command
Received
یه ]
Command \ Invoker
Menuitem |
صفحه 76:
(vou) هت مات هه بت ما
‘addCommand()
صفحه 77:
امس هتم لته هه بت ما
executel
و
۱
صفحه 78:
ام ها م۱۱
00 ۰. 000
10 ۰ لس مس رم
acl ل لاك
ved Filters + Disposuble ۱۹
(Nocera eas aed
CO esas!
oterpreter
Rue-bused
صفحه 79:
صفحه 80:
صفحه 81:
RATIONAL
صفحه 82:
از
مه سونو
۱۳
هم سم
Omer مرو
صفحه 83:
۲ 4 و وه(
0 acd
ea a a
0 ee ao
Va en een at ra
< arn er aed eed
صفحه 84:
اس رو
عمج جك الجطااونا و عه رج د
ا 0
> Oot the project woeeyer
* Out “ptoed at the hip”
> Ovtu Dera Lean Ug ۳۳۳۲
* Purpose oP the spstew, “Pi”,
Veh ean)
| "0
صفحه 85:
Gower architecture tea charter
LAO ea Laan aes eae aad
> Qaitatciag the acchitevturd tateqriy of the
۱
aed oe eae aad ممووویو) خ
سل
> ۱۹ ACAI Dc LS NONI CAN ae eae
هس اه Ao
> Or ار
ee ۲
صفحه 86:
هه دس مها بت سم
he tPe oP a soPiwore orchitert is a troy (cord
devisives woude purty io the dark.
صفحه 87:
سس او
| وسناج سوج (1) va (CO) Cran Nad
ار لق اك اراك
لس ۱۱
17171712715 و موق و
ب ا ۱۵۹۳2۹۹
ماما ا ك4 ف هديك
فص OTe و
صفحه 88:
مها هو اس له
۰ ول
LU A TU AUC)
CO RC BO AC Be Ace ae EC ea ae
ناك LCL ۰
اا 0 00
©0966 بعاد( مصلل 9
ا |
.©0266 بحاد 0 سمط 0
Ra نت0 ۵+0 ۲۲۰ ,حالس 02 ar ere 1666 و62
COM Cee eet aloe 2080.
۱ 3
| Seed ae RO mee A CO anc ered
۱ Tee ON ee eed Cola
صفحه 89:
ere مسا مسق 0 ا 0
ee or
ee hee a Me. ROBO ed CACC ات و و9
9 بو ,۳6۵
1
042 LO Ca IL Aces ae lee
نيفيك Orrphe, Opper Gadde Rver, OU, Precice-Ld, (O99.
ا ل 010
ره
۱
م 2
erat oa
صفحه 90:
0
و
لل
صفحه 91:
ا KRU a Ro
بي نك يفف
شل ,ساد 12802 ",وممصم «سوس امد جما بو اام RC
999۰
تک
9
1
000 Ca be ee ea es Kee eee Ca ees tere a
Koon
> Reacod Dobed Process 8.0, Ravad, Ouperta, O8, 188
< CS eK perc nee RL eee Rg
يك
AeA a AN at AU Tea
Cee a
Software Architecture
and the UML
Grady Booch
Architecting a dog house
Can be built by one person
Requires
Minimal modeling
Simple process
Simple tools
Architecting a house
uilt most efficiently and timely by a team
equires
Modeling
Well-defined process
Power tools
Architecting a high rise
Early architecture
Progress
- Limited knowledge of theory
Modern architecture
Progress
- Advances in materials
- Advances in analysis
Scale
- 5 times the span of the Pantheon
- 3 times the height of Cheops
Modeling a house
Movements in civil architecture
Bronze age/Egyptian (Imhotep)
Grecian/Roman (Vitruvius)
Byzantine/Romanesque
Gothic
Progress
- Imitation of previous efforts
- Learning from failure
- Integration of other forces
- Experimentation
Mannerism (Michelangelo, Palladio)
Baroque
Engineering/Rational/National/Romantic
Art noveau
Modern movement (Wright, LeCorbusier)
Kinds of civil architecture
Neufert Architect’s Data
The Handbook of Building Types
Community
houses, flats and apartments, gardens, education,
hospitals, religion
Commerce
shops and stores, restaurants, hotels, office buildings,
banks, airports
Industry
industrial buildings, laboratories, farm buildings
Leisure
sport, theaters and cinemas, museums
Forces in civil architecture
Load
Compression
Kinds of loads
- Dead loads
- Live loads
- Dynamic loads
Tension
Avoiding failure
- Safety factors
- Redundancy
- Equilibrium
Load
Any time you depart from established practice, make ten times the
effort, ten times the investigation. Especially on a very large project.
- LeMessuier
Brand, How Buildings Learn
Shearing layers of change
Space plan
Services
Stuff
Structure
Skin
Site
Walker Royce
Dimensions of software complexity
Higher technical complexity
- Embedded, real-time, distributed, fault-tolerant
- Custom, unprecedented, architecture reengineering
- High performance
An average software project:
- 5-10 people
- 10-15 month duration
- 3-5 external interfaces
- Some unknowns & risks
Lower
management
complexity
- Small scale
- Informal
- Single stakeholder
- “Products”
Defense
Weapon System
Telecom
Switch
Embedded
Automotive
Software
National Air Traffic
Control System
Commercial
Compiler
Large-Scale
Organization/Entity
Simulation
CASE Tool
Small Scientific
Simulation
IS Application
Distributed Objects
(Order Entry)
Enterprise IS
(Family of IS
Applications)
IS Application
GUI/RDB
(Order Entry)
Business
Spreadsheet
Lower technical complexity
- Mostly 4GL, or component-based
- Application reengineering
- Interactive performance
Defense
MIS System
Higher
management
complexity
- Large scale
- Contractual
- Many stake holders
- “Projects”
Forces in Software
Functionality
Cost
Capacity
Availability
Performance
Technology churn
Compatibility
Fail safe
Fault tolerance
Throughput
Resilience
he challenge over the next 20 years will not be speed or cost or perform
will be a question of complexity.
Raduchel, Chief Strategy Officer, Sun Microsystems
Our enemy is complexity, and it’s our goal to kill it.
Jan Baan
Wojtek Kozaczynski
The domain of architecting
The “why”
The “what”
Architecture
Qualities
Architecture
Architecture
Representation
Produces
The “who”
System
Features
Satisfies
Constrain
S/W
Requirements
System
Quality Attributes
Technology
Defines
The “how”
Follows
Architect
Process
Skills
Stakeholders
Defines role
Organization
Philippe Kruchten
We all know that ...
Architecture and design are the same thing
Architecture and infrastructure are the same thing
<my favorite technology> is the architecture
A good architecture is the work of a single architect
Architecture is flat, one blueprint is enough
Architecture is just structure
System architecture precedes software architecture
Architecture cannot be measured and validated
Architecture is a Science
Architecture is an Art
Architecture defined (again)
Merriam Webster’s Collegiate Dictionary
10th edition
Architecture n (1555) 1: the art of science of
building, specifically, the art or practice of
designing and building structures and esp. habitable
ones 2 a: formation or construction as or as if
as the result of conscious act <the ~ of the
garden> b: a unifying or coherent form or
structure <the novel lacks ~>
Architecture defined (yet again)
Mary Shaw, CMU
Grady Booch,
Philippe Kruchten,
Rich Reitman
Kurt Bittner, Rational
Software architecture encompasses the set of
significant decisions about the organization of a
software system
selection of the structural elements and their interfaces
by which a system is composed
behavior as specified in collaborations among those
elements
composition of these structural and behavioral elements
into larger subsystem
architectural style that guides this organization
Architecture defined (continued)
Software architecture also involves
usage
functionality
performance
resilience
reuse
comprehensibility
economic and technology constraints and tradeoffs
aesthetic concerns
Mary Shaw, CMU
Grady Booch,
Philippe Kruchten,
Rich Reitman
Kurt Bittner, Rational
Mary Shaw, CMU
Architectural style
An architecture style defines a family of systems
in terms of a pattern of structural organization.
An architectural style defines
a vocabulary of components and connector types
a set of constraints on how they can be combined
one or more semantic models that specify how a
system’s overall properties can be determined from
the properties of its parts
Architecture metamodel
Software
Architecture
Software
Architects
is part
of
are actors in
System
architecture
is represented by
Architecture
Design Process
produces
Software
Architecture
Description
has
Logical view
Process
view
is made of
relates to
is a
Architecture
Style guide
Architectural
view
has
Architectural style
is a
Architectural
Pattern
Deployment
view
Use case
view
is made of
has
Implementation view
constrains
Form
Component
Connection
depicts
Constraints
satisfies
constrains
Requirements
Architectural
Blueprint
Models
Models are the language of designer, in many
disciplines
Models are representations of the system to-be-built or
as-built
Models are vehicle for communications with various
stakeholders
Visual models, blueprints
Scale
Models allow reasoning about some characteristic of
the real system
Many stakeholders, many views
Architecture is many things to many different
interested parties
end-user
customer
project manager
system engineer
developer
architect
maintainer
other developers
Multidimensional reality
Multiple stakeholders
multiple views, multiple blueprints
Architectural view
An architectural view is a simplified description
(an abstraction) of a system from a particular
perspective or vantage point, covering particular
concerns, and omitting entities that are not relevant
to this perspective
Architecturally significant elements
Not all design is architecture
Main “business” classes
Important mechanisms
Processors and processes
Layers and subsystems
Architectural views = slices through models
Characteristics of a Good Architecture
Resilient
Simple
Approachable
Clear separation of concerns
Balanced distribution of responsibilities
Balances economic and technology constraints
Representing System Architecture
Logical
View
End-user
Functionality
Process
View
System integrators
Performance
Scalability
Throughput
Conceptual
Implementation
View
Programmers
Software management
Use Case
View
Deployment
View
System engineering
System topology
Delivery, installation
Communication
Physical
Relation Between Views
Logical view
Component view
Process view
Deployment view
How many views?
Simplified models to fit the context
Not all systems require all views:
Single processor: drop deployment view
Single process: drop process view
Very Small program: drop implementation view
Adding views:
Data view, security view
The Value of the UML
Is an open standard
Supports the entire software development
lifecycle
Supports diverse applications areas
Is based on experience and needs of the user
community
Supported by many tools
Creating the UML
UML 1.3
OMG Acceptance, Nov 1997
UML 1.1
Final submission to OMG, Sep ‘97
First submission to OMG, Jan ´97
public
feedback
UML partners
UML 0.9
Web - June ´96
OOPSLA ´95
UML 1.0
Unified Method 0.8
Other methods Booch method
OMT
OOSE
UML Partners
Rational Software Corporation
Hewlett-Packard
I-Logix
IBM
ICON Computing
Intellicorp
MCI Systemhouse
Microsoft
ObjecTime
Oracle
Platinum Technology
Taskon
Texas Instruments/Sterling Software
Unisys
Contributions to the UML
Harel
Meyer
Before and after
conditions
Statecharts
Gamma, et al
Frameworks and patterns,
HP Fusion
Booch
Operation descriptions and
message numbering
Booch method
Embley
Rumbaugh
Singleton classes and
high-level view
OMT
Jacobson
Wirfs-Brock
OOSE
Responsibilities
Shlaer - Mellor
Object lifecycles
Odell
Classification
Overview of the UML
The UML is a language for
visualizing
specifying
constructing
documenting
the artifacts of a software-intensive system
Overview of the UML
Modeling elements
Relationships
Extensibility Mechanisms
Diagrams
Modeling Elements
Structural elements
class, interface, collaboration, use case,
active class, component, node
Behavioral elements
interaction, state machine
Grouping elements
package, subsystem
Other elements
note
Relationships
Dependency
Association
Generalization
Realization
Extensibility Mechanisms
Stereotype
Tagged value
Constraint
Models, Views, and Diagrams
model is a complete
escription of a system
om a particular
erspective
Use Case
Use Case
Diagrams
Sequence
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Collaboration
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Statechart
Diagrams
Diagrams
Use Case
Use Case
Diagrams
Use Case
Diagrams
Diagrams
State
State
Diagrams
Class
Diagrams
Diagrams
Models
State
State
Diagrams
Object
Diagrams
Diagrams
State
State
Diagrams
Component
Diagrams
Diagrams
Component
Component
Diagrams
Deployment
Diagrams
Activity
Diagrams
Diagrams
Diagrams
A diagram is a view into a model
Presented from the aspect of a particular stakeholder
Provides a partial representation of the system
Is semantically consistent with other views
In the UML, there are nine standard diagrams
Static views: use case, class, object, component,
deployment
Dynamic views: sequence, collaboration, statechart,
activity
Use Case Diagram
Captures system functionality as seen by users
Use Case Diagram
Captures system functionality as seen by users
Built in early stages of development
Purpose
Specify the context of a system
Capture the requirements of a system
Validate a system’s architecture
Drive implementation and generate test cases
Developed by analysts and domain experts
Class Diagram
Captures the vocabulary of a system
Class Diagram
Captures the vocabulary of a system
Built and refined throughout development
Purpose
Name and model concepts in the system
Specify collaborations
Specify logical database schemas
Developed by analysts, designers, and
implementers
Object Diagram
Captures instances and links
Object Diagram
Shows instances and links
Built during analysis and design
Purpose
Illustrate data/object structures
Specify snapshots
Developed by analysts, designers, and
implementers
Component Diagram
Captures the physical structure of the
implementation
Component Diagram
Captures the physical structure of the
implementation
Built as part of architectural specification
Purpose
Organize source code
Construct an executable release
Specify a physical database
Developed by architects and programmers
Deployment Diagram
Captures the topology of a system’s hardware
Deployment Diagram
Captures the topology of a system’s hardware
Built as part of architectural specification
Purpose
Specify the distribution of components
Identify performance bottlenecks
Developed by architects, networking engineers,
and system engineers
Sequence Diagram
Captures dynamic behavior (time-oriented)
Sequence Diagram
Captures dynamic behavior (time-oriented)
Purpose
Model flow of control
Illustrate typical scenarios
Collaboration Diagram
Captures dynamic behavior (message-oriented)
Collaboration Diagram
Captures dynamic behavior (message-oriented)
Purpose
Model flow of control
Illustrate coordination of object structure and control
Statechart Diagram
Captures dynamic behavior (event-oriented)
Statechart Diagram
Captures dynamic behavior (event-oriented)
Purpose
Model object lifecycle
Model reactive objects (user interfaces, devices, etc.)
Activity Diagram
Captures dynamic behavior (activity-oriented)
Activity Diagram
Captures dynamic behavior (activity-oriented)
Purpose
Model business workflows
Model operations
Architecture and the UML
Design
View
Classes, interfaces,
collaborations
Implementation
View
Use cases
Process
View
Components
Use Case
View
Deployment
View
Active classes
Nodes
Organization
Dynamics
Package, subsystem
Interaction
State machine
Software engineering process
A set of partially ordered steps intended to reach a
goal. In software engineering the goal is to build a
software product or to enhance an existing one.
Architectural process
Sequence of activities that lead to the production of
architectural artifacts:
A software architecture description
An architectural prototype
Rational Unified Process
Iterative
Architecture-centric
Use-case driven
Risk confronting
Focus over time
Discovery
Focus
Invention
Implementation
Key concepts
Phase, Iterations
When does
architecture happen?
Process Workflows
What does happen?
Activity, steps
Artifacts
models
What is
produced?
reports, documents
Worker: Architect
Who does it?
Lifecycle Phases
Inception
Elaboration
Construction
Transition
time
Inception
Define the scope of the project and
develop business case
Elaboration
Plan project, specify features, and
baseline the architecture
Construction
Transition
Build the product
Transition the product to its users
Major Milestones
Inception
Elaboration
Construction
Transition
time
Vision
Baseline
Architecture
Initial
Capability
Product
Release
Phases and Iterations
Inception
Prelim ...
Iteration
Elaboration
Arch
Iteration
...
Construction
Dev
Dev
Iteration Iteration
Transition
...
Trans
Iteration
...
Release Release Release Release Release Release Release
Release
An iteration is a sequence of activities with an
established plan and evaluation criteria, resulting
in an executable release
Architecture-Centric
Models are vehicles for visualizing, specifying,
constructing, and documenting architecture
The Unified Process prescribes the successive
refinement of an executable architecture
Inception
Elaboration
Construction
time
Architecture
Transition
Unified Process structure
Phases
Process Workflows
Inception
Elaboration
Construction
Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration Mgmt
Management
Environment
Preliminary
Iteration(s)
Iter.
#1
Iter.
#2
Iter.
#n
Iter. Iter.
#n+1 #n+2
Iterations
Iter.
#m
Iter.
#m+1
Architecture and Iterations
Use case
Model
Design
Model
Implementati Deployment
on
Model
Model
Content
Test
Model
Architectural design
Identify, select, and validate
“architecturally significant” elements
Not everything is architecture
Main “business” classes
Important mechanisms
Processors and processes
Layers and subsystems
Interfaces
Produce a Software Architecture Documen
Architectural design workflow
Select scenarios: criticality and risk
Identify main classes and their responsibility
Use case view
Distribute behavior on classes
Structure in subsystems, layers,
define interfaces
Define distribution and concurrency
Logical view
Implement architectural prototype
Derive tests from use cases
Evaluate architecture
Iterate
Implementation view
Deployment view
Process view
Sources of architecture
Method
Method
Theft
Intuition
Classical system
Theft
Intuition
Unprecedented system
Patterns
A pattern is a solution to a problem in a context
A pattern codifies specific knowledge collected
from experience in a domain
All well-structured systems are full of patterns
Idioms
Design patterns
Architectural patterns
daVinci
Mechanisms
ScrewsBrakes
Keys
Rivets Valves
Bearings
Springs
Pins, axles, shafts
Cranks and rods
Couplings
Ropes, belts, and chains Pulleys
Friction wheels Engaging gears
Toothed wheels
Flywheels
Levers and connecting rods
Click wheels and gears
Ratchets
Pipes
Cams
Design patterns
Creational patterns
Abstract factory
Prototype
Structural patterns
Adapter
Bridge
Proxy
Behavioral patterns
Chain of responsibility
Mediator
Visitor
Mechanisms are the soul of an architecture
Design Patterns
Gamma et al
Modeling a design pattern
Modeling a design pattern (cont.)
Modeling a design pattern (cont.)
Architectural patterns
Distributed Layered
Event-driven
MVC
Frame-based
IR-centric
Batch Subsumption
Pipes and filters Disposable
Repository-centric
Blackboard
Interpreter
Rule-based
Software Architecture
Shaw and Garlan
Buschmann et al
A System of Patterns
Buschman et al
Booch
Real-Life Object-oriented Systems
Soren Lauesen
Complex business system
Cust omer
name : St ring
Address : St ring
Sales
product : Product
Order
dat e : Dat e
GUIl ayer
save()
ServiceAgent
Observer
purchase(cust omer, product , i t ems)
updat e()
Middle l ayer
Cust omer
name : St ring
Address : St ring
save()
get Name()
updat eName()
Product
name : St ring
price : Currency
Order Line
it ems : Product
get Name()
updat eName()
Cust omer
get Name()
updat eName()
Order Line
*
Product
*
SQL Dat abase
Logical application architecture
Graphical
User
Interface
Relational
Database
Graphical
User
Interface
Business
Object
Model
Relational
Database
Graphical
User
Interface
Business
Object
Model
Relational
Database
Physical application architecture
Thinner client, thicker server
Client B
Client A
Application
Application
Client C
WWW Browser
DCOM
CORBA Beans
ADO/R
Business Object
Services
Business Object
Engine
Business COM Beans
ETS
MTS
Object
Server Business Object
Relational Database Server(s)
Web
HTML
Serve CGI
r
ASP
Java
Services
Business Object
Services
Business Object
Engine
Business Object
Engine
The Second Wave
Paul Dreyfus, Netscape
Complex Internet system
Dynamic HTML, JavaScript, Java
plug-ins, source code enhancements
Client
Server
Java, C, C++, JavaScript, CGI
Application
Server
Fulfillment
System
Financial
System
Inventory
System
Java, C, C++, JavaBeans, CORBA, DCOM
RDBMS
Server
Native languages
Who are the architects?
Experience
software development
domain
Pro-active, goal oriented
Leadership, authority
Architecture team
balance
Architect
Not just a top level designer
Need to ensure feasibility
Not the project manager
But “joined at the hip”
Not a technology expert
Purpose of the system, “fit”,
Not a lone scientist
Communicator
Software architecture team charter
Defining the architecture of the software
Maintaining the architectural integrity of the
software
Assessing technical risks related to the software
design
Proposing the order and contents of the
successive iterations
Consulting services
Assisting marketing for future product definition
Facilitating communications between project teams
Architecture is making decisions
The life of a software architect is a long (and
sometimes painful) succession of suboptimal
decisions made partly in the dark.
Futures
ADL: Architecture Description Languages
UML, UniCon, LILEAnna, P++, LEAP, Wright,
µRapid
Standardization of concepts
IEEE Working Group on Architecture
INCOSE Working Group on System Architecture
Systematic capture of architectural patterns
References (Architecture)
Len Bass, Paul Clements & Rick Kazman, Software Architecture in Practice,
Addison-Wesley, 1998.
Frank Buschmann, Régine Meunier, Hans Rohnert, Peter Sommerlad, and
Michael Stahl, Pattern-Oriented Software Architecture - A System of Patterns ,
Wiley and Sons, 1996.
Christine Hofmeister, Robert Nord, Dilip Soni, Applied Software Architecture,
Addison-Wesley 1999.
Eric Gamma, John Vlissides, Richard Helm, Ralph Johnson, Design Patterns,
Addison-Wesley 1995.
Philippe Kruchten, “The 4+1 View Model of Architecture,” IEEE Software,
12 (6), November 1995, IEEE.
http://www.rational.com/support/techpapers/ieee/
Eberhardt Rechtin, Systems Architecting: Creating and Building Complex Systems,
Englewood Cliffs NJ, Prentice-Hall, 1991.
References (Architecture)
Eberhardt Rechtin & Mark Maier, The Art of System Architecting, CRC
Press, 1997.
Recommended Practice for Architectural Description , Draft 2.0 of IEEE
P1471, May 1998
http://www.pithecanthropus.com/~awg/
Mary Shaw, and David Garlan, Software Architecture—Perspectives on an
Emerging Discipline, Upper Saddle River, NJ, Prentice-Hall, 1996.
Bernard I. Witt, F. Terry Baker, and Everett W. Merritt, Software
Architecture and Design—Principles, Models, and Methods, New York NY,
Van Nostrand Reinhold, 1995.
The World-wide Institute of Software Architects
http://www.wwisa.org
References (UML)
Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified Modeling
Language User Guide, Addison-Wesley, 1999.
References (Process)
Barry Boehm, “A spiral model of software development and enhancement,”
IEEE Computer, May 1998.
Barry Boehm, “Anchoring the software process,” IEEE Software, July
1996.
Grady Booch, Object Solutions, Addison-Wesley, 1995.
Philippe Kruchten, “A Rational Development Process,” CrossTalk, July 1996.
http://www.rational.com/support/techpapers/devprcs/
Philippe Kruchten, The Rational Unified Process - An Introduction, AddisonWesley, 1999.
Rational Unified Process 5.0, Rational, Cupertino, CA, 1998
Walker Royce, Software Project Management: a Unified Framework, AddisonWesley, 1998
The Software Program Manager’s Network
http://www.spmn.com