بخشی از پاورپوینت

اسلاید 1 :

مهندسی نرم افزار1 خلاصه درس

اسلاید 2 :

فصل اول

نگاهی گذرا به نرم افزار

محصول کار از دیدگاه مهندس نرم افزار محصول کار ، برنامه ها ، مستندات ، داده هاست ولی از دیدگاه کاربر محصول کار اطلاعاتی است که به نحوي به درد کاربر میخورند.

ماهیت نرم افزار

امروزه نرم افزار نقشی دو گانه دارد: نرم افزار نوعی محصول است و در عین حال وسیله نقلیه اي براي تحویل یک محصول است.

1-1 - تعریف نرم افزار( 1

نرم افزار عبارت است از( 1)دستورالعملها که هنگام اجرا ، ویژگی، عملکرد و کارایی مطلوب را فراهم می سازند( 2) ساختمان هاي دادهایی که برنامه ها را قادر به پردازش مناسب داده ها کنند و( 3)اطلاعات توصیفی در هر دو قالب کپی سخت و مجازي که راه اندازي و استفاده از برنامه ها را شرح دهند.

اسلاید 3 :

1. نرم افزار بیشتر یک عنصر منطقی است تا یک عنصر سیستمی فیزیکی بنابراین نرم افزار با سخت افزار تفاوت چشمگیري دارد:

2. نرم افزار مهندسی بسط داده می شود و چیزي نیست که به معناي کلاسیک کلمه ساخته شود

3. در هر دو عمل ، کیفیت بالا از طریق طراحی خوب بدست می آید ولی فاز ساخت براي سخت افزار حاوي مشکلات کیفیتی میشود که براي نرم افزار وجود ندارند (یا به راحتی قابل رفع هستند). هر دو عمل وابسته به انسان هستند ، هر دو عمل مستلزم ساخت یک محصول هستند ولی روش ها متفاوت است.

4. نرم افزار فرسوده نمی شود.

اسلاید 4 :

"منحنی وانی" نمودار آهنگ شکست را به صورت تابعی از زمان براي سخت افزار نشان میدهد نشان می دهد.

نرم افزار نسبت به ناملایمات محیطی که باعث فرسایش آن می شود نفوذ پذیر نیست. بنابراین در تئوري منحنی شکست براي نرم افزار بایدشکل منحنی ایده آل را به خود بگیرد. منحنی ایده آل نسبت به منحنی واقعی مدل هاي شکست نرم افزار، بسیار ساده تر است. ولی، معناي آن واضح است ، نرم افزار هیچ گاه دچار فرسایش نمیشود بلکه زوال می یابد!

5. گرچه صنعت در حال حرکت به سوي مونتاژ قطعات است، اکثر نرم افزارها همچنان به صورت سفارشی ساخته می شوند.

در جهان سخت افزار ، استفاده ي مجدد از قطعات بخشی طبیعی از فرایند مهندسی است. در مهندسی نرم افزلر این امر به تازگی مورد توجه قرار گرفته است.

اسلاید 5 :

دامنه هاي کاربرد نرم افزار

هفت گروه وسیع از نرم افزارهاي کامپیوتري که امروزه باعث چالش براي مهندسان نرم افزار میشوند:

- نرم افزارهاي سیستمی : مجموعه اي از برنامه هاست که باعث که براي سرویس دهی به برنامه هاي دیگر نوشته شده اند.

- نرم افزارهاي کاربردي : برنامه هاي مستقلی که یک نیاز تجاري مشخص را بر طرف می کند.

- نرم افزارهاي مهندسی/علمی : نرم افزارهاي علمی توسط الگوریتم هایی مشخص میشوند که اعداد و ارقام را پردازش می کنند. کاربردهاي نوین در حیطه ي مهندسی و علمی از الگوریتم هاي عددي مرسوم فراتر رفته اند.

اسلاید 6 :

- نرم افزارهاي تعبیه شده : در حافظه فقط خواندنی جاي دارند و براي کنترل محصولات و سیستم هاي مربوط به بازارهاي صنعتی و مصرفی به کارمی رود.

- نرم افزارهاي خط تولید : براي فراهم آوردن یک قابلیت خاص جهت استفاده توسط بسیاري از مشتریان مختلف طراحی میشوند.

- برنامه هاي کاربردي تحت وب : این گروه از نرم افزارهاي شبکه اي شامل مجموعه ي گسترده اي از برنامه هاي کاربردي می باشد.

براي حل مسائل پیچیده اي که به روش هاي عددي قابل حل نیستند، از (AI) - نرم افزارهاي هوش مصنوعی : نرم افزارهاي هوش مصنوعی الگوریتم هاي غیر عددي استفاده می کنند.

اسلاید 7 :

- کار با کامپیتر در جهانی باز : چالشی که مهندسان فرا روي خود خواهند داشت، توسعه ي سیستم ها و برنامه هاي کاربردي است که با برقراري ارتباط میان کامپیوترهاي شخصی دستگاه هاي همراه و سیستم هاي اداري را از طریقه شبکه هاي گسترده میسر می سازند.

- تامین منابع از طریق شبکه : شبکه جهانی وب به سرعت در حال تبدیل به یک موتور کامپیوتري و نیز منبعی براي ارائه اطلاعات است. چالش براي مهندسان نرم افزار، معمازي برنامه هاي کاربردي ساده (مانند برنامه هاي مالی شخصی) و پیچیده اي است که بازار هاي کاربر نهایی هدف را در سرتا سر جهان منتفع سازند.

اسلاید 8 :

نرم افزارهاي قدیمی

از دهه ي 1960 کانون توجه بودند. دیانی- فاراد و همکاران نرم افزارهاي قدیمی را چنین توصیف می کنند:

"سیستم هاي نرم افزاري قدیمی چند دهه قبل ساخته شده اند و پیوسته اصلاح شده اند تا تغییرات به عمل آمده در خواست هاي تجاري و سکوهاي محاسباتی را پاسخ گو باشند. ازدیاد این گونه سیستم ها باعث درد سر براي سازمان هاي بزرگی می شود که نگه داري از آن ها را پر هزینه و تکامل بخشیدن به آن ها را خطرناك میدانند."

اسلاید 9 :

با گذشت زمان سیستم هاي قدیمی به یک یا چند دلیل از دلایل زیر تکامل می یابند:

- نرم افزار باید براي برآورده ساختن نیازهاي محیط جدید کامپیوتري اصلاح گردد.

- نرم افزار باید بهبود یابد تا خواسته هاي تجاري جدید را پیاده سازي کند.

- نر م افزار باید گسترش داده شود

- نرم افزار باید دوباره معماري شود تا در یک محیط شبکه نیز قادر به ادامه حیات باشد.

اسلاید 10 :

ماهیت منحصر به فرد برنامه هاي کاربردي تحت وب

امروزه برنامه هاي تحت وب به ابزارهاي کامپیوتري پیچیده اي تکامل یافته اند که نه تنها عملکردي مستقل را در اختیار کاربر نهایی قرار میدهندبلکه با بانک هاي اطلاعاتی و برنامه هاي کاربردي تجاري یکی شده اند.

در اکثریت وسیع برنامه هاي تحت وب صفت هاي زیر مشاهده می شود:

- میزان تمرکز شبکه : برنامه هاي تحت وب روي یک شبکه قرار دارند و باید نیازهاي جامعه اي متنوع از کلاینت ها را براورده سازند.

- همروندي : ممکن است یک باره تعداد بسیاري از کاربران به برنامه هاي تحت وب دستیابی داشته باشند.

اسلاید 11 :

- بار غیر قابل پیش بینی : تعداد کاربران برنامه هاي تحت وب از روزي به روز دیگر ده یا صد برابر شوند.

- کارایی : اگر کاربر یک برنامه تحت وب باید یک مدت طولانی منتظر بماند، ممکن است تصمیم بگیرد به جاي دیگري برود.

- قابلیت دسترسی : گرچه انتظار 100 در صد قابلیت دسترسی ، غیر منطقی است، کاربران برنامه هاي تحت وب پر طرفدار غالبا تقاضاي دسترسی24 ساعته در 7 روز هفته و 12 ماه سال را دارند.

- داده محوري : عملکرد اصلی بسیاري از برنامه هاي تحت وب استفاده از ابر رسانه ها براي ارائه متون به کاربران نهایی است.

- حساس به محتویات : کیفیت و ماهیت زیبا شناختی محتویات از جمله مهمترین عوامل تعیین کننده کیفیت در برنامه هاي تحت وب است.

اسلاید 12 :

- تکامل پیوسته : برخلاف نرم افزارهاي کاربردي سنتی برنامه هاي تحت وب پیوسته در حال تکامل هستند.

- بی واسطگی : نیاز اجباري براي رساندن سریع نرم افزار به بازار است.

- امنیت : براي محافظت از محتویات حساس معیار هاي امنیتی قوي اي باید پیاده سازي شود.

- زیبایی شناسی

اسلاید 13 :

فرایند نرم افزار

فرایند مجموعه اي از فعالیت و کوششی ست در جهت رسیدن به هدفی گسترده

یک کنش شامل مجموعه اي از وظایف است که یک محصول کاري عمده را تولید می کند

در حیطه مهندسی نرم افزار فرایند یک روش انطباق پذیر است که تیم نرم افزار به کمک آن می توانند مجموعه اي مناسب از کنش ها و وظایف کاري را برگزینند

اسلاید 14 :

چارچوب فرایند کلی برا مهندسی نرم افزار شامل پنج فعالیت می شود

1. ارتباطات

2. برنامه ریزي

3. مدل سازي

4. ساخت

5. استقرار

فعالیتهاي چتري در یک پروژه ي نرم افزاري به تیم نرم افزاري کمک می کند تا پیشرفت ، کیفیت ، تغییر و ریسک را کنترل کند.

اسلاید 15 :

فعالیت هاي چتري عبارتند از :

1. کنترل و پیگیري پروژه هاي نرم افزاري

2. مدیریت ریسک

3. تضمین کیفیت نرم افزار

4. بازبینی هاي فنی

5. اندازه گیري

6. مدیریت پیکربندي نرم افزار

7. مدیریت قابلیت استفاده مجدد

8. تهیه و تولید محصول کاري

اسلاید 16 :

فصل دوم : مدل هاي فرایند

فرایند نرم افزاري : کلییه یمراحل قابل پیش بینی که یک نقشه ي کلی براي تولید یک سیستم با کیفیت بالا باید طی شود.

در واقع فرایند نرم افزاري از دیدگاه فنی چارچوبی براي اعمال مورد نیاز جهت ساختن نرم افزار است. فرایند نرم افزار روش مهندسی را مشخص می کند.

چهارچوب کلی مهندسی نرم افزار: 1-ارتباطات 2-برنامه ریزي 3:مدل سازي 4:ساخت 5:استقرار

جریان فرایند:شرح میدهد که فعالیت هاي چتري ، کنش ها و وظایفی که داخل هر فعالیت چارچوبی رخ میدهد از نظر زمانی چگونه سازماندهی شده است.

اسلاید 17 :

جریان فرایند خطی: هر کدام از فعالیت هاي چارچوبی به ترتیب انجام میشود به طوري که با ارطبات اغاز وبه استقرار ختم میشود.

جرایان فرایند مبتنی بر تکرار: پیش از رفتن به تکرار دور بعدي یک یا چند فعالیت تکرار میشود.

جریان فرایند تکاملی: فعالیت ها به شیوه ي حلقوي اجرا می شوند هر مدار از پنج فعالیت عبور می کند که به نسخه ي کاملتري از نر م افزار می انجامد.

جریان فرایند موازي: یک یا چند فرایند به موازات سایر فغعالیت ها انجام می شود.

اسلاید 18 :

تعریف یک فعالیت چارچوبی

در تعریف یک فعالیت چارچوبی اگر پروژه یک ذي نفع داشته باشد به مراتب از پیچیدگی کمتري برخوردار است تا چندین ذي نفع داشته باشد.

-1 شروع 2-استخراج 3:شناخت 4:مذاکره 5:تعیین مشخصات 6:اعتبار «: فعالیت ارتباطات ممکن است شش کنش متمایز داشته باشد

سنجی هر کدام از این کنش هاي مهندسی داراي چندین وظیفه ي کاري و تعدادي محصولات کاري متمایزند.

اسلاید 19 :

تعیین مجموعه وظایف:

هر کنش مهندسی نرم افزار را می توان باتعدادي از مجموعه وظایف متفاوت نشان که هر کدام مجموعه اي از وظایف کاري در مهندسی نرم افزار مرتبط با محصولات کاري را انجام می دهد که نقاط تضمین کیفیت و عطف پروژه اند.

الگوي فرایند: محیطی که درآن مشکل مشاهده شده مشخص می شود.

اسلاید 20 :

ارزیابی فرایند بهبودي:( SCAMPI)

براي بهسازي CMMI روش ارزیابی استاندارد ü یک مدل ارزیابی فرایند پنج مرحله اي فراهم می اورد که شامل پنج فاز مشود:شروع،عیب یابی،ساخت،عملیات است) SEL CMMI ویادگیري

.(سنبل ارزیابی یک تکنیک عیب یابی استکه براي :(CBA3P براي بهبود بخشیدن به فرایند هاي داخلی( 3 CMM ارزیابی مبتنی بر ü مبناي ارزیابی است) SEI CMM). ارزیابی بلوغ نسبی یک سازمان نرم افزاري فراهم مکی اورد

استانداردي که مجموعه هی از خواسته ها را براي ارزیابی فرایند نرم افزار تعریف : SP/CE(ISO/IEC1550HC) üمیکند

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید