Siêu thị PDFTải ngay đi em, trời tối mất

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
PREMIUM
Số trang
712
Kích thước
9.1 MB
Định dạng
PDF
Lượt xem
1466

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*******

Tải ngay đi em, còn do dự, trời tối mất!