ebook img

Software Engineering: Architecture-driven Software Development PDF

376 Pages·2013·11.97 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 Software Engineering: Architecture-driven Software Development

Software Engineering This page intentionally left blank Software Engineering Architecture-Driven Software Development Richard F. Schmidt AMSTERDAM • BOSTON • HEIDELBERG • LONDON NEW YORK • OXFORD • PARIS • SAN DIEGO SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO Morgan Kaufmann is an imprint of Elsevier Acquiring Editor: Todd Green Editorial Project Manager: Lindsay Lawrence Project Manager: Priya Kumaraguruparan Designer: Mark Rogers Morgan Kaufmann is an imprint of Elsevier 225 Wyman Street, Waltham, MA, 02451, USA Copyright © 2013 Published by Elsevier Inc. All rights reserved No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publisher’s permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions. This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein). Notices Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods or professional practices, may become necessary. Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information or methods described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility. To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein. Library of Congress Cataloging-in-Publication Data Schmidt, Richard, 1956- Software engineering: architecture-driven software development / Richard Schmidt. pages cm Includes bibliographical references and index. ISBN 978-0-12-407768-3 1. Software engineering. 2. Software architecture. 3. Computer software—Development. I. Title. QA76.758.S364 2013 005.1—dc23 2013000589 British Library Cataloguing-in-Publication Data A catalogue record for this book is available from the British Library Printed in the United States of America 13 14 15 16 17 10 9 8 7 6 5 4 3 2 1 For information on all MK publications visit our website at www.mkp.com Contents A Note from the Author ...........................................................................................xv Preface ....................................................................................................................xvii SECTION 1 SOFTWARE ENGINEERING FUNDAMENTALS CHAPTER 1 Introduction to Software Engineering ..............................7 1.1 Specifying software requirements ..............................................10 1.2 Software architecture ..................................................................11 1.3 Integrated product and process development .............................12 1.4 Integrated product teams ............................................................13 1.5 Work breakdown structure .........................................................15 1.6 Software breakdown structure ....................................................15 1.7 Specification and documentation trees .......................................17 1.8 Integrated master plan and schedule ..........................................17 1.9 Reviews and audits .....................................................................18 1.10 Configuration management and change control .........................20 1.11 Trade-off analysis .......................................................................22 1.12 Risk management .......................................................................24 1.13 Modeling and simulation ............................................................24 CHAPTER 2 Generic Software Development Framework .................29 2.1 Software breakdown structure ....................................................31 2.2 Software development process ...................................................34 2.2.1 Requirements definition stage ...........................................35 2.2.2 Preliminary architecture definition stage ...........................36 2.2.3 Critical architecture definition stage ..................................37 2.2.4 Software unit code and testing stage .................................38 2.2.5 Software component integration and testing stage ............39 2.2.6 Product testing stage ..........................................................39 2.2.7 Acceptance testing stage ....................................................40 2.3 Summary .....................................................................................41 CHAPTER 3 Software Architecture ...............................................43 3.1 Stakeholder needs relationships and dependencies ....................46 3.2 Software requirements baseline relationships and dependencies ...............................................................................48 3.3 Computing environment relationships and dependencies...........49 3.4 Test and evaluation relationships and dependencies ...................49 3.5 Functional architecture relationships and dependencies .............50 v vi Contents 3.6 Physical architecture relationships and dependencies ................51 3.7 Post-development process relationships and dependencies ........51 3.8 Motivation for the software architecture .....................................52 CHAPTER 4 Understanding the Software Project Environment .....55 4.1 Integrated product teams .............................................................60 4.2 Software architecture ..................................................................61 4.3 Complexity control mechanisms ................................................63 4.3.1 Work breakdown structure ...............................................63 4.3.2 Product breakdown structure ...........................................64 4.3.3 Specification tree .............................................................65 4.3.4 Documentation tree .........................................................65 4.3.5 Software product baselines ..............................................65 4.3.6 Requirements traceability guidelines ..............................67 4.3.7 Trade-off analysis ............................................................68 4.3.8 Software complexity measures ........................................70 4.4 Software nomenclature registry ..................................................74 4.5 Software integration strategy ......................................................74 4.6 Project and technical planning ....................................................75 4.6.1 Technical organization plans ...........................................75 4.6.2 Project plans ....................................................................77 CHAPTER 5 Software Integrated Product and Process Development ...........................................................................79 5.1 Application of IPPD to software .................................................82 5.1.1 Customer focus ................................................................84 5.1.2 Concurrent development of products and processes .......84 5.1.3 Early and continuous life-cycle planning ........................86 5.1.4 Maximize flexibility for optimization and use of contractor unique approaches ......................................87 5.1.5 Encourage robust design and improved process capability ............................................................88 5.1.6 Event-driven scheduling ..................................................88 5.1.7 Multidisciplinary teamwork ............................................88 5.1.8 Empowerment ..................................................................88 5.1.9 Seamless management tools ............................................89 5.1.10 Proactive identification and management of risk.............89 5.2 Software engineering and development ......................................89 CHAPTER 6 Impediments to Software Design .....................................93 6.1 Software as a raw material ..........................................................95 6.2 Evolution of software technologies ............................................98 Contents vii 6.2.1 Software development methods and standards ................101 6.2.2 Agile manifesto ...............................................................105 6.3 Architecture-driven software development ...............................108 SECTION 2 SOFTWARE ENGINEERING PRACTICES CHAPTER 7 Understanding Software Requirements .......................121 7.1 Step 1: Soliciting stakeholder needs and expectations .............124 7.2 Step 2: Requirement analysis and specification ........................127 7.2.1 Balancing and deconflicting stakeholder needs ...............129 7.2.2 Maintaining the scope of the project ...............................129 7.2.3 The availability of experienced software personnel ........132 7.3 Step 3: Task definition and scheduling .....................................132 7.4 Step 4: Resource identification, estimation, and allocation ......133 7.5 Step 5: Establish organizational work packages .......................133 7.6 Step 6: Technical planning ........................................................133 7.7 Step 7: Project planning ............................................................134 7.8 Exploring stakeholder needs .....................................................135 CHAPTER 8 Software Requirements Analysis Practice .................139 8.1 Project analysis tasks ................................................................140 8.1.1 Analyze project goals and objectives ..............................141 8.1.2 Identify development success criteria ..............................142 8.1.3 Solicit stakeholder needs and expectations .....................142 8.1.4 Prioritize stakeholder needs .............................................144 8.2 Operational analysis tasks .........................................................144 8.2.1 Identify operational concepts ..........................................145 8.2.2 Identify operational scenarios ..........................................145 8.2.3 Identify the computing environment characteristics........146 8.2.4 Identify external interfaces ..............................................147 8.3 Product analysis tasks ...............................................................147 8.3.1 Identify modes of operation .............................................148 8.3.2 Identify functional behaviors ...........................................148 8.3.3 Identify resource utilization needs ...................................150 8.3.4 Identify data processing conditional logic .......................150 8.3.5 Identify data persistence needs ........................................151 8.3.6 Identify data security needs .............................................151 8.3.7 Identify data storage transactions ....................................152 8.3.8 Identify measures of performance ...................................152 8.4 Sustainment analysis tasks ........................................................152 8.4.1 Identify post-development process operational concepts ........................................................152 viii Contents 8.4.2 Identify post-development process operational scenarios .....................................................153 8.4.3 Identify post-development process characteristics ........153 8.4.4 Identify architectural guidelines and principles ............154 8.5 Project assessment tasks ...........................................................155 8.5.1 Assess requirements sensitivity .....................................155 8.5.2 Identify the software test strategy ..................................155 8.5.3 Assess proposed changes ...............................................156 8.5.4 Assess project feasibility ...............................................157 8.6 Establish the requirements baseline ..........................................157 CHAPTER 9 Software Requirements Management ........................159 9.1 Embracing change ....................................................................160 9.1.1 Time is a valuable resource ...........................................160 9.1.2 Change impact analysis .................................................162 9.1.3 Adjusting project milestones .........................................164 9.2 Specifying requirements ...........................................................166 9.3 Requirements decomposition and allocation ............................168 9.3.1 Functional analysis ........................................................169 9.3.2 Performance allocation ..................................................169 9.3.3 Structural unit synthesis ................................................170 9.3.4 Structural component synthesis .....................................170 9.4 Requirements traceability .........................................................170 9.4.1 Change control ...............................................................171 9.4.2 Configuration audits ......................................................172 CHAPTER 10 Formulating the Functional Architecture ..................173 10.1 Motivation for the functional architecture ................................174 10.2 Functional architecture ontology ..............................................176 10.2.1 Functional component ...................................................176 10.2.2 Functional unit ...............................................................177 10.2.3 Data item .......................................................................177 10.2.4 Functional interface .......................................................177 10.2.5 External interface ...........................................................178 10.2.6 Control structures ..........................................................178 10.2.7 Resource ........................................................................178 10.2.8 Data store .......................................................................179 10.3 Conceiving the functional architecture .....................................179 10.4 Documenting the functional architecture ..................................181 10.4.1 Functional hierarchy ......................................................181 10.4.2 Behavior model ..............................................................182 10.4.3 Functional timeline ........................................................183 Contents ix 10.4.4 Resource utilization profile ..........................................183 10.4.5 Functional specifications .............................................184 10.4.6 Requirements allocation sheet .....................................184 CHAPTER 11 Functional Analysis and Allocation Practice ..........185 11.1 Assess functional complexity ...................................................187 11.2 Behavioral analysis ...................................................................189 11.2.1 Identify functional scenarios .......................................190 11.2.2 Identify functional sequences ......................................190 11.2.3 Identify data flows .......................................................191 11.2.4 Identify control behaviors ............................................192 11.2.5 Identify data processing procedures ............................193 11.2.6 Identify resource prerequisites ....................................194 11.2.7 Identify failure conditions ...........................................194 11.2.8 Identify systems monitoring procedures .....................196 11.2.9 Identify data retention capacity requirements .............197 11.2.10 Identify data security procedures .................................197 11.2.11 Identify data persistence and retention functions ........197 11.3 Performance allocation .............................................................198 11.3.1 Allocate performance budgets .....................................199 11.3.2 Allocate resource budgets ............................................199 11.4 Architectural assessment ..........................................................200 11.4.1 Assess requirements fulfillment ..................................200 11.4.2 Assess software performance ......................................200 11.4.3 Assess architectural complexity ..................................200 11.4.4 Assess optimization opportunities ...............................200 11.5 Establish the functional architecture .........................................200 CHAPTER 12 Configuring the Physical Architecture .......................203 12.1 Structural design solution .........................................................205 12.1.1 Designating structural units .........................................207 12.1.2 Prepare structural unit specifications ...........................209 12.1.3 Establishing the software integration strategy .............209 12.1.4 Designating engineering assemblages .........................211 12.1.5 Preparing the software technical data package ............211 12.2 Structural design considerations ...............................................211 12.2.1 Structural design guidelines ........................................211 12.2.2 Use of modeling and simulation ..................................215 12.2.3 Behavioral analysis ......................................................216 12.2.4 Structural trade-off analysis .........................................217 12.2.5 Software product performance evaluations .................217 12.2.6 Software prototyping ...................................................222

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.