Software Economics Homework I

Size: px
Start display at page:

Download "Software Economics Homework I"

Transcription

1 Software Economics Homework I Function Point Analysis and Effort Estimation Martin Vels Raido Seene Rauno Kiss

2 Tartu

3 Table of Contents TABLE OF CONTENTS... 3 OVERVIEW... 5 SCOPE... 5 DOMAIN MODEL... 6 DATA MODEL... 7 USE CASE DIAGRAM... 8 USE CASES... 9 USER UPLOADS A FILE...9 CONFIGURE SIMULATION SETTINGS...10 CANCEL SIMULATION...11 VIEW RESULTS EDIT SIMULATION CONFIGURATION SETTINGS...13 FUNCTION POINT ANALYSIS FILE UPLOAD PROCESS SIMULATION SPECIFICATION RESOURCES TIMETABLE / WORK SCHEDULE TASKS GATEWAYS PROCESS DURATIONS PROCESS WAITING TIMES PROCESS COSTS RESOURCE UTILIZATION PERCENTAGE OVERALL SIMULATION SUMMARY INDIVIDUAL TASKS SUMMARIES BUSINESSPROCESS RESOURCES TIMETABLES TASKS GATEWAYS TARGETS SIMULATIONRESULTS SIMULATIONRESULTTASKS SIMULATIONRESULTRESOURCES INTERARRIVALRATETYPES TIMEUNITTYPES CURRENCYTYPES

4 25. WEEKDAYTYPES...20 TOTAL FUNCTION POINTS EFFORT AND SCHEDULE ESTIMATION IS DONE WITH COCOMO II CALCULATOR:...20 DESCRIPTION OF THE DEVELOPMENT TEAM...21 SOFTWARE SCALE DRIVERS PRECEDENTEDNESS: HIGH...21 DEVELOPMENT FLEXIBILITY: LOW ARCHITECTURE / RISK RESOLUTION: NOMINAL...21 TEAM COHESION: HIGH PROCESS MATURITY: HIGH (EPML = 2.67)...22 SOFTWARE COST DRIVERS PRODUCT Required Software Reliability: Very Low Data Base Size: Low Product Complexity: Low Developed for Reusability: Low Documentation Match to Lifecycle Needs: Nominal PERSONNEL Analyst Capability: High Programmer Capability: High Personnel Continuity: Very High Application Experience: Low Platform Experience: Nominal Language and Toolset Experience: High PLATFORM...24 Time Constraint: Nominal Storage Constraint: Very Low Platform Volatility: Very Low PROJECT...24 Use of Software Tools: High Multisite Development: Extra High Required Development Schedule: Nominal RESULTS SOFTWARE DEVELOPMENT (ELABORATION AND CONSTRUCTION) STAFFING PROFILE...26 Acquisition Phase Distribution Software Effort Distribution for RUP/MBASE (Person-Months)

