مهندسی نرم افزار: تحلیل و طراحی سیستمها 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!