Software Project MGT
Software Project MGT
Management
SIS 3104 Software Engineering
Topics
● Project management activities
● Project planning
● Project size estimation techniques
● Project scheduling
● Risk management
● Project size is a measure of the problem complexity in terms of the effort and
time required to develop the product.
● Two popular metrics in use:
○ Lines of code (LOC)
○ Function point (FP)
Lines of code
● Simplest method
● Count number of source instructions in the developed program
● Ignore comments and headers
● Not easy to accurately estimate at project start
● Need to modularize the project
● Relies a lot on past experience in developing similar projects
Function point (FP)
● Easy to specify project size right from the specification
● Size of the software is directly dependent on the number of different functions
or features it supports.
● Software product with many features is then larger than one with less
● Computed in two steps
○ Compute unadjusted function point (UFP)
○ Then compute technical complexity factor (TCF) or commonly known as Complexity Adjustment
Factor (CAF)
○ FP = UFP * CAF
● Doesn’t account for algorithmic complexity of the software
Unadjusted Function Point
●
External Data Source
ELF EI EO EQ
EI
EO
ILF
ILF
EQ
Users
UFP computation
● Number of external inputs (EI): count each data item input by the user.
● Number of external outputs (EO): these refer to reports printed, screen outputs,
error messages, e.t.c
● Number of external inquiries (EI): distinctive interactive queries made by the
user e.g print-account-balance
● Number of internal logical files (ILF): count each logical file.
● Number of external logical interfaces (ELI): used to exchange information with
other systems e.g communication links with other systems
EO 4 5 7
EQ 3 4 6
ILF 7 10 15
EIF 5 7 10
CAF = 0.65 + ( 0.01 * F )
CAF = 0.65 + ( 0.01 * F )
Complexity Adjustment Factor
● Scale varies from 0 to 5 according to character of Complexity Adjustment
Factor (CAF). Below table shows scale:
○ 0 - No Influence
○ 1 - Incidental ○ 2
- Moderate
○ 3 - Average
○ 4 - Significant ○ 5
- Essential
○ User Output = 40
○ User Inquiries = 35
○ User Files = 6
○ External Interface = 4
Example solution…
● As complexity adjustment factor is average (given in question), hence,
○ scale = 3. ○ F = 14
* 3 = 42
● CAF = 0.65 + ( 0.01 * 42 ) = 1.07
● As weighting factors are also average (given in question) hence we
will multiply each individual function point to corresponding values in TABLE
(slide 14).
● UFP = (50*4) + (40*5) + (35*4) + (6*10) + (4*7) = 628
● Function Point = 628 * 1.07 = 671.96
Example
● Assume that the size of an organic type software product has been estimated
to be 32,000 lines of source code. Assume that the average salary of software
engineers be 1,500,000/= per month. Determine the effort required to develop
the software product and the nominal development time. ● From the COCOMO
estimation formula for organic software:
○ Effort = 2.4 x (32)1.05 = 91 PM
○ Development time = 2.5 x (91)0.38 = 14 months
○ Cost required = 14 x 1,500,000
Project scheduling
● Involves deciding which tasks will be taken up when
○ Identify all the tasks to complete project – requires good knowledge of the project development
process
○ Breakdown large tasks into small activities – work breakdown structure
○ Determine dependency among activities – determine order of execution using activity network
diagram
○ Establish most likely time estimates for the tasks – can be part of the activity network
representation
○ Allocate resources to activities – done using gantt chart
○ Plan starting and end dates for various activities
○ Determine the critical path: chain of activities that determines the duration of the project.
Milestones and deliverables
● Milestone is the end-point of each project activity
● Used to track progress of a project
○ Monitor timely completion of milestones
● Deliverables are work products / project results that are delivered to the
customer e.g. SRS
● Makes three estimates for each activity: pessimistic (P), most likely (M) and
optimistic (O) estimates
● Estimated time = (O + 4M + P)/6
● PERT is used to estimate time required to complete activities while CPM is used
when the activity durations are already estimated.
● Technical risks
○ Concern potential design, implementation, interfacing, testing and maintenance problems.
○ Ambiguous, incomplete, changing specification
○ Caused due to developers’ insufficient knowledge about the project
● Business risks
○ Risk of building an excellent product that no one wants
○ losing personnel commitments
Risk assessment
● Objective is to rank the risks in terms of their damage causing
potential ● Rate in two ways
○ Likelihood of risk coming true (r)
○ The consequence of problems associated with the risk (s) ○ Priority
=r*s
Risk containment
● Plans to contain the most damaging and most likely risks
○ Transfer the risk:- get the risk component developed by third party, buy insurance cover, etc.
○ Risk reduction:- e.g if there is risk that some key personnel might leave, plan new recruitment.
Configuration Management
● Large software consists of many deliverables along the development process
● E.g code, SDD, SRS, test document….
● Usually modified by many stakeholders throughout the process
● Their state at any time is called the configuration of the software product
● Configuration management (CM) helps control access to those deliverables
● Handling variants