Sunteți pe pagina 1din 10

SOFTWARE ENGINEERING

(BSIT - 44)

: Contributing Author :

C. Vidya Raj
Assistant Professor Department of Computer Science and Engineering The National Institute of Engineering Mysore

II

BSIT 44 Software Engineering

BSIT 44 Software Engineering

III

Course Introduction

Computer software is the essential resource in the life of a modern man. It is within in systems of all kinds : military, home appliances, medicine, transportation, industrial processes, and what not ? all these, have made man to have a different view with respect to software. He knows software is a product and at the same time it is a vehicle for delivering the product. This course presents the technology that should be used by those people who build software. And the course is called Software Engineering. Software engineering is a technology, that encompasses a process, a set of methods, and an array of tools. The subject Software engineering is an ocean, with tides in all directions. So, it is highly impossible to cover every bits of it in depth, within few pages of this book. And this course is intended for those who have little knowledge in this area. Hence, this material will serve as an introduction to software engineering and has been designed to provide you an overview and general abilities to go further. This course has been divided into 8 chapters. Each chapter sufficiently covers the subject staring from concepts. Diagrams are used were ever required to better assist the reader. Each chapter also has some questions for examining readers understanding. At the end of material, glossary is provided with some standard definitions which help the reader to have easier access. Chapter 1 is about software and software engineering, it presents concepts related to software, an introduction to software engineering with different software development life cycle models. Chapter 2 s about system requirements analysis and specification. It presents an insight in to the need of system requirements, its analysis and how to come with specifications and document it. Chapter 3 is about system design, here important concepts related software design are considered, different design methodologies are presented, with emphasis on function-oriented methodology. Chapter 4 is on software coding, it deals with coding standards and practices, some guidelines for better coding practice and the way to document it.

IV

BSIT 44 Software Engineering

Chapter 5 highlights the need for software testing and discuss the various testing methods and strategies. And at the end, a test plan layout is also presented. Chapter 6 is about software project management , its about planning a software project, estimating the cost, staffing structure, schedule and tracking control. It as presents the importance of risk management in software development. Chapter 7 is about software quality assurance, an important activity for maintaining the quality standards in an organization with respect to software. Chapter 8 is on software configuration management. It is an activity associated with software quality assurance. Here, the discussion is on SCM process, its activities like version control, change control and status reporting etc. Some references are cited at the end of the course material for the reader to have more and in-depth understanding.

BSIT 44 Software Engineering

Contents

Chapter 1 AN INTRODUCTION TO SOFTWARE ENGINEERING 1.0 1.1 1.2 Introduction Objectives Software 1.2.1 Software characteristics 1.2.2 Software components 1.2.3 Software applications What is software engineering ? A generic view of software engineering The software process models 1.5.1 The waterfall model 1.5.2 The prototype model 1.5.3 The evolutionary software process model 1.5.3.1 The incremental model 1.5.3.2 The spiral model Summary Self Check exercise References 1

1.3 1.4 1.5

1.6 1.7 1.8

VI
Chapter 2

BSIT 44 Software Engineering

SYSTEM ANALYSIS AND REQUIREMENTS SPECIFICATION 2.0 2.1 2.2 Introduction Objectives Software requirements 2.2.1 Need for SRS 2.2.2 Requirement process Problem analysis Requirements specification 2.4.1 Characteristics of an SRS 2.4.2 Designing an SRS 2.4.3 Specification languages 2.4.4 Structure of SRS Requirements validation Summary Self Check Exercise References

13

2.3 2.4

2.5 2.6 2.7 2.8

Chapter 3 SYSTEM DESIGN 3.0 3.1 3.2 3.3 3.4 Introduction Objectives The design process Design principles Design concepts 3.4.1 Abstraction 3.4.2 Stepwise Refinment 3.4.3 Software Architecture 3.4.4 Program Structure 3.4.5 Data Structure 3.4.6 Modularity 3.4.7 Software Procedure 3.4.8 Information Hiding 28

BSIT 44 Software Engineering

VII

3.5

Effective modular design 3.5.1 Functional independence 3.5.2 Cohesion 3.5.3 Coupling 3.6 Design documentation 3.7 Design methods 3.7.1 Data design 3.7.2 Architectural design 3.7.2.1 Transform Mapping 3.7.2.2 Transaction Mapping 3.7.3 Interface design 3.7.4 Procedural design 3.7.4.1 Structured Programming 3.7.4.2 Graphical Design Notation 3.7.4.3 Tabula Design Notation 3.7.4.4 Program Design Language 3.8 Summary 3.9 Self Check Exercise 3.10 References

Chapter 4 SOFTWARE CODING 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Introduction Objectives Coding standards and practices Programming guidelines Documentation User documentation Programming tools Summary Self Check exercise References 58

VIII
Chapter 5 SOFTWARE TESTING 5.0 5.1 5.2 5.3 Introduction Objectives Fundamentals of Software testing Software testing techniques 5.3.1 White-box testing 5.3.2 Black- box testing Software testing strategies 5.4.1 Unit testing 5.4.2 Integration testing 5.4.3 Validation testing 5.4.4 System testing 5.4.5 Debugging Test process Test plan Metrics for software testing Summary Self check Exercise References

BSIT 44 Software Engineering

69

5.4

5.5 5.6 5.7 5.8 5.9 5.10

Chapter 6 SOFTWARE PROJECT MANAGEMENT 6.0 6.1 6.2 6.3 Introduction Objectives Managing people, project and process Software project planning 6.3.1 Software scope 6.3.2 Resources hardware, software and People Software project estimation 6.4.1 Estimation methods 6.4.2 Empirical estimation models 6.4.2.1 The COCOMO model Risk management 96

6.4

6.5

BSIT 44 Software Engineering

IX

6.6

6.7 6.8 6.9

6.5.1 Risk identification 6.5.2 Risk projection 6.5.3 Risk mitigation, monitoring and management 6.5.4 The problems of putting risk management into practice 6.5.5 The RMMM plan Project scheduling and tracking 6.6.1 Scheduling 6.6.2 The project plan Summary Self Check Exercise References

Chapter 7 SOFTWARE QUALITY ASSURANCE 7.0 7.1 7.2 7.3 7.4 7.5 7.6 7.7 Introduction Objectives Quality concepts Software Quality Assurance activities Software reviews Formal Technical reviews The SQA plan Quality standards 7.7.1 The ISO approach 7.7.2 The Capability Maturity Model 7.8 Software quality factors 7.9 Summary 7.10 Self Check Exercise 7.11 References 122

Chapter 8 SOFTWARE CONFIGURATION MANAGEMENT 8.0 8.1 8.2 Introduction Objectives Baselines 135

X
8.3

BSIT 44 Software Engineering

8.4 8.5 8.6

The SCM process 8.3.1 Identification of objects in software configurations 8.3.2 Version control 8.3.3 Change control 8.3.4 Configuration auditing 8.3.5 Status Reporting Summary Self Check Exercise References 150

APPENDIX I Glossary II Further References

S-ar putea să vă placă și