Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Software Economics Homework I
Function Point Analysis and Effort Estimationof
Web application plancake.com
Kaupo KuressonBogdan SemiltkoAnna Agafonova
Risto Saar
1
Application Overview
Plancake (http://www.plancake.com) is an online task list management service. It allows usersto add new tasks, set tags and due dates for tasks, classify them into lists. Plancake displays anoverview of pending tasks, provides options to search tasks and change task statuses.
Scope
This document focuses on the Plancake web user interface. Plancake smartphone client andPlancake offline mode are not included in the scope for simplicity reasons.
Boundaries
Outside Inside
Account can be tied to a Google accountGmail integrationNewsIntro video on YouTubePaypal payment
Create accountLoginReset passwordSearch for tasksCreate taskUpdate taskView taskDelete taskCreate/Update/View/Delete ListCreate/Update/View/Delete TagCreate/Update/View/Delete NoteSend feedback/Ask for helpView guideView features / servicesView/change settingsExport data as XML/Import XML
2
Assumptions
The company wants to provide an online service for todo list management and GTD(Getting things done)
Development team consists of the students that are doing this analysis. Agile life cycle development model is used. Some members have experience with developing similar applications. Company uses Paypal to verify and process the customer payment. Data model based on opensource code.
Data Model
The product’s main entities are User, List and Task. All the functionality is built around these 3main entities with a high number of references.
3
Functional Point Analysis
Transaction Type DETs FTRs Complexity FPs
Account Create account EI 6 1 Low 3
Delete account EI 3 6 Average 3
Authentication Logging in EQ 5 1 Low 3
Logging in withGoogle account
EQ 3 1 Low 3
Resetting password EQ 2 1 Low 3
Tags Add tag EI 2 1 Low 3
Edit tag EI 2 1 Low 3
Delete tag EI 1 1 Low 3
Lists Add list EI 3 1 Low 3
Edit list EI 3 1 Low 3
Delete list EI 1 1 Low 3
Tasks Add task via GUI EI 9 4 High 6
Add task viaCommand line
EI 5 4 High 6
Mark task completed EI 1 1 Low 3
Star a task EI 1 1 Low 3
Edit task EI 9 4 High 6
Delete task EI 1 2 Low 3
Filter tasks EQ 9 4 High 6
Feedback /Help
Send feedback EI 2 1 Low 3
Notebook Add note EI 19 1 Average 4
Edit note EI 19 1 Average 4
Delete note EI 1 1 Low 3
Settings Select date format EI 2 1 Low 3
Select time format EI 2 1 Low 3
Select time zone EI 3 1 Low 3
Select first day ofthe week
EI 2 1 Low 3
Select language EI 2 1 Low 3
Upload avatar EI 2 1 Low 3
4
Change password EI 3 1 Low 3
Change EMail EI 3 1 Low 3
Set reminders EI 2 1 Low 3
Upgrade account EI 3 1 Low 3
Backup data EQ 5+ 6 High 6
Import data EI 5+ 6 High 6
Change backgroundcolor
EI 2 1 Low 3
File Type DETs RETs Complexity FPs
User + settings ILF 14 2 Low 7
Google login data EIF <19 <5 Low 5
Tasks ILF 12 1 Low 7
Tags ILF 5 1 Low 7
Lists ILF 7 1 Low 7
Notes ILF 4 1 Low 7
Repetition ILF 9 1 Low 7
Subscription ILF 4 1 Low 7
Total FPs 179
EI External Input, EQ External Inquiry, EO External Output, ILF Internal Logical Files, EIF External Interface Files
Identified DETs, RETs and FTRs are added to the appendix.
Cost estimate
Software scale drivers
PREC Precedentedness Very High
Organizational understanding of productobjectives
Thorough
Experience in working with related softwaresystems
Considerable
5
Concurrent development of associated newhardware and operational procedures
Moderate
Need for innovative data processingarchitectures, algorithms
Minimal
FLEX Flexibility High
Need for software conformance with preestablished requirements
Considerable
Need for software conformance with externalinterface specifications
Considerable
Combination of inflexibilities above withpremium on early completion
Low
Architecture / Risk Resolution Nominal
Risk Management Plan identifies all critical risk items, establishes milestones for resolving them by PDR or LCA.
Some
Schedule, budget, and internal milestones through PDR or LCA compatible with Risk Management Plan.
Some
Percent of development schedule devoted toestablishing architecture, given general product objectives.
20
Percent of required top software architects available to project.
20
Tool support available for resolving risk items,developing and verifying architectural specs.
Good
Level of uncertainty in key architecture drivers: mission, user interface, COTS, hardware, technology, performance.
Little
Number and criticality of risk items. 24 Critical
6
Team cohesion High
Consistency of stakeholder objectives andcultures
Strong
Ability, willingness of stakeholders toaccommodate other stakeholders’ objectives
Strong
Experience of stakeholders in operating as ateam
Little
Stakeholder teambuilding to achieve sharedvision and commitments
Basic
Process maturity High (EPML = 2,8)
Requirements Management Frequently
Software Project Planning Frequently
Software Project Tracking and Oversight Frequently
Software Subcontract Management Does not apply
Software Quality Assurance (SQA) Frequently
Software Configuration Management (SCM) Frequently
Organization Process Focus Occasionally
Organization Process Definition Occasionally
Training Program Frequently
Integrated Software Management Occasionally
Software Product Engineering About half
Intergroup Coordination Frequently
Peer Reviews Frequently
Quantitative Process Management About half
Software Quality Management About half
Defect Prevention Frequently
7
Technology Change Management Occasionally
Process Change Management Occasionally
Software cost drivers
Required Software Reliability Very Low
Slight inconvenience.
Database size Low
Amount of test data needed is very small compared to amount of SLOC of the application.
Product Complexity Low
Control Operations Mostly simple nesting. Some intermodule control. Simplecallbacks or message passing, includingmiddlewaresupported distributed processing.
Nominal
Computational Operations Evaluation of simple expressions. VeryLow
DevicedependentOperations
No cognizance needed of particular processor or I/Odevice characteristics. I/O done at GET/PUT level.
Low
Data ManagementOperations
Simple triggers activated by data stream contents.Complex data restructuring. Search optimization.
High
User InterfaceManagement Operations
Use of simple graphic user interface (GUI) builders (JqueryUI ).
Low
Developed for Reusability Low
PHP framework “symfony” is used.
Documentation Match to LifeCycle Needs Very Low
Most lifecycles are uncovered. Partial documentation is provided through the code by usingmeaningful variable and method names, and code blocks comments.
Analyst capability Nominal
8
Analysis and design ability 70%
Efficiency and thoroughness 70%
Ability to communicate and cooperate 50%
Programmer capability High
Programming ability 80%
Efficiency and thoroughness 80%
Ability to communicate and cooperate 60%
Personnel continuity High
Low turnover. Single development project team.
Platform Experience High
The workload is divided by team member roles ( GUI & backend ). Frameworks are used on bothends ( Jquery & symfony, respectively ). Every developer is a specialist of the used framework.
Language and toolset Experience High
34 years experience.
Applications Experience Nominal
Aggregate team experience. Some team members have experience with developing timemanagement / planning applications.
Execution Time Constraint Nominal
Application is intended to use ≤ 50% of available execution time.
Storage Constraint Nominal
Application uses ≤ 50% of available storage. Relational database is the main storage consumer.
Platform Volatility High
9
Major change every two months, minor change every week.
Use of software tools Very High
General use of advanced tools such as full programming support library with configuration management aids, integrated documentation system, project control system, extended design tools, automated verification system.
Multisite development High
Team is located in the same city, but not in the same building or complex.
Required development schedule Nominal
No stretchout or acceleration.
Results10
Software Development (Elaboration and Construction)
Software Labor Rates $3500 per PersonMonthEffort = 8.4 PersonmonthsSchedule = 7.4 MonthsCost = $29472Total Equivalent Size = 9540 SLOC
Acquisition Phase Distribution
Phase Effort(Personmonths)
Schedule(Months)
AverageStaff
Cost(Dollars)
Inception 0.5 0.9 0.5 $1768
Elaboration 2.0 2.8 0.7 $7074
Construction 6.4 4.6 1.4 $22399
Transition 1.0 0.9 1.1 $3537
Project is too small to display a staffing profile due to truncation.
Software Effort Distribution for RUP/MBASE (PersonMonths)
Phase/Activity Inception Elaboration Construction Transition
Management 0.1 0.2 0.6 0.1
Environment/CM 0.1 0.2 0.3 0.1
Requirements 0.2 0.4 0.5 0.0
Design 0.1 0.7 1.0 0.0
Implementation 0.0 0.3 2.2 0.2
Assessment 0.0 0.2 1.5 0.2
Deployment 0.0 0.1 0.2 0.3
Assuming 4 person development team, consisting of 2 backend PHP engineers and 1 frontendHTML / Jquery engineer, which all work in parallel ; additionally “as needed” database specialistand tester. Thus the project is easily doable in calculated timeframe (~ 45 months).
11
Appendix
Account Create account
External Input Email address and password are fed into the system by a user and are storedinto the database separate from the application.
Account Delete accountExternal Input When deleting an account, data is changed(removed in this instance) from thesystem.
6 RETs, 6 FTRs Deleting an account also deletes all the associated data (tasks, lists, tags,notes, settings).Authentication Logging in
12
External Inquiry User inserted email and password (input) are compared to the data stored intothe database and the user is presented with either a successful login screen or an errormessage screen telling the user that the login has failed. (output)
Authentication Resetting password
External Inquiry User inserts an email address (input) to which, if the address exists, an emailwill be sent (output). No data is changed during this process.
13
Tags Add tag
External Input User inserts a name for the tag. When clicking ‘save’, a new record is stored intothe database.
Tags Edit tagExternal Input User inserts a new name for the tag. When clicking ‘save’, the record is updatedin the database.
Tags Delete tagExternal Input User deletes a tag. Data is changed(removed) from the database.
14
Lists Add listExternal Input User inserts a new name for the list. Also he might make this an header list.When clicking ‘save’, a new record is stored in the database.
Lists Edit listExternal Input User inserts a new name for the list. When clicking ‘save’, the record is updatedin the database.
Lists Delete listExternal Input User deletes a list. Data is changed(removed) from the database.
15
Tasks Add task via GUIExternal Input User inserts data for the task. When clicking ‘save’, a record is stored into thedatabase.
4 RETs, 4 FTRs Tasks, Repetition, Tags, Lists
Tasks Add task via Command lineExternal Input User inserts a name and additional parameters for the task. When pressingEnter, a new record is stored into the database.
4 RETs, 4 FTRs Tasks, Repetition, Tags, Lists
16
Tasks Mark task completedExternal Input User marks the task completed. The task record is updated in the database.
Tasks Favorite a taskExternal Input User marks the task as favorite. The task record is updated in the database.
Tasks Edit taskExternal Input User edits the task and changes parameters.When hitting save, the task recordis updated in the database.
4 RETs, 4 FTRs Tasks, Repetition, Tags, Lists
17
Tasks Delete taskExternal Input User deletes the task.When hitting delete, the task record is changed(removed)in the database.
2 RETs, 2 FTRs Tasks, Repetition
Tasks Filter tasksExternal Inquiry User can search for tasks based on completion, starring and date. No data ischanged during this process.
Notebook Add/edit noteExternal Input User creates/edits the note and changes formatting.When hitting save, (or byautosave function) the note record is inserted / updated in the database.
18
Notebook Delete noteExternal Input User deletes the note, the note record is deleted from the database.
Feedback / Help Send feedbackExternal Input User writes a feedback text and when hitting send message, a message is sent.(a record is created)
Settings Select date formatExternal Input User edits the date format. User settings record is updated.
Settings Select time formatExternal Input User edits the timeformat. User settings record is updated.
19
Settings Select first day of the weekExternal Input User selects first day of the week. User settings record is updated.
Settings Select time zoneExternal Input User edits the time zone. User settings record is updated.
Settings Select languageExternal Input User selects language. User settings record is updated.
Settings Upload avatarExternal Input User updates his or her avatar. User settings record is updated.
20
Settings Change passwordExternal Input User changes password. User settings record is updated.
Settings Change EMailExternal Input User edits changes email address. User settings record is updated.
Settings Set remindersExternal Input User sets reminders. User settings record is updated.
21
Settings Upgrade accountExternal Input User upgrades his or her account. User settings record is updated.
Settings Backup dataExternal Inquiry User backs up data. XML file is exported, but no new data is derived. Doesn’tcontain any formulas.
22
Settings Import dataExternal Input User imports data from XML file. Data is saved to database.
Settings Change background colorExternal Input User changes background color of the application. User settings record isupdated.
23