Requirements Specifications

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
CAP 252 Lecture Topic: Requirement Analysis Class Exercise: Use Cases.
Requirements Specification
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
The Architecture Design Process
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
SE 555 Software Requirements & Specification Requirements Management.
SE 555 Software Requirements & Specification Requirements Quality Attributes.
SE 555 Software Requirements & Specification Requirements Validation.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
SE 555 – Software Requirements & Specifications Introduction
1 Software Requirements Specification Lecture 14.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
The Vision Document 1. Importance of a Vision Document  It describes the application in general terms, including descriptions of the target market, the.
Slide 1 Requirements Workflow. Slide 2 The Phases/Workflows of the Unified Process Figure 3.1 l Phase is Business context of a step Workflow is Technical.
Enterprise Architecture
SOFTWARE REQUIREMENTS SPECIFICATION (SRS)
RUP Requirements RUP Artifacts and Deliverables
Typical Software Documents with an emphasis on writing proposals.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
Quality Models and Quality Attributes. Outline  Process and product quality Improving the quality of the process can improve the quality of the product.
An Introduction to Software Architecture
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Software Requirements Engineering CSE 305 Lecture-2.
Chapter Five–Part III Object Oriented Design More Design issues.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
IT Requirements Management Balancing Needs and Expectations.
Software Engineering Chapter 7 Fall Capturing the Requirements as Use Cases Capturing the Requirements as Use Cases By using use cases analysts.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
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?
SE: CHAPTER 7 Writing The Program
Lecture 7: Requirements Engineering
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1 Requirements Management with Use Cases.
UML-1 8. Capturing Requirements and Use Case Model.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Requirement Handling
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
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.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
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.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
RequisitePro Software Requirement Management Tool A peresentation by: Mojdeh Jalali-Heravi Maryam Daneshi.
Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software.
Software Requirements Specification (SRS)
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Software Requirements Specification Document (SRS)
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
An Agile Requirements Approach 1. Step 1: Get Organized  Meet with your team and agree on the basic software processes you will employ.  Decide how.
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Software Architecture Architecture represents different things from use cases –Use cases deal primarily with functional properties –Architecture deals.
 System Requirement Specification and System Planning.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
An Overview of Requirements Engineering Tools and Methodologies*
مقدمه اي بر مهندسي نيازمنديها
An Introduction to Software Architecture
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Presentation transcript:

Requirements Specifications

Types of Requirements and Requirements Traceability [RUP]

The “Flow” of Requirements

Business Requirements Projects are launched with the belief that the new product will make the world a better place in some way for someone Business Requirements Document Background: rationale and context for new product Business opportunity Market opportunity, internal savings, new capability for internal customers, etc. Business objectives and success criteria Measurable, quantitative benefits Financial and non-financial Customer or market needs Business/Project risks [Wiegers Ch. 5]

Business Context Stakeholder profiles Project priorities Identify who will be impacted by success or failure of product/project Identify and characterize their interest How will they be impacted? What role will they play in project? Project priorities Constraints: limiting factors Drivers: significant success objective with little flexibility for adjustment Degree of freedom: a factor that can be balanced against constraints and drivers Operating environment Use context and required availability, reliability, performance, usability, etc. [Wiegers Ch. 5]

Software Requirements Specification The Software Requirements Specification (SRS) captures and organizes the complete software requirements for the system A package containing all the use cases of the use-case model, plus Supplementary Specifications Basis of communication between all parties Between the developers themselves Between the developers and the external groups (users and other stakeholders) Formally or informally, it represents a contractual agreement between the various parties If it is not in the SRS Package, then the developers shouldn’t be working on it If it is in the SRS Package, then the developers are accountable to deliver that functionality [RUP]

Characteristics of a Well-Constructed SRS Correct Every requirement contributes to the satisfaction of needs Complete Contains all significant requirements, responses to all inputs and full labels and references Consistent No subset of individual requirements is in conflict Unambiguous Every requirement within it has only one interpretation Ranked for importance and stability Identifier indicates its importance and stability Verifiable (Testable) There exists some finite cost-effective process with which a person or machine can check that the software product meets the requirement Modifiable Changes can be made easily, completely, and consistently. Traceable Facilitates backward and forward referencing Briefly review this list; each one has more info on the later slides. How will we be able to tell if we have a “good” Software Requirement Specification? IEEE has listed the following “qualities” of an SRS. We will discuss each of these qualities on this list and how they apply to our SRS on the following slides. [RUP]

Software Requirements Specification Contents (as Use Cases) Use-case model A survey of the use-case model A collection of use case diagrams, use cases, actors, relationships, and Use-case package Organize and structure use-case models into packages and sub-packages Supplementary specifications Capture system requirements that are not readily captured in behavioral artifacts such as use-case specifications [RUP]

Survey of the Use-Case Model Write a Survey Description that includes Which are the primary use cases of the system (the reason the system is built) Typical sequences in which the use cases are employed by the users Relationships between use cases (generalizes, extends, includes relations) Package/Sub-package structure of the use cases System delimitations – things that the system is not supposed to do Important technical facts about the system The system's environment, for example, target platforms and existing software Specify functionality not handled by the use-case model [RUP]

Supplementary Specifications Supplementary Specifications capture the system requirements that are not readily captured in the use cases of the use-case model Legal and regulatory requirements Applicable industry or organization standards Quality attributes Design and implementation requirements (constraints) etc. These are requirements that apply to the system as a whole or to multiple use cases For requirements specific to a use case, place them in a “supplementary requirements” section of that use-case specification [RUP]

Other Requirements Artifacts

RUP Artifacts Overview

Glossary The glossary defines important terms used by the project Provides a consistent set of definitions to help avoid misunderstandings Write the requirements and user documentation using glossary terms [RUP]

Requirements Attributes Requirements attributes are information associated with a particular requirement providing a link between the requirement and other project elements, such as: Priorities Schedules Status Design elements Resources Costs Risks [RUP]

Example Requirements Attributes Tracking status Benefit Rationale Level of effort to implement Type and amount of each type of risk involved in implementing Schedule risk Resource risk Technical risk Stability of the requirement Target release Assignment Marketing input Development input Revision history Location Reasons for change Inconclusive requirements [RUP]

Requirement Writing Guidelines - 1 Write complete sentences, using proper grammar. Use the active voice. Use a format like: <system/user> “shall” < action verb> <observable result> e.g. “The system shall create a grade record.” State requirements in a consistent fashion. Use terms consistently (as defined in a glossary). Try to write all requirements at approximately the same level of detail and granularity. Avoid being wordy. Requirements statements should be just long enough to convey the clear, correct and complete meaning of a requirement.

Requirement Writing Guidelines - 2 Avoid use of conjunctions such: “and’ “or”, “but”, … Avoid vague terms like: “user-friendly”, “simple”, “efficient”, “state-of-the art”, “robust”, “improve”, “optimize”, … Avoid redundancy. A requirement should appear only once in the SRS. Uniquely label each requirement. Grouping requirements hierarchically can help make the functional requirements easier to understand. See section 3.1.3 in Wiegers example SRS.

A Requirement Example 4.2.1 (High) The ICS shall … 4.2.2 (High) The ICS shall provide for a class instructor (or a designated representative) to enter or change grades for students in the class, for a designated grading element. 4.2.2.1 The ICS shall display a list of grading elements for the class. 4.2.2.2 When the instructor selects a grading element, the ICS shall display a list of students, each with an field for entering or changing a grade. 4.2.2.3 After the instructor enters or changes grades and submits them, the ICS shall store the grades in the student records. 4.2.2.4 After submission of grades, the ICS shall display the grade records, for all students in the class.

Requirement Priorities Prioritizing requirements allows customer input into balancing schedule, cost and quality constraints and risks, It helps manage customer expectations. It allows developers to make “customer-oriented” decisions when development problems arise. Prioritizing should begin early and be complete at the time of agreement over the SRS. On a small project stakeholders can agree on priorities ion an informal basis. For complex systems more formal systems may be needed. (see Table 14-2 in the text for a Prioritization Matrix).

Informal Priority Metric

Requirements Status

Let Standards Guide You Standards collect the best practices and experience of the industry into consensus techniques and guidelines Some organizations or customers require standards compliance See IEEE Standard 1223-1998: IEEE Guide for Developing System Requirements Specifications IEEE Standard 830-1998: IEEE Recommended Practice for Software Requirements Specifications

Supplementary Requirements The following slides are for your reference—to remind you of possible non-functional requirements to capture in the Supplementary Requirements Specifications

Characterizing Requirements: FURPS+ One way to categorize requirements: FURPS+ Functionality Usability Reliability Performance Supportability “+” Design constraints Implementation requirements Interface requirements Physical requirements Quality requirements “-ilities” Non-functional Requirements [RUP]

Another Way to Characterize Requirements: CRUPIC STMPL Operational categories Capability Reliability Usability Performance Installability Compatibility Developmental categories Supportability Testability Maintainability Portability Localizability Customer and user requirements Mostly visible at run-time Developer and support requirements Mostly visible at build-time [RUP]

Usability Requirements Learn-ability Remember-ability Efficiency in use Reliability in use User satisfaction etc. [RUP]

Quality Attributes From Len Bass, Paul Clements, Rick Kazman, Software Architecture in Practice, Addison-WesleyLongman, 1998

“Every good quality is noxious if unmixed.” (Ralph Waldo Emerson) Functionality is the primary, but not the exclusive, quality of a system the mapping of a system’s functionality onto software structures determines the architecture’s support for qualities functionality and other qualities must be designed in from the start cannot go back and add in quality Functional vs. Nonfunctional Dichotomy

[Bass, Clements, Katzman, Software Architecture in Practice] Two Broad Categories Two broad categories Observable via execution (run-time behavior) Not observable via execution (build-time behavior) Qualities are attributes of what? The system The business The architecture Quality must be considered during all life-cycle phases Different qualities manifest themselves differently during the phases Architecture is critical to realization of many qualities Not all qualities are architectural Some qualities are architectural and non-architectural Qualities are rarely independent  trade-offs [Bass, Clements, Katzman, Software Architecture in Practice]

System Runtime Quality Attributes Performance responsiveness: throughput and latency primarily driven by inter-component interaction analyzed via stochastic queueing and workload models historically, the primary driving factor in architecture (but no longer alone) Security denying service to unauthorized usage assuring service to authorized usage in spite of unauthorized attempts at denying services architectural solutions special security components that coordinate the interaction of the other components [Bass, Clements, Katzman, Software Architecture in Practice]

System Runtime Quality Attributes (continued) Availability the proportion of time the system is up and running realibility (time between failures) and time to repair reliability: fault-tolerance, error detection and handling repair: fault isolation, ease of component replacement or modification Functionality ability to perform the task required non-architectural, but allocation of functionality to structure interacts with architectural qualities Usability learnability efficiency memorability architecture: information availability and organization; efficiency error avoidance error handling satisfaction [Bass, Clements, Katzman, Software Architecture in Practice]

System Build-Time Quality Attributes Modifiability (maintainability) extend or change capabilities delete unwanted capabilities adapt to new operating environments restructure architectural issue: scope of change local component, a few components, or change in underlying architectural style Portability ability to run under different computing hardware/software environments approach: isolate platform-specific concerns in a portability layer [Bass, Clements, Katzman, Software Architecture in Practice]

System Build-Time Quality Attributes (continued) Reusability (integrate-ability, modifiability) system structures and/or components can be used in other systems architecture: relatively small, loosely coupled components Integrability ( integrate-ability) ability to make components work together architecture external component complexity interaction mechanisms and protocols clean separation of concerns completeness of specification interoperability: integrability of components in one system with those in another system Testability (controllability, observability) separation of concerns, information hiding, ‘uses’ structure for incremental development [Bass, Clements, Katzman, Software Architecture in Practice]

[Bass, Clements, Katzman, Software Architecture in Practice] Business Qualities Time to market incorporation of existing components Cost reuse, technical maturity of organization System lifetime invest in modifiability and portability Targeted market functionality, portability, performance, reliability, usability, product line architecture Rollout schedule modifiability (flexibility, customizability, extensibility) Use of legacy systems integrability [Bass, Clements, Katzman, Software Architecture in Practice]