0% found this document useful (0 votes)
7 views11 pages

Sample 7646

The document is a textbook titled 'Fundamentals of Software Engineering' by Rajib Mall, published in 2014. It covers various aspects of software engineering, including software life cycle models, project management, requirements analysis, design methodologies, and object-oriented development. The book serves as a comprehensive resource for understanding the principles and practices of software engineering.

Uploaded by

pmanimegalai123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views11 pages

Sample 7646

The document is a textbook titled 'Fundamentals of Software Engineering' by Rajib Mall, published in 2014. It covers various aspects of software engineering, including software life cycle models, project management, requirements analysis, design methodologies, and object-oriented development. The book serves as a comprehensive resource for understanding the principles and practices of software engineering.

Uploaded by

pmanimegalai123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

RAJIB MALL

Professor
Department of Computer Science and Engineering
Indian Institute of Technology Kharagpur

Delhi-110 092
2014
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.
To
Bapa, Maa,
and
my beloved wife Prabina
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

v
vi Contents

2. SOFTWARE LIFE CYCLE MODELS ................................................................... 33–84


2.1 A Few Basic Concepts ...................................................................................... 34
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
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
Contents vii

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
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
viii Contents

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
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
Contents ix

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
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
Fundamentals Of Software Engineering

30%
OFF

Publisher : PHI Learning ISBN : 978812034 8981 Author : MALL, RAJIB

Type the URL : http://www.kopykitab.com/product/764 6

Get this eBook

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy