1 فصل 5 - مرور سريع uml برگرفته از کتاب large-scale software architecture...
Post on 21-Dec-2015
221 views
TRANSCRIPT
1
UML - مرور سريع 5فصل
برگرفته از کتابLarge-Scale Software Architecture – Jeff Garland,
Richard Anthony
افشين المعی87بهار
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند2
UMLخالصه دياگرام های
9 نوع دياگرام در UML.وجود دارد Class Diagram Object Diagram * Component Diagram Deployment Diagram Use case Diagram * Sequence Diagram Collaboration Diagram State chart Diagram Activity Diagram
* Not Applicable for architecture description.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند3
UML خالصه دياگرام های …
برخی اجزایUML برای توصيف Runtime ،
و برخی برای Design/Build Timeبرخی برای
توصيف هر دو به کار ميروند.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند4
UML خالصه دياگرام های …Diagram Type
Build vs. Runtime
Elements
Class
B
Classes, Packages, Subsystems, Interrfaces, Database Tables, Database entities, Relations.
Component
R
Components, Interfaces, Ports, Relationships.
State
R
States, Sub-states, Transitions, events, Activities.
Activity
R
Activities, Objects, Processes.
Interaction
R
Objects, Components, Messages.
Deployment R
Nodes, Processes, Components, Threads.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند5
اجزای دياگرام های و دوره حيات آنها
Object (R) Class (B/R) Package (B) Sub-system (B) Layer (B) Component (R) Interface (B/R) Process (R)
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند6
قراردادها
يک نمونه دياگرام
«subsystem»SubSystem1
«subsystem»SubSystem2Interface1
UML Comment - Part of the diagram
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند7
... قراردادهاGeneral UML Features
Stereotype مکانيزمی جهت ايجاد المان های جديد از : )هايي( property يا semantic ، constraintطريق افزودن
.UMLبه المانهای اصلی يا با آيکون مخصوصی نشان داده >> << درون
ميشود. :مثالSubsystem يک Stereotyped Package است که آيکون
خاص خود را دارد.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند8
... قراردادهاGeneral UML Features
Tagged Value امکان افزودن :
ها به يک المان.propertyليستی از
از ديد معماری نرم افزار، برای
component ،ها process ،ها interface
ها، association ها، threadها،
dependency ها و node ها مفيد
است.
نوشته }{نام و مقدار آن درون
ميشود.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند9
... قراردادهاGeneral UML Features
Multi-instance نمايش :
خالصه يک المان که در
Runtime بيش از يک
نمونه دارد.
a process a node
a component
Multiple Objects{Quantity = 5}
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند10
... قراردادها View Labels
برچسبی شامل مشخصه های اصلی يکViewشامل
Title: Description of the view. Type: Based on the viewpoint name. Date: Last date updated. Responsible: Person(s) responsible for creating
the view.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند11
دياگرام ها
دياگرام هايي که ميتوانند در توسعهview های مختلف معماری نرم افزار استفاده شوند.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند12
Component instance diagram
توصيفcomponent ،های زمان اجرا ارتباطات، اينترفيس ها و پورت های آنها.
component در اينجا به معنای component instance )زمان اجرا( استفاده ميشود.
مربوط به \ است. برای runtimeاين دياگرام کالBuild/Design Time از دياگرام Subsystem
استفاده ميکنيم.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند13
…Component instance diagram
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند14
Class and subsystem diagrams
تمرکزClass diagram روی گروهی از المانهای مدل مانند کالس ها، بسته ها، زيرسيستم ها،
های آن است.tableموجوديتهای ديتابيس يا Subsystem Diagram گروهی از زيرسيستم ها
و ارتباطات آنها را )از طريق اينترفيس ها( نشان ميدهد.
کالس های مهم و سيستم های خارجی هم نمايش داده ميشوند.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند15
…Class and subsystem diagrams
«subsystem»SubSystem3
Class1 Class2
«subsystem»SubSystem2Interface3
«subsystem»SubSystem1
Interface2
Interface1
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند16
Interaction (sequence & collaboration) diagram
Interaction diagram نمونه هايي از المان های مدل و پيام های تبادلی ميان آنها را نشان
ميدهد. به طور سنتی ازObject استفاده ميشده اما نمونه
المانهای ديگر هم قابل استفاده است. در معماری، تمرکز برComponent ها و نمونه
process .ها حائز اهميت است
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند17
Sequence diagram
پيام ها ميان نمونهها ممکن است همزمان يا غير همزمان باشند.
ComponentInstance1 ComponentInstance2 ComponentInstance3
method 1
method 2 (parameter)
return
event 1
method 3Final event
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند18
Collaboration diagram
شبيه دياگرامsequence .اما با وضوح بيشتر .مناسب برای تعداد نمونه ها و ارتباطات کم
instance1instance2
1:method 1()2:method 2()
instance3
3: method 3(param1,param2)
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند19
Deployment diagram
،ارتباط ميان نودهاcomponent های
درون آنها و فرآيندها را نشان
ميدهد.Process Diagram
هم نوعی از اين دياگرام است که
نودها و component ها در
آن نيستند.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند20
Statechart diagram
نمايش رفتار پويا )ديناميک( المان های سيستماست.
در معماری، برای نمايش حالتcomponent ها، فرآيند ها و thread.ها به کار ميرود
.برای کالسهای اصلی سيستم هم قابل ارائه است.جهت انجام تست در معماری کاربرد دارد مثال: حاالت مختلف بخش هشدار در يک سيستم هشدار
دهنده سخت افزاری.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند21
… Statechart Diagram
State1
CompositeState1
event 1
State 3
event 2 / act [cond 1]
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند22
Activity diagram
نوعی ازstate diagram که جريان فعاليت های سيستم Process 3Process 2Process1را نشان ميدهد.
activity 1
activity 1activity 1
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند23
مديريت پيچيدگی
کم کردن پيچيدگی، رمز موفقيت در توسعه سيستمهای بزرگ است که بايد به صورت سازماندهی شده
و با حفظ سازگاری انجام شود. ساده سازی صريح(Explicit) ارجح است، يعنی
دياگرام ها بايد به وضوح بيان کننده ساده سازی های انجام شده روی آنها باشند.
.تمرکز هر دياگرام روی موضوع خاصی از سيستم باشد
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند24
استراتژی های مديريت پيچيدگی
Use case focused modeling Element focused modeling Level of details Controlling the number of models Use supplemental textual information
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند25
Use case focused modeling
تمرکز روی يکuse case يا سناريو )مسير ( use caseخاصی از
برای توسعه معماری بسيار مفيد است چون use caseتمام المان های درگير در اجرای يک
را در بر ميگيرد.Interaction diagram روی يک سناريو متمرکز
است. بقيه نمودارها هم با اين شيوه قابل توليد هستند.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند26
Element focused modeling
مثال: توليد يکviewبرای نمايش وابستگی های يکsubsystem نمايش ارتباطات اصلی يک مجموعه خاص از
subsystem ، چند componentالمان های مدل )چند (objectيا چند
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند27
Level of details
گاهی بيان جزئيات از اهداف مورد نظر يکview:\ نيست. مثال
در نمايش وابستگی اينترفيسsubsystem ها، بيان وابستگی کافی است و جزئيات اينترفيس ها مد
نظر نيست. بيان پارارمترهای متدها در بخش تحليل، مورد
نياز نيست.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند28
Controlling the number of models
تعداد مدل ها با افزايش سايز سيستم به صورت تصاعدیافزايش مي يابد.
.توليد مدل به خودی خود هدف ما نيست مدل سازی برای فهم و تکميلDesign سيستم و نيز مستند سازی
انجام ميشود..راه حل: اولويت بندی
مدل هایexploratory.موقت هستند ، مدل هایDocumentation.ماندگار و مهم تر هستند ،
کار با مدل های ناقص، در امر معماری نرم افزار مشکلآفرين است.
:تطابق مدل با کد راه حل: مهندسی معکوس برای ارتباط دادن کد توليد شده به
مدل.
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند29
Use supplemental textual information
نمودارها به تنهايي مکانيزم مناسبی برای بياناطالعات پيچيده نيستند.
استفاده از توضيحات و جداول نيز ضروریاست. مثال:
... توصيف زيرسيستم ها، اينترفيس ها، اکتورها وکارآيي و ديگر ويژگی های نودها توضيح جزئياتsequenceها UML OCLبرای بيان پيش شرط ها و پس شرطها توضيح حالت ها در يکstate diagram
افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند30
Recommended Readings
UML specification: www.omg.org www.uml.org
UML Users Guide (Booch et al., 1999)