Title: Function Point in Object Oriented Metrics
1Function Point in Object Oriented Metrics
2Outline
- Functional Point Analysis
- Object Oriented Approaches
- Kemerer Metrics
- 3D Function Points
- Predictive Object Points
- Object Oriented Fucntion Points
- Class Points
3Function Points Analysis (FPA)
- What is Function Point Analysis (FPA)?
- It is designed to estimate and measure the time,
and thereby the cost, of developing new software
applications and maintaining existing software
applications. - It is also useful in comparing and highlighting
opportunities for productivity improvements in
software development. - It was developed by A.J. Albrecht of the IBM
Corporation in the early 1980s.
4FPA
- How is Function Point Analysis done?
- Working from the project design specifications,
the following system functions are measured
(counted) - External Inputs (EI)
- External Outputs (EO)
- Files (ILF-internal logical files)
- External Inquires (EQ)
- Interfaces (ELF external logical files)
5FPA
Inquiries
Boundary
Input
Output
Internal Logical Files
External Interface Files
6FPA
- EI An elementary process in which data crosses
the boundary from outside to inside. - Data input screen
- Another application
- Business data does update ILF
- Control data does not update ILF
- EO An elementary process in which derived data
passes across the boundary from inside to
outside. - Creates reports
- Creates output files sent to other applications
- Created from ILF and ELF
7FPA
- EQAn elementary process with both input and
output components that result in data retrieval
from one or more ILF and ELF - Sent outside the application boundary
- Input process does not update ILF
- Output side does not contain derived data
- ILF A User identifiable group of logically
related data that entirely within the
applications boundary and is maintained through
External Inputs - EIF A User identifiable group of logically
related data that is used for reference purposes
only. - Resides entirely outside application
- Maintained by another application
- It is an ILF for another application
8Unadjusted FP Calculation
- Functional Count by (Complexity)
- Complexity rated by three categories
- Simple
- Average
- Complex
- Each of the 5 functional components has its own
unique complexity matrix weighting based on level
of complexity
9Degrees of Influence (DI)
- Data communications
- Distributed functions
- Perfomance objectives
- Heavily used configuration
- Transaction rate
- On-line data entry
- End-user efficiency
- On-line update
- Complex processing
- Reusability
- Installation ease
- Operational ease
- Multiple sites
- Facilitate change
General characteristics to be ranked by degree of
influence from 0-5 Degree of Influence
Measures Not Present, or no influence
present0 Insignificant Influence1 Moderate
Influence2 Average Influence3 Significant
Influence4 Strong influence, throughout5
10(No Transcript)
11FP Calculation
- Complexity Adjustment Factor (CAF)
- CAF 0.65 0.01 x DI
- each degree of influence is worth 1 percent of a
TCF which can range from 0.65 to 1.35 - Adjusted Function Points (AFP)
- AFP CAF x UFP
12Complexity of Files Transactions
- Data Element Type (DET)
- A unique user recognizable field from a business
perspective which participates in a transaction
or is stored on a logical data file. - Record Element Type (RET)
- A user recognizable subgroup of data elements
within an ILF or EIF. (orders types) - The complexity of an transaction is determined
by counting the number of logical File Types
Referenced (FTRs) and the number of DET.
13Productivity Index
- Function points method can be used for measuring
the productivity of development activities
14Critics to FPA
- The calculation of function counts tends to take
a black box view of the system. - The user defined function types currently
established may not be wholly appropriate for
current technology. - The classification of the user function types
into simple, average, and complex appears to be
oversimplified - The choice of weights was determined by debate
and trial. - The restriction to 14 processing complexity
factors is not going to be satisfactory for all
time
15What about Object Oriented Languages??
16Chidamber and Kemerer Approach
17Chidamber and Kemerer Approach
- All the previous measures provide a class-level
measurement. - As a consequence, they are more useful for
productivity analysis once the software has been
realized but less profitable for effort
prediction
183D Function Points
- Each class is an internal file
- Messages sent across the system boundary as
transactions - Require a greater degree of detail in order to
determine size and consequently make early
counting more difficult.
19Predictive Object Points
- Systemlevel measure for effort prediction, which
adopts a counting scheme analogous to FPs. - POPs counting is based on the WMC measure applied
to top level classes, and combines such
information with the average depth of the
inheritance tree and the average NOC. - To compute the WMC value,
- Each method is weighted by a complexity
determined by the type of method (constructor,
destructor, modifier, selector, iterator), by the
number of properties the method affects and the
number of services it provides to the system. - Determining complexity of methods is not
available in early stages of the software
development process.
20Object-Oriented Function Points(OOFP)
- Characterized by a mapping of FP concepts
(logical files and transactions) to OO concepts
(classes and methods), and by a flexible method
for handling specific OO concepts like
inheritance and aggregation.
21OOFP
- Uses OMT Model
- Object Model
- Static representation of classes and objects
- First to be developed so can be measured early
stages - Function Model
- Data Flow Diagrams
- Identifiying and Design some methods in early
stages - Dynamic Model
- State machiness
- Use case and Scenarios
22OOFP
- Central Analogy to map FP to OOFP
- Logical files (collection of user identifiable
data)? Classes(encapsulates collection of data
items) - Transactions ? Methods
- Application Boundary
- External classes encapsulates non-system
components (external services and reused library
classes) EIF - Classes with in the App. Boundary is ILF
23OOFP
24OOFP Process
- Analyze object model and identify units to be
counted as LF. - Calculate the complexity of each LF and SR.
- Convert complexity values to numbers
- If LF is reused its OOFP value is calculated
with a scale factor flt1 - All OOFP values are summed up.
25OOFP Process
26OOFP
- Identify LF
- Classes are mapped to LF
- Aggregation and Inheritance is encountered
- Mainly a concern of implementation
- At analysis phase
- Each class is a LF
- Scale factor 1 (Origin of class does not matter)
- At design phase
- Scale factor lt1, reuse makes classes easier to
develop - For designer, each class is LF
- For user perspective, it is complicated
27OOFP
- Ways to Identify LF
- Simple LF
- Sigle Class is a LF
- Composite LF
- Aggregation
- Generalization/Specialization
- Mixed (combine aggregation and generalization)
28Aggregation
Single
Mix
Generalization
29OOFP
- Calcution of DET and RETs
- One RET for each ILF/ELF
- Simple LF
- Simple attributes sucs as integer and strings
counted as DET - Associations are counted as DET or RET accoring
to cardinality - Single valued association is DET
- Multiple valued association is RET
30OOFP
- Composite LF
- DETs and RETs are counted as in simple LF, except
for aggregation - Aggregations act as subgroups in composite LF
- One RET is counted for aggregations
- For each OOFP , weighted vector table for ILF and
ELF in IFPUG (international function point user
group)
31OOFP
- Service Requests
- Concrete methods are only counted once, abstract
methods are not counted - Simple Items (analogy to DET)
- simple data items referenced as a argument
- simple global variables referenced by the method
- Complex Items (analogy to FTR)
- Complex arguments, objects and complex global
variables references by the method - For each OOFP(SR) , weighted vector table for
EI,EQ in IFPUG
32OOFP
33Class Points
- Recasting the ideas underlying the FP analysis
within the OO paradigm and by suitably combining
well-known OO measures. - CP1 Provides an initial size estimation at the
beginning of the development process. - CP2 Calculated whendata that are usually
available later in the development process. - Similar to POP counting, with the main difference
lying in the fact that we distinguish among
categories of classes, rather than classifying
methods.
34Class Point Measure Steps
- Identification and Classification of User Classes
- Problem Domain Type(PDT)
- Human Interaction Type (HIT)
- Data Management Type (DMT)
- Task Management Type (TMT)
35Class Point Measure Steps
- Evaluation of a Class Complexity Level
- Number of External Methods (NEM) measures the
size of the interface of a class and is
determined by the number of locally defined
public methods. - Number of Services Requested (NSR) provides a
measure of the interconnection of system
components.
CP1
36Class Point Measure Steps
CP2
TUPC
37Class Point Measure Steps
- Complexity Adjustment Factor
- 4 requirements are added to requirements
- User Adaptivity
- Rapid Prototyping
- Multiuser Interactivity
- Multiple Interfaces
- Final Calculations
38