CSE-862 Requirement Engineering

Slides:



Advertisements
Similar presentations
Chapter 05: Evolutionary Requirements Definition : Requirements  “Requirements are capabilities and conditions to which the system, and more broadly.
Advertisements

IS 466 ADVANCED TOPICS IN INFORMATION SYSTEMS LECTURER : NOUF ALMUJALLY 12 – 11 – 2011 College Of Computer Science and Information, Information Systems.
Chapter 7 Other Requirements Good Fast Cheap Pick any two. 1CS John Cole.
Introduction to Software Engineering Dr. Basem Alkazemi
Introduction to Software Engineering
Requirements Specification
8/28/2005ECEN5543 Req Elicitation1 Targets of Requirements Engineering ECEN 5543 SW Engineering of Standalone Programs University of Colorado, Boulder.
Software Requirements
SE 555 Software Requirements & Specification Requirements Validation.
SE 555 – Software Requirements & Specifications Introduction
1 Software Requirements Specification Lecture 14.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Software Requirement Specification(SRS)
Requirements Engineering
1 Requirements Analysis and Design Engineering Southern Methodist University CSE 7313.
S/W Project Management
Introduction to Software Quality Assurance (SQA)
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
1 Phases in Software Development Lecture Software Development Lifecycle Let us review the main steps –Problem Definition –Feasibility Study –Analysis.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. 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.
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
Software Requirements Presented By Dr. Shazzad Hosain.
IT Requirements Management Balancing Needs and Expectations.
Lecture 7: Requirements Engineering
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Chapter 4 Software Requirements
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
1 Quality Attributes of Requirements Documents Lecture # 25.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Week 3: Requirement Analysis & specification
Software Requirements Specification Document (SRS)
CSC480 Software Engineering Lecture 7 September 16, 2002.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
Classifications of Software Requirements
CMPE 280 Web UI Design and Development August 29 Class Meeting
Evolutionary requirements
Chapter 4 – Requirements Engineering
(Professional Business Analyst Training organisation)
Presentation on Software Requirements Submitted by
Chapter 4 Requirements Engineering (1/3)
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
Requirements Engineering (continued)
CSC480 Software Engineering
System Requirements Specification
Software Requirements analysis & specifications
UNIT II.
Requirements Reference: Software Engineering, by Ian Sommerville, 6th edition, Chapters 5, 6, & 8.
Software Requirements
Requirements Analysis
Software Requirements Specification Document
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
An Introduction to Software Architecture
Software Requirements Specification (SRS) Template.
Software Requirements
Lecture # 7 System Requirements
Requirements Document
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Software Reviews.
Presentation transcript:

CSE-862 Requirement Engineering Classification of Requirements & Documentation Standards

Review of the previous lecture Agenda Review of the previous lecture Requirements Classification Requirements Organization and Documentation Quality of RE documents

Review of the previous lecture: What are Requirements?

Steps of Requirements Development Capture the requirements Analyze, distill and record the requirements Model requirements Validate the resulting Requirements Specification With the project team for completeness and understanding With the client for accuracy and validity Output: Software Requirements Specification Document

Requirements Classification Agenda Review of the previous lecture Requirements Classification Requirements Organization and Documentation Quality of RE documents

Requirements Types

Functional vs. Non-Functional Requirements describe what the system should do Non-Functional Requirements: global constraints on a software system functionality

Functional Requirements Describe the functionality or services that the system is expected to provide Address the input-output behavior of a system

Example of Functional Requirement {FR1} Software shall automatically detect the presence of other computers running the application that are connected to the network.

Non-Functional Requirements NFRs Non-functional requirement = system quality attribute – For the user: performance, usability, reliability – For the developer: portability, interoperability, maintainability – For the owner: cost, benefit • Challenge: Subjective Relative

Write Quantifiable NFRs: Quantifiable = Testable NFRs should be stated in measurable terms. Compare: An operator shall not have to wait for the transaction to complete… change to measureable An operator shall not have to wait more than 1s for a transaction to complete for at least 95% of the transactions. Interesting phenomenon: What gets measured gets done.

Examples of NFRs

Design Constraints

Design Constraints Design constraints typically originate from one of three sources: Restriction of design options – “Use Oracle DBMS” Conditions imposed on the development process – “Should be compatible with legacy inventory system” or “"The application must run on both our new and old platforms" Regulations and imposed standards - For example, the development of a medical product in the United States is subject to a significant number of Food and Drug Administration standards and regulations or “ISO”

FURPS+ Classification for requirements other than FR Functional System-wide functionality which is architecturally significant Non-Functional (NFRs): These requirements can be grouped in 4 categories Usability Human factors, help, documentation, etc. Reliability Frequency of failure, recoverability, availability.. Performance Response time, throughput, capacity… Supportability: Supportability is the ability of the software to be easily modified to accommodate enhancements and repairs Maintainability, adaptability, configurability, etc.

FURPS+ Classification Cont. + indicates additional constraints such as: Design Constraints i.e. requiring a relational database Interface constraints i.e. protocols for interaction with external systems Implementation Constraints Required standards, platform, implementation language Physical constraints Shape, size, weight.

