جزوه مهندسی نرم افزار
مجموعه ای جزوه مهندسی نرم افزار از مراحل قابل پیش بینی برای توسعه جزوه مهندسی نرم افزار نرم افزار که به ما کمک می کند را در زمان معین و با کیفیت بالا ایجاد کنیم، فرایند نامیده میشود .
لایه های مهندسی نرم افزار
مهندسی نرم افزار یک لایه لایه است. ساختار مهندسی نرم افزار در شکل نشان داده شده است:
- لایه فرایند، پایه و اساس لایه های مهندسی نرم افزار می باشد. فرایند چارچوبی شامل زمینه های جزوه مهندسی نرم افزار است که این زمینه ها پایه ای برای کنترل مدیریت پروژه های نرم افزاری می باشد.
- روشهای مهندسی نرم افزار چگونگی انجام کار را از نظر فنی و جزوه مهندسی نرم افزار برای ساخت نرم افزار مهیا می کنند. روش ها شامل عملیات تجزیه و تحلیل، طراحی، ساخت، تست و پشتیبانی می باشد.
- ابزارهای مهندسی نرم افزار، پشتیبانی خود کار و نیمه خود کار را برای فرایندها و روش ها فراهم می سازد.
ساختار مهندسی نرم افزار
فاز های مهندسی نرم افزار
جزوه مهندسی نرم افزار مربوط به مهندسی نرم افزار را بدون توجه به حیطه برنامه کاربردی، اندازه پروژه و پیچیدگی آن میتوان به سه فاز کلی تقسیم کرد:
1- مرحله تعریف
2- مرحله توسعه
3- مرحله پشتیبانی مرحله تعریف
این مرحله بر چیستی (what) متمرکز می شود. یعنی در طول تعریف، مهندس نرم افزار سعی می کند تا موارد زیر را شناسایی کند:
• نوع اطلاعاتی را که باید پردازش شوند
•عملکرد مطلوب
• نوع وضعیت سیستم مورد انتظار
• نوع رابطه هایی که باید ایجاد شوند
•محدودیتهای موجود در طرح و معیارهای صحت را که برای تعریف یک سیستم موفق لازمند.
اگر چه روش های به کار گرفته شده در طول مرحله تعریف، بسته به معیار مهندسی نرم افزاری که به کار گرفته می شود بسیار متفاوتند اما سه کار اصلی که در مرحله تعریف به نحوی انجام می شوند:
١.مهندسی سیستم اطلاعات
٢.طراحی پروژه نرم افزاری
٣.تحلیل مربوط به موارد مورد نیاز
از این موارد در ادامه به شرح داده خواهند شد.
نکته: در فاز تعریف کلیدی سیستم تشخیص داده می شود.
مرحله توسعه
مرحله توسعه بر چگونگی(how) متمرکز است یعنی در طول این مرحله مهندس جزوه مهندسی نرم افزار دارد تا موارد زیر را توصیف کند.
• ساختار داده ها
• نحوه اجرای کار در معماری نرم افزار
• چگونگی توصیف واسط ها
• چگونگی تبدیل طرح به زبان برنامه نویسی یا زبان غیر رویه ای
• چگونگی انجام آزمون
با اینکه روشهای بکار گرفته شده در طول مرحله توسعه متفاوتند اما سه کار جزوه مهندسی نرم افزار همیشه رخ می دهند:
• طراحی نرم افزار
• تولید کد
• آزمون نرم افزار
دانلود جزوه مهندسی نرم افزار
مرحله پشتیبانی
مرحله پشتیبانی روی تغییرات ایجاد شده متمرکز است که در طول این مرحله چهار نوع را مشاهده می کنیم:
1. اصلاح: رفع نواقص احتمالی نرم افزار
2. تطابق: تطبیق دادن نرم افزار با تغییرات محیط خارجی
3. بهبود وضعیت: این نوع از تغییر بر تاکید می کند که افزودن آنها به برنامه باعث بهبود کار نرم افزار می شود .
۴. پیشگیری: نرم افزار بر اثر تغییر خود را از دست می دهد به همین دلیل پیشگیرانه که اغلب مهندسی مجدد می شود باید صورت بگیرد.
مدلهای نرم افزار
مدل های مختلف فرآیند نرم افزار
برای حل مسئله، از مهندسان نرم افزار یک روش برای حل مسئله تعریف روش ها غالبا مدل فرایند یا الگوی مهندسی نرم افزار می شود.
انتخاب یک مدل برای مهندسی نرم افزار، بر اساس موارد زیر صورت می گیرد:
•ماهیت پروژه و نوع کاربرد
• روشها و ابزارهای مورد استفاده
•کنترل ها و قطعات قابل تحویل
در ادامه با چند مدل مختلف نرم افزاری آشنا شده و موارد کاربرد هر یک بررسی میشود:
مدل ترتیب خطی یا آبشاری
مدل را که گاهی”مدل چرخه حیات کلاسیک" می نامند، بیانگر یک نگرش نظام مند و ترتیبی نسبت به تولید نرم افزار است که در سطح سیستم شروع شده و با تحلیل، طراحی، کد نویسی، آزمون و پشتیبانی نرم افزاری پیشروی می کند.
علت نام گذاری این مدل این است که در آن حرکت از فازی به فاز دیگر به صورت آبشاری است. مراحل کار در شکل نشان داده شده است:
به شکل فعالیت های مدل آبشاری به صورت زیر است:
- مهندسی سیستم:
مهندسـی سیسـتم شـامل شناسـایی نیازهای سیستم می باشد. از آنجا که نرم افزار همیشه قسمتی از یک سیستم بزرگتر است، کار از مشخص کردن نیازمندیهای کل سیستم آغاز می شود و سپس زیر مجموعه ای از این نیازمندیها را به نرم افزار نسبت می دهیم.
- تجزیه و تحلیل نـرم افـزاری)آنالیز(:
جمع آوری نیازمندیها مشخصا مربوط به نرم افزار برای فهمیدن چگونگی برنامه هایی که باید ساخته شوند.
نیازمندیهای سیستم و نرم افزار شده و با مشتری بازنگری می شود.
- طراحی:
طراحی نرم افزار در حقیقت یک فرآیند چند است که روی چهار صفت متمایز برنامه متمرکز ساختار ، معماری نرم افزار ، نمایش رابط و جزئیات )الگوریتم(.
فرآیند طراحی، نیازها را به نمایش نرم افزاری تبدیل که میتوان آن را قبل از شروع کدگذاری از نظر کیفیت کرد. بسیاری از مشکلات سیستم در این مرحله نمایان شده و جهت رفع آن می توان به مراحل قبلی رجـوع و را برطرف نمود.
- پیاده سازی:
سازی پس از مرحله طراحی صورت می گیرد. طراحی بایستی به صورتی که برای ماشین قابل فهم باشد در بیاید. در این مرحله محصول نرم افزاری تولید کد ایجاد میشود.
- آزمــون)تست:(
مهمترین مرحله و اساسی مرحله در چرخه نرم افزار مرحله تست آن می باشد. پس از تولید کد آزمایش برنامه آغاز . این فرایند برای حصول اطمینان در مورد عدم وجود خطای منطقی در نرم افزار و اطمینان از اینکه تمام دستورها آزمایش شده اند و جزوه مهندسی نرم افزار هدایت آزمایش ها جهت کشف خطاها ی دستور ی تمرکز می یابد تا اطمینان حاصل شود که ورودی تعریف شده نتایج واقعی که با نتایج مورد نیاز تطابق دارند را تولید می نماید.
نکته: هرچه تست کاملتر و بهتری صورت گیرد کارکرد نرم افزار مطمئن تـر و هزینـه پشـتیبانی آن کمتـر و هزینـه هـای توسعه نرم افزار کاهش می یابد و محصول از قابلیت اطمینان برخوردار خواهد شد.
- نگهداری :
بعد از انجام تمامی مراحل و تحویل نرم افزار به کاربر مرحله نگهداری آن صورت و آموزش کاربران از جمله موارد مطرح شده در این قسمت می باشند.
بدون تردید نرم افزار پس از تحویل به مشتری دچار می شود، این تغییر ممکن است به علت برخورد مشتری با خطاهای احتمالی باشد و یا به علت تطبیق نرم افزار با تغییرات محیط بیرونی باشد )تغییر سیستم عامل یا دستگاه های جانبی( و یا بهینه سازی عملکرد نرم افزار بخاطر اینکه نیازهای عملیاتی یا کارآیی مشتری ارتقاء یافته است.
نگهداری نرم افزار دوباره در هر از فازهای قبلی برنامه موجود گرفته میشوند تا یک برنامه جدید آن شود.
مدل آبشاری
- احتمالی در از مراحل باعث آشفتگی دیگر مراحل می شود.
- بعضی از اعضا تیم ممکن است بی کار بمانند چون هر مرحله وابسته به اتمام مرحله قبل است.
- پروژههای واقعی به ندرت از ترتیب خطی پیشنهادی در این مدل، پیروی و همیشه برگشت به عقـب وجود دارد و در ساختار و به کارگیری الگو مشکل ایجاد می کند.
دانلود رایگان جزوه مهندسی نرم افزار
- بیان صریح همه نیازمندیها در ابتدا مشکل است.مدل زنجیری خطی به این امر نیاز داشته و برای پـروژه موارد در ابتدا دارند، مدل را به سختی می توان به کاربرد.
- برنامه دیر حاضر میشود، مشتری باید صبور باشد و منتظر بماند. نسخه کاری برنامه تا اواخـر مـدت زمـان کـاری پروژه در دسترس نخواهد بود.
- هرچه اشکالات دیرتر کشف شوند هزینه برطرف سازی آنها بیشتر خواهد بود.
- این مدل انعطاف دارد، زیرا اعمال تغییرات پس از آغاز پروژه نیازمند زمـان و زیـاد اسـت.
نکته: مدل خطی وقتی مناسب است که تمام نیازمندیها در ابتدا شده باشند. و نیازمندیها در هنگام توسعه تغییر نکنند.
)Prototyping model(مدل نمونه سازی
در این روش، توسعه دهنده نرم افزار قادر است مدلی از نرم افزاری را که می خواهد تولید کند هر چند به طور مختصر و مفید و به صور مختلف )به صورت یک نمونه روی کاغذ،یک نمونه کاری،یک برنامه موجود( به کاربر نشان دهد که ارتباط میان خود و کامپیوتر را احساس و متوجه عملکرد نرم افزار شود.نمونه توسط مشتری شده و اصلاحات لازم در تکرار بعدی اعمال می شود و با سـاخت نسـخه ، نسـخه قبلی دور میشوند.
نکته: استفاده از نمونه اولیه بعنوان راهکاری برای تشخیص خواسته های نرم افزار است.
مدل نمونه سازی اولیه
- چون نمونه ای از نرم افزار در اختیار قرار جزوه مهندسی نرم افزار و مشتری در ابتدا نمیتواند نرم افزار کامل را ببیند ممکن است تصویر غلطی از نرم افزار نهایی پیدا کند .
- توسعه دهنده ممکن است برای دستیابی سریع تر به مدل نمونه به مسائل مهمی توجه نکند . مثلا سیستم عامل مناسبی انتخاب نکرده و یا زبان برنامه نویسی نا مناسبی را برای نوشتن مدل انتخاب نماید و این باعث وجود مشکلاتی در آینده می شود .
- ناخوشایند بودن تغییرات پی در پی)مشتری مختلفی از نرم افزار
مزایای مدل نمونه سازی اولیه
- امکان تغییر و جمع آوری نیازها) روشن شدن ابهامات در تشخیص نیازها(
- در طول تولید محصول ارتباط مشتری با طراح و تولید کننده همواره برقرار است.
- کاهش مستندات.
- کاهش هزینه نگهداری
(Rapid Application Development: RAD)مدل توسعه سریع نرم افزار
در این مدل نرم افزار به قسمت های مختلف تقسیم شده و معمولا افرادی از یک تیم روی قسمتهای تفکیک شده کارمیکنند و در پایان نتیجه کار را با یکدیگر ترکیب می نمایند تا محصول نهایی شکل گیرد.البته نکته قابل توجه این است که نرم افزار مورد نظر باید خاصیت تفکیک پذیری داشته باشد تا بتوان مدل را پیاده سازی کرد.
در این مدل همواره سعی می شود که نرم افزار مورد نظر سریعتر تولید شود در واقع بزرگترین مزیت آن هم همان کوتاه بودن دوره تولید و تحویل به موقع می باشد .
نکته: مـدل RAD یـک نسـخه تطابق یافته سرعت بالا از مدل زنجیری خطی است.
فازهای مدل مذکور عبارتند از:
- مدلسازی کاری: جریان اطلاعات بین واحدهای عملکردی مدل می شود.
- مدلسازی داده ای: اشیا داده ی ، صفات و ارتباطات مشخص می شود.
- مدلسازی فرایند: پردازش ها و فرآیند های روی اشیا داده ای تعریف می شوند.
- تولید برنامه کاربردی: بیشتر از قطعات کد از قبل آماده شده استفاده می شود.
- آزمایش:اجزای که به قطعات آماده اضافه شده اند، مورد تست و آزمایش قرار می گیرد.
معایب مدل RAD
-در پروژههای بزرگ و قابل گسترش، برای ایجاد تعداد مناسبی از تیمها RAD به منابع انسانی نیاز دارد.
- وقتی احتمال بروز خطرات فنی بالا باشد، RADمناسب نیست.این وضعیت زمـانی رخ مـی دهـد کـاربرد جدید، از فناوری جدید به درجه از قابلیت همکاری با برنامه های کامپیوتری موجود نیاز دارد.
در این روش پروژه به تدریج کامل می شود یعنی هر مرحله ای که میگذرد پروژه کامل تر شده و در نسخه های بعدی این تکامل ادامه می یابد تا به هدف اصلی برسیم.
نکته: مدل افزایشی مدل خطی و مدل ساخت نمونه اولیه است.
مقایسه مدل افزایشی با نمونه سازی
هردو مدل ماهیت تکرار شونده دارند
- در مدل تکرار در تمام مراحل انجام می شود ولی در روش نمونه سازی، فرآیند تکراری تنها در مرحله جمع آوری نیازمندیها انجام می شود.
- در مدل افزایشی در انتهای هر مرحله افزایش، یک سیستم قابل تحویل به مشتری داریم.
- در مدل افزایشی نسخه قبلی دور نمی شود.
- مدل افزایشی بر توسعه دارد اما مدل نمونه سازی بر تکاملی خواسته ها تاکید دارد.
مدل حلزونی
در این روش از ترکیب روش های خطی و نمونه سازی استفاده می شود .در این روش برای تولید نرم افزار مراحلی وجود دارد که عبارتند از:
1. تماس با مشتری و جمع آوری اطلاعات مورد نیاز .
2. برنامه ریزی و تشکیل تیم های و دقیق امور جاری.
3. پیش بینی خطرات و اتفاقات احتمالی که ممکن است رخ دهد ) تحلیل ریسک (
۴. انجام عملیات مهندسی .
5. تولید پروژه که شامل کد نویسی ، تست ، عملیات کنترل کیفیت و تحویل به مشتری است .
6. نظر خواهی از مشتری یا همان ارزشیابی مشتری .
با توجه به شکل می توان اظهار داشت که با شروع جزوه مهندسی نرم افزار، تیم مهندسی نرم افزار در جهت حرکت ساعت، حرکت در مارپیچ را آغاز و این کار از مرکز شروع میشود. اولین مدار حول مارپیچ ممکن است منجر به تولید مشخصه محصول شود. با طی بیشتری از مارپیچ، از آن ممکن است برای تولید نمونه اولیه استفاده شده و سپس به تدریج تولید شود.با عبور از هر مرحله منطقه ، کارهای تطابقی با طرح پروژه صورت . هزینه و زمانبندی باز خورد مشتری، تنظیم میگردند. علاوه بر آن ،مدیر پروژه تعداد تکرارهای لازم برای تکمیل نرم افزار را تعیین میکند.
این روش، روشی مطمئن و قابل اعتماد است زیرا در هر مرحله یا در هر دور تحلیل ریسک ، کیفیت نرم افزار به مراتب بالاتر رفته و مدیر پروژه بر امور جاری کنترل دقیق دارد و همه مسائل و هزینه ها با توافق طرفین صورت میگیرد.
نکته: مدل حلزونی دارای ماهیت تکراری و سیستماتیک می باشد) .ماهیت تکراری مدل نمونه سازی اولیه و ماهیت سیستماتیک مدل ترتیب خطی(