Software Engineering

16
Gagan Deep Rozy Computech Services 3 rd Gate, K.U., Kurukshetra [email protected]

Transcript of Software Engineering

Page 1: Software Engineering

Gagan DeepRozy Computech Services

3rd Gate, K.U., Kurukshetra

[email protected]

Page 2: Software Engineering

A

Book on

SOFTWARE ENGINEERING

Rozy Computech Services

IIIrd. Gate, Kurukshetra - 136 119

2003

Page 3: Software Engineering

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

Page 4: Software Engineering

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

Page 5: Software Engineering

CONTENTS

Page 6: Software Engineering

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

Page 7: Software Engineering

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

Page 8: Software Engineering

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

Page 9: Software Engineering

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

Page 10: Software Engineering

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

Page 11: Software Engineering

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

Page 12: Software Engineering

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

Page 13: Software Engineering

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

Page 14: Software Engineering

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

Page 15: Software Engineering
Page 16: Software Engineering

Thanks!

Gagan DeepRozy Computech Services

3rd Gate, K.U., Kurukshetra

[email protected]