FURPS+ Classification Examples "The product will be localized (support multiple human languages)“. FURPS+ Type? “F” architecturally significant functional requirement. "The persistence will be handled by a relational database" FURPS+ Type? “+” design constraint. "The database will be Oracle 8i" FURPS+ Type? “+” implementation constraint. "The system will run seven days a week, twenty-four hours per day" FURPS+ Type? “R” reliability requirement. "An online help system is required" FURPS+ Type?

Requirements Organization and Documentation. Agenda Requirements Classification Requirements Organization and Documentation. IEEE Std.830 UP Quality of RE documents

Requirements Specification Standards IEEE 830-1998 IEEE recommended practice for software requirements specifications Volere Requirements Specification Template, Edition 13—August 2007 by James & Suzanne Robertson

Requirements Specification Standard (Will be practiced in Project) Which one to practice? IEEE 830-1998 IEEE recommended practice for software requirements specifications OR Volere ? Your choice! Focus on using an

IEEE Std 830-1998 1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, acronyms, and abbreviations 1.4 References 1.5 Overview 2. Overall description 2.1 Product perspective 2.2 Product functions 2.3 User characteristics 2.4 Constraints 2.5 Assumptions and dependencies 3. Specific requirements

IEEE Std 830-1998 (Template A5) Section 3.1 External interfaces Section 3.2 Functional requirements (system features) Section 3.3 Performance requirements Section 3.4 Logical database requirements Section 3.5 Design constraints Section 3.6 Software system attributes Section 3.7 Other requirements

Volere Requirements Specification Template, Edition 13—August 2007 Project Drivers 1. The Purpose of the Project 2. The Client, the Customer, and Other Stakeholders 3. Users of the Product Project Constraints 4. Mandated Constraints 5. Naming Conventions and Definitions 6. Relevant Facts and Assumptions Functional Requirements 7. The Scope of the Work 8. The Scope of the Product 9. Functional and Data Requirements

Volere Requirements Specification Template, Edition 13—August 2007 Nonfunctional Requirements 10. Look and Feel Requirements 11. Usability and Humanity Requirements 12. Performance Requirements 13. Operational and Environmental Requirements 14. Maintainability and Support Requirements 15. Security Requirements 16. Cultural and Political Requirements 17. Legal Requirements Project Issues 18. Open Issues 19. Off-the-Shelf Solutions 20. New Problems 21. Tasks 22. Migration to the New Product 23. Risks 24. Costs 25. User Documentation and Training 26. Waiting Room

Use-Case Requirements Artifacts Vision An executive summary of the project Use-Case Model A set of typical scenarios of using the system (functional requirements) Supplementary Specification Captures and identifies other kinds of requirements such as non-functional requirements & design constraints. Glossary Captures terms and definitions; also play the role of a data dictionary Business Rules Long-living rules or policies (e.g., tax laws) for this particular application

UP Main Artifacts Glossary

Vision Document

Delta Vision Document

Supplementary Specification: content Functional requirements not expressed in use cases reports Non-functional requirements Quality attributes of the system Legal, regulatory and documentation requirements Design constraints Interfaces Business Rules

Organizing Requirements for Nested Systems Develop a product-family Vision document showing how the products are intended to work together use cases showing how the users will interact with various applications running together. common software requirements specification that defines the specific requirements for shared functionality (menu structures and communication protocols). For each product in the family, develop a Vision document, software requirements specification, and a use-case model

Requirements Organization for Nested Systems

Supplementary Specification: Non-Functional Requirements for Quality Usability the ease with which the system can be learned and operated by the intended users. (required training time, task times for typical tasks, conformance to usability standards) Example: The customer will be able to see a large-monitor Therefore: Text should be easily visible from 1 meter. Avoid colors associated with common forms of color blindness.

Supplementary Specification: Requirements for Quality Reliability Availability (% of time the system is expected to be available) Allowed MTBF, MTTR Definition for defects’ criticality level Maximum defect rate allowed per KOLC Example (Recoverability) If there is failure to use external services (payment authorizer, accounting system, ...) try to solve with a local solution (e.g., store and forward) in order to still complete a sale.

Supplementary Specification: Requirements for Quality Performance Average, maximum response time for a transaction number of customers/transactions the system can accommodate Example: Buyers want to complete sales processing very quickly. One bottleneck is external payment authorization. Our goal: authorization in less than 1 minute, 90% of the time.

Supplementary Specification: Requirements for Quality Supportability Coding standards naming conventions Class libraries … Example: Adaptability Different customers of the NextGen POS have unique business rule and processing needs while processing a sale. Therefore, at several defined points in the scenario (for example, when a new sale is initiated, when a new line item is added) pluggable business rule will be enabled.

Supplementary Specification: Constraints Example: NextGen leadership insists on a Java technologies solution, predicting this will improve long-term porting and supportability, in addition to ease of development.

Supplementary Specification: Interfaces Noteworthy Hardware and Interfaces Touch screen monitor (this is perceived by operating systems as a regular monitor, and the touch gestures as mouse events) Barcode laser scanner (these normally attach to a special keyboard, and the scanned input is perceived in software as keystrokes) Software Interfaces For most external collaborating systems (tax calculator, accounting, inventory, ... ) we need to be able to plug in varying systems and thus varying interfaces.

