Software Design 2E

Software Design 2E

ppc_234x172budgen3 9/18/07 12:24 PM Page 1 Software Engineering second second edition edition Software design is a multi-disciplinary Since the first edition, much progress activity that develops tools through effective has been made in the area of software DESIGN SOFTWARE David Budgen communication of ideas and the use of design, with the major changes to the engineering practices. This text provides an new edition being: overview and perspective of software design within the context of software • A much stronger recognition of the development and also of more general role played by the concept of thinking about design issues. It examines architectural style in helping to the nature of design activities, as well as structure ideas about design. This is their applications within software used to provide an underpinning development, providing the reader with: framework throughout the second edition. • a non-proprietary view of design issues • The inclusion of new forms of • an overview of design representation software and of new approaches to forms design, ranging from agile methods • a concise review of design practices and design patterns through to the based on the more widely used component concept and the use of the design methods Unified Modeling Language (UML). • a strong architectural framework • An improved formalism to support the analysis of the processes A particular feature is the strong embodied in design methods. evidence-based approach used in the analysis and assessment of these issues. SOFTWARE DESIGN Software Design provides a balanced view of the many and varied software design David Budgen strategies most widely used by practitioners. By being aware of the strengths and limitations of each one, a student is better able to judge which to adopt when working in the field. The book is also valuable for software engineers and project managers who need an objective guide to the state of the art in this area. David Budgen is Professor of Software Engineering at Keele University, UK. A long- term student of software design, he has worked closely with the Software Engineering Institute in Pittsburgh to develop tutorial modules, as well as publishing many research papers on software design topics. Budgen SOFTWARE DESIGN SOFTWARE second edition www.pearsoneduc.com SDA01 9/18/07 10:32 AM Page i Software Design SDA01 9/18/07 10:32 AM Page ii INTERNATIONAL COMPUTER SCIENCE SERIES Consulting Editor A D McGettrick University of Strathclyde SELECTED TITLES IN THE SERIES Operating Systems J Bacon and T Harris Programming Language Essentials H E Bal and D Grune Programming in Ada 95 (2nd edn) J G P Barnes Java Gently (3rd edn) J Bishop Concurrent Programming A Burns and G Davies Real-Time Systems and Programming Languages: Ada 95, Real-Time Java and Real- Time POSIX (3rd edn) A Burns and A Wellings Comparative Programming Languages (3rd edn) L B Wilson and R G Clark, updated by R G Clark Database Systems (3rd edn) T M Connolly and C Begg Distributed Systems: Concepts and Design (3rd edn) G Coulouris, J Dollimore and T Kindberg Principles of Object-Oriented Software Development (2nd edn) A Eliëns Fortran 90 Programming T M R Ellis, I R Philips and T M Lahey Program Verification N Francez Introduction to Programming using SML M Hansen and H Rischel Functional C P Hartel and H Muller Algorithms and Data Structures: Design, Correctness, Analysis (2nd edn) J Kingston Introductory Logic and Sets for Computer Scientists N Nissanke Human–Computer Interaction J Preece et al. Algorithms: A Functional Programming Approach F Rabhi and G Lapalme Ada 95 From the Beginning (3rd edn) J Skansholm Java From the Beginning J Skansholm Software Engineering (6th edn) I Sommerville Object-Oriented Programming in Eiffel (2nd edn) P Thomas and R Weedon Miranda: The Craft of Functional Programming S Thompson Haskell: The Craft of Functional Programming (2nd edn) S Thompson Discrete Mathematics for Computer Scientists (2nd edn) J K Truss Compiler Design R Wilhelm and D Maurer Discover Delphi: Programming Principles Explained S Williams and S Walmsley Software Engineering with B J B Wordsworth SDA01 9/18/07 10:32 AM Page iii Software Design David Budgen SDA01 9/18/07 10:32 AM Page iv Pearson Education Limited Edinburgh Gate Harlow Essex CM20 2JE England and Associated Companies throughout the world Visit us on the World Wide Web at: www.pearsoned.co.uk First published 1993 Second edition 2003 © Addison-Wesley Publishers Limited 1993 © Pearson Education Limited 2003 The right of David Budgen to be identified as the author of this work has been asserted by him in accordance with the Copyright, Designs and Patents Act 1988. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without either the prior written permission of the publisher or a licence permitting restricted copying in the United Kingdom issued by the Copyright Licensing Agency Ltd, 90 Tottenham Court Road, London W1T 4LP. The programs in this book have been included for their instructional value. They have been tested with care but are not guaranteed for any particular purpose. The publisher does not offer any warranties or representations nor does it accept any liabilities with respect to the programs. All trademarks used herein are the property of their respective owners. The use of any trademark in this text does not vest in the author or publisher any trademark ownership rights in such trademarks, nor does the use of such trademarks imply any affiliation with or endorsement of this book by such owners. ISBN 0 201 72219 4 British Library Cataloguing-in-Publication Data A catalogue record for this book is available from the British Library Library of Congress Cataloging-in-Publication Data Budgen, D. (David) Software design / David Budgen.—2nd ed. p. cm. Includes bibliographical references and index. ISBN 0–201–72219–4 (alk. paper) 1. Computer software—Development. I. Title. QA76.76.D47B83 2003 005.1′2—dc21 2003041859 10987654321 08 07 06 05 04 03 Typeset in 10/12pt Sabon by 35 Printed and bound in Great Britain by Biddles Ltd., Guildford and King’s Lynn The publisher’s policy is to use paper manufactured from sustainable forests. SDA01 9/18/07 10:32 AM Page v v Contents Preface to the Second Edition ix Preface to the First Edition xii Publisher’s Acknowledgements xvi Part 1 The Role of Software Design 1 Chapter 1 The Nature of the Design Process 3 1.1 What is design? 4 1.2 The role of the design activity 14 1.3 Design as a problem-solving process 18 1.4 Design as a ‘wicked’ problem 19 Chapter 2 The Software Design Process 25 2.1 What is software? 26 2.2 Building models 27 2.3 Transferring design knowledge 32 2.4 Constraints upon the design process and product 37 2.5 Recording design decisions 38 2.6 Designing with others 40 Chapter 3 Design in the Software Development Process 45 3.1 A context for design 46 3.2 Linear development processes 50 3.3 Incremental development processes 51 3.4 Economic factors 55 3.5 The longer term 57 SDA01 9/18/07 10:32 AM Page vi vi Chapter 4 Design Qualities 63 4.1 The quality concept 64 Contents 4.2 Assessing design quality 65 4.3 Quality attributes of the design product 75 4.4 Assessing the design process 82 Part 2 Transferring Design Knowledge 87 Chapter 5 Describing a Design Solution 89 5.1 Representing abstract ideas 90 5.2 Design viewpoints for software 94 5.3 Forms of notation 98 Chapter 6 Transferring Design Knowledge 105 6.1 The need to share knowledge 106 6.2 The architecture concept 109 6.3 Design methods 118 6.4 Design patterns 120 6.5 A unified interpretation? 122 Chapter 7 Some Design Representations 127 7.1 A problem of selection 128 7.2 Black box notations 129 7.3 White box notations 158 7.4 Developing a diagram 168 Chapter 8 The Rationale for Method 175 8.1 What is a software design method? 176 8.2 The support that design methods provide 180 8.3 Why methods don’t work miracles 185 8.4 Problem domains and their influence 187 Chapter 9 Design Processes and Design Strategies 193 9.1 The role of strategy in methods 194 9.2 Describing the design process – the D-Matrix 200 9.3 Design by top-down decomposition 205 9.4 Design by composition 207 9.5 Organizational influences upon design 209 SDA01 9/18/07 10:32 AM Page vii Chapter 10 Design Patterns 213 vii 10.1 Design by template and design reuse 214 Contents 10.2 The design pattern 216 10.3 Designing with patterns 225 10.4 Patterns in the wider design context 227 Part 3 Design Practices 231 Chapter 11 Stepwise Refinement 233 11.1 The historical role of stepwise refinement 234 11.2 Architectural consequences 235 11.3 Strengths and weaknesses of the stepwise strategy 237 Chapter 12 Incremental Design 241 12.1 Black box to white box in stages 242 12.2 Prototyping 245 12.3 An example – DSDM 247 Chapter 13 Structured Systems Analysis and Structured Design 257 13.1 Origins, development and philosophy 258 13.2 Representation forms for SSA/SD 259 13.3 The SSA/SD process 263 13.4 The role of heuristics in SSA/SD 273 13.5 Extended forms of SSA/SD 275 13.6 SSA/SD: an outline example 275 Chapter 14 Jackson Structured Programming (JSP) 289 14.1 Some background to JSP 290 14.2 JSP representation forms 291 14.3 The JSP process 293 14.4 Some JSP heuristics 301 Chapter 15 Jackson System Development (JSD) 315 15.1 The JSD model 316 15.2 JSD representation forms 318 15.3 The JSD process 322 15.4 JSD heuristics 336 SDA01 9/18/07 10:32 AM Page viii viii Chapter 16 Designing

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    489 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us