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

بسمه تعالی
تهیه کننده: رضا محمددوست ‏
در این مقاله به مقدماتی در زمینه مهندسی نرم افزار پرداخته شده است که موارد مطرح شده بصورت خلاصه
ارائه می گردد

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

دو نوع محصول نرم افزاری :‏
‏ ۱- محصولات کلی
‏ ۲- محصولات سفارشی

مهندسی نرم افزار چیست؟ ‏
یک نظام مهندسی است که با جنبه های نرم افزاری محصول ، از مراحل اولیه تعیین مشخصات سیستم تا نگهداری ‏سیستم ، سروکار دارد .‏
‏ شامل مراحل زیر است :‏
‏ ۱- نظام مهندسی .‏
‏ ۲- تمام جنبه های محصول نرم افزاری ‏

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

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

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

شامل فعالیت های اساسی زیر است :‏
‏ ۱- تعیین مشخصات نرم افزار
‏ ۲- توسعه نرم افزار‏
‏ ۳- اعتبار سنجی نرم افزار ‏
‏ ۴- تکامل نرم افزار

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

نمونه هایی از انواع مدل فرایند نرم افزار : ‏
‏ ۱- مدل جریان کار .‏
‏ ۲- مدل جریان داده یا فعالیت .‏
‏ ۳- مدل نقش/ فعالیت . ‏
‏ ‏
مدل های مختلفی که برای توسعه نرم افزار وجود دارد :‏

‏۱- رهیافت آبشاری .‏
‏ ۲- توسعه تکاملی .‏
‏ ۳- تبدیل رسمی .‏
‏ ۴- مونتاژ سیستم با قطعات قابل استفاده مجدد .‏
‏۵- روشهای نوین همچون ‏AGILE

روش های مهندسی نرم افزار کدامند ؟
رهیافت های ساخت یافته توسعه نرم افزار که حاوی مدل های سیستم ، نشانه گذاری ها ، قواعد ، توصیه طراحی ‏و راهنمای فرایند است .‏
این روش ها باید تعدادی قطعات را در اختیار داشته باشند :‏
‏ ۱- توصیف های مدل سیستم
‏ ۲- قوانین ‏
‏ ۳- پیشنهادات
‏ ۴- راهنمای فرایند ‏

فرایند مهندسی سیستم ‏
تعریف خواسته ها
طراحی سیستم
توسعه زیرسیستم
جامعیت سیستم
نصب سیستم
تکامل سیستم
تجزیه سیستم

انواع مختلف مدل سیستم
‏۱- مدل جریان داده .‏

‏۲- مدل ترکیبی .‏

‏۳- مدل معماری .‏

‏۴- مدل دسته بندی .‏

‏۵- مدل محرک/ پاسخ .‏

طراحی معماری
فرایند اولیه طراحی جهت شناسایی زیر سیستم ها و ایجاد چارچوبی برای کنترل و ارتباطات زیر سیستم، می باشد ‏‏.‏

‏ سه امتیاز طراحی و مستند سازی معماری نرم افزار :‏

‏ ۱- ارتباط با واگذارندگان .‏

‏ ۲- تحلیل سیستم .‏

‏ ۳- استفاده مجدد در مقیاس بالا . ‏

‏ ادامه دارد
مهندس رضا محمددوست
کارشناس ارشد فناوری اطلاعات