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

از ویکی جامع پردیس دانشگاهی دانشگاه قم
(تغییرمسیر از مقدمه)
پرش به: ناوبری، جستجو
مهندسی نرم افزار1
مقاله بعدی:فرآیند نرم افزار
مقاله قبلی:درس:مهندسی نرم افزار1


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

عبارت است از تدوین اصول و قواعد معتبر و استفاده از آنها به منظور تولید نرم افزار بااطمینان، کارا و مقرون به صرفه.


نرم افزار

برنامه و اسناد مربوط به آن.


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



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

علوم کامپیوتر به تئوری ها و قضایایی که مربوط به نرم افزار می باشد، می پردازد ولی در حالی که مهندسی نرم افزار به جنبه های عملیاتی کردن آن تئوری ها می پردازد.


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

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


چرخه ی حیات سیستم

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


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

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

1-تعیین مشخصات:

دراین فعالیت مشخص میشود که سیستم چه خدماتی را باید ارائه دهد و خطا در مهندسی نیازمندی ها (خواسته ها)باعث بروز اشکال در طراحی و پیاده سازی می شود.

مراحل تعیین مشخصات:

الف)امکان سنجی:این مرحله باید سریع و ارزان صورت گیرد و نتیجه ی ثبت و بررسی این مطالعه باعث اجرای طرح تولید نرم افزار می گردد، این مطالعه جنبه های مختلفی دارد ازقبیل :

1-مالی
2-زمانی
3-فنی
4-پرسنلی

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

ج)مشخصات خواسته ها:در این مرحله پس از استخراج خواسته ها بایستی آنها به صورا استاندارد مکتوب گردد.

د)اعتبارسنجی خواسته ها:جهت جلوگیری از اشکال در تدوین خواسته ها نیاز است که این خواسته ها بررسی و اعتبار سنجی شود.


2-طراحی وپیاده سازی:
دراین مرحله دو فعالیت اصلی طراحی وپیاده سازی انجام می گیرد که از مدل های اصلی DFD،ERD،UMLوRUP استفاده می کند.

3-اعتبارسنجی:
در این بخش بررسی می شود که آیا سیستم تولید شده مطابق با خواسته هست یا خیر، همچنین بررسی می گردد که سیستم خطا یا errorای نداشته باشد.
مراحل تست:

1-تست واحد: پس از نوشتن یک تابع یا Procedure توسط برنامه نویس با ورودی های مختلف تست می شود.
2-تست ماژول: یک ماژول تشکیل شده از تعدادی تابع که باهم تعامل دارند، پس از نوشتن یک ماژول برنامه نویس موظف است این واحد ها را به صورت ترکیبی چک کند.
3-تست زیر سیستم : پس از آنکه چند ماژول باهم ترکیب شده و تشکیل زیر سیستم را می دهد بایستی رفتار زیر سیستم بررسی شود.
4-تست سیستم: از چندین زیر سیستم تشکیل شده که باهم تعامل دارند و باید چک و بررسی شود.
5-تست آلفا: در این قسمت سیستم های تولید شده توسط داده های مشتری تست می گردد وآنقدر ادامه می یابد تا مشتری سیستم را قبول کند.
6-تست بتا: بررسی یا آزمون یک سیستم در اثر واگذاری به مشتری های مختلف و کار انها با سیستم توسط داده های واقعی.


4-تکامل و نگهداری:
در این فعالیت پس از آنکه نرم افزار راه اندازی می شود تیمی از تولید کننده نرم افزار در محیط کار وجود دارد و اشکالات جزئی و اساسی سیستم را رفع می کند در ضمن چنانچه نیاز جدیدی از طرف کارفرما درخواست شود بایستی این نیاز در سیستم اضافه شود.


خصوصیات نرم افزار

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


انواع نرم افزارها

1-نرم افزار
2-نرم افزار تجاری
3-نرم افزار علمی مهندسی
4-نرم افزار شخصی
5-نرم افزار هوش مصنوعی