






Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
This course includes software-- development process, process models, project planning, quality assurance, configuration management, process and project metrics, change, re-engineering. It also discuss risk analysis and management and project management. This lecture contains: Statistical, Control, Techniques, Control, Charts, Dispersion, Variability, Project, Implementation, Range, Efficiency, Process
Typology: Study notes
1 / 10
This page cannot be seen from the preview
Don't miss anything!







In order to do that, we need to employ some statistical techniques and plot the result graphically. This is known as statistical control techniques.
Same process metrics vary from project to project. We have to determine whether the trend is statistically valid or not. We also need to determine what changes are meaningful. A graphical technique known as control charts is used to determine this.
This technique was initially developed for manufacturing processes in the 1920‘s by Walter Shewart and is still very applicable even in disciples like software engineering. Control charts are of two types: moving range control chart and individual control chart. This technique enables individuals interested in software process improvement to determine whether the dispersion (variability) and ―location‖ (moving average) of process metrics are stable (i.e. the process exhibits only natural or controlled changes) or unstable (i.e. the process exhibits out-of-control changes and metrics cannot be used to predict performance).
Let us now demonstrate the use of these control charts with the help of an example. Let us assume that the data shown in the following table regarding the average change implementation time was collected over the last 15 months for 20 small projects in the same general software domain 20 projects. To improve the effectiveness of reviews, the software organization provided training and mentoring to all project team members beginning with project 11.
Project
Time /change implementation 1 3 2 4. 3 1. 4 5 5 3. 6 4. 7 2 8 4. 9 4. 10 2. 11 3. 12 5. 13 4. 14 3. 15 4 16 5. 17 5. 18 4 19 3. 20 5.
This chart is then used to develop the individual control chart as follows:
This chart may be used to evaluate whether the changes represented by metrics indicate a process that is in control or out of control. For this, the following 4 criteria zone rules are used.
If any of these tests passes, the process is out of control otherwise the process is within control.
Since none of the test passes for the data in our example, our process is in control and this data can be used for inference.
We now analyze our results. It can be seen that the variability decreased after project
A good metric system is the one which is simple and cheap and at the same time adds a lot of value for the management. Following are some of the examples that can be used for effective project control and management.
We can collect data about the defects reported, and defects fixed and plot them in the following manner, with their difference showing the defects yet to be fixed. This can give us useful information about the state of the product. If the gap between the defects reported and defects fixed is increasing, then it means that the product is in unstable condition. On the other hand if this gap is decreasing then we can say that the product is in a stable condition and we can plan for shipment.
Similarly, we can gain useful information by plotting the defects reported against the number of use cases run. We can use control lines from our previous data and see if the actual defects are within those control limits. If the defects at any given point in time are less than the lower limit then it may mean that out testing team is not doing a good job and coverage is not adequate. On the other hand, if it crosses the upper line then it indicates that the design and coding is not up to mark and we perhaps need to check it.
Defects
Time
Total reported defects
Defects yet to be fixed
Defects fixed to date
Defects
Test cases
Upper limit
Lower limit
Actual defects
Software project planning is an activity carried out by the project manager to estimate and address the following points:
Software scope estimation Software scope describes the data and control to be processed, function, performance, constraints, interfaces, and reliability. Determination of the software scope is a pre- requisite of all sorts of estimates, including, resources, time, and budget.
In order to understand the scope, a meeting with the client should be arranged. The analyst should start with developing a relationship with the client representative and start with context-free questions. An understanding of the project background should also be developed. This includes understanding:
Now is the time to address the find out the more about the product. In this context, the following questions may be asked:
In this regards, a technique known as Facilitated Application Specification Techniques or simply FAST can be used. This is a team-oriented approach to requirement gathering that is used during early stages of analysis and specification. In this case joint team of customers and developers work together to identify the problem, propose elements of the solution, negotiate different approaches, and specify a preliminary set of requirements.
Feasibility The purpose of the feasibility analysis is to determine can we build software to meet the scope? For this purpose, the project is analyzed on the following 4 dimensions:
Technology
Finance
Time
Resources
Software Project Estimation Once the project feasibility has been determined, the project manager starts the estimation activity. It is a relatively difficult exercise and has not become an exact science. It is influenced by human, technical, environmental, political factors.
For software project estimation, a project manager can use historic data about its organizations previous projects, decomposition techniques, and/or empirical models developed by different researchers.
Empirical Models
Empirical models are statistical models and are based upon historic data. Although there are many different models developed by different researchers, all of them share the following basic structure:
E = A + B * (ev)C
where A, B, c are empirical constants, ‗ev‘ is the effort in terms of lines of code or FP, and ‗E‘ is the effort in terms of person months.
The most famous of these models is the COCOMO - COnstructive COst MOdel – model. It also has many different versions. The simplest of these versions is given below: E = 3.2 (KLOC)1.
The following key considerations must always be kept in the perspective:
A decision tree can be built to analyze different options in this regards. As an example of this, let us consider the following. In this case, we have four different options, namely, build, reuse, buy, and contract. We analyze each one of these with the help of a decision tree. Each node of the tree is further partitioned a probability is assigned to each branch. At the end, cost for each path in the tree, from root to a leaf, is estimated and associated with that path. This process is shown in the following diagram.
Once the information in the tree is complete, it is used to determine the most viable option. For each option the expected cost is determined as follows:
Expected cost = ∑ (path probability)I x (estimated path cost)
Using this formula, we calculate the expected cost of each option as follows:
Build = 0.30380 + 0.70450000 = 429000 Reuse = 0.4275000 + 0.60.2310000 + 0.60.8*490000 = 382000
The expected cost of Buy and Contract can also be calculated in a similar fashion and comes out to be:
Buy = 267000 Contract = 410000
Therefore, according to this analysis, it is most viable to buy than any other option.
Build
Reuse
Buy Contract
Simple (0.30)
Difficult (0.70) Minor changes (0.40)
Major changes (0.60)
Simple (0.20) Complex (0.80)
Minor changes (0.70) Major changes (0.30) Without changes (0.80)
With changes (0.20)