Supplementary Specification: Business Rules

More on Requirements for Quality: Exercise Which of the following quality attributes: efficiency, reliability, usability, maintainability would be important for the system computing income taxes, that will be used by government employees who audit taxpayers?

Requirements for Quality: Exercise Which attributes of quality efficiency, reliability, usability, maintainability would be important for the system computing income taxes, that will be used by government employees who audit taxpayers? Answer: Income tax software is an application domain in which maintainability will be a big concern since tax regulations tend to change frequently. Usability will also be important so the auditors can do their job efficiently. Reliability will be of moderate importance (accuracy of results, however , will be very important) . Efficiency will be of minimal importance .

Quality of RE documents Agenda Review of the previous lecture Requirements Classification Requirements Organization and Documentation Quality of RE documents

Desirable Properties of Requirements & Specifications: IEEE Std

Validating Requirements Artifacts Completeness: All possible behavior through the system are described, including exceptional behavior by the user or the system Correctness: The requirements represent the client’s needs Consistency: There are no functional or nonfunctional requirements that contradict each other Unambiguity: Exactly one system is specified, it is not possible to interpret the requirements in two or more ways. feasability: Requirements can be implemented and delivered Traceability: the ability to find corresponding or related information in other documents or software

Quality of Requirements: Correctness Each requirement must accurately describe the functionality to be delivered. The reference for correctness is the source of the requirement, such as an actual customer or a higher level system requirements specification. Only user representatives can determine the correctness of user requirements.

Quality of Requirements: Unambiguity Unambiguous. The reader of a requirement statement should be able to draw only one interpretation of it. Natural language is highly prone to ambiguity Effective ways to reveal ambiguity include: formal inspections of the requirements specifications, writing test cases from requirements creating user scenarios that illustrate the expected behavior of a specific portion of the product.

Quality Requirements Specifications: Completeness Completeness: All possible behavior through the system are described, including exceptional behavior by the user or the system Graphical analysis models that represent different views of the requirements can also reveal incompleteness. If you know you are lacking certain information, use “TBD” (“to be determined”) as a standard flag to highlight these gaps.

Quality Requirements Specifications: Consistency Consistent requirements do not conflict with other software requirements or with higher level (system or business) requirements. Inconsistencies can slip in undetected if you review only the specific change and not any related requirements.

Quality of Requirements: Verifiable See whether you can devise tests or use other verification approaches, such as inspection or formal specification, to determine whether each requirement is properly implemented in the product. Requirements that are not consistent, feasible, or unambiguous also are not verifiable.

Quality Requirements Specifications: Modifiability Each requirement be uniquely labeled and expressed separately from other requirements so you can refer to it unambiguously. Organizing requirements so that related requirements are grouped together Create a table of contents, index, and cross-reference listing; traceability matrices

Quality Requirements Specifications: Traceability Traceability is the ability to link each software requirement to its source, which could be a higher-level system requirement, a use case, or a voice-of-the-customer statement. Traceable requirements are uniquely labeled and are written in a structured, fine-grained way, as opposed to large, narrative paragraphs or bullet lists.

Example of a Traceability Matrix   UC 1 UC 2 Suppl. Req. 1 … Feature 1 X Feature 2 Feature 3 Feature n

Important! Feasibility It must be possible to implement each requirement within the known capabilities and limitations of the system and its environment. To avoid infeasible requirements, have a developer work with the requirements analysts or marketing personnel throughout the elicitation process.

Key Points: Role of Requirements Engineer

Exercise 1 “The product shall provide status messages at regular intervals not less than every 60 seconds.” Quality Analysis?

Desirable Properties of Requirements & Specifications: IEEE Std

Exercise 1: Improved

Exercise 2 “The product shall switch between displaying and hiding non-printing characters instantaneously.” Analysis?

Exercise 2: Improved “The user shall be able to toggle between displaying and hiding all HTML markup tags in the document being edited with the activation of a specific triggering condition.”

Exercise 3 “Charge numbers should be validated on-line against the master corporate charge number list, if possible.” Analysis?

Exercise 3: Improved “The system shall validate the charge number entered against the online master corporate charge number list. If the charge number is not found on the list, an error message shall be displayed and the order shall not be accepted.”

Key Points Goals of managing and documenting requirements in SE: To fix requirements errors in RE phase To ensure that the RE documents describe THE product the, customer really wants To ensure the RE documents are correctly understood by the customer and the developers

Root Causes of Requirements management challenges Lack of User Input Incomplete requirements & specifications Changing requirements and specifications

RE IQ Question Why developers often fail to write & manage requirements? “Even if we’re not really sure of the details of what we want, it’s better to get started with implementation now because we’re behind the schedule and in a hurry. We can pin down the requirements later”. Does it sound familiar? …

RE is a Team Work RE work requires well-structured and well-trained software teams Requires Team Skills to understand user needs to manage the scope of the application To build systems that meet those needs

Next? Analyzing the Problem (Team Skill 1)