UML and Patterns.book Page 52 Thursday, September 16, :48 PM

Similar documents
IBM Software Group. Mastering Requirements Management with Use Cases Module 2: Introduction to RMUC

Software Maintenance Cycles with the RUP

CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DESIGN

Object-oriented Analysis and Design

IECI Chapter Japan Series Vol. 5 No. 2, 2003 ISSN

Requirements Analysis aka Requirements Engineering. Requirements Elicitation Process

Roadmapping. Market Products Technology. People Process. time, ca 5 years

Information Systemss and Software Engineering. Computer Science & Information Technology (CS)

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

Grundlagen des Software Engineering Fundamentals of Software Engineering

Lecture 9: Estimation and Prioritization" Project Planning"

SOFT 423: Software Requirements

Agile Non-Agile. Previously on Software Engineering

Driving Efficiencies into the Software Life Cycle for Army Systems

Unit 5: Unified Software Development Process. 3C05: Unified Software Development Process USDP. USDP for your project. Iteration Workflows.

My 36 Years in System Safety: Looking Backward, Looking Forward

CSE - Annual Research Review. From Informal WinWin Agreements to Formalized Requirements

Software Life Cycle Models

Domain Understanding and Requirements Elicitation

Refinement and Evolution Issues in Bridging Requirements and Architectures

UNIT-III LIFE-CYCLE PHASES

Lean Enablers for Managing Engineering Programs

No Silver Bullet. CSCI 5828: Foundations of Software Engineering Lecture 02 08/27/2015

EXPLORATION 1.5. Magic Squares. PART 1: Describing magic squares and finding patterns

000 TECHNOLOGY NAME. Quicklook Report. Inventor Name, Inventor Institution or Company. Technology Commercialization Program

Chapter 8: Verification & Validation

User requirements. Unit 4

HOW TO SYSTEMISE YOUR BUSINESS

Usability Engineering (history) SFU CMPT week 2. (Some) Key questions. Usability engineering (objectives) Human-centered design.

10. Personas. Plan for ISSD Lecture #10. 1 October Bob Glushko. Roadmap to the lectures. Stakeholders, users, and personas

A SYSTEMIC APPROACH TO KNOWLEDGE SOCIETY FORESIGHT. THE ROMANIAN CASE

OSRA Overarching Strategic Research Agenda and CapTech SRAs Harmonisation. Connecting R&T and Capability Development

Current Challenges for Measuring Innovation, their Implications for Evidence-based Innovation Policy and the Opportunities of Big Data

Sales Seduction Arsenal s 59 Point Copywriting Checklist For Copywriters Who Gets Results

Evaluating Evolutionary Prototyping for Customizable Generic Products in Industry (TAT AB)

Introduction to Systems Engineering

TRIL Technology Research for Independent Living. Seamus Small TRIL Centre Manager 11 th May 2011

HORIZONS FORESIGHT METHOD. How to use this manual. Module

INTERNATIONAL CONFERENCE ON ENGINEERING DESIGN ICED 03 STOCKHOLM, AUGUST 19-21, 2003

Towards a Software Engineering Research Framework: Extending Design Science Research

SOFT 423: Software Requirements

Requirements Gathering using Object- Oriented Models

Software Engineering: A Practitioner s Approach, 7/e. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman

CREATE A COACHING NICHE VIDEO TRANSCRIPTION

Moonzoo Kim. KAIST CS350 Intro. to SE Spring

SWEN 256 Software Process & Project Management

A Mashup of Techniques to Create Reference Architectures

The Happiness Project Experience Checklist

Revisiting the USPTO Concordance Between the U.S. Patent Classification and the Standard Industrial Classification Systems

Component Based Mechatronics Modelling Methodology

Requirements Engineering I

Quality by Design. Innovate Design Development Create value. Correct definition of QbD and its relation to product and process development

The Secret to Planning. an Extraordinary Life. Special Report prepared by ThoughtElevators.com

Outside Reading Assignment: English II

Introduction to adoption of lean canvas in software test architecture design

Code Complete 2: Realities of Modern Software Construction

Requirements Engineering I

At the Heart of Amazing Experiences

Future Trends of Software Technology and Applications: Software Architecture

Design Science Research Methods. Prof. Dr. Roel Wieringa University of Twente, The Netherlands

5 False Beliefs That Hurt Client Retention for Hair Salons

Object-Oriented Design

