بخشی از پاورپوینت
اسلاید 1 :
مهندسی نرم افزار Software Engineering
اسلاید 2 :
سرآغاز
مهندسی نرمافزار طراحی، برنامهنویسی، توسعه، مستندسازی و نگهداری نرم افزار با بکارگرفتن روشهای فنی و عملی از علوم کامپیوتر، مدیریت پروژه، مهندسی، محدوده کاربرد، طراحی رابط، مدیریت تجهیزات دیجیتال و سایر زمینهها است.
اصطلاح مهندسی نرمافزار بعد از سال ۱۹۶۸ شناخته شد، طی کنفرانس مهندسی نرمافزار ناتو ۱۹۶۸ (که در گارمیش آلمان برگزار شد) توسط ریاست کنفرانس F.L. Bauer معرفی شد، و از آن پس به طور گسترده مورد استفاده قرار گرفت.
اسلاید 3 :
سرفصل مطالب
تعريف سيستم
تعریف نرمافزار، چرخه حیات سیستم
مفاهیم تحلیل و طراحی سیستمها
سیستمهای اطلاعاتی ساختیافته
امكان سنجي
نمودارهاي جريان داده
توصيف دادهها
توصيف فرآيندها
معرفی ابزار: Power Designer
مدیریت پروژه، برنامهریزی و زمانبندی
اسلاید 4 :
تعریف نرمافزار
دستورات (برنامههای کامپیوتری) که در صورت اجرا شدن باعث انجام عمل و كارهاي خواسته شده ميشوند،
ساختمان دادههایی که باعث ميشوند برنامهها به طور مناسبي اطلاعات را دستكاري کنند، و
مستنداتی که توصيف كننده عملكرد و چگونگی استفاده از برنامهها میباشند.
نرم افزار عبارت است از:
اسلاید 5 :
نمودار نرخ شکست نرمافزار
اسلاید 7 :
نرمافزار سیستمی
نرمافزار بیدرنگ (Real time)
نرمافزار تجاری
نرمافزار مهندسی و علمی
نرمافزار جاسازي شده( Embedded)
نرمافزار کامپیوتر شخصی
نرمافزار وب
نرمافزار هوش مصنوعی
طبقهبندی نرمافزارها :
اسلاید 8 :
شرايط نياز به سيستم
تغيير اهداف سازمان
تغيير وظايف سازمان
تغيير تكنولوژي (سختافزار، نرمافزار، ارتباطات)
تغييرات محيطي
اسلاید 9 :
نرمافزارهای موجود چرا باید تغییر کنند؟
باید با محیطهای محاسباتی و فنآوریهای جدید مطابقت داشته باشند
نیازمندیهای جدید سازمان را برآورده کنند
باید توسعه داده شوند تا قادر به همکاری با سیستمها و بانکهای اطلاعاتی جدید باشند
باید در معماری نرمافزار تجدید نظر شود تا در محیط شبکه قابلیت سرویسدهی را داشته باشد
اسلاید 10 :
چرخه زيست سيستم
يك دوره زماني از هنگام نياز به سيستم تا پايان بهرهبرداري از آن
چرخه زيست سيستم شامل
تعريف (برنامهريزي استراتژيك، تحليل و طراحي مفهومي)
توسعه (طراحي تفصيلي، ساخت، استقرار)
اجرا
نگهداري و بهبود ميباشد.
اسلاید 11 :
ضوابط ارزیابی نرمافزار :
هدف: تولید برنامه با کیفیت خوب
عوامل موثر در خوب بودن نرمافزار :
عوامل خارجی: توسط کاربر نرمافزار تشخیص داده میشود (اهداف)
عوامل داخلی: برای متخصصین کامپیوتر قابل درک است (ابزار رسیدن به اهداف)
عوامل خارجی :
صحت برنامه (Correctness)
استحکام (Robustness) : جوابگویی در شرایط غیرعادی
قابلیت توسعه (Extendibility)
قابلیت مصرف مجدد (Reusability)
سازگاری (Compatibility) : رعایت استاندارد
قابلیت حمل (Portability): اجرا در سیستمعامل و سختافزارهای گوناگون
کارآیی (Efficiency): سرعت بالا و حافظه پایین
عوامل داخلی : واحدبندی
اسلاید 12 :
بحران نرمافزاری :
پیچیدگی و قدرت سختافزار باعث شده که نوشتن نرمافزاری که بتواند از این پتانسیل سختافزاری استفاده کامل کند مشکل گردد.
توان ما برای ایجاد برنامههای جدید به اندازه تقاضا نیست
توان نگهداری برنامههای موجود به خاطر طراحی ضعیف مورد تهدید قرار میگیرد.
برنامههای تولید شده مشکلاتی دارند .
هزینه تولید نرم افزار دائماً افزایش مییابد.
هزینهها مطابق هزینه پیشبینی شده نیستند.
عملیات مطابق برنامه زمانبندی انجام نمیگیرند
نرمافزار تولید شده همه کارهای مورد نظر را انجام نمیدهد
نرمافزار دارای خطاست
اسلاید 13 :
مدلهای گوناگون در فرآیند تولید نرمافزار :
برای بر طرف کردن بحران نرمافزار سه عامل کلیدی برای کنترل فرایند تولید نرمافزار و ایجاد یک پایه و اساس برای ساختن یک نرمافزار با کیفیت بالا عبارتند از
روشهای مهندسی نرمافزار (methods)
ابزار مهندسی نرمافزار (tools)
رویههای مهندسی نرمافزار: ابزار و روشها را به هم پیوند میزنند، ترکیب به کاربردن روشها/ کنترل کیفیت/ پیشرفت پروژه
مهندسی نرمافزار شامل قدمهایی است که از این روشها ابزار و رویهها تشکیل شده است.
مهندسی نرمافزار یک نظام مهندسی است که با تمام جنبههای نرمافزاری محصول از مراحل اولیه تعیین مشخصات تا نگهداری سیستم سر و کار دارد.
اسلاید 14 :
مدلهای موجود در فرآیند تولید نرمافزار
متدلوژی :
به مجموعهای از قواعد و رویهها که به چرخه زیست سیستم ساختار میدهد متدلوژی میگویند.
فرایند مهندسی نرمافزار، مجموعهای از قدمهای قابل پیشبینی برای توسعه نرمافزار را مشخص میکند.
اسلاید 15 :
متدولوژی
یک متدولوژی مجموعهایی از روشها و توصیهها (Guidelines) میباشد كه به همراه راهبرد مشخص و طي مراحل مختلف از توسعه سيستم به كار گرفته ميشود.
متودولوژه در واقع يك چارچوب است كه ترتيب گامبهگام راهكارهايي را كه به توسعه محصول نهايي كمك ميكنند، مشخص مينمايد.
يك متدلوژي داراي ابزار تعريف شده و مدل مفهومي ميباشد و از يك گرامر مشخص استفاده ميكند.
هر متدولوژي براي انجام كارها از تعدادي ابزار و تكنيك استفاده مينمايد.
براي مثال مدل شيگرا و يا مدل ساختيافته در توسعه نرمافزار دو متدولوژي توسعه نرمافزار هستند.
اسلاید 16 :
مدل فرآیند
فرآيند مهندسي نرمافزار مجموعهاي از قدمهاي قابل پيشبيني براي توسعه نرمافزار را مشخص ميكند.
مدل فرآيند نرمافزار قدمها، و استراتژي توسعه نرمافزار، فرآيند و روش ميباشد.
از مدلهاي معروف ميتوان به مدلهاي
آبشاري،
افزايشي،
و چرخشي
اشاره كرد.
اسلاید 17 :
تفاوتهای متدولوژی و مدل فرآیند
متدولوژي، روش طي كردن قدمهايي است كه مدل فرآيند تعريف ميكند.
تكنولوژي مهندسي نرمافزار يك تكنولوژي لايهاي است و متدولوژي بر روي لايه فرآيند قرار دارد.
اسلاید 18 :
تکنیکها و ابزارها
تکنیکها روشهايي هستند كه اعضاي تيم با دنبال كردن آنها اطمينان خواهند داشت كار از ابتدا تا انتها به طور كامل و جامع انجام خواهد شد.
ابزارها برنامههاي كامپيوتري هستند كه استفاده از تكنيكهاي خاصي را آسان مينمايند.
مانند ابزار Rational Rose كه در تكنيكهاي تحليل و طراحي بسيار مفيد است و يا NUnit كه مربوط به تكنيكهاي تست نرمافزار میشود و یا صدها برنامه كاربردي ديگر.
غير از ابزارهايي كه به ما در استفاده از تكنيكها ياري ميبخشند، ابزارهايي وجود دارند كه اهداف ديگري مانند سرعت بخشيدن به توليد محصول را دنبال ميكنند. مانند توليد كننده كد(Code Generator) ، ابزار مهندسي معكوس و .
اسلاید 19 :
1- مدل آبشاری
اسلاید 20 :
1- مدل آبشاری
مهندسی سیستم:
از آنجاییکه نرمافزار همیشه قسمتی از یک سیستم بزرگتر است، کار از مشخص کردن نیازمندیهای کل سیستم آغاز میشود و سپس زیرمجموعهای از این نیازمندیها را به نرمافزار نسبت میدهیم.
به خاطر اینکه نرمافزار مجبور به داشتن ارتباط با مولفههای دیگر سیستم از قبیل سختافزار، مردم و گاه پایگاه دادههاست، داشتن این دیدگاه از سیستم، یک امر اساسی است.