160 likes | 272 Views
Software Cost. Given the information of a software project, to estimate: In development What’s the total effort? How long does it take? How many people? How much money? What’s the productivity? In maintenance What’s the effort every year? How many people? How much money every year?.
E N D
Software Cost • Given the information of a software project, to estimate: • In development • What’s the total effort? • How long does it take? • How many people? • How much money? • What’s the productivity? • In maintenance • What’s the effort every year? • How many people? • How much money every year?
Basic COCOMO Model • Project information • KDSI: Kilo Delivered Source Instructions • ACT: Annual change traffic • Development model • Organic, semi-detached, embedded
Embedded-mode development • Estimation for development: • Total effort (in person-month) • Schedule (in month)
Embedded-mode development • Estimation for maintenance: • annual effort (in person-month)
Example • Project: • Embedded-mode development • 100 KDSI • ACT=10% • Salary=$6000/person-month
Development • Total effort • Schedule • Number of person • Productivity • Total labor cost
Maintenance • Annual effort • Number of person • Annual cost
Software Reliability Model Musa’s Model
Basic Assumptions of Musa’s Model • Faults are independent and distributed with constant rate of encounter. • Well mixed types of instructions, execution time between failures is large compared to instruction execution time. • Test space covers use space. (Tests selected from a complete set of use input sets). • Set of inputs for each run selected randomly. • All failures are observed, implied by definition. • Fault causing failure is corrected immediately, otherwise reoccurrence of that failure is not counted.
Software Reliability • μ : up to time t, total number of failures • λ : failure intensity at time t. How many failures happen in a unit time at time t?
comparison Basic Logarithmic μ(λ) μ(t) λ(t)
example • A software can be released with testing failure rate 0.004/cpu hour. The estimated number of failures over infinite time is 200. From a given graph it is known that the average total number of failures is 100 when the time is 300 cpu hours. Using Musa's basic model, calculate: the total testing time so that the software can be release 1 4 5 2 6 3
example • compute the total number of failures at the time of its release
example • Using the basic model and logarithmic model to compute the total failures within 100 cpu hours. Assume the decay parameter is 0.02 Basic Logarithmic