IF2036 Software Engineering TIM RPL Requirement Engineering.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Software Requirements
Software Requirements
Chapter 5 Understanding Requirements
Introduction to Software Engineering Dr. Basem Alkazemi
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Introduction to Software Engineering
SWE Introduction to Software Engineering
Software Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Requirements
Overview of Software Requirements
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 5 Slide 1 Software Requirements l Descriptions and specifications of a system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 7 Requirements Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Chapter 4 Requirements Engineering
Understanding Requirements. Requirements Engineering
Requirements Analysis
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Software Requirements l Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
AGU COE/COC Software Engineering CSE 402 / CSC 308 Slide 1 Requirements engineering l The process of establishing the services that the customer requires.
Software Requirements Presented By Dr. Shazzad Hosain.
소프트웨어공학 강좌 1 Chap 4. Software Requirements - Descriptions and specifications of a system - Soo-Mi Choi
Software Requirements Descriptions and specifications of a system.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Software Requirements. Objectives l To introduce the concepts of user and system requirements l To describe functional and non-functional requirements.
Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Requirements Engineering Overview Senior Design Don Evans.
1 Chapter 5 Lecture 5: Understanding Requirements Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Chapter 4 Software Requirements
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
By Germaine Cheung Hong Kong Computer Institute
 To introduce the concepts of user and system requirements  To describe functional and non-functional requirements  To explain how software requirements.
Software Requirements Software Requirements - adopted & adapted from I. Sommerville, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 / 54 Software Requirements.
 To introduce the concepts of user and system requirements  To describe functional and non-functional requirements  To explain how software requirements.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
Requirement Engineering
Requirements Analysis
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
 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)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Engineering, COMP201 Slide 1 Software Requirements.
Software Requirements
Presentation on Software Requirements Submitted by
Chapter 5 – Requirements Engineering
Software Requirements
Chapter 4 Software Requirements
Software Requirements
Software Requirements
Chapter 5 Understanding Requirements
Requirements Engineering Tasks
Chapter 5 Understanding Requirements
Chapter 5 Understanding Requirements.
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

IF2036 Software Engineering TIM RPL Requirement Engineering

Requirements Engineering helps software engineers better understand the problems they are trying to solve produce a written understanding of the customer's problem. begins during the software engineering communication activity and continues into the modeling activity * SEPA 6 th ed, Roger S. Pressman

What is a Requirement ? 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. * Software Engineering 7 th ed, Ian Sommerville

Types of Requirement User requirements – Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers. System requirements – A structured document setting out detailed descriptions of the system’s functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor. * Software Engineering 7 th ed, Ian Sommerville

Definitions and Specifications * Software Engineering 7 th ed, Ian Sommerville

User Requirements Should describe functional and non- functional requirements in such a way that they are understandable by system users who don’t have detailed technical knowledge. User requirements are defined using natural language, tables and diagrams as these can be understood by all users. * Software Engineering 7 th ed, Ian Sommerville

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. * Software Engineering 7 th ed, Ian Sommerville

System Requirements More detailed specifications of system functions, services and constraints than user requirements. They are intended to be a basis for designing the system. They may be incorporated into the system contract. System requirements may be defined or illustrated using system models * Software Engineering 7 th ed, Ian Sommerville

Functional and Non-Functional Requirements Functional requirements – Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. Non-functional requirements – constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. Domain requirements – Requirements that come from the application domain of the system and that reflect characteristics of that domain. * Software Engineering 7 th ed, Ian Sommerville

Functional Requirements Describe functionality or system services. Depend on the type of software, expected users and the type of system where the software is used. Functional user requirements may be high-level statements of what the system should do but functional system requirements should describe the system services in detail. * Software Engineering 7 th ed, Ian Sommerville

Non-functional Requirements Examples Product requirement 8.1The user interface for LIBSYS shall be implemented as simple HTML without frames or Java applets. Organisational requirement The system development process and deliverable documents shall conform to the process and deliverables defined in XYZCo-SP-STAN- 95. External requirement The system shall not disclose any personal information about customers apart from their name and reference number to the operators of the system. * Software Engineering 7 th ed, Ian Sommerville

Requirements Measures * Software Engineering 7 th ed, Ian Sommerville

Requirements Interaction Conflicts between different non-functional requirements are common in complex systems. Spacecraft system – To minimise weight, the number of separate chips in the system should be minimised. – To minimise power consumption, lower power chips should be used. – However, using low power chips may mean that more chips have to be used. Which is the most critical requirement? * Software Engineering 7 th ed, Ian Sommerville

