content.kopykitab.com1.1 introduction to solve ever-evolving system-related problems, organizations...
TRANSCRIPT
Software Engineering
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
Software Engineering
VIKAS–WBUT STUDENTS’ SERIES
VIKAS® PUBLISHING HOUSE PVT LTD
Rohit Khurana
Founder and CEO
ITL Education Solutions Limited (ITLESL), Delhi
Second Edition
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
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
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
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
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
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
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
Software Engineering
Publisher : SChand Publications ISBN : 9788125953036 Author : Khurana Rohit
Type the URL : http://www.kopykitab.com/product/10366
Get this eBook
20%OFF