an introduction to software engineering n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
مقدمه ای بر مهندسی نرم افزار An Introduction to Software Engineering PowerPoint Presentation
Download Presentation
مقدمه ای بر مهندسی نرم افزار An Introduction to Software Engineering

Loading in 2 Seconds...

play fullscreen
1 / 18

مقدمه ای بر مهندسی نرم افزار An Introduction to Software Engineering - PowerPoint PPT Presentation


  • 181 Views
  • Uploaded on

مقدمه ای بر مهندسی نرم افزار An Introduction to Software Engineering. فهرست. بحران نرم افزار مفهوم مهندسی تعريف مهندسی نرم افزار ماهيت نرم افزار و تفاوت مهندسی نرم افزار با ساير رشته های مهندسی کاربردهای نرم افزار اهميت مهندسی نرم افزار ارکان مهندسی نرم افزار تعريف متدلوژی نرم افزاری.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'مقدمه ای بر مهندسی نرم افزار An Introduction to Software Engineering' - felice


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
an introduction to software engineering

مقدمه ای بر مهندسی نرم افزار An Introduction to Software Engineering

slide2
فهرست
  • بحران نرم افزار
  • مفهوم مهندسی
  • تعريف مهندسی نرم افزار
  • ماهيت نرم افزار و تفاوت مهندسی نرم افزار با ساير رشته های مهندسی
  • کاربردهای نرم افزار
  • اهميت مهندسی نرم افزار
  • ارکان مهندسی نرم افزار
  • تعريف متدلوژی نرم افزاری
slide3
بحران نرم افزار

بحران نرم افزار اولين بار بصورت رسمی در کنفرانسی در سال 1968 ميلادی مطرح گرديد . عوامل اصلی اين بحران عبارتند از :

  • هزينه بالای ايجاد نرم افزار
  • تاخير در توليد و تحويل نرم افزار
  • نگهداری پرهزينه نرم افزار
  • پيشرفت سريع سخت افزار
  • کيفيت پايين نرم افزار
  • افزايش پيچيدگی کاربردها
slide4
تفاوت مهندس و محقق علوم

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

slide5
تعريف مهندسی نرم افزار
  • تعريف مهندسی نرم افزار از ديد پارناس (Parnas) :

کار چند نفره برای توليد چند نسخه (version) از برنامه

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

  • تعريف مهندسی نرم افزار بنا بر پيشنهاد انجمن IEEE :

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

slide6
تعريف مهندسی نرم افزار(ادامه)
  • تعريف مهندسی نرم افزار (از نگاهی ديگر) :

شامل مجموعه ای از تکنيکها و قواعد معتبر مهندسی بمنظور توليد نرم افزار قابل اطمينان و مقرون بصرفه

مفهوم مهندسی

slide7
ماهيت نرم افزار

جهت مشخص شدن ماهيت نرم افزار آنرا با يک محصول فيزيکی (همانند سخت افزار ) مقايسه می نماييم :

  • نرم افزار محصولی منطقی است ، در صورتيکه سخت افزار يک محصول فيزيکی قابل لمس است .
  • نرم افزار توسعه داده می شود در صورتيکه سخت افزار ساخته می شود ) بکارگيری واژه develop (پرورش دادن) بجای create).
  • هزينه های نرم افزار در مهندسی آن متمرکز است . لذا مديريت پروژه های نرم افزاری متفاوت از مديريت ساير پروژه های مهندسی است .
slide8
ماهيت نرم افزار(ادامه)
  • جمع آوری نيازمنديها در رشته های مهندسی با کمک صاحب نظران و طراحان در رشته مربوطه صورت می پذيرد ، در صورتيکه جمع آوری اطلاعات جهت تعيين نيازمنديهای نرم افزار از طريق افراد معمولی صورت می پذيرد . لذا وجود درخواستهای ناقص و اشتباه از سوی کاربران ، يا تغيير نيازمنديهای آنها امری غير عادی تلقی نمی شود.
  • مفهوم استفاده مجدد در نرم افزار و سخت افزار : صنعت به سمت نصب قطعات حرکت می نمايد ، ليکن اين امر در نرم افزار کمرنگتر می باشد.
  • روشها و ابزارهای آزمايش نرم افزار متفاوت از روشها وابزارهای سخت افزار است.
slide9
ماهيت نرم افزار(ادامه)
  • سخت افزار فرسوده می گردد

مرگ زودرس

فرسودگی

نرخ خرابی

زمان

نمودار نرخ خرابی سخت افزار

slide10
ماهيت نرم افزار(ادامه)

افزايش نرخ شکست بدليل اثرات جانبی

نرم افزار به تدريج دچار فرسودگی نمی گردد ، بلکه فاسد می شود.

تغيير

منحنی واقعی

نرخ خرابی

منحنی ايده آل

زمان

نمودار نرخ خرابی نرم افزار

slide12
کاربردهای نرم افزار
  • نرم افزار برای هر موردی که در آن مورد مجموعه ای مشخص از مراحل رويه ای (يعنی بصورت الگوريتميک) تعريف شده است می تواند بکار گرفته شود.
  • کاربردهای اصلی نرم افزار در موارد زير است :
    • نرم افزار سيستم : مجموعه ای از برنامه ها می باشد که جهت ارائه سرويس به ساير برنامه ها ايجاد گرديده است . همانند کامپايلرها ، سيستم مديريت بانک اطلاعات DBMS ، ويراستارها و سيستم عامل
    • نرم افزار بلادرنگ : جهت تحليل و کنترل رخدادهای دنيای واقعی استفاده می شود. اين نرم افزار در هنگام وقوع رخداد بصورت بلادرنگ پاسخ مناسب را ارائه می نمايد . کنترل واکنشها در يک کارخانه توليد مواد شيميائی مثالی از اين مورد می باشد.
slide13
کاربردهای نرم افزار
  • نرم افزار تجاری : پردازش اطلاعات تجاری پر کاربرد ترين بخش استفاده از نرم افزار را تشکيل می دهد. سيستمهای کاربردی همانند سيستمهای حسابداری ، فهرست موجودی و عمليات ثبت نام دانشجويان مثالهائی از اين گروه نرم افزار می باشد.
  • نرم افزار علمی و مهندسی
  • نرم افزار کامپيوتر شخصی
  • نرم افزار جاسازی شده
  • نرم افزار هوش مصنوعی
  • نرم افزار Web
slide14
اهميت مهندسی نرم افزار

نرم افزار دارای پيچيدگی می باشد . به علت ماهيت نرم افزار امکان حذف پيچيدگی وجود ندارد ، ليکن می توان آنرا کنترل نمود .

در خصوص سوالات زير تفکر نمائيد :

  • چگونه می توان نرم افزاری جهت يک سيستم پيچيده ايجاد نمود ؟
  • برنامه نويسی چه جايگاهی در مهندسی نرم افزار دارد ؟ و چنانچه جهت توسعه سيستمها در مراحل آغازين کار و قبل از انجام تمهيدات لازم به سراغ برنامه نويسی برويم چه مشکلاتی ايجاد می شود ؟
slide15
اهميت مهندسی نرم افزار(ادامه)
  • جهت انجام پروژه نرم افزاری با هزينه مناسب (منظور از هزينه در اينجا ابعاد مالی ، زمانی و نيروی انسانی است) و کيفيت خوب چه راهکارهايي را می بايست اتخاذ نماييم ؟
  • بطور متوسط طول عمر نرم افزار در کشور ما تقريبا نصف طول عمر نرم افزار در جوامع صنعتی است . دليل اين اختلاف را در چه می بينيد؟
  • آيا استفاده از دستورالعملها ، مستندات و نمودارهايي که مهندسی نرم افزار آنها را توصيه می نمايد ، صرفا جهت مستند سازی است يا مزايای ديگری نيز دارد؟
slide16
تکنولوژی مهندسی نرم افزار

متدولوژی

ابزارهای خودکارسازی

CASE TOOLS

فرايند توليد

slide17
متدولوژی
  • متد (روش) : فرايندی منظم که با استفاده از مجموعه ای از نمادگذاريهای خوش تعريف ، مجموعه ای از مدلها را ايجاد می کند که هر کدام قسمتی از سيستم نرم افزاری در حال توسعه را توصيف می نمايد .
  • متدولوژی:
    • ارائه چارچوب کاری معين در قالب فرمها ، نمودارها ، قالبهای متنی با توجه به فرايند توسعه
    • مجموعه ای از روشها که در تمام چرخه حيات سيستم نرم افزاری اعمال شده و بر يک نوع نگرش کلی درباره جهان نرم افزار متکی می باشند.
slide18
انتظار از متدولوژی
  • بازشناسی : دريافت و توصيف نيازمنديها
  • بازنمايي : قدرت بيان و تشريح (notation)
  • گذر : دارای تکنيک و دستورالعمل برای گذر از يک مرحله به مرحله ديگر باشد.