Unit 5 - Software Engineering - WWW - Rgpvnotes.in
Unit 5 - Software Engineering - WWW - Rgpvnotes.in
Tech
Subject Name: Software Engineering
Subject Code: CS-403
Semester: 4th
Downloaded from be.rgpvnotes.in
UNIT-V
NEED AND TYPES OF MAINTENANCE:
Software Maintenance: Software maintenance is an activity in which program is modified after it has been put
i to use. I this usuall it is ot p efe ed to appl ajo soft a e ha ges to s ste s a hite tu e.
Maintenance is a process in which changes are implemented by either modifying the existing systems
architecture or by adding new components into the system.
Software Configuration Items (SCIs): Information that is created as part of the software engineering process.
Baselines: A Baseline is a software configuration management concept that helps us to control change. Signals
a point of departure from one activity to the start of another activity. Helps control change without impeding
justifiable change.
Elements of SCM
There are four elements of SCM:
1. Software Configuration Identification
2. Software Configuration Control
3. Software Configuration Auditing
4. Software Configuration Status Reporting
The SCM Process
Version Control
Change Control
Configuration Audit, and
Reporting
Reporting
Configuration Audit
Change Control
Version Control
Identification
SCIs
Validation: Validity of the change request is checked and its handling procedure is confirmed.
is identified formally, it is properly documented.
Analysis: The impact of change request is analyzed in terms of schedule, cost and required efforts.
Control: It is decided that the changes are worth incorporation or not. If it is not, change request is
Overall impact of the prospective change on system is analyzed.
Execution: If the previous phase determines to execute the change request, this phase takes
refused formally.
Close request: The change is verified for correct implementation and merging with the rest of the
appropriate actions to execute the changes, through a thorough revision if necessary.
system. This newly incorporated change in the software is documented properly and the request is
formally closed.
VERSION CONTROL:
Version Control is a system or tool that captures the changes to a source code element: file, folder, image or
binary. This is beneficial for many reasons, but the most fundamental reason is it allows you to track changes
on a per file basis.
Version Control Benefits:
Secure Access to your Source Code
File History
Facilitate Team Communication
Baseline Trace Ability
Automated Merge Capabilities
Ensures no one Over-Writes Someone Else's Code
Allows for Better Control for Parallel Development
Store and handle the information extracted
Visualize all the retrieved information
RE-ENGINEERING:
Software re-engineering means re-structuring or re-writing part or all of the software engineering system. It is
needed for the application which requires frequent maintenance.
Software re-engineering is a process of software development which is done to improve the maintainability of
a software system.
Re-engineering a software system has two key advantages:
Reduced risk: As the software already exists, the risk is less as compared to developing new software.
Reduced cost: The cost of re-engineering is significantly less than the costs of developing new
software.
Reverse
engineering
Program Data
Source code modularization reengineering
translation
Program
structure Structured Re-engineered
improvement program data
Restructured code
Final specification
TOOL SUPPORT:
CASE Tool Support:
CASE tools are set of software application programs, which are used to automate SDLC activities. CASE tools
are used by software project managers, analysts and engineers to develop software system.
There are number of CASE tools available to simplify various stages of Software Development Life Cycle such
as Analysis tools, Design tools, Project management tools, Database Management tools, Documentation tools
are to name a few.
Use of CASE tools accelerates the development of project to produce desired result and helps to uncover flaws
before moving ahead with next stage in software development.
Planning
Upper CASE
Analysis
Integrated CASE
Design
Implementation
Lower CASE
Testing
Maintenance
Project management
tools
Programming tools
Prototyping and
simulation tools
Consistency and
completeness tools
Software configuration
Central repository management tools
Documentation tools
(Data Dictionary)
The objective of the project planning and management is to provide a framework for the project.
Using the project framework, the project manger decides the estimates for the schedule, cost and
resources.
Another objective of the project planning and management is that- it should be possible to get the best
case and worst case outcomes of the project.
There should be sufficient information discovery through the project so that reasonable project
estimate can be made.
FEASIBILITY ANALYSIS:
When the client approaches the organization for getting the desired product developed, it comes up with a
rough idea about what all functions of the software must perform and which all features are expected from the
software.
Referencing to this information, the analysts do a detailed study about whether the desired system and its
functionality are feasible to develop or not.
This feasibility study is focused towards goal of the organization. This study analyses whether the software
product can be practically materialized in terms of implementation, contribution of project to organization,
cost constraints, and as per values and objectives of the organization. It explores technical aspects of the
project and product such as usability, maintainability, productivity, and integration ability.
The output of this phase should be a feasibility study report that should contain adequate comments and
recommendations for management about whether or not the project should be undertaken.
RESOURCE ALLOCATIONS:
Once the objectives of the project management are achieved, the project management is to estimate the
resources for the project. Various recourses of the project are:
• Human or people
• Reusable software components
• Hardware or software components
The resources are available in limited quantity and stay in the organization as a pool of assets. The shortage of
resources hampers development of the project and it can lag behind the schedule. Allocating extra resources
increases development cost in the end. It is therefore necessary to estimate and allocate adequate resources
for the project.
Resource management includes:
• Defining proper organization project by creating a project team and allocating responsibilities to each
team member.
• Determining resources required at a particular stage and their availability.
• Manage Resources by generating resource request when they are required and de-allocating them
when they are no more needed.
SOFTWARE EFFORTS:
Project Estimation
For an effective management, accurate estimation of various measures is a must. With the correct estimation,
managers can manage and control the project more efficiently and effectively.
Project estimation may involve the following:
• Software size estimation: Software size may be estimated either in terms of KLOC (Kilo Line of Code) or
by calculating number of function points in the software. Lines of code depend upon coding practices.
Function points vary according to the user or software requirement.
• Effort estimation: The manager estimates efforts in terms of personnel requirement and man-hour
required to produce the software. For effort estimation software size should be known. This can either
e de i ed a age s e pe ie e, histo i al data of o ga izatio , o software size can be converted
into efforts by using some standard formula.
• Time estimation: Once size and efforts are estimated, the time required to produce the software can
be estimated. An effort required is segregated into sub categories as per the requirement
specifications and interdependency of various components of software. Software tasks are divided into
smaller tasks, activities or events by Work Breakthrough Structure (WBS). The tasks are scheduled on
day-to-day basis or in calendar months. The sum of time required to complete all tasks in hours or days
is the total time invested to complete the project.
• Cost estimation: This might be considered as the most difficult of all because it depends on more
elements than any of the previous ones. For estimating project cost, it is required to consider –
o Size of the software
o Software quality
o Hardware
o Additional software or tools, licenses etc.
o Skilled personnel with task-specific skills
o Travel involved
o Communication
o Training and support
PROJECT SCHEDULING:
Project Scheduling in a project refers to roadmap of all activities to be done with specified order and within
time slot allotted to each activity. Project managers tend to define various tasks and project milestones and
then arrange them keeping various factors in mind. They look for tasks like in critical path in the schedule,
which are necessary to complete in specific manner (because of task interdependency) and strictly within the
time allocated. During the project scheduling the total work is separated into various small activities.
COST ESTIMATIONS:
Cost estimation can be defined as the approximate judgments of the costs for project. Cost estimation is
usually measured in terms of effort. The effort is the amount of time for one person to work for a certain
period of time. COCOMO is one the most widely used software estimation models in the world. The
Constructive Cost Model (COCOMO) is a procedural software cost estimation model .COCOMO is used to
estimate size, effort and duration based on the cost of the software.
COCOMO predicts the effort and schedule for a software product development based on inputs relating to the
size of the software and a number of cost drivers that affect productivity.
COCOMO has three different models that reflect the complexities:
Basic Model: this model would be applied early in a projects development. It will provide a rough
estimate early on that should be refined later on with one of the other models.
Intermediate Model: this model would be used after you have more detailed requirements for a
project.
Detailed Model: when design of the project is complete you can apply this model to further refine
your estimate.
Within each of these models there are also three different modes. The mode you choose will depend on your
work environment, and the size and constraints of the project itself. The modes are:
Organic: this mode is used fo elati it s all soft a e tea s de elopi g soft a e i a highl fa ilia ,
in-house e i o e t .
Embedded: ope ati g ithi tight o st ai ts he e the p odu t is st o gl tied to a o ple of
hardware, software, regulations and operational p o edu es .
Semi-detached: an intermediate stage somewhere in between organic and embedded. Projects are
usually of moderate size of up to 300,000 lines of code.
Basic Model: The basic COCOMO model estimates the software development effort using only Lines Of Code
(LOC). Various equations in this model are:
Effort Applied (E) = ab(KLOC)bb [man-months]
Development Time (D) = cb(Effort Applied)db[months]
People required (P) = Effort Applied / Development Time [count]
Where, KLOC is the estimated number of delivered lines (expressed in thousands) of code for project. The
coefficients ab, bb, cb and db are given in the following table:
Software Projects ab bb cb db
Experienced staff leaving the project and new staff coming in.
Change in organizational management.
Requirement change or misinterpreting requirement.
Under-estimation of required time and resources.
Technological changes, environmental changes, business competition.
List of identified risks Prioritized list of risk Risk avoidance Risk assessment
/minimization plan
RMMM Plan:
It is a part of the software development plan or a separate document.
The RMMM plan documents all work executed as a part of risk analysis and used by the project
manager as a part of the overall project plan.
The risk mitigation and monitoring starts after the project is started and the documentation of RMMM
is completed.
Quality Control:
Quality control (QC) is a procedure or set of procedures intended to ensure that a manufactured product or
performed service adheres to a defined set of quality criteria or meets the requirements of the client or
customer.
Quality Assurance:
It is planned and systematic pattern of activities necessary to provide a high degree of confidence in the
quality of a product. It provides quality assessment of the quality control activities and determines the validity
of the data or procedures for determining quality.
PROJECT PLAN:
A project plan is a formal document designed to guide the control and execution of a project. A project plan is
the key to a successful project and is the most important document that needs to be created when starting
any business project.
A project plan is used for the following purposes:
To document and communicate stakeholder products and project expectations
To control schedule and delivery
To calculate and manage associated risks
PROJECT METRICS:
Metrics is a quantitative measure of the degree to which a system, component, or process possesses a given
attribute.
Project metrics are quantitative measures that enable software engineers to gain insight into the efficiency of
the software process and the projects conducted using the process framework. Project metrics are used by a
project manager and a software team to adapt project work flow and technical activities.
o Productivity=KLOC/ Person-month
o Quality= number of faults/KLOC
o Cost=$/KLOC
o Documentation= Pages of documentation/KLOC
Number of user inputs. Each user input that provides distinct application oriented data to the software is
counted. Inputs should be distinguished from inquiries, which are counted separately.
Number of user outputs. Each user output that provides application oriented information to the user is
counted. In this context output refers to reports, screens, error messages, etc. Individual data items within a
report are not counted separately.
Number of user inquiries. An inquiry is defined as an on-line input that results in the generation of some
immediate software response in the form of an on-line output. Each distinct inquiry is counted.
Number of files. Each logical master file (i.e., a logical grouping of data that may be one part of a large
database or a separate file) is counted.
Number of external interfaces. All machine readable interfaces (e.g., data files on storage media) that are
used to transmit information to another system are counted.
The Fi (i = 1 to 14) are "complexity adjustment values" based on responses to the following questions: