Software Engineering for Students

pdf
Số trang Software Engineering for Students 447 Cỡ tệp Software Engineering for Students 13 MB Lượt tải Software Engineering for Students 0 Lượt đọc Software Engineering for Students 45
Đánh giá Software Engineering for Students
4.2 ( 15 lượt)
Nhấn vào bên dưới để tải tài liệu
Đang xem trước 10 trên tổng 447 trang, để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

Douglas Bell A Programming Approach fourth edition for Students Engineering for Students Software Software “Bell covers the main areas of software engineering with accuracy and authority, and without getting bogged down in superfluous detail. My students actually like this book; it's very readable.” Engineering Software Engineering Martin Bush, South Bank University ● Pragmatic, non-mathematical approach ● Self-test questions within each chapter help the reader to fully understand the concepts ● Numerous exercises are provided at the end of each chapter ● Consistent use of the UML as a design notation ● Case studies used throughout ● An accompanying website with even more teaching and learning resources fourth edition Features A Programming Approach This fully revised version of Douglas Bell’s Software Engineering: A Programming Approach continues to use the successful formula of the previous editions. The author’s approach is to present the main principles, techniques and tools used in software engineering, one by one, chapter by chapter. He provides the reader with the knowledge to select the appropriate techniques for the project in hand. He builds on the reader’s experience of coding small-scale applications, and examines everything they will need to begin programming large-scale software systems. This book is a unique introduction to software engineering for all students of computer science and its related disciplines. It is also ideal for practitioners wishing to remain current with new developments in the area. Douglas Bell is a lecturer at Sheffield Hallam University in the UK. He has authored and co-authored a number of texts, including the best-selling Java for Students. Douglas Bell an imprint of www.pearson-books.com Douglas Bell Software Engineering for forStudents Students A Programming Approach fourth edition BELL_A01.QXD 2/2/05 3:20 PM Page i Software Engineering for Students BELL_A01.QXD 2/2/05 3:20 PM Page ii We work with leading authors to develop the strongest educational materials in computing, bringing cutting-edge thinking and best learning practice to a global market. Under a range of well-known imprints, including Addison-Wesley, we craft high quality print and electronic publications which help readers to understand and apply their content, whether studying or at work. To find out more about the complete range of our publishing, please visit us on the World Wide Web at: www.pearsoned.co.uk BELL_A01.QXD 2/2/05 3:20 PM Page iii Software Engineering for Students A Programming Approach Fourth Edition DOUGLAS BELL BELL_A01.QXD 2/2/05 3:20 PM 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 under the Prentice Hall imprint 1987 Second edition 1992 Third edition 2000 Fourth edition 2005 © Prentice Hall International 1987, 1992 © Pearson Education Limited 2000, 2005 The right of Douglas Bell to be identified as 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 321 26127 5 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 Bell, Doug, 1944Software engineering for student/Douglas Bell. -- 4th ed. p. cm. Rev. ed. of: Software engineering. 2000. ISBN 0-321-26127-5 1. Software engineering. 2. Computer programming. I. Bell, Doug, 1944Software engineering. II. Title. QA76.758.B45 2005 005.1--dc22 2004062346 10 9 8 7 6 5 4 3 2 1 09 08 07 06 05 Typeset in 9.75/12pt Galliard by 71 Printed in Great Britain by Henry Ling Ltd, at the Dorset Press, Dorchester, Dorset The publisher’s policy is to use paper manufactured from sustainable forests. BELL_A01.QXD 2/2/05 3:20 PM Page v Contents Preface xix Part A ● 1. 2. 3. 4. Part B ● 5. 6. 7. 8. 9. 10. 11. 12. 13. Part C ● 14. 15. 16. 17. 18. Preliminaries Software – problems and prospects The tasks of software development The feasibility study Requirements engineering 1 3 22 30 36 Design 51 User interface design Modularity Structured programming Functional decomposition Data flow design Data structure design Object-oriented design Design patterns Refactoring 53 67 87 102 111 121 139 151 165 Programming languages The basics Object-oriented programming Programming in the large Software robustness Scripting 173 175 200 221 237 259 v BELL_A01.QXD 2/2/05 3:20 PM Page vi vi Contents Part D ● Verification 19. Testing 20. Groups Part E ● 21. 22. 23. 24. 25. 26. 27. Part F ● Process models The waterfall model The spiral model Prototyping Incremental development Open source software development Agile methods and extreme programming The unified process Project management 28. Teams 29. Software metrics and quality assurance 30. Project management Part G ● Review 31. Assessing methods 32. Conclusion Appendices A. Case studies B. Glossary C. UML summary Bibliography Index 265 267 283 289 291 297 303 314 322 330 337 345 347 357 370 383 385 392 405 407 411 412 417 419 BELL_A01.QXD 2/2/05 3:20 PM Page vii Detailed contents Preface xix Part A 1 ● Software – problems and prospects 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 2 Preliminaries Introduction Meeting users’ needs The cost of software production Meeting deadlines Software performance Portability Maintenance Reliability Human–computer interaction A software crisis? A remedy – software engineering? Summary Exercises Answers to self-test questions Further reading 1 3 3 4 5 10 10 11 11 13 16 16 17 18 19 20 20 The tasks of software development 22 2.1 2.2 2.3 2.4 2.5 22 23 26 27 28 28 28 29 Introduction The tasks Process models Methodology Hacking Summary Exercises Answer to self-test question vii BELL_A01.QXD 2/2/05 3:20 PM Page viii viii Detailed contents 3 4 The feasibility study 30 3.1 3.2 3.3 3.4 3.5 3.6 30 31 31 32 32 34 34 34 35 35 Requirements engineering 36 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 36 37 38 40 41 42 45 46 47 47 48 49 Part B 5 Introduction Technical feasibility Cost-benefit analysis Other criteria Case study Discussion Summary Exercises Answers to self-test questions Further reading ● Introduction The concept of a requirement The qualities of a specification How to elicit requirements The requirements specification The structure of a specification Use cases Use case diagrams Summary Exercises Answers to self-test questions Further reading Design 51 User interface design 53 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 53 54 54 56 57 60 62 63 64 64 Introduction An inter-disciplinary field Styles of human–computer interface Different perspectives on user interface design Design principles and guidelines Interface design Case study Help systems Summary Exercises BELL_A01.QXD 2/2/05 3:20 PM Page ix Detailed contents Answers to self-test questions Further reading 6 7 65 65 Modularity 67 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 67 68 70 70 73 74 76 77 79 82 84 84 85 85 86 Introduction Why modularity? Component types Component size and complexity Global data is harmful Information hiding Coupling and cohesion Coupling Cohesion Object-oriented programming Discussion Summary Exercises Answers to self-test questions Further reading Structured programming 7.1 7.2 7.3 7.4 7.5 8 ix Introduction Arguments against goto Arguments in favor of goto Selecting control structures What is structured programming? Summary Exercises Answer to self-test question Further reading 87 87 89 92 94 96 98 99 100 101 Functional decomposition 102 8.1 8.2 8.3 102 103 107 109 109 110 110 Introduction Case study Discussion Summary Exercises Answer to self-test question Further reading
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.