




Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
An analysis of a software project using function point analysis (fpa). The analysis covers the inputs, outputs, queries, files, interfaces, and includes an afp and cocomo analysis. The project involves a backup and recovery system with medium complexity inputs from a gui and communicator daemon, six outputs to the log, status tab, services tree, and tcp interfaces, seven queries for deriving statistics, approximately twenty-four files of varying complexity, and five interfaces with the os, communicator daemon, gui, application module framework, and configuration files. The function point matrix is also included. The document also includes an adjustment of function points (afp) and an estimation of the number of lines of code (loc), labor months (effort), and development time using the organic model with basic cocomo analysis.
Typology: Study Guides, Projects, Research
1 / 8
This page cannot be seen from the preview
Don't miss anything!
1.1.1 Function Point Analysis 1.1.1.1 Inputs The inputs for our project come from the graphical user interface and the communicator daemon. In the GUI, we have five tabs and a services tree that we use. The services tree is of high complexity because it dynamically changes to tell the state of your current services. The Application'' tab is of low complexity as it merely serves as an application manager for the service modules. Internal to that are the application modules, which we will state have a medium level of complexity, as they must take into consideration much more configurations that are individually tailored to specific modules. The
IP'' tab is of low complexity because most all you should have to do is input the desired IP address. The User'' tab is of medium complexity as it is used to configure the passwords and options for all user accounts. The
Status'' tab gives you log output from various applications and statistics from the operating system, hence it is of medium complexity. As a whole, the Java GUI has two TCP interfaces, one with another computer's GUI interface, and one with the UNIX communicator daemon. These are of low complexity, as it is very easy to communicate through sockets in Java. Finally, the inputs into the UNIX communicator are of medium complexity due to the nature of the development platform. In total, that tallies as nine separate inputs, one of high complexity, four of medium complexity, and four of low complexity. 1.1.1.2 Outputs We have six main outputs that our project uses. We output to our own log, our ``Status'' tab, our services tree, and our three TCP interfaces. The log
should be of low complexity as it would just be a file that we append simple messages to. The ``Status'' tab will be a medium complexity factor because there will be a little work formatting the messages and displaying them on the screen. The services tree will be of high complexity because it must know the state of all running services and change dynamically as their status changes. Finally, the TCP interfaces that interface in Java will be of low complexity and the one in the UNIX layer will be of medium complexity, for the same reasons as stated above. In summation, there are six outputs, one of high complexity, two of medium complexity, and three of low complexity.
1.1.1.3 Queries Our project has seven queries that it will use. Basically our queries are anything from which we can derive statistics. All of the queries are very easy to use, due to the ease of UNIX signal calls, TCP communication in Java and UNIX, and the ease of reading files. Therefore all of our queries are of low complexity. We can get the storage space available, CPU utilization, memory utilization, and network usage statistics from the OS layer via the proc file system. We can use Unix signals to determine information about the state of our running application services. We can also use TCP to communicate with the lower level of our application and with the other unit's GUI. Hence, we have a total of seven queries of low complexity. 1.1.1.4 Files There are approximately twenty-four files that our project is going to use. They vary in complexity from low to high. The high complexity files are SMTP configuration, IMAP configuration, Samba configuration, and FTP configuration.
medium complexity. Finally the application module framework and configuration files will also be of low complexity, due to the strict object-oriented approach we have taken towards our design architecture. Therefore there are two interfaces of medium complexity and three that are of low complexity.
1.1.1.6 Function Point Diagram
Low Medium High Total Inputs 1 Î 3 4 Î 4 4 Î 6 43 Outputs (^) 1 Î 4 2 Î 5 3 Î 7 35 Queries 7 Î 3 0 Î 4 0 Î 6 21 Files 8 Î 7 8 Î 10 8 Î 15 256 Interfaces 3 Î 5 2 Î 7 0 Î 10 29 TOTAL 99 120 165 384
Table 1: Function point matrix
Multiple Sites The system will be designed so it can be installed at multiple sites for one customer (and at multiple customers’ sites). 4 Ease of Use This is another key goal for the project.^5 TOTAL (^) 38
Adjusted Function Points (AFP) = 384 Î (0.65 + (0.01 Î 38)) AFP = 395.
Here we use 34 as the language factor because it is the weighted average of the languages we will be using (25% C, 5% UNIX scripts, 70% Java). Lines of Code (LOC) = 34 Î 395. LOC = 13,
Finally we use the organic model with basic COCOMO analysis as that model best describes our project.
Labor Month (effort) = 2.4 Î ((LOC / 1000)^1.05) Labor Month = 2.4 Î (13.448^1.05) Labor Month = 36.
Develop Time (schedule time) = 2.5 Î ((Labor Month)^0.38) Develop Time = 2.5 Î (36.7)^0. Develop Time = 2.5 Î (3.9338) Develop Time = 9.
People Needed = Labor Month / Develop Time People Needed = 36.7 / 9. People Needed = 4