INTRODUCTION OF REQUIREMENT ENGINEERING Chapter- one.

Slides:



Advertisements
Similar presentations
Requirements Engineering Process
Advertisements

Introduction to Software Engineering Dr. Basem Alkazemi
SWE Introduction to Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
Software Engineering General Project Management Software Requirements
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 1 (cont ’d) Title : Client requirements (Review) Mandatory reading: I.
Overview of Software Requirements
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
1 SWE Introduction to Software Engineering Lecture 11 - Requirements Engineering Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes 1.
The Software Development Life Cycle: An Overview
Dr Suad AlRamouni. ◦ Understand some key terms used in software requirements engineering. ◦ Distinguish requirements development from requirements management.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
Chapter 4 – Requirements Engineering
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Chapter 5: Requirement Engineering Process Omar Meqdadi SE 2730 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
©Ian Sommerville Software Engineering Slide 1 Software Requirements l Definition: Description and Specifications of a system l Topics covered: Functional.
Adaptive Processes © Adaptive Processes Simpler, Faster, Better Software Requirements.
 To describe the principal requirements engineering activities and their relationships  To introduce techniques for requirements elicitation and analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Chapter 4 Requirements Engineering Processes Objectives l To describe the principal requirements engineering activities and their relationships l To.
Lecture 7: Requirements Engineering
Requirements Engineering Overview Senior Design Don Evans.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Chapter 4 Software Requirements
SOFTWARE REQUIREMENT ANALYSIS AND SPECIFICATION. What is a requirement? It may range from a high-level abstract statement of a service or of a system.
Software Engineering, 8th edition. Chapter 7 1 Courtesy: ©Ian Sommerville 2006 March 20 th, 2008 Lecture # 12 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirements Engineering. Requirements engineering processes The processes used for RE vary widely depending on the application domain, the people involved.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirements Engineering Process
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirements Engineering Processes. Syllabus l Definition of Requirement engineering process (REP) l Phases of Requirements Engineering Process: Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirements Analysis
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
CS223: Software Engineering Lecture 8: Requirement Engineering.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
1 Software Requirements Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
REQUIREMENTS ENGINEERING PROCESSES Chapter 6. Activities in Requirements Engineering processes  Requirements elicitation;  Requirements analysis; 
Requirements Engineering Processes
Requirements Engineering Process
Chapter 4 – Requirements Engineering
Software Requirements
Chapter 4 Requirements Engineering (1/3)
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
Requirement Management
EKT 421 SOFTWARE ENGINEERING
Chapter 4 Software Requirements
Software Engineering (CSI 321)
Requirements Reference: Software Engineering, by Ian Sommerville, 6th edition, Chapters 5, 6, & 8.
Requirements Analysis
Requirements Engineering Process
Requirements Engineering Processes
Requirements Document
SNS College of Engineering Coimbatore
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

INTRODUCTION OF REQUIREMENT ENGINEERING Chapter- one

What are requirements? Requirements are defined during the early stages of a system development as a specification of what should be implemented or as a constraint of some kind on the system. They may be: a user-level facility description, a detailed specification of expected system behavior, a general system property, a specific constraint on the system, information on how to carry out some computation, a constraint on the development of the system.

What are requirements? It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification This is inevitable as requirements may serve a dual function – May be the basis for a bid for a contract – therefore must be open to interpretation – May be the basis for the contract itself - therefore must be defined in detail – Both these statements may be called requirements

Requirements abstraction (Davis)

Requirements define the “what” of a software product What the software must do to add value for its stakeholders - These functional requirements define the capabilities of the software product. What the software must be to add value for its stakeholders - These nonfunctional requirements define the characteristics, properties, or qualities that the software product must possess. They define how well the product performs its functions. What limitations there are on the choices that developers have when implementing the software - The external interface definitions and other constraints define these limitations.

Are requirements important? European Software Process Improvement Training Initiative (1996) “The principal problem areas in software development and production are the requirements specification and the management of customer requirements” In a study of errors in embedded systems, it was found that: “... difficulties with requirements are the key root-cause of the safety-related software errors that have persisted until integration and system testing”

What happens if the requirements are wrong? The system may be delivered late and cost more than originally expected. The customer and end-users are not satisfied with the system. They may not use its facilities or may even decide to scrap it altogether. The system may be unreliable in use with regular system errors and crashes disrupting normal operation. If the system continues in use, the costs of maintaining and evolving the system are very high.

SW project realities Poorly defined applications (miscommunication between business and IT) contribute to a 66% project failure rate, costing U.S. businesses at least $30 billion every year(Forrester Research) 60% – 80% of project failures can be attributed directly to poor requirements gathering, analysis, and management (Meta Group) 50% are rolled back out of production, 40% of problems are found by end users, testing consumes 25% to 50% of the average application life cycle and often is viewed as adding no business value (Gartner) 25% – 40% of all spending on projects is wasted as a result of re-work (Carnegie Mellon) Up to 80% of budgets are consumed fixing self-inflicted problems (Dynamic Markets Limited 2007 Study)

