مقدمه اي بر مهندسي نيازمنديها

Slides:



Advertisements
Similar presentations
Chapter 17 I.Omaima Al-Matrafi
Advertisements

CHAPTER 1 Introduction to SQA.
Software project management (intro) Quality assurance.
R&D SDM 1 Metrics How to measure and assess software engineering? 2009 Theo Schouten.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
Chapter#7.  Part 1: Quality Management ◦ ƒ Understand the definition of quality and the different methodologies to provide quality ◦ ƒ Know quality management.
Software Process and Product Metrics
Factor Of Software Quality
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
S OFTWARE Q UALITY A SSURANCE M ODEL. S UGGESTED MODEL One of SQA model that is suggested is a McCall’s model which consists of 11 factors, subsequent.
Chapter 7 Software Engineering Objectives Understand the software life cycle. Describe the development process models.. Understand the concept of modularity.
Systems Analysis and Design
Managing Software Quality
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
1 ICS 122: Software Specification and Quality Engineering Spring 2002Lecturers: H. Muccini and D. J. Richardson Lecture 13: Summary The three aspects:
Requirements specification Copyright, 2001 © Jerzy R. Nawrocki Quality Management.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Software Quality Applied throughout SW Engineering Process Encompasses ▫ Analysis, design, coding, testing, tools ▫ Formal tech reviews ▫ Multi-tiered.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
1 Software quality - Definition IEEE 1. The degree to which a system, component, or process meets specified requirements. 2. The degree to which a system,
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
CS460 © 2003 Ray S. Babcock Metrics The term metrics refers to any measurement related to software development. ● Lines of Code ● number of defects ● defects.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Software quality factors
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Quality Models in Software Engineering Literature: An Analytical and Comparative Study Rafa E. Al-Qutaish, PhD Al Ain University of Science and Technology.
Quality Factors Chapter Three. Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software.
SEN 460 Software Quality Assurance
CSE 303 – Software Design and Architecture
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15a: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Test Strategy Best Practices By Gabriel Rodriguez.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Metrics "A science is as mature as its measurement tools."
OOAD UNIT V B RAVINDER REDDY PROFESSOR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING.
Software Quality Prepared By: Rooshabh Kothari Assistant Professor T & P Co-ordinator CSE/IT Department 1.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
TOTAL QUALITY MANAGEMENT
16CS202 & Software Engineering
Software Quality Management
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
SEVERITY & PRIORITY RELATIONSHIP
Source & Courtesy: Doc. S. Dapkūnas
Software Quality Assurance Software Quality Factor
McCall’s Quality Factors
Lecture 15: Technical Metrics
Software Quality Assurance
Software engineering.
Rekayasa Perangkat Lunak
Software Quality Engineering CS- 449
Software quality factors
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Managing Software Quality
Software Requirements Specification (SRS) Template.
Software quality factors
 Is a machine that is able to take information (input), do some work on (process), and to make new information (output) COMPUTER.
Presentation transcript:

مقدمه اي بر مهندسي نيازمنديها جلسه دوم استاد راهنما: آقاي دکتر احمد عبدا.. زاده بهمن 90-91

تعريف نيازمندي يك ويژگي كه بايد توسط يك سيستم توسعه يافته، براي حل يك مساله خاص ارائه شود[SWEBOK]. يك نيازمندي بعنوان ”يك شرط يا قابليت“ تعريف مي شود كه يك سيستم بايد مطابق آن كار كند. ‌‍[RUP] يك عبارت درباره سيستم پيشنهادي كه توافق كليه ذينفعان بايد بر سر آن اخذ شود و در جهت رفع مشكل كاربر به اندازه كافي باشد. [Lethbridge].

تعريف نيازمندي استاندارد IEEE 610.12-1990 نيازمندي را به صورت زير تعريف ميکند: يک شرط يا قابليت مورد نياز توسط کاربر براي حل يک مسئله يا دستيابي به يک هدف. يک شرط يا قابليت که بايد در سيستم يا مولفه هاي آن وجود داشته باشد تا يک قرارداد، استاندارد، توصيف، يا ساير مستندات رسمي برآورده گردد. يک نمايش مستندشده از يک شرط يا قابليت از موارد 1 و 2.

تعريف نيازمندي نقاط کلیدی در مورد نیازمندیها دقیق و کوتاه باشد چیزهایی درباره سیستم باشند همه ذینفعان در مورد اعتبار آن توافق داشته باشند در جهت حل مشکل کاربر باشند می تواند متغیر باشد از یک عبارت سطح بالای مجرد درباره یک سرویس یا محدودیت سیستم تا توصیفات کارکردی ریاضی جزئی [Ian Summerville]

تعريف مهندسی نيازمندي محاسبه نیازمندی‌ها در life cycle با توجه به process model در متودولوژی مشخص

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

تولید سیستم بر مبنای View

4+1 View SR Scenario Class Model Structural Behavior

ابزارهای مختلف برای رسیدن به Viewها Scenario Entity relationship diagram Use-case diagram User stories Behavior Class model Sequence diagram Collaboration diagram Activity diagram Class diagram Structural Flow model State diagram Data flow diagram

Behavior Structure System

جایگاه مهندسی نیازمندی Wish Requirement بعد از تولید در حین تولید قبل از تولید RFP PD Contract Need

رویکرد مهندسی نیازمندی برای حرکت به سوی موفقیت کلیه نیازهای کارکردی پوشش داده شوند. کیفیت مطلوب باشد. (اندازه کیفیت تعریف شده باشد.) اصل صفر همه چیز سرمایه است و باید سود داشته باشد!

تعريف نادرست نيازمنديها در مهندسی نیازمندی‌ها سعی داریم Defect نداشته باشیم. Defect مشکلی است که باید در مرحله بعد آن را حل کنیم. بدترین (پر هزینه ترین) حالت وقتی است که در هنگام اجرا متوجه Defect شویم.

نمونه اي از تعريف نادرست نيازمنديها در مثال زير نمونه اي از تعريف نادرست نيازمندي و نتايج آن نشان داده شده است: نيازمندي: ساخت يك وسيله نقليه براي جابجايي يك نفر از منزل به محل كار

هزينه نسبي رفع خطا در مراحل مختلف تولید نرم افزار هزينه نسبي براي رفع يك خطا در مراحل مختلف توسعه سيستم در جدول زير آورده شده است:

انواع نیازمندی نیازمندیهای کارکردی نیازمندیهای غیرکارکردی بیان سرویسهایی که سیستم باید فراهم نماید، چگونگی واکنش سیستم در برابر ورودیهای خاص و چگونگی رفتار سیستم در شرایط خاص نیازمندیهای غیرکارکردی بیان محدودیت ها و قیودی که بر روی سرویسهای کارکردی سیستم باید اعمال شود مانند محدودیت‌های زمانی، قیودی بر روی فرآیند توسعه، استانداردها و غیره

کیفیت نرم افزار Product Quality Software Quality Process Quality مهندسی نیازمندیها به کیفیت از دو بعد نگاه می کند. چه چیز تولید می‌شود نیازمندیها طراحی کد تست سیستم Software Quality Product Quality Process Quality چگونه تولید می‌شود استانداردها روش‌ها فرآیندهای سطح پروژه

کیفیت نرم افزار (ادامه) کیفیت نرم افزار (ادامه) برای دانستن اینکه آیا کیفیت افزایش پیدا کرده یا نه باید بتوانیم کیفیت را اندازه گیری کنیم. سوال اساسی: چگونه می توان کیفیت را اندازه گیری کرد؟

کیفیت نرم افزار (ادامه) کیفیت نرم افزار (ادامه) تعریف Indicators, Metrics, Measures: یک Measure نشانه کمی میزان حجم، سایز، اندازه، بعد و سایر ویژگی‌های یک محصول یا فرآیند است. در واژه‌نامه IEEE معنی Metric به شکل زیر ارائه شده است: یک درجه از اندازه کمی که یک سیستم، component یا process برای یک ویژگی تعیین شده دارد. یک Indicator عبارت است از یک Metric یا ترکیبی از Metricها که یک دید نسبت به فرآیند نرم افزاری، یک پروژه و یا یک محصول نرم‌افزاری ارائه می دهد.

دیدگاه کیفیت McCall فاکتورهای کیفیت معیارهای کیفیت کیفیت

دیدگاه McCall در رابطه با فاکتورهای کیفیت نرم افزارهایی که در قرن 21 هم از این معیارها استفاده می کنند، با وجود تغییر وصف ناپذیر تکنولوژی، همچنان از کیفیت بالایی برخوردار خواهند بود.

معیارها و فاکتورهای کیفیت McCall McCall، Richard و Walters مفهوم کیفیت نرم‌افزار را در قالب دو مفهوم کلی زیر بررسی کردند: فاکتورهای کیفیت معیارهای کیفیت فاکتورهای کیفیت ویژگی‌های رفتاری سیستم را نمایش می دهد: مثال: درستی، قابلیت اعتماد، قابلیت کارایی، قابلیت تست پذیری، قابلیت حمل و .... . معیارهای کیفیت ویژگی های فاکتورهای کیفیت هستند که با توسعه نرم افزار در ارتباطند: مثال: Modularity, accuracy, consistency, error handling مثال: ماژولاربودن یک ویژگی معماری سیستم نرم افزاری است. یک نرم افزار ماژولار به طرح امکان جمع آوری componentهای مرتبط را در یک ماژول می دهد و باعث می شود قابلیت نگهداری سیستم افزایش پیدا کند.

یازده فاکتور کیفیت از دیدگاه McCall Quality Factor Definitions Correctness The extent to which a program satisfies its specification and fulfills the user’s mission objectives Reliability The extent to which a program can be expected to perform its intended function with required precision Efficiency The amount of computing resources and code required by a program to perform a function Integrity The extent to which access to software or data by unauthorized persons can be controlled Usability The effort required to learn, operate, prepare input, and interpret output of a program Maintainability The effort required to test a program to ensure that it performs its intended functions Testability Flexibility The effort required to modify an operational program Portability The effort required to transfer a program from one hardware and/ or software environment to another Reusability The extend to which parts of a software system can be reused in other applications Interoperability The effort required to couple one system with another

مثلث کیفیت McCall Product Revision Product Transition Product Operations

یازده فاکتور کیفیت از دیدگاه McCall Quality Categories Quality Factors Broad Objectives Product Operation Correctness Reliability Efficiency Integrity Usability Does it do what the customer wants? Does it do it accurately all of the time? Does it quickly solve the intended problem? Is it secure? Can I run it? Product Revision Maintainability Testability Flexibility Can it be fixed? Can it be tested? Can it be changed? Product Transition Portability Reusability Interoperability Can it be used on another machine? Can parts of it be reused? Can it interface with another system?

تکنیک شامل روش‌هایی است که برای اندازه‌گیری در روش‌های مختلف از آن استفاده می‌کنیم. مثال: کارت CRC که مشخص میکند یک کلاس چه می‌کند، وظیفه‌اش چیست، با چه کلاس‌هایی در ارتباط است.