1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture...

Preview:

Citation preview

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)

Recommended