THE MONOPOLY GAME SYSTEM

Avoiding the Problems

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

Using Variability Modeling Principles to Capture Architectural Knowledge

An introduction to software development. Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University

GUIDE TO SPEAKING POINTS:

design research as critical practice.

ISO ISO is the standard for procedures and methods on User Centered Design of interactive systems.

A Conceptual Model of Software Development

Software-Intensive Systems Producibility

Contextual Design Observations

F. Tip and M. Weintraub REQUIREMENTS

ACE3 Working Group Session, March 2, 2005

Professional guide for any online marketing business

Indiana K-12 Computer Science Standards

Arcade Game Maker Product Line Production Plan

Leveraging Simulation to Create Better Software Systems in an Agile World. Jason Ard Kristine Davidsen 4/8/2013

Subway simulator Case study

VIBE AND TONE PROGRAM MODULE 1 INTRODUCTION

Software Evolvability Measurement Framework during an Open Source Software Evolution

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

SAMPLE ASSESSMENT TASKS MATERIALS DESIGN AND TECHNOLOGY ATAR YEAR 11

Patenting and Protecting Early Stage R&D

The Live Master Class Experience. Join Rich Litvin and 8,100+ participants to learn the system you need to create a High-End Coaching Practice

Deviational analyses for validating regulations on real systems

Background T

About Software Engineering.

DEFENSE ACQUISITION UNIVERSITY EMPLOYEE SELF-ASSESSMENT. Outcomes and Enablers

Backcasting How to design a sustainable future

2. What is Text Mining? There is no single definition of text mining. In general, text mining is a subdomain of data mining that primarily deals with

Application of optical system simulation software in a fiber optic telecommunications program

Introduction. How are games similar/different from other software engineering projects? Common software engineering models & game development

Chapter 7 Information Redux

The Tool Box of the System Architect

The Impact of Conducting ATAM Evaluations on Army Programs

Simply Strengths. elearning Journal

Design and Creation. Ozan Saltuk & Ismail Kosan SWAL. 7. Mai 2014

WORKING WITH ADJUSTMENT LAYERS. Adjustment Layers are used to change the appearance of a layer without actually altering the layer

Transcription:

UML and Patterns.book Page 52 Thursday, September 16, 2004 9:48 PM

UML and Patterns.book Page 53 Thursday, September 16, 2004 9:48 PM Chapter 5 5 EVOLUTIONARY REQUIREMENTS Ours is a world where people don't know what they want and are willing to go through hell to get it. Don Marquis Objectives Motivate doing evolutionary requirements. Define the FURPS+ model. Define the UP requirements artifacts. Introduction other UP practices p. 33 This chapter briefly introduces iterative and evolutionary requirements, and describes specific UP requirement artifacts, to provide context for the coming requirements-oriented chapters. In also explores some evidence illustrating the futility and unskillfulness of waterfall-oriented requirements analysis approaches, in which there is an attempt to define so-called complete specifications before starting development. What s Next? Having introduced inception, this chapter introduces requirements and their evolutionary refinement. The next covers use cases, the prime requirements practice in the UP and many modern methods. Case Studies Inception Evolutionary Requirements Use Cases Other Requirements 53

UML and Patterns.book Page 54 Thursday, September 16, 2004 9:48 PM 5 EVOLUTIONARY REQUIREMENTS 5.1 Definition: Requirements Requirements are capabilities and conditions to which the system and more broadly, the project must conform [JBR99]. The UP promotes a set of best practices, one of which is manage requirements. This does not mean the waterfall attitude of attempting to fully define and stabilize the requirements in the first phase of a project before programming, but rather in the context of inevitably changing and unclear stakeholder s wishes, this means a systematic approach to finding, documenting, organizing, and tracking the changing requirements of a system [RUP]. In short, doing it iteratively and skillfully, and not being sloppy. A prime challenge of requirements analysis is to find, communicate, and remember (that usually means write down) what is really needed, in a form that clearly speaks to the client and development team members. 5.2 Evolutionary vs. Waterfall Requirements Notice the word changing in the definition of what it means to manage requirements. The UP embraces change in requirements as a fundamental driver on projects. That s incredibly important and at the heart of waterfall versus iterative and evolutionary thinking. In the UP and other evolutionary methods (Scrum, XP, FDD, and so on), we start production-quality programming and testing long before most of the requirements have been analyzed or specified perhaps when only 10% or 20% of the most architecturally significant, risky, and high-business-value requirements have been specified. What are the process details? How to do partial, evolutionary requirements analysis combined with early design and programming, in iterations? See How to do Iterative and Evolutionary Analysis and Design? on page 25. It provides a brief description and a picture to help explain the process. See Process: How to Work With Use Cases in Iterative Methods? on page 95. It has more detailed discussion. Caution! If you find yourself on a so-called UP or iterative project that attempts to specify most or all of the requirements (use cases, and so forth) before starting to program and test, there is a profound misunderstanding it is not a healthy UP or iterative project. 54

