صفحه 1:
Software
Architecture
OL. Week
صفحه 2:
Outline
sic Ovwer
سا Giles
oo
oooo
صفحه 3:
Basic Concept
he موه و ی موه وه ماه Prawework trot
desorbes ts Por oad structure — سا اجه وه طا they Pa
و
© bad archierturd desta Por o bukdery تسج چا مس by «pod
موه ۳ موی is tre Por soPware
kere oe siles oF buikdtory cod soPivane architecture
صفحه 4:
Architectural design
process
sinwtuiey سره لا
2 0١5 مرو i ور موه و لوط sb-systews
aed ope ممه تمس سملت محا مجميججا ووصادصم khestP ad
DF Coeiral wodettery
© worl oP the oouiel rekticoships between he dPPereul pats
PP thre yeasty te reatabbesrd
DQ 00
وططدم من اودرو مدص جمد De KdeciPied sub-spstews <
صفحه 5:
Sub-systems and
modules
ها موه mwa rh Whose چا ۱ ورد و و محصحطد © لا
وراه واه by موس موه بط اه ماو
to oer وه طم با مرو و وج طلوت و لا
cowpeas bul would wot weedy be cowkered wo separde
ann
صفحه 6:
Architectural models
2 اه رصق oad weodtkr decowpostion way be based ooo
pari dkar wedel or archiecturd sive
Ahowever, wost systews ore hetervyeurvus in thot dPPRereut ports of لا
he systew oe bee oo dPPeredt woe oad, it sowe oes, he
اج موه و syste wey Polow
Qo Dke orchtecturd wodel used oPRevis دجوا جات ,عم ووم جما
Ustrbutcbliy oad cvaictcicabity oP he systew
صفحه 7:
System structuring
ز ز ز ز ز [ ز ز 000 151250
Phe arhierturd ذا مادص corwdly expressed oy o bok dagraw
preseutog oc Dver view oP ihe Syste since
Qore speckic odes showin how sub-sysiews share chs, ore
لاوس ond talerPare wih euck ker way dso be devebped
صفحه 8:
Architectural
Style
صفحه 9:
1. Main Program With Subroutines
M
fan-out
a 7 6
و
depth
0 e k 1 7
1 اا ؟ 7 o|le q
fan-in
i i r
جع width) ———__________»
صفحه 10:
Control
ge icc,
Output
rted
output
10
Sort
Shift
Procedure call
store shifts
input
Input
+
—-Access to data structure
+ 0
صفحه 11:
2. Abstract Data Type
11
Control
Input
Store Shift
output
صفحه 12:
سوق لا
:وکام ۶
PuCkor(rw,0,): »
| ite caled oPer ol apuioes have bera stored troy
successive ols of (PuChar()
> Linen (): delivers the onober of hoes stores
< Worde(r)
> Chers(rw)
* Cher(rw.7)
سب لا
< 001 سس سس
> Read Pro tpt od call PuCher(...)
< 0 اسان
12
صفحه 13:
13
حورت لا
(اسسا۵) ۶
()عل۵۳0) <
(سبااس ۵۳0 <
OP Cher (|w,2) »
وه لا
موقم <
xpetlortex(w) *
صفحه 14:
Output
output
3. Implicit Invocation
۷
Sort
Control
Shift
1
MakeShift
Store
۳ call The MakeShift module is
no explicitly called
14
Input
فيح كريد |
input
سر
صفحه 15:
4. Pipe and Filter
Input Shift Sort Output
input output
15
صفحه 16:
5. Repository
0 8 ما عه سس سق data. Dhis wep be dour is tu ways!
> Oka datas held 0.0 ceurd dotcbuse or repostiory vad way
be aovessed by ul sub-ppsiews
* Cok b-systew wotdate is nwo dotobose od posses cota
explo) io vier sub-syotews
cxpounis of dota ore to be shored, the reposiiory cde وا ما لا
لح رات ات سا DP shartay
16
صفحه 17:
17
واه
software
client
software
Conti.
olient olient
software software
Data store
(repository or
back board)
client client
sofware software
client
software
client
software
صفحه 18:
Conti.
OD سمل
PR Rpeot way to share barge axons oF ett
© Oxb-systews werd wt be coaerced wit how data is prokuced
۶ وب موم تون backup, smu), et.
© Garay wodel is published os the repository schewa
دعست لا
6 روم و وه وه امه و روول data wodel. Teevitabhy
وه و
© Octo evoked is dP Pod cod expecive
18
صفحه 19:
6. Layered
‘components
user interhoe layer
application layer
utlity layer
19
صفحه 20:
7. Client-server
Opttbuied syste corde whick shows how cota ced processions i
ص و ار رح و مه اما
servers whick provide speniic services sucks ی
pricier, dota (KREME, FIP.
Get oP chects whick cull va hese services
Qetwork which dows ches to aoess servers
ند ۴
20
oo ۲ o
صفحه 21:
Conti.
2 مه
© Oisinbuion oP cha ts straghPorward
© Oches ePPertve use oP uetuorked syste
» Cray ok wew servers or upgrade exten servers
منم لا
» Op shard dot wodel sv له سس وله dota
Dep.
© Dot interchouge way be toePPiciect
© Op cedird reyeter of canes oad services - i way be hard و
Rid out whol servers ond services ore avcthibke
21
صفحه 22:
Control
Model
صفحه 23:
Control models
OQ Ore coerced wih he poukol Pow betowen sub-spotews.
< Opi Brow the systew deoownpontion woe
امه سین تا
وه له امه ۳ راو اوه وا وولو و ۶
اه لمیر تا
اه ای رام و موه مه Cork ab-sysiew 2
اوه sysiew's با و موجه مهام مس
23
صفحه 24:
1. Centralized
control
مج takes respousbliy Por wane he وولو امه 8 ۵
موجه ان جر
Cohretwn wodel تا
Dop-dowa subroutce wodel <
starts of he ip oP a subroutce hierarchy ond woves اون
cbunward.
سوه وی نا Opplouble <
امن موق ۲
Owe systew vxwppuedl ood the sippy, start) ocd <
vihur syoiay prouvon. ات ومشكعل ممم
.75 جاجبره م۱
24
صفحه 25:
Call-return model
25
صفحه 26:
A centralized control
model for a real-time
system control
صفحه 27:
2. Event-driven
systems
OQ Orvea by extercaly yruerced suede where te tan of ها و
puide the coal of the sub-spstews whick process he evel
نامك صه و اه وت اه تس Na 2
من و ماود مین سا سا زرا لوط
او موه ام مس تا
۶ بطم ۵ موه 0 لو لو 7 dl ab-spstews.
gy abaystew whick oom مد صل بوب مرو بطم
* Agerpedived odes. Osed i nedhioe sysiews where
مه مه با لد بو مر kouder oad passed ها
مس ما موه ی و
27
صفحه 28:
Broadcast model
و و وه حول مه موه هفخ
سس
Oke these وه ود و مد و يي معيو
ihe sub-syotew whick vee bode the و اما امه سوه
ار
Cowl poly is wt ewbedded in the eve ood wessape kooder.
Gub-spstews decide va eves oP toterest io hew
الم بت رب مره مج لت تن ام موجه ,جوا
وت ات
m1.registerTo(m2)
m2 receive an event
m2 will call m1
28
صفحه 29:
Broadcasting
pay ۱ 6 مر 3 system (Subsystem)
۲ ر ۱ 4 J
‘Event and message hander
29
صفحه 30:
Interrupt-driven
systems
عا هو مه ها وص ممصم sysiews where Pot لین Osed in
resid
here ore ku we tlerrupt ype wie a hoader dePced Por euck bpe
و له مها پر ه عاتن له چا بو ack
trePer tp ts harder ی[
Olbws Post respowe bu pwplex ty proyreny ood dPPiodl لطس جا
30
o oo oOo
صفحه 31:
31
“Process ۲ ~ Process » “ Process ١ / Prowss >
JY SQ SQ لفت
Handler Handler Handler
3 4
Handler
vector
Interupt
Intermupts
Interrupt-driven
control
صفحه 32:
32
Modular
Decomposition
صفحه 33:
The problem that they have to deal with
are complex, ..., software engineers
cannot reduce this complexity.
However, it can be funneled and
confined within weakly coupled closed
areas. By judicious segmentation of the
33
صفحه 34:
Modular decomposition
ات او و مره موم وه
اوه ططلو وتو ون من
2 Oa cbt wodel where he syetew صم لوطل ذا
irom, جاعزنا
2 © detePw sodel where the systew ts devowposed into
جنه نا ود موم نطو مخ Pls
ات او او من
4P possble, devia chow comme shod be dekyed لس
لجوج اتوص ser امي
34
صفحه 35:
Object models
systew hig a set oF lovey coupled ober wih welt با ص66
wit Rect ray object اه موس Objectoneded
هه واه و ای ال ای
Ow:
> pose) pow led: the اه ماو objects oa be coded
مويك لفن vier objevts
< Cosly wodeled: obects are oPea represrataions oP rector
retires
33
م ۲ ۲ ۲
صفحه 36:
Invoice processing
system
36
صفحه 37:
Data-flow models
(Cusetcod trresPorwalives process their taputs to produce یی
Quy be rePerred to os 3 pipe ord Pier coded (cr ict DD IX shell)
و فصو ان موی بو oP this approach ore نو
sequedid, this iso back sequectdl wodel whick ip exteosively used ia dott
sysiews ]
Oot edly exible Por وه عم
Ow.
سجن مس با و
A eka روت تن peop فا اه هوجو وا اه ood
0۲ 7۲
۶ Bunlviey the تن بل با مود tnnePorwdios & uly
اسرد
معاصيره أمامصوجد د عن لسمصجموه د جد اه ماو to و وا ۶
37
ooo
oo
صفحه 38:
Invoice processing
system
Isue ۱ / تحت ثم
ار Le pe
38
صفحه 39:
Domain-Specific
Architecture
صفحه 40:
Domain-specific
architectures
QO rchiectird codes whisk ore speoPic b soe و موب
QD woe pes oP ات مود
» Cevere wok whick ore obsiewives Prow a anober oP red
pyeteave axl whieh eoruakiy لمم جما vhuruterttee oP
hove opti
°° Duy be rewed dreviy ino desi
°° ال موی
۶ الب حون مج( oe wore cbyirw, Medked woe.
Crovdle اجه موه ره موی ما مه موه اه مت و
UP متاخ پمج مومت
۱ popare possibe:
architerture
© Dop-dows woe
40
صفحه 41:
Generic models
Crxopler wade io weltkanwa expe dha oher wodets exist
dooce ماو اوه سوت و
واه لیا 2
Gycobol ible <
سمل سر <
عصا 6 2
رل صطممموی <
ی ولو <
0
1
41
صفحه 42:
A data-flow model of a compiler
Synbol
tdle
© Lexical ١ © Syntactic ١ (Semantic ١ coe (
_ amlyss > amlyss > amlysis Pr generdion )
42
صفحه 43:
The repository model of a
language processing
system
صفحه 44:
Reference
architectures
RePerewe woteb oe derived Prow صا خا تلم م upphcuica
وه وه و ما مود
Quy be wed «5 beste Por مه مود or 0 موه
UPPereot syotews. Wore or 0 stoked موی whic مه وود
be evoked
ره موه بو اون لوا هب للم 661
44
صفحه 45:
45
OSI reference model
متام نارجه
Presentation
Session
Transport
Network
Data link
Physal
Network
Datalink
Physal
Communications medium
Presentation
Session,
Transport
Network
Datalink
Physial
صفحه 46:
Design
Pattern
صفحه 47:
۱ OO00 ‘OO0’00
صفحه 48:
48
What is a
Pattern?
QO Current use comes from the work of
the architect Christopher Alexander
O Alexander studied ways to improve
the process of designing buildings
and urban areas
Q “Each pattern is a three-part rule,
which expresses a relation between
a certain context, a problem anda
solution.”
Q Hence, the common definition of a
pattern: “A solution to a problem in
a context.”
Q Patterns can be applied to many
different areas of human endeavor,
including software development
صفحه 49:
Why
Pattern?
Q "Designing object-oriented software is hard and
designing reusable object-oriented software is even
harder." - Erich Gamma
QO Experienced designers reuse solutions that have
worked in the past
Q Well-structured object-oriented systems have
recurring patterns of classes and objects
QO Knowledge of the patterns that have worked in the
past allows a designer to be more productive and the
resulting designs to be more flexible and reusable
49
صفحه 50:
OQ 1987 - Cunningham and Beck used Alexander’s ideas
to develop a small pattern language for Smalltalk
Q 1990 - The Gang of Four (Gamma, Helm, Johnson and
Vlissides) begin work compiling a catalog of design
patterns
Q1991 - Bruce Anderson gives first Patterns Workshop
at OOPSLA
Kent Beck and Grady Booch sponsor the first - 1993 لا
meeting of what is now known as the Hillside Group
QO 1994 - First Pattern Languages of Programs (PLoP)
conference
01995 - The Gang of Four (GoF) publish the Design
Patterns book
50
صفحه 51:
Types of software
patterns
Q Organizational
O Analysis
QO Design
O Process
Q Project Planning
QO Configuration Management
53
صفحه 52:
Types of software
patterns
O Riehle and Zullighoven in “Understanding and Using
Patterns in Software Development” mention three
types of software patterns
Q Conceptual Pattern
» Pattern whose form is described by means of
terms and concepts from the application domain
QO Design Pattern
» Pattern whose form is described by means of
software design constructs, such as objects,
classes, inheritance and aggregation
Q Programming Pattern (Programming Idiom)
» Pattern whose form is described by means of
programming language constructs
52
صفحه 53:
Design Pattern Le
Abstraction
QO Complex design for an
entire application or
subsystem
۳ abstract
Q Solution to a general
design problem in a More concrete
particular context J
QO Simple reusable design
class such as a linked
list, hash table, etc.
53
صفحه 54:
GoF Design
Patterns
QO The GoF design patterns are in the middle of these
levels of abstraction
QA design pattern names, abstracts, and identifies
key aspects of a common design structure that makes
it useful for creating a reusable object-oriented
design.”
QO The GoF design patterns are “descriptions of
communicating objects and classes that are
customized to solve a general design problem in a
particular context.”
54
صفحه 55:
GoF Classification Of Design
Patterns
Q Purpose - what a pattern does
~ Creational Patterns
* Concern the process of object creation
~ Structural Patterns
* Deal with the composition of classes and objects
» Behavioral Patterns
* Deal with the interaction of classes and objects
Q Scope - what the pattern applies to
~ Class Patterns
* Focus on the relationships between classes and their
subclasses
* Involve inheritance reuse
> Object Patterns
* Focus on the relationships between objects
* Involve composition reuse
55
صفحه 56:
GoF Essential Elements Of
Design Patterns
Q Pattern Name
» Having a concise, meaningful name for a pattern improves
communication among developers
O Problem
+ What is the problem and context where we would use this
pattern?
~ What are the conditions that must be met before this pattern
should be used?
Q Solution
» A description of the elements that make up the design pattern
» Emphasizes their relationships, responsibilities and
collaborations
> Not a concrete design or implementation; rather an abstract
description
O Consequences
> The pros and cons of using the pattern
> Includes impacts on reusability, portability, extensibility
56
صفحه 57:
GoF Pattern
Template
Q Structure
> A graphical representation of the pattern
Q Participants
> The classes and objects participating in the
pattern
QO Collaborations
» How to do the participants interact to carry out
their responsibilities?
QO Consequences
» What are the pros and cons of using the pattern?
QO Implementation
» Hints and techniques for implementing the
pattern
57
صفحه 58:
GoF Pattern
Template
Q Pattern Name and Classification
» A good, concise name for the pattern and the
pattern's type
O Intent
» Short statement about what the pattern does
Q Also Known As
» Other names for the pattern
Q Motivation
» A scenario that illustrates where the pattern
would be useful
Q Applicability
» Situations where the pattern can be used
58
صفحه 59:
GoF Pattern
Template
OQ Sample Code
> Code fragments for a sample implementation
QO Known Uses
> Examples of the pattern in real systems
O Related Patterns
> Other patterns that are closely related to the
pattern
59
صفحه 60:
Key points
| ip respousble Por derivieny 9 strurtirdd systew
له او او و رال a mbes ears ممصم مسحي coated
(pars ی رو و و موم chest
تا ماوت تس له بات نو
ال مهو لو اوه هه ماود Control wodels
60
صفحه 61:
Key points
Oodular devowposiiva wodels tachide doto-Flouy ocd object wodets
over a و بو wes ماه ود وتا
epplcdicn dowar. They way be cowsiructed by obsiractay Pro
اه جوا ال بو رو و موه pena
61
صفحه 62:
The architectural model provides a
Gestalt view of a system, allowing the
software engineering to examine it as a
whole
R. Pressman
62