1 فصل 5 - مرور سريع uml برگرفته از کتاب large-scale software architecture...

30
1 ل ص ف5 ع ي ر سور ر م- UML اب ت ک ه ار ت ف ر گ ر بLarge-Scale Software Architecture – Jeff Garland, Richard Anthony ی مع ن’ لا ي* ش ف ا هار ب87

Post on 21-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

1

UML - مرور سريع 5فصل

برگرفته از کتابLarge-Scale Software Architecture – Jeff Garland,

Richard Anthony

افشين المعی87بهار

Page 2: 1 فصل 5 - مرور سريع UML برگرفته از کتاب 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.

Page 3: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند3

UML خالصه دياگرام های …

برخی اجزایUML برای توصيف Runtime ،

و برخی برای Design/Build Timeبرخی برای

توصيف هر دو به کار ميروند.

Page 4: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعی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.

Page 5: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعی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)

Page 6: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند6

قراردادها

يک نمونه دياگرام

«subsystem»SubSystem1

«subsystem»SubSystem2Interface1

UML Comment - Part of the diagram

Page 7: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند7

... قراردادهاGeneral UML Features

Stereotype مکانيزمی جهت ايجاد المان های جديد از : )هايي( property يا semantic ، constraintطريق افزودن

.UMLبه المانهای اصلی يا با آيکون مخصوصی نشان داده >> << درون

ميشود. :مثالSubsystem يک Stereotyped Package است که آيکون

خاص خود را دارد.

Page 8: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند8

... قراردادهاGeneral UML Features

Tagged Value امکان افزودن :

ها به يک المان.propertyليستی از

از ديد معماری نرم افزار، برای

component ،ها process ،ها interface

ها، association ها، threadها،

dependency ها و node ها مفيد

است.

نوشته }{نام و مقدار آن درون

ميشود.

Page 9: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند9

... قراردادهاGeneral UML Features

Multi-instance نمايش :

خالصه يک المان که در

Runtime بيش از يک

نمونه دارد.

a process a node

a component

Multiple Objects{Quantity = 5}

Page 10: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعی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.

Page 11: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند11

دياگرام ها

دياگرام هايي که ميتوانند در توسعهview های مختلف معماری نرم افزار استفاده شوند.

Page 12: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند12

Component instance diagram

توصيفcomponent ،های زمان اجرا ارتباطات، اينترفيس ها و پورت های آنها.

component در اينجا به معنای component instance )زمان اجرا( استفاده ميشود.

مربوط به \ است. برای runtimeاين دياگرام کالBuild/Design Time از دياگرام Subsystem

استفاده ميکنيم.

Page 13: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند13

…Component instance diagram

Page 14: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند14

Class and subsystem diagrams

تمرکزClass diagram روی گروهی از المانهای مدل مانند کالس ها، بسته ها، زيرسيستم ها،

های آن است.tableموجوديتهای ديتابيس يا Subsystem Diagram گروهی از زيرسيستم ها

و ارتباطات آنها را )از طريق اينترفيس ها( نشان ميدهد.

کالس های مهم و سيستم های خارجی هم نمايش داده ميشوند.

Page 15: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند15

…Class and subsystem diagrams

«subsystem»SubSystem3

Class1 Class2

«subsystem»SubSystem2Interface3

«subsystem»SubSystem1

Interface2

Interface1

Page 16: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند16

Interaction (sequence & collaboration) diagram

Interaction diagram نمونه هايي از المان های مدل و پيام های تبادلی ميان آنها را نشان

ميدهد. به طور سنتی ازObject استفاده ميشده اما نمونه

المانهای ديگر هم قابل استفاده است. در معماری، تمرکز برComponent ها و نمونه

process .ها حائز اهميت است

Page 17: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند17

Sequence diagram

پيام ها ميان نمونهها ممکن است همزمان يا غير همزمان باشند.

ComponentInstance1 ComponentInstance2 ComponentInstance3

method 1

method 2 (parameter)

return

event 1

method 3Final event

Page 18: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند18

Collaboration diagram

شبيه دياگرامsequence .اما با وضوح بيشتر .مناسب برای تعداد نمونه ها و ارتباطات کم

instance1instance2

1:method 1()2:method 2()

instance3

3: method 3(param1,param2)

Page 19: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند19

Deployment diagram

،ارتباط ميان نودهاcomponent های

درون آنها و فرآيندها را نشان

ميدهد.Process Diagram

هم نوعی از اين دياگرام است که

نودها و component ها در

آن نيستند.

Page 20: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند20

Statechart diagram

نمايش رفتار پويا )ديناميک( المان های سيستماست.

در معماری، برای نمايش حالتcomponent ها، فرآيند ها و thread.ها به کار ميرود

.برای کالسهای اصلی سيستم هم قابل ارائه است.جهت انجام تست در معماری کاربرد دارد مثال: حاالت مختلف بخش هشدار در يک سيستم هشدار

دهنده سخت افزاری.

Page 21: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند21

… Statechart Diagram

State1

CompositeState1

event 1

State 3

event 2 / act [cond 1]

Page 22: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند22

Activity diagram

نوعی ازstate diagram که جريان فعاليت های سيستم Process 3Process 2Process1را نشان ميدهد.

activity 1

activity 1activity 1

Page 23: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند23

مديريت پيچيدگی

کم کردن پيچيدگی، رمز موفقيت در توسعه سيستمهای بزرگ است که بايد به صورت سازماندهی شده

و با حفظ سازگاری انجام شود. ساده سازی صريح(Explicit) ارجح است، يعنی

دياگرام ها بايد به وضوح بيان کننده ساده سازی های انجام شده روی آنها باشند.

.تمرکز هر دياگرام روی موضوع خاصی از سيستم باشد

Page 24: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعی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

Page 25: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند25

Use case focused modeling

تمرکز روی يکuse case يا سناريو )مسير ( use caseخاصی از

برای توسعه معماری بسيار مفيد است چون use caseتمام المان های درگير در اجرای يک

را در بر ميگيرد.Interaction diagram روی يک سناريو متمرکز

است. بقيه نمودارها هم با اين شيوه قابل توليد هستند.

Page 26: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند26

Element focused modeling

مثال: توليد يکviewبرای نمايش وابستگی های يکsubsystem نمايش ارتباطات اصلی يک مجموعه خاص از

subsystem ، چند componentالمان های مدل )چند (objectيا چند

Page 27: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند27

Level of details

گاهی بيان جزئيات از اهداف مورد نظر يکview:\ نيست. مثال

در نمايش وابستگی اينترفيسsubsystem ها، بيان وابستگی کافی است و جزئيات اينترفيس ها مد

نظر نيست. بيان پارارمترهای متدها در بخش تحليل، مورد

نياز نيست.

Page 28: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند28

Controlling the number of models

تعداد مدل ها با افزايش سايز سيستم به صورت تصاعدیافزايش مي يابد.

.توليد مدل به خودی خود هدف ما نيست مدل سازی برای فهم و تکميلDesign سيستم و نيز مستند سازی

انجام ميشود..راه حل: اولويت بندی

مدل هایexploratory.موقت هستند ، مدل هایDocumentation.ماندگار و مهم تر هستند ،

کار با مدل های ناقص، در امر معماری نرم افزار مشکلآفرين است.

:تطابق مدل با کد راه حل: مهندسی معکوس برای ارتباط دادن کد توليد شده به

مدل.

Page 29: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند29

Use supplemental textual information

نمودارها به تنهايي مکانيزم مناسبی برای بياناطالعات پيچيده نيستند.

استفاده از توضيحات و جداول نيز ضروریاست. مثال:

... توصيف زيرسيستم ها، اينترفيس ها، اکتورها وکارآيي و ديگر ويژگی های نودها توضيح جزئياتsequenceها UML OCLبرای بيان پيش شرط ها و پس شرطها توضيح حالت ها در يکstate diagram

Page 30: 1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87

افشين المعیhttp://ceit.aut.ac.ir/~lamei آزمايشگاه سيستم های همشمند30

Recommended Readings

UML specification: www.omg.org www.uml.org

UML Users Guide (Booch et al., 1999)