UML and Patterns.book Page 55 Thursday, September 16, 2004 9:48 PM EVOLUTIONARY VS. WATERFALL REQUIREMENTS In the 1960s and 1970s (when I started work as a developer) there was still a common speculative belief in the efficacy of full, early requirements analysis for software projects (i.e., the waterfall). Starting in the 1980s, there arose evidence this was unskillful and led to many failures; the old belief was rooted in the wrong paradigm of viewing a software project as similar to predictable mass manufacturing, with low change rates. But software is in the domain of new product development, with high change ranges and high degrees of novelty and discovery. change research p. 24 Recall the key statistic that, on average, 25% of the requirements change on software projects. Any method that therefore attempts to freeze or fully define requirements at the start is fundamentally flawed, based on a false assumption, and fighting or denying the inevitable change. Underlining this point, for example, was a study of failure factors on 1,027 software projects [Thomas01]. The findings? Attempting waterfall practices (including detailed up-front requirements) was the single largest contributing factor for failure, being cited in 82% of the projects as the number one problem. To quote the conclusion: the approach of full requirements definition followed by a long gap before those requirements are delivered is no longer appropriate. The high ranking of changing business requirements suggests that any assumption that there will be little significant change to requirements once they have been documented is fundamentally flawed, and that spending significant time and effort defining them to the maximum level is inappropriate. Another relevant research result answers this question: When waterfall requirements analysis is attempted, how many of the prematurely early specified features are actually useful in the final software product? In a study [Johnson02] of thousands of projects, the results are quite revealing 45% of such features were never used, and an additional 19% were rarely used. See Figure 5.1. Almost 65% of the waterfall-specified features were of little or no value! These results don t imply that the solution is to start pounding away at the code near Day One of the project, and forget about requirements analysis or recording requirements. There is a middle way: iterative and evolutionary requirements analysis combined with early timeboxed iterative development and frequent stakeholder participation, evaluation, and feedback on partial results. 55

UML and Patterns.book Page 56 Thursday, September 16, 2004 9:48 PM 5 EVOLUTIONARY REQUIREMENTS always, 7% often, 13% never, 45% sometimes, 16% rarely, 19% Figure 5.1 Actual use of waterfall-specified features. 5.3 What are Skillful Means to Find Requirements? To review the UP best practice manage requirements: a systematic approach to finding, documenting, organizing, and tracking the changing requirements of a system. [RUP] Besides changing, the word finding is important; that is, the UP encourages skillful elicitation via techniques such as writing use cases with customers, requirements workshops that include both developers and customers, focus groups with proxy customers, and a demo of the results of each iteration to the customers, to solicit feedback. The UP welcomes any requirements elicitation method that can add value and that increases user participation. Even the simple XP story card practice is acceptable on a UP project, if it can be made to work effectively (it requires the presence of a full-time customer-expert in the project room an excellent practice but often difficult to achieve). 5.4 What are the Types and Categories of Requirements? In the UP, requirements are categorized according to the FURPS+ model 56

UML and Patterns.book Page 57 Thursday, September 16, 2004 9:48 PM WHAT ARE THE TYPES AND CATEGORIES OF REQUIREMENTS? [Grady92], a useful mnemonic with the following meaning: 1 Functional features, capabilities, security. Usability human factors, help, documentation. Reliability frequency of failure, recoverability, predictability. Performance response times, throughput, accuracy, availability, resource usage. Supportability adaptability, maintainability, internationalization, configurability. The + in FURPS+ indicates ancillary and sub-factors, such as: Implementation resource limitations, languages and tools, hardware,... Interface constraints imposed by interfacing with external systems. Operations system management in its operational setting. Packaging for example, a physical box. Legal licensing and so forth. It is helpful to use FURPS+ categories (or some categorization scheme) as a checklist for requirements coverage, to reduce the risk of not considering some important facet of the system. Some of these requirements are collectively called the quality attributes, quality requirements, or the -ilities of a system. These include usability, reliability, performance, and supportability. In common usage, requirements are categorized as functional (behavioral) or non-functional (everything else); some dislike this broad generalization [BCK98], but it is very widely used. architectural analysis p. 541 As we shall see when exploring architectural analysis, the quality attributes have a strong influence on the architecture of a system. For example, a high-performance, high-reliability requirement will influence the choice of software and hardware components, and their configuration. 1. There are several systems of requirements categorization and quality attributes published in books and by standards organizations, such as ISO 9126 (which is similar to the FURPS+ list), and several from the Software Engineering Institute (SEI); any can be used on a UP project. 57

