ebook img

Software Engineering and Testing: An Introduction (Computer Science) PDF

529 Pages·2009·11.92 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 and Testing: An Introduction (Computer Science)

SOF TWARE ENGINEERING & TESTING ii TABLE OF CONTENTS LICENSE, DISCLAIMER OF LIABILITY, AND LIMITED WARRANTY The CD-ROM that accompanies this book may only be used on a single PC. This license does not permit its use on the Internet or on a network (of any kind). By purchasing or using this book/ CD-ROM package (the “Work”), you agree that this license grants permission to use the products contained herein, but does not give you the right of ownership to any of the textual content in the book or ownership to any of the information or products contained on the CD-ROM. Use of third party software contained herein is limited to and subject to licensing terms for the respective products, and permission must be obtained from the publisher or the owner of the software in order to reproduce or network any portion of the textual material or software (in any media) that is contained in the Work. Jones and Bartlett Publishers, LLC (“the Publisher”) and anyone involved in the creation, writing, or production of the accompanying algorithms, code, or computer programs (“the software”) or any of the third party software contained on the CD-ROM or any of the textual material in the book, cannot and do not warrant the performance or results that might be obtained by using the software or contents of the book. The authors, developers, and the publisher have used their best efforts to insure the accuracy and functionality of the textual material and programs contained in this package; we, however, make no warranty of any kind, express or implied, regarding the performance of these contents or programs. The Work is sold “as is” without warranty (except for defective materials used in manufacturing the disc or due to faulty workmanship). The authors, developers, and the publisher of any third party software, and anyone involved in the composition, production, and manufacturing of this work will not be liable for damages of any kind arising out of the use of (or the inability to use) the algorithms, source code, computer programs, or textual material contained in this publication. This includes, but is not limited to, loss of revenue or profit, or other incidental, physical, or consequential damages arising out of the use of this Work. The sole remedy in the event of a claim of any kind is expressly limited to replacement of the book and/or the CD-ROM, and only at the discretion of the Publisher. The use of “implied warranty” and certain “exclusions” vary from state to state, and might not apply to the purchaser of this product. TABLE OF CONTENTS iii SOF TWARE ENGINEERING & TESTING An Introduction B. B. AGARWAL S. P. TAYAL M. GUPTA iv TABLE OF CONTENTS World Headquarters Jones and Bartlett Publishers Jones and Bartlett Publishers Jones and Bartlett Publishers 40 Tall Pine Drive Canada International Sudbury, MA 01776 6339 Ormindale Way Barb House, Barb Mews 978-443-5000 Mississauga, Ontario L5V 1J2 London W6 7PA [email protected] Canada United Kingdom www.jbpub.com Jones and Bartlett’s books and products are available through most bookstores and online booksellers. To contact Jones and Bartlett Publishers directly, call 800-832-0034, fax 978-443-8000, or visit our website www.jbpub.com. Substantial discounts on bulk quantities of Jones and Bartlett’s publications are available to corporations, professional associations, and other qualified organizations. For details and specific discount information, contact the special sales department at Jones and Bartlett via the above contact information or send an email to [email protected]. Copyright © 2010 by Jones and Bartlett Publishers, LLC Original Copyright © 2008 by Laxmi Publications Pvt. Ltd. All rights reserved. No part of the material protected by this copyright may be reproduced or utilized in any form, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without written permission from the copyright owner. The publisher recognizes and respects all marks used by companies, manufacturers, and developers as a means to distinguish their products. All brand names and product names mentioned in this book are trademarked or service marks of their respective companies. Any omission or misuse (of any kind) of service marks or trademarks, etc., is not an attempt to infringe on the property of others. ISBN: 978-1-934015-55-1 Cover Design: Tyler Creative Library of Congress Cataloging-in-Publication Data Agarwal, B. B. Software engineering and testing / B.B. Agarwal, S.P. Tayal, M. Gupta. p. cm. ISBN 978-1-934015-55-1 (hardcover) ISBN 978-0-7637-8302-0 (e) 1. Software engineering. 2. Computer software--Testing. I. Tayal, S.P. II. Gupta, M. (Mahesh) 1975- III. Title. QA76.758.A3945 2010 005.1--dc22 2008055318 6048 0569 Printed in the United States of America 13 12 11 10 09 10 9 8 7 6 5 4 3 2 1 TABLE OF CONTENTS v T C ABLE OF ONTENTS PART I: SOFTWARE ENGINEERING AND TESTING Chapter 1. Introduction to Software Engineering 3 1.1 Introduction to Software 3 1.2 Types of Software 5 1.3 Classes of Software 8 1.4 Introduction to Software Engineering 9 1.5 Software Components 11 1.6 Software Characteristics 12 1.7 Software Crisis 13 1.8 Software Myths 15 1.9 Software Applications 15 1.10 Software-Engineering Processes 18 1.11 Evolution of Software 20 1.12 Comparison of Software Engineering and Related Fields 22 1.13 Some Terminologies 25 1.14 Programs Versus Software Products 26 Chapter 2. Software-Development Life-Cycle Models 29 2.1 Software-Development Life-Cycle 29 2.2 Waterfall Model 36 2.3 Prototyping Model 41 2.4 Spiral Model 44 2.5 Evolutionary Development Model 46 2.6 Iterative-Enhancement Model 47 2.7 RAD Model 49 2.8 Comparison of Various Process Models 50 v vi TABLE OF CONTENTS Chapter 3. Introduction to Software Requirements Specification 53 3.1 Requirement Engineering 53 3.2 Process of Requirements Engineering 55 3.3 Information Modeling 61 3.4 Data-Flow Diagrams 62 3.5 Decision Tables 67 3.6 SRS Document 70 3.7 IEEE Standards for SRS Documents 73 3.8 SRS Validation 75 3.9 Components of SRS 75 3.10 Characteristics of SRS 78 3.11 Entity-Relationship Diagram 79 Chapter 4. Software Reliability and Quality Assurance 85 4.1 Verification and Validation 85 4.2 Software Quality Assurance 87 4.3 Software Quality 89 4.4 Capability Maturity Model (SEI-CMM) 96 4.5 International Standard Organization (ISO) 99 4.6 Comparison of ISO-9000 Certification and the SEI-CMM 106 4.7 Reliability Issues 107 4.8 Reliability Metrics 110 4.9 Reliability Growth Modeling 112 4.10 Reliability Assessment 115 Chapter 5. System Design 117 5.1 System/Software Design 117 5.2 Architectural Design 123 5.3 Low-Level Design 125 5.4 Coupling and Cohesion 136 5.5 Functional-Oriented Versus The Object-Oriented Approach 143 5.6 Design Specifications 144 5.7 Verification for Design 145 5.8 Monitoring and Control for Design 146 TABLE OF CONTENTS vii Chapter 6. Software Measurement and Metrics 149 6.1 Software Metrics 149 6.2 Halstead’s Software Science 151 6.3 Function-Point Based Measures 154 6.4 Cyclomatic Complexity 157 Chapter 7. Software Testing 161 7.1 Introduction to Testing 161 7.2 Testing Principles 162 7.3 Testing Objectives 163 7.4 Test Oracles 164 7.5 Levels of Testing 165 7.6 White-Box Testing/Structural Testing 173 7.7 Functional/Black-Box Testing 175 7.8 Test Plan 178 7.9 Test-Case Design 179 Chapter 8. Software-Testing Strategies 181 8.1 Static-Testing Strategies 181 8.2 Debugging 186 8.3 Error, Fault, and Failure 189 Chapter 9. Software Maintenance and Project Management 193 9.1 Software as an Evolution Entity 193 9.2 Software-Configuration Management Activities 193 9.3 Change-Control Process 197 9.4 Software-Version Control 199 9.5 Software-Configuration Management 200 9.6 Need for Maintenance 202 9.7 Categories of Maintenance 203 9.8 Maintenance Costs 204 9.9 Software-Project Estimation 207 9.10 Constructive Cost Model (COCOMO) 211 9.11 Software-Risk Analysis and Management 215 viii TABLE OF CONTENTS Chapter 10. Computer-Aided Software Engineering 223 10.1 Case and its Scope 223 10.2 Levels of Case 224 10.3 Architecture of Case Environment 224 10.4 Building Blocks for Case 226 10.5 Case Support in Software Life-Cycle 227 10.6 Objectives of Case 228 10.7 Case Repository 229 10.8 Characteristics of Case Tools 231 10.9 Case Classification 231 10.10 Categories of Case Tools 233 10.11 Advantages of Case Tools 234 10.12 Disadvantages of Case Tools 235 10.13 Reverse Software Engineering 235 10.14 Software Re-Engineering 240 Chapter 11. Coding 247 11.1 Information Hiding 247 11.2 Programming Style 248 11.3 Internal Documentation 250 11.4 Monitoring and Control for Coding 251 11.5 Structured Programming 252 11.6 Fourth-Generation Techniques 255 PART II: SOFTWARE DEVELOPMENT AND APPLICATIONS Chapter 12. Introduction to Software Development 261 12.1 Program Phase 262 12.2 How to Write a Good Program 262 12.3 Programming Tools 263 Chapter 13. Visual Basic 6.0 265 13.1 Hardware and Software Requirements for Visual Basic 266 13.2 Application Types 266 13.3 Compilation in Visual Basic 268 TABLE OF CONTENTS ix 13.4 Visual Basic Terminology 268 13.5 Integrated Development Environment (IDE) 269 Chapter 14. Controls in Visual Basic 273 14.1 Tool-Box Controls 276 Chapter 15. Variables and Operators in Visual Basic 297 15.1 Variable Naming Conventions 297 15.2 Variable Declaration 297 15.3 Scope of Variables 298 15.4 Logical Operators 298 15.5 Logical Operators 299 15.6 If-Else Statement 301 15.7 Do While …. Statement 301 15.8 For Loop 302 15.9 With–End With Statement 302 Chapter 16. Functions in Visual Basic 303 Chapter 17. Introduction to Databases 315 17.1 Tables 316 17.2 Structure of a Database 317 17.3 Keys 317 17.4 Data Integrity 318 Chapter 18. MS Access 2000 319 18.1 Creating a Database in MS Access 2000 319 18.2 Data Types 324 18.3 Field Properties 324 18.4 Saving the Table 327 18.5 Modifying the Table 328 18.6 Importing the Table 328 Chapter 19. Oracle 329 19.1 Starting with Oracle 8 329 19.2 How to Create a New User 331

Description:
Designed for an introductory software engineering course or as a reference for programmers, this up to date text uses both theory and applications to design reliable, error-free software. Starting with an introduction to the various types of software, the book moves through life-cycle models, softwa
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.