software engineering
TRANSCRIPT
Gagan DeepRozy Computech Services
3rd Gate, K.U., Kurukshetra
A
Book on
SOFTWARE ENGINEERING
Rozy Computech Services
IIIrd. Gate, Kurukshetra - 136 119
2003
Published by :
Rozy Computech Services
IIIrd. Gate, Kurukshetra University, Kurukshetra - 136 119
Email : [email protected]
Rozy Computech Services, Kurukshetra
First Edition - 2003
Price : Rs. 145/-
Notice :
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the written permission of Rozy Computech Services.
Typsetting & Designed by Rozy Grpahics, KKR
Printed at : THK Offset Printers, KKR
PREFACE
For the last few years, we were consistently striving very hard to bring out our publicationsof Software Engineering. Established very close to University, students’ presses very hardto meet their curriculum requirements and to have depth study of this subject in a lucid andunderstanding way. Primary goals for this text are to acquaint students with the basicconcepts and major issues of software engineering, to describe current tools andtechniques. The text is written for juniors, seniors, graduate and postgraduate students. Thechapters were thoroughly discussed, written with the experienced faculty members beforebringing it into book shape.
This book is systematically divided into 9 chapters. Chapter 1 of the book deals with theSoftware and Software Engineering and in this we discussed the many facets of softwareand common desirable characteristics, problems and crisis faced by software industry.Chapter 2 deals with Planning and this chapter allows the readers to define and developtheir own term projects. Chapter 3 deals with SCM and readers will study the qualityassurance plans and study various embedded aspects for risk management. Chapter 4deals with SRS, this chapter is mainly concerned with the user’s requirements and gives awide understanding to the readers. Chapter 5 deals with Design and Implementation ofSoftware, it will give the knowledge about the implementation of the project. Chapter 6 dealswith Reliability covering different topics falling under this chapter and give a clear visionabout the reliability of the software so that user can continue his/her work. Chapter 7 dealswith Testing and this chapter gives knowledge to readers about various testing techniquesand it is crucial stage where different modules are tested. Chapter 8 and 9 deals withSoftware Maintenance, and CASE Tools respectively.
A large number of people have contributed over the years to the evolution of our books andwe would first like to thank everyone who has commented on previous books and madesuggestions for change. We are grateful to the reviewers of initial drafts of this text for theirhelpful comments and suggestions which helped us a great deal when completing the finalversion.
We are always pleased to receive feedback on our books and you can contact us by e-mailat [email protected].
Rozy Computech Services
CONTENTS
Chapter 1
Software And Software Engineering 1-44
What is Software ? 2
Software Application 3
Software Characteristics 6
The Software Problem 9
Software Crisis 11
What is Software Engineering 13
Software Engineering Paradigm/Model 18
Waterfall Model 19
Rapid Application Development (RAD) Model 29
The Incremental Model 32
The Spiral Model 35
Prototyping Model 38
Questions 42
Chapter 2
Planning A Software Project 45-72
Introduction 46
Software Cost Estimation 47
COCOMO Model 48
Project Scheduling 53
Tools & Techniques of Project Scheduling 56
PERT & CPM Chart 56
Timeline Charts 60
Personnel Planning 62
Team Structure 64
Questions 70
Chapter 3
Software Configuration Management (SCM) Planning 73-104
Software Configuration Management 74
What is SCM? 74
Importance SCM 75
SCM Process 75
Software Quality Assurance Plans 80
Project Monitoring Plans 88
Software Risk Management 98
Questions 104
Chapter 4
Software Requirement Specifications (SRS) 105-152
Introduction 106
Software Requirement Specification 107
Need For SRS 108
Problem Analysis 109
Structured Analysis 110
Data Flow Diagram(DFD) 111
Data Dictionary 114
Object Oriented Analysis 116
Performing Analysis 119
Data Modeling 124
Requirement Specification 127
Desirable Characteristics Of SRS 129
Components of SRS 130
Common Problems with SRS 133
SRS Technique 135
Structured English 136
Decision Table 138
Decision Tree 140
Validation 142
Questions 146
Chapter 5
Design and Implementation of Software 153-200
Software Design Fundamentals 154
Objectives/Goals of Software Design 154
Design Principle 156
Design Strategies 158
Module Level Concepts 162
Coupling 163
Cohesion 166
Structured Design Methodology(SDM) 169
Object-Oriented Design Methodology 176
Verification 184
Design Heuristics 186
Coding 189
Questions 198
Chapter 6
Reliability 201-232
Introduction 202
Software Reliability and Hardware Reliability 203
Failure, Faults and Errors 205
Software Repair and Availability 207
Metrics of Reliability 208
Reliability Models 209
J-M Model 210
Markov Model 210
Musa Model 213
Specification of Software Reliability 214
Fault Avoidance and Tolerance 215
Fault Tolerance Techniques 218
Exception Handling 220
Defensive Programming 226
Questions 230
Reliability Metrics Table 231
Chapter 7
Testing 233-278
Testing Fundamentals 234
Testing Objectives 234
Testing Principles 235
Attribute Of A ‘Good’ Test 237
White Box Testing 238
Basis Path Testing 240
Cyclometic Complexity 242
Mutation Testing 245
Black Box Testing 247
Method of Black Box Testing 249
Software Testing Strategies 252
Strategic Issues 255
Unit Testing 257
Integration Testing 259
Top-down Integration 260
Bottom-up Integration 261
Regression Testing 263
Smoke Testing 265
Validation Testing 266
Alpha and Beta Testing 267
System Testing 268
Recovery Testing 269
Security Testing 270
Performance Testing 270
Debugging 271
Questions 274
Chapter 8
Software Maintenance 279-296
Software Maintenance 280
Types of Maintenance 284
Maintainability 286
Maintenance Tasks 288
Maintenance Side Effects 292
Problem Areas in Software Maintenance 293
Questions 295
Chapter- 9
CASE Tools 297-312
Introduction 298
Definition of Case 298
Three Streams of Case 298
Upper Case Tools 299
Lower Case Tools 303
Benefits Of Case Tools 307
Weakness of Case Tools 308
Questions 310
References 312
Thanks!
Gagan DeepRozy Computech Services
3rd Gate, K.U., Kurukshetra