Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Fundamentals of Software Engineering
Nội dung xem thử
Mô tả chi tiết
RAJIB MALL
Professor
Department of Computer Science and Engineering
Indian Institute of Technology Kharagpur
Delhi-110 092
2014
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
FUNDAMENTALS OF SOFTWARE ENGINEERING, Fourth Edition
Rajib Mall
© 2014 by PHI Learning Private Limited, Delhi. All rights reserved. No part of this book may be reproduced in
any form, by mimeograph or any other means, without permission in writing from the publisher.
ISBN-978-81-203-4898-1
The export rights of this book are vested solely with the publisher.
Thirty-first Printing (Fourth Edition)........................ . ......................... . ........................April, 2014
Published by Asoke K. Ghosh, PHI Learning Private Limited, Rimjhim House, 111, Patparganj Industrial
Estate, Delhi-110092 and Printed by Rajkamal Electric Press, Plot No. 2, Phase IV, HSIDC, Kundli-131028,
Sonepat, Haryana.
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
To
Bapa, Maa,
and
my beloved wife Prabina
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
CONTENTS
List of Figures....xv
Preface....xix
Preface to the First Edition....xxi
1.....INTRODUCTION ....1–32
1.1....Evolution—From an Art Form to an Engineering Discipline....3
1.1.1....Evolution of an Art into an Engineering Discipline....3
1.1.2....Evolution Pattern for Engineering Disciplines....4
1.1.3....A Solution to the Software Crisis....5
1.2....Software Development Projects....6
1.2.1....Types of Software Development Projects....7
1.2.2....Software Projects Being Undertaken by Indian Companies....8
1.3....Exploratory Style of Software Development....9
1.3.1....Perceived Problem Complexity: An Interpretation Based on
Human Cognition Mechanism....11
1.3.2....Principles Deployed by Software Engineering to Overcome
Human Cognitive Limitations....14
1.4....Emergence of Software Engineering....17
1.4.1....Early Computer Programming....17
1.4.2....High-level Language Programming....18
1.4.3....Control Flow-based Design....18
1.4.4....Data Structure-oriented Design....22
1.4.5....Data Flow-oriented Design....22
1.4.6....Object-oriented Design....23
1.4.7....What Next?....24
1.4.8....Other Developments....25
1.5....Notable Changes in Software Development Practices....25
1.6....Computer Systems Engineering....27
Summary....28
Exercises....29
2.....Software Life Cycle Models....33–84
2.1....A Few Basic Concepts....34
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
2.2....Waterfall Model and its Extensions....38
2.2.1....Classical Waterfall Model....38
2.2.2....Iterative Waterfall Model....46
2.2.3....V-Model....50
2.2.4....Prototyping Model....52
2.2.5....Incremental Development Model....55
2.2.6....Evolutionary Model....57
2.3....Rapid Application Development (RAD)....59
2.3.1....Working of RAD....60
2.3.2....Applicability of RAD Model....60
2.3.3....Comparison of RAD with Other Models....62
2.4....Agile Development Models....62
2.4.1....Essential Idea behind Agile Models....64
2.4.2....Agile versus Other Models....65
2.4.3....Extreme Programming Model....66
2.4.4....Scrum Model....69
2.5....Spiral Model....69
2.5.1....Phases of the Spiral Model....71
2.6....A Comparison of Different Life Cycle Models....72
2.6.1....Selecting an Appropriate Life cycle Model for a Project....73
Summary....74
Exercises....75
3.....SOFTWARE PROJECT MANAGEMENT....85–153
3.1....Software Project Management Complexities....86
3.2....Responsibilities of a Software Project Manager....87
3.2.1....Job Responsibilities for Managing Software Projects....87
3.2.2....Skills Necessary for Managing Software Projects....88
3.3....Project Planning....89
3.3.1....Sliding Window Planning....90
3.3.2....The SPMP Document of Project Planning....90
3.4....Metrics for Project Size Estimation....92
3.4.1....Lines of Code (LOC)....92
3.4.2....Function Point (FP) Metric....94
3.5....Project Estimation Techniques....99
3.5.1.... Empirical Estimation Techniques....99
3.5.2.... Heuristic Techniques....99
3.5.3.... Analytical Estimation Techniques....100
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
3.6....Empirical Estimation Techniques....100
3.6.1....Expert Judgement....100
3.6.2....Delphi Cost Estimation....101
3.7....COCOMO—A Heuristic Estimation Technique....101
3.7.1....Basic COCOMO Model....102
3.7.2....Intermediate COCOMO....107
3.7.3....Complete COCOMO....108
3.7.4....COCOMO 2....109
3.8....Halstead’s Software Science—An Analytical Technique....112
3.8.1....Length and Vocabulary....113
3.8.2....Program Volume....113
3.8.3....Potential Minimum Volume....113
3.8.4....Effort and Time....114
3.8.5....Length Estimation....114
3.9....Staffing Level Estimation....116
3.9.1....Norden’s Work....116
3.9.2....Putnam’s Work....117
3.9.3....Jensen’s Model....119
3.10....Scheduling....119
3.10.1....Work Breakdown Structure....121
3.10.2....Activity Networks....122
3.10.3....Critical Path Method (CPM)....124
3.10.4....PERT Charts....126
3.10.5....Gantt Charts....128
3.11....Organisation and Team Structures....129
3.11.1....Organisation Structure....129
3.11.2....Team Structure....132
3.12....Staffing....135
3.13....Risk Management....136
3.13.1....Risk Identification....137
3.13.2....Risk Assessment....138
3.13.3....Risk Mitigation....138
3.14....Software Configuration Management....140
3.14.1....Necessity of Software Configuration Management....140
3.14.2....Configuration Management Activities....142
3.15....Miscellaneous Plans....144
Summary ....144
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
Exercises....145
4.....REQUIREMENTS ANALYSIS AND SPECIFICATION....154–200
4.1....Requirements Gathering and Analysis....155
4.1.1....Requirements Gathering....156
4.1.2....Requirements Analysis ....159
4.2....Software Requirements Specification (SRS)....161
4.2.1....Users of SRS Document....161
4.2.2....Why Spend Time and Resource to Develop an SRS
Document?....162
4.2.3....Characteristics of a Good SRS Document....163
4.2.4....Attributes of Bad SRS Documents....164
4.2.5....Important Categories of Customer Requirements....165
4.2.6....Functional Requirements....167
4.2.7....How to Identify the Functional Requirements?....170
4.2.8....How to Document the Functional Requirements?....170
4.2.9....Traceability....173
4.2.10....Organisation of the SRS Document....173
4.2.11....Techniques for Representing Complex Logic....180
4.3....Formal System Specification....182
4.3.1....What is a Formal Technique?....183
4.3.2....Operational Semantics....184
4.4....Axiomatic Specification....186
4.5....Algebraic Specification....188
4.5.1....Auxiliary Functions....191
4.5.2....Structured Specification....192
4.6....Executable Specification and 4GL....193
Summary....193
Exercises....193
5.....SOFTWARE DESIGN....201–222
5.1....Overview of the Design Process....201
5.1.1....Outcome of the Design Process....201
5.1.2....Classification of Design Activities....202
5.1.3....Classification of Design Methodologies....203
5.2....How to Characterise a Good Software Design?....204
5.2.1....Understandability of a Design: A Major Concern....205
5.3....Cohesion and Coupling....208
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
5.3.1....Classification of Cohesiveness....209
5.3.2....Classification of Coupling....211
5.4....Layered Arrangement of Modules....212
5.5....Approaches to Software Design....214
5.5.1....Function-oriented Design....214
5.5.2....Object-oriented Design....215
Summary....219
Exercises....219
6.....FUNCTION-ORIENTED SOFTWARE DESIGN....223–275
6.1....Overview of SA/SD Methodology....224
6.2....Structured Analysis....225
6.2.1....Data Flow Diagrams (DFDs)....225
6.3....Developing the DFD Model of a System....229
6.3.1....Context Diagram....229
6.3.2....Level 1 DFD....231
6.3.3....Extending DFD Technique to Make it Applicable to Real-Time
....Systems....246
6.4....Structured Design....247
6.4.1....Transformation of a DFD Model into Structure Chart....248
6.5....Detailed Design....253
6.6....Design Review....253
Summary....254
Exercises....254
7.....Object Modelling Using UML....276–334
7.1....Basic Object-Orientation Concepts....277
7.1.1....Basic Concepts....277
7.1.2....Class Relationships....281
7.1.3....How to Identify Class Relationships?....288
7.1.4....Other Key Concepts....289
7.1.5....Related Technical Terms....294
7.1.6....Advantages and Disadvantages of OOD....295
7.2....Unified Modelling Language (UML)....296
7.2.1....Origin of UML....296
7.2.2....Evolution of UML....298
7.3....UML Diagrams....300
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
7.4....Use Case Model....302
7.4.1....Representation of Use Cases....303
7.4.2....Why Develop the Use Case Diagram?....307
7.4.3....How to Identify the Use Cases of a System?....307
7.4.4....Essential Use Case versus Real Use Case....307
7.4.5....Factoring of Commonality among Use Cases....308
7.4.6....Use Case Packaging....310
7.5....Class Diagrams....311
7.6....Interaction Diagrams....318
7.7....Activity Diagram....320
7.8....State Chart Diagram....322
7.9....Postscript....323
7.9.1....Package, Component, and Deployment Diagrams....323
7.9.2....UML 2.0....325
Summary....327
Exercises....328
8.....Object-Oriented Software Development....335–372
8.1....Patterns....337
8.1.1....Basic Pattern Concepts....337
8.1.2....Types of Patterns....338
8.1.3....More Pattern Concepts....340
8.2....Some Common Design Patterns....341
8.3....An Object-Oriented Analysis and Design (OOAD) Methodology....349
8.3.1....Unified Process....349
8.3.2....Overview of The OOAD Methodology....350
8.3.3....Use Case Model Development....351
8.3.4....Domain Modelling....353
8.3.5....Identification of Entity Objects....357
8.3.6....Booch’s Object Identification Method....357
8.3.7....Interaction Modelling....360
8.3.8....Class-Responsibility-Collaborator (CRC) Cards....360
8.4....Applications of the Analysis and Design Process....361
8.5....OOD Goodness Criteria....364
Summary....369
Exercises....369
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
9.....USER INTERFACE DESIGN....373–396
9.1....Characteristics of a Good User Interface....374
9.2....Basic Concepts....376
9.2.1....User Guidance and On-line Help....376
9.2.2....Mode-based versus Modeless Interface....377
9.2.3....Graphical User Interface (GUI) versus Text-based User
Interface....377
9.3....Types of User Interfaces....378
9.3.1....Command Language-based Interface....378
9.3.2....Menu-based Interface....379
9.3.3....Direct Manipulation Interfaces....381
9.4....Fundamentals of Component-based GUI Development....381
9.4.1....Window System....382
9.4.2....Types of Widgets....385
9.4.3....An Overview of X-Window/MOTIF....386
9.4.4....X Architecture....387
9.4.5....Size Measurement of a Component-based GUI....388
9.5....A User Interface Design Methodology....388
9.5.1....Implications of Human Cognition Capabilities on User Interface
Design....389
9.5.2....A GUI Design Methodology....389
Summary....393
Exercises....394
10.....Coding and Testing....397–456
10.1....Coding....398
10.1.1....Coding Standards and Guidelines....399
10.2....Code Review....400
10.2.1....Code Walkthrough....401
10.2.2....Code Inspection....402
10.2.3....Clean Room Testing....403
10.3....Software Documentation....403
10.3.1....Internal Documentation....404
10.3.2....External Documentation....404
10.4....Testing....405
10.4.1....Basic Concepts and Terminologies....406
10.4.2....Testing Activities....410
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
10.4.3....Why Design Test Cases?....411
10.4.4....Testing in the Large versus Testing in the Small....412
10.5....Unit Testing....413
10.6....Black-box Testing....413
10.6.1....Equivalence Class Partitioning....414
10.6.2....Boundary Value Analysis....415
10.6.3....Summary of the Black-box Test Suite Design Approach....417
10.7....White-Box Testing....417
10.7.1....Basic Concepts....417
10.7.2....Statement Coverage....419
10.7.3....Branch Coverage....419
10.7.4....Multiple Condition Coverage....420
10.7.5....Path Coverage....421
10.7.6....McCabe’s Cyclomatic Complexity Metric ....423
10.7.7....Data Flow-based Testing....425
10.7.8....Mutation Testing....426
10.8....Debugging....427
10.8.1....Debugging Approaches....427
10.8.2....Debugging Guidelines....428
10.9....Program Analysis Tools....428
10.9.1....Static Analysis Tools....428
10.9.2....Dynamic Analysis Tools....429
10.10....Integration Testing....430
10.10.1....Phased versus Incremental Integration Testing....431
10.11....Testing Object-Oriented Programs....432
10.11.1....What is a Suitable Unit for Testing Object-Oriented
Programs?....432
10.11.2....Do Various Object-Orientation Features Make Testing
Easy?....433
10.11.3....Why are Traditional Techniques Considered Not Satisfactory
....for Testing Object-Oriented Programs?....434
10.11.4....Grey-Box Testing of Object-Oriented Programs....434
10.11.5....Integration Testing of Object-oriented Programs....435
10.12....System Testing....435
10.12.1....Smoke Testing....436
10.12.2....Performance Testing....436
10.12.3....Error Seeding....438
10.13....Some General Issues Associated with Testing....439
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
Summary....440
Exercises....440
11.....Software Reliability and Quality Management....457–484
11.1....Software Reliability....458
11.1.1....Hardware versus Software Reliability....459
11.1.2....Reliability Metrics of Software Products....460
11.1.3....Reliability Growth Modelling....462
11.2....Statistical Testing....463
11.2.1....Steps in Statistical Testing....463
11.3....Software Quality....464
11.4....Software Quality Management System....465
11.4.1....Evolution of Quality Systems....466
11.4.2....Product Metrics versus Process Metrics....467
11.5....ISO 9000....467
11.5.1....What is ISO 9000 Certification?....467
11.5.2....ISO 9000 for Software Industry....468
11.5.3....Why Get ISO 9000 Certification?....469
11.5.4....How to Get ISO 9000 Certification?....469
11.5.5....Summary of ISO 9001 Requirements....470
11.5.6....Salient Features of ISO 9001 Requirements....472
11.5.7....ISO 9000-2000....472
11.5.8....Shortcomings of ISO 9000 Certification....472
11.6....SEI Capability Maturity Model ....473
11.6.1....Comparison between ISO 9000 Certification and SEI/CMM
....476
11.6.2....Is SEI CMM Applicable to Small Organisations?....476
11.6.3....Capability Maturity Model Integration (CMMI)....477
11.7....Few Other Important Quality Standards....477
11.7.1....Software Process Improvement and Capability
....Determination (SPICE)....477
11.7.2....Personal Software Process (PSP)....477
11.8....Six Sigma....479
Summary....480
Exercises....481
12.....Computer Aided Software Engineering....485–493
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
12.1....Case and its Scope....485
12.2....Case Environment....485
12.2.1....Benefits of CASE....487
12.3....CASE Support in Software Life Cycle....487
12.3.1....Prototyping Support....487
12.3.2....Structured Analysis and Design....488
12.3.3....Code Generation....488
12.3.4....Test Case Generator....489
12.4....Other Characteristics of Case Tools....489
12.4.1....Hardware and Environmental Requirements....489
12.4.2....Documentation Support....489
12.4.3....Project Management....490
12.4.4....External Interface....490
12.4.5....Reverse Engineering Support....490
12.4.6....Data Dictionary Interface....490
12.4.7....Tutorial and Help....490
12.5....Towards Second Generation CASE Tool....490
12.6....Architecture of a Case Environment....491
Summary....492
Exercises....492
13.....Software Maintenance....494–502
13.1....Characteristics of Software Maintenance....494
13.1.1....Characteristics of Software Evolution....495
13.1.2....Special Problems Associated with Software Maintenance....496
13.2....Software Reverse Engineering....496
13.3....Software Maintenance Process Models....497
13.4....Estimation of Maintenance Cost....500
Summary....501
Exercises....501
14.....SOFTWARE REUSE....503–512
14.1....What can be Reused?....503
14.2....Why Almost No Reuse So Far?....504
14.3....Basic Issues in any Reuse Program....504
14.4....A Reuse Approach....505
14.4.1....Domain Analysis....505
14.4.2....Component Classification....506
14.4.3....Searching....507
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
14.4.4....Repository Maintenance....507
14.4.5....Reuse without Modifications....508
14.5....Reuse at Organisation Level....508
14.5.1....Current State of Reuse....510
Summary....510
Exercises....511
15.....EMERGING TRENDS....513–525
15.1....Client-Server Software....514
15.2....Client-server Architectures....516
15.3....CORBA....518
15.3.1....CORBA Reference Model....518
15.3.2....CORBA ORB Architecture....519
15.3.3....CORBA Implementations....521
15.3.4....Software Development in CORBA....521
15.4....COM/DCOM....522
15.4.1....COM....522
15.4.2....DCOM....522
15.5....Service-Oriented Architecture (SOA)....522
15.5.1....Service-oriented Architecture (SOA): Mitty Gritty....523
15.6....Software as a Service (SaaS)....524
Summary....524
Exercises....525
ReferenWces.... 527–530
Index....531–534
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******
LIST OF FIGURES
1.1....Evolution of technology with time....4
1.2....Relative changes of hardware and software costs over time....5
1.3....Exploratory program development....9
1.4....Increase in development time and effort with problem size....10
1.5....Human cognition mechanism model....12
1.6....Schematic representation....14
1.7....An abstraction hierarchy classifying living organisms....16
1.8....An example of (a) Unstructured program (b) Corresponding structured
program....19
1.9....Control flow graphs of the programs in Figures 1.8(a) and (b)....19
1.10....CFG of a program having too many GO TO statements....20
1.11....Data flow model of a car assembly plant....23
1.12....Evolution of software design techniques....24
1.13....Computer systems engineering....28
2.1....Classical waterfall model....39
2.2....Relative effort distribution among different phases of a typical
product....40
2.3....Iterative waterfall model....46
2.4....Distribution of effort for various phases in the iterative waterfall
model....48
2.5....V-model....51
2.6....Prototyping model of software development....54
2.7....Incremental software development....55
2.8....Incremental model of software development....56
2.9....Evolutionary model of software development....58
2.10....Spiral model of software development....70
3.1....Precedence ordering among planning activities....90
3.2....System function as a mapping of input data to output data....95
3.3....Person-month curve....104
3.4....Effort versus product size....105
3.5....Development time versus size....106
3.6....Rayleigh curve....116
******Created by ebook converter - www.ebook-converter.com******
******ebook converter DEMO - www.ebook-converter.com*******