AU2848_half title page 4/8/05 3:59 PM Page 1 Series_AU_001 Page 1 Wednesday, April 13, 2005 10:43 AM Other CRC/Auerbach Publications in Software Development, Software Engineering, and Project Management The Complete Project Management Software Configuration Management Office Handbook Jessica Keyes Gerard M. Hill 0-8493-1976-5 0-8493-2173-5 Software Engineering for Image Complex IT Project Management: Processing 16 Steps to Success Phillip A. Laplante Peter Schulte 0-8493-1376-7 0-8493-1932-3 Software Engineering Handbook Creating Components: Object Oriented, Jessica Keyes Concurrent, and Distributed Computing 0-8493-1479-8 in Java Software Engineering Measurement Charles W. Kann John C. Munson 0-8493-1499-2 0-8493-1503-4 The Hands-On Project Office: Software Metrics: A Guide to Planning, Guaranteeing ROI and On-Time Delivery Analysis, and Application Richard M. Kesner C.R. Pandian 0-8493-1991-9 0-8493-1661-8 Interpreting the CMMI®: A Process Software Testing: A Craftsman’s Improvement Approach Approach, Second Edition Margaret Kulpa and Kent Johnson Paul C. Jorgensen 0-8493-1654-5 0-8493-0809-7 ISO 9001:2000 for Software and Systems Software Testing and Continuous Quality Providers: An Engineering Approach Improvement, Second Edition Robert Bamford and William John Deibler II William E. Lewis 0-8493-2063-1 0-8493-2524-2 The Laws of Software Process: IS Management Handbook, 8th Edition A New Model for the Production Carol V. Brown and Heikki Topi, Editors and Management of Software 0-8493-1595-9 Phillip G. Armour Lightweight Enterprise Architectures 0-8493-1489-5 Fenix Theuerkorn Real Process Improvement Using 0-8493-2114-X the CMMI® Outsourcing Software Development Michael West Offshore: Making It Work 0-8493-2109-3 Tandy Gold Six Sigma Software Development 0-8493-1943-9 Christine Tayntor Maximizing ROI on Software Development 0-8493-1193-4 Vijay Sikka 0-8493-2312-6 Software Architecture Design Patterns in Java Implementing the IT Balanced Scorecard Partha Kuchana Jessica Keyes 0-8493-2142-5 0-8493-2621-4 AUERBACH PUBLICATIONS www.auerbach-publications.com To Order Call: 1-800-272-7737 • Fax: 1-800-374-3401 E-mail: [email protected] AU2848_title page 4/8/05 3:57 PM Page 1 Boca Raton London New York Singapore Published in 2005 by Auerbach Publications Taylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742 © 2005 by Taylor & Francis Group, LLC Auerbach is an imprint of Taylor & Francis Group No claim to original U.S. Government works Printed in the United States of America on acid-free paper 10 9 8 7 6 5 4 3 2 1 International Standard Book Number-10: 0-8493-2848-9 (Hardcover) International Standard Book Number-13: 978-0-8493-2848-0 (Hardcover) Library of Congress Card Number 2005042100 This book contains information obtained from authentic and highly regarded sources. Reprinted material is quoted with permission, and sources are indicated. A wide variety of references are listed. Reasonable efforts have been made to publish reliable data and information, but the author and the publisher cannot assume responsibility for the validity of all materials or for the consequences of their use. No part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers. For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC) 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and registration for a variety of users. For organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged. Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe. Library of Congress Cataloging-in-Publication Data Lutowski, Rick. Software requirements : encapsulation, quality, and reuse / Rick Lutowski. p. cm. Includes bibliographical references and index. ISBN 0-8493-2848-9 (alk. paper) 1. Software engineering. I. Title. QA76.758.L87 2005 005.1--dc22 2005042100 Visit the Taylor & Francis Web site at http://www.taylorandfrancis.com Taylor & Francis Group and the Auerbach Publications Web site at is the Academic Division of T&F Informa plc. http://www.auerbach-publications.com Contents Preface ................................................................................................. xi Acknowledgments .............................................................................. xv 1 Overview .......................................................................................... 1 1.1 Why Freedom?...........................................................................................1 1.2 Freedom Methodology Overview.............................................................3 1.3 Methodology Benefits of Freedom............................................................4 1.4 Economic Benefits of Freedom.................................................................4 1.4.1 Development Benefits...................................................................5 1.4.2 Maintenance Benefits....................................................................6 1.4.3 Total Economic Benefits................................................................7 References..........................................................................................................7 2 Infor mation-Hiding Secr ets........................................................... 9 2.1 Chapter Overview.....................................................................................9 2.2 Information-Hiding Concepts....................................................................9 2.2.1 Encapsulation.................................................................................9 2.2.2 Information-Hiding......................................................................10 2.3 Contrast with Traditional Design............................................................12 2.4 Contrast with Current OO Practice........................................................13 References........................................................................................................17 3 What Ar e Requir ements? ............................................................. 19 3.1 Chapter Overview...................................................................................19 3.2 Definition of Requirements.....................................................................20 3.3 Definition of Design................................................................................22 3.4 Definition of Implementation.................................................................23 3.5 Design and Implementation Constraints................................................24 References........................................................................................................25 v vi (cid:2) Contents 4 Freedom Requir ements Pr ocess ................................................. 27 4.1 Chapter Overview...................................................................................27 4.2 Enterprise Process Models......................................................................28 4.3 Bounding the Black Box.........................................................................28 4.4 Context Diagrams....................................................................................29 4.5 Requirements Process.............................................................................31 4.6 Example Problem Enterprise Process Model..........................................34 4.7 Example Problem Black Box Bounding..................................................37 4.8 Example Problem Context Diagram.......................................................40 References........................................................................................................42 5 Quality Requir ements .................................................................. 43 5.1 Chapter Overview...................................................................................43 5.2 Types of Requirements...........................................................................43 5.3 Measuring Software Quality....................................................................45 5.4 Where’s the Developer?..........................................................................47 5.5 ‘ility Mapping..........................................................................................48 5.6 Example Problem Quality Requirements................................................48 5.6.1 Functionality................................................................................48 5.6.2 Reliability.....................................................................................50 5.6.3 Usability.......................................................................................51 5.6.4 Administerability..........................................................................51 5.6.5 Maintainability.............................................................................51 5.6.6 Execution Speed..........................................................................52 5.6.7 Storage Demand..........................................................................52 References........................................................................................................53 6 Stimulus Identifi cation and Cohesion ........................................ 55 6.1 Chapter Overview...................................................................................55 6.2 What Is a Stimulus?.................................................................................56 6.2.1 Types of Stimuli...........................................................................56 6.2.2 Sources of Stimuli........................................................................57 6.3 Stimulus Sets............................................................................................59 6.3.1 Example Human User Stimulus Set.............................................60 6.3.2 Example External-System Stimulus Set.......................................62 6.3.3 Source-Neutral Stimulus Set Recording.......................................62 6.4 Functionality Screens..............................................................................63 6.5 Programmatic Protocols..........................................................................65 6.5.1 Command-Data Streams...............................................................65 Step 1: Group Command Stimuli by Level.................................67 Step 2: Group Data Stimuli by Command..................................67 6.5.2 XML Streams................................................................................68 Step 1: Group Command Stimuli by Level.................................69 Step 2: Group Data Stimuli by Command..................................70 Contents (cid:2) vii 6.6 Example Problem Functionality Screen..................................................70 6.7 Example Problem Programmatic Protocol..............................................72 References........................................................................................................75 7 Stimulus Or ganization and Ar chitectur e.................................... 77 7.1 Chapter Overview...................................................................................77 7.2 Stimulus Set Architecture........................................................................77 7.3 New Stimulus Response..........................................................................78 7.4 Functionality Trees..................................................................................79 7.5 Sample Functionality Tree.......................................................................79 7.6 Example Problem: Programmatic Interface Functionality Tree..............82 Step 1......................................................................................................83 Step 2......................................................................................................83 Step 3......................................................................................................83 7.7 Example Problem: Reverse Engineering the External Interface Architecture..............................................................................84 7.8 Example Problem Functionality Tree......................................................85 7.9 Alternate Kickoff Approaches.................................................................91 7.10 Functionality Tree Neutrality...................................................................92 References........................................................................................................93 8 Reusable Requir ements ................................................................ 95 8.1 Chapter Overview...................................................................................95 8.2 Repetitive and Reusable Stimulus Sets...................................................95 8.3 Reusable Requirements Components.....................................................98 8.4 Example Reusable Requirements Component.......................................99 8.5 Example Problem Reusable Requirements...........................................101 References......................................................................................................103 9 Incremental Development ......................................................... 105 9.1 Chapter Overview.................................................................................105 9.2 Requirements Prioritization..................................................................106 Step 1. Prioritize Lowest-Level Stimuli.................................................106 Step 2. Prioritize Upper-Level Stimuli..................................................107 9.3 Example Problem Requirements Priorities...........................................108 10 Responses and Behavior T ables ................................................ 111 10.1 Chapter Overview.................................................................................111 10.2 Types of Responses...............................................................................111 10.2.1 Response Visibility.....................................................................112 10.2.2 Response Desirability................................................................113 10.2.3 Response Prescriptiveness........................................................114 10.2.4 Response Classification.............................................................114 viii (cid:2) Contents 10.3 Behavior Tables......................................................................................115 10.3.1 Behavior Table Rule and Format...............................................116 10.3.2 Behavior Table Columns............................................................117 10.3.3 Behavior Table Rows.................................................................118 10.3.4 Behavior Table Generic Example..............................................118 10.3.5 Behavior Table Benefits and Costs............................................118 10.4 Response Recording Languages............................................................121 10.5 Response Recording Syntax..................................................................122 10.5.1 Declaration Statements..............................................................123 10.5.2 Sequence Statement..................................................................125 10.5.3 Selection Statement...................................................................126 10.5.4 Repetition Statement.................................................................127 10.6 Example Problem Behavior Tables........................................................127 10.6.1 Example Problem Human Interface Behavior Tables................128 10.6.2 Behavior Specification in Reality...............................................139 References......................................................................................................143 11 Requirements Encapsulation Design ........................................ 145 11.1 Chapter Overview.................................................................................145 11.2 Requirements Encapsulation Design Rule............................................146 11.3 Canonical Design Architecture..............................................................148 11.4 Example Problem Functionality Module Architecture..........................151 12 Requirements Encapsulation ..................................................... 155 12.1 Chapter Overview.................................................................................155 12.2 Functionality Modules...........................................................................156 12.3 Common Service Modules....................................................................157 12.4 Functionality Module Structure............................................................158 12.4.1 Functionality Module Declaration...........................................159 12.4.2 Functionality Module Stimulus Methods.................................159 12.4.3 Functionality Module Response Methods...............................162 12.4.4 Functionality Module Access Methods....................................162 12.4.5 Functionality Module Hidden Information.............................163 12.4.6 Functionality Module External Interface.................................163 12.5 Example Problem Functionality Module..............................................164 13 Inter face Pr ototyping ................................................................. 169 13.1 Chapter Overview.................................................................................169 13.2 Purpose of Prototypes...........................................................................169 13.2.1 Clarify Requirements...............................................................169 13.2.2 Obtain User Commitment.......................................................170 13.2.3 Training....................................................................................170 13.2.4 Demonstration.........................................................................171 13.2.5 Evaluate Solutions....................................................................171 Contents (cid:2) ix 13.3 Types of Prototypes..............................................................................171 13.3.1 Partial Functional Simulation...................................................172 13.3.2 Vertical Functional Simulation................................................173 13.3.3 Robust Vertical Functional Simulation....................................174 13.3.4 External Interface Simulation..................................................174 13.3.5 Full Functional Simulation.......................................................174 13.3.6 Robust Functional Simulation.................................................175 13.3.7 External Interface Mockup......................................................175 13.3.8 Full Functional Mockup..........................................................175 13.3.9 Release.....................................................................................176 13.3.10 Which To Use?.........................................................................176 13.4 Example Problem Interface Mockup....................................................177 References......................................................................................................197 14 Requirements Evolution ............................................................ 199 14.1 Chapter Overview.................................................................................199 14.2 Handling the Ripple Effect of Change..................................................199 14.2.1 Ripple Effect of Stimulus Change.............................................200 14.2.2 Ripple Effect of External Response Change.............................203 14.2.3 Ripple Effect of Protocol Change.............................................205 14.3 Requirements Change Example............................................................207 Appendices A Softwar e Requir ements Specifi cation ....................................... 223 B Cost Savings Estimate Details .................................................... 227 C Glossary ....................................................................................... 235 Index.................................................................................................. 243