بخش اول

فصل1 

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

FAQ هایی راجع به مهندسی نرم افزار: 

 

نرم افزار چیست ؟

 نرم افزار شامل برنامه های کامپیوتری همراه است با مستندات و داده های پیکربندی است که برای درست کارکردن برنامه ضروری است .

 دو نوع محصول نرم افزاری :

 1- محصولات کلی

 2- محصولات سفارشی

 

 

مهندسی نرم افزار چیست؟

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

 شامل مراحل زیر است :

 1- نظام مهندسی .

 2- تمام جنبه های محصول نرم افزاری .

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

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

 

تفاوت مهندسی نرم افزار و مهندسی سیستم چیست ؟

 

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

 

فرایند نرم افزار چیست ؟
مجموعه ای از فعالیت ها است که هدف آن ها توسعه یا تکامل نرم افزار است.

شامل فعالیت های اساسی زیر است :

 1- تعیین مشخصات نرم افزار

 2- توسعه نرم افزار

 3- اعتبار سنجی نرم افزار 

 4- تکامل نرم افزار

 

مدل فرایند نرم افزار چیست ؟
نمایش ساده ای از فرایند نرم افزار است که از جنبه خاصی ارائه شده است .

 نمونه هایی از انواع مدل فرایند نرم افزار : 

 1- مدل جریان کار .

 2- مدل جریان داده یا فعالیت .

 3- مدل نقش/ فعالیت . 

 مدل های مختلفی که برای توسعه نرم افزار وجود دارد :

1- رهیافت آبشاری .

 2- توسعه تکاملی .

 3- تبدیل رسمی .

 4- مونتاژ سیستم با قطعات قابل استفاده مجدد .

 

هزینه های مهندسی نرم افزار کدامند ؟
تقریباً 60 درصد هزینه ها مربوط به توسعه ، و 40 درصد مربوط به تست است .

 

 کیس چیست ؟

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

 

توزیع هزینه فعالیت نرم افزار

 

مدل آبشاری


Image and video hosting by TinyPic

 

توسعه تکراری

Image and video hosting by TinyPic

 

Image and video hosting by TinyPic

 

روش های مهندسی نرم افزار کدامند ؟
رهیافت های ساخت یافته توسعه نرم افزار که حاوی مدل های سیستم ، نشانه گذاری ها ، قواعد ، توصیه طراحی و راهنمای فرایند است .

 

این روش ها باید تعدادی قطعات را در اختیار داشته باشند :

 1- توصیف های مدل سیستم

 2- قوانین

 3- پیشنهادات

 4- راهنمای فرایند 

صفات نرم افزار خوب کدامند ؟

1- قابلیت نگهداری

2- قابلیت اتکا

3- کار آمدی

4- قابلیت استفاده

مسئولیت تخصصی و اخلاقی

1- محرمانگی.

2- صلاحیت.

3- حقوق معنوی.

4- سوء استفاده از کامپیوتر.

 

فصل2 

سیستم های اجتماعی - تکنیکی

سیستم :
یک مجموعه هدفمند از قطعات مرتبط به هم است که با هم کار می کنند تا هدفی را بر آورده نمایند .

 

سیستم هایی که شامل نرم افزار هستند :

 1- سیستم های کامپیوتری تکنیکی .

 2- سیستم های اجتماعی- تکنیکی .

ویژگی های اصلی سیستم های اجتماعی- تکنیکی :

1- ویژگی های جدیدی که به ویژگی های سیستم به عنوان یک کل مربوط می شود .

2- اغلب غیر قطعی اند .

3- بسط سیستم برای پشتیبانی از اهداف سیستم فقط به خود سیستم بستگی ندارد .

 

ویژگی های جدید سیستم :

 1- ویژگی های عملکردی .

 

 2- ویژگی های غیر عملکردی .

 

مثال هایی از ویژگی های جدید :

 1- حجم .

 2- قابلیت اعتماد .

 3- امنیت.

 4- قابلیت ترمیم و بکارگیری.

