Problem:
Assume that you are the project manager for a company that builds software for household robots. You have been contracted to build the software for a robot that mows the lawn for a homeowner. Write a statement of scope that describes the software. Be sure your statement of scope is bounded. If you’re unfamiliar with robots, do a bit of research before you begin writing. Also, state your assumptions about the hardware that will be required. Alternate: Replace the lawn-mowing robot with another problem that is of interest to you.
Answer:
A company that build software for house – hold robotis.
Function
User interface and control facilities (UICF) – 2,300
The dimensional geometric analysis (2DGA) – 5,300
Three dimensional geometric analysis (3DGA) – 6,800
Database management (DBM) – 3,3,50
Computer graphics display facilities (CGDF) – 4,950
Peripheral control function (PCF) – 2,100
Design analysis modules (DAM) – 8,400
Estimate lines of code 33,200
Problem:
Software project complexity is discussed briefly in Section 33.1. Develop a list of software characteristics (e.g., concurrent operation, graphical output) that affect the complexity of a project. Prioritize the list.
Answer:
4633-26-2P SA: 9420
SR: 6376
The complexity of a project is very much affected by the way the system is designed, coded and tested. There are a number of software characteristics that affect the complexity of a project. List of some characteristics that are arranged in a prioritized manner are:
1. Project size
2. Language used
3. Language characteristics
4. Programming style
5. Programming length
6. Availability of information
7. structure
8. Lack of complete knowledge and experience
9. Number of modules and functions
10. Time and space needed
11. Hardware limitations
Problem:
Performance is an important consideration during planning. Discuss how performance can be interpreted differently depending upon the software application area.
Answer:
Performance is necessary to consider at during the planning of software. At this time, functionalities of performance and constraints are interrelated besides. Sometimes, complexity arises from a poorly established interface between the customer and the software developer. Discounting that, the following technical characteristics should be considered:
a. real-time attributes
b. multiprocessing requirement (concurrency)
c. nature of the algorithm
d. requirement for recursion
e. nature of input
f. determinacy of input
g. nature of output
h. language characteristics
i. Knowledge/experience of staff on application.
In some applications performance is done through raw processing of data that is measured by CPU time and interrupt servicing efficiency.
In the engineering applications / for large systems, data must be in the form of numerical/ alphabetic considerations. And also consider about input-output accuracy.
In the commercial applications most efficiency feature is I/O.
In the interactive applications user "wait time" is one of the performance consideration.
In the microprocessor applications, performance is considered by CPU time and memory requirement
Problem:
Do a functional decomposition of the robot software you described in Problem 33.1. Estimate the size of each function in LOC. Assuming that your organization produces 450 LOC/pm with a burdened labor rate of $7,000 per person-month, estimate the effort and cost required to build the software using the LOC-based estimation technique described in this chapter.
Answer:
Using functional decomposition
UICF – 2,300
2DGA – 5,300
3DGA – 6,800
DBM – 3350
CGDF – 4950
PCF – 2,100
DAM – 8,400
Estimate line of code – 33,200
Organization produces –
Burdened labor rate -
Using the data noted in the problem
(approximately)
Problem:
Use the software equation to estimate the lawn-mowing robot software. Assume that Equation (33.4) is applicable and that P = 8,000.
Answer:
4633-26-6P SA: 9420
SR: 6376
We have an estimation model of the form
Where,
E = effort in person-months or person-years
t = project duration in months or years
B = special skills factors
For small programs, B = 0.16 and for programs greater than 70 KLOC, B = 0.39. So for our lawn mower software system, we take an average of the two values as B.
Hence, B = (0.16 + 0.39) / 2
=0.28
P = productivity parameter
= 8000 (Given)
Let us assume, LOC = 33,200 (independent parameter)
To simplify the estimation process and use a more common form for the estimation, a set of equations are derived from the software equation. They are:
Minimum development time, in months
in person-months
=15.01 calendar months
=1.2 years
= 87 person-months
Problem:
Develop a spreadsheet model that implements one or more of the estimation techniques described in this chapter. Alternatively, acquire one or more online models for estimation from Web-based sources.
Answer: Problem:
For a project team: Develop a software tool that implements each of the estimation techniques developed in this chapter.
Answer: Problem:
It seems odd that cost and schedule estimates are developed during software project planning—before detailed software requirements analysis or design has been conducted. Why do you think this is done? Are there circumstances when it should not be done?
Answer:
Cost and schedule estimates are developed during software project planning-before detailed software requirements analysis or design has been conducted as Costs and schedule are estimated early because such information is demanded as early as possible. If a project is extremely complex with high technological risk and a fixed price proposal is to be submitted, costing of the project should be delayed until after requirements analysis.
If it is not done and well much time will be lost with a project planning which if we would be unrealizable.
Solution: Chapter 33 ESTIMATION FOR SOFTWARE PROJECTS
33.1Even if you normally don't assign homework, you might try this one. What you're looking for is a reasonable work breakdown structure, but your students will struggle because they don't have a bounded scope. You can help them by defining the basic characteristics of the software.
33.2Sometimes, complexity arises from a poorly established interface between the customer and the software developer. Discounting that, the following technical characteristics should be considered:
- real-time attributes
- multiprocessing requirement (concurrency)
- nature of the algorithm
- requirement for recursion
- nature of input
- determinacy of input
- nature of output
- language characteristics
- knowledge/experience of staff on application.
33.3Performance:
- real time application—raw processing of data measured by CPU time and possibly interrupt servicing efficiency
- engineering/scientific applications—numerical accuracy and for large systems, CPU time.
- commercial applications—I/O efficiency
- interactive applications—user "wait time"
- microprocessor applications—CPU time and memory requirement
33.4For our purposes here, we do a simple functional decomposition:
- user interaction (2400)
- sensor monitoring (1100)
- message display (850)
- system configuration (1200)
- system control [activation/deactivation] (900)
LOC estimates for each function are noted in parentheses. A total of 6450 LOC are estimated. Using the data noted in the problem:
6450 LOC / 450 LOC/pm = 14.3 pm
Cost: 14.3 pm * $7,000/pm = $100,000 (approximate)
33.5 Using the relationship noted in equations Section 33.7.3 (note that this project is a bit small for these equations)
assuming B=0.16 and P = 8,000
t.min = 8.14 * (LOC / P)0.43=
= 8.14 * (6450/8000)0.43= 8.14 * 0.91 = 7.41 months
t = 7.41 month / 12 months/year = 0.62 years
E = 180 * B * t3
= 180 * 0.16 * (0.62)3= 6.77 person months
33.6 Answers will vary
33.7 Answers will vary
33.8 Costs and schedule are estimated early because such information is demanded (by upper management) as early as possible. If a project is extremely complex with high technological risk and a fixed price proposal is to be submitted, costing of the project should (if possible) be delayed until after requirements analysis. Note: the cost of requirements analysis alone can be estimated early.