ﻪﻣﺪﻘﻣ systems analysis ﺎه ﻢﺘﺴﻴﺳ ﻞﻴﻠﺤﺗ و...
TRANSCRIPT
مقدمه
Systems Analysis
طراحی تجزيه و تحليل سيستم ها
:هدف از اين درس ل کليه جوانب نحوه ای شروع پروژه از از صورت مسئله تا پياده سازی با تجزيه وتحلي
چرخه حيات يک نرم افزار
تجزيه و تحليل نيازمند يها
طراحی
پياده سازی
تست
New
sof
twar
e
نگهداری
عمل حيات نرم افزار م می بايست طبق برای اين که از صورت مسئله تا اتمام پروژه مراحل را به خوبی طی کني : نکته . کنيم
متدهای تجزيه و تحليل
بر ايده ی ورودی و خروجی استوار می باشد : ساختيافته وطراحی نر م افزار)DFD ) Data Flow Diagramو دارای نمودار
شی گرا
. استفاده خواهيم کرد شی گرا از دو متد فوق ما از
بيل يک زبان برنامه نويسی و اکنون که می واهيم از شی گرا استفاده کنيم به يکسری نيازمنديها ازق . نياز داريم Modelingيک ابزار مدلسازی
OMT
Booch انواع ابزار مدلسازی
UML
که به يک استاندارد تبديل شده برای مدلسازی پروژه انتخاب می UMLکه از سه ابزار ذکر شده ما . کنيم
. يم کرد در مدلسازی ما بيشتر روی دو قسمت اول چرخه حيات نرم افزار کار خواه :نکته
ابزار کاغذ و قلم -١ :UMLدو روش استفاده از نرم افزاری -٢
CASE: وجود دارد UMLابزار نرم افزاری که برای )Computer Adder Software Engeeniring(
CASE : ز يک ابزار به ابزار ديگر قادر به طراحی دياگرامها تبديل به زبان برنامه نويسی و يا حتی ا.می باشد و اشکاالت موجود را به ما نشان خواهد داد
نرم افزاری که با هر سه ابزار مدلسازی : CASERational Rose انواع نرم افزار . سازگاری دارد
Together : نرم افزاری که با مدلUML و زبان Java . سازگاری دارد
UML
Unified Modeling Language
. يع نرم افزار می باشد يک زبان گرافيکی برای طراحان نرم افزار به جهت طراحی و يا توسعه سر
: برای جزوات و مقاالت آموزشی دارای سايت UML سازنده OMGشرکت .ORGWWW.OMG
: UMLويژگی های نمای گرافيکی -١ قابل بسط و توسعه -٢ امکان مدل کردن سيستم های شی گرا -٣
Design Patterns: ر يکسری الگو ها است که از قبل ساخته شده که برای طراحی بهتر است بتقل از زبان های برنامه نياز استفاده نمائيم مانند نقشه ی خانه برای معمار و دوم اينکه مس حسب . طراحی را انجام می دهد نويسی
:ويژگی الگو ها معماريهای اثبات شده برای طراحی نرم افزار - کاهش فرآيند پيچيدگی - نشان دادن اشکاالت موجود در طرح - لغت نامه مشترک در طراحی - -. ..
: UMLموجود در ) دياگرام ها (انواع نمودار
به دو دسته کلی تقسيم بندی می شوند ) ساختاری ( ساختار سيستم -١ )رفتاری ( رفتار سيستم -٢
Diagrams
Class Diagram دياگرام های ساختاری
Object Diagram
Component Diagram
Deployment Diagram
StateChart Diagram دياگرام های رفتاری
Activity Diagram
Collebaration Diagram
Sequence Diagram
Use-Case Diagram
اما خالصه ای از برخی . کليه دياگرام های ذکر شده در فصول آتی بصورت مفصل شرح خواهيم داد . دياگرام های عمده را برای ايجاد ذهنيت ذکر خواهيم نمود
Class Diagram. بين آنها خواهيم داشت روابط ها و کالس در اين دياگرام ما
Object Diagram از لحظه اشيا موجود در يک اين ساختار به مانند عکس گرفتن از اشيا می باشد که برای نمايش دادن
. سيستم می باشد
Component Diagram.کاهش پيچيدگی سيستم می باشد نمايش بسته ها و اجزايی به مانند کالس ها در آن می باشد و مزيت آن
Deployment Diagram هايی که در آينده قرار است اين نمايش دادن وضعيت نهايی عملياتی نرم افزار و نمايش دادن زير ساختار
ن منبع اجرا خواهند شد نرم افزار روی آن نصب و اجرا شود و سخت افزار و حافظه در کجا از اي . برای ما مدل می کند
StateChart Diagramدياگرام وضعيت برای نمايش دادن وضعيت اشيا موجود در سيستم
Activity Diagramاست ولی با يکسيری تفاوت نمودار فعاليت که رفتار يک شی را مدل می کند و معادل همان فلوچارت
جزيی در ساختار و هدف
Use-Case Diagram.مايش می دهد ليست تمامی کارهايی که يک کاربر قرار است انجام دهد با اين سيستم ن
Collaboration Diagram. باشد نمودار همکاری برای شفاف کردن ارتباط اشيا و تاثير آنها روی هم می
Sequence Diagramموقعيت با توجه به زمانبندی بايد نمودار مرحله يا فاز برای نمايش دادن زمانبندی نمودار ها که در يک
.چه کارهايی انجام شود
Classدياگرام ها دياگرام ذکر شده سه ديگرام ديگر نيز وجود دارد که از مهمترين اين ٩بغير از . دياگرام می باشد
Part I: Getting Started
فصل اول
مدل
Why We Model ?
UMLتاريخچه متدلوژی مختلف ۴٠ حدود ٩۴ تا ٨٠ متدلوژی بوجود آمد و در ٨٠ تا ٧٠ از دهه ی
از معروف ترين اين در دنيا ايجاد شد که اين متدلوژيها متناسب با نياز ها می بود سه تا که هر کدام در يک قسمت قوی بودند OMT و OOSE و Boochمتدلوژی ها ، متدلوژی
ارائه شد و چيزی که مد نظر ماست UMLکه در نهايت با پيوستن هر سه بهم متدلوژی . می باشد Booch نقطه قوت UMLدرمتدلوژی
: اهدافی از قبيل زير دنبال می کردند UMLهر سه نفر برای ايجاد ايجاد ابزار مدلسازی برنامه نويسی شی گرا ) ١ قابل توسعه بودن ) ٢ . ايجاد مدلی ساده به نحوه ای که قابل فهم انسانها و ماشين ها باشد ) ٣
در نسخه های UML بوجود آمد که خود ١٩٩۵ بود در سال UM که به نام UMLاولين نسخه ی .بعدی ايجاد شد
نسخه ی ١٩٩٧ با دادن پيشنهادی به اين گروه سه نفره و با پذيرفتن آنهادر سال OMGشرکت UML 1.0 ايجاد شد و اين کتاب در مورد UML می باشد ١٫٣ نسخه .
چرا ما مدلسازی نياز داريم ؟
برای سگ مان با يک مثال ساده اين مسئله را توضيح خواهيم داد به فرض اگر بخواهيم
خواهيم اين يک کلبه بسازيم و در نهايت روز به روز بدون طرح و برنامه ی اساسی بهايت اين بنا کلبه را توسعه دهيم تا اينکه به يک آپارتمان تبديل شود مسلما در ن
.ساخته شده خراب خواهد شد بخواهيم نرم افزار در مورد نرم افزار نيز به همين شکل است اگر بدون مدل و طرح اوليه
خواهيد رسيد که ساده ی توليد شده را توسعه دهيم و در نهايت اين نرم افزار به جايی .درون خود خراب خواهد شد
که بتوانيم باصرف بنابراين بايد يک مدل از پيش تعيين شده ای برای آن وجود داشته باشد .يش نيايد کمتر اتالف وقت مدل خود را توسعه داده که در آينده برای آن مشکلی پ
مدل چيست؟ A model is a simplification of reality.
.ت سمدل يك ساده سازي از واقعيت ا مسايلي آه تاثير زيادي روي له و تاآيد زياد رويئجدا سازي يك جزييات بي تاثير مس
.برنامه ما دارند
:مدل سازي هدف از .ن آار مي آنيم برسيم مدل ها را انجام مي دهيم تا به يك درك و فهم بهتر ازسيستمي آه با ا
:اهداف مدل سازي .تصوير در اوريمبه ما آمك مي آند تا ان سيستمي را آه مي خواهيم را به -١ .ساختاري مشخص آنيم به ما اجازه مي دهد تا سيستم را به لحاظ رفتاري و -٢ .يك الگوي است براي طراحي ساختمان سيستممان -٣ مي گيرد را مستند مي تصميماتي آه در زمان طراحي و تجزيه و ساخت سيستم انجام -۴ .آند
:اصول مناسب در مدل سازي
مدلي آه براي سيستم انتخاب مي شود بايد تاثير -١اصل .مستقيمي روي نتيجه جوابي آه بدست مي ايد داشته باشد
.باشد هر مدل مي تواند در سطوح مختلفي براي بيان جزييات -٢اصل.باشد بهترين مدل ان مدلي است آه منطبق و متصل با واقعيت-٣اصلهمكاري و آمك چندين مدل به معموال با يك مدل به جواب نمي رسيم و بايد با -۴اصل
. تيجه رسيد ن
: ديد نياز داريم۵ تم هاي شي گرا بهسدر سي . ديدي است مبتني بر نيازمندي هاي سيستم -١ . مي آند فضاي طراحي و قابل حل را براي ما توصيف -٢ .فرايند ها را مدل سازي مي آند -٣ .آمك و انها را مدل سازي مي آند در پياده سازي قطعات فيزيكي به ما -۴.آند محيط ساخت و عملياتي را مدل سازي مي -۵
: در تجزيه و تحليل دو ديدگاه وجود دارد شي گرايي - ١ ساخت يافته - ٢
فصل دوم
UMLمقدمه
Introdaction the UML
UML زباني است براي:
Visualizing وردنآبه تصوير در - ١ Specifyingمشخص آردن - ٢ Constructingساختن - ٣ Documentingمستند آردن - ۴
UML ای در کنارهم زبان مدلسازی نرم افزاری برای نمايش اين لغت نامه و قواعد ی که بر.قرار دادن اين اجزا می باشد
)visualizing( وردنآبه تصوير در -١
UML در رابطه با عدم عدم استفاده از ايراد هاي موجود در اين بحث :شامل
پس.در ذهن خود مفاهيم و آد ها را در نظر گرفته ايم - ١ انتقال مفاهيم با استفاده از آد به ذهن ديگران نكته منفي .و ايراد بدي است
مفاهيم را بايد غير مستقيم استنتاج آرد و اين ايراد - ٢ .ديگري است
راه حلي آه در ذهن مي باشد به صورت آد تبديل شده آه - ٣ بعد از مدتي همه داده ها به خاطر خالصه شدن در قالب آد .از ذهن فراموش شده و از ياد مي رود
به تصوير کشيدن آن در نتيجه ما به زبانی نياز داريم که برای قابل درک و فهم کردن کد و . کارما را راحتتر کند
:مشخص آردن - ٢:مشخص مي آنيم بايد UMLسيستمي آه با
. باشد آامل -٣ غير مبهم -٢ دقيق -١ :اين قسمت به دو دسته تقسيم مي شود اشيا ساختاري - ١ اشيا رفتاري - ٢
: ساختن – ٣ . حساب نمي ايد به UMLما در ساخت سيستم به ما آمك نكند ديگر UMLاگر
: دو امكان را مي دهد داريم آه به ماMapingپس در اينجا ما يك مهندسي رو به جلو) ١
forward engineering : يعنی توليد کد از مدل ايجاد شدهUML
مهندسي معكوس) ٢ Reverse engineering : يعنی از مدل به کد برسيم .
UML دهد و غير مبهم است آه سه امكان را به ما مي حنقدر سريآ :
RUNاجراي سيستم در مراحل طراحي و) ١ شبيه سازي سيستم) ٢ .سيستم ساخته شده را از نظر آيفي اندازه گيري مي آند ) ٣
: مستند آردن - ۴ بايد دستور العمل ها وآد نويس هاي خود را به صورت مكتوب .مي باشد UMLنوشت و اين آار
: قسمت مي باشد٨شامل UML در )ويژگی مستند سازی (ل مكتوبئمسا
١ – Requirment : آند نياز ها را در اورده و در برنامه ضميمه مي .
٢ – Architecture : داشته باشيم بايد ديدي از معماري و طرح آلي سيستم را .
٣ – Design : آند روابط و نيازها را در بعد طراحي مكتوب مي . ۴ - Source Code: در آنار هر آد دستور العمل ها وHelpرا بايد داشته باشيم ها .
۵ - Project Planes: انجام مي دهيم دسته بندي آارها و اجرايي پروژه را . ۶ - Tests: سيستم از اين تست ها آمك گرفته و انجام شده .
٧ – Prototyles: و برنامه خود گذاشته و مكتوب يك مقدمه و امكانات نيمه اماده روي سيستم . می کند
٨ – Released: مكتوب مي آند نسخه هايي آه از نرم افزار بيرون مي ايد را.
: نياز به شناخت سه مورد زير داريم UML برای شناخت
Building Blocksشناخت اجزا و مولفه های تشکيل دهنده قواعد بين اجزا مکانيزم کنترل زمان
نگ به صورت درختی سطح بندی شده توضيح داده شده است که به ترتيب سطح ر UMLتمامی زير ساختار : توجه : شماره گذاری تغيير می کند به اين شکل که
سطح اول سطح دوم سطح سوم
سطح چهارم سطح پنجم
شناخت اجزا و مولفه های تشکيل دهنده
اشيا
روابط
نمودار
چهار دستهرفتاری
دسته بندی
نمادهای مستند سازی
ساختاری
اسم اشيا ساختاری معادل UMLدر کالس
Class:کالس توصيف يك مجموعه
اشيانام
مشخصه رفتار
مجموعه ای از عملياتی : Inteface رابط ها است که يک کالس يا يک سرويس ويا يک
. مولفه و متد ها را مشخص می کند
تعريف : Collaboration همکاری مجموعه کننده تعامل است که اين تعامل شامل
ای از قواعد ديگر مولفه هاست که با هم بزرگتر از تشکيل دهنده رفتاری است که رفتار
. رفتار همه مولفه هاست
نمايش رفتار و مدل کردن آن …
… Use-Case : توصيف مجموعه ای از عمليات که سيستمانجام می دهد برای اينکه نتيجه قابل مشاهده
. برساند Actorبه يک عامل خاص
Active Classes : چند کالس هايی هستند که دارای يک يافرآيند يا رشته های اجرايی می باشند واز اين رو می توانند شروع کننده يک فعاليت
. کنترلی باشند
Component : مولفه شی زمان اجرا است )Package مفهوم زمان طراحی ست ولی مولفه مفهوم زمان اجراست
مولفه ، يعنی يک جز فيزيکی ) و قابل تغيير می باشد و قابل تعويض از سيستم که تبعيت می کند از يکسری
. رابط ها و پياده سازی می کند
Node : يک جز فيزيکی از زمان اجرا وجود دارد و نشان دهنده يکمنبع محاسباتی و توان پردازش داراست چنين سيستمی مقداری
. حافظه خواهد داشت Server
…
ساختاری اشيا
يعنی حرکت ها ) پويا (نشان دهنده قسمت های ديناميک ) UMLمعادل فعل ها در (:رفتاری. مدلها و پيامهايی که ردوبدل می شود را مدل می کند
. می باشد packageمهمترين شی دسته بندی : دسته بندی
Package : يک مکانيزم همه منظوره است برای سازمان دهی عناصر. باشند . . . ا در داخل يکسری گروهها اين اشيا می توانند اشيا رفتاری يا ساختاری ي
قسمت توضيحی UML : نمادهای مستند سازی
Interaction ) : تعامالت و پيامهايی که بين اشيا ردوبدل می شود (
يک تعامل يک رفتار که تشکيل شده از مجموعه ای از عوامل پيغام ميان مجموعه ای از اشيايی که داخل يک مجموعه مشخص قرار دارند و برای
. رسيدن به هدف معين می باشد Display
State Machine : يک ماشين وضعيت يک رفتار کهمشخص کننده يک توالی از وضعيت از يک شی يا
Interaction طی خواهد کرد و در طی حياتش برای پاسخ Waiting. به رويدادها
…
يک رابطه ی مفهومی بين دو شی می باشد که در حقيقت تغيير : Dependencyوابستگی روابط در يک شی تاثير می گذارد روی تعريف شی دوم
. يک رابطه ساختاری که توصيف کننده بين پيوندهاست : Association همکاری 0..1 *
employeer employee
aggregationتجمع
ترکيب
Sub کالس ، Super کالس و Subرابطه بين : Genralizationعموميت دادن Super کالس ها و Superکالس ها نوع خاصی از
رابطه . کالس هستند Subکالس ها نوع عامی از تعميم مثل حالت وراثت ميباشد بين شي پدر و شي
فرزند
يک رابطه مفهومی ميان تعريف کننده های کالس : Realization به واقعيت در آوردن . را پياده سازی و به واقعيت در می آورد Interfaceيک کالس يک
…
شود لبه اف نمايش داده می منظور از نمودار نمايش تصوير مجموعه ای از اجزا معموال بصورت يک گر : نمودار . آن اشيا می باشند و خطوط ارتباطی روابط هستند Nodeيا
ساختارسيستم
رفتار سيستم
Class Diagram
Object Diagram
Component Diagram
Deployment Diagram
StateChart Diagram
Activity Diagram
Collebaration Diagram
Sequence Diagram
Use-Case Diagram
UMLقواعد بين مولفه ها در از به قواعدی بين اين اجزا ما در مرحله قبل اجزا و مولفه ها را معرفی کرديم در اين بين ما ني
.داريم
نيز دارای يکسری قواعد بوده که اگر رعايت UMLاين قواعد در واقع مانند هر زبان ديگر . خواهد بود خوش ترکيب شوند مدل ما
)بين اجزا داخلی با هم سازگارند ( مدلی است که به لحاظ مفهومی خود سازگار : خوش ترکيب مدل
ت با بقيه مدلهای مرتبط يعنی دارای تناقض داخلی نباشد و هماهنگ اس
Namesنام ها انواع قواعد
Scopeبازه
Visibilityقابليت دسترسی
.اينکه ارتباط بين اشيا درست باشد : Intrgrityصحت
Executionقابليت اجرا
Name :نهايي است آه شما مي توانيد براي اشيا روابط ودياگرام ها بناميد آ .Visibility : قابليت دسترسي يك سري قاعده مي باشد.Integery : آالس وجود داشته باشد نآاگر يك شي از آالس ديگر مي سازيم بايد.
Execution : باشد تا اجرا شود ناظر بر اين آه يك مدل با چه نحوي ما تواند.
آيا هميشه نمودارهايمان يک مدل خوش ترکيب اند يا خير ؟
:سه حالت امکان دارد که اين مدل خوش ترکيب نباشد ١- Elided ) مخفی ( ٢- Imcomplete ) ناقص ( ٣- Inconsistent ) اشکال (
UMLمکانيزم عمومی در
Specifications توصيفات انواع مکانيز م ها
Adommentsدکوربندی
Common Divition تقسيم بندی عمومی
قابليت توسعه Extensibility Machanisms
Stereotype
Tagged Value
Constraints
د ولی ممکن است در يک مدل رسم شده بعضی از اجزای مدل از ديد ما مخفی باشن : توصيفات يحات از اينگونه در پس زمينه وجود دارند پس نياز به جای داريم که اين توصيفات و توض
.قسمت های مخفی و غير قابل ديد ذکر شود : موارد استفاده توصيفات
تست خوش ترکيب بودن مدل - توليد خود کار کد -
نمايش جزييات در مدل و اضافه کردن توصيفات گرافيکی و مستند سازی : دکور بندی
.گرافيکی بر عهده دارد
خودمان را مدل سازي آنيم و اشيا را با ما مي توانيم به وسيله ان فضاي : تقسيم بندی عمومی .توجه به اينكه جزچه آالسي هستند دسته بندي آرد
:توضيح اين قسمت با مثال می باشد
NameAddressphone
customJan : custom
: custom
Elyse
اشيا کالس مشتری
کالس مشتری
. قابل توسعه و بسط می باشد UMLخود : مثال ) :مکانيزم توسعه ( قابليت توسعه
انواع مکانيزم توسعه
Stereotype : توسعه دهنده ی لغت نامه UML
در جاوا تعريف نشده می توانيم Exception مثال شی . از اين طريق به مدل اضافه کنيم
Tagged Value : می توان خاصيت اجزاUML را ما در مولفه کالس سه قسمت نام :مثال . توسعه داد
مشخصه و رفتار داريم از اين طريق می توانيم خاصيت . به آن اضافه کنيم (version)ورژن
Constraints : محدوديت برای توسعه قواعدUML
»Exception«Over flow
: معماری نرم افزار
.سيستم مي باشد معماري جمع آردن مجموعه اي از ديدها براي يك طرح آلي از
:يک مجموعه ی تقسيمات موثر در اين اقالم است
)چيدن اجزا کنار هم ( سازماندهی سيستم نرم افزار انتخاب اجزا ساختاری و روابطی که اينها بهم متصل ميکند رفتار اجزا که مشخص کننده ی همکاری بين اجزا است ترکيب اين عناصر رفتاری و ساختاری در زير سيستم های بزرگتر )دسته بندی و سازماندهی زير سيستم ها در يک سيستم (
. الگويی که برای سازماندهی انتخاب شده است
:انواع ديدگاه نسبت به نرم افزار
:ما پنج ديد نسبت به سيستم داريم
Design view Implementation view
Deployment viewProcess view
Use caseview
نمای کاربردی
نمای طراحی نمای پياده سازی
نمای فرآيندنمای سخت افزاری
Use Case view: اين ديد کاربردی از سيستم است که اين کاربردها توصيفهايی تحليل گر کننده ی رفتارهای سيستم از تظر کاربر نهايی می باشد عالوه ر کابر ن
.سيستم خود را بايد بجای کاربران ديگر بگذارد
Design view: در اين ديد که شامل مولفه های تشکيل دهنده ی لغت نامه یو راه حلهای مسئله ... صورت مسئله پروژه از قبيل کالس ها رابط ها و همکاری ها و
Process view: اين ديد تشکيل دهنده ی فرآيندها و روش های سيستم میبحث هماهنگی يا ( در اين ديد نمايش داده می شود Threadباشد و همزمان کردن Synchronization(
Implementation view: تشکيل دهنده ای اجزا و فايل های است که از.آنها برای ترکيب استفاده می شود
Deployment view: آه مشخص مي . ديد سخت افزاری از سيستم می باشداين سيستم روي ان قرار مي گيرد به چه صورت مي باشد و از آند ساختار سخت افزاري آه .چه قطعاتي تشكيل شده است
چرخه حيات توسعه نرم افزار
. جداست UMLفرآيند طراحی از
:پرکاربرد ترين نرم افزاری که برای توسعه وجود دارد
RUP ( Retional Unified Process )
UML مستقل از توليد نرم افزار بيشترين فر آيند هايی که می توانند از UML استفاده کنند :
- Use Case گرايش به کاربرد
-Architecture-Centvic معماری محور
- Interative And ineremertal چرخشی و افزايشی
بعنوان ابزار اساسی از بنا کردن رفتار سيستم Use Case استفاده از :منظور از گرايش به کاربرد پروژه) اعضا (خواسته شده برای تست و اعتبار سنجی سيستم و ايجاد ارتباط بين اجزای
يعنی از معماری سيستم استفاده شود برای ايجاد مفاهيم ساخت و :منظور از معماری محور بودن . مديريت و توسعه سيستم در دست ساخت
. اينکه بتوان استفاده دوباره از سيستم و توسعه آن :منظور از فرآيند تکراری و چرخشی و افزايشی
را توليد آند آه هر نسخه نسبت به فرايند بتواند يك جرياني از نسخه هاي قابل اجراي برنامه يعني .پوشش دهد امكانات افزوده داشته باشد و نيازمندي هاي بيشتري را نسخه قبلي يك سري
. مزيت تکراری و چرخشی و افزايشی ريسک گرا بودن نبست آبشاری
. شده است فازبندیچنين فرآيندی يک فرآيند عه خوش تعريف از محدوده ی زمانی ميان دو قسمت اصلی از فرآيند می باشد وقتی يک مجمو : فاز
يمات اتخاذ می اهداف بدست می آيد و مجموعه ای از کار ها تکميل می شود و يکسری تصم .يا يک مجموعه خوش ترکيب می باشد .شود که آيا امکان انتقال به فاز بعدی هستيم يا خير
: فاز تقسيم بندی می کنند ۴ فرآيند را به RUPدر Inception آغازی -١Elaboration شناخت -2Constraction ساخت -٣ Transition انتقال -۴
آغازی شناخت ساخت انتقال
Inception) آغازين ( اولين فاز فرآيند رسی می شود که اين اولين جرقه ی پروژه زده می شود و پروژه می رود که شکل بگيرد بر
.پروژه شدنی است يا امکان آن وجود ندارد
Elaboration) شناخت ( دومين فاز فرآيند ساس آن معماری شکل می گيريد در اين فاز ديد از محصول و ديد از نرم افزار کامل شده و بر ا
) نيازمندی کلی يا جزی (وليست نيارمنديها در می آيد و اولويت بندی و برنامه ريزی می شود . ر کردی سيستم می باشد هر کدام از اين نيازمنديها مشخص کننده يک رفتار کار کردی يا ير کا
Constraction) ساخت (سومين فرآيند در اين قسمت مديريت پروژه . در اين مرحله معماری بوجود آمده به اجرا مرحله ساخت برسد
. بسيار مهم است
Transition) انتقال (چهارمين فاز فرآيند در اين قسمت تست انجام می شود و همچنين . فازی که نرم افزار به دست کاربر نهايی می رسد
Deployment نيز صورت می گيرد .
يکسری يک مجموعه مجزا از فعاليتهاست که با يک برنامه از پيش تعيين شده و : يک چرخشی . باشد معماری های ارزش يابی است که نتيجه آن نسخه ی جديد از نرم افزار می
Interation : يك سري معيار هاي ارزيابي آه مجموعه اي از فعاليت ها در يك برنامه مدون وتوانند نسخه هاي نرم افزاري نشان داده مي شودآه اين نسخه ها مي نتيجه اش به صورت يك سري
.آامپيوتري باشد براي يك شرآت آامپيوتري و يا براي يك آاربر
فصل سوم
مثال
Hello, World!
چکيده های کليدی :در اين مثال می خواهيم قطعه کدی به جاوا بنويسيم که
: کد اپلتی بنويسيد که در مرورگر وب ای جمله را چاپ کند
import java.awt.Graphics;class HelloWorld extends java.applet.Applet { public void paint (Graphics g) { g.drawString("Hello, World!", 10, 10); }}
: مدل کنيم UMLاکنون برنامه ای که نوشته ايم می خواهيم در
()Paintو دارای يک متد به نام HelloWorldدر اين مدل ما يک کالس داريم به نام
اين متد متن مورد و يک مولفه توضيح داريم که به متد کالس مرتبط است و نشان می دهد که . نظر را چاپ می کند
: اکنون ارتباط ها را مدل می کنيم
Graphics و Applet به دو کالس HelloWorldهمان طور که در شکل فوق می بينيد که کالس Applet فرزند کالس HelloWorldارتباط دارد ولی نوع ارتباط آنها فرق دارد از يک طرف کالس
به اين معنی که . رابطه يوابستگی وجود دارد Graphicsمی باشد و از طرفی ديگر کالس ما با کالس . استفاده می کند Graphics از کالس HelloWorldکالس
بين آنها می خواهيم اين وراثت همان طور که در جاوا خوانده ايم در رابطه کتابخانه کالسها و وراثت : چه جايگاهی دارد به شکل توجه کنيد HelloWorldرا مدل کنيم در حينی که ببينيم کالس
panelوpanel فرزند Applet و Applet فرزند helloWorldهمانطور که مشاهده می کنيم کالس Interfaceکه خود پياده سازی Component فرزند کالس Container و Containerفرزند
،ImageObserver می باشد و از طرفی Component فرزند کالس پدر Object می باشد .
: به تصوير بکشيد در کالس دياگرام Packagingشما قادر هستيد بسته بندی
وابستگی دارد و از طرفی package Applet به HelloWorldآنچه را که می بينيم کالس Package Applet خود نيز بعنوان زير مجموعه ای از Package Java می باشد و از طرفی
. وابسته استlang و awt های packageبه Package Appletديگر خود
مکانيزم ها
يزم دياگرام را نشان می دهد وارد جزئيات نمی شويم فقط بطورکلی يک مکان Sequenceاين يک ديگری اجراشده و اين چاپ راشرح خواهيم داد در اين ديگرام ما چهار شی داريم که يکی پس از
. مستطيل های ايستاده نشان دهنده بازه زمانی که يک شی فعاليت می کند
مولفه ها
Part II: Basic Structural Modeling
فصل چهارم
آالس ها
Classes
آالس چيست؟ ها آه از نظر objectنشان دهنده مجموعه اي از .مولفه اصلي سازنده سيستم هاست
Operation ن يك آالس توليد مي شود آهستند آه به جاي مفهوم و غيره مشابه رفتار.
آه تاي از اشيا اس توصيف مجموعهساين آال . مهمترين اجزاي سيستم هاي شي گراست.و مفهوم مي با شد مشخصه ها ارتباطات و انجام عمليات نام ، داراي
Shape
OriginMove()
Resize()Display()
نام
Name مشخصه
Attributes
رفتار
Operation
:کالس شامل اجزا زير می باشد Name نام کالس از يکسری حروف و ارقام وعالئم تشکيل شده که به حروفشروع : نام
.شده و اين حروف قاعدتا با حف بزرگ و بقيه کوچک می باشد . تعريف می شود بايد منحصر به فرد باشد Package نام کالس که در
: به شکل ساده و نام های با مسير نمايش داده می شوند UMLکه در
تنها نام کالس نام کالس و مسير
Attribute مشخصه ها
. نيز در آن مشخص شودمشخصه های يک کالس می تواند عالوه بر خود مشخصه جنس يا نوع و مقدار
تنها نام مشخصه
عالوه بر نام ، جنس و مقدار
Operation عملياتيا مقدار برگشتي استفاده در اين جا مي توان از اسم متد به اضافه ليست پارامتر ها ) رفتارهای کالس (
.آنيم
بدون پارامتر
با پارامتر دريافتی و مقدار برگشتی
:دو روشی که می توان يک کالس را از لحاظ دسته بندی توسعه داد
.در قسمت چهارم است وليت ئ مسمي توان يكل آالس را به چهار قسمت تقسيم آرد آه Comment يك ندارد و مثل مفهومي در خود آالس هيچ تاثير Responsibilityوليت يا ئمس.در آالس مي نويسد Node باشد و فقط يك يادداشت و مي
وليت ئوقتي مس.دارد وليت ئوليت و حداآثر ده مس ئيك آالس حداقل يك مس :نكته.شود مشخص شود بعد خصوصيات و عمليات مشخص مي
: قدم هاي مدل آردن سيستم
: اعمال آرد براي مدل آردن لغت نامه سيستم مي بايست قدم هاي زير را
له و راه ئو مسخود مشكل له به دنبال آلماتي بگرديم آه توصيف آننده ئدر صورت مس -١ نها آ Abstractionاز با استفاده .آرده و بعد جدا مي آنيم ان ها را پيدا.ن باشدآحل هاي
)استخراج اسامی کالس ها و اشيا ( .يي آه الزم است را جدا مي آنيم
در اين جا بايد براي براي يك ديد و . آنيم ميوليت تعريف ئيك مس Abstractionبراي هر ديد و -٢ هر آالس چه مي وليت ئ بايد مشخص شود مس.وليت ها را برايش تعريف آرد ئاز مس آار مجموعه اي
باشد؟
٣-Operation ها وAttribute وليت به ان نياز دارد را به ئن مس آ را آه آالس براي انجام ها.ان اضاف آرد
هم دارند را از هم جدا آرده و در يك در اخر آالس هايي آه ارتباط معنايي و مفهومي زيادي با -۴Packageقرار دهيم و دسته.
سيستم انبارداری و فروش : مثال
: در سيستم وليت هاي مدل سازي يك آالس ئ مسعيزتو
يك رفتار مشخص نشان دهند يك مجموعه اي از آالس ها را آه با هم آار مي آنند تا -١ .را مشخص آنيم
باشد؟ مشخص آنيم مسيوليت هر آالس در ان رفتار چه چيز مي -٢وليت مرآزي دارد بايد ئمس وليت روي يك آالس شديد باشد به نحوي آه يك ئاگر مس -٣وليت آن باشد بايد تقسيم را به ئاگر مس.تقسيم شود وليتئن آالس شكسته شود تا مس آ
.وليت متعادل و دقيقي برسد ئرساند تا به هر آالس مس اعتدال
Modeling Nonesoftware things
. اشيايی که در آينده مدل نرم افزاری نخواهند داشت :تعريف اشيا غير نرم افزاری
انجام داد؟ براي مدل آردن اشيا غير نرم افزاري چه اعمالي بايد
.مي توان ان ها را به صورت يك آالس استفاده آرد -١ جديد براي نمايش ان شي استفاده يك بالك يا مولفه Stereotypeمي توان با استفاده از -٢
. )تصويري ان را در برنامه مشخص آرد icon به وسيله دادن(آرد.ن ها را مدل آرد آNode اگر اشيا ي سخت افزاري مي باشد مي توان به وسيله -٣
سفارش شده شخصی که مسئول بر چسب زدن آدرس پرينت شده از پرينتر بر روی اجناس :مثال .از طريق اينترنت می باشد
Modeling Primitive types
:انجام مي دهيم در مدل آردن نوع هاي اوليه بوسيله دو روش آار را
Enumeratبا استفاده از -١ types آه به سويStereotype تغيير مي آند.
Enumeratآه به سوي Stereotypeبا استفاده از -٢ types تغيير مي آند.
>>ايام هفته << ليست کردن نام تمام ايام هفته
: داريم enum به نام ١٫۵مدل کردن برای انواع شمارشی در جاوا
)CookCookدر منبع (: به شکل زير داريم
Public enum Media {book, music,cd,music-viny1, movie
}
:نتايج و نكات آلي
تجريد باشد از يك يا Abstractionآالسي است آه بايد يك :يك آالس خوي ساخت *.متن دقيق يا در يك سوال يا در يك جواب
مسيوليت ها را يك آالس خوش ساخت بايد يك مجموعه آوچك و خوش تعريف از *.جواب دهد داشته باشد آه بتواند ان ها را به خوبي
پياده سازي در يك آالس خوش ساخت يك خط مشخص براي آالس بين مشخصات و *.وجود دارد
همچنين قابل تلفيق يك آالس خوش ساخت بايد قابل فهم و ساده و قابل توسعه و *.باشد
: UMLبراي رسم آالس در يك نمودار
ن آ.دهد ها را نمايش Attribute ,ها Operation,ها Propertyن آ-١Property نموده جوري آه ان هايي آه هايي آه الزم و ضروري مي باشد را ذآر
.نگه دارد الزم است نياز برنامه باشد را
نوع مديريت در ها را بايد به Operation ,ها Attributeليست طوالني از -٢.بياييم ان ها را دسته بندي آنيم يا اينكه همه را ذآر نكنيم يا اينكه.وردآ
.دهيم نمايش Diagramآالس هايي آه به هم مربوط هستند را دريك -٣
فصل پنجم
ارتباطات
Relationship
Relationship در مدلسازی شی گرا سه ارتباط بسيار مهم داريم . بين اشيا است ارتباط و تعميم association همکاری ،dependency وابستگی که شامل ارتباطهای
generalization که بصورت گرافيکی يکسری خطوط ارتباط هستند که از . می باشد .مسيرهای مختلفی می گذرند و شکل های متفاوتی دارند
چيست؟ ( Dependency )وابستگي
يعني تغيير در يك . باشد وقتي آه يك شي از لحاظ معنايي وابستگي به شي ديگري داشته .به همان شي در شي وابسته ديگر گردد شي مستقل باعث تغيير در شي مرتبط
آمده که اين وابستگی شی را بيان ) مستقل(در پارامتری از متد شی ) وابسته(اسم شی .می کند
شی به عنوان پارامتری در يک
متد
شی
آالس به صورت بيشترين حالت وابستگي مربوط به حالتي است آه شي اي از يك .پارامتر در متد آالس ديگر باشد
تنها حالت اسم گذاري موقعي است . معموال اسمي براي وابستگي ها ذآر نمي شود.وابستگي وجود داشته باشد آه بين دو آالس چندين
چيست؟( Generalization )تعميم
.مي باشد Super classو Sub classرابطه اي آه بين يك .مشخص مي آنندIs-aن را اصطالحا با آ
کالس ريشه
کالس برگ
. ها نيز اعمال کرد Packageاين رابطه نيز می توان عالوه بر بين کالس ها بين
Subاز جنس Super classاست ولي Super classاز جنس Sub class: نكتهclass نمي باشد.
فقط صفر حالت Objectآالس يك آالس مي تواند صفر يا يك حالت يا والد داشته باشد.يا والد دارد
Finallدر جاوا آالس برگ را با آلمه .آالس پايه آالسي است آه هيچ والدي ندارد.نشان مي دهند
Final class آالس هايي هستند آه در جاوا نشان دهنده والدهايي است آه هيچ فرزندي .ندارند
چيست؟(Association)همكاري .همكاري و وابستگي مي توانند انعكاسي باشند
.يك شي مي تواند همكار ي و وابستگي به خودش داشته باشد نيست يعني نمي تواند Reflectiveرابطه همكاري و وابستگي
.از خودش به ارث ببرد
:تعريف همكاري مي توانيم به آالس ما يك رابطه ساختاري است آه مشخص مي آند با داشتن اشيا يك
که رابطه اشيا موجود که نشان دهنده تعداد اشيا درگير در ( شي يك آالس ديگر برسيم) .دو طرف با کليه مشخصات عمومی
:رابطه همکاری به چهار شکل زير نشان داده می شود
رابطه همکاری با نام و جهت ارتباط : ١نمونه
دو طرفنقش رابطه همکاری با : ٢نمونه
در همکاریتعددرابطه همکاری با نقش دو طرف و : ٢نمونه
Super classازSub class وليخبري ندارد Sub class ازSuper class .خبر دارد
شود آه اين گفته را حرآت آردن از يك شي شروع مي شود و به يك شي ديگر ختم مي Navigation بين پس بايد تفاوتي .مي نامندnavigation وassociation وجود
.داشته باشد
چيست؟ ( Aggregation )تجمع
.نوع خاصي از همكاري است Association باشد مي تواند حالت ساده باشد يعني در يك سطح.
.جز به آل حالت: اما حالت ديگر مي تواند در سطح باالتري باشد يعني
.طرف آل استفاده شود براي نمايش ان از يك لوزي دربه اين معني آه .باشد ميComposition aggregationاگر اين لوزي تو پر باشد
.مي باشد اين رابطه جز در رابطه آل ما ضروري
نکات و تکنيک هايی که در روابط بايد رعايت شوند
:Dependencyمدل کردن وابستگی
.در اين قسمت موضوع وراثت يگانه نيز مطرح مي باشد
:وراثت يگانه بايد سه قدم را انجام دهيم براي مدل آردن
و Operationو Attribute در به اشتراك . بايد به آالس ها نگاه آنيم Responsibility ن ها مي باشد؟ آبين يا اشتراآي آ. نگاه مي آنيم
را از دل ان ها اگر آالسي وجود دارد مطالب مهم . اين آالس را مشخص مي آنيم .مرآز مي گيريم بيرون مي آشيم و ان را به عنوان پايه و
ن گاه آ.انتخاب مي آنيم Parent يك آالس را بيرون مي آشيم و ان را به عنوان .فرزند هاي ان والد انتخاب مي آنيم ديگر آالس هاي موجود را به عنوان
)هر کالس نبايد مسئوليت های زيادی انجام دهد ( نبايد خيلی عميق وگسترده باشد . باشد Level ۵درخت وراثت نبايد ارتفاع آن بيشتر از نها را به آالس آرا مشخص مي آنيم و Super classوSub classارتباط
. جديدي آه ما ساخته ايم مدل مي آنيم
:مدل آردن ارتباطات ساختاري
Generealization وRelationshipاما يك ارتباط يك طرفه استDependencyيك رابطه دو طرفه است.
ارتباط است تفاوت عمده ی بين وابستگی و عموميت دادن با همکاری يکطرفه بودن اين .فه می باشد که در همکاری اين ارتباط دوطرفه ولی در وابستگی و عموميت دادن يکطر
: بايد انجام داد براي مدل آردن ارتباطات ساختاري مراحل چهاگانه رير را ايا الزم است از يك شي از بررسي مي آنيم آه.دو آالس را در ابتدا انتخاب مي آنيم
يك آالس به يك شي از آالس ديگرحرآت آنيم يا نه؟ داده گرا يك ديد .بين ان ها رسم ميكنيمAssociationاگر نياز وجود داشت يك
.بين ان ها توليد مي آنيم
اشيا دو آالس ارتباط يا براي هر جفت از اشيا ي سيستم بررسي مي آنيم آه ايا بيناست يا نه؟Dependencyتعاملي آه در تعاملي وجود دارد غير از ان
و آال ديد Association اگر غير از اين تعامل ارتباط ديگري باشد ان مي شود . را در ان تعريف مي شودرفتار گرا
. را بيان آنيمAssociationبايد مشخصه هر
Aggregationنشان دهنده Associationدر قدم اخر بايد بياييم نگاه آنيم ايا اين است يا نه؟
Aggregationرا با دادن يك لوزي شكل و ساختار Association اگر بود .در مي اوريم
ری اين رابطه ی و همچنين در گام چهاربايد تعدد را مشخص کرد که در ارتباط همکا Aggragation يم که با لوزی تو خالی نمايش داده و در کنار کل قرار می ده
که با Compsitionنوع ديگر ارتباط همکاری که شديدتر می باشد رابطه ی ترکيب .لوزی تو پر نمايش داده می شود
گفته می compsitionيک مدرسه حتما بايد کالس ، دفتر داشته باشد به اين رابطه :مثال Aggragationابطه شود ولی هر مدرسه ميتواند مدرسه دانش آموز نداشته باشد که به اين ر
.گفته می شود
compsition رابطه
Aggragationرابطه
: تانك
داريم مدل مي آنيم از وابستگي زماني استفاده مي آنيم آه ارتباطي آه ما .ساختاري باشد
.درسيستممان باشد is-aزماني از وراثت استفاده مي آنيم آه يك رابطه
.استفاده آرد Aggregationوراثت چند گانه را مي توان از رابطه
.از وراثت چرخشي بپرهيزيد
.ل نگه داشتن درخت وراثت مي با شد دمتعا
عني اينكه يبودن درخت مسطح.درخت وراثت نبايد خيلي عميق و نيز خيلي مسطح باشد . باشند objectهمه فرزند ها فرزند
اگر . وجود دارد درخت پر عمق درختي است آه اختالف جزيي بين پدر و فرزند ۵مقدار سطح در اين درخت . مي شود اختالف بين ان ها بيشتر شود عمق درخت آم
.مي باشد
. آنيم از همكاري براي نشان دادن ارتباطات ساختاري استفاده
: UML براي رسم اين آالس در Oblique line در اينجا داريم آه:
.مي توان اين خطوط را مايل وافقي و يا عمودي رسم آرد .منسجم و به صورت منظم از اين دو ساختار استفاده آرد
به وسيله خطوط.مزيت خطوط افقي و عمودي در زيبايي ان است.نمايش داد عمودي و افقي مي توان ساختار را به صورت زيبا و خوبي
.صرفه جويي مي شودمزيت مايل در اين است آه جاي آمتري مي گيرد و در فضا
به صورت منسجم و منظم معموال از هر دو خط مي توان استفاده آرد به شرط اين آه .باشد
.بايد آاري آرد آه در ان خطوط همديگر را قطع نكند
خطوطي را رسم آنيم آه در ان.را در نظر بگيريمAbstractionدر رسم خطوط بازنيازي به Abstractionرسم خطوطي آهضروري است و ازAbstractionاز نظر
.ان ندارد بپرهيزيم
فصل ششم
مکانيزم های عمومی
Common Mechanisms
Notes
:در اين فصل خواهيم خواند
Stereotypes, tagged values and constraints
Modeling comments
Modeling new building blocks
Modeling new properties
Modeling new semantics
Extending the UML
Note : ) يادداشت ها (نت منحصر به اجزاي عناصر ديگر يك نمايش گرافيكي براي نمايش محدوديت ها يا توضيحات
.است .خم شده است نشان مي دهند معموال نت ها را با استفاده از يك مستطيل آه گوشه هايش
: Tagged value آاربرد هاي افزودن يك سري مشخصات جهت توليد آد - ١ مشخص آردن يك سري تنظيمات پيكر بندي - ٢
توسعه دهيم می توانيم يک بالک سازنده UML لغت نامه Stereotypesما با استفاده از که در text آن يک Stereotypesاضافه کنيم ساده تر ين حالت UMLجديد به
.گيومه قرار ميگيرد
Constraints و Tagged Values و Stereotypes : در شکل زير
. در نظر گرفته می شود package نمی آيد يک شکل Stereotypes اگر :روش اول خواهيم داشتUML برای نمايش آن استفاده از آيکن توسعه مشخصه های داخل :روش دوم
قرار می گيرد نوشته ميشود زير نام { }و از نظر گرافيکی به صورت يک رشته که داخل اضافه کرد که به UML يک مجموعه قاعده جديد به constraintعنصر ما می توانيم
ل که که اگر روی کالس اعمال شود در کنار آن وارد می کنيم مانند مثال قب { }صورت .روی يک رابطه همکاری اعمال شده است
.که ندارد source ها اگر بخواهيم از آن کد توليد شود هيچ تاثيری در Noteدر مورد
آدرس اينترنتی text ساده : Noteانواع
حاوی فايل توضيحات
وجود دارد که به اين صورت است که ما Nodeعالوه بر سه نوع قبلی يک نوع ديگر :می توانيم توضيحات زير خود عناصر اضافه کنيم
توضيحات
Stereotypes ها : و به يک بالک جديد اضافه UML را گشترش ميدهيم گرفتن يک بالک از UMLبا آنها
تغيير شکل که با استفاده از – اضافه کردن محدوديت ها – خواص جديد –کردن .يک آيکن صورت ميگيرد
) سه نوع : ( Stereotypesانواع
:مثال .طی مدل سازی بوجود آمده و ممکن است بعدا از بين برود ميانه توضيح
:انجام داد براي مدل آردن مولفه ها و بالك هاي جديد سه قدم را بايد
اگر در انجا نبود و در بايد مطمين باشيم آه اين مولفه در مدل وجود ندارد و -١stereotype هم نبود بايد يكstereotype براي اين آار يك . جديد اضافه آنيم
و به ان آه به ان مولفه نزديك است را انتخاب آنيم stereotypeيك مولفه ياجديد stereotypeبراي ايجاد مولفه يعني از وراثت.چيزهايي آه الزم است را بدهيم
.استفاده آنيم ٢- tagged value آه بسيار در پروژه استفاده مي شود را بهstereotype ها
. تبديل آنيم
. از يك ايكن تصويري استفاده آنيم stereotypeبراي يك -٣
اضافه کردن -۴
. دقت نياز دارد stereotype جهت استفاده از .استفاده نشود stereotype توجه شود زياد از
.از تيم و مربی ايجاد کرده stereotype از :مثال
: بايد اقدام به اعمال زير آرد يا خواص براي مدل آردن پروپرتي ها
مي خواهيم بيان آنيم براي پروپرتي هاي جديد اول دقت مي آنيم ان مطالبي آه -١ رفته UML هاي خود Tagged valueاگر نبود به نباشد UMLجزاستاندارد هاي
مشخص آنيم آه مي بايست را ايجاد آنيم Tagged valueاگر ان جا هم نبود بايد ان.آنيم آه ان را مستقيم به مولفه اضاف
را به ان اضافه مي Tagged valueجديد تعريف مي آنيم و ان Streotypeيك -٢.آنيم آه به صورت غير مستقيم است
ان مدل است نبايد در مربوط به خودTagged valueاگر مدلي داريم آه يك سري -٣. دستكاري آنيم Tagged valueان
:مثال حتی المکان از . می باشد version قرار دادن Tagged valueيکی از موارد
.حالت پيش فرض استفاده کنيم
: براي مدل آردن توضيحات چهارقدم را بايد انجام داد
اگر هم .ذآر آنيم توضيح مورد نظر را در محل نزديك به همان محل در مستطيل -١با خطي ان نقطه را به توضيح مورد نظر بخواهيم با دقت بيشتري ان را معلوم آنيم
. وصل مي آنيم
است را قرار دهيم و بقيه سعي آنيم آه توضيحات اصلي آه براي برنامه نويس جالب -٢. را مخفي نگه داريم
. استفاده آنيم مي توانيم براي مشخص آردن روند اجراي پروژه از توضيحات -٣
از توضيحات براي مشخص آردن تصميماتي آه مستقيما از خود -۴. مدل قابل فهم نيست استفاده آرد
:مدل کردن مفهوم و قاعده جديد
؟ هستند يا نهUML کنترل کنيم که آيا اين محدوديت جز محدوديت های عمومی -١ . اگر اين محدوديت نبود در اينجا بايد خودمان قاعده را تعريف کنيم -٢
{ }آن محدوديت کنار جايی که می خواهيم محدوديت ايجاد کنيم در يک .قرار می دهيم
. استفاده می کنيم OCL اگر بخواهيم دقيق تر بنويسيم اين قاعده و محدوديت از :مثال
:ما سه نوع محدوديت داريم آه به ترتيب شامل
.روي يك مولفه آار مي آند : ساده -١. آند روي دو مولفه و ترآيبي از چند عنصر آار مي: ترآيبي -٢ .نوشته مي شود OCLآه با: دقيق -٣
:در رابطه با مدل آردن محدوديت ها
وجود دارد يا UMLقواعد ببينيم آه ايا ان قواعد مورد نظر در خود :در مرحله اول -١نه؟
.برويمUMLاگر نبود به محدوديت هاي استاندارد .اگر ان جا هم نبود بايد يك محدوديت جديد اضاف آنيم
اگر بخواهيم محل ان محدوديت را دقيق ترمشخص آنيم مي توانيم از :در مرحله دوم -٢. استفاده آنيم ................. نقطه چين
در صورتي آه بخواهيم به صورت دقيق ترمفهوم محدوديت را بيان : در مرحله سوم -٣.استفاده مي آنيم OCLآنيم از
: چهار مدل يادداشت داريم : نكته يادداشت ساده -١دهيم linkزماني آه مي خواهيم توضيحات را -٢.زماني آه حجم زيادي را از توضيحات نياز داريم -٣.نند اسم باشند و هم بدون اسم انت هايي آه در پايين يك بالك اضافه مي شوند آه هم ميتو -۴
UMLبا خود زماني از توضيحات استفاده مي آنيم آه مطلب را نتوانيم :نکته .نتوان نوشت UML يا توضيحاتي را بنويسيم آه با خود . بيان آنيم
مختلف را به مي توانيم توضيحات را در يك محل بياوريم و بعد قسمت هاي :نکته .به يادداست ها وصل آنيم linkوسيله
و stereotype وtagged valueوقتي مي خواهيم يك مدل را با constraint
:گسترش داد بايد شش نكته را انجام داد
گروه آه مي خواهيم با هاي مشخص براي يكstereotypeتوافق براي استفاده از . هم يك مدل ايجاد آنيم
و stereotype وtagged valueاز اسم هاي آوتاه براي نامگذاري constraint
.استفاده شود
ضعف استفاده از انها در .شود براي رسم سه مولفه از ايكن هاي گرافيكي آمتر استفاده .قابل انتقال نبودن ان هاست
. استفاده آنيم OCLبراي بيان دقيق محدوديت ها از
رنگ ها باشد .براي استفاده از رنگ ها از رنگ هاي منسجم و معنا داراستفاده شود .سازگاري داشته باشند
.از ايكن هاي گرافيكي ساده استفاده شود
فصل هفتم
ها دياگرام
Diagrams
دياگرام چيست؟
. را نمايش داد سيستمسازندهن مي توان اين مولفه هاي آوسيله اي است آه از طريق
:دو گونه هستند umlمولفه هاي عمده دراشيا * ارتباطات *
به صورت گراف است و اشيا دياگرام يك نمايش گرافيكي از مجموعه اي از عناصر است آه .مي باشندنود ها و ارتباطات لبه هاي ان
انتخاب . نی باشد دياگرام خوب دياگرامی است که برای توسعه سيستم قابل فهم و نزديک شد واالت صحيح در مجموعه ای درست از دياگرام ها برای مدل کردن سيستم و برای پرسيدن س .اشد رابطه با سيستم و راهنمايی برای روشن کردن يک دليل تضمينی و محکم ب
سيستم چيست؟دادن به يك نياز سازماندهي شده سيستم هاست آه براي پاسخزيك سيستم مجموعه اي است ا
.نمايش داده مي شود و با مجموعه اي از مدل ها
زير سيستم چيست؟
مشخصه اي از رفتارهاست آه توسط يك زيرسيستم يك دسته بندي از اشيا است آه تعيين آننده .شودعناصر دروني ارايه مي
مدل چيست؟
از )جدا کننده با دنيای پيرامون ( بسته است آه از لحاظ مفهوم )Abstraction( تجريديك مدل يك. ساده سازی از واقعيت است و. سيستم استلحاظ
و حذف موارد غير ضروری و در . مي آند به لحاظ معنايي تجريدي مرز سيستم را مشخص به فهم سيستم می يک ديد خاص نمايش مستقلی از سيستم به ما می دهد و هدف آن کمک کردن
. باشد
ديد چيست؟ روي يك نقطه نمايشي است به سازمان و ساختار مدل يك سيستم آه viewيك
.خاص ازسيستم تمرآز دارد
:پنج ديد اصلي در سيستم وجود دارند آه عبارتند از
use case viewDesign view
Process viewImplemention view
Deployment view
: وجود دارد )دياگرام های ساختاری (در هر سيستمي چهار مدل ايستا
Class diagramObject diagram
Component diagramDeployment diagram
)دياگرام های ساختاری ( :حال مي خواهيم هر آدام از مدل ها را توضيح دهيم
: Class diagram نموداري است آه بيشترين استفاده . رابطشان استمحتوي آالس ها رابط ها و همكاري و
بعضا در معموال استفاده اصلي ان در ديد طراحي و . داردumlهاي را در مدلprocess view هاست .
: Object diagramبراي مشخص آردن آه لحظات مختلف به اشيا يي .داريم ابجكت ها و ارتباط بين ان ها را
استفاده .مي گيردسيستم ايجاد شده و هر لحظه عكس از سيستم مي باشد انجام براي.استفاده مي شود process view بعضا درهو البت design viewعمده ان در
: Component diagram.و بيشتردر ديد پياده سازي استفاده مي شود .هاست شامل مولفه ها و ارتباط بين ان
:Deployment diagramيك deploymentدر نمودار.عملياتي نصب مي آنيم نرم افزار اماده را در محيط
.مي شود ها و نودهايي وجود دارد آه براي نمايش ديد سيستم استفاده سري مولفه
:از در سيستم وجود دارد آه عبارتند)پويا(پنج ديد دياگرام رفتاري
Use case diagram : سازماندهی رفتارهای سيستم
Sequence diagram : قرار گرفتن فوکوس يا مرکزتوجه بر ترتيب زمانی پيام ها
Collaberation diagram : قرار دادن فوکوس بر ساندهی ساختاری اشيا که درو دريافت پيام ها ارسال
Statechart diagram : قرار دادن فوکوس بر تغيير وضعيت گردنده سيستم توسطرو يداد ها
Activity diagram : قرار دادن فوکوس بر جريانی از کنترل فعاليت برای فعاليت
:حال مي خواهيم هر آدام از مدل ها را توضيح دهيم
Use case diagram و براي ديد ن ها مي باشد آ ها و ارتباط بين use case ها و Actorشامل مجموعه اي از
use case توصيف مي آند باال ترين سطح در را سيستم و سيستم استفاده مي شود.
2&3.equence diagram& Collaberation diagram
.را تشكيل مي دهند Interaction diagramآه با هم .تعامالت بين اشيا و پيغام هاي بين اشيا مي باشد
.مي آند بر روي زمان بندي در پيغام ها داللت Sequence diagramدرCollaberatonدر diagram آار مي آند و نه بر روي بر روي ساختار انتقال پيغام ها
.زمان بندي
Statechart diagram.مي باشد state machineحاوي يك
با طريقه انتقال .ان قرار دارد ماشين وضعيت براي يك شي وضعيت هاي مختلفي دارد آه شي در . ديد طراحي مي دهد به ان شي نگاه مي آند و پاسخي آه نسبت به ان از
Activity diagram خيلي شبيه به فلوچارت است .به فعاليت ديگر را نشان مي دهد جريان انتقال سيستم از يك فعاليت
use caseو هم در ديد از اين خصيصه بيشتر در ديد طراحي .ولي آامال فلوچارت نيست .استفاده مي شود
:انجام دهيم براي مدل آردن سيستم از ديد هاي مختلف چهار قدم را بايد
آه ريسك هاي سيستم ان ديدي را انتخاب آنيم .مشخص آنيم آدام ديد ضروري است .ممكن است در يك مدل به هر پنج ديد نياز داشته باشيم .را بهتر نشان دهد
شود تا بتوانيم جزييات مشخص مي آنيم براي يك ديد خاص چه چيز هايي بايد ايجاد .ان ديد را بهتر نمايش دهيم
.شود زمانبندي آنيم تا بر چه اساسي مدل رسم و به چه شكل رسم
ممكن است در .دور نياندازيم دياگرام هايي آه موقت رسم مي شوند ان دياگرام ها را .باشيم اينده به ان ها نياز داشته
Abstractionمدلسازی سيستم در سطوح يعني بسته به نيازمندي هاي يك . آنيم هاي مختلف به مدل نگاه Abstractionما نياز داريم از
مخفي يعني اشيايي آه نياز ندارند بايد ان را . ان انجام مي دهيم شخص مدل سازي را براي :خاص استفاده مي شود مثال در مدل هاي زير اين اقدام براي هر آاربر . آند
:روش اول
.هم شخص و هم مدل را براي رسم دياگرام مشخص آنيم :قدم اولاست آه مي خواهد از مشخص شود آه آاربر پياده ساز سيستم است يا شخص :قدم دوم
.باشد نظر مفهومي اطالعاتي از سيستم داشتهشخص در چه محلي قرار دارد؟ :قدم سوم
.خاص تصميم گيري آنيم در مورد نشان دادن و يا نشان ندادن ان مولفه :قدم چهارم
:روش دوم
.آنيمآه ايجاد هاي مختلفي را دياگرام آه دارد Abstractionبراي هر مدل با توجه به که نياز به چهار قسمت .آنيم يعني با توجه به ديد و نيازي آه شخص دارد دياگرام ايجاد
:زير داريم ساختن بالک ها و ارتباط ها توضيحات جريانها Streotype
. يک نمودارتوالی برای يک تحليل گر سيستم در سطح باال ست : ١مثال
ل گر کمتر يک نمودارتوالی برای يک برنامه نويس سيستم که سطح آن نسبت به تحلي: ٢مثال .است
.سيستم را دوباره بازسازي مي آنيم
چگونه با سيستم هاي پيچيده آار آنيم؟
اگر اين آار را.مختلف بشكنيم سيستم را به دياگرام هاي .مدل را تقسيم بندي مي آنيم1باال تر در اليه توان از بسته بندي آردن قسمت ها آرديم و هنوز پيچيده بود مي
.آرد استفاده
از يادداشت ها و رنگ مخفی کردن يکسری از اجزانمودار و اگر باز هم پيچيده است 2 .جلب توجه آابر ايجاد آنيم ها براي
ويزان آ در محل آار و يا اتاق اگر باز هم پيچيده بود يك پرينت آامل از مدل گرفته و 3.آنيم
:نكته
.هدف از مدل نقاشي نيست -
حذف شوند ولي ان ها را خارج همه دياگرام ها الزم نيست نگه داري شوند و بايد از مدل --.در اينده به ان ها نياز پيدا آرديماز مدل نگه داري آنيم شايد
.بين نمودار هاي رفتاري و ساختاري توازن برقرار باشد --
.دياگرام ها نبايد خيلي آوچك و نبايد خيلي بزرگ باشد --
يعني حداقل خطوط را .باشيم در رسم دياگرام سعي آنيم آمترين خطوط متقاطع را داشته --.معنايي را در يك قسمت از دياگرام قرار دهيم ضمنا عناصر مرتبط.داشته باشيم
فصل هشتم
آالس دياگرام
Class Diagram
کالس دياگرام
:مفهوم کالس دياگرام و ارتباط ها بصورت کالس دياگرام از مجموعه ای از کالس ها ، رابط ها و همکاری
.گرافيکی می باشد
:کالس دياگرام معموال شامل اشيا زير می باشد کالس ها رابط ها همکاريها ارتباط های وابستگی ، همکاری و تعميم
يحی و محدوديت کالس دياگرام مانند ديگر دياگرام ها ممکن است شامل يادداشت های توض .باشد
. يا هر دو باشد subSystem يا packageکالس دياگرام ممکن است که شامل . است ديد طراحیعمده ترين جايی که از کالس دياگرام استفاده می شود
دياگرام ممکن است وقتی که يک ديد طراحی استاتيک از سيستم را مدل می کنيد شما از کالس .بعنوان يکی از سه مورد زير استفاده کنيد
از آالس دياگرام در چه مواردي استفاده مي آنند؟
در مدل آردن لغت نامه سيستم 1 براي مدل آردن همكاري هاي ساده 2 مدل آردن شماي منطقي پايگاه داده ها 3
:مدل کردن لغت نامه سيستم To model the vocabulary of a system
ر به اين فصل منظور فصل چهارم که در رابطه با کالس ها می باشد برای توضيحات بيشت .مراجعه کنيد
:براي مدل آردن همكاري ساده
.داريميكي از رفتار هاي سيستم را بر مي
ها را Collaberationرفتار ها وبراي هر رفتاري آه بر مي داريم آليه اينترفيس ها و.را جدا مي آنيممي داريم و ان آالس بر
يا براي ان رفتار ها آآنيم آه بررسي بيشتري روي ان رفتار انجام مي دهيم و بررسي مي .ن رفتار ها آالس اضاف آنيمآنه؟ آه اگر آافي نبود به آالس ها آافي است يا اين
در اين .همكاري مشخص آنيم ياCollaberationمجموعه ان آالس ها را با يك عالمت . مرحله رسم صورت می گيرد
Collaboration
مدل کردن يک همکاری ساده : مثال
:براي مدل آردن بانك اطالعاتي
آدام آالس عمر داده هايي از اين جهت آه .دانه به دانه آالس ها را بررسي مي آنيم1 .برنامه است آه در درون ان است بيش از عمر
هايش بيش از طول عمر يك آالس دياگرام را رسم مي آنيم آه فقط طول عمر داده2 مشخص Tagged valueآالس ها را با يك هر آدام از اين.برنامه هايش باشد
.مي آنيمTagged valueرا به عنوان يكPersistentبررسي مي آنيم.
Attribute 3 ها را دقيقا مشخص مي آنيم.Type ها را مشخص مي آنيم و اسم انشوند يا نه؟ و مي گوييم ايا اين مشخصات ذخيره مي
اگر .رسيدگي مي آنيم به وضعيت رابطه هاي يك به يك و يك به چند و چند به چند 4 .رابطه چند به چند اضاف مي آنيم الزم باشد يك سري عناصر را مثال در
عمليات الزم براي هر .شود روي هر آالس دقت شود آه چه آارهاي اطالعاتي انجام 5 .دهيم آالس را در صورت الزم توسعه مي
.استفاده مي آنيم در اين مرحله از يك ابزار براي توليد خودآار شماي بانك 6
مدلسازی يک شما : مثال
persistent
:مهندسي مستقيم و مهندسي معكوس دياگرام
.ي باشد دياگرامي آه بيشترين توانايي مهندسي مستقيم رادارد آالس دياگرام م :نكتهاما .بيرون آشيد نآآالس مربوط را از Source codeنمي توان از روي يك
:براي مهندسي مستقيم آارهاي زير را انجام مي دهيم
دهيم به چه زباني است؟ آه مي خواهيم تحويل mappingبايد مشخص آنيم آه اين يعني آد هاي ما به چه زباني است؟
مي شود آه بايد محدوديت ها را بسته به زباني آه انتخاب مي آنيم محدوديت هايي اعمال .آرد توان از تجمع براي راه حل در وراثت چند گانه استفاده مي.روي مدل بررسي آنيم
. را عالمت گذاري آنيم ها مي توان زبان هر آالس Tagged valueبا استفاده از
.گذاشتCollaberationدر و يا Packageمي توان در آالس در
.)براي مدل هايمان استفاده آني تا حد امكان از ابزار ها.(مي توان از ابزار آمك گرفت
مهندسی مستقيم : مثال
public abstract class EventHandler {EventHandler successor;private Integer currentEventID;private String source;EventHandler() {}public void handleRequest() {}
}
Basic Behavioral Modeling
فصل نهم
Interactions
پيغام ها ، لينک و توالی: مثال
Interaction چيست؟
ن ها و همين طور آ بين اشيا و ارتباطازنمايش دهنده يك تعامل است آه تشكيل شده از مجموعه اي . اشيا رد و بدل مي شود پيغام هايي آه بين
Interaction. تشکيل شده است Collobration و Sequenceاز دو دياگرام
يک رفتار که تشکيل شده از مجموعه ايی از تبادل پيام ها ميان : Interactionتعريف .مجموعه ای اشيا در يک زمينه خاص برای انجام يک هدف می باشد
برای مدل کردن جنبه ديناميک از همکاريها ، به نمايندگی interaction استفاده از اجرای برخی از مجمعی از اشيايی که نقش ايفا می کنند و همه با هم کار می کنند برای
.رفتارها
: Sequence diagram يكinteraction پيغام توالي زمانبندي دياگرامي است آه بر .ها تاآيد دارد
: Collaberation diagram يكinteraction آه بر ساختار و دياگرامي است.تاآيد دارد سازماندهي انتقال پيغام ها بين اشيا
:اين دياگرام براي دو هدف استفاده مي شود .براي مشخص آردن سيستم
.بنويسيم براي اين استفاده مي شود آه مي خواهيم از روي ان آد
: Sequence diagram
.ن را به صورت يك جدول نمايش مي دهيم آ
.شوند ها اشيايي آه در ان تعامل شرآت دارند رسم مي Xدر محورن شرآت مي آتعامل هايي آه در معموال ترتيب قرار گرفتن اشيا از چپ به راست بر حسب
.آنند مي باشد
: Collaboration diagram
.دارند مشخص مي شود در اين قسمت فقط بين اشيا يي آه با هم تعامل پيغامي
:در حالت آلي سه چيز در تعامل وجود دارد Object اشيا1Link پيوند ها2Message پيغام ها 3
Sequence diagram نسبت بهcollaboration diagram داراي دو چيز اضافه:تري هستند
: Life line ندکنقطه ايجاد شي تا نقطه از بين رفتن شي رامشخص مي.
: Focus of control خيم ضان را با يك مستطيل .دارد نقطه اي آه در ان آنترل وجود.نمايش مي دهند
:مي توان دو چيز را اضاف آرد sequence diagramدر
.شرط برقرار مي شود در صورتي آه ان پيغام اجرا شود ان : امكان شرط گذاشتن 1
actor 2 هستند آه شروع آننده يك فعاليت و يا تعامل : ها.
collaberationدر diagram آرده مي توان دو چيز را اضاف:
بحث شماره گذاريبحث شرط گذاري روي پيغام ها
:در موارد زير استفاده مي شود sequence diagramاز
براي آنترل جريان برنامه براي زمان بندي
و همکاری Link :مثال
:پيغام هايی که بين اشيا وجود دارد به يکی اشکال زير می باشد :Messageپيغام
CallReturn
SendDestoryCreate
Call: صدا زدن يک متد ازيک شی Return: تمام شدن کار يک متد
Send: سيگنال فرستادن بين اشيا مانند :wait و notifyCreate: بوجود آوردن يک شی
Destory: از بين بردن اشيا
Message :مثال
Sequencing : توالی يا عمليات پشت سر هم
:دو نوع توالی وجود دارد
شماره گذاری به ترتيب می باشد از ابتدا تا انتها :Flatتوالی همسان
شماره گذاری رويه ای می باشد به يک متد شماره ای :Procedaralتوالی رويه ای می دهيم اگر همين متد ، متد بعدی را صدا زد شماره
باالتری به متد بااليی می دهيم به همين ترتيب تا انتها
Flat Sequence : مثال
Procedural Sequence :مثال
D5 : ejectHatch(3)
. مرحله به جلو حرکت می کنيم ۵ که نقطه شروع می باشد Dاز
1.3.2 : p := find("Rachelle")
. آن حرکت می کنيم ٢ آن و سپس به قسمت ٣ باشد به قسمت ١از نقطه شروع که
: براي مدل سازي آنترل جريان برنامه
مثال در سطح سيستم يا . آنيم رسم Sequenceمي خواهيم Interactionبراي چه .در سطح زير سيستم و غيره
از باال به پايين و از چپ به اشيا را.اشيايي آه در تعامل نقش دارند را مشخص مي آنيم .اجرا مشخص مي آنيم راست بر حسب نقش و زمان
.را مشخص مي آنيمبراي همه اشيا خط زندگي ان ها
آرده و Traceالگوريتم و برنامه را.آنيم شروع مي Interactionبا پيغام شروع آننده اين قسمت اگر در . مي رويم و پيغام ها را به دياگراممان اضافه مي آنيم قدم به قدم پيش
.گذاريم الزم باشد براي برنامه شرط يا پيغام مي
.پيغام ها را شماره گذاري مي آنيم
Flow of Control by Time :مثال
Flow of Control by Organization :مثال
:سازماندهي پيغام ها براي مدل آردن جريان آنترل با استفاده از ساختار يا
object اشيايي آه انتقال پيغام .آنيم هايي آه در اين تعامل نقش دارند را مشخص مي 1 هاي ان شي attributeاگر.شود را در وسط صفحه قرار داده زيادي به ان ها انجام مي
دو شي را ذآر مي آنيم و با به نحوي تغيير آرده باشد آه در يك شي ديگر قرار بگيرد هر: ها را ذآر مي آنيم رابطه هاي زير ارتباط بين ان
تبديل شدن Become رابطه . ديگر توليد شود از شي مورد نظر اصلي مان آپي مي گيريم تا شي Copy رابطه
.ارتباط بين اشيا را مشخص مي آنيم 2
و sequence diagram و class diagramبراي چهار دياگرام : نكتهcollaboration diagram و state chart diagram مي توان مهندسي مستقيم
.و معكوس استفاده آرد
استفاده sequence diagramوcollaboration diagramاز شرط و چرخش زياد در حالت دياگرام activityقرار دهيم زيراactivity diagramبلكه بهتر است در.نكنيم
.الگوريتم را دارد
فصل دهم
Use case&
use case diagram
Use Case : مشخص کننده رفتار يک سيستم يا قسمتی از يک سيستم می باشد در Actorيجه را به حقيقت با توالی از عمليات تشکيل شده کهسيستم انجام می دهد تا يک نت
. يا عامل برساند هاست که در يک طرف اشيا هستند که خارج از سيستم interaction و مجموعه ای از
. هستند . بر آورده کند Actor سيستمی موفق است که که کليه انتظارات
Actor ) يک عامل نمايش دهنده يک مجموعه همسان از نقش هاست که کاربر ) : عاملuse case در تعامل با use case بازی خواهد کرد .
انسان ها ، سيستم های خود کار ديگر بيرون از سيستم و دستگاه سخت : Actorانواع افزاری
Names ) نام: (. می بايست منحصر به فرد باشد package در يک use case نام يک
: می توان نام آن را ساده يا با مسير مشخص نمود مانند زير
. می باشد generalization ها Actorرابطه بين
.استفاده می شود streotypeبرای نمايش عامل ها به شکل های مختلف از
:انجام می شود use caseکارهايی که در
use caseجريان رويداد ها در اين قسمت بحث روی کاری که درون سيستم انجام می شود در مورد چگونگی انجام کار در
. بايد انجام دهد مورد بررسی قرار می گيرد use caseنمی شود بلکه کارهايی
:use caseانواع روش برای نمايش انجام کار استفاده از متن ساده Activity Diagram
:نوشتن جريان رويدادها در متن ساده )رفتار های نرمال عامل ( جريان اصلی رويداد روی سيستم
.مانند زمانيکه شخص پسورد درست وارد کند جريان استثنا در سيستم
.)مثال زمانيکه فرضا شخص سه مرتبه پسورد درست وارد نکند
use caseسناريو و مانند رابطه ی شی با کالس می باشد use case رابطه سناريو با
. ممکن است سناريو های مختلفی ايجاد شود use caseپس برای
use caseهمکاری ها و use case ، realization و collaboration رابطه بين
.می باشد
:ها use caseسازماندهی های سيستم را در گرو ههايی درون بسته تقسيم بندی و سازماندهی use caseما می توانيم
:کنيم با سه مکانيزم سازماندهی که عبارتند از
Generalization ) تعميم(include ) شموليت(Extend ) توسعه(
. ها خيلی شبيه رابطه تعميم بين کالس هاست use case بين تعميمرابطه
ای را که حتما انجام شود تا نياز use case دياگرام زمانيکه می خواهيم use caseدر Actor برآورده شود آن را با include نشان می دهيم .
Extend : use case ای که حالت خاصی از use case ای که include شده را . را انجام داده يا از آن صرف نظر کند use case می تواند آن Actorتوسعه داده و
سازماندهی شده در طی يک مثال تحت عنوان use caseبرای توضيح بيشتر و ايجاد يک .سفارش کتاب شرح خواهيم داد
Generalization, Include, and Extend
. خريد يا سفارش کتاب use caseرسم : مثال
use caseيک برای رسم اين نمودار ابتدا نياز عامل را بررسی کرده سپس تحت عنوان کر کرديم می در آورده حال اگر اين کاربرد حجيم و پيچيده باشد همانطور که قبال ذ
ماندهی به بايست به کاربرد های کوچکتری تجزيه کنيم سپس اعمال مکانيزم های ساز .اين دياگرام انجام خواهيم داد
:داريم
خريد کتاب
مشتری
و مبهم خواهد بود پس نياز همان طور که مشاهده می کنيد اين کاربرد چندان چيزی را بيان نمی کند . داريم اين کاربرد را تفکيک کنيم
خريد کتاب use caseتفکيک
: داريم
نحوه ورود اطالعات خريد کتاب
اتمام خريد کتاب
مرور بر کتاب
پيدا کردن کتاب
نحوه ورود اطالعات ارسال کتاب
مشتری
extend و includeاعمال روابط
اين امکان را به ما می دهد که يک کاربرد را همواره درون يک کاربرد includeرابط ابسته گردد چرا که ديگر قرار داد به اين شکل که کاربرد اصلی بايد به کاربرد درج شده و
:اين رابطه دو مزيت دارد .مجبور به استفاده از عمليات اوست
Use case اصلی ساده شده
Use case درج شده را می توان در بيش از يک use case اصلی استفاده کرد .
اين امکان را فراهم می کند تا يک کاربرد را به صورت يک گزينه داخل extendرابط ه را در بر نمی گيرد کاربرد ديگر قرار داد به اين شکل که کاربرد اصلی همواره کاربد توسع
جريان رويدادهای بلکه بسته به وجود شرايطی که کاربرد اصلی تعيين می کند ممکن است وابستگی از سمت کاربرد . کاربرد توسعه به جريان رويداد های کاربرد اصلی اضافه گردند
.توسعه به سمت کاربرد اصلی است
.اکنون اين مکانيزم ها را اعمال خواهيم کرد
extend و includeکاربرد خريد کتاب به همراه رابط های
پيدا کردن کتاب
خريد کتاب نحوه ورود اطالعات خريد کتاب
مرور بر کتاب
نحوه ورود اطالعات ارسال کتاب
<<include>>
<<include>>
<<extend>>
<<extend>>
<<extend>>
مشتری
اتمام خريد کتاب
use caseتعميم
مثال ممکن . باشيم در بعضی موارد ممکن است که در يک کاربرد چندين مسير جداگانه داشته مشتری که درک روشنی از کتاب . است برای پيدا کردن کتاب دو راه وجود داشته باشد
.د دارد و مشتری که در رابطه با کاتب مورد نظر خود اطالعات چندان ندار
بياد داشته باشيد که صرفا براساس البته استفاده می کنيم تعميمدر اين قبيل موارد از رابطه .ميزان پيچيدگی يک کاربرد ، به تعميم آن مبادرت نورزيد
کاربرد خريد کتاب به همراه تعميم
خريد کتاب
مشتری
نحوه ورود اطالعات خريد کتاب
اتمام خريد کتاب
مرور بر کتاب
پيدا کردن کتاب
نحوه ورود اطالعات ارسال کتاب
<<include>>
<<include>>
<<extend>>
<<extend>>
<<extend>>
جستجو دقيق کتاب گردش بين کتابها
use caseروشهای مدل کردن
: می توانيم آن را در سطوح مختلف اعمال نمود ، داريم use caseبرای مدل کردن
مدل کردن يک سيستمsubSystemمدل کردن يک
مدل کردن يک رفتار سيستم
use caseمزايای استفاده از ات و مفاهيم سيستم مدل کردن رفتار يک عنصر با استفاده از ديد کاربرد باعث انتقال جزئي 1
.به کسانی که بيرون از سيستم هستند با اين وسيله می توان آن عناصر را سند کرد و برای کاربران آن مولفه2تست کردن3
:مزايا در حالت کلی راحتتر ساخته می شود راحتتر مستند می شود .راحتتر تست می شود
)قدمها ( مدل کردن رفتار يک عنصر
های موجود در سيستم Actorمشخص کردن
ی از آن عنصر عامل های پيشنهادی شامل آن مجموعه ای می شوند که نيازمند رفتار خاص غير مستقيم از هستند برای انجام کارهايشان يا آن عامل هايی که به صورت مستقيم يا
.کارکردهای سيستم استفاده می کنند
)تعميم ( ها در يک ساختار سلسله مراتبی Actorسازمان دهی
با سيستم در ارتباط و تعامل است Actorبرای هر عامل سيستم آن و راه های اساسی که .مشخص می کنيم
. بايد به تعامالتی که موجب تغيير در عنصر می شود دقت خاصی شود
. با سيستم تعامل می کند مشخص شود Actorحاالت استثنا هر
. ها توسط مکانيزم های ذکر شده use caseدسته بندی يا به عبارتی سازماندهی
Modeling the Behavior of an Element
هر چه تا کنون خوانديم در رابطه با
Use caseبود و اما
Use case Diagram
A Use Case Diagram :مثال
Use case Diagram
بين آنها نموداری است برای نمايش مجموعه ای از کاربرد ها و عامل ها و روابط
use case Diagramانتظارات از
مرزبندی سيستممدل کردن نيازمنديهای يک سيستم
:دو بحث را مطرح مي آنيم use case viewدر
use case diagram activity diagram
:دياگرام سه قسمت وجود دارد آه شامل use caseدر
actor 1 هاuse case 2 ها
ن هاآروابط بين 3
:در اين قسمت دو چيز قابل اضافه آردن است
مرز بندي سيستمpackage براي دسته بنديuse case آرده مي توان به ان اضاف.
:سيستم Context)زمينه ( براي مدل آردن
actor 1 را بايد در نظر بگيريم آه به گروههايي .هاي پيرامون سيستم را بايد مشخص آنيم.اين سيستم نياز دارند
.آنند چه گروههايي نياز داردن آه آارآردهاي سيستم را اجرا 2
چه آساني با سخت افزار و نرم افزار ها ارتباط داردند 3
.چه آساني مديريت را روي سيستم ها انجام خواهند داد 4
acotr 5 هاي سيستم را دسته بندي و سازماندهي آرده.
.آنيماستفاده streotypeاگر به فهم مطالب آمك مي آند از6
use case 7هاي آلي آهactor آنند را اعمال آنيم ةا از ان ها استفاده مي.
Modeling the Context of a System
:براي مدل آردن نيازمندي ها
context وريمآسيستم يا الگوريتم سيستم را در.
.آنيم براي ان انجام دهد را مشخص رفتارهايي را آه انتظار داريم سيستم actorبراي هر
.آنيمدسته بندي use caseاين رفتار هاي مشترك را تحت نام
را use caseان Includeو Generalizationو Extendبا استفاده از سه رابطه .سازماندهي مي آنيم
.رويدادها را مشخص مي آنيم ها جريان use caseدر صورت لزوم براي هر آدام از
Modeling the Requirements of a System
: use caseمهندسي مستقيم و معكوس در مورد
يک دياگرام مفهومی در اين دياگرام نمی توان اين مهندسی پيشرو و معکوس استفاده کرد چون .مال کنيم است و پس به ترتيب زير عمل می کنيم تا بتوانيم اين دو مهندسی را اع
.مهندسی پيشرو توسط ابزار امکان پذير نيست
:قدم هاي الزم در اين قسمت شامل
.ان را درست آرد Test caseمي توان use caseاز
.نظر مي گيريمدر سيستم جريان اجرايي اصلي را در use caseبراي هر
.بنويسيد Testيا جريان يك سناريو flowبراي هر
Reverse Engineering Use case:
:را بايد تحويل دهيم بوطهرم use caseرا به ما مي دهند و sourceدر اين قسمت
.هايي آه با سيستم ارتباط دارند actorمشخص آردن
.آنيم البته از روي آدطريقه تعامل ان را با سيستم مشخص مي actorبراي هر
دست اوردرا به use caseدر صورت امكان از اين تعامالت مي توان
فصل يازدهم
Activity diagram
Activity Diagrams
.به يك فعاليت ديگري است اين دياگرام نمايش دهنده جريان فعاليت ها از يك فعاليت .يك فعاليت در حالت انجام غير اتميك است
در چيست؟ actionبا activityفرق
.آارهايمان مشخص است يك آاري داريم آه قابل تجزيه است يعني activityدرها قابل تجزيه نيستند يعني بعضي از عمليات .يك آار غير قابل تجزيه است actionدراما
.نمي شوند ان قدر آوچكند آه ديگر تجزيه
Action States Activity States
:عبارتند از activity diagramسه قطعه اصلي در
activity state and action state Transition
Object
: Transition
.است Actionو شروع يك Activityمشخص آننده پايان يك هايي Actionو يا Activityتمام شده و چه Actionيا يك Activityمشخص مي آند يك .بايد شروع شود
Triggerless Transitions
Branching
و شاخه دريك جا به هم متصل اين قضيه را داريم آه در ان چند انشعاب joinدر عمليات.را مي سازند fork & joinمي آند آه اين بحثمي شوند و يك شاخه را ايجاد
:را دارد آه fork & joinشي اي اجازه
Theradاستفاده از fork & join بايدbalance يعني اگر چهار تا .باشد يا تعادل داشتهjoin داشتيم بايد
.داشته باشيم forkچهار تا هم
.باقيمانده آه اين از ايراد آار ماست با هم برابر نباشد يك شاخه اي ازاد fork & joinاگر
ACTIVITYها در يك activityبراي گروه بنديswimlaneاز:نكتهDIAGRAM استفاده مي شود.
bissnesاز logic سازمان يا مجموعه مورد استفاده براي تعيين قواعد يا قوانين حاآم در ان.قرار مي گيرد
bissnes object نقش دارداشيايي است آه در ان منطق سيستم و سازمان.
Forking and Joining
Swimlanes
Object Flow
:دادبراي مدل آردن يك جريان آاري چه اعمالي را بايد انجام
يك use caseاست آه براي هر بهترين انتخاب ان .چه چيز مي باشد Work flowمشخص آنيم activity آرددياگرام استفاده.
bissnesان object جريان آاري دخالت دارند و مسيوليت هايي آه در باالترين سطح در اين.رسم آنيم swimlaneبراي هر آدام از اشيا يك .آنيم دارند را مشخص
مقدماتي الزم است يا نه؟ اگر الزم باشد انها را بايد مشخص آنيم قبل از اينكه اين آار انجام شود ايا .آنيم و وضعيت سيستم را در پايان اين آارمان مشخص آنيم مشخص
هايي آه رخ مي actionها و يا activityبا يك دايره توپر ان را نشان داده و شروع مي آنيم و مجموعه را با يك اگر مجموعه اي از عمليات پيچيده است ان . مان اضاف م يكنيم دهد را به شكل
activity diagram واضح تر مي آنيم.
خطوط شرطي و بعد خطوط موازي را مي ابتدا خطوط ساده و بعد . خطوط انتقال را وصل مي آنيم .آشيم
م خوانايي برنامه را باال ببريم اگر اشيايي وجود دارد آه با ارسال ان ها در مراحلمختلف ما مي تواني .اشيا را به سيستم اضافه مي آنيم ان
Modeling a Workflow
:ها Operationبراي مدل آردن
.را تعريف مي آنيم operationخود 1
اتفاق مي افتد را مشخص پيش شرط ها و وضعيت هاي نهايي و نيز وضعيتي آه برايش 2.مي آنيم
انجام مي Opeartionدر انبا شك دايره توپر شروع مي آنيم و در ابتدا عملياتي آه3.مرحله شرط ها و حلقه هاي تكرار را اضاف مي آنيمدر اين.شود را مشخص مي آنيم
است بايد از ان Active objectيا Objectمربوط به تگ operationنهايتا اگر 4.استفاده آنيم
Modeling an Operation
فصل دوازدهم
و سيگنال ها رويداد ها
Events and Signals
ويداد ، چيزهای که اتفاق می افتند به آنها رويداد گويند و هر کدام از اين ر آن:رويداد ها .کان مشخص کرد رويداد يا جريانی هستند که می توان از نظر زمان وم
. ما از رويداد ها استفاده می کنيم State machineدر
تقال در سيستم اين رويدادهايی که در سيستم مدل می کنيم محرک های هستند که باعث ان .الت ديگر برودمی شوند در واقع يک شی می تواند توسط اين رويدادها از يک حالت به ح
:چيزهای که يک رويداد شامل آنها می تواند باشد سيگنال -١ call فراخوانی -٢ passing a time گذشت زمان -٣ state تغيير در -۴
: انواع رويداد ها عبارتند از
.مي ناميم Externalن ها راآو سيستم مي باشد آه Actorرويدادهايي آه بين .ممي ناميInternalران هاآرويدادهايي آه بين اجزاي دروني سيستم مي باشد آه
يعني يك محرك.آار مي آند نوع خاصي از رويداد است آه به صورت غير همزمان :سيگنال يك سيگنال يك شي .ماند و آار خود را ادامه مي دهد را مي فرستد و منتظر جواب نمي صورت غيرهمزمان رها مي شود و يك شي نامدار است آه در سيستم توسط يك شي به .مي آندديگر ان را دريافت
.آنيماستفاده مي dependencyبراي نمايش دادن سيگنال از رابطه
ها Exceptionفرستادن : مثال
. ميباشد operation و Attribute خود سيگنال دارای
send « Stereotype« برای نمايش دادن سيگنال از رابطه وابستگی و .استفاده می کنيم
: مثال
شدن ان متد از يك با صدا زدن يك متد و تمام call event يعني: call )(فرا خواني همچنين نوعی رويداد بوده که وضعيت به وضعيت ديگري مي رود
. حالت همزمانی دارد
تی به مانند مثال زير که در بازی با استفاده از يک دکمه ماشين از حالت دس .اتوماتيک می بريم
: Time and Change Eventsگذشت زمان اطالع مهم مي توانيم داشته باشيم يكي زمان و روي هر انتقال دو . مي باشد afterبا آلمه. اتفاقي آه مي افتد ديگري
: با فرض کانکت بودن مودم :مثال
. جدا می شود ( / )روی يک انتقال ما دو اطالع مهم داريم که با اسلش
. زمان مورد که بايد بگذرد -١ ٢- Action و کارهای که بعد از اين زمان بايد انجام دهد .
.مي گيردمي ايد و بعد از اسلش قرارwhen با آلمه: تغيير وضعيت
:روی يک انتقال ما دو اطالع مانند فوق در تغيير زمان داريم ( / ) يک شرط و سپس بعد از اسلش when ابتدا پس از -١ . کار های که بايد انجام شود -٢
تغيير زمان و تغييروضعيت داريم ولي درobjectدر در سيگنال و فراخواني دو: نكته .باشيم داشتهobject است يكنممك
) Signal & Callتفاوت (تفاوت سيگنال و فراخوانی مي شود تا عمال آار متد در يك فراخواني وقتيمتدي را صدا مي زنيم صدا زننده متوقف
. اين آار سنكرون مي گوييمصدا زننده شده تمام شود آه به
يعني به طورغير .مي شودان صدا زدهStartمتد threadآردن يكRunدر سيگنال برايسنكرون همزمان يا Callدر اين است آهSignalوCallتفاوت پس . همزمان است
. غير همزمان مي باشدSignalاست ولي
تلفن و پست :مانند
:دهيم ها تنها دو آار را انجام مي Exceptionبراي مدل آردن
.هارا در مي اوريمexceptionبراي هر آالس و اينترفيس تمام متد هاي ان
Exceptionها را به ترتيب ازsuperبهsubآنيممرتب مي.
. بايد مشخص کنيم چه استثتايی بوجود می آيد Operationبرای هر
:دليل مدل آردن رويداد ها هايي هستند آه موجب تغيير رويدادهايي آه مدل مي آنيم يك محرك state machineدر
.وضعيت مي شوند در ماشين وضعيت
فصل سيزدهم
ماشين وضعيت
State machine
ماشين وضعيت چيست؟
شي مي تواند نمونه اي از اين.يك ماشين وضعيت مدل آننده چرخه زندگي يك شي مي باشد .سيستم باشد يا حتي آلuse caseيك آالس يك
. يک نمونه ماشين وضعيت است Thread يک :مثال
ما می توانيم در ماشين وضعيت حرکت کنيم Event با رخ دادن يک :نکته
سيستم تنظيم دما :مثال
است که فقط يک رويداد stateMachine دياگرام نوع خاصی از Activity :نکته .دارد
؟ Activity diagramوState machineتفاوت بين ي استeventدرeventچيزي آه براي ما مهم است حالت state machineدر
در اما .عملياتي آه رخ مي دهد به چه صورت است انجام فعاليت ها و.آه وجود دارد Activity diagram نوع خاصي ازstate machineتنها آهevent ي آه در
.عمليات است دروني است وجود دارد پايان يك
: StateMachineتعريف اي از حالت هاست آه يك يك رفتار است آه مشخص آننده دنباله state machineيك
واآنش به يك سري رويداد ها به اضافه پاسخي آه شي درزندگي خودش خواهد رفت در .رويداد ها خواهد داد به ان
: Stateتعريف اين حالت ها يک حالت يا وضعيت يا حالتی است که يک شی در حيات خود خواهد داشت و
ات خاص خواهد مطابق با يکسری شرط ها و معيارها خواهد بود يا اينکه انجام يک عملي . بود يا انتظار برای يک رويداد خاص خواهد بود
: آه حالتي است آه يك شي در حيات خودش خواهد داشت stateيك
.بود اين حالت ها مطابق با يك سري شرط ها و معيار ها خواهد .يا اينكه انجام يك عمليات خاصي خواهد بود .يا اينكه انتظار براي يك رويداد خاص خواهد بود
يعني يك.مي گيردقرارstateبراي يك مقدار محدودي در يك Objectيك : نكته Objectزماني آه در يكstateبرد بايد محدود باشد به سر مي.
. بايد در زمان محدود بسر ببرد stateيک شی در يک : نكته
: State قسمت های name: نام
)Entry and Exit Actions( خروج Actionيک / ورود Actionيک
Transition Internal آن انتقال های که می تواند انجام شود درونState بدون Stateتغيير
sub state ) يک وضعيت می تواند يک زير وضعيت داشته باشد ) : زير وضعيت:مانند
Deferred events : ليست رويداد هايي است آه ان state ان ها را پس مي دهد.
Transition خطوط ارتباطی ( : يا انتقالState ها ( حالت يا وضعيت آه مشخص مي آند آه شي در وضعيت اول با يك رابطه اي است ميان دو
. دادن يك رويداد با انجام يك پاسخ وارد وضعيت دوم مي شود رخ
Transition Internal : وضعيت آن تغيير نمی کند ولی وضعيت: انتقال داخلی
:مثال
Transition
: هاStateی براي نام گذار
سيستم بايد تعريف شده باشد يا انتخاب مي شود يا در لغت نامه stateاسمي آه براي يك -١ . نامه اضافه آنيم اينكه خودمان ان را به لغت يعني حروف اول را .باشد ها مي Classاسم گذاري در اين قسمت مانند اسم گذاري در -٢
.بايد با حروف بزرگ نوشته شود
: بگيرد آه ان ها عبارتند از مي تواند پنج جز قراريا انتقال transitionدر يك
state شروع اش از آجاست : شروع آننده.event يا ان رويدادي آه موجب اين انتقال مي شود.state ي آه به ان منتقل مي شويم.
.غير قابل تجزيه مي باشد پاسخ و عملي آه همزمان به ان انتقال انجام مي شود آه انتقال وقتي اتفاق مي افتد آه يعني.شرطي آه روي رويداد قرار مي گيرد: شرط محافظ
.شرط رويداد بر قرار باشد
؟ internel transitionبا self transitionفرق
در انتقال اما انجام مي شود stateدو عمليات ورود و خروجself transitionدر.انجام نمي شود stateيكدروني ان دو عمليات مربوط به ورود و خروج از
زماني اتفاق مي افتد آه يك سيستم دريك وضعيت باشد حال ان sub stateيك : نكته . ديگري را انجام دهد stateآه در همان وضعيت مي تواند يك
Sub State در يک سيستم ممکن است يک : زير وضعيت State زير حالت های .مختلفی در همان حالت به خود بگيرد
يک زير وضعيت: مثال
sequntialترتيبی :دو نوع زير وضعيت داريم
concurrentموازی
. است concurrent نقطه مقابل زير حالت موازی sequntialزير حالت ترتيبی
ر حالت در زير حالتی که در آن زير حالت و وضعيت آن موازی بود بايد همه زي : نکته . و اتمام قرار گيرند تا ازاين حالت خارج شويم در حالت نهايی
History States ) سابقه ی حالت : ( گرفتن ما سه فرضا ممکن است در انجام کاری در انجام يک حالت فرضا نسخه ی پشتيبان
اگهان برق برود و مرحله يا حالت داريم ممکن است قسمتی از کار انجام داده باشيم ولی ن کارهای که انجام شده Hديگر از صفحه شروع نمی کنيم بلکه از
عمليات مانندConcurrent sub state يا همانیزير وضعيت مواز Fork& join درJavaباشدیم :
شده زماني از ان وضعيت به شكل موازي تشكيلSub stateآه از چند stateدر يك -١موازي خاتمه يافته باشند و اگر يكي از ان ها تمام sub stateخارج مي شود آه همه . خارج نمي شود stateباشد ان نشده
آه به صورت مرتب State به ترتيب پس از اجراي همهSequenceدر مكانيزم -٢است
. خارج مي شويم stateاز ان
مشخص historyاين.باشد مي Historyآه با استفاده از Backing upدر مكانيزم -٣sub stateيعني بر حسب اينكه قبال آدام.شود بايد انجام sub stateمي آند آدام . برودsub stateمشخص مي آند به آدام انجام شده
:State machine يك مدل سازی مراحل
اگرآالس است بايد به جمع اوري .يا سيستم use caseبايد مشخص آنيم آه يك آالس يا در مورد سيستم .اطالعات راجع به آالس ها وآالس هاي مجاور اطالعات جمع آنيم
. بايد سيستم را از ديد يك رفتار خاص مدل آنيم بزرگ
Initial state وFinal stateرا رسم آنيم .
اگراز قبل مشخص شده باشد اين .بايد پاسخ دهد Objectرويدادهايي را مشخص آنيم آه . مي باشد مشخص آنيم Objectآه صاحب ان Interface رويداد ها را مي توان در
. نشده باشد بايد به دنبال تكامل ان شي با ديگر اشيا گشت اگر مشخص
آه شي مي تواند داشته اول شروع به رسم آردن وضعيت هاي سطح بااليي stateازدر مرحله بعد انتقال را رسم مي . مشخص مي آنيم مي آنيم و همزمان ان ها راباشد
.همرام با رويداد اولي آه موجب اين انتقال مي شود آنيم البته
. پاسخ را بايد در آنار ان بنويسيم
توسعه sub stateاضافه آردن ها آه الزم است باstateدر صورت لزوم هر آدام از.مي دهيم
تطابق Interfaceنوشته شده با در اين مرحله بايد مدل را چك آنيم آه ايا مدل هاي دارن يا نه؟
ببينيم ايا رفتارهاي سيستم با يك ابزار يا يك ليست بين قسمت هاي مختلف حرآت آنيد وجود دارد يا نه؟ درست است يا نه؟ ايا نقاط آور
فصل چهاردهم
State chart diagram
:از اين خصيصه براي دو آار استفاده مي شود مدل آردن سيستم هاي عكس العملي
مهندسي مستقيم و معكوس
: State chart diagram محلي است آهstate machine قرار دارددر ان.
Switchاز روشبهترين روش استفاده state machine براي مدل آردن:نكتهcase است آه بر روي نامstate مي آندها آار.
FE & REForward and Reverse Engineering
Forward Engeneerswitch ها در نظر می گيريم و استفاده Stateبرای مهندسی پيشرو ما ابتدا يک متغير از
case .
Reverse Engeneer
معموال نتيجه اي آه مي دهد نتيجه اي قابل توجه وري قابل انجام است ولي ئآردن از نظر ت.نيست و خوب
. استفاده می شود FE بيشتر از State chartدر :نکته
می خواهيم برنامه ای بنويسيم که يک عبارت به اين شکل است يا خير ؟: مثال
Message : ‘<‘ String ’>’ String ‘ ; ’
اين برای اينکه تعداد اعداد و حروف بشمارد ؟ State machin می خواهيم :مثال
] حرف و عدد نيست [
Idle
Is wordIs Digital]حرف باشد[
]
ت يسم نورق
ف حر
[
]
حرف ورقم نباشد
[
]/w
++
شد بافحر
[
]/d++ رقم باشد[ ]/d++ رقم باشد[
]رقم باشد[
]/w++ حرف باشد[
] .[
] .[] .[
:ازعبارتند state chart diagramدر Engineerآارهاي
براي مدل آردن مسايل مفهومي آردن Engineerبراي مدل آردن آالس و در آد و در
باشد و ان را ضميمه sequenceبايد حالتي نزديك به