صفحه 1:
صفحه 2:
|
en ۳
Heil 0 os 0 ۳ / 3 تب
ozo eae 5
صفحه 3:
هد
2 ۳ ۳
aa بر
/
ب 2 ors 3
ii
۲ بررسلی اك 27
5
۱
1 wes aa ee بكاركيرى 7
ا | |]
06 ۳
‘iach ee
| سكاس |
1۳
|
۱
۳
۳7
صفحه 4:
صفحه 5:
یک دید کلی از مهندسی نرم افزار
صفحه 6:
مرحله تعریف
(Wile
صفحه 7:
Z a
: ey
=) emer
۱ ۱ 1 i Ce
/ 5-3
= هید و ۳ 1 ۱ ||
صفحه 8:
کارهای مربوط به توسعه نرم افزاررادامه)
صفحه 9:
i ۱۳۸۸ Ke
ee
۷
صفحه 10:
فرآیند نرم افزاررادامه)
صفحه 11:
ا 3 i
كرجه ب ره
۱ 1 آزمونی ضِ ۱
\
|
ee م و ane ol را
مکانیزمهای کنترل کیفی ترم اقرار است که در سار ار
هجو ورن |
2 3
صفحه 12:
|
ae سك باید لٍ دلا
ree Lauri ea
ارت عاد wie = 2
1
0
صفحه 13:
۳ ی
en i ooo
صفحه 14:
صفحه 15:
صفحه 16:
این مدل را که گاهی چرحه حبات کلاسیک یا "مدل
ار سر رس
ا 2 ,سر 2
صفحه 17:
صفحه 18:
مدل نمونه سازی
IN شرت سزت برس ررس
صفحه 19:
صفحه 20:
بر ارت
5
ols ts
صفحه 21:
صفحه 22:
تولید برنامه کاربردی
> ۳ ای
متعارف نسل سوم فرآیتد ۳۵0 تلاش می کند تا از جرء های
برنامه موجود مجددا استفاده کرده يا جزء های قابل استفاده
0
صفحه 23:
آزمون و گردش
و و
تسبارى ار احزاق ابرنامة مورة |ازمون قرار كرفته انذراين كار در
|
ات
وف
۳
5210100
صفحه 24:
صفحه 25:
ابص مدل های پردازش ROO
صفحه 26:
مدل هاى تکاملی فرآیند نرم افزار
۱ -مدل فزاینده (فزایشی)
مدل زنجیری خطی رابا دیدگاه تکرار مدل
صفحه 27:
۳7
صفحه 28:
مدل فرایند فزاینده(ادامه)
صفحه 29:
۳7
صفحه 30:
شروع پروژه
صفحه 31:
۱ ی Foal
cs aes 0 ۳ 7 per Lis py a ارژیابی نمونه
\ \ سر تصب وإرآه اتذازى.
۳1 | سلس |
صفحه 32:
شش منطقه ms ی(ادامه)
ین ی
Bee spi sib رم
3 ار ما ۱/۳ iE
00 ول اند قله رو براك او پرژه se در ee
۱. ۱ | | /
1 | \ || | 1 | / 1
۳۹ |
صفحه 33:
۳-مدل حلزونی 6010000/10
صفحه 34:
(aalsl) WINWIN
صفحه 35:
ببرقراریلهدلناصلی 8
صفحه 36:
زارى بايد 1
در بر را 00 5 pads
Fier fol oar 0
Ghar ۳7
زو کم و تاک با رتفد
/ سس 5
۱7 7 j
صفحه 37:
۴-مدل توسعه همروند
La 4
3 راک توس 55 وگ اران ۱
ارت اه یل دح ۱
ee بت
| \
| \
کت اک
۱2 1 / 7
| ۱ ۳" / /
صفحه 38:
یک عنصر از مدل فرآیند همروند
ar
م | | | |
د
۲ و
تحت بازبینی
۳5
تحت تجدید نظر
صفحه 39:
ترا همزمان رج ۳ pa
ae Be ل مكارو
ب در مورا هما
3 ۱
3 1 ۳
صفحه 40:
۲ ليد 3 0 ea
1 عي ۳۳ oe ii
۱ \ \ ۳ ay
bbe سن 1 ed ee
صفحه 41:
So
me
aye
صفحه 42:
مدل شیوه های رسمی
صفحه 43:
۳ سیم با و
اي مشایه استلاده دام ب
صفحه 44:
و
۳
| ۱۳ eae
es ere 0 "5 ۱
نبازمند تحليل:طراحى و آزمون بيشترىادر وقت صورت كيرد كه ابن
كار از طرق مدن كد سا يسرك
می آید.
صفحه 45:
صفحه 46:
فصل دوم :فرآیند
1
امین کاظمی
فرآیند
فرایند چیست؟هنگامیکه شما تولید یک محصول یا سیستم را مدنظر دارید،نکته مهم این
است که وارد یک سری مراحل قابل پیش بینی شوید.نقشه ای که به شما کمک
می کند؛به نتیجه ای سریع و درخشان دیت یابی.نقشه ای که شما پیگیری می کنید،
یک فرآیند نرم افزاری نامیده می شود .
محصول کار چیست؟از نظر نقطه نظر مهندسی نرم افزار ،محصوالت کاری،
برنامه ها،اسناد و داده هایی است که در نتیجه فعالیتهای مهندسی نرم افزاری که در
طول فرآیند صورت گرفته اند،تولید شده اند.
چگونه مطمئن شوم که کاری که انجام داده ام درست است؟ یک سری فرآیندها و
مکیزمای ارزیابی نرم افزار وجود دارد که سازمانها را قادر می سازد«تکامل فرآیند نرم
افزاری»خود را تعیین کنند.
امین کاظمی
مهندسی نرم افزار
آیا مفهوم فرآیند با مهندسی نرم افزار یکسان است؟پاسخ هم «بله» و هم
«خیر» است فرآیند نرم افزار روشی را تعریف می کند که در هنگام طراحی نرم
افزار بکار گرفته می شود.اما مهندسی نرم افزار نیز در بر گیرنده فناوریهای اسLLLت
که در فرآیند وجود دارند یعنی روشهای فنی و ابزار خودکار.
مهندسی نرم افزار عبارتست از:ایجاد و استفاده از اصول ساده مهندسی
به منظور رسیدن به یک نرم افزار مقرون به صرفه که قابل اطمینان
بوده و روی دستگاههای واقعی کارآمد باشد.
مهندسی نرم افزار:
-1بکارگیری یک روش سیستماتیک ،منظم کمیت پیر برای ارائه ،عملیات و
حفظ و نگهداری نرم افزار است یعنی بکارگیری مهندسی و شیوه های آن در نرم
افزار .
-2بررسی رهیافتهای آورده شده در قسمت(.)1
3
امین کاظمی
فرآیند،شیوه ها و ابزارها
اساس نرم افزار یک الیه به نام فرآیند است.فرآیند مهندسی نرم افزار مانند
چسبی است که الیه های فناوری را با هم نگاه داشته،توسعه به موقع و منطقی
نرم افزارکامپیوتری را ممکن می سازد فرآیند چارچوبی برای مجموعه ای از
حوزه های کلیدی و اصلی فرآیند خود مهیا می سازد که باید برای تحویل
موثر فناوری مهندسی نرم افزار بوجود آید.
حوزه های اصلی پردازش [ )KPAs( ]PAU93مبنای کنترل مدیریت
پروژه های نرم افزاری را تشکیل داده و بستری فراهم می کنند که در آن روشهای
فنی بکار گرفته می شود،محصوالت تولید می شوند(،مدلها،اسناد،داده ها،گزارشات،
فرمها و غیره)،محکهایی بوجود می آیند،کیفیت سنجیده می شود و تغییرات احتمالی
ترتیب داده می شوند.
روشهای مهندسی نرم افزار چگونگی انجام کار را از نظر فنی برای
ساخت نرم افزار مهیا می کنند.روشها ی مهندسی نرم افزار به مجموعه ای از
اصول اولیه تکیه دارند که بر هر حوزه فناوری حاکم بوده و شامل فعالیتهای
مدل سازی و دیگر فنون توصیفی است.
4
امین کاظمی
یک دید کلی از مهندسی نرم افزار
مهندسی عبارتست از:
تحلیل
طراحی
ساخت
تایید
مدیریت امور فنی (یااجتماعی)
بدون توجه به ماهیت چیزی که مورد کارهای مهندسی قرار می گیرد.
کارهای مربوط به مهندسی نرم افزار را میتوان به سه گروه کلی تقسیم کرد،
بدون توجه حوزه کاربرد،اندازه پروزه یا پیچیدگی آن .
مرحله تعریف
مرحله توسعه
مرحله پشتیبانی
5
امین کاظمی
مرحله تعریف
روی آنچه که این کارها هستند(،)whatمتمرکز می شود.یعنی در
طول تعریف مهندسی نرم افزار سعی می کند نوع اطالعاتی را که باید
پردازش شوند،عملکرد مطلوب،نوع وضعیت سیستم مورد انتظار ،نوع
رابط هایی که باید ایجاد شوند.محدودیتهای موجود در طرح و
معیارهای صحت را که برای تعریف یک سیستم موفق الزمند،شناسایی
کند.نکات اصلی مورد نیاز در سیستم و نرم افزار شناسایی شده
اند .گرچه روشهای بکار گرفته شده در طول مرحله تعریف ،بسته به
معیار مهندسی نرم افزار که بکار رفته بسیار متفاوتند اما سه کار اصلی
در بعضی موارد به وقوع می پیونددمهندسی سیستم یا اطالعات،طراحی
پروژه نرم افزاری،و تحلیل مربوط به موارد مورد نیاز.
6
امین کاظمی
مرحله توسعه
مرحله توسعه وارائه روی چگونگی ()howمتمرکز است.یعنی در طول این مرحله
مهندس سعی دارد چگونگی ساخته شدن داده ها،اجرای کار در ساختار نرم
افزاری،چگونگی توصیف رابط ها چگونگی تبدیل طرح به زبان برنامه نویسی_یا
زبان غیر رویه ای)و چگونگی انجام آزمون را توصیف کند.روشهای بکار گرفته شده
در طول مرحله توسعه متفاوتند اما سه کار فنی خاص همیشه رخ می دهند:طراحی
نرم افزار،تولید کد و آزمون نرم افزار.
مرحله پشتیبانی
7
روی تغییر متمرکز()changمتمرکز است که با اصالح خطا،ایجاد تطابقات الزم در
حد الزم در رابطه با محیط نرم افزاری و تغییراتی ناشی از بهبود کار بخاطر تغییر
نیاز مشتری ،رابطه دارد
در طول این مرحله چهار نوع تغییر را شاهد هستیم.
اصالح
تطابق
بهبود وضعیت
پیشگیری
امین کاظمی
کارهای مربوط به توسعه نرم افزار(ادامه)
این فازها مراحل توصیف شده در دیدگاه کلی ما نسبت به مهند سی نرم
افزار بوسیله یک سری فعالیتهای پوششی تکمیل می شوند .فعالیتهای
نمونه در
این گروه شامل موارد زیر است :
کنترل پیگیری پروژه نرم افزاری
تضمین کیفی نرم افزار
مدیریت طرح نرم افزری
آماده سازی اسناد و تولید
مدیریت قابلیت استفاده مجدد
بازنگری های فنی رسمی
ارزیابی
مدیریت خطر
8
امین کاظمی
فرآیند نرم افزار
9
بعضی از کارها که هر کدام مجموعه ای از کارهای مهندسی نرم
افزاری،معیارهای پروژه محصول کار و نقاط تضمین کیفیت هستند،باعث
می شود که این مجموعه های معین فعالیتی در مشخصه های پروژه نرم
افزری بکار گرفته شده و در وجموعه تقاضاهای تیم پروژه نیز باشند.
موسسه مهندسی نرم افزار ()SEIمدل جامعی ارائه داده که روی مجموعه
ای از توانائیهای مهندسی نرم افزار که باید برای دسترسی سازمانها به سطوح
مختلف بلوغ فرآیند وجود داشته باشد،پیش بینی می شود.
این طرح درجه بندی میزان تطابق با توانایی مدل کامل (]PAU93[ )CMM
را مشخص می کند که فعالیتهای اصلی الزم در سطوح مختلف فرآیند تکامل را
تعریف می کند.
امین کاظمی
10
فرآیند نرم افزار(ادامه)
سطح :1اولیه.
فرآیند نرم افزاری بصورت موقتی و حتی بعضی اوقات بسیار درهم و برهم توصیف شده
است.چند فرآیند تعریف می شود و موفقیت به تالش های فردی بستگی دارد.
سطح :2قابل تکرار.
فرآیندهای اولیه مدیریت پروژه برای مشخص کردن هزینه،زمان بندی وقابلیت کارایی آن
صورت می گیرند.اصل ضروروی فرآیند در جایی است که موفقیتهای پیش تر پروژه هایی
کاربردهای مشابه را تکرار می کند.
سطح :3تعریف شده.
فرآیند نرم افزاری برای مدیریت و فعالیت های مهندسی در طول یک فرآیند پردازش نرم
افزاری در سازمان ثبت شده،استاندارد و منسجم است.
سطح :4مدیریت شده.
اقدامات دقیق صورت گرفته پردازش نرم افزار و کیفیت محصول همگی کنترل می شوند.
سطح :5بهینه سازی.
بهبود مکرر فرآیند با توجه به بازخورد کمی فرآیند و از روی آزمون ایده های نو آورانه و
فناوریهای تازه ،مقدور است.
امین کاظمی
نکات
• نکته:حائز اهمیت است که هر سطح باالی سطح 2زیر مجموعه ای از سطح
قبلی است.
• نکته:سطح 4دربرگیرنده مفهوم اندازه گیری و استفاده از متریک است.
• متریک یک کمیت معنادار است که می توان آن را از روی بعضی از اسناد یا
کدی در داخل پروژه نرم افزاری استخراج نمود.
• در یک بخش از کد برنامه ،این متریک در صوتی معنی دارد که نشانه ای از
کارهای الزم را آزمون کد مهیا کند.این متریک مستقیما با تعداد مسیرهای
آزمونی داخل کد مربوط است.
• نکته:سطح 5باالترین سطح قابل دسترسی است .این سطح نمایانگر آنالوگ
مکانیزمهای کنترل کیفی نرم افزار است که در مکانیزمهای دیگر و صنایع کامل
تر وجود دارند.
11
امین کاظمی
نکات (ادامه)
SEIدارای حوزه های اصلی در فرآیند است( )KPAکه هر کدام یک سطح
رشد و تکامل دارندKPA.ها آن گروه از فعالیت های مهندسی را توصیف می
کنند که باید برای صورت گرفتن کار درست در سطح بخصوصی موجود داشته
باشند.
هر KPAبا شناسایی مشخصه های زیر توصیف می شود:
اهداف – اهداف کلی که KPAباید به آن دست یابد .
تعهدات – نیازمندیهای (که از طرف سازمان اعمال شده) که باید مرتفع شود تا
به اهداف دست یابد و دالیلی باید ارائه شود که با اهداف مطابقت داشته باشد.
توانائیها – این چیزها باید در جای خود باشند (چه از نظر سازمانی و چه هز
نظر فنی)که سازمان بتواند به تعهداتش عمل کند.
فعالیتها -کارهای خاصی که الزمند تا به عملکرد KPAدست یابند.
12
امین کاظمی
نکات )ادامه(
روشهای کنترل پیاده سازی – شیوه ای که با آن فعالیتها در جای خود قرار می
گیرند کنترل می شوند.
روش هایی برای ارزیابی درستی پیاده سازی – شیوه ای که با آن عمل درست برای
KPAمشخص می شوند .
هجده ( KPAهر کدام با استفاده از این خصوصیات توصیف شده اند) در طول
فرآیند تکمیل کار تعریف شده و در سطح مختلف فرآیند تکاملی بصورت طرح
درآمده اند KPA.زیر را در هر سطح تکمیلی فرآیند به دست می آوریم :
سطح 2فرآیند تکمیلی
مدیریت پیکربند ی نرم افزار .
تضمین کیفیت نرم افزار .
مدیریت پیمان کاریهای نرم افزار.
پی گیری نظارت پروژه نرم افزاری .
مدیریت نیازمندیها.
13
امین کاظمی
سطح 3فرآیند تکمیلی
بازبینی های یکسان .
همکاری درونی گروهی .
مهندسی محصولی نرم افزاری .
مدیریت یکپارچه نرم افزاری .
برنامه آموزشی .
تعریف فرآیند سازمانی .
نقطه تمرکز فرآیند سازمانی
سطح 4فرآیند تکمیلی
مدیریت کیفیت نرم افزار.
مدیریت فرآیند کمی.
مدیریت تغییر فرآیند .
سطح 5فرایند تکمیلی
14
پیشگیری از نقیصه و اشکال
امین کاظمی
مدلهای فرآیند نرم افزار
یک تیم از مهندسین نرم افزار در تولید یک راهبرد کمک کنید
که در بر گیرنده الیه های فرآیند روشها و ابزاری است.ا
اغلب این راهبرد را مدل فرآیند یا پارادایم مهندسی نرم افزار می
نامند .یک مدل فرآیند برای مهندسی نرم افزار بر اساس ماهیت
پروژه و کاربرد آن روشها و ابزار مورد استفاده و کنترل ها و موارد
قابل ارائه که الزمند انتخاب می شود .
تمام کارهای توسعه وارائه یک رنم افزار را می توان بعنوان یک
حلقه حل مشکل توصیف کرد (شکل)که در آن چهار مرحله
مشخص دیده می شوند .
تعریف مسله
بیان
وضعیت
توسعه فنی
جامعیت راه حل
15
امین کاظمی
مدل ترتیب خطی
این مدل را که گاهی"چرخه حیات کالسیک" یا "مدل
آبشاری" می نامند ،بیانگر یک نگرش نظام مند و زنجیری
نسبت به تولی نرم افزار است که در سطح سیستم شروع شده و
با تحلیل ،طراحی ،کد گزاری ،آزمون و پشتیبانی نرم افزاری
پیشروی می کند .
مهندسی سیستم/اطالعات
آزمون
16
برنامه
نویسی
طراحی
امین کاظمی
تحلیل
مشکالت ترتیب خطی
17
•
پروژه های واقعی به ندرت از جریان زنجیری و متوالی که مدل ارائه
میدهد ،پیروی می کند .گرچه مدل خطی می تواند با تکرار تطابق
یابد ،اما آن را به طور غیر مستقیم انجام می دهد .در نتیجه ،با انجام
کار توسط اعضای پروژه ممکن است موارد گیج کننده ای رخ دهد .
•
اغلب برای مشتری مشکل است که تمام نیاز های خود را به طور
مشخص بیان کند .مدل زنجیری خطی به این امر نیاز داشته و در
تطابق عدم قطعیت طبیعی که در آغاز بسیاری از پروژه ها وجود
دارد ،دارای مشکل است .
•
مشتری باید صبور باشد .نسخه کاری برنامه تا اواخر مدت زمان کاری
پروژه در دسترس نخواهد بود .اگر مشکلی وجود داشته و تا اواخر کار
برنامه نویسی که برنامه مورد بازبینی قرار می گیرد مشخص نشود ،می
تواند فاجعه آمیز باشد .
امین کاظمی
مدل نمونه سازی
پارادیم نمونه سازی بهترین روش برای حل مشکالتی از قبیل :
نامطمئن بودن مشتری از کارایی الگوریتم،قابلیت تطابق آن با یک سیستم
عامل یا شکل ارتباط متقابل دستگاه و انسان .
نمونه نخست توسط مشتری /کاربر ارزیابی شده و از آن برای رفع نیازهای
نرم افزاری که قرار است تولید شود استفاده می شود وقتی نمونه اولیه طوری
تنظیم شد که نیازهای مشتری را براورده سازد ،عمل تکرار رخ می دهد ،در
حالیکه در همان زمان تولید کننده نرم افزار را قادر میسازد نیاز های مشتری
را بهتر درک کند .
18
امین کاظمی
پارادیم ساخت نمونه
ϧΪϳΪΠΗΎϳΖΧΎγ
έΩ
ϪϧϮϤϧϝΪ ϣ
ήψ
̵ ήΘθ ϣΎΑϩ έϭΎΤϣ
ارزیابی مشتری
از
مدل نمونه
19
امین کاظمی
مدل ساخت سریع برنامه ها()RAD
20
Rapid Application Developmentبا توسعه سریع کاربرد
()RAD
یک مدل فرایند افزایشی تولید نرم افزار است که تنها بر یک سیکل تولید بسیار
کوتاه تاکید می کند مدل ( )RADیک نسخه تطابق یافته سرعت باال از مدل
زنجیری خطی است که در آن توسعه سزیع با استفاده از ساختمانی مبتنی
بر اجراء تشکیل دهنده حاصل می شود اگر موارد مورد نیاز به خوبی شناسایی
شده و دامنه پروژه محدود شود ،فرایند RADاین امکان را به تیم می دهد
که سیستم تمام کاربردی را ظرف مدت بسیار کوتاهی ارائه دهند
(مثال 60تا 90روز )[ ]MAR91روش RADکه اساسا برای کارهای
سیستمهای اطالعاتی استفاده می شود در بر گیرنده مراحل زیر است .
[]KER94
امین کاظمی
مدلسازی تجاری
جریان اطالعات را در میان کارهای تجاری مدلسازی می کند.
مدلسازی داده ای
جریان اطالعاتی که به عنوان بخشی از مرحله مدلسازی تجاری تعریف
شده در مجموعه ای از اهداف داده ای که برای پشتیبانی تجاری
الزمند ،پاالیش می شود .مشخصه های هر هدف شناسایی شده و ارتباط
بین این اهداف تعریف می شود .
مدلسازی فرآیند
اهداف داده ای که در مرحله مدلسازی داده ها تعریف شده اند تغییر می
یابند تا
به جریان اطالعاتی الزم برای اجرای یک کار تجاری ،دست پیدا کنند
.توضیحات عمل پردازش برای افزودن ،شناسایی ،حذف یا بازیابی یک
شی ءداده ای ارائه می شوند .
21
امین کاظمی
تولید برنامه کاربردی
به جای تولید نرم افزار با استفاده از زبانهای متعارف برنامه نویسی
متعارف نسل سوم فرآیند RADتالش می کند تا از جزء های
برنامه موجود مجددا استفاده کرده یا جزء های قابل استفاده
مجددی را تولید کند.
امین کاظمی
آزمون و گردش
23
از آنجا که فرایند RADبراستفاده مجدد تأکید می کند
بسیاری از اجزای برنامه مورد آزمون قرار گرفته اند.این کار در
زمان کلی آزمون صرفه جویی
می کند.
مدل فرآیند RADدر شکل زیر تشریح شده
است.محدودیتهای زمانی اعمال شده بر پروژه RADنیازمند
یک دامنه قابل اندازه گیری است.
امین کاظمی
تیم شماره1
تیم شماره 2
تیم شماره3
مدل سازی
مدل سازی
تجاری
مدل سازی
تجاری
مدل سازی
داده ای
تجاری
مدل سازی
داده ای
مدل سازی
داده ای
مدل سازی
فرایند
مدل سازی
فرایند
مدل سازی
فرایند
تولید برنامه
کاربردی
تولید برنامه
کاربردی
آزمون و
چرخش
تولید برنامه
کاربردی
تولید برنامه
کاربردی
آزمون و
آزمون و
چرخش
24
چرخش
امین کاظمی
نقایص مدل های پردازش RAD
25
در مورد پروژه های بزرگ اما قابل اندازه گیری RAD،نیازمند منابع
انسانی کافی است تا تعداد تیمهای درست RADرا تشکیل دهد.
RADنیازمند تولید کننده و مشتری هایی است که بتوانند فعالیت
های سریع الزم را برای رسیدن به یک سیستم کامل در یک
چارچوب زمانی کوتاه انجام دهند.
همه نوع برنامه کاربردی برای RADمناسب نیست.اگر سیستم به
درستی پیمانه بندی نشود،ساختن اجزای الزم برای RADمشکل
ساز خواهد بود.اگر عملکرد عالی موضوع اصلی است و قرار است از
طریق تنظیم رابط ها با اجزای سیستم تأمین شود روش RAD
ممکن است کارگر نباشد.
RADوقتی که خطرارت فنی بسیار زیاد است مناسب نخواهد بود.
امین کاظمی
مدل های تکاملی فرآیند نرم افزار
- 1مدل فزاینده (افزایشی)
مدل فزاینده عناصر مدل زنجیری خطی را با دیدگاه تکرار مدل
نخست،ترکیب می کند.
وقتی از یک مدل فزاینده استفاده می شود،اولین بخش رشد
اغلب،هسته محصول اصلی است.یعنی نیازهای اولیه مورد توجه
قرار می گیرند اما بسیاری از مشخصه های تکمیلی ارائه نمی
گردند.هسته محصول بوسیله مشتری مورد استفاده قرار می گیرد.
این طرح اصالح هسته محصول را مورد توجه قرار می دهد تا بهتر
نیازهای مشتری را برآورده نموده و ارائه مشخصه ها و قابلیت های
کاری اضافی مورد نظر مشتری را نیز بهتر سازد.این فرآیند بدنبال
تحویل هر بخش تکرار می شود تا وقتی که محصول کامل تولید
شود.
26
امین کاظمی
تحویل نخستین افزایش
تحویل دومین افزایش
تحویل سومین افزایش
تحویل چهارمین افزایش
افزایش1
مهندسی سیستم اطالعات
آزمون
آزمون
27
طراحی
برنامه
طراحی
طراحی
مدل افزایشی
امین کاظمی
افزایش 2
تحلیل
افزایش 3
افزایش 4
برنامه
آزمون
آزمون
برنامه
برنامه
طراحی
تحلیل
تحلیل
تحلیل
مدل فرایند فزاینده(ادامه)
مدل فرآیند فزاینده مثل ساخت نونLLLLه اولیLLLLه و دیگر روش های ارزیابی و
تکمیل ماهیت تکرار شونده دارد اما بر خالف نمونه اولیLLه،مLLدل فزاینLLده روی
تحویLLLل یLLLک محصLLLول عملیاتی با هر بخش رشLLLد یافتLLLه و تأکیLLLد
می کند.افزایشهای اولیه نسخه های محدود شده محصول نهایی هسLLLتند اما
آنها این توانایی را دارند که در خLLدمت کLLاربر بLLوده و همچLLنین محلی بLLرای
ارزیابی توسط کاربر فراهم می کنند.
28
امین کاظمی
-2مدل پیچشی(حلزونی)
29
مدل حلزونی که در اصل توسط بوهم پیشنهاد شد یک مدل فرآیند نرم
افزار تکاملی است که ماهیت تکراری نمونه اولیه را با جنبه های نظام
مند و کنترل شده مدل زنجیری خطی ارتباط می دهد.
با استفاده از مدل حلزونی نرم افزار در یک سری نسخه های فزاینده
تولید می شود.در طول تکرارهای اولیه ممکن است نسخه اولیه یک
مدل روی کاغذ یا تنها الگوی اولیه باشد.در طول تکرارهای بعدی نسخه
های نسبتا کاملتری از سیستم مهندسی شده و تولید می شود.
مدل حلزونی از نظر فعالیتی به چند قسمت تقسیم می شود که به آنها
مناطق کاری نیز می گویند.معموال بین 3و 6منطقه وجود دارد.
امین کاظمی
مدل حلزونی
طرح ریزی
تحلیل ریسک
ارتباط با مشتری
نقطه محوری
شروع پروژه
مهندسی
ساخت و نصب و
تحویل
پروژه های نگهداری محصوالت
پروژه های بهینه ساازی محصوالت
30
پروژه های ساخت محصول جدید
امین کاظمی
پروژه های توسعه مفهوم
ارزیابی مشتری
شش منطقه کاری
31
ارتباطات مشتری -کارهای الزم برای ایجاد ارتباط مؤثر بین تولید کننده و
مشتری.
برنامه ریزی -کارهای الزم برای تعریف منابع،
محدوده های زمانی و دیگر اطالعات مربوط به پروژه.
تحلیل خطر -کارهای الزم برای ارزیابی فنی و خطرارات مدیریتی.
مهندسی و طراحی -کارهای الزم برای ساخت یک یا چند نمونه از برنامه
کاربردی.
ساخت و ارائه -کارهای الزم برای ساخت،آزمون،نصب و تهیه پشتیبانی برای
کاربر(مثل مستند سازی و آموزش)
ارزیابی مشتری -کارهای الزم برای بدست آوردن واکنش مشتری بر اساس
ارزیابی نمونه های نرم افزاری تولید شده در طول مرحله مهندسی و اجرا شده
در طول مرحله نصب و راه اندازی.
امین کاظمی
شش منطقه کاری(ادامه)
با شروع فرایند تکمیلی،تیم مهندسی نرم افزار در جهت حرکت عقربه های
ساعت،حرکت در مارپیچ را آغاز می کند و این کاراز مرکز شروع می شود.اولین
مدار حول مارپیچ ممکن است منجر به تولید مشخصه محصول شود.
با عبور از هر مرحله منطقه برنامه ریزی،کارهای تطابقی با طرح پروژه صورت
می گیرد.هزینه و زمانبندی بر اساس بازخورد ارزیابی مشتری،تنظیم می
گردند.عالوه بر آن مدیر پروژه تعداد تکرارهای تنظیم شده الزم برای تکمیل
نرم افزار را تعیین می کند.مدل حلزونی می تواند کارهای انطباقی را صورت
دهد تا در تمام طول حیات نرم افزار کامپیوتری به کار گرفته شود.
در مدل حلزونی هر مکعبی که در طول محور قرار داده شده است را می توان
به عنوان نماینده نقطه شروع برای انواع پرژه های مختلف در نظر گرفت.
32
امین کاظمی
-3مدل حلزونیWINWIN
مدل حلزونی بیانگر چارچوب فعالیتی است که ارتباطات مشتری را
مورد توجه قرار می دهد.هدف از این فعالیت عبارتست از بیرون
کشیدن اطالعات در مورد نیازهای پروژه از مشتری د ریک بستر
مناسب است.
مشتری و تولید کننده وارد فرایند مذاکره می شوند که در آن
ممکن است از مشتری قابلیت کارایی،عملکرد و سایر مشخصه های
سیستم یا محصول در برابر هزینه و بازار در همان موقع سؤال شود.
33
امین کاظمی
مدل حلزوی (WINWINادامه)
در مدل حلزونی بجای یک رابطه صرف مشتری ،کلیLLLLه فعالیت های
زیر تعریف می شوند:
-1شناسایی سیستم یا دارندگان اصلی سیستم های فرعی
-2تعیین شرایط برد دارندگان سهم.
-3مLLذاکره در مLLورد شرایط بLLرد سLLهامدار بLLرای تطLLابق دادن آنها
درمجموعه ای از شرایط win-winبرای همه افراد درگیر.
34
امین کاظمی
مدل حلزونی WINWIN
الف-تطابق شرایط برد3-
ب-برقراری اهداف اصلی3-
شناسایی شرایط2-
برد گرو گذاران
محدودیتها و قیود و جایگزین های
شناسایی گرو گذاران1-
سطح بعد
سطح بعد
ارزیابی فرایند و محصول های4-
جایگزین و مرتفع کردن ریسک ها
تعریف سطح بعد محصول و 5-
فرایند
مشتمل بر بخشها و قسمتها
35
امین کاظمی
اعتبار سنجی 6-
محصول
و تعریفات فرایند
مدل حلزونی( WINWINادامه)
عالوه بر تأکید روی مذاکرات اولیه،مدل حلزونی winwinسه معیار فرایند پردازش نیز
معرفی می کند که نقاط تکیه یا anchorنامیده می شوند و به تکمیل یک چرخه حول
مارپیچ کمک نموده و معیارهای تصمیم گیری را قبل از انجام پروژه نرم افزاری مهیا می
کنند.
نقاط تکیه نمایانگر سه دیدگاه مختلف از پیشرفت در زمانی هستند که پروژه مارپیچ را طی
می کند.اولین تکیه گاه که به آن اهداف چرخه حیات می گویند
( ) LCOمجموعه ای از اهداف را برای هر فعالیت عمده مهندسی نرم افزار بیان می کند
مثًال بعنوان بخشی از ،LCOمجموعه اهداف مرتبط با تعریف نیازهای سطوح ارشد
سیستم/محصول.
دومین نقطه تکیه گاه به نام معماری چرخه حیات ( )LCAاهدافی را ارائه می دهد که باید
با تعریف شدن سیستم و نرم افزار مرتفع شوند،مثًال بعنوان بخشی از LCAتیم پروژه نرم
افزاری باید توضیح دهد که قابلیت کارایی اجزای نرم افزاری قابل استفاده مجدد و موجود
در بازار را برآورده کرده و اثر آنها را روی تصمیمات ساختاری در نظر گرفته است.
قابلیت عملیلتی اولیه()LOCسومین نقطه تکیه گاه است و نمایانگرمجموعه اهداف مربوط
به آماده سازی نرم افزار برای نصب/توزیع،آماده سازی سایت قبل از کارهای نصب و راه
اندازی و کمک مورد نیاز از طرف همه طرفهایی است که از نرم افزار استفاده یا آن را
پشتیبانی می کنند.
36
امین کاظمی
-4مدل توسعه همروند
مدل تولید همزمان که گاهی به آن مهندسی همروند می گویند که
توسط دیوس و سیترام توصیف شده است:
مدیران پروژه ای که وضعیت پروژه را از فقط با دنبال کردن مراحل
اصلی تعقیب می کنند هیچ نظری در مورد وضعیت پروژه های خود
ندارند.اینهانمونه هایی از تالش برای پیگیری مجموعه فعالیت های
بسیار مشکل با استفاده از مدل های بسیار ساده است.
مدل های فرآیند مهندسی نرم افزار که توسط هامفری و کلتر ارائه
شده اند،نشانگر همروندی فعالیت های رخ داده در طول هر مرحله
می باشند.
37
امین کاظمی
یک عنصر از مدل فرآیند همروند
شروع
توسعه نخست
منتظر تغییرات
تحت بازبینی
تحت تجدید نظر
قرار گرفتن بر
خط مبنا
انجام شده
38
امین کاظمی
مدل توسعه همروند(ادامه)
مدل فرآیند همزمان یک سری رویدادهایی را مشخص
می سازد که انتقال از حالتی به حالت دیگر را برای هر کار مهندسی نرم
افزار آغاز می کنند.
مدل فرآیند همزمان اغلب بعنوان معیاری برای توسعه و تولید برنامه های
کاربردی خادم/مخدوم استفاده می شود.یک سیستم خادم/مخدوم متشکل از
مجموعه ای اجزای کاربردی است.وقتی مدل فرآیند همزمان در
خادم/مخدوم استفاده می شود،فعالیت هایی را در دو بعد تعریف می کند،
بعد سیستم و بعد مؤلفه.موضوعات مربوط به سیستم با استفاده از سه
فعالیت مورد توجه قرار می گیرند،طراحی،مونتاژ و کاربرد.بعد جزء از نظر دو
فعالیت مورد بررسی است:طراحی و شناسایی و همزمانی به دو شکل حاصل
می شود:
-1فعالیت های سیستم و جزء که بطور همزمان رخ می دهند و
می توان آنها را با استفاده از رهیافت وضعیت گرا مدلسازی کرد.
-2یک برنامه کاربردی معمول خادم/مخدوم بوسیله اجزا بسیاری به اجرا در
می آید که هر کدام از آنها را می توان بطور همزمان طراحی و شناسایی
نمود.مدل فرایند همزمان در مورد همه نوع تولید نرم افزار قابل اجراست و
تصویر دقیقی از وضعیت کنونی پروژه را ارائه می دهند.
39
امین کاظمی
توسعه مبتنی بر اجزاء
مدل تولید بر پایه جزء()CBDبسیاری از مشخصه های مدل حلزونی را در
بر دارد.
ماهیت آن تکاملی است،به یک روش تکراری نیاز دارد تا نرم افزار را تولید
کند.این مدل از برنامه های کاربردی تشکیل شده است که از اجزای نرم
افزاری از پیش بسته بندی شده اند که به آنها کالس یا رده می گویند.
مدل تولید بر پایه جزء منجر به استفاده مجدد نرم افزار شده است.
فرآیند تولید یکپارچه نرم افزار نماینده تعدادی از مدلهای تولید بر پایه اجزاء
است که در صنعت پیشنهاد شده است.با استفاده از زبان مدلسازی یکپارچه
یا ،UMLفرآیند یکپارچه جزءهایی را تعریف
می کند که برای ساختن سیستم استفاده شده و رابطه هایی که این جزءها
را به هم وصل می کنند.
40
امین کاظمی
توسعه مبتنی بر اجزا
تحلیل مخاطرات
طرح ریزی
ارتباط با مشتری
مهندسی ساخت و اجرا
41
امین کاظمی
ارزیابی مشتری
مدل شیوه های رسمی
مدلی که بر پایه شیوه های رسمی بدست می آید دربرگیرنده یک سری فعالیت
هایی است که منجر به تعیین رسمی مشخصه های نرم افزار کامپیوتر با روابط
ریاضی می شود .روش های رسمی مهندسی نرم افزار را قادرمی سازند که یک
سیستم مبتنی بر کامپیوتر را با بکارگیری عبارات ریاضی بسیار دقیق مشخص
توسعه داده و تغییر دهد.یک نوع از این روش به نام مهندسی نرم افزار اتاق
پاک است.
با اینکه مدل روش های رسمی بصورت یک روش حتمی و رایج در نیامده اما
یک نرم افزار بدون مشکل را تضمین می کند.با این وجود مسئله توانایی آن در
محیط تجاری مورد بحث قرار دارد:
-1توسعه روش های رسمی در حال حاضر کامًال وقت گیر و گران است.
-2از آنجا که تولید کنندگان کمی در مورد نرم افزار دارای پیش زمینه کافی
برای استفاده از روش های رسمی هستند یک دوره آموزش پر هزینه الزم
است.
-3استفاده از مدل ها بعنوان یک مکانیزم ارتباطی برای مشتریان غیر کارکشته
از نظر فنی مشکل است.
42
امین کاظمی
فنون نسل چهارم
اصطالح فنون نسل چهارم ()4GTدر بر گیرنده طیف گسترده ای از
ابزارهای نرم افزاری است که دارای یک چیز مشترک هستند:
هر کدام به مهندس نرم افزار این قدرت را می دهند که یک مشخصه نرم
افزاری را در سطح باالیی مشخص سازد.سپس ابزار به طور خودکار منبع را
بر اساس مشخصه های تولید کننده تولید می نماید.
یک محیط تولید نرم افزار که معیار 4GTرا مورد پشتبانی قرار
می دهد شامل چند یا کل ابزار زیر است:
زبانهای غیر رویه ای برای تحقیقات در پایگاه داده ای،ارائه
گزارش،دستکاری و تغییر داده ها،تعریف و ارتباط متقابل صفحه ای،ارائه
کد،توانایی گرافیکی سطح باال،توانایی صفحه گسترده و تولید خودکار
HTMLو زبانهای مشابه استفاده شده برای ایجاد سایت وب با استفاده از
ابزارهای پیشرفته نرم افزاری.
43
امین کاظمی
فنون نسل چهارم(ادامه)
می توان وضعیت کنونی روش های 4GTرا به صورت زیر خالصه کرد:
-1استفاده از روش 4GTروش بسیار ارزشمندی برای بسیاری از
حوزه های مختلف در برنامه های کاربردی است 4GT.همراه با
ابزارهای مهندسی نرم افزار با کمک کامپیوتر()CASEو مولدهای
کد،یک راه حل خوب برای بسیاری از مشکالت نرم افزاری ارائه می
دهد.
-2اطالعات جمع آوری شده از شرکتهایی که از 4GTاستفاده می
کنند نشانگر این است که زمان الزم برای تولید نرم افزار برای بر نامه
های کاربردی کوچک و متوسط تقریبًا کاهش یافته و میزان طرح و
تحلیل برای برنامه های کوچک نیز کم شده است.
-3استفاده از 4GTبرای کارهای تولید نرم افزار در مقیاس بزرگ
نیازمند تحلیل،طراحی و آزمون بیشتری در وقت صورت گیرد که این
کار از طریق حذف کدها بوجود
می آید.
44
امین کاظمی
فناوری فرآیند
مدل های فرآیند مورد بحث در بخشهای قبلی باید تحت انطباقی
قرار بگیرند تا در یک پروژه نرم افزاری استفاده شوند.برای این
کار ابزارهای فناوری فرآیند تولید
شده اند تا به سازمانهای نرم افزاری کمک کنند فرآیند پردازش
کنونی خود را تحلیل کرده،کارهای مختلف را سازماندهی
کنند،میزان پیشرفت را کنترل و مشاهده نمایند و کیفیت فنی
را سازمان دهند.
45
امین کاظمی
عشق ازلی ،ذکر ابدی ،یا زهرا
یا علی ع
سالم اهلل علیها
التماس دعا
امین کاظمی
09363735495
www.talaiye12.blogfa.com
46