ebook img

Software Design: Creating Solutions for Ill-Structured Problems PDF

365 Pages·2020·10.644 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 Design: Creating Solutions for Ill-Structured Problems

Software Design Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series Richard LeBlanc Seattle University, Washington, USA This series covers all aspects of software engineering and software development. Books in the series include innovative reference books, research monographs, and textbooks at the undergraduate and graduate level. The series covers traditional subject matter, cutting-edge research, and current industry practice, such as agile software development methods and service-oriented architectures. We also welcome proposals for books that capture the latest results on the domains and conditions in which practices are most effective. Introduction to Combinatorial Testing D. Richard Kuhn, Raghu N. Kacker, Yu Lei Software Test Attacks to Break Mobile and Embedded Devices Jon Duncan Hagar Software Essentials Design and Construction Adair Dingle Software Metrics A Rigorous and Practical Approach, Third Edition Norman Fenton, James Bieman Computer Games and Software Engineering Kendra M. L. Cooper, Walt Scacchi Evidence-Based Software Engineering and Systematic Reviews Barbara Ann Kitchenham, David Budgen, Pearl Brereton Engineering Modeling Languages Turning Domain Knowledge into Tools Benoit Combemale, Robert France, Jean-Marc Jézéquel, Bernhard Rumpe, James Steel, Didier Vojtisek Speed, Data, and Ecosystems Excelling in a Software-Driven World Jan Bosch Introduction to Software Engineering, Second Edition Ronald J. Leach Software Design, Third Edition David Budgen For more information about this series, please visit: https://www.routledge.com/ Chapman--HallCRC-Innovations-in-Software-Engineering-and-Software-Development/ book-series/CHCRCINNSOFEN Software Design Creating Solutions for Ill- Structured Problems Third Edition David Budgen MATLAB® is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks does not warrant the accuracy of the text or exercises in this book. This book’s use or discussion of MATLAB® software or related products does not constitute endorsement or sponsorship by The MathWorks of a particular pedagogical approach or particular use of the MATLAB® software. Third edition published 2021 by CRC Press 6000 Broken Sound Parkway NW, Suite 300, Boca Raton, FL 33487-2742 and by CRC Press 2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN © 2021 Taylor & Francis Group, LLC First edition published by Addison-Wesley 1993 Second edition published by Addison-Wesley 2003 CRC Press is an imprint of Taylor & Francis Group, LLC Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint. Except as permitted under U.S. Copyright Law, 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, access www.copyright.com or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. For works that are not available on CCC please contact [email protected] 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 Names: Budgen, David, author. Title: Software design : creating solutions for ill-structured problems / David Budgen. Description: Third edition. | Boca Raton : CRC Press, 2021. | Series: Chapman & Hall/CRC innovations in software engineering | Includes bibliographical references and index. Identifiers: LCCN 2020037195 (print) | LCCN 2020037196 (ebook) | ISBN 9781138196612 (paperback) | ISBN 9780367676568 (hardcover) | ISBN 9781315300078 (ebook) Subjects: LCSH: Computer software--Development. Classification: LCC QA76.76.D47 B83 2021 (print) | LCC QA76.76.D47 (ebook) | DDC 005.1--dc23 LC record available at https://lccn.loc.gov/2020037195 LC ebook record available at https://lccn.loc.gov/2020037196 ISBN: 9780367676568 (hbk) ISBN: 9781138196612 (pbk) ISBN: 9781315300078 (ebk) Typeset in Computer Modern font by KnowledgeWorks Global Ltd. To the late Jim Tomayko. Historian, software engineer, teacher, sportsman, coach, aviator, author, fam- ily man, and an inspiring friend who had a huge heart for others, whatever their role in life. Contents Preface to the Third Edition xiii The City Car Club 1 I Addressing Ill-Structured Problems 5 1 What Is Designing About? 7 1.1 When is design needed? . . . . . . . . . . . . . . . . . . . . . 7 1.2 A bit about software . . . . . . . . . . . . . . . . . . . . . . 10 1.3 What exactly do we mean by ‘design’? . . . . . . . . . . . . 12 1.4 Three perspectives upon design thinking . . . . . . . . . . . 14 Key take-home points about what designing is about . . . . . . . 16 2 Doing Design 19 2.1 Designing as a creative process . . . . . . . . . . . . . . . . . 19 2.2 Ill-structured problems . . . . . . . . . . . . . . . . . . . . . 21 2.3 What does a designer do? . . . . . . . . . . . . . . . . . . . . 24 2.4 A simple example: the house move . . . . . . . . . . . . . . . 27 Key take-home points about designing . . . . . . . . . . . . . . . 28 3 Managing the Design Process 31 3.1 Cognitive capacity . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 The power of abstraction . . . . . . . . . . . . . . . . . . . . 32 3.3 Modelling and making design choices . . . . . . . . . . . . . 34 3.4 Recording design decisions . . . . . . . . . . . . . . . . . . . 35 3.5 Communicating ideas about a design model . . . . . . . . . . 37 Key take-home points about the design process . . . . . . . . . . . 40 4 Design Knowledge 43 4.1 What do expert software designers do? . . . . . . . . . . . . 43 4.2 Some software design principles . . . . . . . . . . . . . . . . 49 4.2.1 Fitness for purpose . . . . . . . . . . . . . . . . . . . . 49 4.2.2 Separation of concerns . . . . . . . . . . . . . . . . . . 50 vii viii Contents 4.2.3 Minimum coupling . . . . . . . . . . . . . . . . . . . . 51 4.2.4 Maximum cohesion . . . . . . . . . . . . . . . . . . . . 52 4.2.5 Information hiding . . . . . . . . . . . . . . . . . . . . 52 4.3 The evolution of design ideas . . . . . . . . . . . . . . . . . . 53 4.4 The nature of expert design knowledge . . . . . . . . . . . . 55 Key take-home points about design knowledge . . . . . . . . . . . 57 5 Empirical Knowledge about Software Design 59 5.1 Measuring software development processes . . . . . . . . . . 59 5.1.1 Measuring physical phenomena . . . . . . . . . . . . . 60 5.1.2 Measuring human reactions . . . . . . . . . . . . . . . 61 5.2 Empirical studies in software engineering . . . . . . . . . . . 63 5.2.1 The empirical spectrum . . . . . . . . . . . . . . . . . 64 5.2.2 The research protocol . . . . . . . . . . . . . . . . . . 65 5.2.3 Qualitative studies . . . . . . . . . . . . . . . . . . . . 65 5.2.4 Quantitative studies . . . . . . . . . . . . . . . . . . . 66 5.2.5 Case studies. . . . . . . . . . . . . . . . . . . . . . . . 67 5.3 Systematic reviews . . . . . . . . . . . . . . . . . . . . . . . . 69 5.4 Using empirical knowledge . . . . . . . . . . . . . . . . . . . 71 Key take-home points about empirical knowledge . . . . . . . . . 72 II Design as a Noun: How Software Is Structured 75 6 Software Architecture 77 6.1 What architecture provides for us . . . . . . . . . . . . . . . 77 6.2 Architectural style . . . . . . . . . . . . . . . . . . . . . . . . 79 6.2.1 Pipe-and-filter architectural style . . . . . . . . . . . . 82 6.2.2 Call-and-return architectural style . . . . . . . . . . . 83 6.2.3 Data-centred repository architectural style. . . . . . . 84 6.3 Architectural patterns . . . . . . . . . . . . . . . . . . . . . . 87 6.3.1 Model-view-controller (MVC) . . . . . . . . . . . . . . 88 6.3.2 Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.4 Empirical knowledge about architecture . . . . . . . . . . . . 91 Key take-home points about software architecture . . . . . . . . . 92 7 Modelling Software Properties 93 7.1 What is a design model? . . . . . . . . . . . . . . . . . . . . 93 7.2 Representations, perspectives and viewpoints . . . . . . . . . 96 7.2.1 The constructional viewpoint . . . . . . . . . . . . . . 100 7.2.2 The behavioural viewpoint . . . . . . . . . . . . . . . 101 7.2.3 The functional viewpoint . . . . . . . . . . . . . . . . 101 7.2.4 The data-modelling viewpoint . . . . . . . . . . . . . . 102 7.3 Design notations . . . . . . . . . . . . . . . . . . . . . . . . . 102 Contents ix 7.3.1 Textual description forms . . . . . . . . . . . . . . . . 103 7.3.2 Box and line description forms . . . . . . . . . . . . . 103 7.3.3 Mathematical notations . . . . . . . . . . . . . . . . . 105 7.4 Empirical knowledge related to viewpoint notations . . . . . 106 Key take-home points about design modelling . . . . . . . . . . . 107 8 Sketching Design Models 109 8.1 Why do designers sketch? . . . . . . . . . . . . . . . . . . . . 109 8.2 Sketching: developing informal models . . . . . . . . . . . . . 110 8.3 Characterising the design elements . . . . . . . . . . . . . . . 112 8.3.1 Software design as an ISP . . . . . . . . . . . . . . . . 112 8.3.2 Sketching initial models . . . . . . . . . . . . . . . . . 113 8.4 Empirical knowledge about the use of sketching . . . . . . . 116 Key take-home points about sketching . . . . . . . . . . . . . . . . 116 9 Modelling Software Processes 119 9.1 Characteristics of software processes . . . . . . . . . . . . . . 119 9.2 Modelling function: the data-flow diagram (DFD) . . . . . . 121 9.3 Modelling behaviour: the state transition diagram (STD) and the state transition table (STT) . . . . . . . . . . . . . . . . 126 9.4 Modelling data: the entity-relationship diagram (ERD) . . . 130 9.5 Modelling construction: the structure chart . . . . . . . . . . 134 9.6 Empirical knowledge about modelling processes . . . . . . . 136 Key take-home points about modelling processes . . . . . . . . . . 136 10 Modelling Objects and Classes 139 10.1 Characteristics of objects and classes . . . . . . . . . . . . . 140 10.1.1 The notion of an object . . . . . . . . . . . . . . . . . 141 10.1.2 Objects and classes . . . . . . . . . . . . . . . . . . . . 145 10.2 Relationships between objects . . . . . . . . . . . . . . . . . 150 10.3 Conceptual issues for object modelling . . . . . . . . . . . . . 153 10.4 Object modelling: the issue of notations . . . . . . . . . . . . 156 10.5 Modelling construction: the class diagram . . . . . . . . . . . 157 10.5.1 Distinguishing classes from objects . . . . . . . . . . . 158 10.5.2 Class relationships . . . . . . . . . . . . . . . . . . . . 159 10.6 Modelling behaviour: the statechart and the message sequence diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 10.6.1 The statechart . . . . . . . . . . . . . . . . . . . . . . 161 10.6.2 The message sequence diagram . . . . . . . . . . . . . 164 10.7 Modelling function: the activity diagram . . . . . . . . . . . 167 10.8 Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 10.9 Empirical knowledge about modelling objects and classes . . 172

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.