ebook img

Strategic Software Engineering: An Interdisciplinary Approach PDF

361 Pages·2005·4.697 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Strategic Software Engineering: An Interdisciplinary Approach

Au3939 _half title 4/25/05 9:23 AM Page 1 Strategic Software Engineering Series_AU_001 Page 1 Thursday, April 21, 2005 3:24 PM Other 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] Au3939 _title 4/25/05 9:21 AM Page 1 Strategic Software Engineering An Interdisciplinary Approach Fadi P. Deek James A.M. McHugh Osama M. Eljabiri 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-3939-1 (Hardcover) International Standard Book Number-13: 978-0-8493-3939-4 (Hardcover) Library of Congress Card Number 2005041000 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 Strategic software engineering : an interdisciplinary approach / Fadi P. Deek, James A.M. McHugh, Osama M. Eljabiri. p. cm. Includes bibliographical references and index. ISBN 0-8493-3939-1 (alk. paper) 1. Software engineering. I. Deek, Fadi P. II. McHugh, James A., 1994- III. Eljabiri, Osama M. QA76.758.S765 2005 005.1--dc22 2005041000 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 Dedication ........................................................................................... xi Preface ............................................................................................... xiii Introduction ........................................................................................ xv About the Authors ........................................................................... xxv Section I The Process and Its Models.....................................1 1 Softwar e Development Strategies: Basic Planning and Contr ol..................................................................................... 3 1.1 Introduction..............................................................................................3 1.2 Characteristics of Software Development Strategies................................6 1.3 Life-Cycle Models....................................................................................11 1.3.1 The Waterfall Model....................................................................11 1.3.2 Incremental and Iterative Models...............................................15 1.4 Risk-Reduction Models............................................................................20 1.4.1 The Prototyping Model...............................................................20 1.4.2 The Spiral Model.........................................................................25 1.4.3 The Cleanroom Model.................................................................31 References........................................................................................................35 2 Softwar e Development Strategies: T ools, Objects, and Reuse ...................................................................................... 39 2.1 Introduction............................................................................................39 2.2 CASE Tools...............................................................................................39 2.3 Object-Oriented and Reuse Models........................................................43 2.3.1 Object-Oriented Models..............................................................44 v vi (cid:2) 2.3.2 Rational Unified Process Model (RUP)........................................47 2.3.3 Commercial Off-the-Shelf Model (COTS)....................................51 2.3.4 The Reengineering Model...........................................................58 References........................................................................................................62 3 Softwar e Development Strategies: Pr ocess Impr ovement .......65 3.1 Introduction............................................................................................65 3.2 Productivity-Driven Dynamic Process Modeling....................................66 3.3 Human Factors in Development Models................................................68 3.4 The Capability Maturity Model...............................................................75 3.5 Personal and Team Software Development Models................................79 References........................................................................................................83 4 Softwar e Development Strategies: Reinventing How It Is Done ........................................................ 87 4.1 Introduction............................................................................................87 4.2 Open Source Model................................................................................88 4.3 Agile Software Development..................................................................90 4.4 Rapid Application Development (RAD) Models.....................................94 4.5 Workflow Application Models.................................................................97 4.6 Aspect-Oriented Development..............................................................101 References......................................................................................................103 5 An Assessment of Pr ocess Life-Cycle Models .......................... 105 5.1 Introduction..........................................................................................105 5.2 The Dimension of Time........................................................................111 5.3 The Need for a Business Model in Software Engineering....................112 5.4 Classic Invalid Assumptions..................................................................113 5.4.1 First Assumption: Internal or External Drivers.........................113 5.4.2 Second Assumption: Software or Business Processes...............114 5.4.3 Third Assumption: Processes or Projects..................................114 5.4.4 Fourth Assumption: Process Centered or Architecture Centered...............................................................115 5.5 Implications of the New Business Model.............................................116 5.6 Role of the Problem-Solving Process in This Approach.......................117 5.6.1 Data............................................................................................117 5.6.2 Problem Definition....................................................................118 5.6.3 Tools and Capabilities...............................................................118 5.7 Redefining the Software Engineering Process......................................119 5.7.1 Round-Trip Problem-Solving Approach.....................................120 5.7.2 Activities....................................................................................120 5.7.3 Goals..........................................................................................121 5.7.4 Interdisciplinary Resources.......................................................121 5.7.5 Time...........................................................................................121 References......................................................................................................123 (cid:2) vii Section II Strategies for Solving Software Problems...........125 6 The Problem-Solving Pr ocess .................................................... 127 6.1 Introduction..........................................................................................127 6.2 What Is a Problem?...............................................................................131 6.2.1 Problems of Meeting Standards.................................................134 6.2.2 Problems of Selection between Alternatives.............................135 6.2.3 Problems of Customer Satisfaction...........................................135 6.2.4 Problems of Goal Achievement.................................................136 6.2.5 Problems of Goal Evolution......................................................136 6.3 What Is Problem Solving?.....................................................................136 6.3.1 Models of Problem Solving.......................................................137 6.3.2 Commonalities in Problem-Solving Models...............................139 6.3.3 Complex Management-Driven Strategies..................................142 6.3.3.1 Problem Reduction (Decomposition)........................142 6.3.3.2 Reusable Subproblems and Solutions........................142 6.3.3.3 Problem Expansion (Composition)............................143 6.3.3.4 Problem Misrepresentation........................................144 6.3.4 Strategies Driven by Task Structuring.......................................145 6.3.4.1 Linear Problem-Solving Strategies..............................146 6.3.4.2 Iterative Problem-Solving Strategies...........................146 6.3.4.3 Parallel Problem-Solving Strategies.............................147 6.3.4.4 Dynamic Problem-Solving Strategy.............................147 6.3.5 Capabilities-Driven Strategies....................................................147 6.4 What Is a Solution?...............................................................................148 6.4.1 Problems and Solutions in Context of the Old Business Environment...............................................................148 6.4.2 Problems and Solutions in Context of the Information Age....151 References......................................................................................................152 7 Softwar e Technology and Pr oblem Solving ............................. 155 7.1 Introduction..........................................................................................155 7.2 Software Technology as Enabling Business Tool—What Computers Can Do...............................................................................157 7.2.1 Exponential Growth in Capability............................................157 7.2.2 Business Problem-Solving Optimization....................................157 7.2.3 The E-Business Revolution........................................................158 7.2.4 Portability Power.......................................................................160 7.2.5 Connectivity Power...................................................................161 7.3 Software Technology as a Limited Business Tool—What Computers Cannot Do.............................................................................................161 7.3.1 People Have Different Needs That Change over Time.............162 7.3.2 Most Users Do not Understand Computer Languages.............162 7.3.3 Decisions and Problems—Complex and Ill Structured............163 7.3.4 Businesses View Software Technology as a Black Box for Creating Economic Value.....................................................164 viii (cid:2) 7.3.5 Computers Cannot Work without People.................................168 7.4 A View of Problem Solving and Software Engineering........................169 References......................................................................................................171 8 Evolution of Softwar e Development Strategies ....................... 173 8.1 Introduction..........................................................................................173 8.2 Current Challenges to Software Development.....................................174 8.3 Competing Views of Software Development........................................175 8.4 The Engineering of Software................................................................177 8.5 The Process and the Model..................................................................178 8.6 Progression in Software Engineering Strategies...................................181 8.6.1 The Era of Management Isolation.............................................181 8.6.2 The Era of Traditional Software Engineering............................182 8.6.3 The Era of Business Evaluation of Software Engineering.........183 8.6.4 Maturity Era: the Era of Business-Driven Software Engineering................................................................................184 8.6.5 Characteristics of Current Software Development...................185 References......................................................................................................187 9 Diversifi cation of Pr oblem-Solving Strategies in Softwar e Engineering ............................................................ 189 9.1 Introduction..........................................................................................189 9.2 Understanding Diversification in Software Engineering......................191 9.2.1 Driving Forces of Diversity in Development Strategies...........191 9.3 The Hidden Value of Differences..........................................................196 9.4 Integration—Not Differentiation...........................................................197 9.4.1 Investing in Diversification.......................................................198 9.4.2 Factors That Affect Interdisciplinary Ignorance........................198 9.4.2.1 Unreliable Sources of Information.............................198 9.4.2.2 Partial Knowledge......................................................199 9.4.2.3 Lack of Communication.............................................200 9.4.2.4 Interorganizational Ignorance....................................200 9.5 Diversity in Problem Solver Skills at the Project Management Level......203 9.6 Diversity as Value-Adding Tool in Problem Analysis..............................204 References......................................................................................................206 10 Strategies at the Pr oblem Engineering Level ........................... 209 10.1 Introduction..........................................................................................209 10.2 Identifying Interdisciplinary Resources and Comprehensive Problem Identification...........................................................................210 10.2.1 The Reverse Engineering Method.............................................210 10.2.2 The Problem Decomposition Method......................................211 10.3 Data Collection Phase...........................................................................212 10.3.1 Generate Stakeholders...............................................................212 10.3.1.1 Interdisciplinary Perspective......................................213 10.3.2 Rationale for Change.................................................................213 (cid:2) ix 10.3.2.1 Interdisciplinary Perspective......................................214 10.3.3 The Measurement of Risks of Change......................................214 10.3.3.1 Interdisciplinary Perspective......................................215 10.3.4 Thorough Diagnosis..................................................................215 10.3.4.1 Interdisciplinary Perspective......................................216 10.3.5 Survey for Benchmarking and Setting Evaluation Criteria.......216 10.3.6 Initial Functional Requirements................................................216 10.3.6.1 Interdisciplinary Perspective......................................217 10.3.7 Initial Nonfunctional Requirements..........................................218 10.3.7.1 Interdisciplinary Perspective......................................218 10.3.8 Tools Identification and Allocation............................................219 10.3.8.1 Interdisciplinary Perspective......................................219 10.4 Data-Processing Phase...........................................................................220 10.4.1 Validation and Verification Subphase........................................221 10.4.1.1 Interdisciplinary Perspective......................................221 10.4.2 Refinement Subphase................................................................221 10.4.2.1 Interdisciplinary Perspective......................................221 10.4.3 Data Mining Subphase...............................................................222 10.4.3.1 Interdisciplinary Perspective......................................222 10.5 Information Presentation Phase............................................................222 10.6 Strategies in Software Engineering.......................................................223 References......................................................................................................225 Section III Interdisciplinary Factors in Software Development.........................................................................227 11 People and Softwar e Engineering ............................................ 229 11.1 Introduction..........................................................................................229 11.2 Interdisciplinary Background................................................................230 11.3 The Importance of People in the Problem-Solving Process................231 11.3.1 The Roles of Users in Problem Definition................................231 11.4 Human-Driven Software Engineering....................................................233 11.5 The People Factor—Multidisciplinary Aspects.....................................234 11.5.1 People as Project Managers.......................................................235 11.6 The Team Factor....................................................................................239 11.7 The Customer Factor............................................................................240 References......................................................................................................241 12 Economics and Softwar e Engineering ..................................... 243 12.1 Introduction..........................................................................................243 12.2 Economics and the Development of Software.....................................244 12.3 The Rationale for Software Economics.................................................246 12.4 The Influence of Software Economics on Software Engineering........247 12.5 Software Economics..............................................................................249 12.5.1 Value Maximization...................................................................249 12.5.2 Evaluating Investment Options.................................................251

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.