Professional Documents
Culture Documents
Software Engineering
Software Engineering
▪ مهندسی سیتسم :فرآیند است که تمرکز خود را صرف مجموعه ای از عناصر مانند تحلیل ،طراحی و
سازماندهی آنها در قالب یک سیستم میکند که حاصل این کار تولید یک محصول ،ارائه سرویس یا یک
تکنالوژی مناسب برای تبدیل اطالعات و کنتر آنهاست.
▪ سلسله مراتب مهندسی سیستم :مهندسی سیستم شامل گروهی از روش های باال به پائین و پائین به باال برای
حرکت در سلسله مراتب نشان داده شده.
▪ فرآیند مهندسی سیستم معموال با دید (جهانی) یا کلی شروع میشود دیگاه کلی پاالیش می شود تا تمرکز کامل تری
بر محدوده(دامنه) خاص از خواسته ها به دست آید.
▪ در یک دامنه خاص ،نیاز برای عناصر سیستم مورد نظر (برای مثال ،داده ها ،نرم افزار ،سخت افزار ،افراد)
برسی می شود .در نهایت تحلیل ،طراحی و ساخت یک عنصر سیستمی مورد نظر آغاز می شود.
▪ در باالی این سلسله مراتب یک دامنه وسیع وجود دارد و در پائین ترین سطح سلسله مراتب سیستمی جزئیات
فعالیت های فنی که با روش های خاص مهندسی مدل سازی و پیاده سازی می شوند مورد توجه قرار می گیرد.
2
سلسله مراتب مهندسی سیستم
3
سلسله مراتب مهندسی سیستم
▪ ساختار سلسله مراتبی روشی است برای سازماندهی عناصر به سطوح یا الیه ها ،که در آن هر سطح
یک رابطه والد-فرزند با سطح بعدی دارد .سطح باالیی ریشه و پایین ترین سطح برگ است .هر
عنصر در یک سطح می تواند یک یا چند فرزند داشته باشد ،اما فقط یک والد.
▪ ساختارهای سلسله مراتبی مزایای بسیاری را برای طراحی نرم افزار ارائه می دهند ،مانند ساده کردن
پیچیدگی با تجزیه سیستم به بخش های جداگانه که می توانند به طور جداگانه درک و مدیریت شوند.
▪ الگوهای طراحی یک راه عالی برای یادگیری و اعمال ساختارهای سلسله مراتبی در طراحی نرم افزار
هستند .آنها زبان و قالب مشترکی را برای طراحی و پیاده سازی سیستم های نرم افزاری ارائه می دهند
که اغلب از ساختارهای سلسله مراتبی برای دستیابی به اهداف خود استفاده می کنند .به عنوان مثال،
الگوی ترکیبی ()CBSEبه شما امکان می دهد با ایجاد یک ساختار درخت مانند از اجزاء با رابط
یکسان ،گروهی از اشیاء را به عنوان یک واحد در نظر بگیرید.
4
مدل و مدلسازی
▪ مدل :یک تجرید از چیزی است که قبل از ساختن آن چیز باید درک کنیم .از آنجا که مدلسازی
جزییات غیرضروری را نادیده میگیرد ،دستکاری آن نسبت به موجودیت اصلی آسانتر است .منظور
از مدل ،سازماندهی چیزی برای مقصود خاص است .در واقع مدل یک سادهسازی از یک واقعیت
است.
▪ مدلسازی سیستم فرآیند توسعه ی مدل های انتزاعی سیستم است.
▪ هر مدل نمای متفاوتی از سیستم را ارائه می کند.
▪ مدلسازی سیستم به معنی این است که سیستم با استفاده از نمودار های گرافیکی نمایش داده شود که در
حال حاضر مبتنی بر UMLاست .همچنان مدل های رسمی ریاضی از سیستم نیز وجود دارد که بحث
مورد نظر ما نیست.
▪ مدلسازی گرافیکی با استفاده از UMLانجام میشود.
5
مدلسازی
▪ مدل ها در زمان فرآیند مهندسی خواسته ها برای کمک به استخراج خواسته های سیستم در موقع
طراحی برای وصف سیستم به مهندسین پیاده سازی کننده سیستم و پس از پیاده سازی برای مستند
سازی ساختار و عملکرد سیستم به کار می رود.
▪ مدل های سیستم موجود :برای مهندسی خواسته ها استفاده میشود ،برای پی بردن از عملکرد سیستم و نقاط
قوت و ضعف سیستم نیز استفاده میشود .و همچنان از مدل سیستم موجود برای تعین خواسته های سیستم
جدید نیز استفاده میشود.
▪ مدل های سیستم جدید :در زمان مهندسی خواسته ها برای کمک به تشریح خواسته های پیشنهادی به سایر
ذینفعان سیستم به کار می روند .مهندسین از این مدل ها برای بحث درباره پیشنهادات ،طراحی و مستند
سازی سیستم برای پیاده استفاده میکنند.
▪ در فرآیند مهندسی مبتنی بر مدل ،می توان یک پیاده سازی کامل یا جزیی را از مدل سیستم تولید کرد.
6
مدلسازی
▪ مهم ترین جنبه مدل سیستم این است که فاقد جزییات است
▪ انتزاع مهم ترین ویژگی ها را انتخاب میکند مانند اگر یک کتاب را به روزنامه چاپ شود بصورت کلی و نکات کلیدی آن
نشر خواهد شد و در صورتیکه کتاب ترجمه شود نمایش دیگری از کتاب خواهید داشت مترجم مجبور است که تمام
جزییات را هم ترجمه کند.
▪ ایجاد مدل ها از دیدگاه های مختلف :
دید خارجی در آن حیطه یا محیط سیستم را مدل سازی خواهید کرد. ▪
دیدگاه تعاملی در آن تعامل های بین یک سیستم و محیط آن یا بین مولفه های سیستم را مدل سازی خواهید کرد. ▪
دیدگاه ساختاری (دیتا) در آن سیستم یا ساختار داده های را که توسط سیستم پردازش می شوند مشخص می کنید. ▪
دیدگاه رفتاری که در آن ،رفتار سیستم و چگونگی پاسخگوئی آن به رویداد ها را مدل سازی خواهید کرد. ▪
7
UML Diagram
▪ UMLمجموعه ای از 13نوع نمودار مختلف است که می تواند برای مدلسازی سیستم های نرم افزاری
به کار رود.
▪ نمودار های فعالیت ( )activity diagramsفعالیت های موجود در یک فرآیند یا پردازش داده ها را
نشان میدهد.
▪ نمودار های مورد کاربرد ( )use case diagramsتعامل های بین یک سیستم و محیط آن را نشان
میدهد.
▪ نمودار های ترتیبی ( )sequence diagramsتعامل های بین کنش گرها و سیستم وهمچنان بین مولفه
های سیستم را نشان میدهد.
▪ نمودار های حالت ( )state diagramsنشان میدهد سیستم چگونه به رویداد های داخلی و خارجی
پاسخ میدهد.
8
مدل های گرافیکی
9
مدل حیطه یا ()context model
▪ مدل حیطه ی به صورت ساده سایر سیستم های موجود در محیط را نشان می دهند ،نه اینکه چگونه سیستم در حال توسعه
در آن محیط استفاده می شود.
▪ تعین مرز سیستم :مرحله اول تعین مشخصات سیستم باید در مورد مرز های سیستم تصمیم گیری شود برای تعین مرز سیستم
با ذینفعان سیستم بحث صورت گیرد که چه قابلیت های توسط سیستم و چه قابلیت های توسط محیط سیستم ارائه میشود.
▪ ممکن بعضی فرآیند ها در سیستم بصورت خودکار پیاده سازی شود و فرآیند های از آن بصورت دستی انجام شود یا توسط
سیستم های دیگر ارائه شود.
▪ تعین ساحه عملکرد سیستم :مشخص کردن عملکرد های جدید سیستم که در کجا پیاده سازی شود.
▪ موارد و نکات فوق باید در اوایل فرآیند اتخاذ شود تا هزینه و زمان الزم برای درک خواسته ها وطراحی سیستم کاهش یابد.
▪ نکته :در بعضی موارد مرز بین سیستم و محیط آن نسبتا روشن است زمانیکه یک سیستم خودکار جایگزین سیستم دستی یا
سیستم کامپیوتری موجود میشود.
10
)context model( مدل حیطه یا
11
مدل فرآیند بازداشت مریض روانی
▪ نمودار فعالیت های موجود در فرآیند سیستم ،جریان کنترل از یک فعالیت به فعالیت دیگر را نشان
میدهد.
12
مدل فرآیند بازداشت مریض روانی
▪ شروع یک فرآیند با دایره توپر و انتها فرآیند با دایره توپر داخل دایره دیگر نشان داده میشود.
▪ مستطیل های با گوشه های گرد فعالیت ها را نشان میدهد یا زیر فرآیند ها.
▪ سیستم های زیر نمودار فرآیند فعالیت ها ،برای پشتیبانی از فرآیند است.
▪ پیکان ها جریان کار را از یک فعالیت به فعالیت های دیگر را نشان میدهد.
▪ خط پر رنگ عمودی نشان دهنده هماهنگی فعالیت ها است.
▪ زمانیکه جریان از چند فعالیت به خط پررنگ می رسد آنگاه تمام این فعالیت ها باید قبل از ادامه کار
کامل شوند.
▪ نوت :توضیحات فوق برای دیاگرام سالید قبلی است.
13
مدل های تعاملی
▪ مدل های تعاملی :تمام سیستم ها به طریقی با هم تعامل دارد .تعامل کاربر با سیستم ،تعامل بین سیستم
در حال توسعه و سایر سیستم ها یا تعامل بین مولفه های سیستم.
▪ مدلسازی مورد کاربرد( :)use case modelingکه اغلب برای مدلسازی تعامل های بین یک سیستم و
کنش گرهای خارجی (کاربران یا سیستم های دیگر) به کار می رود.
▪ نمودار های ترتیب :برای مدلسازی تعامل های بین مولفه های سیستم به کار می روند.
▪ مدلسازی ( :)use case modelingدر سال 1993توسط آقای ژاکوبسن و همکارانش ارائه شد
همچنان شامل UMLاست.
▪ Use case modelingبرای استخراج خواسته ها به کار می رود این مدلسازی ساده ای است که
انتظارات کاربر را از سیستم نشان می دهد.
▪ هر مورد use case modelingوظیفه مستقلی را نشان می دهد
14
Use case diagram
15
مدل های ساختاری
▪ Use caseوظیفه مستقلی را نشان میدهد که شامل تعامل خارجی با یک سیستم است .شکل ساده این
نوع مدلسازی بصورت بیضی نشان داده میشود که در این نوع مدلسازی هر actorهای آن به شکل
آدمک نشان داده مشود.
▪ مدل های ساختاری نرم افزار ،سیستم یک سازمان را برحسب مولفه های سازنده ی سیستم و روابط
بین آنها را نشان میدهد.
▪ در مدل های ساختاری بیشتر اجزا سیستم نرم افزاری و روابط بین آنها را به نمایش می گزارد.
16
نمودار کالس ها()class diagram
▪ نمودار کالس هنگام توسعه ی مدل سیستم شی گرا استفاده میشوند تا کالس های موجود در سیستم و ارتباط بین این
کالس ها را نشان دهند.
▪ کالس را می توان تعریف عمومی یک شی سیستم دانست.
▪ هر کالس اطالعات درباره کالس مرتیط به خودش را داشته باشد.
▪ اشیا چیز های را در دینای واقعی نشان میدهد مثل مریض ،نسخه مریض ،داکتر و غیره.
▪ نمودار کالس در حقیقت بخشی از نیازمندی یا مهندسی خواسته ها در مورد سیستم است.
▪ در نمودار کالس ها در UMLمعموال به برسی دنیایی واقعی و شناسایی اشیا اساسی و نمایش آنها به صورت
کالس ها است.
▪ نمودار کالس میتوان بصورت کلی و یا جزئی نمایش داده شود یعنی میتوان جزیئات در مورد کالس را میتوان
بصورت کلی و یا با جزیئات بیشتر بیان نمود.
17
نمودار کالس ها()class diagram
▪ در نمودار زیر ارتباط یک به یک بین دو کالس بیمار و رکورد بیمار را نشان میدهد یعنی هر بیمار
تنها یک رکورد دارد و هر رکورد مربوط یک بیمار می شود.
▪ در نمایش کالس ها توسط UMLمیتوان جزئیات بیشتر به آن داد مثل شکل زیر
▪ در این نمودار کالس مشاوره با مشخصه اشیا و رفتار های آن نشان داده شده
▪ صفات (ویژگی های شی) و عملیات ها (چیزهای که از شی درخواست میکند)
18
تعمیم ویا ( )generalizationدر کالس ها
▪ برای غلبه بر پیجیدگی سیستم از دیدگاه شی گرا استفاده میشود مانند اینکه هر شی در دینا واقعی را به
عنوان کالس در نظر گرفته میشود .تالش بر این است که کالس ها را بصورت عمومی در نظر گرفت
و کالس های دیگر را منحیث زیر کالس در نظر گرفت.
▪ مفهوم وراثت در شی گرائی بیانگر تعمیم است.
▪ در نمودار کالس به خوبی مفهوم وراثت مشخص شده که
برای داکتران بصورت عموی کالس داکتر نوشته شده
و همچنان کالس های فرزند فقط معلومات که مربوط
خود کالس فرزند میشود را دارد واطالعات مشترک را
از کالس پدر می گیرد.
19