SE Unit V
SE Unit V
SE Unit V
Unit – V
Dr. S. Manikandan
HOD-IT
1
1. Software Configuration Management
2
• Software configuration management (SCM) is the
discipline for systematically controlling the changes
that take place during development.
• Software configuration management is a process
independent of the development process largely
because most development models cannot
accommodate change at any time during development.
• SCM can be considered as having three major
components:
– Software configuration identification
– Configuration control
– Status accounting and auditing
3
Software configuration identification
4
Configuration Control
5
Status accounting and auditing
6
Why do we need Configuration management?
8
i) Identification
• Basic Object: Unit of Text created by a software
engineer during analysis, design, code, or test.
• Aggregate Object: A collection of essential objects
and other aggregate objects. Design Specification is
an aggregate object.
• Each object has a set of distinct characteristics that
identify it uniquely: a name, a description, a list of
resources, and a "realization."
9
ii) Version Control
• Version Control combines procedures and tools to
handle different version of configuration objects that
are generated during the software process.
• Clemm defines version control in the context of
SCM: Configuration management allows a user to
specify the alternative configuration of the software
system through the selection of appropriate versions.
This is supported by associating attributes with each
software version, and then allowing a configuration to
be specified [and constructed] by describing the set of
desired attributes.
10
iii) Change Control
• Change control implies the authority to approve
and rank the changes. It combines the automated
tool with human to provide a mechanism for control
of change.
• Any changes or alteration done to a single document
often implies changes to other documents as well.
• Change request is evaluated to assess the technical
aspect of configuration items and the budget.
11
12
iv) Configuration Audit
• SCM audits to verify that the software product
satisfies the baselines requirements and ensures that
what is built and what is delivered.
• SCM audits also ensure that traceability is
maintained between all CIs and that all work
requests are associated with one or more CI
modification.
• SCM audits are the "watchdogs" that ensures that
the integrity of the project's scope is preserved.
13
v) Status Reporting
• Configuration Status reporting (sometimes also
called status accounting) providing accurate status
and current configuration data to developers, testers,
end users, customers and stakeholders through
admin guides, user guides, FAQs, Release Notes,
Installation Guide, Configuration Guide, etc.
14
Configuration Management for Web apps
i) Domain Issues
Four issues should be considered when developing
tactics for Web App configuration management
1. Content
A typical web app contains a vast array of content –
text, graphics, scripts, audio/video files, tables,
streaming data and many others
The challenge is to organize this set of content into
a rational set of configuration objects and then
establish appropriate configuration control
mechanism for these objects.
15
2. People
Any person involved in the WebApp can create content
Many content creators have no software engineering
background and are completely unaware of the need
for configuration management.
3. Scalability
The techniques and controls applied to a small Web
App do not scale upward well.
16
4. Politics
Who “owns” a Web App?
Who assumes responsibility for the accuracy of the
information on the website?
Who assumes the cost of change?
Who is responsible for making changes?
17
ii) Configuration Objects
Web App encompass a broad range of configuration
objects – content objects
18
Software Cost Estimation
For any new software project, it is necessary to know how much it
will cost to develop and how much development time will it take.
These estimates are needed before development is initiated, but
how is this done? Several estimation procedures have been
developed and are having the following attributes in common.
• Project scope must be established in advanced.
• Software metrics are used as a support from which evaluation is
made.
• The project is broken into small PCs which are estimated
individually.
• To achieve true cost & schedule estimate, several option arise.
• Delay estimation
• Used symbol decomposition techniques to generate project cost
and schedule estimates.
• Acquire one or more automated estimation tools.
19
Uses of Cost Estimation
20
Cost Estimation Models
21
1.COCOMO or Algorithmic Model
• It is called the Constructive Cost Model, which
is mainly used for software cost estimation
• i.e. it estimates/predicts the effort required for
the project, total project cost and scheduled
time for the project.
• This model depends on the number of lines of
code for software product development. It also
estimates the required number of Man-Months
(MM) for the full development of software
products.
22
2. Wideband Delphi or Expert Judgment
Model
• It is one type of software cost estimation
model prepared by the highly
qualified/experienced manager/estimator
based on the previous project estimation
report.
• So the model name shows as Expert
Judgement Model.
23
3. Static Single Variable Model
• This model is used to estimate the effort, cost and
development time for a software project which depends
on a single variable. The relationship is given by:
• Cost (C) = a*(LOC)b
• Effort (E) = a*(LOC)b MM
• Development Time (DT) = a*(LOC)b Months
• Where LOC = Number of Lines of Code.
PARAMETERS a b
Effort 1.4 0.93
Dev. Duration 4.2 0.26 24
4. Static Multi-Variable Model
• This model is used to estimate the effort, cost and
development time for a software project with depends
on multiple internal or external variables I .e.Effort
Adjustment Factor (cost driver factors). The
relationship is given by:
• Cost (C) = a*(LOC)b
• Effort (E) = a*(LOC)b MM
• Development Time (DT) = a*(LOC)b Months
• Where LOC = Number of Lines of Code.
PARAMETERS a b
26
Risk Management
29
Risk Identification
31
Risk Control
33
34
35
36
37
38
Software Maintenance
39
Types of Maintenance
40
• Perfective Maintenance - This includes modifications
and updates done in order to keep the software usable
over long period of time. It includes new features, new
user requirements for refining the software and improve
its reliability and performance.
• Preventive Maintenance - This includes modifications
and updations to prevent future problems of the
software. It aims to attend problems, which are not
significant at this moment but may cause serious
issues in future.
41
Software Re-engineering
42
Steps involved in Software Re-engineering
Process Model
43
Re-Engineering Process
• Decide what to re-engineer. Is it whole software or a
part of it?
• Perform Reverse Engineering, in order to obtain
specifications of existing software.
• Restructure Program if required. For example,
changing function-oriented programs into object-
oriented programs.
• Re-structure data as required.
• Apply Forward engineering concepts in order to get
re-engineered software.
44
Forward Engineering Reverse Engineering
46