5 Overview BIMP - Lightning Fast Business Process Simulator (accessible at: http :// bimp. cs. ut. ee / ) is an online business process simulator that allows it s user to upload files written in Business Process Modeling Notation (.bpmn) to generate resource utilization statistics. BIMP will let user to specify simulation parameters like inter arrival rate, number of instances and simulation duration as well as costs related to resources used. It is also possible to specify what resources are used by what task and determine the duration and cost for each task. For every gateway in business process model, it is possible to specify the probability for each branch. As a result of the simulation, BIMP shows diagrams on resource utilization, process durations, process waiting times and costs. BIMP simulator is designed and implemented from scratch in the Java programming language and it will support the simulation of business process models defined in the BPMN 2.0 standard. Scope Function point analysis and effort estimation in this document is based on a part of web application called BIMP. In this document we concentrate on a part where webpage visitors: 1. upload their.bpmn files 2. configure setting parameters for performing a simulation based on provided.bpmn file 3. watch results of performed simulation. We decided to keep the scope relatively narrow for the simplicity reasons. Due to that following element analysis were not included in this document: Logic behind simulator/analyzer Downloading simulation results in different formats 5

6 Domain model User is any person who enters BIMP website and has a session generated for him/her. Users can upload as many files as they wish. For every uploaded.bpmn file, user can specify as many simulation configurations as wished. Analyzer/simulator is an instance that handles generating results based on simulation configuration and it s.bpmn file. In the current document scope, analyzer mechanic itself falls out of the scope. Analyzer/simulator can use multiple configuration files to simulate business process model. One analyzer generates many results. 6

7 Data model After the user file is uploaded, all the contents of the file is divided into several database tables. There are also some auxiliary tables (CurrencyTypes, TimeUnitTypes, etc) used to hold non changing configuration data types for the simulation. After the data is saved into the database, only the business process ID is sent to the simulator which uses the same database for commencing simulations. Simulator saves simulation results into special simulation result tables (SimulationResults, SimulationResultTasks, etc.) which are used for external output in the application. 7

8 Use Case Diagram 8

9 Use cases User uploads a file Use case ID: 1 Use Case name: User uploads a file Date created: Last update date: Actor: Description: Trigger: Precondition: Postcondition: Normal Flow: Alternative Flows: Exceptions: Includes: Priority: Frequency of Use: User User uploads a Business Process Modeling file User decision User has navigated to upload page A.bpmn file has been upload to BIMP application 1. User clicks browse button 2 User selects file for upload 3. System presents button continue to user 4. User clicks continue button 5. System redirects user to simulation configuration interface 1a. User selects file using drag-and-drop feature 1. Invalid file! None High High 9

10 Configure simulation settings Use case ID: 2 Use Case name: Configure simulation settings Date created: Last update date: Actor: Description: Trigger: Precondition: Postcondition: Normal Flow: Alternative Flows: Exceptions: Includes: Priority: Frequency of Use: User User configures simulation parameters for this.pbmn simulation User clicks continue button on upload page User has uploaded a.bpmn file to BIMP application System has enough parameters for starting simulation. 1. User configures sections and their sub-sections of: Process simulation specification values User configures Resources Timetable / Work schedule Gateways 2. User clicks start simulation 3. System checks form validation rules 4. System validates form 2a. User also checks option Generate log 3a. System checks form validation rules and presents corresponding errors. 1. This field has to be a positive integer! 2. Your form has errors! Follow the requirements and try again. 3. The maximum allowed number of instances is ! User uploads a file High High 10

11 Cancel simulation Use case ID: 3 Use Case name: Cancel simulation Date created: Last update date: Actor: Description: Trigger: Precondition: Postcondition: Normal Flow: User User decides to cancel BIMP application process at any given point User decision None All current processes terminated 1. User decides to cancel an activity 2. User closes our webpage 3. System terminates any open session Alternative Flow: 2a. User clicks Upload a new model button and continues to use case #1 3a. System clears information about previous.bpmn file Exceptions: Includes: Priority: Frequency of Use: None None Low Low 11

12 View results Use case ID: 4 Use Case name: View results Date created: Last update date: Actor: Description: Trigger: Precondition: Postcondition: Normal Flow: Alternative Flow: Exceptions: Includes: Priority: Frequency of Use: User System displays simulation results to user System validates simulation configuration System has validated simulation configuration Viewable simulation results 1. System performs simulation based on simulation configuration 2. System displays results to the user 3. User views simulation results None None None High High 12

13 Edit simulation configuration settings Use case ID: 5 Use Case name: Edit simulation configuration settings Date created: Last update date: Actor: Description: Trigger: Precondition: Postcondition: Normal Flow: Alternative Flow: Exceptions: Includes: Priority: Frequency of Use: User User goes back and edits previously configured simulation settings User clicks Back to edit data button User is viewing simulation results User is on edit simulation configuration page 1. User clicks Back to edit data button 2. System redirects user back to previously configured simulation configuration page 3. User edits the configuration 4. User clicks start simulation None 1. This field has to be a positive integer! 2. Your form has errors! Follow the requirements and try again. 3. The maximum allowed number of instances is ! None Medium Medium 13

14 Function Point Analysis 1. File upload Type External input Adding new data into the system DET 6 2 ( Choose file button, drop file field) + 4 (2 file name fields, error message, continue button) FTR 4 BusinessProcess (ILF), Task (ILF), Gateway (ILF), Target (ILF) FP 6 High 2. Process simulation specification Type External input Adding new data into the system DET 11 4 (inter arrival rate type, quantity, time units and help text) + 1 (instances) + 2 (start date, time) + 1 (currency) + 1 (error message) + 2 (submit button, generate log checkbox) FTR 5 BusinessProcess (ILF), InterArrivalRateTypes (EIF), TimeUnitTypes (EIF), CurrencyTypes (EIF), ExternalBPMNFile (EIF) FP 6 High 3. Resources Type External input Adding new data into the system DET 4 4 (name, no of resources, cost, error messages) FTR 1 Resources (ILF) FP 3 Low 4. Timetable / Work schedule 14

15 Type External input Adding new data into the system DET 5 5 (resource, beginning day, end day, beginning time, end time) FTR 3 Timetable (ILF), Resources (ILF), WeekdayTypes (EIF) FP 6 High 5. Tasks Type External input Adding new data into the system DET 7 1 (name) + 2 (resource, cost) + 3 (duration, to, time format) + 1 (error text) FTR 5 Tasks (ILF), Resources (ILF), Timetable (ILF), InterArrivalRateTypes (EIF), TimeUnitsTypes (EIF) FP 6 High 6. Gateways Type External input Adding new data into the system DET 4 1 (name) + 2 (target, probability) + 1 (error text) FTR 3 Gateways (ILF), Targets (ILF), Tasks (ILF) FP 4 Average 7. Process durations Type External output Derived data DET 3 3 (process count, percentage from maximum, interval name) FTR 1 SimulationResults (ILF) FP 4 Low 15

16 8. Process waiting times Type External output Derived data DET 3 3 (process count, percentage from maximum, interval name) FTR 1 SimulationResults (ILF) FP 4 Low 9. Process costs Type External output Derived data DET 4 4 (process count, percentage from maximum, interval name, currency) FTR 2 SimulationResults (ILF), CurrencyTypes (EIF) FP 4 Low 10. Resource utilization percentage Type External output Derived data DET 2 2 (resource name, percentage) FTR 2 Resources (ILF), SimulationResults (ILF) FP 4 Low 11. Overall simulation summary Type External output Derived data DET 10 2 (Completed elements, Completed process instances) + 4 (Minimum process cost, Maximum process cost, Total cost, Average cost) + 4 (Minimum process duration, Maximum process duration, Total duration, Average duration) FTR 2 SimulationResults (ILF), CurrencyTypes (EIF) FP 5 Average 16

17 12. Individual tasks summaries Type External output Derived data DET 4 4 (Task description, Average cost, Average Waiting time, Currency) FTR 3 Tasks (ILF), CurrencyTypes (EIF), SimulationResults (ILF) FP 4 Low 13. BusinessProcess Type Internal logical file DET 8 8 (internalarrivalratetype, internalarrivalrateamount, internalarrivalratetimeunit, noofinstances, currency, simulataionstartdatetime, originalbpmnfile, listoftargets) FTR 1 BusinessProcess FP 7 Low 14. Resources Type Internal logical file DET 4 4 (name, noofinstances, costperhour, listoftimetables) FTR 1 Resources FP 7 Low 15. Timetables Type Internal logical file DET 5 5 (begindaytype, enddaytype, begintime, endtime, resorcebinded) FTR 1 Timetables FP 7 Low 17

18 16. Tasks Type Internal logical file DET 7 7 (name, resorcebinded, fixedcost, durationtype, durationquantity, durationtimeunit, targetid) FTR 1 Tasks FP 7 Low 17. Gateways Type Internal logical file DET 3 3 (gatewaytype, name, listoftargets) FTR 1 Gateways FP 7 Low 18. Targets Type Internal logical file DET 2 2 (probability, nextelementid) FTR 1 Targets FP 7 Low 19. SimulationResults Type Internal logical file DET 8 8 (instanceno, businessprocessid, processduration, processwaitingtime, processcost, elements, listoftasks, listofresources) 18

19 FTR 3 SimulationResults, SimulationResultTasks, SimulationResultResources FP 7 Low 20. SimulationResultTasks Type Internal logical file DET 4 4 (simulationresultid, taskid, cost, waitingtime) FTR 1 SimulationResultTasks FP 7 Low 21. SimulationResultResources Type Internal logical file DET 3 3 (simulationresultid, resourceid, timeoccupiedpercentage) FTR 1 SimulationResultResources FP 7 Low 22. InterArrivalRateTypes Type External interface file DET 1 1 (name) FTR 1 InterArrivalRateTypes FP 5 Low 23. TimeUnitTypes Type External interface file 19

20 DET 1 1 (name) FTR 1 TimeUnitTypes FP 5 Low 24. CurrencyTypes Type External interface file DET 1 1 (name) FTR 1 CurrencyTypes FP 5 Low 25. WeekdayTypes Type External interface file DET 1 1 (name) FTR 1 WeekdayTypes FP 5 Low Total Function Points After adding all the function points together we get FP = 139, which translates into Java COL = 139 * 53 = 7367 SLOC, meaning that we are facing about 7.4k SLOC in this application. Effort and schedule estimation is done with COCOMO II calculator: Calculator used for calculations: Unadjusted function points: 139 Programming language: Java 20

21 Description of the development team. Team has a lot of experience in web-based OLTP systems, and moderate experience with business process management related systems. Thus the following scale drivers are estimated based on these assumptions. Software Scale Drivers Next we give an overview of what additional software scale drivers were used in the COCOMO II simulator to get more precise result. Precedentedness: High Organizational understanding of product objectives Experience in working with related software systems Concurrent development of associated new hardware and operational procedures Need for innovative data processing architectures, algorithms Considerable Moderate Some Minimal Development Flexibility: Low Need for software conformance with preestablished requirements Need for software conformance with external interface specifications Combination of inflexibilities above with premium on early completion Full Full Medium Architecture / Risk Resolution: Nominal Risk Management Plan identifies all critical risk items, establishes milestones for resolving them by PDR or LCA. Schedule, budget, and internal milestones through PDR or LCA compatible with Risk Management Plan. Percent of development schedule devoted to establishing architecture, given general product objectives. Some Some 17 Percent of required top software architects available to project

22 Tool support available for resolving risk items, developing and verifying architectural specs. Level of uncertainty in key architecture drivers: mission, user interface, COTS, hardware, technology, performance. None Little Number and criticality of risk items. 2-4 Critical Team Cohesion: High Consistency of stakeholder objectives and cultures Ability, willingness of stakeholders to accommodate other stakeholders objectives Experience of stakeholders in operating as a team Stakeholder teambuilding to achieve shared vision and commitments Strong Strong Basic Basic Process Maturity: High (EPML = 2.67) Requirements Management Software Project Planning Software Project Tracking and Oversight Software Subcontract Management Software Quality Assurance (SQA) Software Configuration Management (SCM) Organization Process Focus Organization Process Definition Training Program Integrated Software Management Software Product Engineering Intergroup Coordination Peer Reviews Quantitative Process Management About half About half Frequently Does not apply Frequently Frequently Don t know Rarely if Ever Rarely if Ever Rarely if Ever Almost always Frequently Almost always About Half 22

23 Software Quality Management Defect Prevention Technology Change Management Process Change Management Frequently Frequently Occasionally Occasionally Software Cost Drivers Next, software cost drivers are described that were used in COCOMO II simulator. Product Required Software Reliability: Very Low (slight inconvenience) Data Base Size: Low The size of the database is very small compared to amount of SLOC of the application. Product Complexity: Low Control Operations Computational Operations Device- dependent Operations Data Management Operations User Interface Management Operations Nominal Nominal Low Very Low Low Developed for Reusability: Low None, there is no need design elements of the application for reuse, it is just one-time project. Documentation Match to Lifecycle Needs: Nominal Right-sized to life-cycle needs Personnel Analyst Capability: High 23

24 analysis and design ability 75% efficiency and thoroughness 55% ability to communicate and cooperate 75% Programmer Capability: High ability 90% efficiency and thoroughness 75% the ability to communicate and cooperate 75% Personnel Continuity: Very High 3% / year Application Experience: Low 6 months Platform Experience: Nominal Understanding the use of more powerful platforms, including more graphic user interface, database, networking, and distributed middleware capabilities. Experience with the used platform: 1 year. Language and Toolset Experience: High Experience with the Java language and toolset: 3 years. Platform Time Constraint: Nominal 50% use of available execution time Storage Constraint: Very Low Platform Volatility: Very Low Very seldom updates. Project Use of Software Tools: High Strong, mature life- cycle tools, moderately integrated. 24

25 Multisite Development: Extra High Fully collocated Required Development Schedule: Nominal 100% of nominal. No stretch-out nor acceleration is used. 25

26 Results Software Development (Elaboration and Construction) Staffing Profile Cost per person month: 3000 Effort = 5.9 Person-months Schedule = 6.6 Months Cost = Total Equivalent Size = 7367 SLOC Acquisition Phase Distribution Phase Effort (Person-months) Schedule (Months) Average Staff Cost (EUR) Inception Elaboration Construction Transition Software Effort Distribution for RUP/MBASE (Person-Months) Phase/Activity Inception Elaboration Construction Transition Management Environment/CM Requirements Design Implementation Assessment Deployment