CIS224: Software Projects: Software Engineering and Research Methods
Software Project Management
1. The Project Management Spectrum
Project management involves the planning, monitoring and control
of the people, process, and events that occur as software evolves.
1.1. The People
- senior manager : coordinates the connection between the
business and the software professionals.
- project manager : plans, monitors, and controls the work
of a team of software engineers.
- software practitioner (engineer) : manages his day to day activities, planning, and managing technical tasks.
1.2. The Product
Product is the software project plan, which defines the tasks to be conducted, the people who are going to do the work, the mechanisms for assessing risks, controlling change and evaluating quality.
2. Organization of the Software Management Process
2.1. Beginning a Software Project
Initially objectives and scope should be established before planning.
The developer and customer meet to define the objectives and scope.
Objectives are the overall goals of the software projects.
Scope are the primary functions which the software is to accomplish.
2.2 Measures and Metrics
Project measures and metrics are taken to provide insights
into the organization of the software engineering.
The software process is measured in order to improve it.
The software product is measured in order to improve its quality.
2.3 Project Estimation - Planning requires estimates of the:
- human effort- in person-months
- chronological project duration- in calendar time
- cost
The estimation usually requires to broke the project into pieces.
In practice, past experience is often used as a guide.
3. Software Decomposition
Software decomposition includes product and process decomposition
which occur simultaneously as the project plan evolves.
3.1. Software Problem Decomposition
Software problem decomposition is usually performed according to
the divide and conquer strategy: that is, a complex problem is
partitioned in smaller problems which are easily manageable.
3.2. Software Process Decomposition
For example, the work tasks for the communication activity could be:
- review the customer request
- plan and schedule a meeting with the customer
- conduct research to propose solutions
- prepare a working document
- conduct another meeting
- jointly develop a specification
- improve the specification and make a scoping document.
4. Project Management Metrics
The software metrics are quantitative measures that enable software engineers to gain insight into the efficacy of the software process.
Software measurement is important as it helps to identify trends in the engineering process with which true improvements can be made over time, without relying on subjective judgements.
Reasons for measuring the software:
-to indicate the quality of the product
-to assess the productivity of the people
-to assess the benefits from the new methods
-to form a baseline for estimation
-to help justify the needs for new tools
4.1. Direct and Indirect Software Metrics
The direct software metrics are:
-lines of code
-memory size
-defects reported over a period of time
The indirect software metrics are:
-functionality
-quality
-complexity
-efficiency
-reliability
-maintainability
4.2. Size-Oriented Metrics
Size-oriented metrics are derived by normalizing the productivity
measures considering the size of software that has been produced.
Productivity = KLOC / person-month, where:KLOC- thousand lines of code
Quality = defects / KLOC
Cost = $ / KLOC
Documentation = pages of documentation / KLOC
4.3. Function-Oriented Metrics
Function-oriented metrics use as a normalization value
the functionality delivered by the application.
Since the functionality can not be measured directly, estimates
called function points are derived based on countable information in
the software domain and assessments of the software complexity.
Five information domain characteristics are determined as follows:
- number of user inputs: each user input provides distinct data;
- number of user outputs: each output provides different information
to the user, like reports, screens and messages;
- number of user inquiries: these are on-line inputs that require
immediate response from the software program;
- number of files: each file is counted;
- number of external interfaces: all readable interfaces are counted.
Function points are computed according to the following equation:
FP = count-total [ 0.65 + 0.01 SUM( Fi ) ]
where: count-total is the sum of all FP entries obtained
Fi - are complexity adjustment values
Productivity = FP / person-month,
Quality = defects / FP
Cost = $ / FP
Documentation = pages of documentation / FP
Example: Perform software project estimation using the FunctionPoints metric, assuming the following software information domain characteristics:
Measurement parameter / count / factornumber of user inputs / 20 / 4
number of user outputs / 15 / 5
number of user inquiries / 28 / 5
number of files / 5 / 10
number of external interfaces / 3 / 7
Suppose that the software complexity adjustment factors are as follows:
Complexity adjustment / value (Fi)Backup and recovery / 5
Data communications / 4
Distributed processing / 2
Performance critical / 5
Existing operating environment / 3
On-line data entry / 3
Input transaction over multiple screens / 5
Master files updated on-line / 2
Information domain values complex / 4
Internal processing complex / 5
Code designed for reuse / 3
Conversion/installation in design / 4
Multiple installations / 5
Application designed for change / 5
a) Estimated number of function points
FPest = count-total [ 0.65 + 0.01 SUM(Fi) ]
FPest = 366 [ 0.65 + 0.01 55 ] = 439.2
b) Productivity of the team for 3 person-months using the derived function points
Productivity = FPest / person-month
Productivity = 439.2 / 3 = 146.4 [function points per person month]
c) Quality of this software having 5 defects using the derived function points
Quality = defects / FPest
Quality = 5 / 439.2 = 0.011 [defects per function point]
d) Software cost using the derived function points if there have been spend 3000 pounds
Cost = $ / FPest
Cost = 3000 / 439.2 = 6.83 [pounds per function point]
e) Documentation size using these function points if 100 pages have been produced
Documentation = pages of documentation / FPest
Documentation = 100 / 439.2 = 0.228 [pages per function point]