Beruflich Dokumente
Kultur Dokumente
Reviewer Profile
Mr. B. V. Ravindra Prasad, B.E. (Computer Science) Mysore University, MS
(Software Engineering) Bits Pilani is Assistant professor in MCIS. He has
experience in Networking, Embedded systems and testing / HCL, CITRIX, IBM,
SATHYAM, LRDE subjects. His area of interest includes RTOS, Networking,
Testing, and Aerospace Standards.
Unit 1
Software Development Approaches 1
Unit 2
Software Design Processes 8
Unit 3
Software Reliability 26
Unit 4
Software Design Principles 52
Unit 5
Object Oriented Design 80
Unit 6
Assessment of Process Lifecycle Models 104
Unit 7
Configuration Management 126
Unit 8
Software Testing Techniques 151
Unit 9
Software Testing Assurance 171
Unit 10
Software Testing Strategies 194
Unit 11
People and Software Engineering 202
Unit 12
Software Technology and Problem Solving 216
Unit 13
Diversification of Problem Solving Strategies in SE 233
Unit 14
Case Study 252
Acknowledgement, References and Suggested Readings 266
BCA 5030/BT 0081/IMC 5030
Software Engineering
SUBJECT INTRODUCTION
Software Engineering (BT0081) is a four credit subject in BScIT Program.
This SLM explores the concepts of software engineering, as its importance
is very well felt in software community and attempts to develop technologies
that will make it easier, faster and less expensive to build high quality
software products. More emphasis is given on software development
strategies and assessment of process life cycle models. This SLM on
“Software Engineering” is divided into fourteen units. The brief account of
them is given below:
Unit 1: Software Development Approaches
Computer software has become a driving force. It is the engine that drives
business decision making. This unit explains the evolving role of software.
Various software characteristics and its applications are also discussed in
this unit.
Unit 2: Software Design Process
Software systems are now omnipresent. Software is used to help run
manufacturing industry, schools, universities, health care, finance and
government. This unit describes the meaning and definition of software
engineering and various software development models such as – serial or
linear sequential development model, iteration model, increment model,
finally parallel or concurrent development model.
Unit 3: Software Reliability
Reliability is the most important dynamic characteristic of almost all software
systems. Unreliable software results in high costs for end-users. This unit
deals with the software reliability metrics and programming for reliability.
This unit also gives a brief account of software reuse.
Unit 4: Software Design Principles
The output of the requirement analysis process is a set of system models
that present abstract description of the system to be developed. This unit
deals with the system models, software and architectural design.
Unit 5: Object Oriented Design
Object-oriented design transforms the analysis model created using object-
oriented analysis into a design model that serves as a blueprint for software
construction. This unit covers the object oriented design, service usage,
object interface design and structural decomposition.
Unit 6: Assessment of Process Life-cycle Models
In software development, the critical role of time as a factor in development
is considered, including not only the various scheduling constraints on time
to develop, but also the business-driven parameter of time to market. This
unit covers the overview of the assessment of process, the dimension of
process, and the need for a business model in software engineering.
Unit 7: Configuration Management
Large software systems may be considered as configuration of components.
Many different versions, made up of different component configurations of
the system are created. This unit covers change management, version and
release management, software maintenance, software reengineering, and
software re-factoring.
Unit 8: Software Testing Techniques
The importance of software testing and its implications with respect to
software quality cannot be overemphasized. This unit deals with the
software testing fundamentals, testing principles, white box testing, control
structure testing, black box testing, boundary value analysis, and testing
GUIs.
Unit 9: Software Testing Assurance
Verification and validation encompass a wide array of software quality
assurance activities that include formal technical reviews, quality and
configuration audits, performance monitoring etc. This unit deals with the
verification and validation (V&V), test plan, test strategies, testing methods
and tools.
Unit 10: Software Testing Strategies
Testing is a set of activities that can be planned in advance and conducted
systematically. For this reason, a template for software testing should be
defined for the software process. This unit covers the organizing for
software testing, software testing strategy, unit testing, top-down integration,
and bottom-up integration testing.
Unit 11: People and Software Engineering
Multidisciplinary thinking helps us to understand problems better and
therefore solve problems more effectively. This unit covers the traditional
software engineering, the importance of people in problem solving process,
and the human driven software engineering.
Unit 12: Software Technology and Problem Solving
Information technology has ubiquitously influenced business and affected
management approaches to problem solving. A key manifestation of this
technology is the software technology that has pervaded all aspects of life,
from household appliances to entertainment devices and communication
media. This unit deals with the software technology as enabling business
tool and a limited business tool.
Unit 13: Diversification of Problem Solving Strategies in SE
The factors that have contributed to the diversification of software process
models have often been related to the expansion in goals and capabilities in
the software industry. This unit covers the understanding of diversification
in software engineering, the hidden value of differences and skills required
at the project management levels.
Unit 14: Case Study
Business schools have been using case studies for years to develop a
student’s analytical abilities, but they are rarely seen in software engineering
courses. Here one such a case study is presented which focus the students
on specific software development problems.
Objective of studying the subject
After studying this subject, you should be able to:
apply all the software design principles
develop industry standard software based on object oriented design
test the developed software using various testing strategies