Bcar 402
Bcar 402
BABASAHEB AMBEDKAR
OPEN UNIVERSITY
BCA
BCAR-402
Software Engineering
SOFTWARE ENGINEERING
ISBN 978-93-91071-27-1
Edition : 2021
Acknowledgment
We sincerely hope this book will help you in every way you
expect.
Software Engineering
BLOCK 1 : INTRODUCTION TO SOFTWARE ENGINEERING
In this block, we will detail about the basic of Process based Management
and idea about Standard Software Development Process. The block will focus on
the study and concept of Managing the Software Development Process and
identifying the Software Model. You will give an idea on Milestones Baseline,
Cost Estimation, Ray Leigh Curve and Documenting the Schedule.
After studying this block, you will make to learn and understand about the
basic of Empirical Estimation Techniques such as COCOMO model. The concept
related to Software Configuration Management and Maintenance Processes along
with Version Control are also explained to the students. The student will be
demonstrated about Empirical Relationships techniques.
Block Objectives :
After learning this block, you will be able to understand :
• Project Scheduling
• Resource Management
• Risk Management
• Documentation Standards
• Version Control
Block Structure :
Unit 1 : Introduction to Software & Software Engineering
1.1 Introduction :
Software Engineering is about methods, tools and techniques used for
developing software. Software surrounds us everywhere in the industrialized
nations – in domestic appliances, communications systems, transportation systems
and in businesses. Software comes in different shapes and sizes – from the
program in a mobile phone to the software to design a new automobile.
Let us understand what Software Engineering stands for. The term is
made of two words, software and engineering.
1
Software Engineering Software is program which is a collection of related instructions organized
for a common purpose. Software accept input from the user and gives meaningful
output.
On the other hand, engineering is a process in which product development
by considering the analysis, development models and methods.
Software Engineering
Software engineering is an engineering in which product development
is carry on by the developers and team by considering the analysis with
development models and methods, which then going to test by the tester and
release to the customer.
Software engineering is a discipline for solving business problems by
designing and developing software–based systems.
Check Your Progress – 1 :
1. is program which is a collection of related instructions organized
for a common purpose.
a. Software b. Instruction c. Project d. None of Above
2. is a process in which product development by considering the
analysis, development models and methods.
a. Software Development b. System Development
c. Engineering d. All of Above
2
fundamental changes caused by this computerization were driven by the actions Introduction to
of a large number of independently operating programmers. Software &
Software Engineering
However, another trend was occurring, largely hidden from public view.
Software was growing greatly in size and becoming extremely complex. The
evolution of word processing software is a good illustration.
The explosive growth of personal computers is in the 1980s and 1990s.
The growth has continued to the present day, with computing now done on
smartphones, tablets, and other devices. As indicated, many of the initial
versions of some of the earlier software products have evolved into very large
systems that require more effort than one individual can hope to devote to
any proj–ect.
A moment's thought might make you think that standards such as Hypertext
Markup Language (HTML) and the Java programming language with its
application programming interfaces have changed everything. There are more
recent developments. Application frameworks and cloud computing have been
major players, along with highly mobile devices such as smartphones and tablets
with their specialized user interfaces.
There are also inexpensive, high–quality application development
frameworks and software development kits. There are many sixteen–year–olds
who are making a large amount of money as web page designers, although
this is relatively less frequent in 2014, since many elementary school students
in the United States are taught how to design a web page before they reach
their teens. One of the job skills most in demand now is "web master"–a job
title that did not even exist in 1993. A casual reading of online job listings
might lead you to believe that we have gone back to the more freewheeling
days of the 1980s.
Certainly, the effects of technology have been enormous. It is also true
that nearly anyone who is so inclined can learn enough HTML in a few minutes
to put together a flashy web page.
However, the problem is not so simple. Even the most casual user of
the Internet has noticed major problems in system performance. Delays make
waiting for glitzy pictures and online animations very unappealing if they slow
down access to the information or services that the user desired. They are
completely unacceptable if they cannot display properly on many portable
devices with small screen "real estate."
Proper design of websites is not always a trivial exercise. As part of
instruction in user interface design, a student of mine was asked to examine
the main websites of a number of local universities to obtain the answer to
a few simple questions. The number of selections (made by clicking a mouse
button) ranged from five to eleven for these simple operations. Even more
interaction was necessary in some cases because of the need to scroll through
online documents that were more than one screen long, or even worse, more
than one screen wide. Efficiency of design is often a virtue.
Several issues may not be transparent to the casual user of the Internet.
Perhaps the most troublesome is the lack of systematic configuration management,
with servers moving, software and data being reorganized dynamically, and
clients not being informed. Who has not been annoyed by the following famous
message that appears so often when attempting to connect to an interesting
website ?
3
Software Engineering
5
Software Engineering • Maintenance
• Quality assurance
• Training
• Resource estimation
• Project management
Analysis of a problem is very often undertaken by experts in the particular
area of application.
The requirements phase of an organization's software life cycle involves
precisely determining what the functionality of the system will be. If there is
a single customer, or set of customers, who is known in advance, then the
requirements process will require considerable discussion between the customer
and the requirements specialists on the software team.
The design phase involves taking the requirements and devising a plan
and a representation to allow the requirements to be translated into source code.
A software designer must have considerable experience in design methodology
and in estimating the trade–offs in the selection of alternative designs. The
designer must know the characteristics of available software systems, such as
databases, operating systems, graphical user interfaces, and utility programs that
can aid in the eventual process of coding.
Coding activity is most familiar to students. We note, however, that many
decisions about coding in object–oriented or procedural languages might be
deferred until this point in the software life cycle, or they might have been
made at the design or even the requirements phase. Since coding standards
are often neglected in many first– and second–year programming courses, and
they are critical in both large, industrial–type systems and for small apps that
are evaluated for quality in an app store before they are allowed to be placed
on sale.
Software testing is an activity that often begins after the software has
been created but well before it is judged ready to be released to its customer.
It is often included with software integration, which is the process of combining
separate software modules into larger software systems.
Documentation includes much more than simply commenting the source
code. It involves rationales for requirements and design, help files, user manuals,
training manuals, technical guides such as programming reference manuals, and
installation manuals.
The term software maintenance is used to describe those activities that
are done after the software has been released. Maintenance includes correcting
errors found in the software; moving the software to new environments,
computers, and operating systems; and enhancing the software to increase
functionality.
Quality assurance, or QA, is concerned with making certain that both
the software product that is produced and the process by which the software
is developed meet the organization's standards for quality. The QA team is often
responsible for setting the quality standards. In many organizations, the QA
team is separate from the rest of the software development team.
6
Check Your Progress – 4 : Introduction to
Software &
1. Software engineering involves ________.
Software Engineering
a. Design b. Coding
c. Documentation d. All of Above
2. Explain tasks involves in Software Engineering.
7
Software Engineering 1. Preliminary Investigation : The first phase of SDLC is Preliminary
Investigation. Before any system are developed users, managers or
concerned person have to request for the particular system to be developed.
This activity is called preliminary investigation. When the request is made
at that time the preliminary investigation begins. There are three parts
of Preliminary Investigation which are as follows :
1.1 Request Clarification : This is the main or very important phase
of preliminary investigation. The user and employee should be
cleared about actual requirement because many requests from the
user and employee are not clearly defined. If the requests are not
clearly defined then we cannot develop or improve the new system
or existing system. Before any further steps can be taken, the
project request must be clearly stated.
1.2 Feasibility Study : Before any request is passed or approved a
feasibility study is conducted because you can determine that the
requested system is feasible or not. There are three aspects in
feasibility study which are as follows :
A. Technical Feasibility : This involves the study whether a
current equipment or technology is sufficient or not. Can the
work for the project be done with current equipment, existing
software technology, and available workers ? If new technology
is required then what is the possibility that it can be developed?
B. Economic Feasibility : This study finds out whether the
request in the particular project will be beneficial in future
or not. If the return on the investment is good then it is
advisable to start the project.
C. Operational Feasibility : User acceptance level is checked
in this study. This phase also determines whether user will
accept or reject a new system. Will the system be used if
it is developed and implemented ?
The feasibility study carried out by a small group of people,
who are familiar with information system techniques;
understand the part of the business or organization.
1.3 Request Approval : It is not necessary that all requested projects
are desirable or feasible. However, those projects are not feasible
and desirable should be put into schedule. The management decides
which projects are most urgent and schedule them accordingly.
After a project request is approved, its cost, priority, completion
time, and workers requirement are estimated.
2. Determination of System Requirements : At the heart of system analysis
is a detailed understanding of all important fact of business are under
investigation. Analysts, working closely with employees and managers,
must study the existing business process to answer the following questions :
What is being done ?
How it is being done ?
How frequently does it occur ?
How great is the volume (amount) of transaction or decisions ?
8
How well is the task being performed ? Introduction to
Software &
Does a problem exist ?
Software Engineering
If a problem is existing, how series is it ?
If a problem is existing, what is the underlying (basic) cause ?
To answer the above questions, system analyst talks to variety of person
together to collect the details about the business process and their
opinions. Some tools are used in analysis like data flow diagrams,
interviews, on–site observations and questionnaires. Following is the
Information Sources :
User of a system.
Forms and documents used in the organization.
Procedure manuals and rulebook, which specifies how various
activities are carried out in the organization.
Various reports used in the organization.
Computer programs of existing systems.
3. Design of System / System Design : The design of an information system
produces the details that state how a system will meet the requirements
identified by during system analysis. There are two types of system design
which are as follows:
3.1 Logical Design : The process of how system will meet the
requirements identified during system analysis is known as a Logical
Design. System Specialists often refers to this stage as Logical
Design.
3.2 Physical Design : The process of developing program software,
which is known as Physical Design. System analysts start the
process of designing by identifying reports and other outputs the
system will produce. During the design phase, the logic of the
program is designed, files or database are designed, and program
testing and implementation plans and draw up. Designers are
responsible for providing the program with complete and clearly
outline software applications.
4. Development of Software : Software development process involves
installation of software, purchase of software or they may write completely
new software. The choice depends on the cost of each opinion, the time
available to write software, and the availability of programmers.
Programmers are also responsible for documenting the program, providing
an explanation of how and why certain procedures are coded in specific
ways. Documentation is essential to test the program and carry–on
maintenance once the application has been installed.
5. Software Testing : During software testing, the software is used
experimentally to ensure that the software works perfectly. Data are input
in the software and the result of software is checked for that data. Testing
is performed by analyst, users and persons who are not at all connected
with the system.
9
Software Engineering 6. Implementation and Evaluation :
6.1 Implementation : Implementation is the process of having system
workers to check out, and put new equipment into use, train users,
install the new applications and construct any files or data needed
to use it. During this phase, they will run both old and new systems
in parallel way to complete the result.
6.2 Evaluation : Evaluation of the system is performed to identify
its strength and weakness and a plan for its improvements is draw
up. Evaluation consists of four phase which are as follows:
A. Operational Evaluation : Measurement of the way in which
software functions including difficulty in use, response time,
suitability of information formats, overall reliability, and
level of utilization.
B. Organizational Impact : Identification and measurement of
the benefits to organization in such areas as financial concern,
operational efficiency, and competitive effects include the
effects of internal and external information flow.
C. User Manager Assessment : It is the evaluation of attitude
of senior and user managers within the organization, as well
as end–users.
D. Development Performance : It is the evaluation of overall
development time and efforts Conformance to budgets and
standards, and other project management criteria.
Check Your Progress – 6 :
1. Full form of SDLC is .
a. Software Development Life Cycle
b. Software Design Life Cycle
c. Software Documentation Life Cycle
d. Software Decision Life Cycle
2. Explain SDLC with its all phase.
Waterfall Model
• Advantages :
– Easy to implement and maintain.
– The initial phase of difficult examination of requirements and
systems helps in saving time later in the developmental phase.
– The requirement of resources is minimal and testing is done after
completion of each phase.
• Disadvantages :
– It is not possible to alter or update requirements.
– You cannot make changes once you are into the next phase.
– Cannot start the next phase until the previous phase is completed.
1.7.2 Iterative Model :
In this model, iteration play an important role in software development
process. Here iteration means repetition of every step in a cyclic way after
every cycle of SDLC process.
11
Software Engineering In this Model, you can start with some of the software specifications
and develop the first version of the software. After the first version if there
is a need to change the software, then a new version of the software is created
with a new iteration. Every release of the Iterative Model finishes in an exact
and fixed period that is called iteration.
Iterative Model
• Advantages :
– It is easier to control the risks as high–risk tasks are completed first.
– The progress is easily measurable.
– Problems and risks defined within one iteration can be prevented in the
next sprints.
• Disadvantages :
– Iterative model requires more resources than the waterfall model.
– The process is difficult to manage.
– The risks may not be completely determined even at the final stage of
the project.
1.7.3 Prototyping Model :
Prototype is a working system – not just an idea on paper – that is
developed to test ideas and assumptions about the new system.
• Steps in prototyping :
Identify the user's known information requirements and features need in
the system.
Develop a working prototype.
Use the prototype, and expand the lists of known system requirements.
Revise the prototype based on information gained through user experience.
Repeat these steps as needed to achieve a satisfactory system.
As the steps suggest, prototyping is not a trial – and – error development
method.
Both users and analyst collect the sufficient information from the prototype
used. And determine to meet the requirements they have collected. Usually,
one of the four alternatives is selected.
12
Introduction to
Software &
Software Engineering
Prototype Model
• Advantages :
– Prototyping involves the use of labor–saving software; this software has
embedded database management system.
– Even personnel computer can provide an effective approach to prototyping
as there is no interfere from another user database can be used.
– Prototyping can be used with SDLC or in combination with SSADM
or independently develop a new system.
• Disadvantages :
– Leads to implementing and then repairing way of building systems.
– Practically, this methodology may increase the complexity of the system
as scope of the system may expand beyond original plans.
– Incomplete application may cause application not to be used as the full
system was designed Incomplete or inadequate problem analysis.
1.7.4 Evolutionary Model :
It is also called successive versions model or incremental model. At first,
a simple working model is built. Subsequently it undergoes functional
improvements & we keep on adding new functions till the desired system is
built.
Large projects where you can easily find modules for incremental
implementation. Often used when the customer wants to start using the core
features rather than waiting for the full software. Also used in object–oriented
software development because the system can be easily portioned into units
in terms of objects.
13
Software Engineering
Incremental Model
• Advantages :
– User gets a chance to experiment partially developed system
– Reduce the error because the core modules get tested thoroughly.
• Disadvantages :
– It is tough to divide the problem into numerous types that would be
suitable to the customer which can be incrementally executed & delivered.
1.7.5 Spiral Model :
The spiral model is proposed by Barry Boehm in which prototyping is
used to control cost. The Boehm spiral model has become quite popular among
ADE (Aerospace Defense and Engineering) specialists, and is not so familiar
among business developers. It is particularly useful in projects, which are risky
in nature. Business projects are more traditional. They tend to use mature
technology and to work well–known problems.
Spiral Model
14
• Advantages : Introduction to
Software &
– Risk avoidance chance is enhanced due to the importance on risk analysis.
Software Engineering
– It's a good model for complex and large systems.
– Depending on the changed circumstances additional functionalities can
be added later on.
– Software is produced early in the cycle.
• Disadvantages :
– It's a costly model and requires highly specialized expertise in risk
analysis.
– It does not work well in simpler projects.
Check Your Progress – 7 :
1. Write a note on Waterfall Model.
1.10 Glossary :
1. Software – It is program which is a collection of related instructions
organized for a common purpose. Software accept input from the user
and gives meaningful output.
2. Engineering – It is a process in which product development by considering
the analysis, development models and methods.
3. Software Engineering – It is an engineering in which product development
is carry on by the developers and team by considering the analysis with
development models and methods, which then going to test by the tester
and release to the customer.
1.11 Assignment :
1. Explain Software Development Life Cycle in detail.
1.12 Activities :
1. Differentiate all the Software Model.
16
1.14 Further Reading : Introduction to
Software &
1. Software Engineering: A Practitioner's Approach Book by Roger S. Software Engineering
Pressman
2. W. Shewhart, Statistical Method from the Viewpoint of Quality Control,
Dover, 1986.
3. W.E. Deming, Out of the Crisis, SPC Press, 1982; reprinted in paperback
by MIT Press, 2003.
4. T. Gilb, Software Metrics, Little, Brown, and Co., 1976.
5. R. Zultner, "The Deming Approach to Quality Software Engineering,"
Quality Progress, vol. 21, no. 11, 1988, pp. 58–64.
6. W.H. Dana, The X–15 Lessons Learned, tech. report, NASA Dryden
Research Facility, 1993
17
Software Engineering
Unit
INTRODUCTION TO SOFTWARE
02 PROJECT MANAGEMENT
UNIT STRUCTURE
2.0 Learning Objectives
2.1 Introduction
2.2 Introduction to Software Project Management
2.3 History of Project Management
2.4 Software Project
2.5 Need of Software Project Management
2.6 Software Project Manager
2.7 Sub–Team needed in Software Engineering Projects
2.8 Software Management Activity
2.9 Project Preparation
2.10 Resource Organization
2.11 Risk Organization
2.12 Project Implementation and Monitoring
2.13 Project Communication Organization
2.14 Configuration Organization
2.15 Concept of Tailoring
2.16 Extreme Programming
2.17 Let Us Sum Up
2.18 Answers for Check Your Progress
2.19 Glossary
2.20 Assignment
2.21 Activities
2.22 Case Study
2.23 Further Readings
19
Software Engineering 2.3 History of Project Management :
However, project management has been around for thousands of years.
Project management was involved in the planning, coordination, and construction
of the Ancient Wonders of the World. However, project management has grown
to include today's energy production sectors, construction efforts, and more.
Project Management in 18th Century : Elements of Project Management
Transcend Time. The basic principles of project management have remained
the same throughout history, regardless of technology and capacity. These
elements include managing resources, maintaining schedules, and coordinating
of different activities and tasks. However, ancient and other historic marvels
of project management do not routinely involve schedule optimization.
Project Management in 19th Century : In the late 19th century, the
need for more structure in construction, manufacturing, and transportation
sectors gave rise to modern project management tactics. For example, the
creation of the Transcontinental Railroad, corduroy roads, and the rebuilding
of the South after the Civil War were primary feats of project management
applications.
The Transcontinental Railroad is considered to be the first, large–scale
project management undertaking. Often, people forget about the true scope of
this project as it included traversing treacherous terrain and weather to construction
a railway and telegraph line.
Project Management in 1900 to 1950 : The Birth of Modern Project
Management and Henry Gantt.
As the 19th century progressed, business leaders began to face the
challenges of labor laws and regulations from the federal government. Henry
Gantt, considered the founding father of modern project management, developed
planning and control techniques, such as the famous Gantt Chart to ensure
monitoring and control of the project schedule. This basic bar chart shows the
phases of a project from inception to completion.
Project Management in 1911 under Frederic Taylor : Frederic Taylor
published a book, "The Principles of Scientific Management," in 1911, which
was based on his experience in the steel industry. The goal of the book was
to give unskilled workers to opportunity to work on new, complex projects
by learning skills rapidly and through simplicity.
In addition, he identified how many workers would routinely work below
capacity through soldiering to ensure future job security. Furthermore, he
identified the need to create incentive–based wage systems and take advantage
of time saving techniques.
Project Management in 1950 to 1980s : PERT and CPM : After WWII,
project managers began to follow two mathematical ways of conducting and
managing projects. Program Evaluation Review Technique, or PERT, analyzes
individual tasks by asserting a minimum amount of time for completion. The
Critical Path Method, or CPM, factored in all activities, the completion time
of such activities, and how they relate to identify inefficiencies. However, CPM
quickly became riddled with confusion.
Project Management in 1980 to 2000 : Computers and Project
Management: Computers brought connectivity and communication to the forefront
of project management in the 1980s. As technology grew into the 1990s, the
20
Internet became widely available through dial–up means. Some project Introduction to
management entities created systems for project management purposes, but it Software
was not until the late 19th century when the newfound era of computers and Project Management
project management truly began.
Project Management in 2000 till today : Rise of Automation and
Maturity of Efficiency: As computer–controlled options and complex algorithms
were developed, project manager began to complete more work in less time
with fewer errors than ever before in history. As the Internet grew, web–based
project management applications were developed. Today, web–based project
management applications may be seen on mobile devices, individual computers,
and wide–scale ERP systems.
Check Your Progress – 2 :
1. The principles of scientific management are published by .
a. Henry Gantt b. Frederic Taylor
c. Both of these d. None of these
Above image shows three restrictions for software projects. Time, Cost
and Quality is an important part of software organization because deliver the
project on time as per the schedule looking into consideration of client's budget
and deliver the quality product. There are numerous internal and external
factors, which may affect these three restrictions.
Therefore, software project management is important to combine user
requirements along with budget and time restriction.
Check Your Progress – 3 :
1. Software project management is important to combine user requirements
along with .
a. Time b. Cost c. Quality d. All of Above
21
Software Engineering 2.6 Software Project Manager :
A software project manager is a person who accepts the responsibility
of implementing the software project. Software project manager is aware of
SDLC and it's all phase. The project manager controls and manages the activities
of software project, but he is not directly involved in development of the final
product.
A project manager carefully monitors the process of development, makes
and implements various plans, organize required resources, keeps communication
among all team members in order to consider issues of cost, resources, time,
quality and customer satisfaction.
Responsibilities of project manager are as follows :
• Managing People
Act as project leader
Lesion with investors
Managing human resources
Setting up reporting order etc.
• Managing Project
Defining and setting up project opportunity
Managing project management activities
Monitoring development and performance
Risk study at each phase
Take required step to avoid or come out of problems
Act as project spokesperson
Check Your Progress – 4 :
1. is a person who accepts the responsibility of implementing
the software project.
a. Software Project Manager b. Software Design Manager
c. Software Testing Manager d. Software Development Manager
2. Write a note on Software Project Manager.
24
Documentation Team – This team is responsible for the project Introduction to
documentation. This includes external documentation of the requirements, design, Software
source code, and other supporting documents. Project Management
25
Software Engineering • Scope Management : Scope management contains all the activities,
process required to perform in order to make a deliverable software.
Scope management is important because it makes boundaries of the
project by clearly defining what would be done and what would not be
done in the project.
During Scope management, it is essential to –
State the possibility
Decide its confirmation and control
Divide the project into smaller parts for ease of management.
Validate the scope
Control the scope by including changes to the scope
• Project Estimation : There must be accurate estimation of various
measures for an effective management. With the exact estimation, managers
can manage and control the project more professionally and successfully.
Project estimation involves the following :
• Software Size Estimation : Size of software estimated either by calculating
number of functions in the software or by KLOC (Kilo Line of Code).
Functions differ according to the requirement of the user.
• Effort Estimation : It refers to employee requirement and man–hour
required to produce the software. Software size should be known for
effort estimation. This is done by manager's experience, and old data
of organization.
• Time Estimation : It refers to estimation of the time required to develop
the software. Required efforts is separated into sub categories as per the
customer requirements and interdependency of the software components.
Software development is divided into smaller responsibilities, activities
or events by Work Breakthrough Structure (WBS). The responsibilities
are planned on day–to–day basis. The sum of time required to complete
all responsibilities in hours or days is the total time invested to complete
the project.
o Cost Estimation : It is the most difficult of all because it depends on
more elements than any of the previous ones. Following criteria is going
to consider in cost estimation :
Size of the software
Quality of the Software
Hardware
Additional software or tools, licenses etc.
Skilled employees with task–specific skills
Travel involved
Communication
Training and support
26
Check Your Progress – 6 : Introduction to
Software
1. Explain software management activity.
Project Management
27
Software Engineering • Manage Resources by producing resource request when they are required
and de–allocating them when they are no more needed.
Check Your Progress – 8 :
1. Write a short note on Resource Management.
29
Software Engineering 2.13 Project Communication Organization :
Effective communication plays important role in the success of a project.
It ties gaps between client and the organization, among the team members as
well as other stake holders in the project such as hardware suppliers.
Communication can be oral or written. Communication management
process include the following steps :
• Planning – It refers to the identifications of all the investors in the project
and the method of communication among them. It also reflects if any
extra communication facilities are essential.
• Sharing – It refers to manager focuses on sharing correct information
to the correct person at the correct time. This keeps everyone involved
in the project up–to–date with project progress and its status.
• Feedback – Project managers use feedback and create status and
performance reports. This ensures that input from various investors is
coming to the project manager as their feedback.
• Closure – At the end of each major event, end of a phase of SDLC
or end of the project itself, administrative closure is formally announced
to update every investor by sending email, by issuing a hardcopy of
document or by other mean of effective communication.
Check Your Progress – 11 :
1. Explain Project Communication Management.
30
• Change Control : Introduction to
Software
It is referred to as a function of configuration management, which ensures
Project Management
that all modification made to software system are reliable and complete as per
organizational rules and regulations.
A change in the configuration of product goes through following steps –
o Identification – A modification request arrives from internal or external
source. When change request is recognized formally, it is correctly
documented.
o Validation – Validity of the modification request is checked and its
management procedure is confirmed.
o Analysis – The effect of modification request is analyzed in terms of
schedule, cost and required efforts. Overall effect of the probable
modification on the system is analyzed.
Check Your Progress – 12 :
1. Write a detail note on Configuration Management.
31
Software Engineering Check Your Progress – 13 :
1. What is meant by Tailoring ?
a. Tool for quality assurance
b. Software development tool
c. Process of extracting a set of processes, tasks and artifacts from the
organizations established processes, tasks and artifacts so as to best
suit a project to achieve its objectives.
d. None of these
32
2.17 Let Us Sum Up : Introduction to
Software
In this unit we have learnt that how software project management is Project Management
carried on as well as need of software project management such as software
project manager and sub–team needed to perform various operation at different
stages.
We also discussed software project management activity, project scheduling,
resource management, and risk management which plays an important role in
each stage. It is also noted that in each stage of software project management
is monitor by project management so that project can fulfill the user requirements.
33
Software Engineering 2.19 Glossary :
1. SPM – Software project management understand, plan, measure and
control of project as delivering on time and budget problems of contiguous
and chained allocation.
2. Extreme Programming – The team responsibility for codes or coding
in consistent pattern which keeps system running and integrated at all
times.
3. Risk Management – It is a strategy to deal with hazard and risk, designed
to ensure that priorities are made, action taken and available resources
put to maximum effect.
2.20 Assignment :
1. Explain Software Project management in detail.
2.21 Activities :
1. Study activities of all sub–team of software project management.
34
Unit
SOFTWARE PROJECT PLANNING
03 TOOLS AND TECHNIQUES
UNIT STRUCTURE
3.0 Learning Objectives
3.1 Introduction
3.2 Work Breaks Down Structure (WBS)
3.3 Software Sizing
3.4 Milestones Baseline
3.5 Cost Estimation
3.6 Ray Leigh Curve
3.7 LOC and FP Estimation
3.8 Documenting the Schedule
3.9 Developing the Activity Network
3.10 Empirical Relationships
3.11 Effort Distribution
3.12 Empirical Estimation Techniques – COCOMO
3.13 Let Us Sum Up
3.14 Answers for Check Your Progress
3.15 Glossary
3.16 Assignment
3.17 Activities
3.18 Case Study
3.19 Further Readings
3.1 Introduction :
Software project planning actually encompasses all estimation, risk analysis,
scheduling, and SQA/SCM planning. However, in the context of set of resources,
planning includes estimate – your effort to determine how much money, effort,
resources, and time it will take to develop a specific software–based system
or product.
35
Software Engineering 3.2 Work Breaks Down Structure (WBS) :
Work Breakdown Structure is a tool project managers use to break
projects down into manageable pieces. The Work Breakdown Structure is an
essential tool to set the project scope. It forms the agreement between you
and your client on what is included and what is not included in your end
deliverable. Creating a Work Breakdown Structure requires a substantial amount
of energy, time and people, but in the end is not rocket science. The Project
Management Body of Knowledge defines the work breakdown structure as a
"deliverable oriented hierarchical decomposition of the work to be executed
by the project team." The work breakdown structure visually defines the scope
into manageable chunks that a project team can understand, as each level of
the work breakdown structure provides further definition and detail.
36
Check Your Progress – 1 : Software Project
Planning Tools and
1. What is Work Breakdown Structure ?
Techniques
a. Division of software development process
b. Tool used for breaking the whole project into manageable pieces
c. Task allocation
d. None of these
Curve
The Rayleigh Distribution models show development program's effort
which ramp–up the peak value and over certain time frame.
38
Software Project
Planning Tools and
Techniques
Distribution Formula
A two Rayleigh curves when combined describes the major project
requirements or variants that comes all through the development. If additional
requirements are obtained before peak, then it is possible to model the total
expenditure by using one Rayleigh Curve as shown in below figure.
39
Software Engineering • Disadvantage of LOC :
As defined on code, it is hard to measure size of specification with it.
It is limited to particular size, namely length and has no functionality
or complexity.
It has great line of code due to worst software design.
It depends on certain language.
Hard for users to understand.
• FP Estimation :
FP which is Function Points is basic data from which the productivity
metrics could be solved. Such type of data is used in two ways :
In form of an estimation variable used to size every element of software,
In form of baseline metrics gathered from past projects used in conjunction
with estimation variables to get cost and effort projections.
It is noted that the idea of this is to find and count number of different
functions like :
External inputs which are normally in shape of file names
External outputs that can be reports, messages etc.
Queries which can be interactive in response
External files or interfaces which are files that are shared with software
systems
Internal files that are not seen outside system
It is noted that such above functions individually assessed for complexity
and weight age which varies from simple to complex internal files.
• Advantages of FP :
It is not specific to code
It has no dependency on language
In the data is seen early in project as detailed specification.
It is more accurate
• Drawbacks of FP :
It requires subjective counting
It is very difficult to automate and hard to calculate
It does not considered quality of output
It is more towards traditional data processing applications
Effort prediction by unadjusted function is worse with addition of TCF
Check Your Progress – 6 :
1. What are the advantages of using Function Point (FP) ?
a. It is not specific to code
b. It is used to measure the size of software
c. It depends on certain language
d. None of these
40
3.8 Documenting the Schedule : Software Project
Planning Tools and
Documentation of software includes written text that joins computer Techniques
software. It explains how it operates or how to use it, and may mean different
things to individuals in different roles. Documentation is an important part of
software engineering. Types of documentation include:
• Requirements – Statements that identify attributes capabilities,
characteristics, or qualities of a system. This is the foundation for what
will be or has been implemented.
• Architecture/Design – Overview of software. Includes relations to an
environment and construction principles to be used in design of software
components.
• Technical – Documentation of code, algorithms, interfaces, and APIs.
• End user – Manuals for the end–user, system administrators and support
staff.
• Marketing – How to market the product and analysis of the market
demand.
We see that Project Scheduling includes :
Split project into tasks and estimate time and resources required to
complete each task.
Organize tasks concurrently to make optimal use of workforce.
Minimize task dependencies to avoid delays caused by one task waiting
for another to complete.
Dependent on project managers intuition and experience.
41
Software Engineering Check Your Progress – 7 :
1. What is software documentation ?
a. Text that accompanies computer software
b. Requirement document
c. Document of project process schedule
d. None of these
42
Check Your Progress – 8 : Software Project
Planning Tools and
1. What is Activity Network ?
Techniques
a. Network of various activities used in software development
b. Graphical way to analyze tasks, dependencies and the critical path
in a project
c. Both of these
d. None of these
43
Software Engineering • Analysis
• Development
• Testing
We see that effort estimation accuracy is normally applied without any
adjustments which made for differences that focuses on scope and quality as
examined while estimating the effort and system working. To improve effort
estimation, a special terminology for software effort estimation is required that
carries certain guidelines :
1. You should not mix estimation of effort with planning, budgeting or
pricing
2. In case of assessing estimation accuracy, you have to make sure that
the estimate and real effort results in comparison.
Check Your Progress – 10 :
1. What is Effort Distribution ?
a. Efforts put in the software development
b. Division of work among them members
c. It is an exercise used to produce cost estimation report which required
to get the percentage of every phase
d. None of these
44
In this : Software Project
Planning Tools and
• S is code–size
Techniques
• a, b are complexity factors
Such type of model uses three sets of a, b depending on complexity
of software. It is noted that basic COCOMO model is simple and easy since
it does not involve many cost factors and can only be applied to do rough
estimation.
Intermediate COCOMO :
This model is called as nominal effort estimation model which is obtained
with power function with a, b along with coefficient a different from basic
COCOMO.
Check Your Progress – 11 :
1. Which is also called as Nominal effort estimation model ?
a. Basic COCOMO Model
b. Intermediate COCOMO Model
c. Detailed COCOMO Model
d. None of these
3.15 Glossary :
1. Activity Network – Activity Network is a graphical way to analyze tasks,
dependencies and the critical path in a project.
2. COCOMO Model – COCOMO (Constructive Cost Models) is a form
of an algorithmic method which depends on mathematical models which
generates cost estimation.
3. Software Documentation – Documentation of software include written
text that joins computer software. It explains how it operates or how
to use it ? or may mean different things to people in different roles.
3.16 Assignment :
1. Write a short note on COCOMO model.
3.17 Activities :
1. Study Empirical relationship in detail.
4.1 Introduction :
Software maintenance is the change of software after delivery to correct
faults, to improve performance or other attributes, or to adjust the software
to a changed environment. It stands for all the modifications done after the
delivery of software. There is numeral of reasons, why changes are required;
some of them are as follows:
Market Conditions – Rules, which changes over the time like taxation
and newly announced restrictions like, how to maintain accounting, may initiation
need for modification.
Client Requirements – Over the time, customer may ask for new features
or functions in the software.
47
Software Engineering Host Modifications – If any of the hardware and/or platform (such as
operating system) of the target host changes, software changes are required
to keep flexibility.
Organization Changes – If there is any business level change at client
end, such as reduction of organization strength, getting another company,
organization offering into new business, need to change in the original software
may arise.
48
Human Elements : It is applied by team as it carries set of tools and Software Project
process features which encompass other elements. Maintenance
49
Software Engineering 3. Auditor :
The auditor is responsible for SCM audits and reviews.
Need to ensure the consistency and completeness of release.
4. Project Manager :
Ensure that the product is developed within a certain time frame.
Monitors the progress of development and recognizes issues in the SCM
process.
Generate reports about the status of the software system.
Make sure that processes and policies are followed for creating, changing,
and testing.
5. User :
The end user should understand the key SCM terms to ensure he has
the latest version of the software.
Software Configuration Management System has many advantages :
• It helps in lowering of redundant work.
• It helps in reducing problems related to configuration.
• It helps in building team coordination.
• It helps in managing tools that are required in building configuration.
• It makes sure that all bugs get traced out from its source.
Check Your Progress – 1 :
1. What are the elements of Configuration Management System ?
a. Component Element b. Process Element
c. Human Element d. All of Above
50
The steps involved in Software project maintenance includes : Software Project
Maintenance
• Requirements
• Design
• Coding
• Testing
• Integrating
52
• Identification of Critical Success Ractors : For making a project Software Project
successful, critical success factors are followed. These factors refer to Maintenance
the conditions that ensure greater chances of success of a project. Generally,
these factors include support from management, appropriate budget,
appropriate schedule, and skilled software engineers.
• Preparation of Project Charter : A project charter provides a brief
description of the project scope, quality, time, cost, and resource constraints
as described during project planning. It is prepared by the management
for approval from the sponsor of the project.
• Preparation of Project Plan : A project plan provides information about
the resources that are available for the project, individuals involved in
the project, and the schedule according to which the project is to be
carried out.
• Commencement of the Project : Once the project planning is complete
and resources are assigned to team members, the software project
commences.
Once the project objectives and business objectives are determined, the
project end date is fixed. The project management team prepares the project
plan and schedule according to the end date of the project. After analyzing
the project plan, the project manager communicates the project plan and end
date to the senior management. The progress of the project is reported to the
management from time to time. Similarly, when the project is complete, senior
management is informed about it. In case of delay in completing the project,
the project plan is re–analyzed and corrective actions are taken to complete
the project. The project is tracked regularly and when the project plan is
modified, the senior management is informed.
Check Your Progress – 3 :
1. What is the first step in software project planning ?
a. Identification of Project Requirement
b. Identification of Cost Estimate
c. Identification of Risk
d. None of Above
54 Version Control
Developers may wish to compare today's version of some software with Software Project
yesterday's version or last year's version. Since version control systems keep Maintenance
track of every version of the software, this becomes a straightforward task.
Knowing the what, who, and when of changes will help with comparing the
performance of particular versions, working out when bugs were introduced
(or fixed), and so on. Any problems that arose from a change can then be
followed up by an examination of who made the change and the reasons they
gave for making the change.
Check Your Progress – 5 :
1. What is version control used ?
a. It keeps track of every version of the software
b. It helps in comparing updates
c. It is helpful in recording changes
d. All of Above
4.9 Glossary :
1. Software Configuration Management – Software Configuration
management is a discipline which will implement changes that appears
in object that is mainly applied to construct and maintain software.
55
Software Engineering 2. Version Control – Version control is a system that records changes to
a file or set of files over time so that you can recall specific versions
later.
3. Project Planning – It involves calculation that deals in full process of
project completion in definite timeframe which are normally with certain
defined stages, and designated resources.
4.10 Assignment :
1. Write short note on software configuration management.
4.11 Activities :
1. Read more about version control.
56
BLOCK SUMMARY :
In this block, you have learnt and understand about the basic of Project
management and Extreme Programming techniques. The block gives an idea
on the study about how to manage Software Development process with concept
on Software Sizing and Empirical Relationships. You have been well explained
on the concepts of Project Planning and basic documentation standards.
The block detailed about the basic of Tailoring techniques with involvement
in terms of software modeling. The concept related to Ray Leigh Curve and
its advantages and measures on software projects are well explained to you.
You will be demonstrated practically about Empirical Estimation Techniques
related to COCOMO technique.
BLOCK ASSIGNMENT :
Short Questions :
Long Questions :
57
Enrolment No. :
1. How many hours did you need for studying the units ?
Unit No. 1 2 3 4
No. of Hrs.
2. Please give your reactions to the following items based on your reading
of the block :
58
Dr. Babasaheb Ambedkar BCAR-402
Open University Ahmedabad
Software Engineering
BLOCK 2 : SOFTWARE REQUIREMENT, DESIGN, QUALITY
MANAGEMENT & SOFTWARE TESTING
In this block, we will detail about the basic of software design, strategies,
software user interface design, design complexity and software implementation
which include all criteria of design from basic to advance as design play an
important role.
In this block, we will detail about the basic of software quality and idea
about different variables associated with it. The block will focus on the study and
concept of software testing and associated process. You will give an idea on
software quality control along with necessity of quality in software project.
After studying this block, you will make to learn and understand about the
basic of testing of software techniques along with detailed explanation on
Capability Maturity Model. The concept related to Review and Walkthrough with
respect to software configuration management are well detailed. You will be
demonstrated about User acceptance testing and its standards.
Block Objectives :
After learning this block, you will be able to understand :
5.1 Introduction :
The software requirements are explanation of required functionalities of
the aim system. Requirements convey the opportunities of users from the
software product. The requirements can be clear or hidden, known or unknown,
expected or unexpected from client's point of view.
60
5.3 Requirement Engineering Process : Software Requirement
61
Software Engineering Will the system be able to handle future transaction volume and company
growth ?
• Economic Feasibility :
A system request has economic feasibility if the projected benefits of
the proposed system balance the estimated costs involved in acquiring, installing,
and operating it. Costs can be one time or continuing, and can acquire at various
times during project development and use. When measuring costs, companies
usually consider the total cost of ownership (TCO), which includes ongoing
support and maintenance cost, as well as acquisition costs.
To determine TCO, the analyst needs to estimate costs in each of the
following areas :
People, including IT staff and users
Hardware and equipment
Software, including in–house development as well as purchases from
vendors
Formal and informal training
Licenses and fees
Consulting expenses
Facility costs
The estimated cost of not developing the system or postponing the project
In addition to costs, you need to access tangible and intangible benefits
to the company.
1. Tangible Benefits :
Tangible benefits are benefits that can be measured in dollars. Tangible
benefits result from a decrease in expenses, an increase in revenues, or both.
Examples of tangible benefits include the following :
A new scheduling system that reduces overtime.
An online package tracking system that improves service and decreases
the need for clerical staff.
A sophisticated inventory control system that cuts excess inventory and
eliminates production delays.
2. Intangible Benefits :
Intangible benefits are difficult to measure in dollars but also should be
identified.
Examples of intangible benefits include the following :
A user–friendly system that improves employee job satisfaction.
A sales tracking system that supplies better information for marketing
decisions.
A new website that enhances the company's image.
• Schedule Feasibility :
Schedule Feasibility is defined as the probability of a project to be
completed within its scheduled time limits, by a planned due date. When
accessing schedule feasibility, a system analyst must consider the interaction
62
between time & cost. For example, speeding up a project schedule might make Software Requirement
a project feasible, but much more expensive.
Other issues that relate to schedule feasibility include the following :
Has management established a certain time–table for the project ?
Will a project manager be appointed ?
5.3.2 Requirement Gathering :
If the feasibility report is positive to task the project, next phase starts
with gathering requirements from the user. Analysts communicate with the client
and end–users to know their ideas on what the software should deliver and
which features they need to include in the software.
5.3.3 Software Requirement Specification (SRS) :
After the requirements are collected from various end–users, system
analyst creates a document called SRS. It describes how the proposed software
will interact with hardware, external interfaces, speed of operation, response
time of system, portability of software across various platforms, maintainability,
speed of recovery after crashing, Security, Quality, Limitations etc.
*The requirements received from client are written in normal language.
It is the duty of the system analyst to document the requirements in technical
language so that they can be known and used by the software development
team.
There should be following features in SRS :
Requirements of user are stated in normal language.
Technical requirements are expressed in structured language.
Design explanation should be written in Pseudo code.
Format of Forms and GUI screen prints.
Conditional and mathematical notations for DFDs etc.
5.3.4 Software Requirement Validation :
The stated requirement in the document should be validated after the
requirement specification and developed. User might ask for illegal, unrealistic
solution or experts may understand the requirements inaccurately. This results
in huge increase cost.
Requirements can be checked against following circumstances :
If they can be practically executed
If they are valid and as per functionality of software
If there are any doubts
If they are complete
If they can be verified
Check Your Progress – 2 :
1. Requirement engineering process include .
a. Feasibility Study b. SRS
c. Requirement Gathering d. All of Above
63
Software Engineering 2. SRS Stands for .
a. Software Requirement System
b. Software Requirement Specification
c. Software Requirement Structure
d. None of Above
3. Write a detailed note on Feasibility Study.
64
document interviews successfully. The interviewing process consists of these Software Requirement
seven steps :
1. Determine the people to interview.
2. Establish objectives for the interview.
3. Develop interview questions.
4. Prepare for the interview.
5. Conduct the interview.
6. Document the interview.
7. Evaluate the interview.
1. Determine the people to interview :
To get an accurate picture of the system, you must select the right people
to interview and ask them the right questions. During the system analysis phase,
you might need to interview people from all levels of the organization.
Group interviews can save time and provide an opportunity to observe
interaction between the participants. Group interviews also can present problems.
One person might control the conversation, even when questions are addressed
specifically to others. Organization level also can present a problem, as the
presence of upper management in an interview can prevent lower–level employees
from expressing themselves openly.
2. Establish objectives for the interview :
After deciding on the people to interview, you must establish objectives
for the session. First you should determine the general areas to be discussed,
and then list the facts you want to gather.
You also try to request ideas, suggestions, and opinions during the
interview. The objectives of an interview depend on the role of the person
being interviewed. Upper–level manager can provide the picture and help you
to understand the system. Specific details about operations and business processes
are best learned from people who actually work with the system on a daily
basis.
3. Develop interview questions :
Creating a standard list of interview questions helps keep you on track
and avoid unnecessary discussion. If you interview several people who perform
the same job, a standard question list allows you to compare their answer to
the same questions.
The interview should consist of several different kinds of questions :
open–ended questions and closed ended questions.
o Open–Ended Questions :
– "A question that requires the respondent to express viewpoint is called
an open–ended interview".
– Open–ended questions are useful when you want to understand a large
process or draw out the interviewee's opinions, attitudes, or suggestions.
o Closed–Ended Questions :
– "A question that requires a direct answer to a question is called closed–
ended interview".
65
Software Engineering – Closed–ended questions limit or restrict the response. You use closed–
ended questions when you want information that is more specific or when
you need to verify facts.
4. Prepare for the interview :
After setting the objectives and developing the questions, you must
prepare for the interview. Careful preparation is essential because this is an
important meeting and not just a casual chat. Schedule a specific day and time
for meeting and place a reminder call to confirm the meeting.
5. Conduct the interview :
After determining the people to interview, setting your objectives, and
preparing the questions, you should develop a specific plan for the meeting.
When conducting the interview, you should begin by introducing yourself,
describing the project, and explaining your interview objectives.
During the interview, ask questions in the order in which you prepared
them, and give the interviewee sufficient time to provide thoughtful answers.
Your primary responsibility during an interview is to listen carefully to the
answers. Analysts sometimes hear only what they expect to hear. You must
concentrate on what is said and notice any nonverbal communication that take
place. This process is called engaged listening.
6. Document the interview :
You should write down a few notes to run your memory after the
interview, you should avoid writing everything that is said. Too much writing
distracts the other person and makes it harder to establish a good relationship.
After conducting the interview, you must record the information quickly.
You should set away time right after the meeting to records the facts and
evaluate the information. For that reason, try not to schedule back–to–back
interviews.
7. Evaluate the interview :
In addition to recording the facts obtained in an interview, try to identify
any possible partiality. Some interviewees might answer your questions in an
attempt to be helpful even though they do not have the necessary experience
to provide accurate information.
The system analyst will evaluate to summaries the information gathered
during the interview and verify it with the user to get accurate and complete
information.
5.5.2 Questionnaires :
In projects where it is desirable to obtain input from a large number
of people, a questionnaire can be a valuable tool. A questionnaire, also called
survey, is a document containing a number of standard questions that can be
sent to many individuals.
Questionnaires are used to obtain information about workloads, reports
received volumes of transactions handled, types of job duties, difficulties, and
opinions of how the job could be performed better or more efficiently. A typical
questionnaire starts with heading, which includes a title, a brief statement of
purpose, the name and telephone number of the contact person, the deadline
date for completion, and how and where to return the form.
66
Some additional ideas to keep in mind when designing your questionnaires : Software Requirement
Keep the questionnaire brief and user friendly.
Arrange the questions in a logical order.
Use simple terms and wording.
Limit the use of open–ended questions.
Include a section at the end of the questionnaire for general comments.
Test the questionnaire whenever possible in a small test group before
finalizing it and distributing to a large group.
5.5.3 Observation :
The observation of current operating procedure is another technique.
Seeing the system in action gives you additional viewpoint and a better
understanding of system procedures. Personal observation also allows you to
verify statements made in interviews and determine whether procedure really
operate as they are described.
Through observation, you might discover that neither the system
documentation nor the interview statements are accurate. Plan your observations
in advance by preparing a check list of specific tasks you want to observe
and questions you want to ask.
Consider the following issues when you prepared your list :
Ask sufficient questions to ensure that you have complete understanding
of the present system operation.
Observe all the steps in a transaction and note the documents, inputs,
outputs, and processes involved.
Examine each form, record, and report.
Talk to the people who receive current reports to see whether the reports
are complete, timely, accurate, and in a useful form.
5.5.4 Document Review :
Document review can help you understand how the current system is
supposed to work. Remember that system documentation is sometimes out of
date. So, you should obtain copies of actual forms and operating documents
currently in use. You also should review blank copies of forms, as well as
sample of actual completed forms. You usually can obtain document samples
during interviews with the people who perform the procedure. If the system
uses a software package, you should review the documentation for that software.
Check Your Progress – 5 :
1. A question that requires the respondent to express viewpoint is called
.
a. Questionnaire b. Open–Ended Question
c. Interview d. Closed–Ended Question
2. is used to obtain information from large number of people.
a. Interview b. Document Review
c. Observation d. Questionnaire
67
Software Engineering 3. Write a detailed note on Interview Technique.
69
Software Engineering Deliver help information
User centric approach
Group based view settings
Check Your Progress – 7 :
1. Write a note on User Interface Requirement.
70
6. Designing System : When the plan has been accepted, systems analyst Software Requirement
is responsible for designing system so that management's goal could be
achieved. System design is a time consuming, complex and precise work.
7. Evaluation System : System analyst often co–ordinates the testing
procedures and helps in deciding whether or not the new system is
meeting standards established in the planning phase.
5.9.2 Attributes of a good system analyst OR Qualities of system analyst :
System analyst must have the following attributes :
1. Knowledge of Business functions : A system analyst must know the
environments in which he or she works.
He must understand the management structure and the relationship between
departments in organizations.
A working knowledge of accounting, marketing and material management
principles is a must.
Since so many systems are built around these areas. He must familiar
with his company's product and services and management's policies in
areas concerning him.
2. Knowledge of people : Since system analyst work with others so closely,
he or she must understand their needs and what motivates them to develop
system properly.
3. Knowledge of data processing principles/Computer system : Most
systems today are computer based. The systems analyst must fully aware
about the potential and limitations of computers.
4. Ability to Communicate : As a coordinator, a system analyst must
communicate properly with people of different levels within an organization.
He should use non–technical language while communicating with other.
System analyst must listen carefully to what others said and include the
thoughts of others into the system development process.
5. Flexibility : System analysts must be flexible in their thinking since they
often do not get their own way. Different sections of organization have
conflicting needs and most systems are result of compromise. The analyst
goal is to produce the system that will be the best for his organization.
This required an open mind, and flexibilities in his ideas.
6. An analytical mind : System analyst often finds themselves with more
data than they required. It requires an analytical mind to select pertinent
data and concentrate on them in defining problems and forming solutions.
7. Well educated with sharp mind : System analysts have to work with
people of all levels in every phase of business. They must know how
to work with all of them and gain their confidence. Analyst must have
sharp mind to learn quickly how people do their job and develop ways
for them to it better.
71
Software Engineering Check Your Progress – 8 :
1. What is System Analyst ? Discuss Role and Quality of System Analyst.
5.12 Glossary :
1. Requirement Engineering – Requirement engineering (RE) refers to the
development of defining, documenting, and maintaining requirements in
the engineering process.
72
2. Feasibility Study – A system request must meet several tests to see Software Requirement
whether it is meaningful to proceed further. This series of tests is called
a feasibility study.
3. SRS – After the requirements are collected from various end–user, system
analyst creates a document called SRS.
4. Interview – An interview is a planned meeting during which you obtain
information from another person.
5. Open–Ended Question – A question that requires the respondent to
express viewpoint is called an open–ended interview.
6. Closed–Ended Question – A question that requires a direct answer to
a question is called closed–ended interview.
7. Questionnaire – A questionnaire, also called survey, is a document
containing a number of standard questions that can be sent to many
individuals.
8. System Analyst – A system analyst is a person who conducts a study,
identify activities and determine the procedure to achieve the objective.
5.13 Assignment :
1. Explain all Requirement Initiation Techniques.
5.14 Activities :
1. Differentiate Functional Requirement and Non–Functional Requirement.
73
Software Engineering
Unit
06 SOFTWARE DESIGN
UNIT STRUCTURE
6.0 Learning Objectives
6.1 Introduction
6.2 Software Design Basic
6.2.1 Software Design Level
6.2.2 Modularization
6.2.3 Concurrency
6.2.4 Coupling and Cohesion
6.2.5 Design Verification
6.3 Software Design Strategies
6.3.1 Structured Design
6.3.2 Function Oriented Design
6.3.3 Object Oriented Design
6.3.4 Software Design Approaches
6.4 Software User Interface Design
6.4.1 Command Line Interface (CLI)
6.4.2 Graphical User Interface
6.4.3 User Interface Design Activities
6.4.4 GUI Implementation Tools
6.4.5 User Interface Golden Rules
6.5 Software Design Complexity
6.5.1 Halsted's Complexity Measures
6.5.2 Cyclomatic Complexity Measures
6.5.3 Function Point
6.6 Software Implementation
6.6.1 Structured Programming
6.6.2 Functional Programming
6.6.3 Programming Style
6.6.4 Software Documentation
6.6.5 Software Implementation Challenges
6.7 Let Us Sum Up
6.8 Answers for Check Your Progress
6.9 Glossary
6.10 Assignment
6.11 Activities
6.12 Case Study
6.13 Further Readings
74
6.0 Learning Objectives : Software Design
6.1 Introduction :
Software design is a mechanism to convert user requirements into
appropriate form, which helps the developers in software coding and
implementation. It deals with by providing the client's requirement, as defined
in SRS document, into a form, that is, easily implementable using programming
language.
75
Software Engineering • Architectural Design :
Architectural design is the specification of the major components of a
system, their responsibilities, properties, interfaces, and the relationships and
interactions between them. In architectural design, the overall structure of the
system is chosen, but the internal details of major components are ignored.
Issues in architectural design include :
Gross decomposition of the systems into major components.
Allocation of functional responsibilities to components.
Component Interfaces
Component scaling and performance properties, resource consumption
properties, reliability properties, and so forth.
Communication and interaction between components.
The architectural design adds important details ignored during the interface
design. Design of the internals of the major components is ignored until the
last phase of the design.
• Detailed Design :
Detailed design is the specification of the internal elements of all major
system components, their properties, relationships, processing, and often their
algorithms and the data structures.
The detailed design may include :
Decomposition of major system components into program units.
Allocation of functional responsibilities to units.
User interfaces
Unit states and state changes
Data and control interaction between units
Data packaging and implementation, including issues of scope and visibility
of program elements
Algorithms and data structures
6.2.2 Modularization :
Modularization is a method to divide software into multiple independent
modules, which are capable of carrying out tasks independently. These modules
work as basic concepts for the whole software. Designers are responsible to
design modules so that it can be implemented separately and independently.
Modular design accidentally follows the rule of 'divide and conquer'
strategy because many other benefits involved in the modular design of software.
• Advantage of modularization :
Easier to manage smaller components.
Program can be divided based on functional characteristics.
Wanted level of concept can be taken in the program.
Components can be re–used.
Parallel execution can be made possible.
Wanted from security feature.
76
6.2.3 Concurrency : Software Design
77
Software Engineering There are five levels of coupling which are as follows :
o Content Coupling – When another module is able to access or modify
or refer to the content directly, it is known as content coupling.
o Global Coupling – When one or more modules have read and write
access to global data it is known as global coupling.
o Control Coupling – If one module decides the function of another
module or modify the flow of execution it is known as control coupling.
o Stamp Coupling – When more than one module shares common data
structure and work on different part of it, it is known as stamp coupling.
o Data Coupling – When two modules interact with each other by passing
data it is known as data coupling. If a module provides data as parameter,
then the receiving module should use all its components.
6.2.5 Design Verification :
The output of software design includes detailed description, documentation,
and complete logic diagrams of all functional and non–functional requirements.
The next phase is software implementation so it is then necessary to
verify the output before proceeding to the next phase. If design of the outputs
is in formal symbolic form, then design tools should be used for verification
else detailed design review can be used for verification and validation.
Reviewers can detect faults by structured verification method that might
be produced by supervising some conditions. A good design review is important
for good software design, accuracy, and quality.
Check Your Progress – 5 :
1. is the specification of the interaction between a system and
its environment.
a. Interface Design b. Architectural Design
c. Detailed Design d. None of Above
2. Architectural design is specification of .
a. Component of a system b. Responsibilities
c. Properties & Interface d. All of Above
3. is a method to divide a software into multiple independent
modules
a. Concurrency b. Modularization
c. Coupling d. Cohesion
4. Write a note on Coupling & Cohesion.
78
6.3 Software Design Strategies : Software Design
80
Software Design
Top–Down Design
It starts with a generalized characteristic of system and keeps on defining
the more specific part of it. When all the components are composed the entire
system comes into existence.
Top–down design is more appropriate when the software solution needs
to be planned from diagram and specific details are unidentified.
• Bottom–up Design :
The bottom–up design starts with most specific and basic components.
It proceeds with combining higher level of components by using lower–level
components. It keeps creating higher level components until the required system
is not developed as single component.
Bottom–Up Design
Bottom–up policy is more appropriate when a system needs to be created
from some existing system. Both, top–down and bottom–up approaches are not
practical independently it is good to combine both.
Check Your Progress – 2 :
1. OOD Stands for .
a. Object Oriented Development b. Object Oriented Design
c. Object Oriented Detail d. Object Oriented Document
2. Entities involved in the solution design are known as .
a. Objects b. Classes c. Inheritance d. Encapsulation
3. An object is an instance of a .
a. Inheritance b. Encapsulation c. Class d. Object
81
Software Engineering 4. Write a note on Software Design Approaches.
82
o Command – A command is an executable instruction and may have one Software Design
or more parameters. After the execution of command an output is shown
on the screen. When output is produced, command prompt is displayed
on the next line.
6.4.2 Graphical User Interface :
Graphical User Interface (GUI) provides graphical way to the user to
interact with the system. Using GUI available options, user interact with the
software in a faster speed with accuracy and more effectively.
• GUI Element :
GUI offers a set of components to work with software or hardware. Every
graphical component provides a way to work with the system. Elements of
GUI system are as follows :
Window – It is referred to an area where contents of application are
shown. Contents in a window can be shown in the form of icons or lists, if
the window represents file structure and it is easy for a user to navigate in
the file system. Windows can be minimized, resized or maximized to the size
of screen. They can be moved anywhere on the screen. A window may contain
another window of the same application, called child window.
o Tabs – If an application permits executing multiple cases of it, they
appear on the screen as separate windows.
o Menu – Menu is collection of standard commands, grouped together and
placed at top of the application window.
o Icon – An icon is small picture representing an associated application.
As you clicked or doubled click on, the application window is opened.
Icon displays programs installed on a system in the form of small pictures.
o Cursor – It refers to interacting devices such as mouse, touch pad; digital
pen is represented in GUI as cursors. Cursors are also called pointers.
It is used to select menus, windows and other application features.
• Application Specific GUI Components :
A GUI of an application contains following GUI elements :
o Application Window – Most application windows use the concepts
provided by operating systems but many use their own customer created
windows to hold the contents of application.
o Dialogue Box – It is a child window that includes message for the user
and request for some action to be perform. For Example : Application
generates a dialogue to get confirmation from user to delete a file.
83
Software Engineering o Text–Box – It is an area where user types to enter text–based data.
84
6.4.3 User Interface Design Activities Software Design
85
Software Engineering 6.4.5 User Interface Rules :
There are some rules for GUI design which are as follows :
• Consistency – It refers to consistent sequences of actions should be
required in similar situations. Identical terms should be used in prompts,
menus, and help screens.
• Enable users to use short–cuts – The user should able to use shortcuts,
function–keys, hidden commands during the interaction to reduce the
number of interactions.
• Offer feedback – There should be feedback system for every user action.
The feedback gives satisfactory result of the user on the software system
design.
• Dialog to produce closing – Sequences of actions should be organized
into groups with a starting, middle, and end.
• Simple error handling – If an error is made, the system should be able
to detect it and offer simple, mechanisms for handling the error.
• Permit easy reversal of actions – This feature releases nervousness
because the user aware about errors can be undone. It encourages study
of unaware options.
Check Your Progress – 3 :
1. CLI Stands for .
a. Command Line Interface b. Command Line Instruction
c. Command Line Information d. Command Line Implementation
2. GUI Stands for .
a. Graphical User Instruction b. Graphical User Implementation
c. Graphical User Information d. Graphical User Interface
3. Write a note on Command Line Interface.
87
Software Engineering Process to make flow control graph :
Divide program in smaller blocks, enclosed by decision–making concepts.
Create nodes representing each of these nodes.
Connect nodes as follows :
If control can branch from block i to block j
Draw an arc
From exit node to entry node
Draw an arc.
To calculate Cyclomatic complexity of a program module, we use the
formula –
V(G) = e – n + 2
Where :
e is total number of edges
n is total number of nodes
88
Software Design
• External Input :
In system input from the outside of the system is known as external
input. Uniqueness of input is measured, as no two inputs should have same
formats. These inputs can either be data or control parameters.
Simple – if input count is low and affects less internal files
Complex – if input count is high and affects more internal files
Average – if–between simple and complex.
• External Output :
All output provided by the system are known as external output. Output
is measured unique if their output format and/or processing are unique.
Simple – if output count is low
Complex – if output count is high
Average – if–between simple and complex.
• Logical Internal Files :
Every software system maintains internal files in order to maintain its
functional information and to function properly. These files hold logical data
of the system, it may contain both functional data and control data.
Simple – if number of record types are low
Complex – if numbers of record types are high
Average – if–between simple and complex.
• External Interface Files :
Software system may need to share its files with some external software
or it may need to pass the file for processing or as parameter to some function.
All these files are considered as external interface files.
Simple – if number of record types in shared file are low
Complex – if numbers of record types in shared file are high
Average – if–between simple and complex.
• External Inquiry :
An inquiry is a combination of input and output, where user sends some
data to inquire about as input and the system responds to the user with the
output of inquiry processed.
89
Software Engineering Simple – if query needs low processing and yields small amount of output
data
Complex – if query needs high process and yields large amount of output
data
Average – if–between simple and complex.
Each of these parameters in the system is specified weightage according
to their class and complexity. The table below mentions the weightage given
to each parameter :
Parameter Simple Average Complex
Inputs 3 4 6
Outputs 4 5 7
Enquiry 3 4 6
Files 7 10 15
Interfaces 5 7 10
The above table produces raw Function Points. These function points
are adjusted according to the environment complexity. System is described using
fourteen different characteristics :
Data communications
Distributed processing
Performance objectives
Operation configuration load
Transaction rate
Online data entry,
End user efficiency
Online update
Complex processing logic
Re–usability
Installation ease
Operational ease
Multiple sites
Desire to facilitate changes
These characteristics factors are then rated from 0 to 5, as mentioned
below :
No impact
Related
Reasonable
Average
Significant
Essential
90
Check Your Progress – 4 : Software Design
91
Software Engineering 6.6.2 Functional Programming :
Functional programming is style of programming language, which uses
the concepts of mathematical functions. A function in mathematics always gives
the same result on receiving the same argument.
Functional programming uses the following concepts :
• First class and High–order functions – It refers to functions which
have ability to accept another function as argument or they return other
functions as results.
• Pure functions – It refers to functions that do not include negative
updates, they do not affect any I/O or memory and if they are not in
use, they can easily be removed without hampering the rest of the
program.
• Recursion – It refers to programming technique where a function calls
itself and repeats the program code in it unless some pre–defined condition
matches. Recursion is the method of creating loops in functional
programming.
• Strict evaluation – It is referring to a method of evaluating the expression
passed to a function as an argument. Functional programming has two
types of evaluation methods, strict (eager) or non–strict (lazy). Strict
evaluation always evaluates the expression before invoking the function.
Non–strict evaluation does not evaluate the expression unless it is needed.
6.6.3 Programming Style :
Programming style is set of coding rules followed by all the programmers
to write the code. When multiple programmers work on the same project, they
need to work with the program code written by some other developer.
A proper programming style contains using function and variable names
relevant to the planned task, using well–placed indentation, and including
comment in code for the reader comfort. This makes the program code readable
and understandable by all, which in turn makes debugging and error solving
easier.
• Coding Guidelines :
Practice of coding style differs with organizations, operating systems and
language of coding itself. The following coding elements may be defined under
coding guidelines of an organization :
o Naming conventions – It refers to how to name functions, variables,
constants and global variables.
o Indenting – It refers to the space left at the beginning of line, usually
single tab.
o Whitespace – It is generally omitted at the end of line.
o Operators – It refers to the rules of writing mathematical, assignment
and logical operators. For example, assignment operator '=' should have
space before and after it, as in "x = 2".
o Control Structures – It refers to the rules of writing decision statements
and control flow statement such as if–then–else, case–switch, while–until
and in nested fashion.
92
o Line length and wrapping – It refers to how many characters are there Software Design
in one line, mostly a line is 80 characters long. Wrapping defines how
a line should be wrapped, if is too long.
o Functions – It refers to how functions should be declared and invoked,
with and without parameters.
o Variables – It refers to how variables with different data types are
declared and defined.
o Comments – The comments included in the code describe what the code
actually does and it is the important component of coding.
6.6.4 Software Documentation :
Software documentation is a vital part of software process. A document
provides information to know about software process and about how to use
the software.
A well–maintained documentation should involve the following documents :
• Requirement Documentation :
As the requirement are gather from various stakeholders by analyst it
uses as key tool for software designer, developer, and the test team to carry
out their respective tasks. It includes all the functional, non–functional and
behavioral description of the software.
Information of this document can be gathered from client using the fact–
finding techniques, or from historical data of the software. It is works as a
basis of the software to be developed and is majorly used in verification and
validation phases.
• Software Design Documentation :
These documentations include all the necessary information, which are
needed to build the software. It contains : (a) Architecture of High–level
software, (b) Detail of Software design, (c) Data flow diagrams, (d) Database
design
These documents work as source for developers to implement the software.
However, these documents do not give any details on how to code the program;
they give all necessary information that is required for coding and implementation.
• Technical Documentation :
These documentations are managed by the developers and actual coders
which represent information about the code. While writing the code, the
programmers also mention objective of the code, who wrote it, where will it
be required, what it does and how it does, what other resources the code uses,
etc.
This documentation increases the understanding among various
programmers working on the same code. It enhances re–use capability of the
code. It makes debugging easy and traceable.
• User Documentation :
This documentation is different from all the above, this explains how
the software product should work and how it should be used to get the wanted
results.
93
Software Engineering These documentations may include software installation procedures, how–
to guides, user–guides, uninstallation method and special references to get more
information like license updations etc.
6.6.5 Software Implementation Challenges :
There are some challenges faced by the development team while
implementing the software are as follows :
• Code–reuse – Programming interfaces of present–day languages are very
sophisticated and are equipped huge library functions. Still, to bring the
cost down of end product, the organization management prefers to re–
use the code, which was created earlier for some other software.
• Version Management – As the technology enhances day by day every
time new software is issued to the customer, developers have to maintain
version and configuration related documentation. This documentation
needs to be highly accurate and available on time.
• Target–Host – The software program, which is being developed in the
organization, needs to be designed for host machines at the customers
end.
But at times, it is impossible to design software that works on the target
machines.
Check Your Progress – 5 :
1. Write a note on Structured Programming.
94
4. Explain Software Documentation. Software Design
95
Software Engineering 6.9 Glossary :
1. Interface Design – Interface design is the specification of the interaction
between a system and its environment.
2. Architectural Design – Architectural design is the specification of the
major components of a system, their responsibilities, properties, interfaces,
and the relationships and interactions between them.
3. Detailed Design – Design is the specification of the internal elements
of all major system components, their properties, relationships, processing,
and often their algorithms and the data structures.
4. Cohesion – Cohesion is describing the degree of intra–dependability
within elements of a module.
5. Coupling – Coupling defines the level of inter–dependability among
modules of software.
6. Command Prompt – It is text–based notifier that shows the framework
in which the user is working.
7. Command – A command is an executable instruction and may have one
or more parameters.
8. Icon – An icon is small picture representing an associated application.
9. Menu – Menu is collection of standard commands, grouped together and
placed at top of the application window.
10. Cursor – It is a small horizontal line or a vertical bar which represent
position of character while typing.
6.10 Assignment :
1. Write a detailed note on Graphical User Interface.
6.11 Activities :
1. Explain GUI Implementation Tool.
96
Unit
SOFTWARE QUALITY
07 MANAGEMENT
UNIT STRUCTURE
7.0 Learning Objectives
7.1 Introduction
7.2 Software Quality
7.3 Verification & Validation (V & V)
7.4 Quality Control
7.5 Inspection
7.6 Walkthrough and Review
7.7 Why Standards ?
7.8 Software Quality Metrics or Parameters
7.9 Five levels of Capability Maturity Model (CMM)
7.10 Let Us Sum Up
7.11 Answers for Check Your Progress
7.12 Glossary
7.13 Assignment
7.14 Activities
7.15 Case Study
7.16 Further Readings
7.1 Introduction :
Software quality management is related with ensuring the required level
of quality which Software should have in order to work with its product.
Appropriate quality standards and procedures will make sure that such quality
standard in software needs to be adopted. It is moreover going well with quality
culture that appears due to creation and maintenance of certain standards with
responsibility.
Quality Management Activities :
• Quality Assurance : It is related to establishing organizational quality
standards and procedures.
97
Software Engineering • Quality Planning : This will adopt and select applicable quality standards
and procedures for particular software project.
• Quality Control : This will encompass quality standards and procedures
that are followed at the development time by development team.
98
User Developer Measurable Software Quality
Management
Internal Qualities
Test Coverage X Yes
Testability X Hard
Portability X Somewhat
Thread–Safeness X Hard
Conciseness X Somewhat
Maintainability X Hard
Documentation X Subjective
Legibility X Subjective
Scalability X Somewhat
[Internal Qualities]
It is seen that many quality criteria are objective that can be measured
accordingly, while some quality criteria are subjective that are obtained with
more arbitrary measurements. We see that quality in software means that a
product should meet all necessary requirements which can be :
Problem for software systems
Shows discrepancy among customer quality and software developer
requirements
Difficult to specify in a definite way
Incomplete and inconsistent
It seems that quality management is not simply related with lowering
defects but also with several other features and qualities. There are certain
Quality Standards which should be kept in mind during development :
Product standards with features using components related to style of
program or skills.
Process standards with features highlighting process implementation
Encompassing best practices to avoid previous mistakes
Designing as per organizational priorities with interference of new team
members
With this we see that there is certain standard which have to be adopted
and followed in order to keep the quality standard high in software which are :
Functional suitability
Reliability
Operability
Quality performance
Security
Compatibility
Maintainability
Transferability
99
Software Engineering In a quality model, there appears following characteristics features such
as :
Effectiveness
Efficiency
Satisfaction
Safety
Usability
The table below shows the responsibility of Management related to
quality.
Management Responsibility Quality System
Control of non–conforming products Design Control
Handling, Storage, Packaging and Delivery Purchasing
Purchaser–Supplied Products Product Identification and
Traceability
Process Control Inspection and Testing
Inspection and Test Equipment Inspection and Test Status
Control Review Corrective Action
Document Control Quality Records
Internal Quality Audits Training
Servicing Statistical Techniques
[Management responsibility regarding standard]
Check Your Progress – 1 :
1. Internal qualities are linked with :
a. Software b. Coding c. Programming d. Development
102
• Test Cases Software Quality
Management
• Unit Testing
• Integration Testing
• System Testing
• Acceptance Testing
Software Quality Control is restricted to Review or testing phases of
Software Development Life Cycle. Its main idea is to make sure that the
products should meet particular specifications or requirements.
It is seen that process of Software Quality Control is managed by
Software Quality Assurance which is oriented towards prevention while Software
Quality Control is oriented towards detection. It is a wide practice which is
applied for assuring quality of products or services where constant effort
enhances the quality practices in an organization that lead to regular improvements
and enhancement of product. In many Organisations, process programmers
allocate for enhancing processes and procedures along with quality assurance
team.
Moreover, we can see that Software Quality Control is concern with :
• Measures and controls of quality in software product being developed.
• Routine checking of quality to make sure about errors in software.
• Identification and addressing of product errors and defects.
• Development of final product without intervention of errors.
• Testing activities related to product.
Check Your Progress – 3 :
1. Software Quality is related to :
a. Following Instruction b. Software Standard
c. Software Parameters d. All of Above
7.5 Inspection :
Software inspection or code inspection relates to design and documentation
along with source code. Inspection is a kind of reviews or a strategy which
is adopted during static testing phase of software.
[Testing Phases]
Inspection is done by trained staff which does peer examination of
product. It is formal and worked using checklists and rules. It serves as review
103
Software Engineering process that uses entry and exit features and rules. Inspection requires pre–
meeting preparation which prepares a report which is shared with developer
for correct actions.
Code inspections are good test method that takes more time and could
locate 80% of contained faults. A proper code inspection takes days and require
tools to browse symbols so as to find places where required. Proper inspections
can be applied for almost all work products in the software life cycle. Initially
it requires time but statistical evaluations show whole life cycle of software
development which save resources and improves quality of product.
There are certain elements involved in inspection process :
• Explicit entry
• Exit criteria
• Individual preparation by inspectors
• Roles of moderator, reader, producer, and recorder
• Training for moderators
• Use of checklist
• Limitation to identify and classify defects
• Needs successful completion of rework for proper inspection
• Formal data collection, reporting, and analysis
The idea behind inspection is to :
• Helps in improving quality of document under inspection
• Remove defects efficiently
• Improve product quality
• Create understanding by exchanging information
• Prevent occurrence of defects
Check Your Progress – 4 :
1. Software Inspection could be carried out by :
a. New Joined b. New Developer
c. Trained Quality Checker d. None of Above
105
Software Engineering 7.8 Software Quality Metrics or Parameters :
Measurement allows an organization in improving the process, planning,
tracking and controlling of software projects and thereby proper assessing of
quality. It is a measure of particular attributes of process, project and product
which is used to calculate software metrics. Metrics are analyzed and provides
a dashboard to management on overall progress of process, project and product.
Generally, the validation of metrics is regular phenomena where spanning of
multiple projects takes place. Type of metrics used normally account for
checking of quality requirements that can be achieved during software
development process. In quality assurance process, metric is required to revalidate
all time when applied.
Software Metrics is of classes :
Process Metrics :
• It measures the efficiency of processes
• It stretches on quality achieved as a result of managed process
• It is a reusable data mostly applied for prediction
• It is a form of defect removal efficiency
Project Metrics :
• It will assess the status of projects
• It helps in tracking of risk
• It finds the problem areas
• It balances the work flow
• Examples are :
• Effort/time per SE task
• Defects detected per review hour
• Scheduled vs. actual milestone dates
• Distribution of effort on SE tasks
Product Metrics :
• It will measure predefined product attributes
• It stresses on quality of deliverables
• Examples are : Code or design complexity, Program size, Defect count,
Reliability
It is found that software quality metrics is a subset of software metrics
which stresses on quality of product, process and project. It is closely linked
with process and product metrics as compared to project metrics. It carries
project parameters like number of developers with skill levels, schedule, size,
and affecting product quality of an Organisation. It is broadly divided into :
• End–product quality metrics
• In–process quality metrics
Quality metrics is used at the time of software design and for non–
embedded systems. In case of embedded system, community is not ready to
use certain new software technique which tends to lose major evolution of
software design methodologies. Using quality metrics in software product at
106
the time of software designing will help in evaluating several levels which Software Quality
can be a solution confirming all requirements with better architecture, good Management
reusing conditions and flexibility.
It is found that Hewlett–Packard on using Software Quality Metrics
follows five quality parameters which are in terms of :
• Functionality
• Usability
• Reliability
• Performance
• Serviceability
It is noted that for many most software quality assurance systems,
common software metrics which checks for improvement relates to :
• Source lines of code
• Cyclical complexity of code
• Function point analysis
• Bugs per line of code
• Code coverage
• Number of classes and interfaces
• Cohesion and coupling among modules
Common software metrics include :
• Bugs per line of code
• Code coverage
• Cohesion
• Coupling
• Cyclomatic complexity
• Function point analysis
• Number of classes and interfaces
• Number of lines of customer requirements
• Order of growth
• Source lines of code
• Robert Cecil Martin's software package metrics
Software Quality Metrics focus on the process, project and product. By
analyzing the metrics, the organization, the organization can take corrective
action to fix those areas in the process, project or product which are the cause
of the software defects.
Check Your Progress – 7 :
1. Standard could be in terms of :
a. Distribution of effort b. Design Complexity
c. Program Size d. Reliability
107
Software Engineering 7.9 Five levels of Capability Maturity Model (CMM) :
Capability Maturity Model also CMM is a model of process maturity
for software development. It is an evolutionary model of progress of company's
abilities in order to frame software. In software Development Company there
are standards for processes of development, testing and application which work
with certain rules for appearance of final program code, components, interfaces,
etc.
The CMM model describes five–level path showing organized and
systematically arranged processes. It was framed by Software Engineering
Institute which happens to be an R&D center of U.S. Department of Defense.
This model is similar to ISO 9001 with one ISO 9000 series of standards
that was specified by International Organization for Standardization. ISO 9000
standards show prominent quality system for manufacturing and service industries
and deals with development and maintenance of software. As seen, ISO 9001
specifies least acceptable quality level for software processes, while CMM uses
framework for continuous process improvement and is more functional as
compared to ISO standard.
109
Software Engineering Check Your Progress 7 :
1. (a)
Check Your Progress 8 :
1. (a)
7.12 Glossary :
1. Software Quality – Activities that depends on external and internal
quality factors.
2. External Quality – Parameters on which user experiences depends in
terms of running and handling software.
3. Internal Quality – Parameters concern with designing of software using
codes.
4. Verification – To cross check or very document before start of software
project or development.
5. Validation – It is methods that locates and assess correctness and quality
standards in SDA cycle.
6. Quality Control – It is measure related to quality standard of software.
7.13 Assignment :
1. Explain about verification and validation in terms of software ?
7.14 Activities :
1. Explain about CMM model.
110
Unit
SOFTWARE TESTING
08 TECHNIQUE
UNIT STRUCTURE
8.0 Learning Objectives
8.1 Introduction
8.2 Software Validation & Verification
8.3 Manual VS Automated Testing
8.4 Testing Approaches
8.4.1 Black–Box Testing
8.4.2 White–Box Testing
8.5 Testing Levels
8.5.1 Unit Testing
8.5.2 Integration Testing
8.5.3 System Testing
8.5.4 Acceptance Testing
8.5.5 Regression Testing
8.6 Function Test Plan
8.7 Process of Testing
8.8 Testing Documentation
8.8.1 Before Testing
8.8.2 While Being Tested
8.8.3 After Testing
8.9 Grey Box Testing
8.10 Non–Functional Testing
8.11 Testing Artifacts
8.12 Let Us Sum Up
8.13 Answers for Check Your Progress
8.14 Glossary
8.15 Assignment
8.16 Activities
8.17 Case Study
8.18 Further Readings
8.1 Introduction :
Software testing is the procedure of assessment a software product to
detect differences between given input and expected output. Testing assesses
the quality of the product. Software testing is a process that should be done
during the development process.
In other words, software testing is a verification and validation process.
There are two fundamentals of software testing which are as follows :
• Black box testing
• White box testing
• Black box Testing : Black box testing is a testing technique that ignores
the internal mechanism of the system and focuses on the output generated
against any input and execution of the system. It is also called functional
testing.
• White box Testing : White box testing is a testing technique that takes
into account the internal mechanism of a system. It is also called structural
testing and glass box testing.
112
There are some targets of the test which are as follows : Software Testing
Technique
• Errors – It is referring to coding errors made by developers. As well
there is a difference in output of software and required output, is known
as an error.
• Fault – When there is an error exist fault occurs. A fault, also called
as a bug, is a result of an error which can cause system to fail.
• Failure – failure is refers to the inability of the system to perform the
required task. Failure occurs when fault exists in the system.
Check Your Progress – 1 :
1. ensures that software is as per the user requirements.
a. Verification b. Validation c. Both a and b d. None of Above
2. ensures that software is as per the user requirements.
a. Verification b. Validation c. Both a and b d. None of Above
3. is refers to the inability of the system to perform the required
task.
a. Errors b. Fault c. Failure d. All of Above
114
8.4.2 White–Box Testing : Software Testing
Technique
White box testing is a way of testing the external functionality of the
code by examining and the testing the program code that realizes the external
functionality. This is also known as clear box, or glass box or open box testing.
White box testing is the testing where process is defined but input and
output are not defined. White box testing considers the code, structure, flow
of internal design of program. A number of defects come about because of
incorrect translation of requirements and design into program code.
Some other defects are created by programming errors and programming
language characteristics.
• Static Testing :
Static testing is type of testing which requires only the source code of
the product, not the binaries or executables. Static tasting does not involve
executing programs on computers but involves select people going through the
code to find out whether
The code works according to the functional requirement;
The code has been written in accordance with the design development
in the project life cycle;
The code for any functionality has been missed out;
The code handles errors properly.
o Static testing by Humans :
These methods rely on the principle of humans reading the program code
to detect errors rather than computer executing the code to find errors.
This process has several advantages.
Sometimes humans can find errors that computers cannot.
By making multiple humans read and evaluate the program, we can get
multiple views and therefore have more problems identified honest than
a computer could.
A human evaluation of the code can compare it against the specifications
or design and thus ensure that it does what is intended to do.
A human evaluation can detect many problems at one go and can even
try to identify the root causes of the problems.
There are multiple methods to achieve static testing by humans which
are as follows :
1. Desk checking of the code : Desk checking normally done manually
by the author of the code, desk checking is a method to verify the portions
of the code for correctness. Such verification is done by comparing the
code with the design or specifications to make sure that the code does
what it is supposed to do and effectively.
2. Code walkthrough : This method and formal inspection are group–
oriented methods. Walkthroughs are less formal than inspections. The line
drawn in formalism between walkthrough and inspections is very thin
and varies from organization to organization.
3. Code review / Code inspection : Code review – also called Fagan
Inspection – is a method, normally with a high degree of formalism.
115
Software Engineering The focus of this method is to detect all faults, violations, and other
side–effects.
Check Your Progress – 3 :
1. is the testing where inputs and outputs are defined but process
is not defined.
a. White Box Testing b. Black Box Testing
c. Unit Testing d. System Testing
2. is the testing where process is defined but input and output
are not defined.
a. White Box Testing b. Black Box Testing
c. Unit Testing d. System Testing
3. Explain white box testing in detail.
Integration testing starts when two of the product components are available
and end when all components' interfaces have been tested. The final round
of integration involving all components is called Final Integration Testing (FIT),
or system integration.
• Integration Testing as A Type of Testing :
Integration testing means testing of interfaces. When we talk about
interfaces, there are two types of interfaces that have to be kept in mind for
proper integration testing. They are internal interfaces and exported or external
interfaces.
Internal interfaces are those that provide communication across two
modules within a project or product, internal to the product, and not exposed
to the customer or external developers.
Exported interfaces are those that are visible outside the product to third
party developers and solution providers.
There are several methods of integration testing which are as follows :
1. Top–Down Integration : Integration testing involves testing the topmost
component interface with other components in same order as you navigate
from top to bottom, till you cover all the components. In Top to down
approach, testing takes place from top to down following the control flow
of the software system.
117
Software Engineering 8.5.3 System Testing :
System testing is defined as a testing phase conducted on the whole
integrated system, to assess the system arrangement with its specified
requirements. It is done after unit, component, and integration testing phases.
A system is complete set of integrated components that together deliver
product functionality and features. A system can also be defined as a set of
hardware, software and other parts that together provide product features and
solutions.
System testing is the only phase of testing which tests the both functional
and non–functional aspects of the product. On the functional side, system testing
focuses on real–life customer usage of the product and solutions. On the non–
functional side, system brings in different testing types also called quality
factors, some of which are as follows :
1. Performance/Load testing : To evaluate the time taken or response time
of the system to perform its required functions in comparison with
different versions of same product or a different competitive product is
called performance testing.
2. Scalability testing : A testing that requires huge amount of resource to
find out the maximum capability of the system parameters is called
scalability testing.
3. Reliability testing : To evaluate the ability of the system to perform
its function repeatedly for a specified period of time is called reliability
testing.
4. Stress testing : Evaluating a system beyond the limits of the specified
requirement to ensure the system does not break down unexpectedly is
called stress testing.
5. Interoperability testing : This testing is done to ensure that two or more
products can exchange information, use the information, and work closely.
6. Localization testing : Testing conducted to verify that the localized
product works in different languages is called localization testing.
o Why is System Testing Done ?
An independent test team normally does system testing. The behavior
of the complete product is verified during system testing. Tests that refer to
multiple modules, programs, and functionality are included in system testing.
System testing helps in identifying as many defects as possible before
the customer finds them in deployment. System testing is conducted with an
objective to find product level defects and in building confidence before the
product is released to the customer.
To summarize, system testing is done for the following reasons.
Provide independent viewpoint in testing.
Bring in customer perspective in testing.
Provide a "fresh pair of eyes" to discover defects not found earlier by
testing.
Test product behavior in a complete and realistic environment.
Test both functional and non–functional aspects of the product.
118
Build confidence in the product. Software Testing
Technique
Analyze and reduce the risk of releasing the product.
Ensure all requirements are met and ready the product for acceptance
testing.
8.5.4 Acceptance Testing :
Acceptance testing is a phase after system testing that is normally done
by the customers. A customer defines a set of test cases that will be executed
to qualify and accept the product. These test cases are executed by customers
themselves to quickly judge the quality of product before deciding to buy the
product. Acceptance test cases failing in a customer site may cause the product
to be rejected and may mean financial loss or may mean rework or product
involving effort and time.
o Acceptance Criteria :
There are basically three acceptance criteria which are as follows :
1. Product Acceptance :
During the requirements phase, each requirement is associated with
acceptance criteria. It is possible that one or more requirements may be mapped
to form acceptance criteria. Whenever there are changes to requirements, the
acceptance criteria are accordingly modified and maintained. Testing for
faithfulness to any specific legal or contractual terms is included in the
acceptance criteria.
2. Procedure Acceptance :
Acceptance criteria can be defined on the procedures followed for delivery.
An example of procedure acceptance could be documentation and release media.
Some examples of acceptance criteria of this nature are as follows :
User, administration and troubleshooting documentation should be part
of the release.
Along with binary code, the source code of the product with build script
to be delivered in a CD.
A minimum of 20 employees are trained on the product usage prior to
deployment.
– These procedural acceptance criteria are verified/tested as part of acceptance
testing.
3. Service Level Agreements :
Service level agreements can become part of acceptance criteria and are
generally part of a contract signed by the customer and product organization.
The important contract items are taken and verified as part of acceptance testing.
For example, time limits to resolve those defects can be mentioned part
of SLA such as
All major defects that come up during first three months of deployment
need to be fixed free of cost;
Downtime of the implemented system should be less than 0.1%;
All major defects are to be fixed within 48 hours of reporting.
119
Software Engineering 8.5.5 Regression Testing :
• What is Regression Testing ?
Regression testing is a type of testing which ensures that a recent code
change has not harmfully affected current features of the software. In this testing
executed test cases re–executed full or partial to ensure existing functionalities
work proper.
• Types of Regression Testing :
There are two types of regression testing which are as follows :
1. Regular Regression Testing :
A regular regression testing is done between test cycles to ensure that
the defect fixes that are done and the functionality that were working with
the earlier test cycle continue to work. A regular regression testing is performed
to verify that the build has NOT broken any other parts of the application
by the recent code changes for defect fixing or for enhancement.
2. Final Regression Testing :
A final regression testing is done to validate the final build before release.
A "final regression testing" is performed to validate the build that hasn't changed
for a period of time. This build is deployed or shipped to customers.
• When to do Regression Testing ?
Whenever changes happen to software, regression testing is done to
ensure that these do no harmfully affect the existing functionality. Regression
testing is done between test cycles to find out if the software delivered is as
good as or better than the builds received in the past. As testing involves large
number of resources, a quick testing is needed to assess the quality of build
and changes to software.
It is necessary to perform regression testing when :
A reasonable amount of initial testing is already carried out.
A good number of defects have been fixed.
Defect fixes that can produce side–effects are taken care of.
Regression testing may also be performed periodically, as a pro–active
measure.
Check Your Progress – 4 :
1. Write a detail note on Integration Testing.
120
3. Explain Acceptance Testing in detail. Software Testing
Technique
122
1. Functional Test Cases Software Testing
ID Test Cases Technique
5.1 Test Cases Identify the test cases along with expected results.
Example:
Test Procedure:
Login with a corporate user account.
Username: abc
Password: abc
Expected Results:
An error will be displayed for the wrong credentials.
123
Software Engineering The Fundamental Test Process comprises five activities :
• Planning
• Specification
• Execution
• Recording
• Checking for Test Completion
1. Test Planning :
The initial idea is to have a good plan. All good testing is based upon
good test planning. For this, an overall test strategy should be planned along
with project test plan. The Test Planning activity will generate test plan which
is specific to level of testing. Such test level will specifically test plans which
shows how test strategy and project test plan need to be applied to that level
of testing and state any exceptions to them.
2. Test Specification :
In this, the fundamental test process shows activity related to as designing
of test cases with certain techniques which to be followed at the time of
planning. It is noted that for every test case, there should be specific objective
with initial state of software along with input sequence and expected outcome.
In this, specification can be considered as separate tasks :
• Identify test conditions
• Design test cases
• Build test cases
3. Test Execution :
The idea of this is to work with every test case which can be done either
manually or with test execution automation tool. Here the way in which test
cases are executed is significant where most important test cases should get
executed first. Generally, important test cases find serious faults and may also
those that stress on most important parts of system.
4. Recording :
Recording of test is done in parallel with Test Execution. For this, we
need to record versions of software under test along with specification and
for each test case, the outcome is recorded along with test coverage levels.
In this, the current situation should be compared with expected and any
discrepancy found should be noted and logged and further analyzed to establish
position of fault. The fault may lie in the environment set–up or be the result
of using the wrong version of software under test.
5. Checking for Completion :
This will check the records against completion criteria which gets laid
off for test plan. On failing of such criteria requires previous specification stage
in order to specify test cases to meet completion features.
124
Check Your Progress – 6 : Software Testing
Technique
1. Write a note on Process of Testing.
125
Software Engineering Check Your Progress – 7 :
1. Write a note on Testing Documentation.
128
Check Your Progress 3 : Software Testing
Technique
1. (b) 2. (a) 3. (refer 8.4.2)
Check Your Progress 4 :
1. (refer 8.5.2) 2. (refer 8.5.3)
3. (refer 8.5.4) 4. (refer 8.5.5)
Check Your Progress 5 :
1. (refer 8.6)
Check Your Progress 6 :
1. (refer 8.7)
Check Your Progress 7 :
1. (refer 8.8)
Check Your Progress 8 :
1. (c)
Check Your Progress 9 :
1. (d)
Check Your Progress 10 :
1. (d)
8.14 Glossary :
1. Software Quality – Activities that depends on external and internal
quality factors.
2. Verification – To cross check or very document before start of software
project or development.
3. Quality Control – it is measure related to quality standard of software.
4. Testing – It is related to software testing that enables the programmer
to use necessary specification to develop a project.
8.15 Assignment :
1. Write a detailed note on Testing Artifacts.
8.16 Activities :
1. Give detailed analysis of Non–Functional Testing.
129
BLOCK SUMMARY :
In this block, we have learnt about the basic of software requirement.
Software requirement play an important role in software development life cycle.
Detail about the basic of software design, software design strategies, software
user interface design, software design complexity and software implementation
which include all criteria of design from basic to advance as design play an
important role.
We discussed about the basic of software quality and idea about different
variables associated with it. the basic of testing of software techniques along
with detailed explanation on Capability Maturity Model. The concept related
to Review and Walkthrough with respect to software configuration management
are well detailed. You will be demonstrated about User acceptance testing and
its standards.
130
BLOCK ASSIGNMENT :
Short Questions :
Long Questions :
131
Enrolment No. :
1. How many hours did you need for studying the units ?
Unit No. 1 2 3 4
No. of Hrs.
2. Please give your reactions to the following items based on your reading
of the block :
132
Dr. Babasaheb Ambedkar BCAR-402
Open University Ahmedabad
Software Engineering
BLOCK 3 : SOFTWARE RISK ANALYSIS & MANAGEMENT
is seen that project manager requires to make sure that risks are kept to lower
project. It is required in order to cater in case when initial level of risk tackling
In this block, we will detail about the basic of risk involved in companies
and role of HR professional in minimizing risk. The block will focus on the study
and concept of Software Risk analysis along with software project development
process. You will give an idea on how human resources will minimize risk during
software projects.
In this block, you will make to learn and understand about the basic of
minimization of risk in SDLC are well explained to you. You will be demonstrated
9.1 Introduction :
There is two parts of Risk : chance of something going wrong, and the
negative interpretations if it does.
It is hard to identify the risk however, let alone to prepare for and manage.
And, if you are success by an importance that you had not planned for, costs,
time, and reputations could be on the line. Similarly, overestimating or overreacting
to risks can create panic, and do more harm than good.
This makes Risk Analysis an important tool. It can help you to identify
and understand the risks that you could face in your duty. In turn, this helps
you to manage the risks, and reduce their effect on your plans.
Check Your Progress – 1 :
1. What is Risk ?
133
Software Engineering 9.2 Risk Analysis in Project Management :
It is referring to a procedure that helps you to identify and manage
possible problems that could challenge key business creativities or projects.
However, it can also be applied to other projects outside of business, such
as organizing events or even buying a home!
To carry on a Risk Analysis, you must find the possible threats, then
estimate their likely impacts if they were to happen, and finally estimate the
possibility that these threats will arrive.
Risk Analysis can be complex, because you need to draw on detailed
information such as project plans, financial data, security protocols, marketing
forecasts, and other relevant information. However, it is an important planning
tool, and that can save time, money, and reputations.
• When to use Risk Analysis ?
Risk analysis is useful in many situations which are as follows :
When you are planning projects, that help you to do in advance and
deactivate possible problems.
When you are deciding whether or not to move forward with a project.
When you are improving safety and managing possible risks in the
workplace.
When you are preparing for events like technology failure, theft, staff
sickness, or natural disasters.
When you are planning for changes in your environment, like new
competitors coming into the market, or changes to government policy.
• How to use Risk Analysis ?
To carry out a risk analysis, follow these steps :
1. Identify Threats :
The first step in Risk Analysis is to identify the existing and possible
threats. These can come from various different sources. For Example,
Human – There may be possible risk by human like Illness, death, injury,
or other loss of a main individual.
Operational – Interruption to supplies and operations, loss of access to
important resources, or failures in distribution.
Reputational – There may be loss of customer or employee confidence,
or damage to market reputation.
Procedural – Failures of accountability, internal systems, or controls,
or from fraud.
Project – Going over budget, taking too long on key tasks, or experiencing
issues with product or service quality.
Financial – Business failure, stock market fluctuations, interest rate
changes, or non–availability of funding.
Technical – Due to advances in technology, or from technical failure.
Natural – Weather, natural disasters, or disease.
Political – Changes in tax, public opinion, government policy, or foreign
influence.
134
Structural – Dangerous chemicals, poor lighting, falling boxes, or any Software Risk
situation where staff, products, or technology can be harmed. Analysis
To carry out detailed analysis you can use a number of different methods
which are as follows :
Create a list of threats as above and check any of these threats are
relevant.
Run through a list such as the one above to see if any of these threats
are relevant.
Think about the systems, processes, or structures that you use, and analyze
risks to any part of these. What weaknesses can you spot within them ?
Ask others who might have different views. If you are leading a team,
ask for input from your people, and consult others in your organization,
or those who have run similar projects.
2. Estimate Risk :
Once you have recognized the threats, you need to calculate both the
probability of these threats being understood, and their possible impact.
One way of doing this is to make estimate of the probability of the event
occurring, and then to multiply this by the amount it will cost you to set things
right if it happens. This gives you a value for the risk :
Risk Value = Probability of Event x Cost of Event
As a simple example, imagine that you've identified a risk that your rent
may increase substantially.
You think that there's an 80 percent chance of this happening within the
next year, because your landlord has recently increased rents for other businesses.
If this happens, it will cost your business an extra 500,000 over the next year.
So, the risk value of the rent increase is :
0.80 (Probability of Event) x 500,000 (Cost of Event) = 400,000 (Risk
Value)
Check Your Progress – 2 :
1. The first step in Risk Analysis is to identify the existing and possible
.
a. Risk b. Treats c. Risk Analysis d. Risk Probability
2. Threats can come from sources.
a. Human b. Financial c. Technical d. All of Above
3. What is Risk Analysis in Project Management ?
135
Software Engineering 9.3 Risk Identification :
Risk identification is the process of determining risks that could potentially
prevent the program, enterprise, or investment from achieving its objectives.
It includes documenting and communicating the concern.
The objective of risk identification is the early and continuous identification
of events that, if they occur, will have negative impacts on the project's ability
to achieve performance or capability outcome goals. They may come from
within the project or from external sources.
There are multiple sources of risk. For risk identification, the project
team should review the program scope, cost estimates, schedule (to include
evaluation of the critical path), technical maturity, key performance parameters,
performance challenges, stakeholder expectations vs. current plan, external and
internal dependencies, implementation challenges, integration, interoperability,
supportability, supply–chain vulnerabilities, ability to handle threats, cost
deviations, test event expectations, safety, security, and more.
In addition, historical data from similar projects, stakeholder interviews,
and risk lists provide valuable insight into areas for consideration of risk.
Risk identification is an iterative process. As the program progresses,
more information will be gained about the program (e.g., specific design), and
the risk statement will be adjusted to reflect the current understanding. New
risks will be identified as the project progresses through the life cycle.
Risk identification enables businesses to develop plans to minimize
harmful events before they arise. The objective of this step is to identify all
possible risks that could harm company operations, such as lawsuits, theft,
technology breaches, business downturns, or even a Category 5 hurricane.
Safety management professionals must understand that risk identification
is not a one–time process. Instead, the process should be rigorous, thoughtful,
and ongoing.
• Ways to Identify Risks :
There are many ways to identify an organization's risks, however, some
of the more common examples include brainstorming, thinking pessimistically,
and seeking employee feedback.
1. Brainstorming : Risk managers may find that brainstorming the probability
of various catastrophic events with other company stakeholders, such as
managers and certain C–level staff, can help identify new threats.
2. Thinking Negatively : Careers in safety management often entail planning
for the worst while expecting the best. Although doubt isn't often
encouraged in the workplace, taking time to ponder "what is the worst
possible thing that could happen to the company" may be helpful in
identifying risks.
3. Seek Employee Feedback : Upper–level management's perspective of
an organization's risks can be starkly different from the perspective that
employees hold. Employees may encounter new risks in their day–to–
day activities that may not have otherwise been encountered. For example,
insufficient training on a piece of operating equipment may be placing
staff at risk of injury. As such, employees are an invaluable source of
first–hand information.
136
Check Your Progress – 3 : Software Risk
Analysis
1. What are the ways to identify risk ?
a. Brainstorming b. Thinking Negatively
c. Seek Employee Feedback d. All of Above
137
Software Engineering 5. Pareto Principle :
It is well known as "80/20 Rule", it is helps in defining risk which is
most effective. It is considered as 8020 because 80% is based on initiate
understood success and 20% based on efforts.
Risk managers use Pareto analysis as a tool for fast finding the most
critical 20% of risks that will effectively mitigate 80% of the impact.
The task for risk managers knows how to successfully cut each risk.
Large projects may require multi–attribute increments for business different
priorities like security data, and operational or agreement policies.
But once you get the idea about where to look and what to look at will
help you to improve in on the most important 20%. This offers a crucial leg
up in managing the threats and weaknesses that have the potential to have
the largest impact.
• Qualitative Risk Analysis Process :
When you are starting to identifying the risk at that time you are blank
you have no ideas about how to start to define the risk, so at that time qualitative
risk analysis is best method which is divide into smaller steps which are as
follows :
1. Finding Risks
2. Effect Analysis
3. Risk Handling
4. Review & Monitor
1. Finding Risks :
Finding risk is the possibly most important part of qualitative risk
analysis. If you will not find the risk on time then it becomes extremely
challenging to manage them.
There is a simple trick to find risk, start thinking of the things which
gives undefined effect on the project. Taking in to consideration by clear risk
will help you to solve the risk in more linear way. Risk finding is all about
quantity. So, reach out to as many people as you can to get a wide range
of views.
There are various tools for Risk Identification which are as follows :
Awareness plans
Questionnaires
Interviews
Documentation review
Checklist investigation
SWOT Investigation
2. Effect Analysis :
Once you find the possible risks, the next step is to study the impact
of the risk.
Distinct the risks into threats and opportunities.
Using qualitative risk analysis, estimate the impact of each risk on a
scale from 1 to 5 or low/medium/high/extreme.
138
Next, estimate the possibility of each risk occurring, using a similar scale. Software Risk
Analysis
At the end, take those scores and combine them to create a total risk
ranking.
Easiness is the major benefit of qualitative risk analysis because there
is no statistical model that depends deeply on the quality of the data you use.
3. Risk Handling :
The next phase in the qualitative risk analysis is to apply actions to each
risk. This can be processed in many numbers of ways depending on your
industry or process. A simple example could show five options when it comes
to risk action, but these are by no means final :
A. Accept
B. Reasonable
C. Exploit
D. Transfer
E. Avoid
A. Accept : If a risk has low effect and possibility, or the cost of stopping
it is too high, sometimes it's more cost–effective to accept it.
B. Reasonable : Some risks have a high possibility, means you cannot avoid
it. In order to reduce the impact of a risk when it becomes an issue,
you can select practical way.
C. Exploit : Some risks can be exploited to the benefit of your project.
Having the capacity to identify exploitable risks can be very useful and
highlights the importance of seeking out experienced risk experts who
can spot these chances.
D. Transfer : Risks with financial effects are a common example of risks
that can be transferred to a third party. Insurance is designed to adopt
a risk on your behalf, so you don't suffer as hard an effect if something
goes wrong. Similarly, it is possible to transfer risk via a contract to
a supplier or contractor.
E. Avoid : If you can't reasonable or transfer a risk, and that risk is too
high to accept, the only way is to avoid it. Risks can be avoided by
changing or removing certain possibility objects or changing the method.
Likelihood Planning :
If a risk becomes an issue, you need a plan, which are as follows :
• What to do
• Who come to be informed ?
• Who does what ?
Documenting a possibility plan saves time and money. When you know
what to do in the event of an issue, you can reduce its effect by responding
faster. The nature and detail of your possibility planning will depend on the
nature of the risks themselves.
4. Review & Monitor :
Risk management is never ended, not even after the project has ended.
As the project developments, it is important to keep up to date logs of risk.
139
Software Engineering At each phase of the project, risk possibility will vary. Some risks will disappear,
while others might increase in possibility. Studying your risks regularly will
help keep you on top of these changes.
After the project, a full reviewing is carry on which will provide important
data and knowledge for future projects, making the next one more secure and
helping to further your risk maturity.
Check Your Progress – 4 :
1. The most common types of analysis are .
a. Bow–Tie Analysis b. Delphi Technique
c. SWIFT Analysis d. All of Above
2. respond to several rounds of questionnaires.
a. Delphi Technique b. Swift Analysis
c. Probability d. Pareto Principle
140
Check Your Progress – 5 : Software Risk
Analysis
1. What is Quantitative Risk Analysis ?
9.8 Glossary :
1. Risk : Risk is made up of two parts : the probability of something going
wrong, and the negative consequences if it does.
2. Risk Analysis : It is referring to a procedure that helps you to identify
and manage possible problems that could challenge key business creativities
or projects.
3. Risk Identification : Risk identification is the process of determining
risks that could potentially prevent the program, enterprise, or investment
from achieving its objectives.
4. Qualitative Risk Analysis : It is referring to the procedure of evaluating
the probability of a risk occurring and the impact it would have on a
project if it happened.
5. Quantitative Risk Analysis : Quantitative risk analysis is a numeric
estimate of the overall effect of risk on the project objectives such as
cost and schedule objectives.
9.9 Assignment :
1. Explain Risk Identification.
141
Software Engineering 9.10 Activities :
1. Explain Qualitative Risk Analysis Process
142
Unit
SOFTWARE RISK
10 MANAGEMENT – I
UNIT STRUCTURE
10.0 Learning Objectives
10.1 Introduction
10.2 Software Risk Management Implementation
10.3 Planning Risk Responses
10.4 Monitoring and Controlling Risks
10.5 Let Us Sum Up
10.6 Answers for Check Your Progress
10.7 Glossary
10.8 Assignment
10.9 Activities
10.10 Case Study
10.11 Further Readings
10.1 Introduction :
This type of risk management shows conserve environment that is applied
for taking practical decision making so as to analyses what goes wrong with
development process. It shows the type of risks which is quite useful in dealing
and which implements in such a way that will avoid risks.
Software risk management is a type of planning process which concerns
with strategy that caters risk management and its process along with techniques
using certain methods and tools which applies to support risk management
process.
It is seen that risk management process normally requires corporate
clearance about risk that serves as main consideration. It is found that in
corporate organization, senior management supports project risk management
activities through :
Supplying of excess professionals, budget, schedules and tools
Checking of required training which is to be implemented in finding,
managing and lowering of software risk
Giving training to project personnel in conducting risk management work.
143
Software Engineering Check Your Progress – 1 :
1. What is Software Risk Management ?
144
3. Build a relationship with the vendor : Software Risk
Management – I
In many situations, the internal risk team views the vendor implementation
team as external stakeholders who are only present for a few weeks or months.
This is the wrong mindset. Risk management vendors have high levels of
knowledge, insight, and resources that can help you manage both new and
existing risks at any time.
By building a relationship with the vendor, you've widened your risk
management network and increased the size of your risk management team.
This can only benefit you as you seek to achieve your goals with the risk
management system.
4. Be open to vendor suggestions :
Risk management systems are built a certain way for a reason. Vendors
have extensive experience with the needs of organizations much like yours.
You should always be open to their suggestions, especially if they're recommending
a particular process.
Many teams fall into the trap of purchasing a risk management system
only to use it in exactly the same way as their old system. For example, a
team that switches from Excel spreadsheets may continue to manually add and
report on data in the system, even when automation is possible. This mistake
can be critical : the team continues to poorly utilize resources while extra
resources are used to pay for the new system.
To avoid this problem, carefully consider all vendor suggestions on how
their risk management system can truly improve your organization.
5. Customize where necessary :
While vendor suggestions and knowledge are valuable, sometimes they
may not realistically fit into your organization or goals. Some aspects of an
out–of–the–box system may not be right for you. In this case, some customization
is ideal.
For example, consider your organization's hierarchy, the ideal usage of
the system, and your reporting needs. Only you can determine exactly how
a risk management system will best fit into these requirements.
6. Be flexible :
Adapting to changing circumstances is important when implementing a
risk management system. Tasks may take more time than expected, there may
be technical difficulties, or an employee may have a particularly hard time
during training.
You must understand that difficulties like these are bound to happen and
typically only involve a small adjustment. Being ready to re–prioritize or modify
existing plans allows all stakeholders to feel comfortable through the
implementation process, even if not everything goes as planned.
7. Involve users and decision–makers :
Another common mistake in the implementation of risk management
systems is involving only decision–makers. While executives and top managers
may be able to pick the system that best suits organizational goals, they aren't
the ones that will be working inside the system every day.
Involving users from the beginning ensures that the entire risk team is
onboard or even excited about the change. They can also provide valuable
145
Software Engineering insight into implementation : they may have needs or desires that decision–
makers wouldn't know about and can reduce complications in the implementation
process.
8. Communicate :
Any significant organizational change is likely to fail without regular
and proper communication. When implementing a risk management system,
there are two critical communication avenues : the vendor and employees.
No matter how robust their system, vendors cannot read your mind. You
must explain your system, timeline, and security requirements as well as how
involved you expect them to be in the implementation process. This will keep
both teams on the same page and prevent frustrating back–and–forth conversation.
On the employee side, users need to be taught what to expect from the
system. In some cases, users may feel that they are being replaced by the system;
it is your job to reassure them that the system will actually make their jobs
easier and more meaningful by streamlining complicated processes. Tell your
employees what will change and how it will impact them individually, and
make them aware of these changes well in advance. Educating them on the
role they must play in the implementation of the risk management system will
simplify the process.
9. Implement in stages :
While risk management systems often have extensive functionality, it can
be overwhelming for a team to implement them all at once. This is frustrating
to employees and can actually lower the chances of system success. Instead,
choose the one area that is most in need of the system and start there. This
allows the team to gradually become comfortable with the system and then
expand their capabilities.
Using one small change as an example of the effectiveness of the system
can also help win over resistant employees and prove that the system has value.
Risk management system implementation can seem like a daunting task.
Following this advice will put you well on your way towards achieving your
risk management goals.
Check Your Progress – 2 :
1. Step is not part of Software Risk Management Implementation.
a. Set a timeline b. Be flexible
c. Communicate d. Do not customize
2. Any significant organizational change is likely to fail without regular
and proper .
a. Communicate b. Implement in stages
c. User Involvement d. All of Above
146
• When you need a Risk Response Plan : Software Risk
Management – I
A proper risk management plan does not need to include response plans
for all risks within the risk register. The risk register contains all risks that
are significant enough to warrant tracking and monitoring. It is not feasible
or necessary to develop response plans for everyone.
All risks fall within a range. On the one extreme it does not affect the
project enough to warrant tracking and monitoring. In the middle, the event
should be tracked and monitored but response plans do not need to be developed
in advance. And on the other extreme, the risk is substantial enough that a
response plan needs to be developed.
Generally, risk response plans are required for risks that are high in both
probability and impact. For example, a nuclear power repair project might have
response plans developed for radiation exposure events.
• Four Risk Responses :
There are four possible ways to deal with risk.
1. Avoid : Remove the threat or protect the project from its effect. Here
is a list of common actions that can eliminate risks.
Change the scope of the project.
Extend the schedule to eliminate a risk to timely project completion.
Change project objectives.
Clarify requirements to eliminate ambiguities and misunderstandings.
Gain expertise to remove technical risks.
2. Transfer : This involves moving the impact of the risk to a third party.
Direct methods might be through the use of insurance, warranties, or
performance bonds. Indirect methods such as unit price contracts instead
of lump sum, legal opinions, and so forth.
3. Mitigation : Reduce the probability or impact of the risk. This is not
always possible and often comes with a price that must be balanced
against the value of performing the mitigating action.
4. Accept : All projects contain risk. As a minimum, there is the risk that
it does not accomplish its objective. Thus stakeholders, by definition,
must accept certain risks. Accepting risk is a strategy like any other, and
should be documented and communicated like any other strategy. Risk
acceptance can be passive, whereby the consequences are dealt with after
the risk occurs, or active, whereby contingencies (time, budget, etc.) are
built in to allow for the consequences of the risk to the project.
The four risk response strategies can be applied to overall project risk
as well.
Check Your Progress – 3 :
1. considered as a risk response.
a. Avoid b. Transfer c. Mitigation d. All of Above
2. is reduce the probability or impact of the risk.
a. Mitigation b. Accept c. Transfer d. Avoid
147
Software Engineering 10.4 Monitoring and Controlling Risks :
Project risk control and risk monitoring is where you keep track of about
how your risk responses are performing against the plan as well as the place
where new risks to the project are managed.
You must remember that risks can have negative and positive impacts.
Positive risk is a risk taken by the project because its potential benefits outweigh
the traditional approach and a negative risk is one that could negatively
influence the cost of the project or its schedule.
The purpose of project risk control is to
Identify the events that can have a direct effect in the project deliverables
Assign qualitative and quantitative weight–the probability and consequences
of those events that might affect the project deliverables
Produce alternate paths of execution for events that are out of your control
or cannot be mitigated
Implement a continuous process for identifying, qualifying, quantifying,
and responding to new risks
The main goals to risk monitoring and control :
To confirm risk responses are implemented as planned
To determine if risk responses are effective or if new responses are needed
To determine the validity of the project assumptions
To determine if risk exposure has changed, evolved, or declined due to
trends in the project progression
To confirm policies and procedures happen as planned
To monitor the project for new risks
To monitor risk triggers
Risk triggers are those events that will cause the threat of a risk to become
a reality. For example, you have identified the fact that you only have one
pump set available and the replacement takes six weeks to arrive. In the middle
of your irrigation and recycling process tests, you discover that water pressure
tends to fluctuate beyond pump tolerance levels. If you do not find a way
to solve this problem, your risk will become a reality.
Make sure that for each identified risk, you must provide a response
plan. It is not much help to you if the risk becomes a reality or issue and
you do not have an alternate execution path or some other emergency procurement
plan.
Main inputs to effectively monitor and control risks :
Risk management plan
Risk Register / Risk Tracker
Risk response plan
Project communications
New risk identification
Scope changes
148
Outputs of Risk Monitoring and Risk Control : Software Risk
Management – I
Workaround plans
Corrective / Preventive actions
Change requests
Risk response plan updates
Risk database
Checklist updates
Check Your Progress – 4 :
1. considered as an input to monitor and control risks.
a. Scope Changes b. Risk Tracker
c. New Risk Identification d. All of Above
2. known as an output of risk monitoring and control.
a. Change Request b. Risk Database
c. Checklist updates d. All of Above
10.7 Glossary :
1. Software Risk Management – Software risk management is concern
with process orientation, methods and tools that helps in managing risks
which appears in software project development process.
2. Mitigation – Reduce the probability or impact of the risk.
10.8 Assignment :
1. Explain 9 steps of Software Risk Management Implementation.
149
Software Engineering 10.9 Activities :
1. Write a note on planning risk responses.
150
Unit
SOFTWARE RISK
11 MANAGEMENT – II
UNIT STRUCTURE
11.0 Learning Objectives
11.1 Introduction
11.2 Human Resource and Risk Management
11.3 The HR Executive and Risk Control
11.4 Team Risk Management
11.5 Let Us Sum Up
11.6 Answers for Check Your Progress
11.7 Glossary
11.8 Assignment
11.9 Activities
11.10 Case Study
11.11 Further Readings
11.1 Introduction :
Risk is expected in business organization at the time of taking projects.
It is seen that project manager requires making sure that risks are kept to lower
level.
Risk management, in regards to human resources, doesn't stop once
background checks, references and education confirmation is completed. The
human resource department and the risk management department must continue
to collaborate together to ensure employee related risks are continuously identified
and strategies established for mitigation of identified risks.
Employee or human factors are some of the most critical sources of risk
and extremely difficult to plan and prepare for. The human factors in regards
to risk is very different from the risk introduced by machines or automated
processes, as the human factors are highly dynamic and difficult to regulate
in relationship to controls for machines and automated processes. After all the
reason you are employing an individual is to allow her to work in an environment,
which allows her to feel free to perform at her best, with a strong support
and trust of management.
151
Software Engineering 11.2 Human Resource and Risk Management :
Human resources have two roles in risk management. First, people are
a source of risk, e.g., shortage of employees, people doing sloppy work, an
employee refusing to take on additional responsibility, or a key employee
leaving two months after completion of a one–year training program.
Second, people are important in handling risk, e.g., people using their
ingenuity to solve unexpected problems, employees going the extra mile for
the good of the organization, a key employee redesigning her own job to avoid
unnecessary delays in getting work done, or an employee persuading a talented
friend to apply for a position in the business.
Human resource management is a process that can be broken down into
specific activities :
• Job analysis, Writing job descriptions,
• Hiring,
• Orientation, Training,
• Employer/Employee interactions,
• Performance appraisal, Compensation, and Discipline.
Understanding these activities helps explain the relationship between
human resources and risk. Failure to successfully carry out these activities
increases risk and penalizes the business by not taking advantage of what its
people could be contributing.
The first activity is job analysis and writing job descriptions. Job
analysis is 8 The emphasis is on what the farm needs rather than on who wants
to be promoted or who could be easily hired. The tasks that must be carried
out to accomplish the firm's goals determine duty and skill requirements. Job
descriptions summarize for both employees and employers just what a job
entails : job title, duties, compensation, and skills, knowledge, and abilities
to do the job. In family farm businesses, job descriptions for family members
often include both management and labor responsibilities.
Hiring is the next human resource management activity. The objective
of hiring is to staff each job with a person who can succeed in the position.
In today's exceptionally tight labor market, hiring is one of the most difficult
human resource activities. The position must be described carefully and creatively
to potential applicants. From among the pool of applicants, people must be
carefully chosen if they and the employer are to have a successful relationship.
The next activity after hiring is orientation and training. Orientation
socializes new people to the business. It introduces them to the business'
mission, its history, and its culture. It gives them the information essential for
getting off to a good start. Training and experience give the employees the
knowledge, skills, and abilities necessary to succeed in the position.
Day–to–day employer/employee interaction includes leadership,
motivation, and communication that build on hiring, orientation, and training.
Employer/employee interaction cannot make up for an ill–defined job, having
hired the "wrong" person, or inadequate orientation and training.
The last three activities are closely related : performance appraisal,
compensation, and discipline. Performance appraisal is the continuous
152
assessment, in cooperation with the employee, of how she or he is doing relative Software Risk
to the standards and expectations laid out in the job description and follow– Management – II
up training. Performance appraisal also includes identifying with the employee
whatever corrective action may be necessary and steps by which the employee
can advance his or her career.
Check Your Progress – 1 :
1. is determining the duties and skill requirements of a job and
the kind of person to fill it.
1. Hiring 2. Job Analysis
3. Training 4. Writing Job Description
2. introduces new people to the business' mission, its history,,
and its culture.
a. Orientation b. Training c. Hiring d. Job Analysis
3. give the employees the knowledge, skills, and abilities necessary
to succeed in the position.
a. Training b. Hiring c. Job Analysis d. Orientation
153
Software Engineering The practical partnership between today's HR executive and strategic and
operational business managers is discussed in Performance Consulting.
"Performance consultants take the initiative to meet, work with, and gain the trust
of managers and others within their organization. It has frequently been said that
building trust takes time; it does not happen overnight. Performance consultants
actively forge these relationships. Partnerships can, and should, be formed with
various people in an organization : senior managers, other managers and
supervisors, and thought leaders and subject matter experts, whatever their title.
Partnerships are also forged with customers and suppliers to the organizations."
The HR Executive and Risk Control :
The HR executive has a vital role in controlling risk. A major component
of Risk Management planning is risk avoidance. Many risks can be avoided
by controlling and planning the human side of the corporate equation. Succession
planning, adequate severance and outplacement, executive coaching and
development will ensure that an organization has the means to deal with current
and future challenges.
Risk resolution and control are important responsibilities for HR executives.
Identifying crucial attributes for key executives within an organization, coaching
and developing these attributes and monitoring the executives on an ongoing
basis will help to minimize and resolve potential areas of risk such as employee
turnover, low morale, potential litigation from misunderstandings arising between
staff and management and negative publicity resulting from these or other
human issues.
For example, a global organization based in the Bay Area plans to open
a distribution center in Malaysia. The corporate goal is to increase sales and
productivity in this growing region. The company has plans to grow their market
share by establishing a local presence. The risk manager is concentrating on
property exposure in this new region as well as political and environmental
risk. The staffing plans include the transfer of two senior executives from the
company headquarters in Silicon Valley.
The issues from the standpoint of Risk Management and HR are as
follows :
Risk : Property exposure
HR Initiatives :
Hiring professional engineers and surveyors to minimize the risk of fire,
ensure building meets highest standards possible.
Risk : Political risk
HR Initiatives :
Training and development of executives charged with running the new
facility. Ensure they are sensitive to cultural differences.
Hiring qualified public relations and local negotiations team.
Risk : Business Interruption/ drop in productivity
HR Initiatives :
Succession planning.
Diversify talent pool to ensure each key executive has a successor.
Management development, team building and executive coaching.
154
Risk : Directors and officers Software Risk
Management – II
HR Initiatives :
Succession planning.
Diversify talent pool to ensure each key executive has a successor.
Management development, team building and executive coaching.
Diversity training.
Risk : Employment practices liability
HR Initiatives :
Human resources handbooks and manuals.
Documented employee hiring and training and termination procedures.
Internal employee surveys.
Outplacement services.
Management, team building and executive coaching.
Not all Risk Management issues can be addressed by HR. These issues
would include the risk of natural disaster as it relates to property. However,
hiring appropriately trained professionals can minimize an organization's risk
of engineering and design defects. In addition, even the effects of a devastating
natural disaster can be minimized by training staff to effectively and efficiently
respond to disaster.
A major Risk Management issue for high–tech companies in the Silicon
Valley arises from the fact that up to 80% of engineers come from outside
the United States, especially from countries such as the former North Korea,
China and India. Companies could be at risk for the loss of an important part
of their work force if foreign employees chose to return to their native lands
due to political and economic changes that would allow them to earn western
style salaries, be near families, and raise children in their traditional cultures.
The HR initiative addressing this risk might include helping employees
to gain U.S. citizenship, purchase homes and truly settle down here, giving
them more roots to our culture. Another HR/Risk Management initiative to
address engineer turnover would provide adequate management training to
technical managers so they are better able to assign projects among members
of the technical staff thereby reducing the risk of competitor run–off. Software
companies are particularly at risk of losing bored engineers who feel unappreciated
and underutilized to companies who promise them more exciting responsibilities.
HR executives can monitor the success of their risk control initiatives
through employee surveys, team building exercises and ongoing 360–degree
multi–raters. The results can be tracked and as each goal is recognized,
benchmarked. Clearly the disciplines of HR and Risk Management must be
integrated to maximize productivity and positively impact the bottom line of
any organization.
Check Your Progress – 2 :
1. identify a risk and a specific need that is not being addressed.
a. HR Executive b. Risk Control
c. Risk Executive d. None of Above
155
Software Engineering 2. Hiring professional engineers and surveyors to minimize the risk of fire,
ensure building meets highest standards possible is done by .
a. Political Risk b. Directors and Officers
c. Property Exposure d. None of Above
3. Explain issue from the standpoint of Risk Management and HR.
156
Software Risk
8 Systematic and adaptable A systematic approach that is adaptable
Management – II
methodology to the program's infrastructure and culture.
9 Routine and nonstop processes A nonstop observance considered by
routine risk identification and management
activities throughout all phases of the life
cycle of the program.
157
Software Engineering
B. Team Assessments :
The team assessment is a combined meeting of the government and
contractor program managers and their immediate staff to discuss and order
risks. It carries together each program manager's list of current top risks,
maintains continuity between these risks and those that were most important
at the previous meeting, promises that there is a common understanding of
the most important risks to the program, and assigns new action items. Its
purpose is to build and maintain energy in government/contractor team risk
management.
Each program manager will have the list of prioritized risks, the Joint
List of Risks, from the previous team review meeting; this list will be the
starting point for the team review. However, new risks will also have been
identified in the organizations through the routine risk identification and analysis
process. From these new risks, each program manager will select candidates
for inclusion in the Joint List of Risks on the basis of responses to three
questions :
Which of these new risks informs the other party of a serious risk that
they should be aware of ?
Which may need to be transferred or delegated to the other party ?
Which will require joint action to resolve ?
C. Action Planning :
Action planning for risks is the determination and implementation of
actions necessary to manage a program's risks. This is where the integration
of risk management processes with existing program management becomes most
evident. Planning, in general, is an integral part of program management,
whether planning how to meet specific milestones or determining the best design
strategy for meeting specified requirements. Risk planning requires a systems
perspective to maximize the effective use of rare resources within a program.
159
Software Engineering D. Tracking and Control :
The risk tracking and control procedures include creating and maintaining
risk status information, defining action plans, and taking action based upon
the status information. The important elements of risk tracking and control are
very similar to the equivalent processes in traditional program or project
management and can be readily integrated into a program's established tracking
and control processes and methods.
2. Starting point Risk Assessment :
In a starting point risk calculation, a variety of methods and tools are
used to initially recognize and analyze a set of risks and produce the initial
Master Lists of Risks, one for the government and one for the contractor.
Paradigm Method/Tools Communication Characteristics
Recognize Group interview Non-judgmental
Text-based questionnaire Non-attribution
Confidential
Peer grouping
Analyze Criteria filtering Individual voice
Individual Top 5 Mutual understanding
Minimal group technique Agreement
Comparison risk ranking
11.8 Assignment :
1. Explain Human Resource and Risk Management.
11.9 Activities :
1. Write a note HR Executive and Risk Control.
161
BLOCK SUMMARY :
In this block, you have learnt and understand about the basic of risk
management techniques with role of human resources. The block gives an idea
on the study and concept of software risk analysis with its characteristic
associated with risk management. You will be detailed with knowledge of risk
identification issues with relative risks measures in software project.
162
BLOCK ASSIGNMENT :
Short Questions :
Long Questions :
2. Explain Qualitative Risk Analysis with its types and its process.
163
Enrolment No. :
1. How many hours did you need for studying the units ?
Unit No. 1 2 3
No. of Hrs.
2. Please give your reactions to the following items based on your reading
of the block :
164
Dr. Babasaheb Ambedkar BCAR-402
Open University Ahmedabad
Software Engineering
BLOCK 4 : CASE STUDIES
In this block we will go through the various case studies. In case study are
going to identify the different criteria like customer's requirement, existing system
analysis, cost & time to develop the system and design of the software product
or system.
System which help Students, Library administrator and Teachers to access the
is automated or computerized then it will be very easy to search any book. It saves
our time and our total Library Management system become very easy.
Block Objectives :
After learning this block, you will be able to understand:
• Project Estimation
• Risk Management
• Project Scheduling
12.1 Introduction :
In this we will learn about how the Waste Management Inspection
Tracking System (WMITS) is going to manage by identifying requirements,
risk, design, scheduling, team and control mechanism.
The main purpose of WMITS is to help automate the entire process that
the Department of Environmental Quality (DEQ) Waste Management Division
(WMD) staff members perform throughout an inspection. Which will minimize
the time span of any inspection, paper work, provide searchable database, and
automated channel for the public to request information.
165
Software Engineering 12.2 Waste Management System :
12.2.1 Basic Project Plan :
12.2.1.1 Goals and Objectives :
The main purpose of WMITS is to help automate the entire process that
the Department of Environmental Quality (DEQ) Waste Management Division
(WMD) staff members perform throughout an inspection. The goals of WMITS
are :
To minimize the time span of any inspection
To minimize the amount of paper work required
To provide a searchable database of all past inspections
To provide an automated channel for the public to request information
12.2.1.2 System Statement of Scope :
1. General Requirements :
The following general requirements were laid out for our project named
WMITS :
A way in which DEQ could add new facilities to the database.
A way in which DEQ could generate electronic checklists.
A search on all electronic checklists.
A way in which they could generate letters to be sent out to facilities
based on inspection results.
A way in which all letters and checklists could be stored electronically.
A way to search for existing facilities.
A way to print blank checklists and staff reports.
A way in which they could view data which was entered into the database
prior to our software.
DEQ wanted a product that would allow them to easily add new checklists
and letters or change existing checklists and letters.
• Interface Enhancements : Staff members of WMD have requested a
lot of interface enhancements that will increase the usability of the
product for the staff.
• Database Administrative Interface : There is currently no documented
interface for WMD staff members to maintain the checklist and letter
templates. Should no such interface existed, Cyber Rovers will have to
implement one from scratch.
• Online Help : To develop an extensive help menu for the users and
also to setup the online help for the need of the help in the future.
• Training : The staff members have also requested throughout training
for the entire staff for use with the software.
2. Extended Enhancement :
• Palm Pilot Integration : Out of the two extended enhancement requests
(palm pilot integration & online record access), the team and client both
agree on doing the palm pilot integration. From the design point of view,
online record access has a major security risk, which the team has little
166
or no experience on it. Palm pilot integration on other hand, needs only Case Study – I
long programming, which can be (and will be) achieved by the team. Waste Management
We also suggest to the DEQ that they can make the online record request Inspection Tracking
to be the next semester's project. System
Before we decide on what kind of Palm Pilot we use, the team and the
client have explored several options.
• Database Restructuring : The current database structure is not optimized
at all. We will try to improve it as we go along.
3. System Context :
Eventually, multiple users will be using the product simultaneously.
Therefore, concurrent connection will be an issue for implementation. In
addition, this is a pilot product that hopefully, if successful, can be used in
other locations as well. This leads to issues about future support for a larger
user base.
4. Major Constraints :
• Time : We only have about two months to finish all documentation,
software creation and enhancements. We have a lot of ideas but cannot
implement them due to time constraint. One of the major ones is to move
the application to be completely browser–based.
• Funding : To develop and implement the Palm Pilot integration, we will
need funding to buy at least one Palm Pilot.
12.2.2 Project Estimates :
This portion of the document provides cost, effort and time estimates
for the project using various estimation techniques, which will be elaborated
in the appropriate section.
12.2.2.1 Historical Data Used for Estimates :
Although this project is to enhance the existing software, we were unable
to obtain cost information from the previous project team.
12.2.2.2 Estimation Techniques Applied and Results :
Two estimation techniques have been used to generate two independent
results for higher accuracy.
• Process–based
• Lines of Code (LOC) COCOMO Model
1. Process–Based Estimation :
For process–based estimation, the process is decomposed into a relatively
small set of activities or tasks. Then, the effort required to accomplish each
task is estimated. Based on the project scope, the following software functions
are defined :
• User Interface Re–engineering UIR
• Database Re–engineering DR
• Database Administrative Interface DAI
• Existing Bug Fixing EBF
• PalmPilot Integration PI
167
Software Engineering Activity Cust. Planning Risk Engineering Construction Cust. Totals
Comm. Analysis Release Eval.
Task Analysis Design Code Test
Function
UIR 0.40 0.02 0.02 0.02 0.50 0.30 1.00 0.05 2.31
DR - 0.01 0.10 0.10 0.30 0.10 0.10 - 0.71
DAI 0.20 0.01 0.05 0.05 0.40 0.20 0.06 0.05 1.02
EBF 0.20 0.01 0.02 0.01 0.02 0.50 0.08 0.05 0.89
PI 0.25 0.02 0.04 0.20 0.50 0.30 1.00 0.06 2.37
Total 1.05 0.07 0.23 0.38 1.72 1.40 2.24 0.21 7.30
% Effort 14.38 0.96 3.15 5.21 23.56 19.18 30.68 2.88 100
168
User Server–side : Case Study – I
Waste Management
IBM PC or compatibles with the following configurations
Inspection Tracking
• Intel Pentium II 333MHz processor System
• 64MB SDRAM
• 500MB Hard disk space
3. Minimal Software Requirements :
Development :
• Windows 98
• Windows NT Workstation
• Windows NT Server
• Visual Basic 6.0 (three user licenses)
• Microsoft Access 97 and 2000
• Microsoft Word 97 and 2000
User Client–side :
• Windows 98/NT Workstation
• Microsoft Access 97/2000 (optional)
• Microsoft Word 97/2000 (optional)
User Server–side :
• Windows NT Server
• Microsoft Access 97/2000 (optional)
• Microsoft Word 97/2000 (optional)
12.2.3 Risk Management :
12.2.3.1 Scope and intent of RMMM activities :
We want the software to be free of any defects or errors, but it is hard
or at times almost impossible to develop a system that is free of any defects.
To be safe we would like to have a risk management plan to counter any
difficulties that may impact the development or the creation of the software.
Our goal is to assist the project team in developing a strategy to deal with
any risk. For this we will take a look at the possible risks, how to monitor
them and how to manage the risk.
For software development to avoid any risk both the developer and client
have to work together. Client has to spend time with the developer in the
beginning phase of the software development. If client decides to change the
software, meaning if client wants to add some more functions into the software
or to change the requirement, this will have major effect on the development
of the software.
12.2.3.2 Risk management organizational role :
Everyone associated with the software has responsibility of managing
the risk. That is if everyone participated and paid close attention to all the
details during the early phase of the software development many risks can be
avoided.
Software development can avoid having risk by double–checking their
schedule, product size, estimates regarding costs of the development etc.
169
Software Engineering Customer can help avoid risk by providing all necessary software
information during the early phase of the development.
Software development team can avoid risk by getting all the details of
the equipment that are provided or are accessible to them.
Client can avoid risk by making all necessary business changes before
initiating request for the software.
12.2.3.3 Risk Description :
This section describes the risks that are likely to be encountered during
this project.
Risk is made up of two parts : the probability of something going wrong,
and the negative consequences if it does.
1. Description of Risks
Business Impact Risk : This is the risk where concern is that of the
not being able to come up or produce the product that has impact on the client's
business. If the software produced does not achieve its goals or if it fails to
help the business of clients improve in special ways, the software development
basically fails.
Customer Risks : This is the risk where concern is client's motivation
or willingness in helping the software development team. If the client fails
to attend meeting regularly and fails to describe the real need of the business
the produces software will not be one that helps the business.
Development Risks : If client fails to provide all the necessary equipment
for the development and execution of the software this will cause the software
to become a failure. So, in other words customer has to be able to provide
time and resources for the software development team. If all the requested
resources are not provided to the software development team odds for the
software development to fail rises greatly.
Employee Risk : This risk is totally dependent on the ability, experience
and willingness of the software development team members to create the
working product. If the team members are not experience enough to use the
application necessary to develop the software it will keep pushing the development
dates until it's too late to save the project. If one or more members of the
software development team are not putting in all the effort required to finish
the project it will cause the project to fail. Employee risk is one of the major
risks to consider while designing the software.
Process Risks : Process risk involves risks regarding product quality.
If the product developed does not meet the standards set by the customer or
the development team it is a failure. This can happen because of the customer's
failure to describe the true business need or the failure of the software
development team to understand the project and then to use proper equipment
and employees to finish the project.
Product Size : This risk involves misjudgment on behalf of the customer
and also the software development team. If the customer fails to provide the
proper size of the product that is to be developed it will cause major problems
for the completion of the project. If software development team misjudges the
size and scope of the project, team may be too small or large for the project
thus spending too much money on project or not finishing project at all because
of shortage of finances.
170
Technology Risk : Technology risk involves using technology that Case Study – I
already is or is soon to be obsolete in development of the software. Such Waste Management
software will only be functional for short period of time thus taking away Inspection Tracking
resources from the customer. Since the technology changes rapidly these days System
it is important to pay importance to this risk. If customer request use of software
that soon to be obsolete software development team must argue the call and
have to pursue customer to keep–up with current technology.
12.2.3.4 Risk Table :
The following table describes the risks associated with the project. The
appropriate categories of the risks are also given, as well as probability of
each risk and its impact on the development process.
Probability and Impact for Risk m
The following is the sorted version of the above table by probability
and impact :
Category Risks Probability Impact
Employee Risks Lack of training and experience 40% 1
Process Risk Low product quality 35% 1
Product Size Where size estimates could be 30% 2
wrong
Development Insufficient resources 30% 2
Risks
Customer Risk Customer may fail to participate 20% 3
Technology Risk Obsolete technology 10% 2
Business Impact Product may harm the business 10% 3
Table 1 – Risks Table (sorted)
Impact Values Description
1 Catastrophic
2 Critical
3 Marginal
4 Negligible
Above is the table that categorizes the risks involved in software
development. It gives brief description of the risk in Risk's column and also
provides the probability of risk occurring in percentages in Probability column
and also the impact of the risk in the Impact column.
The impacts values assigned to each risk are described in the section
below the risk table. It is very convenient way to look at the risk and derive
the information of the risk.
12.2.4 Project Schedule :
Following is the master schedule and deliverables planned for each stage
of the project development lifecycle, and their respective planned completion
dates.
171
Software Engineering 12.2.4.1 Deliverables and Milestones :
Stage of Stage Deliverable Deliverable
Development Completion Completion
Date Date
Planning 01/21/00 Quality Assurance Plan 01/15/00
Project Plan 01/20/00
Milestone 01/21/00
Requirements 02/25/00 Draft Requirements Specification 02/09/00
Definition Draft Design Specification 02/09/00
Project Test Plan 02/15/00
Requirements Specification (final) 02/22/00
Milestone 02/22/00
Design 03/01/99 Draft Training Plan 02/23/00
(Functional & Program and Database Specifications 02/26/00
System) Design Specification (final) 02/29/00
Milestone 03/01/00
Programming 04/02/00 Software (frontend and backend) 03/31/00
System Test Plan 03/10/00
User's Guide 03/20/00
Operating Documentation 03/28/00
Milestone 04/02/00
Integration & 04/15/00 Test Reports 04/03/00
Testing Training Plan (final) 04/10/00
Acceptance Checklist 04/14/00
User’s Guide (final) 04/12/00
Milestone 04/15/00
Installation & 04/20/00 Maintenance Plan 04/16/00
Acceptance Acceptance Test Report 04/20/00
Milestone 04/20/00
172
Editor / Master Tester / Maintenance : Case Study – I
Waste Management
• Proof Reading
Inspection Tracking
• Overall Testing and Reports System
• All Final Documentation
• User Guide
12.2.5.2 Additional Member Responsibilities :
The following are additional notes on team members' responsibilities :
Each person will work on multiple tasks throughout the development
process in addition to their main role.
Due to the small size of the team, project design and specification will
be discussed with the whole team.
All development personnel are required to prepare draft documentation
of their work, as well as individual testing on their part. Tester will do
the overall final testing at the end of the testing stage.
One programmer will take on the role as coordinator to ensure the project
is on schedule, as well as scheduling In–Stage Assessments.
12.2.6 Tracking and Control Mechanism :
12.2.6.1 Quality Assurance Mechanisms :
Tight Change Management
Extensive before implementation Design using Rapid Prototyping
Close Contact with Clients, meeting every two weeks and regular email
contacts
Plenty of Research on PalmPilot platform before development
12.2.6.2 Change Management and Control :
For changes affect the user experiences we will have to notify all clients
For changes that do not affect the user experiences we will notify a client
representative
Due the size of the team, internal control panel will be used. One member
of the team suggests a change, it will need to be approved by the other
two members
Formal version numbering will be used. All version changes must be
documented in a common document accessible to all team members
before a new version number can be released. Version number will be
structured as follows :
<Major Release>.<Minor Release><Bug fix>
12.4 Glossary :
1. Risk – Risk is made up of two parts : the probability of something going
wrong, and the negative consequences if it does.
12.5 Assignment :
1. Explain Team Structure in detail.
12.6 Activities :
1. Define Project Scheduling in detail.
174
Unit CASE STUDY – II
13 LIBRARY MANAGEMENT
SYSTEM
UNIT STRUCTURE
13.0 Learning Objectives
13.1 Introduction
13.2 Library Management System
13.2.1 Objective
13.2.2 Project Life Cycle
13.2.3 Existing System
13.2.4 Proposed System
13.2.5 Requirement Determining
13.2.6 Development Phase
13.2.7 Design of System Model
13.2.8 Conceptual Model of our Proposed Library Management
System
13.3 Let Us Sum Up
13.4 Assignment
13.5 Activities
13.6 Case Study
13.7 Further Readings
13.1 Introduction :
We are trying to develop an automation system which will provide lots
of facilities to our college. The total automation system divided into many
modules, here our parts is "Library Management System". This is a small part
of total automation System but The Library Management System will provide
an environment which facilitate teachers & students easy to access the library
information.
The Aim of this project is to help our student, Library administrator and
Teacher to access our library in a computerized way. We found that if our
Library Management system is automated or computerized then it will be very
easy to search any book. It saves our time and our total Library Management
system become very easy.
175
Software Engineering 13.2 Library Management System :
13.2.1 Objective :
It will help student or library administrator to access library easily
To reduce people messy.
Searching process of a book becomes very easy.
Maintenance of these books becomes very easy.
To assure the information of the library such as book types, copy number
of books, authors name, availability of particular book etc.
To make secured data storage of library information.
Manage the library as a systematic way.
Huge information can be stored.
13.2.2 Project Life Cycle :
The project life cycle includes various development phases that occur
in the life of project starting right from the inception of the project to its final
development at the client's end. The three development phases in a project
life cycle are :
• Project initiation
• Project execution
• Project development
• Project initiation : The project initiation phase is first phase of life cycle.
This phase involves creating a complete plan for the project, specifying
various activities that will be performed and assigning responsibilities
to team members on the basis of their skill set.
• Project execution : After the project plan is made and the responsibilities
assigned, the actual development of the project starts. The phase in which
the actual development of the project takes place is known as the project
execution phase. This is the most crucial phase of any project and is
subdivided into the following phases :
A. System Analysis :
Initial study
Information gathering
Feasibility study
B. System Design :
Design standard
High level design & design tools
Database design
Logical design
Construction
C. System Implementation :
Integration & testing
Post implementation
176
• Project development : After the project execution phase, the final phase Case Study – II
of a project life cycle is the project development phase. In this phase, Library Management
the deployed at the client side. This phase also involves providing System
customer support to the client for some specified period of time.
When project is built it may possibly remain error les of more, because
several type of modification can take place several times. So, for the very first
time when we run the database web site, we found few problems in tools
potions. We fixed this problem including some minor problems immediately,
and afterwards the application runs properly.
13.2.3 Existing System
The system we have currently is a poor manual library system. There
is a lot of books in library but no serial number of them. Different writers
have different books but no chart of them. Our library supervisor maintains
only a register chart. Where there is no information about the book lender.
So, it is difficult to find out the book lender in next time. And it is risky
too to give a book. Students are not able to lend a book from the library because
library supervisor has no sufficient information about them that she/he can
search out the lender.
Our existing library management system is a manual system. The whole
system is manually defined and it has some problems. The problems of existing
systems are as follows :
It is very slow and takes many times.
It is very difficult to maintain.
It is not error free.
13.2.4 Proposed System :
A Library Management System is a system where a user can access a
library automatically. Here automatically stands for computerized way. In a
manual system when we go a library, we see a lot of books are in self by
self. There is no member, no serial of these books. It is difficult to find out
a certain book for a certain writer. To reduce these haphazard, we decide to
make this LMS system automated. In this system a user easily get which books
are in the library. How many copies have of them, the name of the writer
of the book etc.
But now we want to do it automatically. Which will be so easier for
Whole University and it has some advantages as follows :
Dynamic System
Error free
User Friendly
13.2.5 Requirement Determining
For the requirement analysis we use the key strategies for determination
of requirements of the user.
Getting information from the existing system.
Interview
Questionnaires
Hardware & software requirements Getting Information from the Existing
177
Software Engineering In this stage we simply ask the personnel of meeting management
information section– what information are currently received and what other
information are required. From this stage we find that the meeting members
of the university are recording manually their personal information in the
member register.
13.2.5.1 Interview :
Why do we conduct interviews during system analysis, the reasons are
these ?
We need to gather information about the behavior of a current system
or the requirements of a new.
We need to verify our own understanding as system analyst of the
behavior of a current system or the requirements of a new system. This
understanding was probably acquired through previous interviews together
with independently gathered information.
We need to gather information about the current system and/or system
in order to carry out cost–benefit meeting between a system analyst and
an end user.
We took the interview of the teacher, student, and Library Supervisor.
As interview is the most common and most satisfactory way of obtaining
information, particularly to obtain information about objectives constraints,
allocation of details and problems and failures in the existing system.
After the interview all notes are read through and expanded to make
them intangible. As the data are in random order, they were revised into a
more useful order before the next work is commenced.
Hardware & software requirements.
13.2.5.2 Software Requirements :
Any Operating System.
Internet Explorer
13.2.5.3 Hardware Requirements :
Component Minimum Maximum
Process speed 233 MHz Higher (P4)
Ram 64 MB Higher
Graphic Card AGP 32 MB Higher
Monitor Any Color Monitor Higher
CD Rom Any 16X Higher Project phases
13.2.6 Development Phase :
Phase1 : Analysis the requirements of the project.
In this phase we basically analysis the requirements and develop our
knowledge on demand. We will sort out all the necessary tools that will be
needed. We will grow up the technological background to make workable the
software in all environments.
The method of collecting requirements :
Reading books & related reference book.
Internet Browsing.
178
Talking with the students, our friends who are interested to help us by Case Study – II
giving information about Library management System. Library Management
System
Talking with our supervisor & other teacher who are experienced to make
Library and working with the automation.
Talking with Programmer or experienced people who are working this
type of related sector.
Phase2 : Module Analysis
In this phase we will analyses our module and fragment the overall
module in some small modules. Which help us to complete total system easily.
Phase3 : Develop Modules
We will make the task flow and code flow of each module in this phase.
We will write the row code to build up the modules.
Phase 4 : Integrate Modules
In this phase we will integrate all modules. The backbone of the software
will stand up in this phase and the software will be useable.
Phase 5 : Test, bug finding and bug fixing We will test the overall
features of the software.
By testing the features, we will find out the bugs. After that all the bugs
will be solved.
Phase 6 : Use of the software
This software will be used for Our University Automation System for
Library management.
13.2.7 Design of System Model :
In our Routine Management System there are three types of User models
are shown
These are :
• Normal User
• Administrator
• Registered User
• Normal User : A regular user is any kind of user like students, teachers
or anybody who uses the system and can see the online library and get
information.
• Administrator : An admin user is a selected user who has the permissions
to create a new admin or edit update delete operation. The admin users
also perform the book function like book borrow, book lending book
return etc.
• Registered user : It means that, only our students, teacher, & employee
are permitted to registration. These types of people have to has perform
book borrow, return function.
179
Software Engineering We will focus on the following set of requirements while designing the
Library Management System :
1. Any library member should be able to search books by their title, author,
subject category as well by the publication date.
2. Each book will have a unique identification number and other details
including a rack number which will help to physically locate the book.
3. There could be more than one copy of a book, and library members
should be able to check–out and reserve any copy. We will call each
copy of a book, a book item.
4. The system should be able to retrieve information like who took a
particular book or what are the books checked–out by a specific library
member.
5. There should be a maximum limit (5) on how many books a member
can check–out.
6. There should be a maximum limit (10) on how many days a member
can keep a book.
7. The system should be able to collect fines for books returned after the
due date.
8. Members should be able to reserve books that are not currently available.
9. The system should be able to send notifications whenever the reserved
books become available, as well as when the book is not returned within
the due date.
10. Each book and member card will have a unique barcode. The system
will be able to read barcodes from books and members' library cards.
• Use case diagram :
We have three main actors in our system :
1. Librarian : Mainly responsible for adding and modifying books, book
items, and users. The Librarian can also issue, reserve, and return book
items.
2. Member : All members can search the catalog, as well as check–out,
reserve, renew, and return a book.
3. System : Mainly responsible for sending notifications for overdue books,
canceled reservations, etc.
180
Case Study – II
Library Management
System
181
Software Engineering • Class diagram :
Here are the main classes of our Library Management System :
1. Library : The central part of the organization for which this software
has been designed. It has attributes like 'Name' to distinguish it from
any other libraries and 'Address' to describe its location.
2. Book : The basic building block of the system. Every book will have
ISBN, Title, Subject, Publishers, etc.
3. BookItem : Any book can have multiple copies; each copy will be
considered a book item in our system. Each book item will have a unique
barcode.
4. Account : We will have two types of accounts in the system, one will
be a general member, and the other will be a librarian.
5. LibraryCard : Each library user will be issued a library card, which
will be used to identify users while issuing or returning books.
6. BookReservation : Responsible for managing reservations against book
items.
7. BookLending : Manage the checking–out of book items.
8. Catalog : Catalogs contain list of books sorted on certain criteria. Our
system will support searching through four catalogs : Title, Author,
Subject, and Publish–date.
9. Fine : This class will be responsible for calculating and collecting fines
from library members.
10. Author : This class will encapsulate a book author.
11. Rack : Books will be placed on racks. Each rack will be identified by
a rack number and will have a location identifier to describe the physical
location of the rack in the library.
12. Notification : This class will take care of sending notifications to library
members.
182
Case Study – II
Library Management
System
UML Conventions
183
Software Engineering 13.2.8 Conceptual Model of our Proposed Library Management System :
13.2.8.1 Analyzing & Specification :
We have found we have three libraries in three different buildings in
an average each library has 5000 books. Different department has different
library in a separate building Library administrator maintains an account (khata)
to keep information about the book no student could lend any book or even
couldn't see what the books in the library are.
To reach our project goals our LMS system must has to provide following
features :
Student could see book list
Student could lend book from library
Administrator has to have the option add edit delete remove the booklist.
Administrator & student could see the borrowed the book list
The total system should be internet based.
13.4 Assignment :
1. Discuss Project Life Cycle.
13.5 Activities :
1. Explain Requirement Determining.
184
Unit CASE STUDY – III
14 SOFTWARE PROJECT
MANAGEMENT
UNIT STRUCTURE
14.0 Learning Objectives
14.1 Introduction
14.2 Measuring a Software Project
14.3 Rapid Application Development (RAD) Method
14.4 Prototype Method
14.5 Agile Scrum Method
14.6 Hospital Management System
14.7 Let Us Sum Up
14.8 Glossary
14.9 Assignment
14.10 Activities
14.11 Case Study
14.12 Further Readings
14.1 Introduction :
Many software projects carry different scenarios in terms o0f completion
and finalization. They fail in developing required functionality which is available
in their schedule with planned budget. It results in lack of quality. Hence from
the past years many companies started taking interest to enhance software
development. These initiatives mostly focus on improving the software processes
and the technology used during software development. One area often
underestimated but crucial for every software development project is project
management. Project management is one of the key factors influencing the
project success or failure.
Study :
Business needs to build a GPS tracker that can be designed on the
railways holders to get the most out of the consumption and display the similar.
The suggested output will be cloud based web application shaped and
data put in storage on cloud. Technology used is Java Hibernate and Oracle
application server for checking. Furthermore, a GPS generated distinctly by
research and development sector.
SDLC Model Improved Prototyping Model and other related model is
Rapid Application Development Model.
188
We have arranged a small website application and let a single GPS tracker Case Study – III
as a path and observe its movement to see the holder point among a specific Software Project
range. When it got successfully completed then executed whole project. Management
189
Software Engineering 14.6 Hospital Management System :
HC Hospital Management System :
HC Infotech Ltd. has developed a core package – Hospital Management
System that addresses all major functional areas of Hospital. The development
environment ensures that HC HMS has the portability and connectivity to run
on virtually all standard hardware platforms, with stringent data security and
easy recovery in case of a system failure. HC HMS provides the benefits of
streamlined operations, enhanced administration and control, improved response
to patient care, cost control, and increased profitability.
Some of the Subsystem Modules in HC HMS :
Reception : The reception module handles various enquiries about the
patient's admission and discharge details, bed census, and the patient's movements
within the hospital. The system can also handle fixed–cost package deals for
patients as well as Doctor Consultation and Scheduling, Doctor Consultancy
Fees and Time Allocation.
OPD, IPD Registration and Admission : This module helps in registering
information about patients and handling both IPD and OPD patient's query.
A unique ID is generated for each patient after registration. This helps in
implementing customer relationship management and also maintains medical
history of the patient.
Administration : This module handles all the master entry details for
the hospital requirement such as consultation detail such as doctor specialization,
consultancy fee, and service charges.
Security : This module handles multi–level security of HC HMS so that
every admission and transaction can be traced with the help of user ID.
Pharmacy Store : This module deals with all medical items. This module
helps in maintaining Item Master Maintenance, Receipt of Drugs/consumables,
issue handling of material return, generating retail bills, stock maintenance. It
also helps in fulfilling the requirements of both IPD and OPD Pharmacy.
Purchase : This module helps in raising purchase orders, maintaining
purchase details and other purchase related details.
Phlebotomy : This specific module caters in maintaining test requisitions,
sample collection status and various procedures for collection of samples for
the tests prescribed.
Laboratory : This module enables the maintenance of investigation
requests by the patient and generation of test results for the various available
services, such as clinical pathology, X–ray and ultrasound tests. Requests can
be made from various points, including wards, billing, sample collection and
the laboratory receiving point. The laboratory module is integrated with the
in–patient/ outpatient registration, wards and billing modules.
Emergency : The development of this module keeps in mind the criticality
of this department. Every care has been taken to ensure that minimum of time
is taken to register the patient, so as to reduce the tension of the already
stressed–out relatives. Neither any detailed contact information of the patient
is required nor any information about the payment type is solicited.
OT Management : This module deals with operation theatre activities
such as equipment used detail, resource ordering, drug order, gynecology detail
190
recording, laboratory order and reports transfer requisition, patient monitoring, Case Study – III
blood request, new born baby detail and details of delivery. Software Project
Management
Minor Surgery : This module is same in features as in OT management
though the function is different. This module deals with the surgeries minor
in nature, which does not require complete anesthesia.
Blood Bank : The blood bank module provides information on the
collection and storage of blood, results of blood tests, cross–matching
identifications, and transfusion reactions.
Ward Management : The ward management module takes care of
medical equipment, doctor visit, vitals recording, patient case sheet, diet ordering,
blood requisition, transfer intimation and discharge intimation etc. It also deals
with the maintenance of the wards, inter– and intra–ward transfers.
OPD and IPD Billing : The billing module facilitates cashier and billing
operations for different categories of patients and automatic posting of charges
for different services such as lab tests, medicines supplied, consulting fees,
food and beverage charges, etc. It enables credit party billing through integration
with the financial accounting module.
Intensive Care Unit (ICU) : This module caters to scheduling, maintaining
ICU Record, drug orders, consultant details, specific blood requests etc.
Food and Beverages : This module facilitates collection of information
regarding various diet routines of patients and identifies the resources required
to satisfy diet orders. Depending on the diet orders and other requests from
canteen, the kitchen order plan can be prepared to decide the menu for the
day. Analysis of the consumption patterns helps in better and efficient management
of the kitchen.
Discharge Summary : The module helps in generating patient's discharge
summary, which includes patient's health at the time of discharge, medical
history, various diagnosis and drug prescriptions, history of present illness and
course in hospital.
Financial Accounting : This module deals with cash/bank, receipts/
payments, journal vouchers, etc. Various books of accounts, such as cashbook,
bankbook and ledgers, can be generated and maintained using this module. It
can also generate trial balance, balance sheet, and profit and loss statements.
Marketing Module : This module ensures that the hospital gets maximum
exposure to the general public and vice versa. This module keeps track of the
enquiries made at the reception and follows the lead.
Doctor's Module : This module helps the doctors to keep a track of
the entire medical history of a particular patient. Details such as the medicines
prescribed, general medical records, previous consultations are all available to
the doctor.
HR Management : Various MIS Reports are generated on the above
modules for the smooth functioning of the hospital management so that checks
can be made on any irregularity done in the hospital.
14.8 Glossary :
1. Risk – It is related to potential future harm which appears from some
action.
2. Marginal Planning – Marginal refers to the focus on the cost or benefit
of the next unit or individual. Companies use marginal planning as a
decision–making tool to support them maximize their possible profits.
3. GPS Tracker – A GPS tracking unit or simply tracker is a direction–
finding device generally on a vehicle, asset, person or animal that uses
the Global Positioning System (GPS) to decide its association and decide
its geographic position to determine its location.
4. Scrum – Scrum is a specific Agile methodology that is used to facilitate
a project.
5. Agile – Agile is a project management philosophy that utilizes a core
set of values or principles.
14.9 Assignment :
1. Explain the features show how to manage project by manager in an
effective manner.
14.10 Activities :
1. Explain the view of project managers in terms of education provided
to team members.
192
BLOCK SUMMARY :
In this block, you have learnt and understand about the goals and
objective, system scope of system, project estimation, project resource in which
people, minimal hardware requirement, minimal software requirements are
going to define. We also seen about Risk management in which we learnt scope
and intent of RMMM activities and risk description. As a part of risk description,
we learn about Business impact risk, Customer risk, Development risk, Employee
risk, Process risk, Product size, Technology risk. We also seen about the master
schedule, the structure of team and the roles of team members, and tracking
and control mechanism.
The block detailed about the basic of project initiation, execution and
development in project life cycle. We also seen how requirements are going
to gather and for gathering requirement interview method is going to use. We
also seen about different development phase like analysis the requirements of
the project, Module Analysis, Develop Modules, Integrate Modules, and Test,
bug finding and bug fixing.
BLOCK ASSIGNMENT :
Short Questions :
Long Questions :
193
Enrolment No. :
1. How many hours did you need for studying the units ?
Unit No. 1 2 3
No. of Hrs.
2. Please give your reactions to the following items based on your reading
of the block :
194
DR.BABASAHEB AMBEDKAR
OPEN UNIVERSITY
'Jyotirmay' Parisar,
Sarkhej-Gandhinagar Highway, Chharodi, Ahmedabad-382 481.
Website : www.baou.edu.in