Transcript فصل 1
فصل 1
مهندس ی نرم افزار :
ایجاد روندی سیستماتیک ،منظم و قابل اندازه گیری برای تولید و نگهداری نرم افزار را وظیفه
ی علم مهندس ی نرم افزار می دانیم.
مهندس ي نرم افزار ،شاخه اي است از مهندس ي ،كه با بهره گیري از دانش علمي ،به ارائه ي راه
حل هايي مقرون به صرفه ،در قالب دستاوردهاي نرم افزاري و به منظور حل مسائل و
مشكالت عملي و خدمت به جامعه ي بشري ،اقدام مي نمايد.
سه معیار مهم :
.3کیفیت نرم افزاری که می خواهیم تولید کنیم.
.2هزینه
.1زمان
تعریف نرم افزار :
مجموعه ای از برنامه های کامپیوتری ،روال ها ،قوانین ،مستندات و داده ها را نرم افزار می
گوییم.
مسائل و مشکالت نرم افزار در دنیای کنونی:
.1قابلیت اطمینان نرم افزار :بدان معنا که نرم افزار به درستی اجرا شود.
.2هزینه ی نرم افزار :هدف :کاهش هزینه ی خرید نرم افزار با حفظ کیفیت .
.3اعمال تغییرات و دوباره کاری
انواع نرم افزار :
.1چکشخوار ( قابل اعمال تغییرات )
.2غیر چکشخوار ( غیرقابل تغییر )
هدف مهندس ی نرم افزار :
تولید سیستم به گونه ای که دوباره کاری و تغییر حداقل شود.
در نظر گرفتن تولید نرم افزار به صورت یک روند:
تولید نرم افزار از مجموعه ای از فعالیتها ساخته می شود.
در تولید یک نرم افزار دارای محدودیتهایی هستیم .1 :زمان .2هزینه .3محدودیتهای تکنیکی
در تولید نرم افزار هدف ساخت یک نرم افزار با کیفیت باال و هزینه کم می باشد.
تولید نرم افزار یک روال و یا روندی است که از مجموعه ای از کارها تشکیل شده است.
ویژگی های روال های تولید نرم افزار :
.1قابل پیش بینی بودن .1 :کیفیت .2هزینه .3زمان .4پیش بینی ارتباط بین فعالیتها
(اولویت در ترتیب انجام مراحل)
.2هر روال یا روند تولید باید قابل تست باشد .
.3امکان روال های تولید جهت حذف سریع خطاها و جلوگیری از به وجود آمدن خطاها
.4اصالح روال تولید
ویژگی های یک نرم افزا ر به صورت یک محصولSoftware as a product :
.1نرم افزار یک محصول مهندس ی است و با اصول مهندس ی باید تولید شود.
.2نرم افزار یک محصول قابل تغییر یا چکشخوار است.
.3نرم افزار به دلیل اینکه محصولی فیزیکی نیست ،خراب یا مستهلک نمی شود .اما در عمل به
دلیل اعمال تغییرات مداوم شاید دیگر قابل استفاده نبوده و می بایست نرم افزار دیگری جای آن
را بگیرد.
ً
.4نرم افزار برخالف بسیاری از محصوالت مهندس ی دیگر ،قالبا به صورت سفارش ی ساخته می
شود و از اجزای آماده در آن کمتر استفاده می شود که یکی از اهداف مهندس ی نرم افزار ،افزایش
استفاده از قطعات نرم افزاری آماده است.
دالیل استفاده از مهندس ی نرم افزار در پروژه های مهندس ی :
?Software Engineering
مهندس ی نرم افزار نقش اساس ی در باال بردن کیفیت نرم افزار و کاهش هزینه ها دارد.
Why
نقش مهندس ی نرم افزار در پروژه های مهندس ی :
The influencing role of Software Engineering
.1کاهش وابستگی به افراد متخصص به صورت خاص
.2باالبردن کیفیت ارتباطات تیمی
.3تخمین مناسب شامل تخمین زمان و هزینه
.4مدیریت تغییرات
.5کنترل زمان انجام پروژه ها
.6برقراری ارتباط و درک متقابل از نرم افزار بین تولید کنندگان ،کاربران و مدیران
.7انجام و ارائه ی آموزش های مناسب
.8انجام پیش بینی های الزم جهت مواجهه با افزایش توقع کاربران
اهداف مهندس ی نرم افزار Software Engineering Goals :
.1باال بردن کیفیت -1 :تطبیق نرم افزار با نیازمندیها
-2جوابگویی نیازهای کار بران
-3فارغ از خطا بودن یا کم خطا بودن و کارآیی باالی نرم افزار
* نرم افزار با کیفیت مناسب نرم افزاری است که هم نیازهای صریح و هم نیازهای ذهنی ما را رفع نماید.
هر چقدر نرم افزار از منابع کمتری استفاده کند ،کارآیی باالتری دارد.
.2قابل دسترس ی باشد.
.3اهداف متناقض باید بصورت تعادل درآیند.
مهندس نرم افزار فردی است که قواعد و اصول علم مهندس ی نرم افزار را در روند ایجاد یک نرم افزار یا در
حین تولید یک پروژه ی نرم افزار ی استفاده می کند.
ویژگی های یک مهندس نرم افزار ایده آل:
.1یک برنامه نویس خوب باشد.
.2با روش های مختلف طراحی آشنایی داشته باشد.
.3امکان ترجمه و تبدیل نیازهای کاربران
.4قابلیت ارتباط با طیف مختلف کاربران و مدیران
.5دارا بودن قابلیت باالی مدیریتی
فصل 2
Software Development Processes
روال های تولید نرم افزار :
ویژگیهای روال های تولید نرم افزار :
.1هر روال از یک سری فازهای متنوع ساخته شده است.
.2هر فاز با یک خروجی مشخص خاتمه پیدا می کند ( .وقتی فاز تمام شد،
نتیجه ی آن یک محصول است .مثل :گزارش ،برنامه ) ... ،
.3فازهای تولید نرم افزار در روال های مختلف با ترتیب و توالی مختلف
انجام می شود.
چرا روال تولید به صورت فازبندی یا مرحله بندی شده است؟
.1هر فاز یا مرحله نگرش ی متفاوت به نرم افزار ارائه می دهد.
.2شکستن یک مسئله ی بزرگ به مساائل کوچکتر باعث آسان تر شدن حل مسئله می شود.
.3ارتقاء کیفیت نرم افزار با فازبندی به دلیل کنترل کیفیت در حین تولید آن انجام می شود.
.4فازبندی شدن تولید نرم افزار باعث کاهش هزینه ی تولید می شود .کیفیت باال می رود ،
هزینه ی نگهداری کاهش می یابد .اشکاالت هر مرحله یا هر فاز قابل بازبینی هستند و در هر فاز
افراد متخصص به آن فاز ،روی آن کار می کنند و کار با کیفیت باالتری انجام می شود.
فازها یا مراحل تولید نرم افزار :
.1تعیین یا مشخص کردن نیازمندی ها و ارئه ی آن در ی فاز قابل فهم.
.2تعیین اینکه کار چطور باید انجام شود تا کیفیت باال رود .برای اینکه کدام راه ،راه مناسب
تری برای انجام نیازمندی ها ست.
.3ارائه ی راهکاری برای پیاده سازی برنامه ای که قبال نیازهای آن را شناخته ایم .اینکه نیازمند چه
اجزایی هستیم و هر جزء باید در کجا قرار بگیرد و چگونه به اجزای دیگر متصل شود.
به عنوان مثال در یک طراحی به گونه ی ساخت یافته (مثل زمانی که با زبان Cبرنامه ای را می
نویسیم ).باید مشخص شود چه ماژول ها یا فانکشن هایی دارد و فانکشن ها چگونه در کنار هم
قرار می گیرند.
( Implementation .4پیاده سازی یا همان کد نویس ی )
: Testing .5تست کد نوشته شده unit -1 :یا واحد :تست کوچکترین عناصر برنامه ،تست
ماژول ها یا functionها
: system -2قسمتهای مختلف سیستم را به هم متصل کرده و تست
می کنیم .به این نوع تست ،تست آلفا گفته می شود .تستی که در گروه تولید کننده ی نرم افزار
به مجتمع برای کل برنامه انجام میشود.
: acceptance -3تست تجاری یا تست بتا .تست قابل قبول بودن پس
از تست شرکت یا systemبه برخی از مشتریان حرفه ای برای تست داده می شود.
Conversion .6یا انتقال :تحویل به مشتری و بردن محصول به محیط کاری واقعی و راه اندازی
آن در محیط واقعی
روشهای -1 : conversionاستراتژی موازی : parallel strategyکار کردن همزمان نرم افزار با
نسخه های قبلی برای سیستم هایی که اهمیت باالیی دارند و در صورت ایجاد مشکل ،مشکل بزرگ و
غیرقابل جبران باشد.
-2قطع ناگهانی : Direct Cutoverاینکه تصمیم گرفته شود نرم افزار قبلی از
امروز کنار گذاشته شود و نرم افزار جدید مورد استفاده قرار گیرد ( .پس از اطمینان صحت عملکرد )
-3راه اندازی نمونه ای : Pilot Studyنرم افزار را مثال برای دو کاربر خاص
نوشته و برا ی تست مورد استفاده قرار می دهیم.
-4راه اندازی فاز بندی شده : Phasedمحصول را مرحله به مرحله راه اندازی می
کنیم.
ً
.7مرحله ی نگهداری یا پشتیبانی : maintenanceاگر نرم افزار مشکالتی داشته باشد ،مجددا به
سازنده مراجعه شده و بررس ی می شود.