440 likes | 679 Views
Software Project Estimation IFPUG VS COSMIC. Faculty of Informatics. Qasim Babatunde Md Forhad Rabbi Shailendra Natraj. Topic. Introduction Project estimation IFPUG Methodology IFPUG COSMIC Analysis Convertibility issues Mapping of concepts between IFPUG and COSMIC
E N D
Software Project EstimationIFPUG VS COSMIC Faculty of Informatics Qasim Babatunde Md Forhad Rabbi Shailendra Natraj
Topic Introduction • Project estimation • IFPUG Methodology • IFPUG • COSMIC Analysis • Convertibility issues • Mapping of concepts between IFPUG and COSMIC • conversion equations • Conclusion • References.
Introduction He who every morning plans the transaction of the day and follows out that plan, carries a thread that will guide him through the maze of the most busy life. But where no plan is laid, where the disposal of time is surrendered merely to the chance of incidence, chaos will soon reign. Victor Hugo (1802 - 1885)
Project Estimation What is Project estimation? Project estimation can be defined as a project management task which involves three main factors (Time, Cost and effort) and dividing the project life cycle and giving a estimate of time, effort and cost involved in this complete process. Project Estimation
FSM Evolutionary Timeline ISO FSM standard 3D FPs Mk II 1.3 Mk II FP COSMIC 3.0 COSMIC 2.0 Feature points Full FPs v.1 Allan Albrecht IFPUG 4.2 IFPUG 4.0 IFPUG 4.1 1980 1985 1990 1995 2000 2005 2007
Project Estimation :Methodology The various Methodology Estimation Techniques Methodology Parametric approach Heuristic approach Expert Judgment Method. Thumbs Rule. Delphi Technique. Parkinson’s Law. IFPUG’s FPA. Feature Points. Cosmic Full Function Points.
Approach Path IFPUG’s FPA Cosmic Full Function Points IFPUG’s FPA Cosmic Full Function Points Approach PC GEEK Simple Locator Application RESULT Cosmic FFP RESULT (IFPUG’s FPA) RESULT Cosmic FFP RESULT (IFPUG’s FPA Analysis Equation
COSMIC The Common Software Measurement International Consortium advancing software functional size measurement
Lets See IFPUG First… IFPUG • Transaction Function Data Function • External Input • External Output • External Query • Internal Logic File • External Interface File
IFPUG Input Output Inquiry Stored Data Process Internal Logical File Shared Data 5 Base Functional Component Type External Logical File
COSMIC USER Entry Functional Process Exit Write Read Persistence Data Storage 4 Base Functional Component Type
File Report System Admin Help Utility Lets try with a requirement… • Create new order
Identify Logical File ILF: Sales= {customer_id, customer_name, order_id, order_date, configuration, quantity} EIF: Configuration = {ID, RAM size, board type, CPU speed,….} Sales Configuration
IFPUG: Create new order… Order Id Customer id Customer name Configuration Quantity Price Action (Submit) 7 DETs FTR Sales Number of DET : 7 Number of FTR : 2 Complexity : Average Functional Point : 04 FTR Configurations
Complexity of ILF (Sales) Complexity of EIF (Configuration)
STEPS OF COSMIC… • Identify the purpose of measurement • Identify the scope • Identify the functional user • Identify the functional process • Identify data group. • Identify data movement A (type of) user that is a sender and/or an intended recipient of data in the Functional User Requirements of a piece of software. A functional process is an elementary component of a set of Functional User Requirements comprising a unique, cohesive and independently executable set of data movements A data group is a distinct, non empty, non ordered and non redundant set of data attributes where each included data attribute describes a complementary aspect of the same object of interest. A base functional component which moves a single data group type
COSMIC: Create Customer Order.. Order Id Customer id Customer name Quantity Price Action (Submit) 2 Data Groups Entry Functional Process Write Entry Configuration Persistence Data Storage Exit
Entry Order data group to process Order Id, Customer Name, Customer id, Quantity, Price Configuration data group to process Configuration; e.g. HDD, RAM, Monitor, etc.
READ… No READ operation has been performed
WRITE.. • Order detail to stored data • Configuration detail to stored data
EXIT Return a conformation message to user
Functional Point : Create Customer Order Size = 2 Entry+2 Write+1 Exit = 5 FP
FP Calculation (Using COSMIC): PCGEEK Size (functional process)=Σ size (Entries) +Σ size (Exits) +Σ size (Reads) +Σ size (Writes) Size (functional process) = Σ size (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) + Σ size (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) + Σ size (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) + Σ size (1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) =97
COSMIC: SIMPLE LOCATOR APPLICATION • Size (functional process) =Σ size (Entries) +Σ size (Exits) +Σ size (Reads) +Σ size (Writes) Size (functional process) = (1+1+1+1+1+1) + (1+1+2+1+1+1) + (0+0+1+0+0+0) + (1+1+0+1+1+1) = 6+7+1+5 =19 cfp
Process… IFPUG: Files accessed (FTR) COSMIC: Sub Process (Read, Write) IFPUG: Logical Files Stored data Cosmic: Persistent Data Stored data IFPUG: DETs crossing boundary COSMIC: Sub process (Entry, Exit)
Why COSMIC? Firstly, it should be noted that most, if not all FPA methods are based on heuristics rather than engineering principles!! except COSMIC This section will try to compare the IFPUG and the COSMIC methods, in terms of applicability. Cosmic
Why COSMIC contd…. Application types Business applications • Embedded systems Real time systems Infrastructure systems Cosmic Hybrid
Why COSMIC contd…. Measurement viewpoint. User view (does this describe all the functionality of the system?) e.g. multiprocessor system, functionality of software beneath the application layer, batch processing stream. Measurement and scale validity Weighted complexity with limits No limits and all EP equal Ordinal VS ratio COSMIC provides very good estimates close to the actual effort spent in each project. Cosmic
Convertibility issues A lot of organizations have invested a lot into IFPUG and it is hard and unwise to scrap such investments over-night But note: the COSMIC [2003]says: “…that an average conversion formula to convert COSMIC FFP size to an IFPUG FPA size would be grossly misleading.” Cosmic
Convertibility issues Contd… However, the same also says: “….therefore the only means of conversion will be to measure some sizes of software developed or enhanced in similar circumstances on both the IFPUG and COSMIC methods and to establish an empirical conversion formula.” Cosmic
Mapping of concepts between IFPUG and COSMIC Comparision
Suggested conversion equations Convertibility equation
Further analysis with own data Data analysis
Current travails Benchmark data are not as widely available as is the case for FPA. But this is a matter of time!! It can not measure mathematical algorithms.
Conclusion More investigation and research is necessary to deal with the convertibility among different FSM methods, mapping between Unified Modeling Language and FP, measuring the domain of algorithmic/ scientific software, measurement of functional reuse and automating FSM process. Conclusion
Refences [1] Vogelezang, F., One year experience with COSMIC-FFP, Software Measurement European Forum – SMEF 2005, Rome (Italy), 2005. [2] The COSMIC Functional Size Measurement Method Version 3.0, Measurement Manual, Common Software Measurement International Consortium, September 2007 [3] IFPUG, Function point counting practices manual 4.1.1. Tech. rep., The International Function Point Users Group, 2000.