Estimation Techniques V1.0


Published on

Cosmic FFP

1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Estimation Techniques V1.0

  1. 1. Uday K Bhatt<br />Estimation Techniques<br />
  2. 2. Agenda<br />Function Point Estimation<br />Use-case Point Estimation<br />ESB/SOA Estimation<br />Cosmic FFP<br />Points to Ponder<br />
  3. 3. Funtion Point Estimation<br />
  4. 4. 11/30/2009<br />4<br />Introduction <br />FPA Counting Practices<br />(Definition:FPA is a method to break systems into smaller components, so they can be better understood and analyzed)<br />Project Managers, Software Architects and above.<br />
  5. 5. 11/30/2009<br />5<br />Vocabulary<br />EI = External Inputs<br />EQ = External Queries<br />EO = External Outputs<br />ILF = Internal Logical Files<br />EIF = External Logical files<br />VAF = Value Adjustment Factor<br />
  6. 6. 11/30/2009<br />6<br />Overview <br />System & <br />Application<br />Boundary<br />EI<br />EQ<br />EO<br />Outside<br />App Boundary<br />ILF<br />EIF<br />
  7. 7. 11/30/2009<br />7<br />EI<br />External Inputs (EI) - is an elementary process in which data crosses the boundary from outside to inside. This data may come from a data input screen or another application. The data may be used to maintain one or more internal logical files. The data can be either control information or business information. If the data is control information it does not have to maintain an internal logical file.<br />
  8. 8. 11/30/2009<br />8<br />EQ<br />External Inquiry (EQ) - an elementary process with both input and output components that result in data retrieval from one or more internal logical files and external interface files. The input process does not update or maintain any FTR’s (Internal Logical Files or External Interface Files) and the output side does not contain derived data. <br />
  9. 9. 11/30/2009<br />9<br />EO<br />External Outputs (EO) - an elementary process in which derived data passes across the boundary from inside to outside. Additionally, an EO may update an ILF. The data creates reports or output files sent to other applications. These reports and files are created from information contained in one or more internal logical files and external interface files.<br />
  10. 10. 11/30/2009<br />10<br />ILF & EIF<br />Internal Logical Files (ILF) - a user identifiable group of logically related data that resides entirely within the application boundary and is maintained through External Inputs. Maintained is the process of modifying data (adding, changed and deleting) via an elementary process (via an External Input).<br />External Interface Files (EIF) - a user identifiable group of logically related data that is used for reference purposes only. The data resides entirely outside the application boundary and is maintained by another applications external inputs. The external interface file is an internal logical file for another application<br />
  11. 11. 11/30/2009<br />11<br />Rating:<br />Component<br />RET’s<br />FTR’s<br />DET’s<br />External Inputs (EI)<br /> <br /><br /><br />External Outputs (EO)<br /> <br /><br /><br />External Inquiries (EQ)<br /> <br /><br /><br />External Interface Files (EIF)<br /><br /> <br /><br />Internal Logical Files (ILF)<br /><br /> <br /><br />
  12. 12. 11/30/2009<br />12<br />RET & FTR & DET<br />Record Element Type (RET): A RET is user recognizable sub group of data elements within an ILF or an EIF. It is best to look at logical groupings of data to help identify them. <br />File Type Referenced (FTR): A FTR is a file type referenced by a transaction. An FTR must also be an Internal Logical File (ILF) or External Interface File (EIF). <br />Data Element Type (DET): A DET is a unique user recognizable, non-recursive (non-repetitive) field. A DET is information that is dynamic and not static.<br />
  13. 13. 11/30/2009<br />13<br />Weight Factors<br />Type of<br />Complexity of Components<br /> <br />Component<br /> <br /> <br /> <br />Low<br />Average<br />High<br />Total<br />External Inputs<br />___ x 3 = ___<br />___ x 4 = ___<br />___ x 6 = ___<br /> <br />External Outputs<br />___ x 4 = ___<br />___ x 5 = ___<br />___ x 7 = ___<br /> <br />External Inquiries<br />___ x 3 = ___<br />___ x 4 = ___<br />___ x 6 = ___<br /> <br />Internal Logical Files<br />___ x 7 = ___<br />___ x 10 = ___<br />___ x 15 = ___<br /> <br />External Interface Files<br />___ x 5 = ___<br />___ x 7 = ___<br />___ x 10 = ___<br /> <br /> <br /> <br /> <br /> <br />Total Number of Unadjusted<br /> <br /> <br />Function Points<br /> <br /> <br /> <br />_____<br />
  14. 14. 11/30/2009<br />14<br />VAF (0-5)<br />The value adjustment factor (VAF) is based on 14 general system characteristics (GSC’s) that rate the general functionality of the application being counted. Each characteristic has associated descriptions that help determine the degrees of influence of the characteristics.<br />
  15. 15. 11/30/2009<br />15<br />VAF (0-5)<br />General System Characteristic<br /> Brief Description<br />1.<br />Data communications<br />How many communication facilities are there to aid in the transfer or exchange of information with the application or system?<br />2.<br />Distributed data processing<br />How are distributed data and processing functions handled?<br />3.<br />Performance<br />Did the user require response time or throughput?<br />4.<br />Heavily used configuration<br />How heavily used is the current hardware platform where the application will be executed?<br />5.<br />Transaction rate<br />How frequently are transactions executed daily, weekly, monthly, etc.? <br />6.<br />On-Line data entry<br />What percentage of the information is entered On-Line?<br />7.<br />End-user efficiency<br />Was the application designed for end-user efficiency?<br />8.<br />On-Line update<br />How many ILF’s are updated by On-Line transaction?<br />9.<br />Complex processing<br />Does the application have extensive logical or mathematical processing?<br />10.<br />Reusability<br />Was the application developed to meet one or many user’s needs?<br />11.<br />Installation ease<br />How difficult is conversion and installation?<br />12.<br />Operational ease<br />How effective and/or automated are start-up, back up, and recovery procedures?<br />13.<br />Multiple sites<br />Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple organizations?<br />14.<br />Facilitate change<br />Was the application specifically designed, developed, and supported to facilitate change?<br />
  16. 16. 16<br />Templates<br />
  17. 17. Use Case Point Estimation<br />
  18. 18. Architecture World ‘09<br />Use Cases<br />Business use Case<br />Business level functionality, which can be sub divided into multiple or single use cases.<br />Technical Use Case<br />An independent behavior which can’t be further sub divided into any form.<br />
  19. 19. Architecture World ‘09<br />Use Case Analytics<br />Actors Identification<br />Humans are always a complex actor<br />System Actor<br />Use case to use case interaction actors<br />Identification of Primary and Alternate Flow<br />Identification of interaction with number of tables by a Use case.<br />
  20. 20. Architecture World ‘09<br />Complexity Definition<br />Human Actors are always complex<br />System Actors are as follows<br />0-5 Simple<br />6 onwards Complex<br />Use Case Complexity<br />0-5 Simple ( Flow / Tables)<br />6-10 Medium ( Flow / Tables)<br />11 onwards Complex (Flow/Tables)<br />
  21. 21. Architecture World ‘09<br />Use Case Technical Factors<br />
  22. 22. ESB/SOA Estimation<br />
  23. 23. Architecture World ‘09<br />The Estimation Framework<br />
  24. 24. Architecture World ‘09<br />ESB/SOA Decomposition<br />SOA/ESB hierarchical decomposition can help in identifying the primary components and processes<br />Functional Requirements termed as Business Factors (BFCT)<br />Non- Functional Requirements termed as Technical factors (TF)<br />
  25. 25. Architecture World ‘09<br />Business Factor (BFCT)<br />Definition: The components which represents the business requirements and transactions in terms of:-<br />Process<br />Process consists of set of business processes workflows<br />Services<br />ESB provides the routing and connectivity through services, hence services are the real backbone and defined as business services<br />Integration<br />ESB provides a comprehensive persistent framework for integration of applications<br />
  26. 26. Architecture World ‘09<br />Business Factor: Process (BFCT-P)<br />Process: The process factor is decomposed and are following:- <br />Business Service Workflow (BSW)<br />BSW can further be decomposed into<br />Sequential (BSW-S)<br />Parallel (BSW-P)<br />Implementation service Workflow (ISW)<br />ISW can further be decomposed into<br />Sequential (ISW-S)<br />Parallel (ISW-P)<br />
  27. 27. Architecture World ‘09<br />Business Factor: Process (BFCT-P)<br /><ul><li>Process Complexity: </li></ul>Business Service Workflow<br /><ul><li>(BSW) Complexity
  28. 28. BSW-S
  29. 29. 0-10 Simple
  30. 30. 11-20 Medium
  31. 31. 21-30 Complex
  32. 32. BSW-P
  33. 33. 2-4 Simple
  34. 34. 5-8 Medium
  35. 35. 8-12 Complex</li></ul> Implementation Service Workflow<br /><ul><li>(ISW) Complexity
  36. 36. ISW-S
  37. 37. 0-8 Simple
  38. 38. 9-14 Medium
  39. 39. 15 -20 Complex
  40. 40. ISW-P
  41. 41. 2-4 Simple
  42. 42. 5-8 Medium
  43. 43. 8-12 Complex</li></li></ul><li>Architecture World ‘09<br />Business Factor: Service (BFCT-S)<br />Services: Services herein defined as business services relation among defined nodes in ESB point<br />Provider (S-P)<br />Provider who provided the message/data/control<br />Consumer (S-C)<br />Consumer who consumes the message/data/control<br />Provider/Consumer Complexity : Number of P-C Points<br />0-5 Simple<br />5-10 Medium<br />10-15 Complex<br />
  44. 44. Architecture World ‘09<br />Business Factor: Integration (BFCT-I)<br />Integration: Integration herein defined as relation among applications under consideration <br />Application Type<br />Product based (IA-P)<br />Open Specification : Simple<br />Proprietary : Medium<br />Legacy : Complex<br />Customer developed (IA-C)<br />Open specification : Simple<br />Proprietary : Medium<br />Legacy : Complex<br />Integration Type<br />Adapter based or services already in place (IS-A)<br />0-5 : Simple<br />6-10 :Medium<br />10 + :Complex<br />Customized services to be developed (IS-D)<br />Number of tables and fields define the complexity<br />DET :RET Defines the complexity<br />
  45. 45. Architecture World ‘09<br />Weight Factors (Normalization)<br />
  46. 46. Architecture World ‘09<br />Technical Factors (TF)<br />Definition: These are Non-functional requirements of any ESB integration. Most of the time applications take control of these factors:-<br />Routing<br />Versioning<br />Transformation<br />Messaging<br />Response Time<br />Distributed<br />Orchestration<br />Protocol<br />Transactions<br />AAA<br />
  47. 47. Architecture World ‘09<br />Technical Factors (TF)<br />These technical factors have degrees of influence between (0-5) and this has to be set to 3 at abinitio to make degree of influence as a multiple of 1, which means no impact on size. As these are set to a max of 5 the maximum percentile impact would be 15 %<br />TF =(DI*.01)+0.70<br />Keeping DI at low impacted multiplier is due to the tools availability to cater these requirements.<br />
  48. 48. Architecture World ‘09<br />Derived Formula & Nominal Value<br />SOA/ESB Size= Adjusted BFCT Count=BFCT Count*TF<br />Effort in Person Days =<br /> (Adjusted BFCT Count*Productivity Figure)/8 Hours<br /><ul><li>Unadjusted BFCT Count=</li></ul>Σ [Σ(BSW-S)S *WF+(BSW-S)M *WF+(BSW-S)C *WF+Σ (BSW-P)S *WF+(BSW-P)M *WF+(BSW-P)C<br />*WF+Σ (ISW-S)S *WF+(ISW-S)M *WF+(ISW-S)C *WF+Σ (ISW-P)S *WF+(ISW-P)M *WF+(ISW-P)C<br />*WF+Σ (S-P)S *WF+(S-P)M *WF+(S-P)C *WF+Σ (S-C) S *WF+(S-C) M *WF+(S-C)C*WF+<br />Σ (IA-P) S*WF+ (IA-P)M*WF+(IA-P)C*WF+ Σ (IA-C)S*WF+ (IA-C)M*WF+ (IA-C)C*WF+<br />Σ (IS-A) S*WF+(IS-A)M*WF+(IS-A)C*WF+ Σ (IS-D) S*WF+ (IS-D)M*WF+(IS-D)C*WF]<br /><ul><li>Normalized Unadjusted BFCT Count=</li></ul>Σ [Σ(BSW-S)S *WF+(BSW-S)M *WF+(BSW-S)C *WF+Σ (S-P)S *WF+(S-P)M *WF+(S-P)C<br />*WF+Σ (S-C) S *WF+(S-C) M *WF+(S-C)C*WF+ Σ (IA-P) S*WF+ (IA-P)M*WF+(IA-P)C*WF+<br />Σ (IS-A) S*WF+(IS-A)M*WF+(IS-A)C*WF+ Σ (IS-D) S*WF+ (IS-D)M*WF+(IS-D)C*WF]<br />
  49. 49. 34<br />Templates<br />
  50. 50. Cosmic FFP Estimation<br />
  51. 51. 36<br />Multi-piece Software<br />
  52. 52. 37<br />Characteristics<br />Layers: <br />hierachical set of layer with client/server relationships. <br />Peer-to-peer communication<br />Boundary<br />boundary lies between layers<br />items are inside or outside boundary<br />Software users<br />Always outside boundary<br />humans, software, devices, adjacent layers<br />Functional User Requirement (FUR)<br />Only Functionality from User point of view<br />no quality or performance requirements<br />
  53. 53. 38<br />General Principles<br />The software to be mapped and measured <br />is fed by input and produces useful output to the users<br />manipulates pieces of information designated as data groups which consist of data attributes<br />
  54. 54. 39<br />Sub-process types<br />= data movement types sub-processes<br />USERS<br />Entry<br />Exit<br />Manipulation<br />Read<br />Write<br />STORAGEDATA GROUPS<br />
  55. 55. 40<br />COSMIC FFP Measurement Phase<br />Measurement function: each instance of a sub-process is assigned a numerical quantity<br />Unit of Measurement: 1 Cfsu (Cosmic Functional Size Unit) is equivalent to 1 data movement at the sub-process level<br />Additivity: The size of a functional process is the sum of the measurements of its sub-process. The Size of a piece of software is the sum of the sizes of its functional processes <br />Sub-unit of measure: If necessary, a sub-unit of measurement can be defined (example: movement of a single data-attribute)<br />
  56. 56. 41<br />Measurement Phase: Rules & Method<br />Aggregation of results<br />Size(layeri)= S size(entriesi)+ S size(exitsi) + S size(readsi) +S size(writesi) <br />Size(change(layeri))= S size(added sub-processes)+ S size(modified sub-processes) + S size(deleted sub-processes) <br />
  57. 57. 42<br />COSMIC FFP-example<br />Add Customer 4<br />User entry ENTRY 1<br />Test for existing name READ 1<br />Display error message EXIT 1<br />Store customer data WRITE 1<br />Change Customer Data 8<br />User entry ENTRY 1<br />Retrieve Customer Data READ 1<br />Display error message EXIT 1<br />Display Cust data EXIT 1<br />Enter changed data Entry 1<br />Store modified Data WRITE 1<br />Retrieve item data (FK) READ 1<br />Store item data (FK) WRITE 1<br />
  58. 58. 43<br />COSMIC FFP-example<br />Delete Customer 5<br />User entry ENTRY 1<br />Retrieve Customer Data READ 1<br />Display error message EXIT 1<br />Retrieve item data (FK) READ 1<br />Remove customer WRITE 1<br />Receive Payment 4<br />User entry ENTRY 1<br />Retrieve Customer Data READ 1<br />Display error message EXIT 1<br />Store data WRITE 1<br />
  59. 59. 44<br />COSMIC FFP-example<br />Deposit Item 6<br />User entry ENTRY 1<br />Retrieve Customer Data READ 1<br />Retrieve item data READ 1<br />Retrieve place data READ 1<br />Display error message EXIT 1<br />Store item data WRITE 1<br />Retrieve Item 6<br />User entry ENTRY 1<br />Retrieve Customer Data READ 1<br />Retrieve item data READ 1<br />Display error message EXIT 1<br />Update customer record WRITE 1<br />Remove item WRITE 1<br />
  60. 60. 45<br />COSMIC FFP-example<br />Add Place 4<br />Change Place Data 8<br />Delete Place 5<br />Print customer Item List 5<br />Print Bill 5<br />Print stored item list 3<br />Query customers 4<br />Query customer&apos;s items 5<br />Query Places 4<br />Query stored items 5<br /> = 81<br />
  61. 61. 46<br />Templates<br />
  62. 62. Points to Ponder<br />
  63. 63. 48<br />Prodcutivity Relationships<br />7.5 FP for Java/DotNet = 10 Hrs for UCP = 10*1.65* Cosmic FFP Count<br /> ESB/SOA Productivity = 4 Min to 8 Max Depends on Tool<br />ERP = 4 to 6<br />Span = 4 to 13<br />
  64. 64. 49<br />Points to Poinder<br />Number of Test Cases = 1.2 * FP Size<br />FP Size = Line of Logical code / Benchm,arked Lines/Technology<br />Search input and Generate report is counted in one entity<br />Count cannot be repeated<br />Number or EI =Number of EQ<br />0.5 Number of EI= Number of EO = Number of ILF<br />Estimations fails at EIF<br />VAF has %age imapct<br />NFR are equally important that requirements<br />
  65. 65. Thank you….<br />