Unit-4 Se
Unit-4 Se
Credits : 03
Examination Scheme
Term Test : 15 Marks
Teacher Assessment : 20 Marks
End Sem Exam : 65 Marks
Total Marks : 100 Marks
Prerequisite:
1. Concepts of Object Oriented Programming & Methodology.
2. Knowledge of developing applications with front end & back end connectivity.
• Course Objectives: To provide the knowledge of Standard Software Engineering discipline.
Unit-IV
08 Hrs.
Process and Project Metrics: Metrics in the Process and Project Domains, Software Measurement, Metrics for
Software Quality
Software Project Estimation: LOC, FP, Empirical Estimation Models COCOMO I COCOMO II, Specialized
Estimation Techniques.
Software Project Scheduling: Work Breakdown Structure, Network Diagram, Gantt Chart.
THE MANAGEMENT SPECTRUM
Effective software project management focuses on the four P’s: people, product,
process, and project.
• software process provides the framework from which a comprehensive plan for
software development can be established. A small number of framework
activities are applicable to all software projects, regardless of their size or
complexity.
Notion of quality is captured in a model that denotes composite characteristics & their relationship
Early models:-
Mc Call & Boehm describes quality using decomposition approach
In models, focus is given on final product & identify key attribute of quality from user’s perspective
Key attribute called as quality factors- high level external attributes like reliability, usability &
maintainability Include internal attribute –testability & efficiency
Quality factor are decomposed into lower-level attribute called quality-criteria
Ex:- reliability is composed of consistency ,accuracy, fault-tolerance etc
• Metrics for Software Quality
• Metrics for Software Quality
Boehm’s quality model
• Metrics for Software Quality
McCall’s Quality Model
Software Project Estimation
• Size-Oriented Metrics
Size-oriented software metrics are derived by normalizing quality and/or productivity
measures by considering the size of the software that has been produced.
A set of simple size-oriented metrics can be developed for each project:
• Errors per KLOC (thousand lines of code)
• Defects per KLOC
• $ per KLOC
• Pages of documentation per KLOC
In addition, other interesting metrics can be computed:
• Errors per person-month
• KLOC per person-month
• $ per page of documentation
Software Project Estimation
• Size-Oriented Metrics
Software Project Estimation
• Function Point Metrics
Function-oriented software metrics use a measure of the functionality delivered by the
application as a normalization value.
The most widely used function-oriented metric is the function point (FP).
Function Point (FP) is a widely used technique for measuring the size of software based on
its functionality, independent of programming language or technology. It helps estimate
project effort, cost, and complexity.
Computation of the function point is based on characteristics of the software’s information
domain and complexity. The function point, like the LOC measure, is controversial.
• Function Point Calculation
• FP=UFP×VAF
Where UFP is Unadjusted Function Points & VAF is Value Adjustment Factor
Software Project Estimation
• Function Point Calculation
1. Identify Function Types
Software Project Estimation
• Function Point Calculation
2. Assign Complexity Weights
Software Project Estimation
• Function Point Calculation
Software Project Estimation
• Function Point Calculation
Cost Estimation Model
• COCOMO (Constructive Cost Model) is a software cost estimation model
developed by Barry W. Boehm in 1981.
COCOMO Models: COCOMO is divided into three models based on the level of
detail and accuracy required:
1. Basic COCOMO Model – Less information in available
2. Intermediate COCOMO Model – Requirements are specified
3. Detailed COCOMO Model – Design is complete
Cost Estimation Model
Basic COCOMO Model
A simple estimation model that calculates effort based on the size of the software in Kilo
Lines of Code (KLOC).
Effort Equation:
where:
•E = Effort in Person-Months (PM)
•a, b = Constants based on project type
•KLOC = Estimated size of the project in thousands of lines of code
Cost Estimation Model
Project Categories:
• Organic: Data processing, d/b, transactions and data retrieval(e.g., Banking, accounting payroll
systems).
• Semi-Detached: Medium complexity, some new technology (e.g., database management systems).
It is in between organic and semi detached.
• Embedded: High complexity, strict constraints (e.g., real-time control systems-missile guidance
system or water temperature sensing system).
Cost Estimation Model
Intermediate COCOMO Model
This model extends the basic model by incorporating cost drivers (factors affecting effort) like
product complexity, experience level, and tools used.
Effort Equation:
where:
• EAF (Effort Adjustment Factor) is derived from 15 cost drivers affecting software
development (e.g., reliability, memory constraints, team capability).
Cost Estimation Model
Detailed COCOMO Model
The most advanced version, which divides the project into different phases (e.g., design,
coding, testing) and applies cost drivers to each phase for more accurate estimation.
where:
• where each E_i is calculated separately based on cost drivers for that phase.
Project Scheduling
• Software project scheduling means planning and distributing work over time by assigning
tasks to the right people.
• This type of schedule identifies all major process framework activities and the product
functions to which they are applied.
• As the project gets under way, each entry on the macroscopic schedule is refined into a
detailed schedule.
• Here, specific software actions and tasks (required to accomplish an activity) are identified
and scheduled.
Basic Principles
• Compartmentalization - Break the project into smaller, manageable tasks. Both the final product and the
development process are divided into clear parts to handle them more efficiently.
• Interdependency - Identify how tasks are related. Some tasks depend on the completion of others (must be
done in sequence), while some can happen at the same time (parallel tasks), and others are independent.
• Time Allocation - Assign time to each task. Set realistic start and end dates based on dependencies and
whether the team works full-time or part-time.
• Effort Validation - Make sure the workload matches the available resources. Avoid overloading the team by
checking that the number of assigned tasks doesn't exceed the team’s capacity.
• Defined Responsibilities - Assign each task to a specific team member to ensure accountability and clarity in
execution.
• Defined Outcomes - Set a clear expected result for each task, usually a work product (e.g., a document, code
module, or design).
• Defined Milestones - Link tasks to milestones—key points in the project where specific outputs are reviewed
and approved, marking progress.
Defining a Task Set for the Software Project
• A task set is a collection of software engineering work tasks, milestones, work products,
and quality assurance filters that must be accomplished to complete a particular project,
• The task set must provide enough discipline to achieve high software quality. But, at the
same time, it must not burden the project team with unnecessary work.
• In order to develop a project schedule, a task set must be distributed on the project time
line.
• The task set will vary depending upon the project type and the degree of rigor with which
the software team decides to do its work.
Defining a Task Network
• Individual tasks and subtasks have interdependencies based on their sequence.
• When more than one person is involved in a software engineering project, it is likely that
development activities and tasks will be performed in parallel.
• A task network, also called an activity network, is a graphic representation of the task flow
for a project.
• It is sometimes used as the mechanism through which task sequence and dependencies are
input to an automated project scheduling tool.
• In its simplest form, the task network depicts major software engineering actions. Figure
shows a schematic task network for a concept development project.
Defining a Task Network
• The task network shown in Figure is macroscopic. In a detailed task network, each action
shown in the figure would be expanded. For example, Task 1.1 would be expanded to show
all tasks detailed in the refinement of Actions 1.1 shown in next slide.
Refinement of Software Engineering Actions
Scheduling
• Scheduling of a software project does not differ greatly from scheduling of any multitask
engineering effort. Therefore, generalized project scheduling tools and techniques can be
applied with little modification for software projects.
• PERT and the CPM are two project scheduling methods that can be applied to software
development.
• Both techniques are driven by information already developed in earlier project planning
activities.
• Interdependencies among tasks may be defined using a task network. Tasks, sometimes
called the project work breakdown structure (WBS), are defined for the product as a whole
or for individual functions.
Scheduling
• Both PERT and CPM provide quantitative tools that allow you to
(1) Determine the critical path—the chain of tasks that determines the duration of the
project.
(2) Establish “most likely” time estimates for individual tasks by applying statistical models.
(3) Calculate “boundary times” that define a time “window” for a particular task.
Time-Line (Gantt) Chart
• A time-line chart can be developed for the entire project. Alternatively, separate charts can
be developed for each project function or for each individual working on the project.
• Figure illustrates the format of a time-line chart. It depicts a part of a software project
schedule that emphasizes the concept scoping task for a word-processing (WP) software
product.
• The horizontal bars indicate the duration of each task. When multiple bars occur at the
same time on the calendar, task concurrency is implied.