Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Software Engineering

Lecturer: Habibullah Nazari


Faculty of Computer Science
1
‫سلسله مراتب مهندسی سیستم‬

‫▪ مهندسی سیتسم‪ :‬فرآیند است که تمرکز خود را صرف مجموعه ای از عناصر مانند تحلیل‪ ،‬طراحی و‬
‫سازماندهی آنها در قالب یک سیستم میکند که حاصل این کار تولید یک محصول‪ ،‬ارائه سرویس یا یک‬
‫تکنالوژی مناسب برای تبدیل اطالعات و کنتر آنهاست‪.‬‬
‫▪ سلسله مراتب مهندسی سیستم‪ :‬مهندسی سیستم شامل گروهی از روش های باال به پائین و پائین به باال برای‬
‫حرکت در سلسله مراتب نشان داده شده‪.‬‬
‫▪ فرآیند مهندسی سیستم معموال با دید (جهانی) یا کلی شروع میشود دیگاه کلی پاالیش می شود تا تمرکز کامل تری‬
‫بر محدوده(دامنه) خاص از خواسته ها به دست آید‪.‬‬
‫▪ در یک دامنه خاص‪ ،‬نیاز برای عناصر سیستم مورد نظر (برای مثال‪ ،‬داده ها‪ ،‬نرم افزار‪ ،‬سخت افزار‪ ،‬افراد)‬
‫برسی می شود‪ .‬در نهایت تحلیل‪ ،‬طراحی و ساخت یک عنصر سیستمی مورد نظر آغاز می شود‪.‬‬
‫▪ در باالی این سلسله مراتب یک دامنه وسیع وجود دارد و در پائین ترین سطح سلسله مراتب سیستمی جزئیات‬
‫فعالیت های فنی که با روش های خاص مهندسی مدل سازی و پیاده سازی می شوند مورد توجه قرار می گیرد‪.‬‬

‫‪2‬‬
‫سلسله مراتب مهندسی سیستم‬

‫‪3‬‬
‫سلسله مراتب مهندسی سیستم‬

‫▪ ساختار سلسله مراتبی روشی است برای سازماندهی عناصر به سطوح یا الیه ها‪ ،‬که در آن هر سطح‬
‫یک رابطه والد‪-‬فرزند با سطح بعدی دارد‪ .‬سطح باالیی ریشه و پایین ترین سطح برگ است‪ .‬هر‬
‫عنصر در یک سطح می تواند یک یا چند فرزند داشته باشد‪ ،‬اما فقط یک والد‪.‬‬
‫▪ ساختارهای سلسله مراتبی مزایای بسیاری را برای طراحی نرم افزار ارائه می دهند‪ ،‬مانند ساده کردن‬
‫پیچیدگی با تجزیه سیستم به بخش های جداگانه که می توانند به طور جداگانه درک و مدیریت شوند‪.‬‬
‫▪ الگوهای طراحی یک راه عالی برای یادگیری و اعمال ساختارهای سلسله مراتبی در طراحی نرم افزار‬
‫هستند‪ .‬آنها زبان و قالب مشترکی را برای طراحی و پیاده سازی سیستم های نرم افزاری ارائه می دهند‬
‫که اغلب از ساختارهای سلسله مراتبی برای دستیابی به اهداف خود استفاده می کنند‪ .‬به عنوان مثال‪،‬‬
‫الگوی ترکیبی (‪)CBSE‬به شما امکان می دهد با ایجاد یک ساختار درخت مانند از اجزاء با رابط‬
‫یکسان‪ ،‬گروهی از اشیاء را به عنوان یک واحد در نظر بگیرید‪.‬‬

‫‪4‬‬
‫مدل و مدلسازی‬

‫▪ مدل ‪ :‬یک تجرید از چیزی است که قبل از ساختن آن چیز باید درک کنیم‪ .‬از آنجا که مدلسازی‬
‫جزییات غیرضروری را نادیده میگیرد‪ ،‬دستکاری آن نسبت به موجودیت اصلی آسانتر است‪ .‬منظور‬
‫از مدل‪ ،‬سازماندهی چیزی برای مقصود خاص است‪ .‬در واقع مدل یک سادهسازی از یک واقعیت‬
‫است‪.‬‬
‫▪ مدلسازی سیستم فرآیند توسعه ی مدل های انتزاعی سیستم است‪.‬‬
‫▪ هر مدل نمای متفاوتی از سیستم را ارائه می کند‪.‬‬
‫▪ مدلسازی سیستم به معنی این است که سیستم با استفاده از نمودار های گرافیکی نمایش داده شود که در‬
‫حال حاضر مبتنی بر ‪ UML‬است‪ .‬همچنان مدل های رسمی ریاضی از سیستم نیز وجود دارد که بحث‬
‫مورد نظر ما نیست‪.‬‬
‫▪ مدلسازی گرافیکی با استفاده از ‪ UML‬انجام میشود‪.‬‬

‫‪5‬‬
‫مدلسازی‬

‫▪ مدل ها در زمان فرآیند مهندسی خواسته ها برای کمک به استخراج خواسته های سیستم در موقع‬
‫طراحی برای وصف سیستم به مهندسین پیاده سازی کننده سیستم و پس از پیاده سازی برای مستند‬
‫سازی ساختار و عملکرد سیستم به کار می رود‪.‬‬
‫▪ مدل های سیستم موجود‪ :‬برای مهندسی خواسته ها استفاده میشود‪ ،‬برای پی بردن از عملکرد سیستم و نقاط‬
‫قوت و ضعف سیستم نیز استفاده میشود‪ .‬و همچنان از مدل سیستم موجود برای تعین خواسته های سیستم‬
‫جدید نیز استفاده میشود‪.‬‬
‫▪ مدل های سیستم جدید‪ :‬در زمان مهندسی خواسته ها برای کمک به تشریح خواسته های پیشنهادی به سایر‬
‫ذینفعان سیستم به کار می روند‪ .‬مهندسین از این مدل ها برای بحث درباره پیشنهادات‪ ،‬طراحی و مستند‬
‫سازی سیستم برای پیاده استفاده میکنند‪.‬‬
‫▪ در فرآیند مهندسی مبتنی بر مدل‪ ،‬می توان یک پیاده سازی کامل یا جزیی را از مدل سیستم تولید کرد‪.‬‬

‫‪6‬‬
‫مدلسازی‬

‫▪ مهم ترین جنبه مدل سیستم این است که فاقد جزییات است‬
‫▪ انتزاع مهم ترین ویژگی ها را انتخاب میکند مانند اگر یک کتاب را به روزنامه چاپ شود بصورت کلی و نکات کلیدی آن‬
‫نشر خواهد شد و در صورتیکه کتاب ترجمه شود نمایش دیگری از کتاب خواهید داشت مترجم مجبور است که تمام‬
‫جزییات را هم ترجمه کند‪.‬‬
‫▪ ایجاد مدل ها از دیدگاه های مختلف ‪:‬‬
‫دید خارجی در آن حیطه یا محیط سیستم را مدل سازی خواهید کرد‪.‬‬ ‫▪‬
‫دیدگاه تعاملی در آن تعامل های بین یک سیستم و محیط آن یا بین مولفه های سیستم را مدل سازی خواهید کرد‪.‬‬ ‫▪‬
‫دیدگاه ساختاری (دیتا) در آن سیستم یا ساختار داده های را که توسط سیستم پردازش می شوند مشخص می کنید‪.‬‬ ‫▪‬
‫دیدگاه رفتاری که در آن‪ ،‬رفتار سیستم و چگونگی پاسخگوئی آن به رویداد ها را مدل سازی خواهید کرد‪.‬‬ ‫▪‬

‫‪7‬‬
‫‪UML Diagram‬‬

‫▪ ‪ UML‬مجموعه ای از ‪ 13‬نوع نمودار مختلف است که می تواند برای مدلسازی سیستم های نرم افزاری‬
‫به کار رود‪.‬‬
‫▪ نمودار های فعالیت (‪ )activity diagrams‬فعالیت های موجود در یک فرآیند یا پردازش داده ها را‬
‫نشان میدهد‪.‬‬
‫▪ نمودار های مورد کاربرد (‪ )use case diagrams‬تعامل های بین یک سیستم و محیط آن را نشان‬
‫میدهد‪.‬‬
‫▪ نمودار های ترتیبی (‪ )sequence diagrams‬تعامل های بین کنش گرها و سیستم وهمچنان بین مولفه‬
‫های سیستم را نشان میدهد‪.‬‬
‫▪ نمودار های حالت (‪ )state diagrams‬نشان میدهد سیستم چگونه به رویداد های داخلی و خارجی‬
‫پاسخ میدهد‪.‬‬

‫‪8‬‬
‫مدل های گرافیکی‬

‫▪ مدل های گرافیکی به سه روش مورد استفاده قرار می گیرند‪:‬‬


‫▪ به عنوان وسیله ای برای تسهیل در بحث درباره ی سیستم موجود یا پیشنهادی عمل می کنند‪.‬‬
‫▪ به عنوان روشی برای مستند سازی سیستم موجود عمل می کند‪.‬‬
‫▪ به عنوان توصیف مشروح سیستم که می تواند برای تولید یا پیاده سازی سیستم به کار رود‪.‬‬
‫▪ در حالت اول هدف مدل شبیه سازی بحث بین مهندسین نرم افزار در توسعه ی سیستم است ممکن مدل ها کامل‬
‫نباشد‪.‬‬
‫▪ در حالت دوم وقتی مدل ها به عنوان ابزارهای مستند سازی استفاده می شوند نباید کامل باشند زیرا ممکن است‬
‫بخواهید مدلها را فقط برای بخش های از سیستم توسعه دهید اما این مدل ها باید درست باشند طوریکه از‬
‫نمادگذاری بصورت درست استفاده شوند و توصیف دقیقی از سیستم را ارائه کنند‪.‬‬
‫▪ در حالت سوم که مدل ها به عنوان بخشی از فرآیند توسعه مبتنی بر مدل استفاده می شوند مدل های سیستم باید‬
‫کامل باشند علتش این است که آنها به عنوان مبنایی برای تولید کد منبع (‪ )source code‬سیستم به کار می روند‬
‫بنا بر این باید دقت کنید که نمادهای شبیه هم را شتباه نگیرید‪.‬‬

‫‪9‬‬
‫مدل حیطه یا (‪)context model‬‬

‫▪ مدل حیطه ی به صورت ساده سایر سیستم های موجود در محیط را نشان می دهند ‪ ،‬نه اینکه چگونه سیستم در حال توسعه‬
‫در آن محیط استفاده می شود‪.‬‬
‫▪ تعین مرز سیستم‪ :‬مرحله اول تعین مشخصات سیستم باید در مورد مرز های سیستم تصمیم گیری شود برای تعین مرز سیستم‬
‫با ذینفعان سیستم بحث صورت گیرد که چه قابلیت های توسط سیستم و چه قابلیت های توسط محیط سیستم ارائه میشود‪.‬‬
‫▪ ممکن بعضی فرآیند ها در سیستم بصورت خودکار پیاده سازی شود و فرآیند های از آن بصورت دستی انجام شود یا توسط‬
‫سیستم های دیگر ارائه شود‪.‬‬
‫▪ تعین ساحه عملکرد سیستم‪ :‬مشخص کردن عملکرد های جدید سیستم که در کجا پیاده سازی شود‪.‬‬
‫▪ موارد و نکات فوق باید در اوایل فرآیند اتخاذ شود تا هزینه و زمان الزم برای درک خواسته ها وطراحی سیستم کاهش یابد‪.‬‬
‫▪ نکته‪ :‬در بعضی موارد مرز بین سیستم و محیط آن نسبتا روشن است زمانیکه یک سیستم خودکار جایگزین سیستم دستی یا‬
‫سیستم کامپیوتری موجود میشود‪.‬‬

‫‪10‬‬
)context model( ‫مدل حیطه یا‬

▪ Mental Health Care-Patient Management System

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‬‬

You might also like