3. 2
MegaMart Management System
1.0) Introduction:
MegaMart Management System(MMMS) is an application that will be used to
manage a mega mart retail store. The store’s size will be similar to
Wal-Mart’s in that it will have several departments, each with distinct
employees, inventories and services to be monitored. Information will be
stored on local, location-specific servers. Store’s inventory will be accessible
by MMMS of other Mega Mart stores.
2.0) Departments:
The departments are: Grocery, Electronics, Sporting/Recreation, Clothing,
Home/Office, and Management.
2.1) General:
There shall be 5 general departments. Each shall have one Manager
and some General Employees.
2.2) Management:
There shall be 3 sub-departments.
2.2.1) Accounting:
This department shall manage payroll. It shall aggregate data from the
transaction database to form reports for executives responsible for
financial decisions. The pay rate shall be stored for all types of
employees in a separate table.
4. 3
2.2.2) Human Resources (People Management):
Employees shall be assigned positions based on Human Resources
management department. The department shall contain max of 4
HR employees. Each store shall have a store manager, a Store supervisor, and
a number of general employees (cashiers, baggers, greeters).The Human
Resource department shall deal with management of employees including
hiring, firing, and scheduling.
2.2.3) Customer Service:
The Customer Service department shall process returns. It shall open
customer service cases. Customer service cases shall be dealt with externally
by customer service employees.
3.0) Data:
All data accessed by the software shall be stored in a local, relational, store-specific
database.
3.1) Employee:
Shall be a table of EMPLOYEES which contains first and middle initial, last
name, age, social security number, address, banking information (billing address,
account number, routing number), generated user-id, user-created password, and
email. Clock-in, clock-out and total time worked shall be stored with the employee
entry in the database as well. Employees will be able to send send messages to
other employees.
Employee-ID shall be unique 8 digit decimal number that serves as a
franchise wide identifier for the employee.
Username shall be a store-unique identifier, and shall be automatically
generated upon addition of employee to database. It shall be composed of
first initial, last name, and the first available integer incrementing from
one (all one word, all lower-case).
The total time worked field will be a running total of the total time
worked which is calculated based on their clock-in and clock-out values
on a daily basis.
3.2) Inventory:
5. 4
Shall store each item’s UPC, name, department, quantity on hand, target
quantity, wholesale price per unit and sale price per unit.
Each inventory data request. A barcode can be scanned by a Barcode Scanner, the
item’s UPC shall be sent to the system as an alpha-numeric string. The ordering of
inventory supply shall not be done though this software, but rather an external
system.
3.3) Transaction:
Shall be composed of a unique transaction-id which shall be an 12 digit
positive integer made up of 4 digits for year, 2 digits month, 2 digits for day,
and a 4 digit number to be incremented with each transaction added to the database
(to be reset daily), products’ UPC, quantity(purchase or return). All transactions
shall be immediately stored in a queue which shall be processed every five minutes,
updating the inventory based on the transaction’s type(purchase or return). Each
transaction shall be stored in its respective table (purchase or return). Type shall be
0 for purchase and 1 for return and stored in a queue which is processed every 5
minutes , derived total
4.0) User Interface (UI):
The user interface will be intuitive and easy to navigate, as well as efficiently laid out
to accomplish tasks quickly.
4.1) General Layout Description:
The software’s interface shall be organized based on department. There shall
be a department selection drop-down menu, in which a user will select the
department they wish to access. Each department’s interface shall allow the user to
intuitively access all necessary functions applicable to that department.
4.1.1) General Department Interface:
General departments shall share a similar interface. This interface
shall allow the user to access and view all of the inventory associated
with that department. This view of inventory will be intuitively laid out to
show what is in stock, the price of the item, and when any out of stock item is
expected to be available. The list of inventory items can be sorted by name,
UPC, quantity in stock. The user will be able to search for a specific item by
name or UPC. General department interfaces shall also allow users to view
the staff of that department and send messages/notifications to the
management within that department.
6. 5
4.1.2) Management:
The interface for the management department shall be broken down
into 3 sub-pages/interfaces each representing one of the sub-departments
described in section 2.2.
Accounting:
This page shall allow the user to generate reports based
on transactions. Accounting employees shall be able to view the hours
worked by each employee, and calculate the amount to pay them. All
the payroll information shall be pushed out to a file where the
information, including banking information and amounts for each
employee, is parsed by an external system to print checks or be sent
electronically. Employee total hours worked shall be reset after each
paycheck is sent out. Payroll shall be processed and sent out every 2
weeks.
Human Resources:
This page shall allow the user to manage all
employee positions. There shall be the option to view all
employees in a list and sort them by various attributes. The user shall
be able to add or remove an employee from the database through the
Human Resources interface as well. When adding an employee a
popup window will appear with all the relevant fields. This page will
have the option to display the employee work schedule, which will be
generated externally by a Human Resources employee. This schedule
will be visible to all employees regardless of position within the store.
A Human Resources employee shall be able to manually reset and
modify the clock-in, clock-out and total hours worked fields in an
employee record.
Customer Service:
This page shall allow the user to search for
search past transactions over the past 30 days, to create a new
customer service case, to access old/open customer service cases. To
process returns the user shall select a past transaction to reverse and
a new transaction will be created.
4.2) Privileges / Restrictions:
Upon accessing the software the user shall be required to enter their login
information, i.e. their username and password. After entering valid login
information the user shall be signed in and have access to pages that they
7. 6
have the privilege to view or interact with. The privileges are as follows:
Store Manager:
The store manager shall have access to all functionality offered by the
software, they can assign employees to all positions within the store.
Store Supervisor:
The store supervisor shall have access to all functionality offered by the
software, they can assign employees to all positions below their own.
Management:
Managers shall have access to all functionality within their assigned
department, and have limited access to functionality within the management
department. They have no administrative privledges.
General Employee:
General employees shall only have basic access to the software. They shall be
able to view inventory, send messages/notifications to managers, and modify
basic information about themselves. If an employee is assigned to a more
specific job, such as customer service, they shall have access to the
functionality associated with that job. All general employees shall access
their employee page and clock-in when they begin work, and clock out when
they leave.
A user shall have the option to sign out when they have completed their use
of the software, if they let the system sit idle for 10 minutes they shall
automatically be signed out.
4.3) Notifications / Messages:
Every 30 minutes the inventory shall be checked for low levels of stock. If an
item’s stock level in inventory is below 30% of the desired stock level (target
stock level), a warning message shall be sent to the managers. The listing
for a low stock item will appear red in the inventory list. Users will be able to
manually flag an item if it has less than 30% stock.
Employees shall be able to send messages to managers within their own
department, managers shall be able to view these messages. When an employee
sends a message it shall also send their name, employee ID, and the date sent, to the
manager message inbox.
There shall be a popup notification when a user has been inactive for 9 minutes, if
the user does not interact with this popup by clicking its button the system shall
8. 7
assume the user is still in active and proceed to log the user out at the 10 minute
mark.
4.4) Errors / Exception Handling:
If the user should enter invalid information in the login entry fields, the
program shall return “ You have entered an invalid username/password.”
When a user clocks-in it the system shall store the time in the clock-in field of
their employee record, and when they clock-out the time is stored in the clock-out
field. The time worked is calculated and added to total time worked. The values for
clock-in and clock-out are cleared after a full cycle of clock-in and clock-out occur. If
the user does not clock-out at the end of the day, and tries to clock-in on the next
day, an error will be displayed, and they will be prompted to contact a
manager/Human Resource employee.
If the user enter invalid data entry, such as: invalid SSN, address, and banking
information, the program shall return, “Invalid (SSN, Address, and
Banking information)”.
The program shall display a message, “No data found”, if there are no datas
in the table requested.
5.0) Backup:
Every day at 11:59pm the new transactions for that day shall be appended to
a log file, which acts as a backup of transactions. At the same time transactions older
than 30 days will be removed from the database.
Every 7 days, the other data in the database will be backed up to log files, this
includes employees, messages, inventory, etc...
All views of the database content will have the option to export the visible data to a
log file. The software will allow the importing of log files to be parsed and replace or
append to the current data in the database.
6.0) Administration:
The store manager shall have the ability to access all of the program. The
store managers login shall have root access to the software, thus have the
privileges to access the administrative functions of the software. A System
Administrator has this access as well. The administrative functions shall include:
9. 8
Manual backup of databases:
Databases can be manually backed up, by duplicating the .sqlite file
and renaming for backup.
Manual restoration of databases:
The database backup file can be restored to act as the current
database.
Modify the network paths to database servers:
Shall Have the ability to modify the paths to access the local
database and any relevant files.
10. 9
Requirement Traceability Matrix:
Entry#
Para
# System Specification Text Type Build Use Case Name Category
1 2.1 There shall be 5 general
departments
SWC
2 2.1 Each department shall have 1
manager and some general
employees
SWC
3 2.2 Management shall have 3
subdepartments
SWC
4 2.2.1 Accounting shall manage payroll SW
5 2.2.1 Accounting shall aggregate data
from the transaction database to
form reports
SW 1.0 UC05_Create_Finacial_Report
Interface
Controller
6 2.2.1 The pay rate shall be stored for all
types of employees in a separate
table.
SW
7 2.2.2 Employees shall be assigned
positions based on Human
Resources
management department
SW 1.0 UC07_Assign_Employee_Position
Interface
Controller
8 2.2.2 The HR department shall contain
max of 4 HR employees
SWC
9 2.2.2 Each store shall have a store
manager, a Store supervisor, and a
number of general employees
(cashiers, baggers, greeters)
SWC 1.0 UC09_Add_Employee,
UC10_Remove_Employee
Interface
Controller
10 2.2.2 The Human Resource department
shall deal with management of
employees including hiring, firing,
and scheduling.
SW
UC09, UC10
11 2.2.3 Customer Service shall open
customer service cases.
SW 1.0 UC11_Create_Customer_Service_Case
UC12_Load_Customer_Service_Case
Interface
Controller
Database
12 2.2.3 The Customer Service department
shall process returns.
SW
UC27
13 2.2.3 Customer service cases shall be
dealt with externally by customer
service employees.
1.0
UC13_Remove_Customer_Service_Case
Interface
Controller
14 3.0 All data shall be stored in a local
and storespecific database
SWC,
HW
15 3.1 Employee table shall contain first
name, middle initial, last name,
age, SSN, address, banking
information, generated userid,
usercreated password, and email.
SWC
11. 10
16 3.1 Clockin, clockout and total time
worked shall be stored with the
employee entry in the database
SW,S
WC
17 3.1 Employees will be able to send
schedule requests to management
SW
18 3.1 The total number of personal days
and personal days already taken
shall be stored in separate fields in
an employee record.
SW
19 3.1 EmployeeID shall be unique 8 digit
decimal number that serves as a
franchise wide identifier for the
employee.
SW
20 3.1 Username shall be generated with
first initial, last name, and the first
available integer.
SW
21 3.1 The total time will be calculated
based on Clockin and Clockout
values on daily basis
SW 1.0 UC21_Clock_In,
UC22_Clock_Out Interface
Controller
22 3.2 A barcode can be scanned by a
Barcode Scanner, the item’s UPC
shall be sent to the system as an
alphanumeric string.
SW,
HW
23 3.2 Inventory table shall store item's
UPC, name, department, quantity
on hand, target quantity, wholesale
price per unit, and sale price per
unit.
SW 1.0 UC23_Add_Inventory_Item,
UC24_Remove_Inventory_Item,
UC25_Modify_Inventory_Item
Interface
Controller
24 3.2 The ordering of inventory supply
shall not be done though this
software
SWC
25 3.3 Transaction table shall store unique
transaction ID, product's UPC,
product's price and product's
quanitity.
SW
UC27
26 3.3 Transaction ID shall be unique 12
digit ID, which is composed of year,
months, days, and 4 digit number
that increments with each
transaction.
SWC
27 3.3 All transaction shall be immediately
stored in queue to update inventory
depending on purchase or return.
SW 1.0 UC27_Create_Transaction
Interface
Controller
28 3.3 The transaction queue shall be
processed every 5 minutes.
SW,
SWC
1.0 UC28_Process_Transaction_Queue Object
Classes
29 3.3 The purchase and return shall be
differentiated by number type. (0
being purchase and 1 being return)
SW,
SWC
UC27
30 4.0 The user interface will be intuituve
and easy to navigate, as well as
SWC
12. 11
efficiently laid out to accomplish
tasks quickly.
31 4.1 The software's interface shall be
organized based on department.
SW
32 4.1 There shall be a deparment
selection dropdown menu, in which
a user will select the department
they wish to access.
SW 1.0 UC32_Select_Department
Page
Navigator
33 4.1 Each department's interface shall
allow the user to intuitvely access
all necessary functions applicable
to that department
SW
UC32
34 4.1.1 General departments shall share a
similar interface.
SW
35 4.1.1 This interface shall allow the user to
access and view all of the inventory
associated with that department.
SW 1.0 UC35_Load_Department_Inventory
Database
36 4.1.1 This view of inventory will be
intuitively laid out to show what is in
stock, the price of the item, and
when any out of stock item is
expected to be available.
SW
37 4.1.1 The user will be able to search for a
specific item by name or UPC.
SW 1.0 UC37_Search_Inventory Interface
Controller
38 4.1.1 General department interfaces shall
also allow users to view the staff of
that department and send
messages/ notifications to the
management within that
department.
SW 1.0 UC38_Load_Employees,
UC39_Search_Employees
Interface
Controller
Database
39 4.1.2 The interface for the management
department shall be broken down
into 3 subpages/interfaces each
representing one of the
subdepartments described in
section 2.2
SW
40 4.1.2 The accounting page shall allow the
user to generate reports based
on transactions.
SW
UC05
41 4.1.2 Accounting employees shall be
able to view the hours worked by
each employee, and calculate the
amount to pay them.
SW 1.0 UC41_Process_Paychecks
Interface
Controller
42 4.1.2 All the payroll information shall be
pushed out to a file where the
information, including banking
information and amounts for each
employee, is parsed by an external
system to print checks or be sent
electronically.
SW
UC41
13. 12
43 4.1.2 Employee total hours worked shall
be reset after each paycheck is
sent out.
SW
UC41
44 4.1.2 Payroll shall be processed and sent
out every 2 weeks.
SW,
SWC
45 4.1.2 The human resources page shall
allow the user to manage all
employee positions.
SW
UC07
46 4.1.2 There shall be the option to view all
employees in a list and sort them
by various attributes.
SW
UC38
47 4.1.2 When adding an employee a popup
window will appear with all the
relevant fields.
SW
UC09
48 4.1.2 This page will have the option to
display the employee work
schedule, which will be generated
externally by a Human Resources
employee.
SW
49 4.1.2 This schedule will be visible to all
employees regardless of position
within the store.
SW
50 4.1.2 A Human Resources employee
shall be able to manually reset and
modify the clockin, clockout and
total hours worked fields in an
employee record.
SW 1.0 UC50_Modify_Employee_Data
Interface
Controller
51 4.1.2 The customer service page shall
allow the user to search for
search past transactions over the
past 30 days, to create a new
customer service case, to access
old/open customer service cases.
SW 1.0 UC51_Load_Transactions,
UC52_Search_Transactions
Interface
Controller
Database
52 4.1.2 To process returns the user shall
select a past transaction to reverse
and a new transaction will be
created.
SW
UC27
53 4.2 Upon accessing the software the
user shall be required to enter their
login information, i.e. their
username and password.
SW 1.0 UC53_Log_In
Interface
Controller
54 4.2 After entering valid login
information the user shall be signed
in and have access to pages that
they have the privilege to view or
interact with.
SW
UC53
55 4.2 The store manager shall have
access to all functionality
offered by the software, they can
assign employees to all positions
within the store.
SW
14. 13
56 4.2 The store supervisor shall have
access to all functionality
offered by the software, they can
assign employees to all positions
below their own.
SW
57 4.2 Managers shall have access to all
functionality within their
assigned department, and have
limited access to functionality within
the management department.
SW
58 4.2 Management will be able to access
notifications sent by employees to
management.
SW
59 4.2 General employees shall be able to
view inventory, and send
messages/notifications to
managers.
SW
60 4.2 If an employee is assigned to a
more specific job, such as customer
service, they shall have access to
the functionality associated with
that job.
SW
61 4.2 All general employees shall access
their employee page and clockin
when they begin work, and clock
out when they leave.
SW
UC21, UC22
62 4.2 A user shall have the option to sign
out when they have completed their
use of the software.
SW 1.0 UC62_Log_Out
Interface
Controller
63 4.2 If a user lets the system sit idle for
10 minutes, they shall automatically
be signed out.
SW,
SWC
UC62
64 4.3.1 Every 30 minutes the inventory
shall be checked for stock levels.
SW,
SWC
65 4.3.2 If stock level on an item is below
30% of the desired (target) stock
level, it shall produce a notification
and update the notifications panel.
SW,S
WC
66 4.3.3 Items with low stock level (below
30% of the target) will be colored in
red in inventory list
SW
67 4.3.4 User will be able to flag an item if
the item is under 30% threshold
SW
68 4.3.5 Employees shall be able to send
messages to managers within their
own department
SW 1.0 UC68_Create_Message
Interface
Controller
69 4.3.6 Manage shall be able to view the
message sent by employees in
their respective department.
SW 1.0 UC69_View_Message
Interface
Controller
15. 14
70 4.3.7 When an employee sends a
message it shall also send the
message with their information and
date
SW
UC68
71 4.3.8 User shall be warned if they're
inactive for 9 minutes. (Inactivity is
determined by clicks)
SW
72 4.3.9 The software will log itself out when
the user is inactive for 10 minutes.
SW
UC62
73 4.4 Every day at 11:59pm transactions
older than 30 days will be removed
from the database.
SW,S
WC
UC80
74 4.4.1 If the user should enter invalid
information in the login entry fields,
the
program shall return “ You have
entered an invalid
username/password.”
SW
UC53
75 4.4.2 When a user clocksin it the system
shall store the time in the clockin
field of their employee record, and
when they clockout the time is
stored in the clockout field.
SW
UC21, UC22
76 4.4.3 If the user does not clockout at the
end of the day, and tries to clockin
on the next day, an error will be
displayed, and they will be
prompted to contact a
manager/Human Resource
employee.
SW
UC21
77 4.4.4 If the user enter invalid data entry,
such as: invalid SSN, address, and
banking information, the program
shall return, “Invalid (SSN, Address,
and Banking information)”.
SW
UC09, UC11, UC23, UC25, UC27,
UC50, UC53, UC68, UC88
78 4.4.5 The program shall display a
message, “No data found”, if there
are no datas in the table requested.
SW
79 5.0 Every day at 11:59pm the new
transactions for that day shall be
appended to a log file
SW 1.0 UC79_Back_Transactions
Object
Classes
80 5.0 Every day at 11:59pm transactions
older than 30 days will be removed
from the database.
SW 1.0 UC80_Remove_Old_Transactions
Interface
Controller
81 5.0 Every 7 days, the other data in the
database will be backed up to log
files, this includes employees,
messages, inventory, etc...
SW
UC82
82 5.0 The software shall allow the
database .SQLite file to be
duplicated and backedup
SW 1.0 UC82_Backup_Database_Table
Object
Classes
16. 15
83 5.0 The software will allow the restoring
of a backup database .SQLite file
SW 1.0 UC83_Restore_Database_Table Interface
Controller
84 6.0 The store manager shall have the
ability to access all of the program
SW
85 6.0 The store managers login shall
have root access to the software,
thus have the privileges to access
the administrative functions of the
software
SW
86 6.0 The administrative functions shall
include: Manual backup of
databases
SW
UC82
87 6.0 The administrative functions shall
include: Manual restoration of
databases
SW
UC83
88 6.0 The administrative functions shall
include: Modify the network/local
paths to database servers and log
files
SW 1.0 UC88_Modity_Data_Path
Interface
Controller
89 3.3 There shall be a cash register view
which allows the user to create a
transaction to be added to the
transaction queue.
SW
UC27
70. 69
Test Cases:
Test Case: Login
Type: Blackbox, Number of Tests: 6 (5 for Input 1, and 1 for Input 2)
Attributes Descriptions
Name Login
Location /<Project Root Folder>/src/MegaMartMS/Controllers/LoginScreenController.java
Input Input 1) A username and password combination that exists in the database is
entered, and login clicked.
Input 2) A username and password combination that does not exist in the database is
entered, and login clicked.
Oracle Oracle 1) The corresponding user should be logged in and the department menu has
the user's accessible departments added to it, and the user menu has the
users name displayed and drop down is populated.
Oracle 2) The program should not log the user in and should print out a message
informing the user they entered incorrect information into the username
and/or password field.
Log Log 1) The two menus are correctly populated and user has access to rest of program.
Log 2) The program tells the user they entered invalid info, and the login screen
remains displayed.
Test Case: Page Navigation
Type: Whitebox, Number of Tests: 13 (All pages that are loadable)
Attributes Descriptions
Name Page Navigation
Location /<Project Root Folder>/src/MegaMartMS/Objects/PageNavigator.java
Input Input 1) Clicking interface items that will load/navigate to a different page. For example:
selecting a department from the drop down menu, selecting a tab within a page, or
clicking the add employee button.
Oracle Oracle 1) The destination page should correctly load and be displayed, if any data needs to
be passed to the new page it should do so by passing it to the page's correct
controller instance.
Log Log 1) The correct page page is loaded and necessary information is passed. For example
when modifying an employee the selected employee object from the table view is
passed to the employee edit page.
71. 70
Test Case: Search Employee
Type: Blackbox, Number of Tests: 9 (One for each type of possible search type)
Attributes Descriptions
Name Search Employee
Location /<Project Root Folder>/src/MegaMartMS/Controllers/EmployeeViewController.java
Input Input 1) User inputs a spaceless string into the search field and clicks search.
Input 2) User inputs a number into the search field and clicks search.
Input 3) User inputs a string that contains one white space in the middle into the search field
and clicks search.
Input 4) User inputs a blank string or a string composed of only white space into the search
field and clicks search.
Oracle Oracle 1) The table view should be updated to display employee records that have a
matching attribute to the search string.
Oracle 2) The table view should be updated to display employee records that have a
matching employeeID or phone number to the search string.
Oracle 3) The table view should be updated to display employee records that have a
matching first and last name to the words separated by the white space in the
search string.
Oracle 4) The table should be updated to display all employee records in the database.
Log Log 1) The table view updates to display employee records in which an attribute entirely
matches the search string.
Log 2) The table view updates to display employee records in which the number entirely
matches either the employeeID or the phone number the search string.
Log 3) The table view updates to display employee records in which the first and last name
match the two word in the search field in any order.
Log 4) The table updates to display all employee records in the database.
Test Case: Logout
Type: Whitebox, Number of Tests: 1 (Only one way to logout, via profile menu)
Attributes Descriptions
Name Logout
Location /<Project Root Folder>/src/MegaMartMS/Controllers/MainWindowController.java
Input Input 1) While the user is logged in, they select the "Logout" button from the profile drop
down menu.
Oracle Oracle 1) Current user and department should be set to null, login screen should be loaded,
and all options should be removed from both the department menu and the profile
menu.
Log Log 1) The login screen is displayed, and both the menus are cleared.
78. 77
Function Point Cost Analysis:
Weighting Factor Estimation:
Measurement Parameter Count Simple
User Inputs 11 * 3 = 33
User Outputs 7 * 4 = 28
User Inquiries 17 * 3 = 51
Number of Files 2 * 7 = 14
External Interfaces 2 * 5 = 10
Total: 136
For the 14 points, we had plus the complexity adjustment factor we had:
Factor Value
Backup and Recovery 5
Data Communications 4
Distributed Processing 0
Performance Critical 3
Existing operating environment 3
Online data entry 0
Online input transactions over multiple screens 0
Master files updated online 0
Inputs, outputs, files, inquiries complex 1
Internal processing complex 0
Code designed for reuse 3
Conversion/installation in design 2
Multiple installations 1
Change and ease of use 5
Complexity adjustment factor 1.17
∑F15: 28.17
FP = x * (0.65 + (0.01 * ΣF15))
FP = 136 * (0.65 + (0.01 * 28.17)) = 126.71
If we have the following assumptions:
1.The organization produces an average of 7 function points per month
2.The labor costs is $8000.00 per month
We can estimate that the cost per function point is ($8000/7) or approximately $1140
For 126.71 FP the project will cost $(1140 x 126.71). Which is $144,449.40
79. 78
Constructive Cost Model (COCOMO):
The effort multipliers for this project are:
Multiplier Rationale Value
Reliability Small network scope; Backup options implemented; Consistent architecture .88
Database 64 KB .94
Complexity Basic Processing .7
Timing Computations are not processorintensive 1
Storage Does not use much RAM 1
Machine Stable; can be commercially available .87
Turnaround Interactive software: users’ actions will be processed and completed almost
instantaneously as they are entered.
.87
Analysts Experienced software analysts 1
Programmers Experienced programmers .86
Experience No experience in management 1.42
Experience No time spent on the micro 1.21
Experience 3 years of experience with the language 1
Practices Almost 3 years of experience in modern practices .82
Tools Very basic micro software 1.24
Schedule Nominal scheduled completion time 1
E = ab * (KLOC)b
* b = 2.4 * 6.5^1.05 = 17.13 Programmer Months
Effort Adjustment Factor(EAF) = 0.658
When Applied to the nominal estimate the effort adjustment factor produces an estimate of:
11.3 programmer months
The estimation of Development time is:
D = cb * Ed
* b = 2.5*11.3**.38 = 6.3 months
Assuming that the programmers and analysts cost $8,000 per person month, the total cost is:
Dollars = 11.3 PM * 8000/PM = $90,400.
84. 83
Project Legacy:
Expectations:
Going into the project we anticipated our database access class would be the
most difficult portion of our software to develop.
We knew our project scope was large, and we anticipated spending quite a bit of
time to get all of our project implemented and working bug free.
We thought page navigation would be as simple as replacing the current page
with the new one. And did not think about dealing with persistent menus or UI
elements.
We thought that using cloud storage (Google Drive) for project storage will allow
for shared access to updated code.
Realizations during development:
It turns out that developing our page navigation was more complicated than
expected. This is due to the fact that we embed interfaces within other interfaces,
this requires maintaining instances of high level interface controllers, which are
accessible program wide.
The project scope is massive and we have found many things that we needed to
add to the software, such as a cash register view for creating transactions, the
Page Navigator class for switching between embedded interfaces.
In the end we had to slightly modify some of our initial requirements to be able to
complete the project on time. An example of this is our database backup, initially
we planned to create a formatted log files storing each of our tables, but during
development we found this to be far more time consuming than anticipated,
therefore we went with entire database file backups instead, which results in
similar functionality but less required development time.
Multiple members accessing and saving code at the same time has resulted in
many duplicate/conflicting file errors and at times entire project corruption, which
required manually transporting our code into a new project file.