software engineering for students 4th edition

447 522 0
software  engineering  for  students  4th  edition

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

for Students Software Engineering for Students Douglas Bell A Programming Approach Software Engineering for Students A Programming Approach Software Engineering for Students 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. Features ● 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 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. “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.” Martin Bush, South Bank University Douglas Bell Douglas Bell Software Engineering www.pearson-books.com fourth edition fourth edition fourth edition an imprint of www.it-ebooks.info Software Engineering for Students BELL_A01.QXD 2/2/05 3:20 PM Page i www.it-ebooks.info 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 ii www.it-ebooks.info Software Engineering for Students A Programming Approach Fourth Edition DOUGLAS BELL BELL_A01.QXD 2/2/05 3:20 PM Page iii www.it-ebooks.info 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 trans- mitted 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, 1944- Software 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, 1944- Software engineering. II. Title. QA76.758.B45 2005 005.1 dc22 2004062346 10987654321 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 iv www.it-ebooks.info Contents Part A ● Preliminaries 1 1. Software – problems and prospects 3 2. The tasks of software development 22 3. The feasibility study 30 4. Requirements engineering 36 Part B ● Design 51 5. User interface design 53 6. Modularity 67 7. Structured programming 87 8. Functional decomposition 102 9. Data flow design 111 10. Data structure design 121 11. Object-oriented design 139 12. Design patterns 151 13. Refactoring 165 Part C ● Programming languages 173 14. The basics 175 15. Object-oriented programming 200 16. Programming in the large 221 17. Software robustness 237 18. Scripting 259 Preface xix v BELL_A01.QXD 2/2/05 3:20 PM Page v www.it-ebooks.info vi Contents 19. Testing 267 20. Groups 283 Part D ● Verification 265 Part E ● Process models 289 21. The waterfall model 291 22. The spiral model 297 23. Prototyping 303 24. Incremental development 314 25. Open source software development 322 26. Agile methods and extreme programming 330 27. The unified process 337 Part F ● Project management 345 28. Teams 347 29. Software metrics and quality assurance 357 30. Project management 370 Part G ● Review 383 31. Assessing methods 385 32. Conclusion 392 Appendices 405 A. Case studies 407 B. Glossary 411 C. UML summary 412 Bibliography 417 Index 419 BELL_A01.QXD 2/2/05 3:20 PM Page vi www.it-ebooks.info Detailed contents Preface xix 1 Software – problems and prospects 3 1.1 Introduction 3 1.2 Meeting users’ needs 4 1.3 The cost of software production 5 1.4 Meeting deadlines 10 1.5 Software performance 10 1.6 Portability 11 1.7 Maintenance 11 1.8 Reliability 13 1.9 Human–computer interaction 16 1.10 A software crisis? 16 1.11 A remedy – software engineering? 17 Summary 18 Exercises 19 Answers to self-test questions 20 Further reading 20 2 The tasks of software development 22 2.1 Introduction 22 2.2 The tasks 23 2.3 Process models 26 2.4 Methodology 27 2.5 Hacking 28 Summary 28 Exercises 28 Answer to self-test question 29 Part A ● Preliminaries 1 vii BELL_A01.QXD 2/2/05 3:20 PM Page vii www.it-ebooks.info 3 The feasibility study 30 3.1 Introduction 30 3.2 Technical feasibility 31 3.3 Cost-benefit analysis 31 3.4 Other criteria 32 3.5 Case study 32 3.6 Discussion 34 Summary 34 Exercises 34 Answers to self-test questions 35 Further reading 35 4 Requirements engineering 36 4.1 Introduction 36 4.2 The concept of a requirement 37 4.3 The qualities of a specification 38 4.4 How to elicit requirements 40 4.5 The requirements specification 41 4.6 The structure of a specification 42 4.7 Use cases 45 4.8 Use case diagrams 46 Summary 47 Exercises 47 Answers to self-test questions 48 Further reading 49 5 User interface design 53 5.1 Introduction 53 5.2 An inter-disciplinary field 54 5.3 Styles of human–computer interface 54 5.4 Different perspectives on user interface design 56 5.5 Design principles and guidelines 57 5.6 Interface design 60 5.7 Case study 62 5.8 Help systems 63 Summary 64 Exercises 64 Part B ● Design 51 viii Detailed contents BELL_A01.QXD 2/2/05 3:20 PM Page viii www.it-ebooks.info Detailed contents ix Answers to self-test questions 65 Further reading 65 6 Modularity 67 6.1 Introduction 67 6.2 Why modularity? 68 6.3 Component types 70 6.4 Component size and complexity 70 6.5 Global data is harmful 73 6.6 Information hiding 74 6.7 Coupling and cohesion 76 6.8 Coupling 77 6.9 Cohesion 79 6.10 Object-oriented programming 82 6.11 Discussion 84 Summary 84 Exercises 85 Answers to self-test questions 85 Further reading 86 7 Structured programming 87 7.1 Introduction 87 7.2 Arguments against goto 89 7.3 Arguments in favor of goto 92 7.4 Selecting control structures 94 7.5 What is structured programming? 96 Summary 98 Exercises 99 Answer to self-test question 100 Further reading 101 8 Functional decomposition 102 8.1 Introduction 102 8.2 Case study 103 8.3 Discussion 107 Summary 109 Exercises 109 Answer to self-test question 110 Further reading 110 BELL_A01.QXD 2/2/05 3:20 PM Page ix www.it-ebooks.info [...]... scientific software – carrying out calculations, modeling, prediction, for example, weather forecasting Software can either be off-the-shelf (e.g Microsoft Word) or tailor-made for a particular application (e.g software for the Apollo moon shots) The latter is sometimes called bespoke software All these types of software – except perhaps information systems – fall within the remit of software engineering Information... Page 3 CHAPTER 1 Software – problems and prospects This chapter: I reviews the goals of software engineering I describes the difficulties of constructing large-scale software I analyses the problems that software engineers face 1.1 G Introduction Software Engineering is about methods, tools and techniques used for developing software This particular chapter is concerned with the reasons for having a field... the software to design a new automobile In categorizing software, we can distinguish two major types: I system software is the software that acts as tools to help construct or support applications software Examples are operating systems, databases, networking software, compilers I applications software is software that helps perform some directly useful or enjoyable task Examples are games, the software. .. Page xix Preface What is software engineering? Software engineering is about the creation of large pieces of software that consist of thousands of lines of code and involve many person months of human effort One of the attractions of software engineering is that there is no one single best method for doing it, but instead a whole variety of different approaches Consequently the software engineer needs... is for people who have experienced the pleasures of writing programs and who want to see how things change in the scale up to large programs and software systems This book provides an introduction to software engineering for students in undergraduate programs in Computer Science, Computer Studies, Information Technology, xix www.it-ebooks.info BELL_A01.QXD 2/2/05 3:20 PM Page xx xx Preface Software Engineering. .. roll” factor If you buy a stereo for $200, you don’t expect to pay $2,000 for a CD Similarly, if you buy a PC for $1,000, you don’t expect to pay $10,000 for the software, which is what it would cost if you hired a programmer to write it for you So, of course, software for a PC either comes free or is priced at about $50 or so It can be hard to comprehend that something for which you paid $50 has cost... enjoyable task Examples are games, the software for automatic teller machines (ATMs), the control software in an airplane, e-mail software, word processors, spreadsheets Within the category of applications software, it can be useful to identify the following categories of software: I games I information systems – systems that store and access large amounts of data, for example, an airline seat reservation... 4 Chapter 1 I Software – problems and prospects 4 I real-time systems – in which the computer must respond quickly, for example, the control software for a power station I embedded systems – in which the computer plays a smallish role within a larger system, for example, the software in a telephone exchange or a mobile phone Embedded systems are usually also real-time systems I office software – word... study called software engineering, and with the problems that are encountered in developing software This book as a whole explains a variety of techniques that attempt to solve the problems and meet the goals of software engineering Software surrounds us everywhere in the industrialized nations – in domestic appliances, communications systems, transportation systems and in businesses Software comes... different techniques are used for their development Often the nature of the data (information) is used to dictate the structure of the software, so that analysis of the data is a prime step, leading to the design of the database for the application This approach to software development is outside the scope of this book Constructing software is a challenging task, essentially because software is complex The . for Students Software Engineering for Students Douglas Bell A Programming Approach Software Engineering for Students A Programming Approach Software Engineering for Students A Programming. University Douglas Bell Douglas Bell Software Engineering www.pearson-books.com fourth edition fourth edition fourth edition an imprint of www.it-ebooks.info Software Engineering for Students BELL_A01.QXD. to software engineering for students in under- graduate programs in Computer Science, Computer Studies, Information Technology, Who is this book for? Challenge and creativity What is software engineering? xix BELL_A01.QXD

Ngày đăng: 05/05/2014, 17:06

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan