SE Unit 06 BSW
SE Unit 06 BSW
• Metric
➢ It is “a quantitative measure of the degree to which a system, component, or process possesses a given
attribute.” (ex. – SPI of student)
➢ Metrics should be collected so that process and product indicators can be find out.
➢ Process indicators enable a software engineering organization to gain insight into the efficiency of an
existing process.
❖ Software measures:
➢ It can be categorized in two ways:
1. Direct measures (e.g., the length of a attach)
2. Indirect measures (e.g., the "quality" of attach produced, measured by counting rejects).
➢ Direct measures of the software engineering process include cost and effort applied. Direct measures of
the product include lines of code (LOC) produced, execution speed, memory size, and defects reported
over some set period of time.
➢ Indirect measures of the product include functionality, quality, complexity, efficiency, reliability,
maintainability, and many other "–abilities".
➢ For proper Software Measurement, we have two kinds of Metrics.
1) Size-Oriented Metrics (Direct)
2) Function-Oriented Metrics (Indirect)
• 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.
➢ If a software organization maintains simple records, a table of size-oriented measures, such as the one
shown in Figure.
➢ The table lists each software development project that has been completed over the past few years and
corresponding measures for that project.
SOFTWARE ENGINEERING
Chapter 6: Software Project Management
➢ 12,100 lines of code [LOC] were developed with 24 person-months of effort at a cost of $168,000.
➢ It should be noted that the effort and cost recorded in the table represent all software engineering
activities (analysis, design, code, and test), not just coding.
➢ Further information for project alpha indicates that 365 pages of documentation were developed, 134
errors were recorded before the software was released, and 29 defects were come across after release to
the customer within the first year of operation.
➢ Three people worked on the development of software for project alpha.
➢ A set of simple size-oriented metrics can be developed for each project:
1. Errors per KLOC (thousand lines of code).
2. Defects per KLOC.
3. $ per LOC.
4. Page of documentation per KLOC.
➢ In addition, other interesting metrics can be computed:
5. Errors per person-month.
6. LOC per person-month.
7. $ per page of documentation.
• Function-oriented metrics
➢ Function-oriented software metrics use a measure of the functionality delivered by the application as a
normalization value.
➢ Functionality cannot be measured directly, it must be derived indirectly using other direct measures like
Function Point.
➢ Function points are derived using an observed relationship based on direct measures of software's
information domain and assessments of software complexity.
➢ The principle of Albrecht’s function point analysis (FPA) is that a system is decomposed into functional
units.
- Inputs: information entering the system
- Outputs: information leaving the system
- Enquiries: requests for instant access to information
- Internal logical files: information held within the system
- External interface files: information held by other system that is used by the system being analyzed.
➢ The FPA functional units are shown in figure given below:
SOFTWARE ENGINEERING
Chapter 6: Software Project Management
Example – 1:
Consider a project with the following functional units:
Number of user inputs = 50
Number of user outputs = 40
Number of user enquiries = 35
Number of user files = 06
Number of external interfaces = 04
Assume all complexity adjustment factors and weighting factors are average.
Compute the function points for the project.
ANS:
Example – 2:
Computer the FP value for a project with the following information domain characteristics:
No. of user inputs = 32
No. of user outputs = 60
No. of user inquiries = 24
No. of user files = 08
No. of External interfaces = 2
No of person involved = 4, No of month = 3
SOFTWARE ENGINEERING
Chapter 6: Software Project Management
Assume that all complexity adjustment values are average. Assume 14 algorithms have been counted.
Also calculate productivity for above project.
ANS:
Data Count Weighing factor (Avg.) Count * Factor
EI 32 4 128
EO 60 5 300
EsQ 24 4 96
ILF 8 10 80
EIF 2 7 14
COUNT TOTAL 618
➢ Σ (Fi) = 14 * 3 = 42 (because in the question it is given that complexity adjustment values are average
and all 14 algorithms are counted)
➢ Now,
FP = count total x [0.65 + 0.01 * Σ (Fi)]
FP = 618 x [0.65 + 0.01 * 42]
FP = 661.26
➢ Productivity = FP / Efforts
= 661.26 / (4*3)
= 55.105
❖ Project estimation:
➢ Estimation of resources, cost, and schedule for a software engineering effort requires experience, access
to good historical information (metrics), and the courage to commit to quantitative predictions when
qualitative information is all that exists.
❖ COCOMO MODEL:
➢ The Constructive Cost Model (COCOMO) is an empirical estimation model i.e., the model uses a
theoretically derived formula to predict cost related factors.
➢ This model was created by “Barry Boehm”.
➢ The COCOMO model consists of three models:
1) The Basic COCOMO model: - It computes the effort & related cost applied on the software
development process as a function of program size expressed in terms of estimated lines of code
(LOC or KLOC).
2) The Intermediate COCOMO model: - It computes the software development effort as a function of –
a) Program size, and b) A set of cost drivers that includes subjective assessments of product,
hardware, personnel, and project attributes.
3) The Advanced COCOMO model
ANS:
a) For overall estimation,
➢ Total LOC size = 4K + 2K + 1K + 2K + 3K = 12K
➢ If we are analyzing out project, then we find that full screen editor is a semidetached project. So, for
estimation purpose, we will make, use of those constants.
➢ E = a * (KLOC)b
= 3 * (12)1.12 = 48.51 person month
➢ D = c * (E)d
= 2.5 * (48.51)0.35 = 9.73 month
➢ Number of people, N = E/D = 4.98 = 5 persons approximately
b) For individual phases,
➢ All modules will be organic software project because they are simple and we will make use of concerned
constants.
1) Screen edit
E = 2.4 * (4)1.05 = 10.28 person months
D = 2.5 * (10.20)0.38 = 6.06 months
N = E/D = 1.6 = 2 persons (approximately)
2) Command Language Interpreter
E = 2.4 * (2)1.05 = 4.96 person months
D = 2.5 * (4.96)0.38 = 4.59 months
N = E/D = 1.08 = 2 persons (approximately)
3) File input and output
E = 2.4 * (1)1.05 = 2.4 person months
D = 2.5 * (2.4)0.38 = 3.48 months
N = E/D = 0.68 person = 1 person
4) Cursor Movement
E = 2.4 * (2)1.05 = 4.96 person months
D = 2.5 * (4.96)0.38 = 4.59 months
N = E/D = 1.08 = 2 person (approximately)
5) Screen Movement
E = 2.4 * (3)1.05 = 7.6 person months
D = 2.5 * (7.6)0.38 = 5.4 months
N = E/D = 1.4 = 2 person (approximately)
Example – 4:
A new project with estimated 400 KLOC embedded system has to be developed. Project manager has
a choice of hiring from two pools of developers: Very high application experience with very little
experience in the programming language being used Or Developers of very low application experience
but a lot of experience with the programming language. What is the impact of hiring all developers
from one or the other pool?
ANS:
➢ Case - I:
E = a * (KLOC)b * (EAF)
= 2.8 * (400)1.2 * (0.82*1.14) = 3470.154 person month
D = c * (E)d
= 2.5 * (3470.154)0.32 = 33.95 month
➢ Case - II:
E = a * (KLOC)b * (EAF)
= 2.8 * (400)1.2 * (1.29*0.95) = 4549.29 person month
D = c * (E)d
= 2.5 * (4549.29)0.32 = 37.024 month
➢ Case – II requires more time and effort. Hence, very low application experience developers with lot of
programming language experience could not match with performance of very high application
experience with very low programming language experience.
❖ Project scheduling:
➢ Software project scheduling is an action that distributes estimated effort across the planned project
duration by allocating the effort to specific software engineering tasks.
• Basic principles:
1) Compartmentalization:
➢ The project must be compartmentalized into a number of manageable activities and tasks. To accomplish
compartmentalization, both the product and the process are refined.
SOFTWARE ENGINEERING
Chapter 6: Software Project Management
2) Interdependency:
➢ The interdependency of each compartmentalized activity or task must be determined. Some tasks must
occur in sequence, while others can occur in parallel. Some activities cannot commence until the work
product produced by another is available. Other activities can occur independently.
3) Time allocation:
➢ Each task to be scheduled must be allocated some number of work units (e.g., person-days of effort). In
addition, each task must be assigned a start date and a completion date that are a function of the
interdependencies and whether work will be conducted on a full-time or part-time basis.
4) Effort validation:
➢ Every project has a defined number of people on the software team. As time allocation occurs, you must
ensure that no more than the allocated number of people has been scheduled at any given time. For
example, consider a project that has three assigned software engineers (e.g., three person-days are
available per day of assigned effort). On a given day, seven concurrent tasks must be accomplished.
Each task requires 0.50 person-days of effort. More effort has been allocated than there are people to do
the work.
5) Defined responsibilities:
➢ Every task that is scheduled should be assigned to a specific team member.
6) Defined outcomes:
➢ Every task that is scheduled should have a defined outcome. For software projects, the outcome is
normally a work product (e.g., the design of a component) or a part of a work product. Work products
are often combined in deliverables.
7) Defined milestones:
➢ Every task or group of tasks should be associated with a project milestone. A milestone is accomplished
when one or more work products has been reviewed for quality and has been approved. Each of these
principles is applied as the project schedule evolves.
Task ES EF LS LF ST
Specification 0 15 0 15 0
Design database 15 60 15 60 0
Design GUI 15 45 90 120 75
Code database 60 165 60 165 0
Code GUI 45 90 120 165 75
Integrate and test 165 285 165 285 0
Write user manual 15 75 225 285 210
➢ Task network
• Advantages of CPM:
➢ Offers a visual representation of the project activities.
➢ Presents the time to complete the tasks and the overall project.
➢ Tracking of critical activities.
SOFTWARE ENGINEERING
Chapter 6: Software Project Management
❖ Gantt Chart (Scheduling Timeline chart):
➢ While creating a software project schedule the planner begins with a set of tasks. If automated tools are
used then the work breakdown as a task network or task outline.
➢ In addition, tasks may be assigned to specific individuals.
➢ As a consequence, a timeline chart, also called a Gantt chart, is generated.
➢ A timeline chart can be developed for the entire project. Alternatively, separate charts can be also
developed.
➢ 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.
➢ All project tasks (for concept scoping) are listed in the lefthand column.
➢ The horizontal bars indicate the duration of each task.
➢ When multiple bars occur at the same time on the calendar, task concurrency is implied.
➢ The diamonds indicate milestones.
❖ Project tracking:
➢ The project schedule provides a road map for a software project manager.
➢ If it has been properly developed, the project schedule defines the tasks and milestones that must be
tracked and controlled as the project proceeds.
➢ Tracking can be accomplished in a number of different ways:
- Conducting periodic project status meetings in which each team member reports progress and problems.
- Evaluating the results of all reviews conducted throughout the software engineering process.
- Determining whether formal project milestones (the diamonds shown in Figure) have been accomplished
by the scheduled date.
- Comparing actual start-date to planned start-date for each project task listed in the resource table.
- Meeting informally with practitioners to obtain their subjective assessment of progress to date and
problems on the horizon.
- Using earned value analysis to assess progress quantitatively.