content.kopykitab.com1.1 introduction to solve ever-evolving system-related problems, organizations...

16

Upload: others

Post on 21-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that
Page 2: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

Software Engineering

Page 3: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

Books in Vikas-WBUT Students' Series

� Basic Computation and Principles of Computer Programming (2nd Ed.)

by Amitava Nag and Jyoti Prakash Singh

� Basic Electrical and Electronics Engineering Vol. I by J P Bandyopadhyay

� Basic Electrical and Electronics Engineering Vol. II by J P Bandyopadhyay

� Basic Environmental Engineering and Elementary Biology by Gourkrishna Dasmohapatra

� Data Structures and Algorithms using C (2nd Ed.) by Amitava Nag and Jyoti Prakash Singh

� Electrical Machines I (2nd Ed.) by K Murugesh Kumar

� Engineering Chemistry I by Gourkrishna Dasmohapatra

� Engineering Mathematics Volume 1 by Bikas Chandra Bhui, Dipak Chatterjee and Prasun Chatterjee

� Engineering Mathematics II (2nd Ed.) by Bikas Chandra Bhui and Dipak Chatterjee

� Engineering Mathematics Volume 3A by Bikas Chandra Bhui and Dipak Chatterjee

� Engineering Mathematics Volume 3B (3rd Ed.) by Bikas Chandra Bhui and Dipak Chatterjee

� Engineering Mathematics Volume 4 by Bikas Chandra Bhui and Dipak Chatterjee

� Textbook of Engineering Mechanics by B B Ghosh, S Chakrabarti and S Ghosh

� Engineering Physics I by P P Das and Abhisek Chakraborty

� Engineering Physics II by P P Das and Abhisek Chakraborty

� Engineering Thermodynamics and Fluid Mechanics (2nd Ed.)

by B B Ghosh, Satyajit Chakrabarti, Samir Ghosh and P C Roy

� Numerical Methods and Programming (2nd Ed.) by Bikas Chandra Bhui and Dipak Chatterjee

� Object-Oriented Programming with C++ by Goutam Panigrahi and Anirban Das

� Software Engineering (2nd Ed.) by Rohit Khurana

� Solid State Electronic Devices (2nd Ed.) by Jyoti Prasad Bandyopadhyay

� System Analysis and Design by Sandip Rakshit and Sumana Chakraborty

Page 4: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

Software Engineering

VIKAS–WBUT STUDENTS’ SERIES

VIKAS® PUBLISHING HOUSE PVT LTD

Rohit Khurana

Founder and CEO

ITL Education Solutions Limited (ITLESL), Delhi

Second Edition

Page 5: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

VIKAS® PUBLISHING HOUSE PVT LTD

E-28, Sector-8, Noida-201301

Phone: 0120-4078900 � Fax: 0120-4078999

Registered Office: 576, Masjid Road, Jangpura, New Delhi-110 014VIKAS

®

All rights reserved. No part of this publication which is material protected by this copyright notice may be reproduced ortransmitted or utilized or stored in any form or by any means now known or hereinafter invented, electronic, digital ormechanical, including photocopying, scanning, recording or by any information storage or retrieval system, without priorwritten permission from the publisher.

Information contained in this book has been published by VIKAS® Publishing House Pvt Ltd and has been obtained by itsAuthors from sources believed to be reliable and are correct to the best of their knowledge. However, the Publisher and itsAuthors shall in no event be liable for any errors, omissions or damages arising out of use of this information and specificallydisclaim any implied warranties or merchantability or fitness for any particular use. Disputes if any are subject to DelhiJurisdiction only.

Printed at Millenium Offset Pvt Ltd, Delhi-110028

Acknowledgements are due to some of the copyright holders from whom permission is still awaited. Any omission will be

corrected in future editions and copyright duly acknowledged.

E-mail: [email protected] � Website: www.vikaspublishing.com� Bengaluru : First Floor, N.S. Bhawan, 4th Cross, 4th Main, Gandhi Nagar, Bengaluru-560 009

� Ph. 080-2220 4639, 2228 1254

� Chennai : Damodhar Centre, New No. 62, Old No. 59, Nelson Manickam Road, Aminjikarai,

Chennai-600 029 � Ph. 044-2374 4547, 2374 6090

� Kolkata : P-51/1, CIT Road, Scheme-52, Kolkata-700 014 �� Ph. 033-2286 6995, 2286 6996

� Mumbai : 67/68, 3rd Floor, Aditya Industrial Estate, Chincholi Bunder, Malad (West),

Mumbai-400 064 � Ph. 022-2877 2545, 2876 8301

Distributors:

UBS PUBLISHERS’ DISTRIBUTORS PVT LTD5, Ansari Road, New Delhi-110 002

� Ph. 011-2327 3601, 2326 6646 � Fax: 2327 6593, 2327 4261

E-mail:[email protected] Website: www.gobookshopping.com

� Ahmedabad : 1st Floor, Shop No. 133-134, Aust Laxmi, Apparel Park, Outside Dariyapur Gate,

Ahmedabad-380 016 � Ph. 079-29092241, 29092248, 29092258

� Bengaluru : Crescent No. 148, 1st Floor, Mysore Road, Bengaluru-560 026 � Ph. 080-26756377, 26756362

� Fax: 080-26756462

� Bhopal : Z-18, M P Nagar, Zone-1, Bhopal-462 011 � Ph. 0755-4203 183, 4203 193

� Bhubaneswar : Ist Floor 145, Cuttack Road, Bhubanestwar-751 006 � Ph. 0674-2314 446

� Chennai : 60, Nelson Manickam Road, Aminjikarai, Chennai-600 029 � Ph. 044-2374 6222

� Coimbatore : 2nd & 3rd Floor, Sri Guru Towers, No. 1-7, Sathy Road, Cross III, Gandhipuram, Coimbatore-641 012

� Ernakulam : No. 40/8199A, 1st Floor, Public Library Building, Convent Road, Ernakulam-682 035

� Ph. 0484-2353901, 2373901, 2363905, 4064706 �� Fax: 0484-236551

� Guwahati : 1st Floor, House No.4, Kanaklata Path, Lachit Nagar, Bharalupar, Guwahati-781 007

� Hyderabad : 3rd Floor, Alekhya Jagadish Chambers, H. No. 4-1-1058, Boggulkunta, Tilak Road,

Hyderabad-500 001 � Ph. 040-2475 4472 / 73 / 74

� Kolkata : 8/1-B, Chowringhee Lane, Kolkata-700 016 �� Ph. 033-2252 1821, 2252 2910

� Lucknow : 9 Ashok Nagar, Near Pratibha Press, Gautam Buddha Marg, Latush Road, Lucknow-226 001

� Ph. 0522-2294 134, 3014 010

� Mumbai : 2nd Floor, Apeejay Chambers, 5 Wallace Street, Fort, Mumbai-400 001 � Ph. 022-6637 6922-3,

6610 2069 � Fax: 6637 6921

� Nagpur : 2nd Floor, Shree Renuka Plaza, Tilak Nagar, Nagpur

� Patna : GF, Western Side, Annapoorna Complex, Naya Tola, Patna-800 004 � Ph. 0612-2672 856, 2673 973

� Pune : 680 Budhwar Peth, 2nd Floor, Appa Balwant Chowk, Pune-411 002 � Ph. 020-2446 1653, 2443 3976

First Edition 2011

Second Edition 2012

Vikas® is the registered trademark of Vikas Publishing House Pvt Ltd

Copyright © Author

Page 6: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

In this fast-paced world, change is the new constant. Newer innovations have changed the world of

electronics and IT. With globalisation, blooming businesses and developments in science and

engineering are challenging software technology at every step. Attempting to beat the challenge,

software world is undergoing a major upheaval. As information systems become more complex, a

streamlined approach to software engineering has now become the top priority. Novel discoveries

and software tools have enabled us to produce high-quality, high-precision systems at lower cost and

maintenance.

Since the days when software engineering was only involved with system design, the science

has evolved to encompass domains of testing and documentation, computer-aided software engi-

neering, project management, and configuration management.

Software Engineering is an insightful work elaborating on basic fundamentals as well as ad-

vanced topics in the discipline. Keeping the needs of the students in mind, this work offers in-depth

coverage of software metrics and cost estimation, quality assurance and software testing, thus serv-

ing as a resourceful cache of latest information for aspiring software engineers to prepare them for a

productive industry experience. With neat illustrations and examples, and presentation of difficult

concepts in the simplest form, the USP of the book lies in it being extremely student-friendly.

Based upon the updated university curriculum, the book caters to BTech Computer Science and

Engineering (VI semester) students, who would find the introductory and advanced discussions

highly informative and enriching. The book is a great guide for self-paced learning and will go a long

way in equipping budding software engineers with the right knowledge and expertise.

Key Features of the Book

� Lucid, well-explained concepts with solved examples

� Complete coverage of the updated university syllabus

