Requirements. CxOne Standard

Similar documents
Unit 1 Introduction to Software Engineering

Ch 4: Requirements Engineering. What are requirements?

Requirement Analysis

Requirements Validation and Negotiation

Recommended Practice for Software Requirements Specifications (IEEE)

Source Code and Construction. CxOne Standard

SE351a: Software Project & Process Management. 11 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements

CMSC 447: Software Engineering I

Requirements Specifications & Standards

Requirements Validation and Negotiation

Requirements and Design Overview

Taxonomy Governance Checklist

An Integrated Approach to Documenting Requirements with the Rational Tool Suite

REQUIREMENTS ENGINEERING LECTURE 2017/2018. Dr. Jörg Dörr. Conceptual Modelling. Fraunhofer IESE

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

SE351a: Software Project & Process Management. 13 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

Product. e ss. P roc. so get the right requirements. Garbage in garbage out,

Object-Oriented Analysis and Design Using UML (OO-226)

Certified Software Quality Engineer Preparation On Demand, Web-Based Course Offered by The Westfall Team

BPS Suite and the OCEG Capability Model. Mapping the OCEG Capability Model to the BPS Suite s product capability.

Report. Conceptual Framework for the DIAMONDS Project. SINTEF ICT Networked Systems and Services SINTEF A Unrestricted

Requirements Engineering: Specification & Validation. Software Requirements and Design CITS 4401 Lecture 18

Designing a System Engineering Environment in a structured way

Metadata Framework for Resource Discovery

4.2.2 Usability. 4 Medical software from the idea to the finished product. Figure 4.3 Verification/validation of the usability, SW = software

Lecture 6: Requirements Engineering

Lecture 8 Requirements Engineering

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

10 Steps to Building an Architecture for Space Surveillance Projects. Eric A. Barnhart, M.S.

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/17/2015

SE 2730 Final Review

Extreme programming XP 6

Lecture 9 Requirements Engineering II

Requirements Elicitation

CIS 890: Safety Critical Systems

VO Software Engineering

Requirements engineering

h(p://ihm.tumblr.com/post/ /word- cloud- for- hci- human- computer- interacbon CS5340 Human-Computer Interaction ! January 31, 2013!

CSC Advanced Object Oriented Programming, Spring Overview

Process of Interaction Design and Design Languages

Automatic Merging of Specification Documents in a Parallel Development Environment

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

REQUIREMENTS. Michael Weintraub Spring, 2016

Programming Practices By Joe Feliu in conjunction with Harris Kern s Enterprise Computing Institute

Better (Small) Software Teams. Michael A. Heroux

SM 3511 Interface Design. Institutionalizing interface design

EXAM PREPARATION GUIDE

Relationships and Traceability in PTC Integrity Lifecycle Manager

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

RE Process. Lawrence Chung Department of Computer Science The University of Texas at Dallas

Rational Software White Paper

(c) Addison Wesley Chapter 3. ! Interviewing customers and domain experts. ! Questionnaires. ! Observation. ! Study of documents and software systems

OG The Open Group OG TOGAF 9 Combined Part 1 and Part 2

Variability Implementation Techniques for Platforms and Services (Interim)

Concepts of Usability. Usability Testing. Usability concept ISO/IS What is context? What is context? What is usability? How to measure it?

Human Error Taxonomy

Integration With the Business Modeler

Requirements. Requirements. Types of Requirement. What Is a Requirement?

EXAM PREPARATION GUIDE

Requirements Engineering

SEG3201 Basics of the Requirements Process

An international Consensus on the Software Engineering Body of Knowledge

EXAM PREPARATION GUIDE

Sofware Requirements Engineeing

COLUMN. Choosing the right CMS authoring tools. Three key criteria will determine the most suitable authoring environment NOVEMBER 2003

EXAM PREPARATION GUIDE

2/18/2009. Introducing Interactive Systems Design and Evaluation: Usability and Users First. Outlines. What is an interactive system

Business Analysis in Practice

EXAM PREPARATION GUIDE

Defining OAIS requirements by Deconstructing the OAIS Reference Model Date last revised: August 28, 2005

Lesson 06. Requirement Engineering Processes

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

Quality Assurance and IT Risk Management

Scenario-Based Analysis. Scenario-Based Analysis (example) Form analysis

CSCU9T4: Managing Information

Requirements Engineering Process

Chapter 4 Requirements Elicitation

Hippo Software BPMN and UML Training

User Centered Design (UCD)

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

1: Specifying Requirements with Use Case Diagrams

What is a prototype?

350 Index 2005 GOAL/QPC

Diagram Oriented Requirement Specification and the DorsGen Tool

Module 7 TOGAF Content Metamodel

"Charting the Course... Certified Information Systems Auditor (CISA) Course Summary

Introduction to UML. (Unified Modeling Language)

JOURNAL OF OBJECT TECHNOLOGY

Architecture of models in testing how models of various abstraction levels relate to each other

Verification of Requirements For Safety-Critical Software

How to prioritise your transformation to-do list

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 9 Database Design

Overview of the course. User-Centred Design. Group. Practical issue. Writting the report. Project work. Fang Chen

What is a prototype?

Threat and Vulnerability Assessment Tool

WELCOME TO ITIL FOUNDATIONS PREP CLASS AUBREY KAIGLER

Information System Architecture. Indra Tobing

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

Transcription:

Requirements CxOne Standard CxStand_Requirements.doc November 3, 2002 Advancing the Art and Science of Commercial Software Engineering

Contents 1 INTRODUCTION... 1 1.1 OVERVIEW... 1 1.2 GOALS... 1 1.3 BACKGROUND... 1 1.3.1 Types of Requirements... 1 1.4 RELATIONSHIP TO OTHER CKAS... 2 1.4.1 Requirements vs. Design... 2 1.4.2 QA of Requirements... 2 1.4.3 Testing of Requirements... 2 1.4.4 CM of Requirements... 3 1.5 RELATIONSHIP TO EXTERNAL STANDARDS... 3 1.5.1 SWEBOK...3 1.5.2 IEEE Standards... 3 1.5.3 UML... 3 2 ORGANIZATION... 4 2.1 REQUIREMENTS ELICITATION... 4 2.2 REQUIREMENTS ANALYSIS... 4 2.3 REQUIREMENTS SPECIFICATION... 4 3 APPENDIX... 5 3.1 ALTERNATIVE ORGANIZATIONS... 5 3.1.1 SWEBOK...5 3.1.2 Robertson and Robertson... 5 3.1.3 Weigers... 5 3.1.4 Software Engineering Institute... 6 Copyright Notice 2000-2002 Construx Software Builders, Inc. All Rights Reserved. For further information or support visit www.construx.com. CxOne 2.1 - CxStand_Requirements.doc (11/05/02) 2000-2002 Construx Software Builders, Inc. www.construx.com Page i

1 Introduction This standard defines key organizational structure and terminology relating to software requirements engineering. There is considerable industry literature available that organizes requirements knowledge and deliverables, but there are no universally accepted taxonomies. This document defines a standard CxOne taxonomy that will provide a common playing field to discuss, organize, and use requirements concepts. 1.1 Overview CxOne defines this knowledge area as the elicitation, analysis, and specification of requirements. Requirements development consist of identifying sources of requirements (elicitation); ensuring the requirements correctly and completely describe the desired work end product (analysis); and documenting the requirements (specification). The requirement phase can, and often needs to be, a highly iterative process. This taxonomy does not imply a workflow, rather provides a toolbox from which approach materials can be drawn. 1.2 Goals CxOne support for software requirements development focuses on the following goals: Defining a common terminology. Distillation of common principles into readily available checklist items. Provide a resource for information about existing best practices, methodologies, and techniques. Increase productivity by addressing issues in a uniform fashion, reducing common errors, duplication of effort, and multiple solutions for the same problem. 1.3 Background CxOne requirements materials are synthesized from many sources including the SWEBOK, IEEE software standards, Steve McConnell s works, other industry sources and literature, and Construx s experience with software projects, consulting, and training. 1.3.1 Types of Requirements CxOne breaks requirements down into three types. There are many techniques used to gather and capture requirements. Although some techniques work particularly well for different types, the type of requirement does not constrain the technique used to capture or gather it. Rather the type is a way to organize the intent of the requirement. CxOne 2.1 - CxStand_Requirements.doc (11/05/02) Page 1

Business Requirements Business requirements can be considered why requirements. These requirements capture the high level objectives of the organization or customer requesting the system or product. They can be considered the why are we doing this requirements and should capture the fundamental reason for the projects existence. Functional Requirements Functional requirements can be considered what requirements. These requirements capture the functionality that must be built into the system to satisfy the business requirements. Non-Functional Requirements Non-functional requirements can be considered how or how well requirements. These requirements capture the technology specific and -ility requirements of the system. The -ilities include items like compatibility, usability, performance, reliability, etc. 1.4 Relationship to other CKAs While each CKA interacts to some level with all other CKAs, Requirements interacts to the highest degree with Design, QA, Testing, Engineering Management, and CM. 1.4.1 Requirements vs. Design It can often be difficult to determine when requirements gathering stops and system design begins. As all projects are unique the final decisions on this must be left to the project team, however some general guidelines are: Requirements focus on determining what the solution is. Design focuses on determining how the solution will be accomplished. Some requirements will be of the how type. Either for a binding authority or an overriding business need, a particular solution will be required. For example, a contract may state that the code be in C++. The contract here represents a binding authority. For a more discussion of the spectrum of requirements, design, and construction see CxStand_Design. 1.4.2 QA of Requirements The identification and resolution of mistakes, omissions, and inaccuracies of the requirements is far more cost and time efficient at this stage than later in the project lifecycle. Peer reviews can be used to review textual and model based specifications. Prototypes, especially of the UI, are effective in clarifying requirements. 1.4.3 Testing of Requirements The creation of test cases for the requirements is an excellent way to assure the correctness of requirements. These test cases should be created prior to the acceptance of the requirements and the creation of designs based on the requirements. CxOne 2.1 - CxStand_Requirements.doc (11/05/02) Page 2

1.4.4 Engineering Management and Requirements As the definition of the software, requirements are critical components into the scope of a project as well as the estimation practices. Prior to a reasonably complete understanding of the requirements are understood, any estimates will have a high amount of uncertainty. Negotiation of requirements to be in or out is a way to achieve parity between the desired targets of a project and the project estimates. 1.4.5 CM of Requirements Requirements are the definition of the software and as such should be placed under explicit change control as described in the Configuration Management CKA. 1.5 Relationship to External Standards A detailed discussion of how CxOne requirements organization relates to other common standards is provided in the Appendix. 1.5.1 SWEBOK The CxOne requirements area has made the following adaptations of the SWEBOK organization: 1. Requirements Engineering Process is dealt with in the Process CKA. 2. Requirements Validation is dealt with in the most relevant CKA. E.g. Reviews are in the Quality CKA, Acceptance Tests are dealt with in the Testing CKA, etc. 3. Portions of Requirements Management are dealt with in the Configuration Management CKA and the remainder have been rolled into the Requirements Specification section. These changes were made to support a more pragmatic, usable taxonomy for materials. 1.5.2 IEEE Standards CxOne materials explicitly and implicitly supports IEEE 1002-1987, but the requirements CKA extends the scope and level of support provided by the IEEE standards. 1.5.3 UML The Unified Modeling Language (UML) has a heavy influence on CxOne requirements modeling materials. UML is becoming the de facto industry standard for requirements modeling as well (it is already the industry standard for object oriented design). CxOne does not treat the UML as a monolithic whole; notation and concepts are separated from processes and techniques. CxOne 2.1 - CxStand_Requirements.doc (11/05/02) Page 3

2 Organization The organization of CxOne Requirements CKA materials is described below. 2.1 Requirements Elicitation Elicitation identifies source of requirements and then specific requirements through a wide variety of techniques such as interviews, prototypes, facilitated meetings, etc. 2.2 Requirements Analysis Analysis examines the requirements gathered from elicitation to ensure they correctly and complete describe the application domain. Analysis can include determining items like: Requirement type (business, functional, non-functional) Absolute and relative priority Requirement scope (application wide, component specific, etc.) Likelihood of change during the project Analysis includes negotiation when requirements conflict one another, the available project resources, project constraints, etc. 2.3 Requirements Specification Specification records the requirements through a natural language documents (SRS), models (UML class diagrams, etc), requirements database, or a combination of techniques. Specification provides support for or enables: Traceability to downstream artifacts such as test cases, design documents, code, etc. Requirements attributes such as priority, target release, status, etc. CxOne 2.1 - CxStand_Requirements.doc (11/05/02) Page 4

3 Appendix 3.1 Alternative Organizations This section lists some alternative ways that requirements are broken down. 3.1.1 SWEBOK Term Product Parameters Constraints or Quality Attributes Definition/Description Requirements of the system being developed. Further broken down as: Functional Requirements of the system. (aka capabilities) Non-Functional Requirements. These act to constrain the solution. A constraint on the development of the system 3.1.2 Robertson and Robertson Term Functional Non-Functional Constraints Definition/Description What the product must do: actions to take, information to remember, business rules and policies to enforce Properties that the product must have: look and feel, usability, performance, operational environment, maintainability and portability, security, cultural and political, legal. Usually attached to individual functions Global factors that apply to the entire product rather than specific functions: purpose of product, stakeholders and users, etc. 3.1.3 Weigers Business User Functional Term Definition/Description High level objectives of the organization or customer requesting the system or product. Describe the tasks the users must be able to accomplish with the product: what do they want to be able to do. Define the software functionality the developers must build into the product to enable users to accomplish their tasks, thereby satisfying the business requirements CxOne 2.1 - CxStand_Requirements.doc (11/05/02) Page 5

3.1.4 Software Engineering Institute Term Functional Non-Functional Inverse Design Constraints Definition/Description Specifies a function that a system or system component (i.e., software) must be capable of performing. Includes items such as performance, reliability, interfaces, and design constraints. Generally considered the how well requirements. They state characteristics of the system to be achieved that are not related to functionality. Describe the constraints on allowable behavior. In many cases, it is easier to state that certain behavior must never occur than to state requirements guaranteeing acceptable behavior in all circumstances. Software safety and security requirements are frequently stated in this manner. Boundary conditions on how the required software is to be constructed and implemented. CxOne 2.1 - CxStand_Requirements.doc (11/05/02) Page 6