هدف مهندسی نرم افزار

advertisement
‫مهندسی نرم افزار‪:‬‬
‫تحلیل و طراحی سیستمها‬
‫‪System Analysis and Design‬‬
‫مراجع درس‬
‫مراجع درس‬
‫نحوه ارزيابی‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪ 6‬نمره ‪:‬میانترم‬
‫‪ 8‬نمره ‪ :‬پایانترم‬
‫‪ 4‬نمره‪ :‬پروژه‬
‫‪ 1‬نمره ‪ :‬تمرین و کوییز‬
‫‪ 1‬نمره ‪ :‬حضور کالسی‬
‫رئوس مطالب درس‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫طرح مشکل‪ ،‬هدف مهندسی نرم افزار‬
‫اصطالحات و واژه های مهم در علم مهندسی نرم افزار‬
‫چرخه حیات تولید نرم افزار‬
‫آشنایی با دیدگاههای شناخت‬
‫تولید نرم افزار با دیدگاه ”فرایند گرا“‬
‫تولید نرم افزار با دیدگاه ”شیء گرا“‬
‫نرم افزار چیست؟‬
‫‪ ‬محدودیت زمانی‬
‫‪ ‬بودجه‬
‫‪ ‬کار تیمی‬
‫‪ ‬نیاز های کیفی‬
‫برنامه ‪ +‬نیازهای کیفی ‪ +‬محدودیتها = نرم افزار‬
‫معیارهای کیفیت نرم افزار‬
‫‪ .1‬کارایی(‪)performance‬‬
‫‪.1‬زمان پاسخ‬
‫‪.2‬توان عملیاتی‬
‫‪ .2‬قابلیت اتکا(‪)dependability‬‬
‫‪ .1‬قابلیت اطمینان(‪:)reliability‬‬
‫‪ .2‬در دسترس بودن(‪)availability‬‬
‫‪Usability .3‬‬
‫‪ .4‬قابلیت نگهداری(‪)maintainability‬‬
‫ويژگیهای نرم افزار‬
• Software is developed or engineered. It is not
manufactured
• Software does not “wear-out” but it does
“deteriorate”
– Rigidity
‫مقايسه نرم افزار و سخت افزار‬
‫مقايسه نرم افزار و سخت افزار‬
‫انواع نرم افزار‬
•
•
•
•
•
•
System Software : Compilers, OS, VMs ..
Application Software: POS application
Engineering/Scientific Software: Simulators
Embedded Software: Automobile control system
Product-line Software: office suite
Web Applications: E-Gov portal
‫انواع ‪Application Software‬‬
‫‪.1‬پردازش تراکنش )‪Transaction Processing System(TPS‬‬
‫سیستم یا نرم افزاری که تراکنش ها را ایجاد یا تغییر می دهد‪.‬‬
‫• تعریف تراکنش ‪ :‬مجموعه ای از عملیات دستکاری داده که به‬
‫صورت منطقی کار واحدی را انجام می دهند مانند تراکنش انتقال‬
‫پول که شامل برداشت از حساب مبدأ و واریز به حساب مقصد می‬
‫باشد‪.‬‬
‫• اکثر سیستم های اطالعاتی شامل یک یا چند زیر سیستم پردازش‬
‫تراکنش هستند‪.‬‬
‫‪.2‬اطالعات مدیریت)‪Management Information System(MIS‬‬
‫• زیر سیستم های اطالعات مدیریت از اطالعات تراکنش ها جهت ارائه‬
‫گزارشات به مدیران میانی پشتیبانی می کند‪ .‬عملیات اصلی در اینجا‬
‫خالصه سازی اطالعات است مانند گزارش خالصه ی گردش مالی‬
‫شعبه در یک ماه گذشته‪.‬‬
‫‪MIS‬‬
‫مدیر شعبه‬
‫تراکنش ها‬
‫سیستم پردازش‬
‫تراکنش بانکی‬
‫مشتری‬
‫‪.3‬سیستم پشتیبانی تصمیم‬
‫)‪Decision Support System(DSS‬‬
‫• از سیستم پشتیبانی تصمیم برای کمک به تصمیم گیری مدیر استفاده‬
‫می شود‪ .‬یک نمونه از این سیستم ها ‪OLAP (Online Analytical‬‬
‫)‪ Processing‬است که توسط مایکروسافت در قالب بسته ی ‪SQL‬‬
‫‪ Server‬ارائه شده است‪.‬‬
‫‪.4‬سیستم های خبره )‪Expert Systems(ES‬‬
‫• سیستمی است که می تواند در زمینه ی خود به جای انسان تصمیم‬
‫بگیرد‪.‬‬
Legacy Software?
•
•
•
•
Developed decays ago!
Have been modified many times
Costly to maintain
Risky to be replaced
‫هدف مهندسی نرم افزار‪:‬‬
‫• تولید یک محصول در زمان مشخص با بودجه تعیین شده به صورت‬
‫تیمی و با کیفیت الزم ‪.‬‬
‫• در واقع مهندسی نرم افزار به دنبال استاندارد سازی است‪.‬‬
‫• استفاده از روش مهندسی کار را تسهیل می کند یا سخت؟‬
‫مهندسی نرم افزار‪:‬‬
‫•مجموعه روش ها‪ ،‬استانداردها‪ ،‬تکنیک ها و ابزار ها که تولید یک‬
‫نرم افزار را با خصوصیات فوق الذکر برای تیم تولید امکان پذیر می‬
‫کند‪.‬‬
Problem Solving steps
•
•
•
•
Understand the problem: Analysis
Plan the problem : Design
Do the plan: Coding
Examine the result for accuracy: Test
Software Development Life Cycle
‫چرخه حیات تولید نرم افزار عبارت است از مراحلی که یک‬
.‫نرم افزاراز زمان تولد تا زمان مرگ طی میکند‬
Communication
1-Feasibility study
2-Requirement
gathering
Deterioration
1-Fragility
2-rigidity
Planning
1-Estimation
2-Scheduling
Deployment
1-deployment
2-maintenance
Modeling
1-Analysis
2-Design
Construction
1-implementation
2-testing
‫چرخه حیات تولید نرم افزار(‪)SDLC‬‬
‫• امکان سنجی‬
‫• تحلیل نیازمندیها‬
‫تحلیل مسایل‬
‫تحلیلگر‬
‫شناخت تکنیکی‬
‫روابط اجتماعی‬
‫شناخت سیستمها‬
‫• طراحی سیستم‬
‫• پیاده سازی‬
‫• تست‬
‫• نگهداری‬
‫پردازش تراکنش‬
‫اطالعات مدیریت‬
‫پشتیبانی تصمیم‬
‫طراح‬
‫پیاده ساز‬
‫سیستم خبره‬
Software Myths
• Management Myths
• Customer Myths
• Practitioner Myths
Management Myths
1)We already have a book that’s full of
standards and procedures for building
software!
Management Myths
2) If we get behind schedule, we can add more
programmers and catch up!
Management Myths
3) If I decide to outsource the software project to
a third party, I can just relax and let that firm
build it!
Customer Myths
A general statement of objectives is sufficient to
begin writing programs—we can fill in the
details later!
Customer Myths
Software requirements continually change, but
change can be easily accommodated!
Practitioner’s Myths
Once we write the program and get it to work,
our job is done!
Download