عوامل موثردرقابلیت اعتماد سیستم :

1- قابلیت اعتماد سخت افزار .

2- قابلیت اعتماد نرم افزار .

3- قابلیت اعتماد اپراتور .

 

مهندسی سیستم ها :

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

 

 

تفاوت های بین فرایند مهندسی سیستم و فرایند توسعه نرم افزار:

 1- وجود حوزه محدود برای کار مجدد در اثنای توسعه سیستم.

 2- پیچیدگی نظام های داخلی .

 

فرایند مهندسی سیستم :

Image and video hosting by TinyPic

 

تعریف خواسته های سیستم :

این فعالیت، عملکرد و خواص اساسی و مطلوب سیستم را مشخص می کند .

 

 

 انواع خواسته ها : 

 1- خواسته های عملکردی انتزاعی .

 2- ویژگی های سیستم .

  3- خواصی که سیستم نباید از خود نشان دهد.

طراحی سیستم :

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

 

 فعالیت های موجود در این فرایند :

 1- تقسیم بندی خواسته ها .

 2- شناسایی زیر سیستم ها .

  3- انتساب خواسته ها به زیر سیستم ها .

 4- تعیین عملکرد زیر سیستم ها .

 5- تعریف واسط های زیر سیستم .

فرایند طراحی سیستم :

Image and video hosting by TinyPic

 

مدل سازی سیستم :

در اثنای خواسته ها و طراحی سیستم ، سیستم باید بصورت مجموعه ای از قطعات و روابط بین آنها مدل سازی شود .

 

 

سیستم به چند زیر سیستم تجزیه می شود که هر زیر سیستم می تواند به زیر سیستم های دیگری تجزیه شود تا قطعات عملکردی به دست آیند .

 

توسعه زیر سیستم :

در این فرایند ، زیر سیستم هایی که در اثنای طراحی سیستم شناسایی شدند ، پیاده سازی می شوند .

 

 

جامعیت زیر سیستم :

زیر سیستم هایی که مستقل از هم توسعه داده شدند، در کنار هم قرار می گیرند تا سیستم کامل ایجاد کنند .

 

 

تکامل سیستم :

سیستم های بزرگ ، در اثنای زندگی شان، باید تکامل یابند تا خطاهای موجود در خواسته های اصلی سیستم را اصلاح کنند و خواسته های جدید را برآورده نمایند .

 

تجزیه سیستم :

سیستم پس از طول عمر مفید عملیاتی آن، کنار گذاشته می شود .

 

سازمان ها ، افراد و سیستم های کامپیوتری

 

عوامل سازمانی و انسانی در محیط سیستم که طراحی سیستم را تحت تاثیر قرار دهند :

 

   1- تغییرات فرایند .

   2- تغییرات شغل .

   3- تغییرات سازمانی .

   

فرایند تهیه سیستم :

Image and video hosting by TinyPic

 

فرایند های تهیه، توسعه و عملیاتی :


Image and video hosting by TinyPic

 

فرایند تهیه :

این فرایند به تصمیم گیری در مورد بهترین روش دستیابی یک سازمان به سیستم و بهترین تهیه کننده سیستم مربوط می شود .

 

 

فرایندهای عملیاتی :

فرایند هایی هستند که در بکارگیری از سیستم برای رسیدن به اهدافش نقش دارد .

 

سیستم های کهنه :

سیستم های کامپیوتری اجتماعی – تکنیکی هستند که در گذشته ایجاد شدند و معمولاً از فن آوری قدیمی تر استفاده می نمایند .

    قطعات سیستم کهنه :

      1- سخت افزار سیستم

      2- نرم افزار پشتیبان .

      3- نرم افزارهای کاربردی .

      4- داده های کاربردی .

      5- فرایند تجاری .

      6- قوانین و سیاستهای تجاری .

 

مدل لایه ای سیستم های قدیمی

فرایند های تجاری

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

نرم افزار پشتیبان

سخت افزار