UML and Patterns.book Page 58 Thursday, September 16, 2004 9:48 PM 5 EVOLUTIONARY REQUIREMENTS 5.5 How are Requirements Organized in UP Artifacts? The UP offers several requirements artifacts. As with all UP artifacts, they are optional. Key ones include: Use-Case Model A set of typical scenarios of using a system. There are primarily for functional (behavioral) requirements. Supplementary Specification Basically, everything not in the use cases. This artifact is primarily for all non-functional requirements, such as performance or licensing. It is also the place to record functional features not expressed (or expressible) as use cases; for example, a report generation. Glossary In its simplest form, the Glossary defines noteworthy terms. It also encompasses the concept of the data dictionary, which records requirements related to data, such as validation rules, acceptable values, and so forth. The Glossary can detail any element: an attribute of an object, a parameter of an operation call, a report layout, and so forth. Vision Summarizes high-level requirements that are elaborated in the Use-Case Model and Supplementary Specification, and summarizes the business case for the project. A short executive overview document for quickly learning the project s big ideas. Business Rules Business rules (also called Domain Rules) typically describe requirements or policies that transcend one software project they are required in the domain or business, and many applications may need to conform to them. An excellent example is government tax laws. Domain rule details may be recorded in the Supplementary Specification, but because they are usually more enduring and applicable than for one software project, placing them in a central Business Rules artifact (shared by all analysts of the company) makes for better reuse of the analysis effort. What is the Correct Format for these Artifacts? In the UP, all artifacts are information abstractions; they could be stored on Web pages (such as in a Wiki Web), wall posters, or any variation imaginable. The online RUP documentation product contains templates for the artifacts, but these are an optional aid, and can be ignored. 5.6 Does the Book Contain Examples of These Artifacts? Yes! This book is primarily an introduction to OOA/D in an iterative process rather than requirements analysis, but exploring OOA/D without some example or context of the requirements gives an incomplete picture it ignores the influence of requirements on OOA/D. And it s simply useful to have a larger example of key UP requirements artifacts. Where to find the examples: 58

UML and Patterns.book Page 59 Thursday, September 16, 2004 9:48 PM RECOMMENDED RESOURCES Requirement Artifact Where? Comment Use-Case Model Introduction p. 61 Intermediate p. 493 Use cases are common in the UP and an input to OOA/D, and thus described in detail in an early chapter. Supplementary Specification, Glossary, Vision, Business Rules Case study examples p. 101 These are provided for consistency, but can be skipped not an OOA/D topic. 5.7 Recommended Resources References related to requirements with use cases are covered in a subsequent chapter. Use-case-oriented requirements texts, such as Writing Effective Use Cases [Cockburn01] are the recommended starting point in requirements study, rather than more general (and usually, traditional) requirements texts. There is a broad effort to discuss requirements and a wide variety of software engineering topics under the umbrella of the Software Engineering Body of Knowledge (SWEBOK), available at www.swebok.org. The SEI (www.sei.cmu.edu) has several proposals related to quality requirements. The ISO 9126, IEEE Std 830, and IEEE Std 1061 are standards related to requirements and quality attributes, and available on the Web at various sites. A caution regarding general requirements books, even those that claim to cover use cases, iterative development, or indeed even requirements in the UP: Most are written with a waterfall bias of significant or thorough up-front requirements definition before moving on to design and implementation. Those books that also mention iterative development may do so superficially, perhaps with iterative material recently added to appeal to modern trends. They may have good requirements elicitation and organization tips, but don t represent an accurate view of iterative and evolutionary analysis. Any variant of advice that suggests try to define most of the requirements, and then move forward to design and implementation is inconsistent with iterative evolutionary development and the UP. 59