Domain Requirements Derived from the application domain and describe system characteristics and features that reflect the domain. Domain requirements be new functional requirements, constraints on existing requirements or define specific computations. If domain requirements are not satisfied, the system may be unworkable. * Software Engineering 7 th ed, Ian Sommerville

Domain Requirements Problems Understandability – Requirements are expressed in the language of the application domain; – This is often not understood by software engineers developing the system. Implicitness – Domain specialists understand the area so well that they do not think of making the domain requirements explicit. * Software Engineering 7 th ed, Ian Sommerville

Requirements Completeness and Consistency In principle, requirements should be both complete and consistent. Complete – They should include descriptions of all facilities required. Consistent – There should be no conflicts or contradictions in the descriptions of the system facilities. In practice, it is impossible to produce a complete and consistent requirements document. * Software Engineering 7 th ed, Ian Sommerville

Requirements Imprecision Problems arise when requirements are not precisely stated. Ambiguous requirements may be interpreted in different ways by developers and users. Consider the term ‘appropriate viewers’ – User intention - special purpose viewer for each different document type; – Developer interpretation - Provide a text viewer that shows the contents of the document. * Software Engineering 7 th ed, Ian Sommerville

Guidelines for Writing Requirements Invent a standard format and use it for all requirements. Use language in a consistent way. Use shall for mandatory requirements, should for desirable requirements. Use text highlighting to identify key parts of the requirement. Avoid the use of computer jargon. * Software Engineering 7 th ed, Ian Sommerville

Problems with NL specification Ambiguity – The readers and writers of the requirement must interpret the same words in the same way. NL is naturally ambiguous so this is very difficult. Over-flexibility – The same thing may be said in a number of different ways in the specification. Lack of modularisation – NL structures are inadequate to structure system requirements. * Software Engineering 7 th ed, Ian Sommerville

Alternatives to NL specification * Software Engineering 7 th ed, Ian Sommerville

The Requirements Document The requirements document is the official statement of what is required of the system developers. Should include both a definition of user requirements and a specification of the system requirements. It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it * Software Engineering 7 th ed, Ian Sommerville

Users of a Requirements Document * Software Engineering 7 th ed, Ian Sommerville

IEEE Requirements Standard Defines a generic structure for a requirements document that must be instantiated for each specific system. – Introduction. – General description. – Specific requirements. – Appendices. – Index. * Software Engineering 7 th ed, Ian Sommerville

Requirements Document Structure Preface Introduction Glossary User requirements definition System architecture System requirements specification System models System evolution Appendices Index * Software Engineering 7 th ed, Ian Sommerville

Requirement Engineering Tasks Inception – software engineers use context-free questions to establish a basic understanding of the problem, the people who want a solution, the nature of the solution, and the effectiveness of the collaboration between customers and developers Elicitation – find out from customers what the product objectives are, what is to be done, how the product fits into business needs, and how the product is used on a day to day basis Elaboration – focuses on developing a refined technical model of software functions, features, and constraints using the information obtained during inception and elicitation * SEPA 6 th ed, Roger S. Pressman

Requirement Engineering Tasks (2) Negotiation – requirements are categorized and organized into subsets, relations among requirements identified, requirements reviewed for correctness, requirements prioritized based on customer needs Specification – written work products produced describing the function, performance, and development constraints for a computer-based system Requirements validation – formal technical reviews used to examine the specification work products to ensure requirement quality and that all work products conform to agreed upon standards for the process, project, and products

Initiating Requirements Engineering Process Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer, stakeholders, overall goals, and benefits of the system – Who is behind the request for work? – Who will use the solution? – What will be the economic benefit of a successful solution? – Is there another source for the solution needed? * SEPA 6 th ed, Roger S. Pressman

Initiating Requirements Engineering Process The next set of questions enable developer to better understand the problem and the customer's perceptions of the solution – How would you characterize good output form a successful solution? – What problem(s) will this solution address? – Can you describe the business environment in which the solution will be used? – Will special performance constraints affect the way the solution is approached? The final set of questions focuses on communication effectiveness Are you the best person to give "official" answers to these questions? Are my questions relevant to your problem? Am I asking too many questions? Can anyone else provide additional information? Should I be asking you anything else? * SEPA 6 th ed, Roger S. Pressman

Eliciting Requirements Collaborative requirements gathering – Meetings attended by both developers and customers – Rules for preparation and participation are established – Flexible agenda is used – Facilitator controls the meeting – Definition mechanism (e.g., stickers, flip sheets, electronic bulletin board) used to gauge group consensus – Goal is to identify the problem, propose solution elements, negotiate approaches, and specify preliminary set of solutions requirements * SEPA 6 th ed, Roger S. Pressman

