0% found this document useful (0 votes)
9 views16 pages

Sample 10366

The document lists various educational books in the Vikas-WBUT Students' Series, including titles on software engineering, computer programming, and engineering mathematics. It highlights the second edition of 'Software Engineering' by Rohit Khurana, which covers fundamental and advanced topics relevant to BTech Computer Science and Engineering students. The book aims to provide a comprehensive resource for students with features such as solved examples, chapter-end summaries, and a glossary of technical terms.
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)
9 views16 pages

Sample 10366

The document lists various educational books in the Vikas-WBUT Students' Series, including titles on software engineering, computer programming, and engineering mathematics. It highlights the second edition of 'Software Engineering' by Rohit Khurana, which covers fundamental and advanced topics relevant to BTech Computer Science and Engineering students. The book aims to provide a comprehensive resource for students with features such as solved examples, chapter-end summaries, and a glossary of technical terms.
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/ 16

Software Engineering

Books in Vikas-WBUT Students' Series

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


by Amitava Nag and Jyoti Prakash Singh
x Basic Electrical and Electronics Engineering Vol. I by J P Bandyopadhyay
x Basic Electrical and Electronics Engineering Vol. II by J P Bandyopadhyay
x Basic Environmental Engineering and Elementary Biology by Gourkrishna Dasmohapatra
x Data Structures and Algorithms using C (2nd Ed.) by Amitava Nag and Jyoti Prakash Singh
x Electrical Machines I (2nd Ed.) by K Murugesh Kumar
x Engineering Chemistry I by Gourkrishna Dasmohapatra
x Engineering Mathematics Volume 1 by Bikas Chandra Bhui, Dipak Chatterjee and Prasun Chatterjee
x Engineering Mathematics II (2nd Ed.) by Bikas Chandra Bhui and Dipak Chatterjee
x Engineering Mathematics Volume 3A by Bikas Chandra Bhui and Dipak Chatterjee
x Engineering Mathematics Volume 3B (3rd Ed.) by Bikas Chandra Bhui and Dipak Chatterjee
x Engineering Mathematics Volume 4 by Bikas Chandra Bhui and Dipak Chatterjee
x Textbook of Engineering Mechanics by B B Ghosh, S Chakrabarti and S Ghosh
x Engineering Physics I by P P Das and Abhisek Chakraborty
x Engineering Physics II by P P Das and Abhisek Chakraborty
x Engineering Thermodynamics and Fluid Mechanics (2nd Ed.)
by B B Ghosh, Satyajit Chakrabarti, Samir Ghosh and P C Roy
x Numerical Methods and Programming (2nd Ed.) by Bikas Chandra Bhui and Dipak Chatterjee
x Object-Oriented Programming with C++ by Goutam Panigrahi and Anirban Das
x Software Engineering (2nd Ed.) by Rohit Khurana
x Solid State Electronic Devices (2nd Ed.) by Jyoti Prasad Bandyopadhyay
x System Analysis and Design by Sandip Rakshit and Sumana Chakraborty
VIKAS–WBUT STUDENTS’ SERIES

Software Engineering
Second Edition

Rohit Khurana
Founder and CEO
ITL Education Solutions Limited (ITLESL), Delhi

VIKAS® PUBLISHING HOUSE PVT LTD


VIKAS® PUBLISHING HOUSE PVT LTD
E-28, Sector-8, Noida-201301
VIKAS Phone: 0120-4078900 x Fax: 0120-4078999
®

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


E-mail: [email protected] x Website: www.vikaspublishing.com
x Bengaluru : First Floor, N.S. Bhawan, 4th Cross, 4th Main, Gandhi Nagar, Bengaluru-560 009
x Ph. 080-2220 4639, 2228 1254
x Chennai : Damodhar Centre, New No. 62, Old No. 59, Nelson Manickam Road, Aminjikarai,
Chennai-600 029 x Ph. 044-2374 4547, 2374 6090
x Kolkata : P-51/1, CIT Road, Scheme-52, Kolkata-700 014 x Ph. 033-2286 6995, 2286 6996
x Mumbai : 67/68, 3rd Floor, Aditya Industrial Estate, Chincholi Bunder, Malad (West),
Mumbai-400 064 x Ph. 022-2877 2545, 2876 8301

Distributors:
UBS PUBLISHERS’ DISTRIBUTORS PVT LTD
5, Ansari Road, New Delhi-110 002
x Ph. 011-2327 3601, 2326 6646 x Fax: 2327 6593, 2327 4261
E-mail:[email protected] Website: www.gobookshopping.com
x Ahmedabad : 1st Floor, Shop No. 133-134, Aust Laxmi, Apparel Park, Outside Dariyapur Gate,
Ahmedabad-380 016 x Ph. 079-29092241, 29092248, 29092258
x Bengaluru : Crescent No. 148, 1st Floor, Mysore Road, Bengaluru-560 026 x Ph. 080-26756377, 26756362
x Fax: 080-26756462
x Bhopal : Z-18, M P Nagar, Zone-1, Bhopal-462 011 x Ph. 0755-4203 183, 4203 193
x Bhubaneswar : Ist Floor 145, Cuttack Road, Bhubanestwar-751 006 x Ph. 0674-2314 446
x Chennai : 60, Nelson Manickam Road, Aminjikarai, Chennai-600 029 x Ph. 044-2374 6222
x Coimbatore : 2nd & 3rd Floor, Sri Guru Towers, No. 1-7, Sathy Road, Cross III, Gandhipuram, Coimbatore-641 012
x Ernakulam : No. 40/8199A, 1st Floor, Public Library Building, Convent Road, Ernakulam-682 035
x Ph. 0484-2353901, 2373901, 2363905, 4064706 x Fax: 0484-236551
x Guwahati : 1st Floor, House No.4, Kanaklata Path, Lachit Nagar, Bharalupar, Guwahati-781 007
x Hyderabad : 3rd Floor, Alekhya Jagadish Chambers, H. No. 4-1-1058, Boggulkunta, Tilak Road,
Hyderabad-500 001 x Ph. 040-2475 4472 / 73 / 74
x Kolkata : 8/1-B, Chowringhee Lane, Kolkata-700 016 x Ph. 033-2252 1821, 2252 2910
x Lucknow : 9 Ashok Nagar, Near Pratibha Press, Gautam Buddha Marg, Latush Road, Lucknow-226 001
x Ph. 0522-2294 134, 3014 010
x Mumbai : 2nd Floor, Apeejay Chambers, 5 Wallace Street, Fort, Mumbai-400 001 x Ph. 022-6637 6922-3,
6610 2069 x Fax: 6637 6921
x Nagpur : 2nd Floor, Shree Renuka Plaza, Tilak Nagar, Nagpur
x Patna : GF, Western Side, Annapoorna Complex, Naya Tola, Patna-800 004 x Ph. 0612-2672 856, 2673 973
x Pune : 680 Budhwar Peth, 2nd Floor, Appa Balwant Chowk, Pune-411 002 x 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

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.

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

Information contained in this book has been published by VIKAS® Publishing House Pvt Ltd and has been obtained by its
Authors from sources believed to be reliable and are correct to the best of their knowledge. However, the Publisher and its
Authors shall in no event be liable for any errors, omissions or damages arising out of use of this information and specifically
disclaim any implied warranties or merchantability or fitness for any particular use. Disputes if any are subject to Delhi
Jurisdiction only.
Printed at Millenium Offset Pvt Ltd, Delhi-110028
Preface

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
x Lucid, well-explained concepts with solved examples
x Complete coverage of the updated university syllabus
x Book-end glossary of technical terms
x Relevant illustrations for better understanding and retention
x Solved previous years' university papers
x Chapter-end summary and questions for quick review

Happy reading!
Rohit Khurana
Founder and CEO
ITLESL, Delhi
Acknowledgement

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.

Rohit Khurana
Founder and CEO
ITLESL, Delhi
Syllabus

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
Contents

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
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
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
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
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
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
C H A P T E R

1 Introduction to System

LEARNING OBJECTIVES
After reading this chapter, you will be able to:
l Understand the meaning of systems analysis and design
l Describe different types of skills required by a systems analyst
l Understand the concept of system and business system
l Explain various phases of system development life cycle
l Learn important aspects of feasibility analysis, including technical, operational and economic
feasibility
l Explore the process of cost–benefit analysis.
l Learn about the various cost–benefit evaluation methods

1.1 INTRODUCTION
To solve ever-evolving system-related problems, organizations need to update their information
system. For instance, managers may realize that their services or products are of inferior quality
or cost too much and a new system can solve this problem. Besides, an organization may need
a new system to seek new opportunities to improve the efficiency and effectiveness of their business
processes; thus, strengthening their competitive position in the marketplace.
In order to develop an efficient and effective system, the development process is broken into
a set of phases, with each phase handling a different sphere of system development. This phased
development of a system is known as System Development Life Cycle (SDLC). Usually, these phases
are executed in a sequential manner; however, sometimes, one or more phases need to be repeated
or 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 intent
of improving its efficiency or replacing it with a new system. The term ‘systems analysis and
design’ is composed of two parts: systems analysis and systems design. Systems analysis refers
to the process of determining the problems in the existing system, collecting and interpreting the
requirements, and recommending the improvements or replacement of the existing system on the
basis of the collected information.
Systems design refers to the process of planning for a new system or for replacing the existing
system. In simple words, systems analysis describes what the system should do, whereas systems
design focuses on how to achieve the objectives.
Software Engineering

20%
OFF

Publisher : SChand Publications ISBN : 9788125953036 Author : Khurana Rohit

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

Get this eBook

You might also like