SE Practical2
SE Practical2
SE Practical2
AIM: Prepare the Software Project Management Plan (SPMP) including following: 1)
Estimation of Size, Cost, Duration, Effort 2) Prepare the Schedule, Milestones using
Gantt chart
• Objectives:
1. To perform Estimation of Size, Cost, Duration, Effort
2. To Prepare the Schedule, Milestones
• Theory:
The effectiveness of the subsequent planning activities is based on the accuracy of these
estimations.
Function Points
STEP 1: measure size in terms of the amount of functionality in a system. Function points are
computed by first calculating an unadjusted function point count (UFC).
Counts are made for the following categories
External inputs–those items provided by the user that describe distinct application-oriented
data (such as file names and menu selections)
External outputs–those items provided to the user that generate distinct application-oriented
data (such as reports and messages, rather than the individual components of these)
External inquiries–interactive inputs requiring a response
External files–machine-readable interfaces to other systems
Internal files–logical master files in the system
STEP 2: Multiply each number by a weight factor, according to complexity (simple, average
or complex) of the parameter, associated with that number. The value is given by a table:
STEP 4: Calculate the total TCF(Technical Complexity Factor) by giving a value between 0
and 5 according to the importance of the following points(next slide):
Technical Complexity Factors:
1.Data Communication 2.Distributed Data Processing 3.Performance Criteria 4.Heavily
Utilized Hardware 5.High Transaction Rates 6.Online Data Entry 7.Online Updating 8.End-
user Efficiency 9.Complex Computations 10.Reusability 11.Ease of Installation 12.Ease of
Operation 13.Portability 14.Maintainability
STEP 5: Sum the resulting numbers to obtain DI(degree of influence)
The Constructive Cost Model (COCOMO) is the most widely used software estimation
model.
The COCOMO model predicts the effort and duration of a project based on inputs relating to
the size of the resulting systems and a number of "cost drives" that affect productivity.
The most important factors contributing to a project's duration and cost is the Development
Mode.
Organic Mode: The project is developed in a familiar, stable environment, and the product is
similar to previously developed products. The product is relatively small, and requires little
innovation.
Semidetached Mode: The project's characteristics are intermediate between Organic and
Embedded.
Embedded Mode: The project is characterized by tight, inflexible constraints and interface
requirements. An embedded mode project will require a great deal of innovation.
Estimated time:
= 62 persons
= 10 months
Cost:
=46,25,000
Project-task scheduling is an important project planning activity. It involves deciding which
tasks would be taken up when. In order to schedule the project activities, a software project
manager needs to do the following:
A critical path is the chain of activities that determines the duration of the project. The
first step in scheduling a software project involves identifying all the tasks necessary to
complete the project. A good knowledge of the intricacies of the project and the
development process helps the managers to effectively identify the important tasks of
the project. Next, the large tasks are broken down into a logical set of small activities
which would be assigned to different engineers. The work breakdown structure
formalism helps the manager to breakdown the tasks systematically after the project
manager has broken down the tasks and created the work breakdown structure, he has
to find the dependency among the activities.
Dependency among the different activities determines the order in which the different
activities would be carried out. If an activity A requires the results of another activity
B, then activity A must be scheduled after activity B. In general, the task dependencies
define a partial ordering among tasks, i.e. each tasks may precede a subset of other
tasks, but some tasks might not have any precedence ordering defined between them
(called concurrent task). The dependency among the activities is represented in the form
of an activity network. Once the activity network representation has been worked out,
resources are allocated to each activity.
Resource allocation is typically done using a Gantt chart. After resource allocation is
done, a PERT chart representation is developed. The PERT chart representation is
suitable for program monitoring and control. For task scheduling, the project manager
needs to decompose the project tasks into a set of activities. The time frame when each
activity is to be performed is to be determined. The end of each activity is called
milestone. The project manager tracks the progress of a project by monitoring the
timely completion of the milestones. If he observes that the milestones start getting
delayed, then he has to carefully control the activities, so that the overall deadline can
still be met.
Gantt charts are mainly used to allocate resources to activities. The resources allocated
to activities include staff, hardware, and software. Gantt charts (named after its
developer Henry Gantt) are useful for resource planning. A Gantt chart is a special type
of bar chart where each bar represents an activity. The bars are drawn along a time line.
The length of each bar is proportional to the duration of time planned for the
corresponding activity. Gantt charts are used in software project management are
actually an enhanced version of the standard Gantt charts. In the Gantt charts used for
software project management, each bar consists of a white part and a shaded part. The
shaded part of the bar shows the length of time each task is estimated to take. The white
part shows the slack time, that is, the latest time by which a task must be finished.
Week 4-9
- Define the system architecture and components
Documentation Phase
(6 Weeks)
- Design the encryption and decryption algorithms
Quiz:
ANS: Assuming a basic project and a KLOC-to-effort ratio of 2.4 to 3.6 person-months per
KLOC for a beginner team, your estimated effort would be 720 to 1080 person-months.
Development time depends on staff size, with an average staff size of Effort / (Development
Time * 160 hours/month). Productivity can be calculated as Total KLOC / Total Effort.
Specific project details can yield more accurate estimates.
3) Explain Software metrics used for software cost estimation
ANS: Software metrics used for cost estimation include Lines of Code (LOC), Function
Points (FP), Cyclomatic Complexity, and productivity metrics (e.g., KLOC per person-
month). These metrics help assess software size, complexity, development efficiency, and
potential defects, which are critical for estimating and managing software development
costs.
Suggested Reference:
I. COCOMO
II. Halstead complexity measures
III. COCOMO (Constructive Cost Model), Seminar on Software Cost Estimation WS 2002
/ 2003, presented by Nancy Merlo – Schett
IV. The Halstead metrics
V. Software Engineering, National Program on Technology Enhanced Learning
VI. Halstead Metrics, Verifysoft Technology
VII.
Rubric wise marks obtained:
Rubrics 1 2 3 4 5 Total
Correct answer to
all questions
Signature of Faculty: