بخشی از پاورپوینت
اسلاید 1 :
نام درس : مهندسی نرم افزار 1
اسلاید 3 :
در طي ده ها سال از ايجاد و بكارگيري كامپيوتر تاكنون در زمينه هاي مختلف كامپيوتر پيشرفت چشمگيري داشته است . در زمينه سخت افزار از كامپيوترهاي لامپي به سمت ابر كامپيوترپيشرفت كرده است . در نرم افزار برنامه هاي به زبان ماشين (Machine Language ) به نرم افزارهاي هوشمند و زبانهاي نسل چهارم رسيده ايم . در رابطه با كاربرد، كامپيوتر از انجام كارهاي محدود و خاص بيرون آمده و اكنون در سطوح مختلف از داخل خانه ها تا مدارس، دانشگاهها ، ادارات، سازمانها، اماكن تجاري و مراكز مختلف ديگر كامپيوتر كاربرد دارد و به طور وسيع از آن استفاده مي شود و در چند سال آينده وضع به گونه اي خواهد شد كه كامپيوتر درتمام زواياي زندگي بشر رسوخ خواهد كرد. در چنين وضعيتي لازم است كه اولاً همه افراد با توانائي هاي كامپيوتر آشنايي لازم را داشته باشند ثانيا“ كسانيكه در رشته كامپيوتر فعاليت مي كنند بايد با ايده ها و روشها و تكنيكهاي جديد آشنايي كامل داشته باشند و از آنها در كارهاي مربوط به خود استفاده نمايد.
مبحث مهندسي نرم افزار
اسلاید 4 :
دوره تكامل نرم افزار
1 - دوره اوليه (1965-1950 )
مشخصات اين دوره عبارتند از :
در اغلب مراكز، سخت افزار اختصاصي بود و نرم افزار خاص آن محيط كاربرد داشت.
نرم افزار هاييكه بيش از يك كاربر داشته باشد مطرح نبود يعني نرم افزار غيرقابل انعطاف بود.
نرم افزار متكي به فرد بود . يك نفر برنامه را مي نوشت آنرا اجرا مي كرد و اگر دچار اشكال مي شد خودش آنرا اصلاح مي نمود.
طراحي يك كار ضمني بود كه در فكر يك نفر ايجاد مي شد و مستنداتي در مورد آن وجود نداشت .
اسلاید 5 :
2- دوره دوم ( 1975-1960 )
مشخصات اين دوره عبارتند از :
ايده چند برنامه اي ( Multiprogramming ) و سيستم هاي چند كاربره (MultiUser) مطرح شد.
روش هاي محاوره اي دنياي جديدي از كاربردها را گشود.
سيستم هاي بلادرنگ قادر به عمل و توليد خروجي در چند ميلي ثانيه به جاي چند دقيقه شد.
اولين نسل از سيستمهاي مديريت بانكهاي اطلاعاتي بوجود آمد.
ظهور نرم افزار توليدي براي بيش از يك كاربر به وقوع پيوست .
فعاليتي به نام نگهداشت نرم افزار مطرح شد.
بحران نرم افزار به وقوع پيوست .
اسلاید 6 :
3- دوره سوم (1985-1975 )
مشخصات اين دوره عبارتند از :
ريز پردازنده هاي (Micro Processors ) كامپيوترهاي شخصي كاربرد گسترده اي پيدا كردند.
سيستم هاي جاداده شده (Embedded) مطرح شد.
شبكه هاي محلي و غير محلي بوجود آمدند.
اسلاید 7 :
4- دوره چهارم ( 2000-1985 )
مشخصات اين دوره عبارتند از :
تكنيكهاي نرم افزاري اين دوره در حال تغيير دادن شيوه نرم افزار و ايجاد روشي جهت ارتباط قسمتها يا قطعات براي توليد نرم افزار جديد مي باشد
كامپيوتر به منظورمهندسي نرم افزار يا CASE
Computer Aided Software Engineeringمطرح شد.
سيستم هاي خبره و نرم افزارهاي هوشمند براي حل مسائل گسترده از جهان واقعي بكار گرفته شدند.
پردازش موازي مطرح شد.
اسلاید 8 :
بحران نرم افزار
با نگاهي اجمالي به نسلهاي كامپيوتري متوجه مي شويم در دوره سوم به دليل توليد و فروش بسيار زياد كامپيوتر هاي شخصي از سوي مصرف كنندگان و خريداران اين كامپيوترها ، نسبت به برنامه هاي مختلف كامپيوتري به شدت احساس نياز گرديد و اين امر سبب توليد فراوان نرم افزار شد بدون اينكه هيچ گونه قانوني عمل نظارت بر توليد نرم افزارها به بار آورد كه در حقيقت تحت نام بحران نرم افزاري ناميده شد . اين بحران در سالهاي 1960 تا 1970 به شكل پيچيده اي به اوج خود رسيده بود و درست در همان سالها بود كه بحث مهندسي نرم افزار به شكل جدي تري مطرح شد
مقدمه پيدايش مهندسي نرم افزار، بحران نرم افزار بود. بحران نرم افزار اولين بار در كنفرانسي در سال 1968 ميلادي مطرح شد ولزوم جهشي در نرم افزار جهت جوابگويي به نيازها و رفع مشكلات احساس گرديد.
اسلاید 9 :
- هزينه توليد نرم افزار رو به افزايش است
- تاخير در توليد وتحويل نرم افزار (نقض زمانبندي تحويل پروژه ها)
- عدم تطابق نرم افزار تحويل شده بامشخصات تعيين شده
- كيفيت پايين نرم افزار
- نگهداري پرهزينه نرم افزار بعلت كيفيت پايين طراحي
- افزايش كاربردهاي كامپيوتر
- نداشتن سنجش ميزان پيشرفت كار(90 خط از100خط برنامه 90% برنامه نيست)
- نيروي انساني با توانايي هاي متفاوت در گرايشات مربوط
- قدرت روزافزون ، مطمئن و ارزان سخت افزار
دلايل ضرورت بحث مهندسي نرم افزار يا عوامل تشديد كننده بحران نرم افزار يا عبارتند از :
اسلاید 10 :
قانون 90/90
90% of the effort on project to accomplish 10% of the work
90% از تلاش در پروژه براي به انجام رساندن 10% از كار است.
اسلاید 11 :
درصد هزينه هاي نرم افزار در مقابل هزينه هاي سخت افزار از سالهاي 1955 تا 1985
اسلاید 12 :
مهندسي نرم افزار Software Engineering
- مهندسي نرم افزار : طراحي ، برنامه سازي و پياده سازي ، توسعه ، مستندسازي و نگهداري نرم افزار با بكار گيري روشهاي فني و عملي از علوم كامپيوتر (كنفرانس مهندسي نرم افزار 1968آلمان - توسط F.L.Bauer (
مهندسي نرم افزار : تعيين استاندارد براي نرم افزارهاي مختلف و تعيين ساختار دقيق و اجزاء يك نرم افزار بطوري كه در مواقع تغيير يا مشكل از آن استفاده شود
يا تعيين زمان طراحي يك سيستم ( چون عمدتا“ ، پيش بيني زمان طراحي با شناخت كافي همراه است)
يا اصولي را در طراحي نرم افزار رعايت كنيم ، طوري كه از جهت اقتصادي مقرونه به صرفه بوده و از طرفي از كيفيت بالائي برخوردار باشد و سيستم بطور واقعي كارا و داراي بازده باشد تا بتوان آنرا روي ماشين نصب كرد0
بكارگيري يك روش سيستماتيك، منظم و قابل اندازه گيري براي توليد و توسعه، عملياتي كردن و نگهداري نرم افزار؛ بكارگيري اصول مهندسي در توليد نرم افزار
اسلاید 13 :
چرخه عمر نرم افزار - Software Life Cycle (SLC)
طول عمر و حيات يك نرم افزار از زمان شكل گيري ايده توليد نرم افزار تا زمان كنار گذاشتن آن
يا
فرايند نرم افزار
اسلاید 14 :
روش: فرايندي منظم كه با استفاده از مجموعه اي از نمادگذاريهاي خوش تعريف، مجموعه اي از مدلها را ايجاد مي كند كه هر كدام بخشي از سيستم نرم افزاري در دست توليد(يا توسعه) را توصيف مي نمايد.
اهميت متدولوژي
يكي از علل اساسي بحران نرم افزار عدم وجود روشهاي مناسبي براي توليد نرم افزار
متدولوژي: مجموعه اي از روشها كه در تمام چرخه حيات سيستم نرم افزاري اعمال شده و بر يك نوع نگرش كلي درباره جهان نرم افزار متكي مي باشند.
اسلاید 15 :
بنظر بسياري از متخصصين بكارگيري يك متدولوژي مدون در توليد نرم افزار مي تواند تا اندازه قابل توجهي مشكلات بيان شده را برطرف سازد
ويژگيهاي يك متدولوژي مطلوب:
ارائه تعاريف از مفاهيم اوليه بكار رفته در متدولوژي
ارائه مدلي براي فرايند توليد
داشتن مدل زير بنائي(مدل معماري)
ارائه يك شيوه علامت گذاري استاندارد
معرفي تكنيكهايي براي پياده سازي متدولوژي كه توانايي كنترل پيچيدگي سيستمهاي كنوني را دارا باشند
ارائه معيارهاي براي ارزيابي نتايج حاصل از بكارگيري متدولوژي
وجود ابزار اتوماتيك براي كمك به توليد و اجراي مدلهاي مبتني بر متدولوژي
اسلاید 16 :
مدرس :سجاد جدی ساروی
با توجه به تعريف بالا مي توانيم بدانيم كه يك مهندس نرم افزار داراي چه خصوصياتي است . او كسي است كه بتواند از ابزارها و تكنيكهاي موجود به كمك علم و دانش خود بهره گيرد و پس از تجزيه و تحليل مساله آن را پياده سازي و مديريت نمايد و نهايتا محصول تلاش خود را كه معرف زحمات و معلومات اوست در اختيار مشتري و مصرف كننده قرار دهد .
بسياري از مردم نسبت به يك مهندس نرم افزار ديدي نادرست دارند و تصور مي كنند كه يك مهندس نرم افزار كسي است كه عمل برنامه نويسي را انجام مي دهد ، ولي وظيفه اصلي مهندسي نرم افزار چيزي غير از اين تصور است . يك مهندس نرم افزار مساله را از ديدگاه هاي مختلف بررسي مي نمايد و با استفاده از اصول مهندسي نرم افزار به تجزيه و تحليل آن پرداخته و بهترين راه حل را براي انجام پروژه هاي نرم افزاري انتخاب و پياده سازي مي كند ، بنابراين مي بينيم كه برنامه نويس فقط مي تواند جزئي از كارهاي يك مهندس نرم افزار باشد و وظيفه اصلي او چيز ديگري است .
او براي به انجام رساندن درست پروژه آن را هدايت كرده و با نظارت كامل بر مراحل انجام پروژه به فكر بالا بردن كيفيت و كاهش هزينه نيز هست و پس از انجام پروژه به تست آن مي پردازد كه در بحثهاي آتي راجع به آن بيشتر صحبت خواهيم كرد . او پس از انجام تست ، مسئول مراقبت و نگهداري پروژه است و احياناً اگر نياز به تكامل يك پروژه Update باشد او بايد اين كار را انجام دهد ، البته براي انجام اين كار مي تواند از گروه تحت امر خود نيز استفاده كند .
اسلاید 17 :
مدرس :سجاد جدی ساروی
نرم افزار يك محصول منطقي و توليد ميشود يك فرايند مهندسي ست و سخت افزار يك محصول فيزيكي قابل لمس و ساخته ميشود و يك فرايند توليد صنعتي ست.
گرفتن اطلاعات جهت تعيين مشخصات نرم افزار از طريق افراد معمولي مي تواند باشد يعني كاربر نياز خود را براي تحليل گر بيان مي كند كه مشكل اين است كه كاربر تمام خواسته ها را نتواند مطرح كند يا نيازهايش تغيير كند يا برداشت اشتباه از نيازهاي او شود.
نرم افزار فرسوده نميشود
طراحي نرم افزار بعلت نداشتن استاندارد مناسب مشكل بودن تست نرم افزار، تغيير در نرم افزار و غيره پيچيده تر از سخت افزار است .
در ساخت سخت افزار ، ابزار و روشهاي خودكار وجود دارد در صورتيكه براي نرم افزار معمولاً اين روشها موجود نيست .
در آزمايش براي سخت افزار معمولاً ابزار دقيق آزمايش و اندازه گيري وجود دارد در صورتيكه براي نرم افزار ابزار كمي جهت آزمايش و ارزيابي مطرح است.
تفاوت توليد نرم افزار نسبت به ديگر صنايع سخت افزاري :
اسلاید 18 :
زمان
نرخ خرابي
منحني نرخ خرابي سخت افزار نسبت به زمان
اسلاید 19 :
منحني نرخ خرابي ايده آل نرم افزار نسبت به زمان
اسلاید 20 :
تغيير
نرخ خرابي افزايش يافته به علت تاثيرات جانبي
منحني واقعي
منحني ايده آل
منحني نرخ خرابي واقعي نرم افزار نسبت به زمان