صفحه 1:
اصول و قواعد مهندسی نرم افزار
.بحث را با تعریف نرم افزار و برشتمردن خضوصیات آن آغازمی کنیم
م افزار
بسرنامه اعلسنکه مهندسانآنرلطرلحینموده و دارایبرنامه هلییلسگه قلبالجرلستلینسرنامه ها شاملفرم ADU! gla
«دستورا-املهایوکه هنگام لجراء ویژگی عملكد و كارليومطلوبوا فرلهم مى ايند .2
.ساختمانداده هليوكه برنامه هارا قلار به يردانشمناسبهادم هاكتد .3
4۰ ر هر دو قالک خوو مجاروكه :رله لتنازئو 1 از يرنامه هارا ث ح دهد Lode.
صفحه 2:
مهندسی نرم افزار
مهندسی نرم افزار را 16۴ .میگویند
یرای مهندسی نرم افزار تعاریف متفاوتی ارائه شده است. که آن را اینگونه شرح می دهد
.ک یبرد از ی کووشسیستماتیکو علم لستفااد میکند .1
2۰ لندازیو نگهدارعنرم لفزار. بعنیلستفادد از مهندسینیرم لفزار ab.
.مهندسینرم لفزار یک ورلایه اعلست 3
شکل ۱-۳
با ترجه به شکل ۱-۲ هر روش بهندسی (از جمله مهندسی نرم افرار) باید متکی
a. تعهد سازمانی به کیفیت باشد. در واقع سنگ بنای نگهدارنده مهندسی نرم افزار
جيه كينيت 1
روش ها
روند يا فرايئد
صفحه 3:
1.
ایزارهای فتی برای ساخت نرمافزار را «ابزار» میگوييم. شکل زیر ابزارها را تمایش میدهد:
داده خبلکرد
a — ابا استفاده لز ليزار <اتادط ).
تحلیل موجودیتها تحلیل پرس و جوها
ليا لستقاده از lid) GERD Jan iy از زار ساب راهای)
طراحی طراسی داده se eth a ee
طراحی جداول طراحی پرس وجو
با ستفاده از زا مدل رایطه ای ليا تاه لد زار جر رای
پیاده ساژی وم سار ته ee ساقي
a aig oly? = = تاك
ماتند ابزار زيان ©
پیاده سازی جداول پیاده سازی پرس و جو
استفاده فز (SQL Jy زا استفاده از ابزار ۵)
دستورات ,91 دستورات DML
صفحه 4:
لالیه دیم 2
«روش» میگوبيم و به دو شکل روش ساختیافته و روش شی»گرا میباشد. در روش ساختیافته میگویيم چه
شیوههای فنی برای ساخت نرمافزار
.عملکردهایی داریم و اين عملکردها به چه دادههایی نیاز دارند و داده و عملکرد را به طور جداگانه و به روش ساختیافته تحلیل, طراحی و پیادهسازی می٩
اما در روش شیءگرا میگوييم چه دادههایی داریم و این دادهها چه عملکردهایی دارند. در واقع داده و عملکرد را در قالب یک بسته گلا
.مى دهيم و به روش شىءكرا مانند مفاهيم كلاس تحليل طراحی و پیادهسازی میکنيم
؟لاليه سوم 3٠
هر پروژهی نرمافزاری, چه بزرگ و چه کوچک مراحلی را طی مینماید که در طی آن مجموعهای از نیازمندیهای مشتری به یک
میگردد. الگو و قالبی که چگونگی طی مراحل مختلف یک پروژه را تعریف مینماید. اصطلاحاً فرآیند تولید نرمافزار نامیده میشود.
شکل زیر فرایند تولید نرمافزار و ورودی و خروجی آن را نشان میدهد.
محصول نرمافزاری
صفحه 5:
:یه چهارم 4۰
مهندسی نرمافزار یک کوشش لایهای برای تولید یک محصول نرمافزاری با کیفیت که نیازمندیهای مورد انتظار مشتری را برآورده میسازد میباشد, در صورتی 5
ابزارهاء روشها و فرآیندها به گونهای درست و مطابق با کاربرد؛ انتخاب و استفاده شوند میتوان این گونه بیان نموده کیفیت که همان بررآورده ساختن نیازمندیهای|
مورد اتظار مختری میباشد برآورده شده است
# روش های مهندسی نرم افزار. شیوه های فنی برای ساخت نرم افزار را فراهم می آورند.
اين روش .ها شامل آرايه وسيعى از وظايف جمله
.تحلیل خواسته هاء طراحی, ساخت برنامه هاء آزمایش و پشتیبانی هستند
ابزارهای مهندسی نرم افزار, متضمن پشتیبانی خودکار يا نیمه خودکار برای فرایند و روش هایی هستند. هنگامی که ابزارها گرد هم آیند به
طوری که اطلاعات ایجاد شده توسط یک ابزار و ایزارهای دیگر قایل استفاده باشند, سیستمی برای پشتیبانی نرم افزار شکل می گیرد که مهند.ا
.(Computer Software Engineering) ;,..\s
ارد
ار
صفحه 6:
:(Communication)2Ut |
.پیش از اینکه هرگونه
فنی آغاز شود, برقراری ارتباط و همکاری با مشتری بسیار مهم است
برنامه ریزی(۳۱۵۳۱۳9):
مدلسازی(۳۵۵06۱۱۳۴9):
یک معمار, هر روز با مدل ها کار می کند, اتودی می زند تا تصویر بزرگ را درک کند اينکه از نظر معماری چه ظاهری دار بخش های
سازنده ای چگونه با هم جور در خواهند آمد. و بسیاری خصوصیات دیگر. مهندسی نرم افزار با ایجاد مدل هایی جهت درک بهتر خواسته ها و طرا
.خواسته ها برسد, انجام می دهند
صفحه 7:
:(Construction)-sL.
این فعالیت, تولید کدها و آزمون لازم برای آشکار کردن خطاهای موجود در کدها را با هم تلفیق می کند.
:(Deployment) || 1
.ثرم افزاز به مستری تحویل داده می شود تا معصول تحویل داده شده زا اززیابی کرده و بر اساس این ارتیابی: بازخوردی ارائه دهد
.برای بسیازی از پروژه های نرم افزاری, فعالیت های جارچوبی به صورت تکراری به کار برده می شوند
صفحه 8:
فعالیت های چارچوبی فرایند مهندسی نرم افزار توسط تعدادی از فعالیت های چتری تکمیل می شوند که عبارتند از:
۱ . کنترل و پیگیری پروژه های نرم افزاری : به تیم نرم | امکان می دهد تا پیشرفت را
؟. مدیریت ریسک: خطراتی را ارزیایی می کند که ممکن است بر نتیجه پروژه یا کیفیت محضول تاثیر بگذارند.
۲ تضمین کیفیت نرم افزار: فعالیت های ای اطمینان از کیفیت نرع افزاز را معین می کند.
۴ بازیینی فنی: محصولات را در تلاش براى آشكار كردن خطاها قبل از انتشار آنها در فعالیت بعدی و یرطرف کردن آنها ارزیابی می کند
۵ اندازه گیری: پروژه و محصول را تعریف می کند که نیازها را برطرف می سازند.
۶ مدیریت پیکربندی نرم افزار: اثرات تغییرات را در سراسر فرایند نرم افزار مدیریت می کند.
۷ . مدیریت قابلیت استفاده مجدد : ملاک های مربوط به استفاده مجدد را تعریف می کند و سازوکارهایی برای دستیابی به قطعات را می سازدا
04 تهيه و تولید محصول کاری : فعالیت های لازم برای ایجاد محصولات کاری از قبیل مدل ها. مستندات. وقایع نگارها و فهرست ها می
۸
صفحه 9:
از
توجه به این نکنه ضروری است که افرایند مهندسی رم افرار ینک دستووالغمل نهانی و غیر قایل تغییر ثیست که تیم ترم اقزازی بای با تعصب
باید نطباق پذیر باشد.
بنابراین فرایندی که برای یک پروژه پذیرفته می شود. ممکن است با فرایند پذیرفته شده برای پروژه های دیگر تفاوتی چشمگیر داشته باشد
مهندسی نرم افزار در عمل
جورج بوليا در يك كتاب كلاسيك با عنوان (جكوتكى حل مساله) كه قبل از وجود كامبيوترهاى مدرن نوشيته ده است, جوهر حل مسالةرا جنين مطرح مىأكندا
= هناخت مساله (برقراری ارتباط و تحلیل)
*_ طرح ریزی برای یک حل (مدل سازی و طراحی نرم افزار)
* اجرای برنامه ریزی (ایجاد کد)
بررسى نتيجه براى صحت (ازمايش و تضمبين كيفيت)
صفحه 10:
اصرل کلی
دیوید هوکر هفت اصل را مطرح نموده است که توجه به آنها در مهندسی نرم افزار بسیار ضر
ید نمی رس
اصل یکم دلیل وجود سیستم : این که هر سیستم به یک وجود نیاز دازد. همه تصمیم گیری ها پاید پا مد نظر داشتن.
اصل دوم ساده نگه داشتن : همه طراحی ها باید تا حد امکان ساده باشند. این باعث می شود که یک سیستم قابل فهم تر با قابلیت نگهواری بالائم را داشته با
اصل سوم حفظ چشم انداز: برای موفقیت یک p 039 چشم اندازی روشن» ضروری است. یک سیستم بدون یکپارچگی مفهومی, به
مجموعه ی ناجوری از طراحی های ناسازگار تبدیل می شود که به یکدیگر وصله -پینه شده
صفحه 11:
اصل چهارم آنچه که شما تولید می کنید. دیگران مصرف می کنند: همواره تعيين مشخصات, طراحی
اصل پتجم آینده نگری : سیستمی با طول عمر بالا
می شوند
اصل ششم پرنامه ریزی پیشاییش یرای استفاده مجدد: استفاده مجده باعت صرفه جویی در زمان و کار می شود. استفاده مجدد از کد ها و طرامجی ها به عنوا
مزیت اصلی فن آوری های شبی گرا مطرح شده است ولى اين امكان در برنمه نویسی شیی گرا یازمن برنامه ریزی قبلی است.
اصل هفتم تفکر : این آخرین اصل احتمالاً بیش از بقیه مورد بی مهری قرار می گیرد. تعقل و تفکر کامل و روشن قبل از اقدام به عمل, هموازه
نتایج بهتری به بار می آورد. با تفکر روشن درباره سیستم, ارزش آن يالا مى رود
yy
صفحه 12:
بر شاخههای مهندسی نرمافزا
مهندسی ترمافزار را میتوان به ٩ زیر رشته تقسیم
بررسی و استخراج نیزمندیهای نرمفزر که شامل استخراج. تحلیل و اعبارسنجی خواستدها و تهيد مستندات مربوط جهت طراحی apie Bs
.طراحی نرمافزار : فرایند تعریف معماری و دیگر مشخصههای سیستم
م را اجزا گویند. همچنین این زیر بخش به عنوان خروجی فرایند نیز تعریف میشود
اخت نرمافزار : جزئیات مربوط به ایجاد کار با معني برای نرمافزار از طریق برنامهتویسی, بازنویسی و تأیید, تست یکارچگی و اشکال یاب کمی باشد.
تست نرمافزار : بررسی فتی -تجریی, برای ارائه به سهامداران که اطلاعاتی در مورد گیفیت محصول با خدمات فحت تست بان میکند
+تعمیر و نگهداری نرمافزار : کلیه فعالیتهای مورد نیاز برای ارائه پشتیبانی مقرون به صرفه
مدیریت پیکربندی ترمافزار : شناسایی پیکربندی یک سیستم در تقاط متخصی از زمان به منظور کترل سیستماتیک تغبرات پیکربندی و
\
نرمافزار است
+حفظ و نگهداری برنامه و ردیابیپیکربندی در طول چرخه عمر سیستم را گویند
12
صفحه 13:
از وسعهرونگهدازی: سیسعمابیک :و انذازهگیری
» اندازه گیری» مدیریت. ایجاد تغییر و بهبود فرایند را چرخه حیات نرمافزار می گویند
5-5 ابندهاء عن مهار كد
هایی مبتنی بر کامپیوتر برای مهندسی نرمافزار ایجاد شدهاند تا به فرایندهای چرخه حیات نرمافزاژ و روشهایی
1 از ف ساخت فعالیتهاء بت و در نهایت بموفقت ورس
ساختاری را بر فعالیتهای مهندسی نرمافزار اعمال میکنند کمک کند تا به هدف ساخت فعالیتهای سیستماتیک و در نهایت fies Cade by
۲۳
صفحه 14:
از آنجا که نرم افزار. يك نطقی است تا یک عنصر فیزیکی, دارای ویژگی هایی است که تفاوت زیادی با سخت افزار دارد
فرع لفران: مهد سوم ون ودا و چری سک ه یه معایک امک لحم اجه سود. :1
.نرم لفزار فرسوده نمیشود .2
.نرم لفزار نسبتینه ناماما تس حیطوکه باعتفر سلیشآنمیشود. نفوذ پسذیر نیست 3
14
صفحه 15:
يايان