What is requirements engineering? Requirements engineering covers all of the activities involved in discovering, documenting, and maintaining a set of requirements for a computer-based system. The use of the term ‘engineering’ implies that systematic and repeatable techniques should be used to ensure that system requirements are complete, consistent, relevant, etc.

Why is requirements engineering difficult? Businesses operate in a rapidly changing environment so their requirements for system support are constantly changing. Multiple stakeholders with different goals and priorities are involved in the requirements engineering process. System stakeholders do not have clear ideas about the system support that they need. Requirements are often influenced by political and organizational factors that stakeholders will not admit to publicly.

Types of Requirements 1. User requirements  Are statements of the services the system provides and its operational constraints in natural language, tables and diagrams. Written for customers  Should describe functional and non-functional requirements so that they are understandable by system users who don’t have detailed technical knowledge

Problems with natural language Lack of clarity  Precision is difficult without making the document difficult to read Requirements confusion  Functional and non-functional requirements tend to be mixed-up Requirements amalgamation  Several different requirements may be expressed together

Types of Requirements… 2.System requirements  A structured document setting out detailed descriptions of the system services.  System requirements may be expressed using system models  Written as a contract between client and contractor 3.Software design specification  An abstract description of the software design that can serve as a basis for a more detailed design. Bridges the gap between requirements and design. Written for developers

Requirements engineering processes The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements. However, there are a number of generic activities common to all processes  Feasibility studies  Requirements elicitation and analysis  Requirement specification  Requirements validation  Requirements change management

Requirement Engineering Process… Feasibility study Determining if running the project is feasible

Feasibility study A feasibility study decides whether or not the proposed system is worthwhile. A short focused study that checks;  If the system contributes to organisational objectives;  If the system can be engineered using current technology and within budget;  If the system can be integrated with other systems that are used.

Feasibility study Implementation Based on information assessment (what is required), information collection and report writing. Questions for people in the organisation  What if the system wasn’t implemented?  What are current process problems?  How will the proposed system help?  What will be the integration problems?  Is new technology needed? What skills?  What facilities must be supported by the proposed system?

Requirements elicitation & Analysis Sometimes called requirements elicitation or requirements discovery/identification. Involves technical staff working with other stakeholders to find out the services that the system should provide, the system’s operational constraints and the application domain. Multi-disciplinary and human-centred activity. The most difficult, most critical, most error-prone, and most communication-intensive aspect of software development. Requirement Analysis has some tool support  E.g. RequisitePro, MS Visio

Requirements Elicitation Requirements elicitation practice include the following:  Interviews  Questionnaires  User observation  Workshops  Brain storming  Use cases  And prototyping

Requirements elicitation & analysis process Requirements elicitation & analysis process activities involves:  Domain understanding  Requirement collection  Classification (into coherent clusters)  Conflict resolution and identification of unpractical requirements  Prioritization  Requirement checking (e.g. Eliminate, combined and modified requirements)

Requirements analysis D ifferent models may be produced during the requirements analysis activity. Requirements analysis may involve three structuring activities which result in these different models  Partitioning. Identifies the structural (part-of) relationships between entities  Abstraction. Identifies generalities among entities  Projection. Identifies different ways of looking at a problem

Requirements Specification A document which is used as a communication medium between the customer and the supplier. When the software requirement specification is completed and is accepted by all parties, the end of the requirements engineering phase has been reached. Requirements can be changed, but the changes must be tightly controlled. The software requirement specification should be edited by both the customer and the supplier.

Requirements Specification A Software Requirements Specification (SRS) – a requirements specification for a software system – is a complete description of the behavior of a system to be developed. It includes a set of use cases that describe all the interactions the users will have with the software. In addition to use cases, the SRS also contains non-functional requirements (such as performance requirements, quality standards, or design constraints)

Requirements validation l Concerned with demonstrating that the requirements define the system that the customer really wants l Requirements error costs are high so validation is very important Fixing a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error

Validation Vs. Verification Validation: “Am I building the right product?” checking a work product against higher-level work products or authorities that frame this particular product. Requirements are validated by stakeholders Verification: “Am I building the product right?” checking a work product against some standards and conditions imposed on this type of product and the process of its development. Requirements are verified by the analysts mainly

Requirements checking Validity. Does the system provide the functions which best support the customer’s needs? Consistency. Are there any requirements conflicts? Completeness. Are all functions required by the customer included? Realism. Can the requirements be implemented given available budget and technology Verifiability. Can the requirements be checked?

Requirements management Requirements management is the process of managing changing requirements during the requirements engineering process and system development Requirements are inevitably incomplete and inconsistent  New requirements emerge during the process as business needs change and a better understanding of the system is developed  Different viewpoints have different requirements and these are often contradictory