Software Estimation
Software Estimation
By
Software Developer & Consultant 73-D, New Airport Road, Manipuri Para, Dhaka-1215 Phone: 9110136, 9110169 Fax: 9114747 E-mail: [email protected] URL: www.datasoft-bd.com
66% of the Software project taken projects arent delivered on time, on budget or to expected quality
02/24/11
Definition of Estimation
An estimate is a prediction which is equally likely to be above or below the actual value. (Tom Demarco) Provide insight into program risks & status Provide early visibility into program risks and of deviations from program planned cost, schedule and performance goals. Software engineers often misconceive the concept of estimate: as the shortest time in which a project can be completed. as a target. Humphrey suggests that a good method: should allow tracking so the estimation process can be improved. should be usable throughout the software life cycle. should allow data to be used in subsequent projects. should allow you to judge the accuracy of the results.
02/24/11
02/24/11
Cone of Uncertainty
At the beginning, lots of uncertainty At the end, little In between, we know more and can use that knowledge to better manage projects
02/24/11
02/24/11
02/24/11
Procedure Diagram
02/24/11
02/24/11
02/24/11
10
Count Unadjusted Data Function Points Data function points represent the functionality provided to the users to meet internal and external data requirements. Data function points are contributed either by
Internal Logical Files (ILFs) OR
User identifiable group of logically related data or control information maintained within the application boundary Primary Intent is to hold data maintained through one or more elementary processes of the application.
02/24/11
11
When two applications maintain and/or reference the same ILF/EIF, but each maintains /references separate DETs, count only the DETs being used by each application to size the ILF/EIF. Count a DET for each piece of data required by the user to establish a relationship with another ILF or EIF.
RET Rules
Count a RET for each optional or mandatory subgroup of the ILF or EIF. Or If there are no subgroups, count the ILF or EIF as one RET.
02/24/11
12
Count Unadjusted Data Function Points ILF/EIF Unadjusted Function Points for ILF/ EIF determined by tables below
1 TO 19 DETs 1 RET 2 TO 5 RETs 6+ RETs Low Low Average 20 TO 50 DETs Low Average High 51+ DETs Average High High
ILF- UFP 7 10 15
EIF-UFP 5 7 10
02/24/11
13
02/24/11
14
EI Counting Rules
Data or control information is received from outside the application boundary. At least one ILF is maintained if the data entering the boundary is not control information that alters the behavior of the system. For the identified process, one of the following three statements must apply:
Processing logic is unique from the processing logic performed by other external inputs for the application. The set of data elements identified is different from the sets identified for other external inputs for the application. The ILFs or EIFs referenced are different from the files referenced by other external inputs in the application.
02/24/11
15
EI - DET
A data element type is a unique user recognizable, non-repeated field. DET Counting Rules
Count one DET for each user recognizable, non-repeated field that enters or exits the application boundary and is required to complete the external input. Do not count fields that are retrieved or derived by the system and stored on an ILF during the elementary process if the fields did not cross the application boundary. Count one DET for the capability to send a system response message outside the application boundary to indicate an error occurred during processing, confirm that processing is complete or verify that processing should continue Count one DET for the ability to specify an action to be taken even if there are multiple methods for invoking the same logical process.
02/24/11
16
EI- UFP 3 4 6
02/24/11
17
Example
EIs can be business data, control data and rules based data. Business Data: Customer Name, Address, Phone, and so on and so forth. Control Data: The data elements are those that invoke the transaction or change the behavior of the application. Each check box represents a data element. Additionally, the sort employee list radio buttons represents one data element as well as the time format radio buttons. Control information changes or alters the state (or behavior) of the application. Control information specifies how, what, and when data will be processed.
02/24/11
18
02/24/11
19
Typical Vocabulary:
The following words are associated with external input or inputs. While reading textual document or application description look for these type of words, they may indicate an add, change or delete aspect of an external input.
Add Activate Amend (change and delete) Cancel Change Convert (change) Create (add) Delete Deassign Disable Disconnect (change or delete) Enable Edit (change) Insert ( add and change) Maintain (add, change, or delete) Memorize (add) Modify (change) Override (change) Post (add, change and delete) Remove (delete) Reactivate (change) Remit Replace (change) Revise (change and delete) Save (add, change or delete) Store (add) Suspend (change or delete) Submit (add, change or delete) Update (add, change or delete) Voids (change and delete)
02/24/11
20
Do yourself
02/24/11
21
The processing logic of the elementary process contains at least one mathematical formula or calculation. The processing logic of the elementary process creates derived data. The processing logic of the elementary process maintains at least one ILF. The processing logic of the elementary process alters the behavior of the system.
02/24/11
22
02/24/11
23
EO- UFP 4 5 7
02/24/11
24
Typical Vocabulary:
The following words are associated with an external outputs. While reading textual documents or application descriptions look for these types of words. They may indicate an external output. Notice these words are very similar to those words used for an External Inquiry (discussed in the next slides).
Browse Display Get On-lines Output Print Query Reports Request Retrieve Seek Select View
02/24/11
25
Example
02/24/11
26
EQ Counting Rules
The function sends data or control information external to the application boundary. For the identified process, one of the following three statements must apply:
Processing logic is unique from the processing logic performed by other external outputs or external inquiries for the application. The set of data elements identified is different from the sets identified for other external outputs and external inquiries in the application. The ILFs or EIFs referenced are different from the files referenced by other external outputs and external inquiries in the application.
The processing logic of the elementary process retrieves data or control information from an ILF or EIF. The processing logic of the elementary process does not contain a mathematical formula or calculation. The processing logic of the elementary process does not create derived data. The processing logic of the elementary process does not maintain an ILF. The processing logic of the elementary process does not alter the behavior of the system.
02/24/11
27
02/24/11
28
EIQ- UFP
3 4 6
02/24/11
29
Examples:
EQs can contain business data, control data and rules based data. Business Applications: An example of Business data is customer names, addresses, phone number, so on and so forth. An example of Rules Data is a table entry that tells how many days a customer can be late before they are turned over for collection. Drop Down List (a listing of customers by name) would be an example of an EQ. A screen full of customer address information would be an example of an EQ.
02/24/11
30
Typical Vocabulary:
The following words are associated with an external inquiry. While reading textual document or application description look for these type of words. They may indicate an external inquiry. Notice the words are very similar to those related to external outputs.
Browse Display Extract Fetch Find Get Drop Down Lists Look Ups On-lines Output Pick Lists Print Query Scan Seek Select Show View Reports
02/24/11
31
Transaction UFPC =
+ EI-UFPs, + EO-UFPs + EQ-UFPs
02/24/11
32
02/24/11
33
GSC
DI 0-5
Remarks
T o t a l D e g r e e o f I n f lu e n c e ( T D I ) VAF=0.65+(TDI*0.01)
02/24/11
34
Basis
Difference in function point count between high complexity functions and low complexity functions is not high - can therefore use average Can use judgement for overall complexity of system for VAF
Procedure
Identify and count ILFs, EIFs, EIs, EOs and EQs. Do not count RETs, DETs and FTRs Classify the functions as Average
02/24/11
36
Transaction Function Type External Inputs External Outputs External Inquiries Total Transaction UFP: *4 = *5 = *4 =
VAF =
(0.65-> 1.35 )
02/24/11
37
02/24/11
38
is an exponent for the diseconomy of scale dependent on five additive scale drivers according to b = .91 + .01* SFi, where SFi is a weighting factor for ith scale driver
Size = Size of the project
02/24/11
40
02/24/11
41
Economies and Diseconomies of Scale Usually as the project size increases the effort increases at a much faster rate, i.e.,the productivity decreases with size In some teams the increase in size does not reduce the productivity The drop in productivity depends on following Scale Drivers
Precedentness (PREC)
Degree to which system is new and past experience applies
On each factor, we need to score on a 0-5 scale. 0 - the factor will not hinder productivity. 5 - the factor will severely hinder productivity 02/24/11 DataSoft Systems Bagladesh Limited 42
Scaling Factors
PREC : Precedentness. Sub-factors to be considered are
Organization's understanding of the product objectives Experience in working with related software systems Concurrent development of associated hardware Need for innovative algorithms If PREC is Extra high score is 0; If PREC is Very low score is 5
02/24/11
43
Scaling Factors
TEAM : Team Cohesion. Sub-factors to be considered are
Consistency of stakeholder objectives and culture Ability to accommodate each others' objectives Experience in operating as a team Team building with a shared vision If TEAM is Extra high score is 0; If TEAM is Very low score is 5
02/24/11
44
02/24/11
45
02/24/11
46
Cost Drivers
PRODUCT FACTORS
RELY DATA CPLX RUSE DOCU RequiredSoftwareReliability DataBaseSize SoftwareProductComplexity Required Reusability DocumentationMatchtoLife-cycleNeeds
PLATFORM FACTORS
T IM E STOR PVOL E x e c u t i o n T im e C o n s t r a i n t MainStorageConstraint PlatformVolatility
PERSONNEL FACTORS
ACAP PCAP PCON AEXP PEXP LTEX Analyst Capability ProgrammerCapability PersonnelContinuity ApplicationExperience PlatformExperience LanguageandToolExperience
PROJECT FACTORS
TOOL SITE/Collocation SITE/Communication UseofSoftwareTools Multi-site/Single-site CommunicationTechnologyUsed
02/24/11
47
Measures the extent to which the software must perform its intended function over a period of time. Ask: what is the effect of a software failure?
Very Low RELY Low Nominal moderate, easily recoverable losses High high financial loss Very High risk to human life Extra High slight low, easily inconvenience recoverable losses
02/24/11
48
1.66 1.56
02/24/11
49
02/24/11
50
02/24/11
51
02/24/11
52
02/24/11
53
02/24/11
54
Effort % 7
119
125
55
Hands on Experience
02/24/11
56
Q&A
02/24/11
57
THANKS
02/24/11
58