Planning of Software Project
Software Development is highly labor intensive activity. A large software project involves hundreds of people. If proper planning is not done the project goes to chaos.
So we make plan very carefully. There are some issues in planning.
Cost Estimation:
For developing software we estimate cost of software. It includes rent of building, terminal, staff, and other resources.
Cost estimated by COCOMO model.
List of attributes:
Product attributes:
Software reliability
Database size
Product complexity
Computer attributes:
Execution time
Main storage
Throughput
Virtual machine volatility
Personal attribute:
Analyst capability
Application experience
Programmer capability
Programmer experience
Project attributes:
Modern programming practices
Use of software tool
Development schedule
Estimate is done by E= a (KDL) ** b M, KDL is source of lines, a & b are project type.
1. Organic type: Such organization has more experience and project development
by small team.
2. Embedded type organization has less experience, e.g. Real command system.
3. Semidetached system comes in between two.
E.g. developing new operating system, RDBMS.
Project Scheduling:
The main aim is to determine total duration of project and duration of each phase. With help of duration and cost, we make the schedule of staff and determine how many persons are needed. We apply simple rule,
If more staff, communication increases and time is wasted.
According to Brook’s law;
Adding man power to late project may make it later.
Total duration of project determined by COCOMO model
Staff and Personnel:
In starting more persons are required and maximum up to designing phase. When start coding, number of persons decrease.
Team Structure:
For developing project proper team structure is required.
Egoless team: it is democratic; this structure is allowed in research centre.
Chief programming team: back up programmer helps chief programmer in making technical decisions.
Program librarian is responsible for maintaining documentation & other communication related work.
Software Configuration Management:
SCM is discipline which systematically control the changes take place during development.
There are four major elements:
Configuration identification
Control
Status accounting
Auditing
Configuration Identification:
The main goal of SCM is to manage configuration of software. An important concept in SCM is baseline. it is firmly defined after the end of each phase. Software baseline represents software in recent state. Some of baselines are functional baseline, design baseline.
The most important entity during SCM is SCI (software configuration item) which may be requirement document, code of module, test plan.
A baseline is set of SCI.
Configuration Control:
After identification of baseline, we consider what effect on SCI so a proposal of SCM is sent to CCB (configuration control board) who are responsible for configuration management.
Status Accounting Auditing:
After approval of CCB, we made change in baseline and check behavior of new baseline, and effect on environment.
Quality Assurance Plan:
To ensure our product of good quality we make Quality Assurance Plan at the end of each phase
.
Project Monitoring Plan:
Proper monitoring of project is essential to declare deadlines for it.
Unit Development Folder:UDF contain plan, progress,
and all documentation related to development of program unit. A unit could be a
module, a procedure, or a collection of such modules.
A UDF is established after design phase when tasks are distributed among programmers.
UDF provide orderly and consistent approach for development of a unit. It provides better management and visibility of the progress in a unit’s development.
Cost Schedule Milestone Graph:
It represents the planned cost of different milestones. If we have both planned cost versus milestone and the actual cost versus milestone on both graphs, the progress of the project can be grasped easily.
Timesheets:
The most common method of keeping track is by the use a timesheet. The timesheet record how much time different project members are spending on the different identified activities in the project. The time is a common mechanism for collecting raw data. Time sheets can be filled daily or weekly.
Risk Management:
Any large project involves certain risks. Aim of risk management identifies problem and managing risk associated with it.
There are number of activities in risk management:
Risk identification
Risk analysis
Risk prioritization
2 Risk Control:
Risk management planning
Risk resolution
Risk monitoring
In risk assessment, risk identification is first step which identifies different risks in project. Once risk is identified next step is analysis in which situation risk occur which is harmful or not. After analysis of risks, give priority to risk based expected loss.
Risk Identification:
1. Cost risk
2. Performance risk
3. Schedule risk
In risk control we discuss how
control the risk, what are alternatives so always appoint competent manager who
always monitor like “cat”.