Eliciting Requirements (2) Quality function deployment (QFD) – Identifies three types of requirements (normal, expected, exciting) – In customer meetings function deployment is used to determine value of each function that is required for the system – Information deployment identifies both data objects and events that the system must consume or produce (these are linked to functions) – Task deployment examines the system behavior in the context of its environment – Value analysis is conducted to determine relative priority of each requirement generated by the deployment activities User-scenarios – Also known as use-cases, describe how the system will be used – Developers and users create a set of usage threads for the system to be constructed * SEPA 6 th ed, Roger S. Pressman

Elicitation Work Products Statement of need and feasibility Bounded statement of scope for system or product List of stakeholders involved in requirements elicitation Description of system's technical environment List of requirements organized by function and applicable domain constraints Set of usage scenarios (use-cases) that provide use insight into operation of deployed system Prototypes developed to better understand requirements * SEPA 6 th ed, Roger S. Pressman

Requirements Elaboration Developing Use-Cases – Each use-case tells stylized story about how end-users interact with the system under a specific set of circumstances Analysis Model – Intent is to provide descriptions of required information, functional, and behavioral domains for computer-based systems – Analysis Model Elements Scenario-based elements (describe system from user perspective) Class-based elements (relationships among objects manipulated by actors and their attributes) Behavioral elements (depict system and class behavior as states and transitions between states) Flow-oriented elements (shows how information flows through the system and is transformed by the system functions) * SEPA 6 th ed, Roger S. Pressman

Negotiating Requirements Negotiation activities – Identification of system key stakeholders – Determination of stakeholders' "win conditions" – Negotiate to reconcile stakeholders' win conditions into "win-win" result for all stakeholders (including developers) Key points – It's not a competition – Map out a strategy – Listen actively – Focus on other party's interests – Don't let it get personal – Be creative – Be ready to commit * SEPA 6 th ed, Roger S. Pressman

Requirements Validation Concerned with demonstrating that the requirements define the system that the customer really wants. 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. * Software Engineering 7 th ed, Ian Sommerville

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? * Software Engineering 7 th ed, Ian Sommerville

Requirements Validation Techniques Requirements reviews – Systematic manual analysis of the requirements. Prototyping – Using an executable model of the system to check requirements. Test-case generation – Developing tests for requirements to check testability. * Software Engineering 7 th ed, Ian Sommerville

Requirement Review Is each requirement consistent with overall project or system objective? Are all requirements specified at the appropriate level off abstraction? Is each requirement essential to system objective or is it an add-on feature? Is each requirement bounded and unambiguous? Do you know the source for each requirement? Do requirements conflict with one another? Is the requirement achievable in the proposed technical environment for the system or product? Is each requirement testable? Does the requirements model reflect the information, function, and behavior of the system to be built? Has the requirements model been partitioned in a way that exposes more detailed system information progressively? Have all the requirements patterns been properly validated and are they consistent with customer requirements? * SEPA 6 th ed, Roger S. Pressman

Requirements Management help project team to identify, control, and track requirements and changes as project proceeds many of these activities are identical to the software configuration management (SCM) process * SEPA 6 th ed, Roger S. Pressman

Requirements Management Process: – requirements are identified, – tagged with a unique identifier and – classified by type (functional, data, behavioral, interface, or output) Tools: – Traceability tables developed and updated any time a requirement is modified – Database systems invaluable in helping software teams track requirement changes * SEPA 6 th ed, Roger S. Pressman

Requirements Change The priority of requirements from different viewpoints changes during the development process. System customers may specify requirements from a business perspective that conflict with end-user requirements. The business and technical environment of the system changes during its development. * Software Engineering 7 th ed, Ian Sommerville

Requirements Classification * Software Engineering 7 th ed, Ian Sommerville

CASE Tool Support Requirements storage – Requirements should be managed in a secure, managed data store. Change management – The process of change management is a workflow process whose stages can be defined and information flow between these stages partially automated. Traceability management – Automated retrieval of the links between requirements. * Software Engineering 7 th ed, Ian Sommerville

Requirements Change Management Should apply to all proposed changes to the requirements. Principal stages – Problem analysis. Discuss requirements problem and propose change; – Change analysis and costing. Assess effects of change on other requirements; – Change implementation. Modify requirements document and other documents to reflect change. * Software Engineering 7 th ed, Ian Sommerville