� Book-end glossary of technical terms

� Relevant illustrations for better understanding and retention

� Solved previous years' university papers

� Chapter-end summary and questions for quick review

Happy reading!

Rohit Khurana

Founder and CEO

ITLESL, Delhi

Preface

Page 7: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

In all my efforts towards making this book a reality, my special thanks goes to my technical and

editorial team, without whom this work would not have achieved its desired level of excellence.

I sincerely extend my thanks to my research and development team for devoting their time and

relentless effort in bringing out this work for all aspiring software engineers. I convey my gratitude to

my publisher Vikas Publishing House Pvt. Ltd for sharing this dream and giving all the support in

realising it.

In our attempt towards further improvement, I welcome you all to send your feedback to

[email protected]. I will highly appreciate all your constructive comments.

I hope you will enjoy reading the book and hope it proves to be a good resource for all.

Acknowledgement

Rohit Khurana

Founder and CEO

ITLESL, Delhi

Page 8: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

SOFTWARE ENGINEERING

SEMESTER VI

Module I

Overview of System Analysis and Design, Business System Concept, System Development Life

Cycle, Waterfall Model, Spiral Model, Feasibility Analysis, Technical Feasibility, Cost- Benefit Analysis,

COCOMO model.

Module II

System Requirement Specification - DFD, Data Dictionary, ER diagram, Process Organization &

Interactions. System Design - Problem Partitioning, Top-Down and Bottom-Up design; Decision tree,

decision table and structured English; Functional vs Object- Oriented approach.

Module III

Coding and Documentation-Structured Programming, OO Programming, Information Hiding, Reuse,

System Documentation. Testing - Levels of Testing, Integration Testing, Test case Specification,

Reliability Assessment, Validation and Verification Metrics, Monitoring and Control.

Module IV

Software Project Management - Project Scheduling, Staffing, Software Configuration Management,

Quality Assurance, Project Monitoring.

CASE TOOLS: Concepts, use and application

Syllabus

Page 9: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

Preface v

Acknowledgement vi

Syllabus vii

1. INTRODUCTION TO SYSTEM 1–14

Learning Objectives 1

1.1 Introduction 1

1.2 Overview of Systems Analysis and Design 1

1.2.1 Systems Analyst 2

1.3 Business System Concept 3

1.3.1 Business System 4

1.4 System Development Life Cycle (SDLC) 4

1.4.1 Systems Analysis 5

1.4.2 Systems Design 6

1.4.3 Coding 6

1.4.4 Testing 7

1.4.5 System Implementation and Maintenance 7

1.5 Feasibility Analysis 8

1.5.1 Technical Feasibility 9

1.5.2 Operational Feasibility 9

1.5.3 Economic Feasibility 10

1.6 Cost–Benefit Analysis (CBA) 10

1.6.1 Types of Costs and Benefits 10

1.6.2 Cost–Benefit Evaluation Method 11

Let Us Summarize 12

Key Terms 13

Answers to ‘Check Your Progress’ 13

Test Yourself 14

2. SOFTWARE ENGINEERING AND PROCESS MODELS 15–31

Learning Objectives 15

2.1 Introduction 15

2.2 Software Engineering 16

2.2.1 Layers 16

Contents

Page 10: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

x Contents

2.3 Software Process, Project and Product 17

2.3.1 Components 18

2.3.2 Process Framework 20

2.4 Software Life Cycle Models 21

2.4.1 Waterfall Model 22

2.4.2 Prototyping Model 24

2.4.3 Spiral Model 26

Let Us Summarize 29

Key Terms 29

Answers to ‘Check Your Progress’ 30

Test Yourself 31

3. SOFTWARE COST ESTIMATION 32–52

Learning Objectives 32

3.1 Introduction 32

3.2 Basics of Cost Estimation 32

3.2.1 Estimation of Resources 33

3.2.2 Software Product Cost Factors 35

3.3 Cost Estimation Models 37

3.3.1 Constructive Cost Model 37

3.3.2 Constructive Cost Model II 41

3.3.3 Comparison between COCOMO and COCOMO II 48

Let Us Summarize 49

Key Terms 50

Answers to ‘Check Your Progress’ 51

Test Yourself 51

4. SYSTEM REQUIREMENTS 53–76

Learning Objectives 53

4.1 Introduction 53

4.2 What is Requirement? 53

4.2.1 Types of Requirements 54

4.3 Requirements Analysis 57

4.3.1 Data Flow Diagram (DFD) 59

4.3.2 Data Dictionary 63

4.3.3 Object-Oriented Modelling 63

4.3.4 ER Modelling 66

4.4 Process Organization and Interaction 69

4.5 System Requirements Specification 69

4.5.1 Characteristics of SRS 70

4.5.2 Structure of SRS 71

Let Us Summarize 74

Key Terms 75

Answers to ‘Check Your Progress’ 75

Test Yourself 76

Page 11: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

Contents xi

5. SYSTEM DESIGN 77–110

Learning Objectives 77

5.1 Introduction 77

5.2 Functional versus Object-oriented Approach 77

5.3 Design Principles 77

5.4 Design Concepts 79

5.4.1 Abstraction 79

5.4.2 Problem Partitioning 80

5.4.3 Modularity 81

5.4.4 Top-Down and Bottom-Up Design 81

5.4.5 Information Hiding 82

5.4.6 Complexity and Refactoring 82

5.5 Developing a Design Model 83

5.5.1 Data Design 84

5.5.2 Architectural Design 84

5.5.3 Component-Level Design 86

5.5.4 User Interface Design 91

5.6 Design Notations 93

5.6.1 Flowcharts 94

5.6.2 Data Flow Diagrams 98

5.6.3 Structure Charts 99

5.6.4 HIPO Diagram 100

5.6.5 Structured English 101

5.6.6 Decision Table 102

5.6.7 Decision Tree 103

5.7 Object-Oriented Design 104

5.7.1 Object-Oriented Design Paradigm 105

Let Us Summarize 107

Key Terms 109

Answers to ‘Check Your Progress’ 109

Test Yourself 110

6. CODING AND DOCUMENTATION 111–119

Learning Objectives 111

6.1 Introduction 111

6.2 Features of Software Code 111

6.3 Programming Practices 112

6.3.1 Top-Down Programming 113

6.3.2 Bottom-Up Programming 113

6.3.3 Structured Programming 113

6.3.4 Information Hiding 114

6.4 Object-Oriented Programming (OOP) 115

6.4.1 Reuse 116

6.5 System Documentation 116

Let Us Summarize 118

Key Terms 118

Answers to ‘Check Your Progress’ 118

Test Yourself 119

Page 12: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

xii Contents

7. SYSTEM TESTING AND RELIABILITY 120–164

Learning Objectives 120

7.1 Introduction 120

7.2 Testing: Basics 120

7.2.1 Validation and Verification 121

7.2.2 Testing in Software Development Life Cycle 121

7.3 Test Plan 123

7.4 Test Case Design 126

7.4.1 Test Case Generation 126

7.4.2 Test Case Specifications 127

7.5 Levels of Software Testing 127

7.5.1 Unit Testing 128

7.5.2 Integration Testing 131

7.5.3 System Testing 138

7.5.4 Acceptance Testing 141

7.6 Testing Techniques 143

7.6.1 White-Box Testing 144

7.6.2 Black-Box Testing 152

7.6.3 Differences between White-Box and Black-Box Testing 157

7.6.4 Gray-Box Testing 158

7.7 Reliability Assessment 159

7.8 Monitoring and Control 159

Let Us Summarize 160

Key Terms 162

Answers to ‘Check Your Progress’ 163

Test Yourself 164

8. SOFTWARE METRICS 165–187

Learning Objectives 165

8.1 Introduction 165

8.2 Software Measurement 165

8.3 Software Metrics 166

8.3.1 Difference in Measures, Metric and Indicators 166

8.3.2 Measured Data 167

8.3.3 Guidelines for Software Metrics 168

8.4 Designing Software Metrics 168

8.5 Classification of Software Metrics 169

8.6 Process Metrics 169

8.7 Product Metrics 171

8.7.1 Metrics for the Analysis Model 172

8.7.2 Metrics for Software Design 173

8.7.3 Metrics for Coding 177

8.7.4 Metrics for Software Testing 178

8.7.5 Metrics for Software Maintenance 179

8.8 Project Metrics 179

Page 13: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

Contents xiii

8.9 Measuring Software Quality 180

8.9.1 Defect Removal Efficiency (DRE) 181

8.10 Object-oriented (OO) Metrics 182

8.11 Issues in Software Metrics 182

Let Us Summarize 184

Key Terms 185

Answers to ‘Check Your Progress’ 185

Test Yourself 187

9. SOFTWARE PROJECT MANAGEMENT AND QUALITY ASSURANCE 188–223

Learning Objectives 188

9.1 Introduction 188

9.2 Project Planning 188

9.2.1 Project Purpose 190

9.2.2 Project Scope 190

9.2.3 Project Planning Process 191

9.2.4 Project Plan 192

9.3 Project Scheduling 197

9.3.1 Techniques of Project Scheduling 200

9.3.2 Task Network 206

9.3.3 Tracking the Schedule 207

9.4 Project Staffing 208

9.4.1 Relationship between People and Effort 209

9.4.2 Effort Distribution 210

9.4.3 Team Structure 212

9.5 Project Monitoring 215

9.6 Software Quality Assurance (SQA) 216

9.6.1 SQA Group 216

9.6.2 SQA Plan 217

9.6.3 SQA Activities 218

Let Us Summarize 219

Key Terms 221

Answers to ‘Check Your Progress’ 221

Test Yourself 223

10. SOFTWARE CONFIGURATION MANAGEMENT 224–242

Learning Objectives 224

10.1 Introduction 224

10.2 Basics of Software Configuration Management 224

10.2.1 Software Configuration Planning 228

10.2.2 Project Library 230

10.3 Software Configuration Management Process 232

10.3.1 Configuration Identification 232

10.3.2 Change Control 233

10.3.3 Version Control 236

10.3.4 Configuration Audit 237

10.3.5 Configuration Status Accounting 238

Page 14: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

xiv Contents

10.4 Software Configuration Management Tools 239

Let Us Summarize 241

Key Terms 241

Answers to ‘Check Your Progress’ 242

Test Yourself 242

11. COMPUTER-AIDED SOFTWARE ENGINEERING (CASE) 243–254

Learning Objectives 243

11.1 Introduction 243

11.2 CASE: Concepts 243

11.2.1 Building Blocks for CASE 244

11.2.2 Classification of CASE Tools 245

11.3 Use and Application of CASE Tools 245

11.3.1 Documentation Tools 246

11.3.2 Analysis Tools 246

11.3.3 Design Tools 246

11.3.4 Programming Tools 247

11.3.5 Integration and Testing Tools 249

11.3.6 Maintenance Tools 250

11.4 Tools for Project Management 251

11.5 Integrated CASE Environment 252

Let Us Summarize 252

Key Terms 253

Answers to ‘Check Your Progress’ 253

Test Yourself 254

UNIVERSITY QUESTION PAPERS 255–343

GLOSSARY 344–354

UNIVERSITY QUESTION PAPERS 2011 WITH ANSWERS 355–383

Page 15: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

LEARNING OBJECTIVES

After reading this chapter, you will be able to:� Understand the meaning of systems analysis and design� Describe different types of skills required by a systems analyst� Understand the concept of system and business system� Explain various phases of system development life cycle� Learn important aspects of feasibility analysis, including technical, operational and economic

feasibility� Explore the process of cost–benefit analysis.� Learn about the various cost–benefit evaluation methods

1.1 INTRODUCTION

To solve ever-evolving system-related problems, organizations need to update their informationsystem. For instance, managers may realize that their services or products are of inferior qualityor cost too much and a new system can solve this problem. Besides, an organization may needa new system to seek new opportunities to improve the efficiency and effectiveness of their businessprocesses; thus, strengthening their competitive position in the marketplace.

In order to develop an efficient and effective system, the development process is broken intoa set of phases, with each phase handling a different sphere of system development. This phaseddevelopment of a system is known as System Development Life Cycle (SDLC). Usually, these phasesare executed in a sequential manner; however, sometimes, one or more phases need to be repeatedor executed concurrently depending on the system development approach used.

1.2 OVERVIEW OF SYSTEMS ANALYSIS AND DESIGN

Systems analysis and design refers to the process of studying the existing system with the intentof improving its efficiency or replacing it with a new system. The term ‘systems analysis anddesign’ is composed of two parts: systems analysis and systems design. Systems analysis refersto the process of determining the problems in the existing system, collecting and interpreting therequirements, and recommending the improvements or replacement of the existing system on thebasis of the collected information.

Systems design refers to the process of planning for a new system or for replacing the existingsystem. In simple words, systems analysis describes what the system should do, whereas systemsdesign focuses on how to achieve the objectives.

Introduction to System1C H A P T E R

Page 16: content.kopykitab.com1.1 INTRODUCTION To solve ever-evolving system-related problems, organizations need to update their information system. For instance, managers may realize that

Software Engineering

Publisher : SChand Publications ISBN : 9788125953036 Author : Khurana Rohit

Type the URL : http://www.kopykitab.com/product/10366

Get this eBook

20%OFF