CAF = 0.65 +0.01 xS) - 0.65 + 0.01 x(14 x3) = 1.
07
FP = 152 x 1.07 = 163
UFPx CAF
1FP - 20 LOC
163 3260 LOC =3.26 KLOC.
The basicCOCOMO equation take the form:
E = a,(KLOC)
D = C,(KLOC),
For organic mode
E = 8.28 PM
E = 2.4 (3.26)
D = 3.9 M
D= 2.5 (3.26)*
Review Questions
AU: Dec.-15, Marks 10
1. Discuss about COCOMO II model for software estimation.
2. Write short notes - COCOMO II. AU: May-16, Marks 8
3. Describe in detailCOCOMO model for software cost estinmation. Illustrate considering suitable
example. AU: May-17, Marks 16, May-18, Marks 9
4. Elaborate the cost estination COCOMO Illcost estimation mnodel. AU: Dec.-19, Marks 13
5.12 Software Configuration Management
Definition: Software configurationmanagement is a set of activities carried out
for identifying, organizing and controlling changes throughout the lifecycle of
Computer software.
During the development of software change must be managed and controlled in
order to inmprove quality and reduce error.
" Hence Software Configuration Management is a quality assurance activity that is
applied throughout the software process.
" The origins of changes that are requested for software are
1. New business or market positions cause the changes in the requirements. Due to
which the changes need to occur.
2. New stakeholders may require some changes in the existing requirements.
3. Due to
business growth or project extension, it is essential to makes changes in
the project.
4.
Sometimes due to schedule or budge constraints, changes are must in project.
The software configuration management is concerned with managing evolving
software systens.
Software configuration management is aset of tracking and
begin when asoftware development project begins and control activities that
is taken out of terminates when the software
operation.
5.12.1 SCM Basics
5.12.1.1 Goals in Change Management
During software development process,
The goal of project manager is to various roles and tasksare involved.
given schedule and budget. Hence ensure that the project is getting
project completed within
progress of the project. managers continuously track the
The configuration
managers ensures that the changes in the
appropriately taking place and the testing is conducted projects 1s
modification in the project. thoroughly after the
The goal of software
efficient code and error engineer
is to work on the
free code. assigned module to produce
Finally the customer uses the
find out the bugs. product, analyze it and may request for the
change or
5.12.1.2 Elements of Configuration
Susan Dart identified four
Management
System
important
management system. These elements are - elements for software configuration
Elements of
SCM
Component
element
Process Construction Human
element element element
Fig. 5.12.1
1. Component Elements: It consists of collection of tools that are used for file
management system. For example - databases.
2. Process Elements : t consists of actions and tasks used during change
managenment and use of software.
O. Lonstruction Elements : t is a collection of tools that automate the construction
of software.
4. Human Elements : It consists of set of tools that are used by software team to
implement software configuration management.
5.12.1.3 Baselines
" The IEEE (IEEE Std. No. 610.12-1990) defines a baseline as :
o A specification or product that has been formally reviewed and agreed upon,
that thereafter serves as the basis for further development, and that can be
changed only through formal change control procedures.
" A baseline is amilestone in the development of software that is marked by the
delivery of one or more software configuration items and the approval of them is
obtained through formal technical review.
The baseline is the shared project database. It is an SCM task to maintain the
integrity of the set of artifacts.
-Software engineer's
Modification private workspace
SCI
Software SCI
Technical
SCI Approved
task review
Project
database
SCI
Extracted
SCM
sCI Extract
control
Fig. 5.12.2 Software baseline
" The elements of a design model have been first documented and reviewed. From
this design model errors are identified and corrected. Once all parts of the model
have been reviewed, corrected and then approved, the design model becomes a
baseline.
Fig. 5.12.2 represernts the common software baseline.
Step 1: The Software engineeringtask produce one or more SCIs.
Step 2:These SCIs are then reviewed and approved.
o Step 3:These are then placed in project database or project library.
changes to baselined SCI, it is
Step 4 : When software engineer wants to make
copied to software engineers private workspace.
followed.
Step 5 : The extracted SCI is modified only if SCM controls are
5.12.1.4 Software Configuration Items
Software configuration item is basically the information that is created as apart of
software engineering process.
Examples of Software Configuration Items are
Computer programs
Source programs
Executable programs
Documents describing the programs
Technical manual
- Users manual
Data
- Program components or functions
External data
- File structure
For each type of item, there may be a large number of different individual items
produced. For instance there may be many documents for a software specification
such as project plan, quality plan, test plan, design documents, programs, test
reports, review reports.
These SCI or items will be produced during the project, stored, retrieved, changed,
stored again and so on.
Each configuration item must have a unique name and a description or specification
which distinguishes it from other items of the same type.
5.12.2 SCM Repository
Software Configuration Items (SCI) are maintained in project repository or project
library.
Object Ornell 3- 48
The software repository is basicalludatabeo0 fhat acts as a center tor both
accumulation and storage for software engineering intormauo
are integrated
Tne sotvWare engineer interacts with rennsitorv using tools that
within it.
5.12.21 Role of Project Repository
software engineers to
Software repository is a collection of information accessed by
make appropriate changes in it.
management functions.
Thisrepository is handled using allthe modern database
integrity, sharing and
"It must maintain important properties such as data
integration.
" The repository must maintain uniform
structure and format for software
engineering work products.
meta-model. The
Toachieve these capabilities, the repository is defined in terms of
meta model determines -
i) How information is stored in repository ?
ii) How data can be accessed by using the tool ?
ii) How the security and integrity of the data is maintained ?
iv) How the existing model can be extended to accommodate new requirements ?
5.12.2.2 Features
The Software Configuration Management can be performed by interacting with
repository. The repository must have toolset that provides support for following
features -
1. Versioning :As project progresses various versions of individual work products
may get created. The repository must be able to maintain all these versions and
permit the developer to go back to previous versions. during testing and
debugging
2. Dependency Tracking and Change Management:The data elements stored in
the repository are related to each other. The repository must have an ability to
keep track of these relationship and to maintain data integrity.
3. Requirements Tracing : If the constructed components, its designed is tracked,
then particular requirement can be traced out. The repository must have this
ability to trace the requirement from constructed components.
*. Connguration Management:The repository must be able to keep track of series
of configurations representing proiect milestones and production releases.
5. Audit Trails: The audit trail.
5.12.3 SCM Process
The primary objectives of Software Configuration Management process (SCM) are -
1. Configuration Identification:Identify the items that define the software
configuration.
2. Change Control: Manage changes to one or more items.
3. Version Control:Facilitate to create different versions of the application.
4. Configuration Authentication : To ensure that the quality of the software is
maintained as the configuration evolves over the time.
The SCM process must be developed in such a way that the software team must
answer the following set of questions
1. How does the software team identify the
software configuration items ?
2. How does the software team control thechanges in the
software before and after
delivering it to the customer ?
3. How does the software team
manage the versions of the programs in the
software package ?
4. Howdoes team get ensured that the
changes are made properly ?
5. Who is responsible for approving the changes in the
software?
The answers to these questions lead the
definition of five tasks of SCM and those
are - Identification, change control, version control and configuration audit and
status reporting.
5.12.3.1 Identification of Objects in Software Configuration
The software configuration items must be separately named and
identified as object.
These objects must be arranged using object oriented approach.
There are two categories of objects - basic objects and aggregate objects.
" The basic object is unit of
information created during requirements analysis,
design,coding or testing. For example basic object can be part of source code.
Aggregate object is a collection of basic objects and other aggregate objects. For
example SRS or data model can be aggregate object.
has got -
Each object can be uniquely identified because itit collection of characters (string)
1. Name: The objectis nothing butthe
name of the
orsome text. It is unique. description can be given. This
object,the object
2. Description : For describing the program or some other description such as
document,
descrnption contains
information.
project identifier or version entities that are used
for
accessing,
resources ate the
3. List of resources : The
The data types and functionalities can
objects.
reterencing and processing of
Serve as a resource.
Realization or identification : It is pointer to object.
4.
also consider relationships th¡t exist
object identification can
"The configuration
between the named objects. determine which
to one configuration object it is possible to
"lt a change is made
configuration objects in the repository are affected by the change.
other During the process of
throughout the software process.
Basically object evolve
objects along with its process must be
object identification the evolution of
identified.
Major modifications in the object must be noted.
5.12.3.2 Change Control
smallchanges in
Changes in any software projects are vital. Sometimes, introducing
the system may lead to big problems in product.
Similarly, introducing some changes may enhance the capabilities of the system.
According toJames Bach too little changes may create some problems and too big
changes may create another problems.
" Fora large software engineering project, uncontrolled change creates lot of chaos.
For managing such changes, human procedures or automated tools can be used.
The change control process is shown by following Fig. 5.12.3.
(See Fig. 5.12.3 on next page)
o Step 1: First of allthere arises aneed for the change.
Step 2:The change request is then submitted by the user.
Step 3 :Developers evaluate this request to assess technical merits,potential side
effects and overall impact on system functionsand cost of the project.
Need for change
Change request
Evaluation of request
Generation of change report
Decision of CCA for change
Denial of change request Change request accepted
and ECOgenerated
Intimate user about denial Assign individuals to
configuration object
Check out configuration
objects
Make changes,review them
Check in the object
that have been changed
Perform SQA and testing
activities
Promote changes in next
release
Rebuilt appropriate version
Distribute the new version
Fig. 5.12.3 Change control process
Step 4: Achange the Change Control
the
report isis then generated and presented to
Authority(CCA).
Step 5:The change control authority is a person or a group of people who makes
a final decision on status or priorityof the change
Drep 6:An Engineering Change Order (ECO) is generated when the change gets
approved. In ECO the change is described, the restrictions and criteria for revjew
and audit are mentioned.
Step 7 : The object that needs to be changed is checked out of the project
database.
Step 8: The changes are then made on the corresponding object and appropriate
SQA activities are then applied.
Step 9 :The changed object is then checked in tothe database and appropriate
version control is made to create new version.
The checked in and checked out mechanisms require two important elements -
" Access control
Synchronization control
The access control mechanism gives the authority to the
software engineer to access
and modify the specific configuring object. The synchronization control
allows to màke parallel changes or the changes made by two mechanism
different people without
overwriting each other's work.
5.12.3.3 Version Control
Version is an instance of a system which is
other system instances.
functionally distinct in some way from
" Version control works to help manage different
during the development process. versions of configuration items
The configuration management allows a
user to specify the alternative
configurations software system by selecting appropriate version.
of the
" Certain attributes are associated with each
software version. These attributes are
useful in identifying the version. For
example : The attribute can be 'date', 'creator',
'customer,'status'.
In practice the version needs an
associated name for easy reference.
" Different versions of a system can be shown by an evolution graph as shown in
ig. 5124.
ten Verston of software system is acollection of software configuration items.
1.2 1.3
1.0 11 2.0 2.1
2.1.2
Fig. 5.12.4 Version numbering in evolution graph
5.12.3.4 Configuration Audit
In order to ensure that the change has been properly implemented or not two
activities are carried out.
1. Formal Technical Review (FTR)
2. Software Configuration Audit
" In Formal Technical Review, the correctness of configuration object is identified and
corrected. It is conducted by technical reviewer.
The software configuration audit assess the configuration object for the
characteristics that are not reviewed in formal technical review. It is conducted by
software quality assurance group.
" Following are some primary questions that are asked during configuration audit
1. Whether FTR is conducted to assess the technical correctness ?
2. Whether or not the change specified by ECO has been made ?
3. If additional changes need to be made or not ?
4. Whether the software engineering standards are properly followed ?
5. Do the attributes of configuration objects reflect the change ?
6. Whether all the SCIare updated properly ?
7. Whether the SCM process (object identification, change and version control,
configuration audit and status reporting) are properly followed ?
The above questionscan be asked as a part of formal technical review.
3-34
heering
5.12.3.5 Status Reporting
of changes to all people in an
The status on communication
reporting focuses
organization that involve with changes.
questions were asked.
During status reporting following type of
that are requiredr
l, What happened?:What are the changes
2. Who did it ? : Whowill be handling these changes ?
arised.
When did it happen ?: The time at which these changes are
3. software that might be
else willbe affected ?: Theobjects or part of the
* What
reflected due to these changes.
Review Questions
and features of SCM reposttory.
l. What is configuration management repository ?Discuss role
2. Which are the layers of SCM process ? Explain each in detail.
Marks 16|
5.13 Project Scheduling AU: May-05,15,16, 17,22, Dec.-06,07,15,16,
resource of
While scheduling the project, the manager has to estimate the time and
the project. All the activities in the project must be arranged in coherent sequence.
The schedules must be continually updated because some uncertain problems may
occur during the project life cycle.
" For new projects initial estimates can be made optimistically.
" During the project scheduling the total work is separated into various small
activities. And time required for each activity must be determined by the project
manager.
" For efficient performance some activities are conducted in parallel.
Tdentify activities Identify Estimate Assign people Create activity
to conduct network and
possible resources
activities bar charts
dependencies
Fig. 5.13.1 Project scheduling process
The project manager should be aware of the fact that : Every stage of
the project
may not be problem-free. Some of the typical problems in
project development
stage are:
i) People may leave or remain absent.