A Symons Mark II Function Point Counting Example

I provide, here clear explanations and a count of function points, using the Symons Mark II method.

We start by identifying the subprocesses (entry, exit, read, write) for each functional process; The size of a functional process is the sum of its data movements (entry, exit, read, write) and the size of a piece of software is the sum of the sizes of all of its functional processes.

So the Function Point Index (FPI) for an application is: FPI = Wi * SNi + We * SNe + Wo * SNo, where ‘S‘ means the sum over all Logical Transactions, and the industry average weights per Input Data Element Type, Data Entity Type Reference and Output Data Element Type are, respectively:

Now here is an example of this in practise, intended to demonstrate the practicalities of performing the count, see the Simmons counting point manual (CPM) for information about the rules used.

Specification:
Let us assume a data model for a simple software system intended to keep track of the sales, products, and stock (inventory) of a pizza restaurant.

The system should be able to have sales details entered, including the type and number of each product in each sale This allows a receipt to be printed for the customer.

It also allows the inventory(stock) to be automatically updated. It should be possible to add new products, delete existing products, or modify the recipe of a product. It should be possible to produce a product report listing all the products available.

As well as listing each product, this report will also show, for each product, the product no., the product description, its constituent item nos., item descriptions, and quantity used. A weekly report should be produced automatically, each Monday at 8am, showing the quantity of each product sold in the previous week.

The process of sending orders to suppliers is not shown in the model. This is because each authorised supplier has access to the restaurant system and is expected to dispatch a standard quantity, with its invoice note, when the stocks of any items which it supplies fall below the minimum order quantity. When a consignment arrives from a supplier, it should be possible to enter on the system the details of the items/quantities/prices, so that the inventory(stock) is automatically updated.

At the end of each month the accountant inspects the invoices and pays the bills. It should be possible for her to record that an invoice has been paid. Access to the system is through a single menu.

Generic assumptions:
1) This Function count was obtained using MkII version 1.3.1 of the CPM based on a project viewpoint, only logical transaction sizes are given since there is no data for effort.

2) As per rule 1 of the CPM, only functional requirements directly referenced in the user specification are considered, corrections are only made to provide such functionality therein.

3) Given that there is no historic data about effort required in previous systems, I have used the following industry standards weighing: 0.58 for Wi, 1.66 for We and 0.26 for E0.

4) The intention is to present an abstract, theoretical view of the major entities and relationships needed for management of electronic resources.

5) This pizza restaurant is not very service oriented and does not allow customers to mix and or match toppings.

6) This is a 'McDonald' style system where products are quantity controlled by weight.

Transactional Functions:
[a] Enter sale details (External input);

Assumptions:
1) Receipt number is automatically generated .

2) “Product_Description” is assumed to be a summary entry of about 60 characters, including the name

3)Product entity requires the attribute “Type_Of_Item”, to store category data, there is a distinction between the manufactured goods sold such as soft drinks and the pizzas that are created in-house.

Inputs:
1) Select new sale (control); User action expressed by selection of command [Sale: Receipt_No].

2) Select product type (business); User choses from categorised drop-down list of pizza related product types [Product: Type_Of_Item].

3) Select product “name” (business); User choses from a drop-down list of pizza related goods. [Product: Product_Description > Receipt_No & Product_No].

4) Select number of item (business); Customer may order 3 large margarita pizzas [Item_sale: Quantity_Sold].

5) Confirm sale (control); This is a recursive menu selection system.

Outputs:
1) Error/conformation (control); End of sales data interaction cycle.

Entities:
1) Sale; Occurrence of a sale recorded here [Write All data].

2) Item_sale; Functional relationship to sale entity (List of products for this sales) [Write all data].

3) Recipe; Required to determine the inventory items to be subtracted from the inventory_item entity [Read all data].

4) Inventory_item; Required to change the inventory(stock) level for items used [Read Item_No, Write Quantity_In_Stock] (Quantity of Item x - Recipe:Quantity_Used).

5) System; Provides the automatically generated sales receipt number and Date.

FPI count: (0.58*5) + (1.66 * 5) +(0.26*1) = 11.46

[b] Add new products (External input); Assumptions:
1) Product & item numbers are automatically generated.

2) The inventory included food items and related products such as recipe ingredients for the piazzas and both the can, boxes and plastic utensils.

Inputs:
1) Select new product (control); User action expressed by selection of command [Product: Product_No, Recipe: Item_no, Inventory_item: Item_no].

2) Select type of item (control); Required for product classification [Product: Type_Of_Item > Inventory_item: Type_Of_Item];

2a) Or enter new product type (control);

2b) Enter product type name (business); [Product: Type_Of_Item];

3) Enter product description (business); Product description [Product: Product_Description].

4) Select item (business); [Recipe: Product_no > Inventory_item: item_no].

4a) Or enter Item Description (business); Goods description, [Inventory_item: Item_Description].

4b) Enter stock level (business); [Inventory_item: Quantity_In_Stock].

4c) Enter item reorder level (business); [Inventory_item: Minimum_Order_Quantity].

5) Enter quantity (business); Quantity of the item per sales unit a bit ridiculous for products that do not require ingredients [Recipe: Quantity_Used].

6) Add ingredient to product (control); Optional, not all products require additional items.

6a) Enter Item Description (business); Good description, [Inventory_item: Item_Description].

4b) Enter stock level (business); [Inventory_item: Quantity_In_Stock].

4c) Enter item reorder level (business); [Inventory_item: Minimum_Order_Quantity].

Outputs:
1) Error/conformation (control); End of sales data interaction cycle.

Entities:
1) Product; Occurrence of a product recorded here [Write all data].

2) Recipe; Link entity, for the inventory required to deliver the project [Write all data].

3) Inventory_item; Stores the stock data for the goods ,[Write all data].

4) System; Provides the automatically generated product and item numbers..

FPI count: (0.58*14) + (1.66 * 4) +(0.26*1) = 15.02

[c] Delete existing products (External input); Assumptions:
1) Despite being required to make the system efficient, inventory control operations are not included here.

2) Here Delete refers to the recipe entry.

Inputs:
1) Select product deletion (control); User action expressed by selection of command.

2) Select product type (business); User choses from categorised drop-down list of pizza related product types [Product: Type_Of_Item].

3) Select product “name” (business); User choses from a drop-down list of pizza related goods. [Product: Product_Description > Receipt_No & Product_No].

4) Select deletion (control); “This will delete selected product. Continue [Y/N]”

Outputs:
1) Confirmation to user (control);

Entities:
1) Product; Occurrence of a product recorded here [Read all data];

2) Recipe; Stores the inventory data required for the product, [Read all data].

FPI count: (0.58*4) + (1.66 * 2)+ (0.26*1) = 5.9

[d] Modify product recipe (External input); Assumptions:
1) Recipe refers only to the ingredients and amounts required.

Inputs:
1) Select product Modification (control);

2) Select product type (business); User choses from categorised drop-down list of pizza related product types [Product: Type_Of_Item].

3) Select product “name” (business); User choses from a drop-down list of pizza related goods. [Product: Product_Description >Recipe: Product_No].

4) Select deletion (control); “This will delete selected item. Continue [Y/N]”

5) Change quantity of item (business); User choses from a drop-down list of pizza related goods. [Product: Product_Description > Recipe: Quantity_Used].

6) Add ingredient to product (control); Optional, not all products require additional items.

6a) Enter Item Description (business); Good description, [Inventory_item: Item_Description].

6b) Enter stock level (business); [Inventory_item: Quantity_In_Stock].

6c) Enter item reorder level (business); [Inventory_item: Minimum_Order_Quantity].

Outputs:
1) Confirmation to user (control);

Entities: 1) Product; Occurrence of a product recorded here [Read all data];

2) Recipe; Stores the inventory data required for the product, [Read all data].

FPI count: (0.58*9) + (1.66 * 2) (0.26*1) = 8.8

[e] Report all available products (External output);

Inputs:
1) Select Report products (control); User action expressed by selection of command.

Outputs:
1) Time and date;
2) Heading;
3) Product_No;
4) Product_Description;
5) Item_No;
6) Item_Description;
7) Quantity_Used;

Inventory_item: Type_Of_Item];

2a) Or enter new product type (control);

2b) Enter product type name (business); [Product: Type_Of_Item];

4) Select item (business); [Recipe: Product_no > Inventory_item: item_no].

4a) Or enter Item Description (business); Good description, [Inventory_item: Item_Description].

4b) Enter stock level (business); [Inventory_item: Quantity_In_Stock].

4c) Enter item reorder level (business); [Inventory_item: Minimum_Order_Quantity]. 5) Enter quantity received (business); Additional Quantity of the item [Invoice_item: Quantity_Added> Inventory_item: ].

Outputs:
1) Confirmation to user (control);

Entities:
1) Product; Occurrence of a product recorded here [Read all data];

2) Inventory_item; Stores the inventory data required for the product, [Read all data].

3) Invoice_item; Stores the inventory data required for the product, [Read all data].

FPI count: (0.58*9) + (1.66 * 4) (0.26*1) = 12.12

[i] Record payment of invoices (External input); Inputs:
1) Select orders (control);

2) Select product type (business); User choses from categorised drop-down list of pizza related product types [Inventory_item: Type_Of_Item].

3) Select product “name” (business); User choses from a drop-down list of pizza related goods. Inventory_item: Item_Description > Invoice_item: item_no ].

4) Select payment received (business); User records that an invoice has been paid.

Outputs:
1) Confirmation to user (control);

Entities:
1) Inventory_item; Stores the inventory data required for the product, [Read all data].

2) Invoice_item; Stores the inventory data required for the product, [Read all data].

3) Invoice; Occurrence of a consignment recorded here.

FPI count: (0.58*4) + (1.66 * 3) (0.26*1) = 7.56

Virtual system entity functions:
[a] Generate receipt number (business);
[b] Generate date and time stamp (business);
[c] Error reporting (control);
[d] Generation primary keys indexes (business);
[d] Process conformation (control)

I am the website administrator of the Wandle industrial museum (http://www.wandle.org). Established in 1983 by local people determined to ensure that the history of the valley was no longer neglected but enhanced awareness its heritage for the use and benefits of the community.

shuttle to Midway Beardstown .. Lockport Chicago limo O’Hare
In The News:

The FBI has issued a warning that scammers are impersonating doctors, police and banks using spoofed numbers as "smishing" texts surge nationwide.
Communities with unreliable internet service stand to gain after Amazon's Project Kuiper launched its first full batch of satellites into orbit April 28.
Tech expert Kurt “CyberGuy" Knutsson says unsubscribing from spam might actually backfire. Learn when to avoid it and stop junk effectively.
Tech expert Kurt “CyberGuy" Knutsson talks about how the first nonstop beating heart transplant, called zero ischemic time, at Taiwan hospital changes surgery.
Kurt “CyberGuy" Knutsson: FBI warns of "time-traveling" hackers.
Kurt “CyberGuy" Knutsson talks about a soft, vine-like robot called SPROUT that aids safe survivor rescues in collapsed buildings.
Health insurance giant Blue Shield of California confirmed it had been sharing private health data of 4.7 million users with Google for three years without even realizing it.
Delta and JetZero’s blended wing body aircraft marks a meaningful step toward a cleaner, quieter and more efficient future for air travel.
Recent reports show many common passwords can be cracked in literally seconds. Kurt the CyberGuy explains how to strengthen your passwords.
Stay up to date on the latest AI technology advancements and learn about the challenges and opportunities AI presents now and for the future.
Iron, a robot that stands 5 feet, 8 inches tall and weighs 154 pounds, combines advanced artificial intelligence with human-like movement and exceptional vision.
Hertz, the rental car giant, recently confirmed that customer information was exposed through a cyberattack on one of its software vendors.
There are a number of features with AirPods you may or may not know about to take your listening experience to the next level. Kurt the CyberGuy explains.
These 35 Chrome extensions have privacy and security concerns. Tech expert Kurt “CyberGuy" Knutsson says to delete them now.
Tech expert Kurt “CyberGuy" Knutsson says 329,000 mph fusion rocket promises to be fast, disruptive and enable deep-space missions.
Stay up to date on the latest AI technology advancements and learn about the challenges and opportunities AI presents now and for the future.
Tech expert Kurt “CyberGuy" Knutsson says a new autonomous AI is a game changer that also raises privacy risks. Is your data safe?
Tech expert Kurt “CyberGuy" Knutsson says robots and drones are revolutionizing fruit farming with faster picking and smarter handling.
Landmark Admin revises May 2024 cyberattack scope to show twice as many people were affected. Kurt “CyberGuy" Knutsson gives tips to help stay safe from an insurance data breach.
Tech expert Kurt “CyberGuy" Knutsson talks about how Yamaha’s hydrogen outboard motor could revolutionize boating with zero emissions.
Tech expert Kurt “CyberGuy" Knutsson reveals how to memorialize or remove a deceased loved one’s Facebook account and protect their digital legacy from misuse or scams.
Tech expert Kurt “CyberGuy" Knutsson says an Apple Watch saved psychiatrist Amanda Faulkner by detecting deadly leukemia early.
Scammers and fraudsters are increasingly targeting the most vulnerable, especially nursing homes and the personal data of their residents. Kurt the CyberGuy has safety tips.
Infected USB flash drives can spread malware among multiple organizations in ways that can easily bypass traditional security systems.
With a fully automated warehouse system and AI-powered robots, Ocado's Hive picks, packs and delivers grocery store orders in just a few minutes.

Downloading Spyware Removers: Think Before, not After

Just imagine: you are walking, say, towards your car, and... Read More

Twelve Things You Should Know to Save on Computer Software

Do you want to get quality software at a reasonable... Read More

When is a Software Engineer Not a Software Engineer?

The title of "software engineer" has got to be among... Read More

Microsoft Retail Management System (RMS) SQL Customization ? Overview for Programmer

Microsoft Retail Management System serves retail single store as well... Read More

A Symons Mark II Function Point Counting Example

I provide, here clear explanations and a count of function... Read More

CRM and Customer Life Cycle

Customer Relationship Management or CRM is a combination of enterprise... Read More

Microsoft CRM Implementation & Remote Support

We would like to give you pluses and minuses of... Read More

Great Plains Dexterity History and Programming Overview

As of now - Great Plains Dynamics/eEnterprise is transformed/renamed into... Read More

OS 101: Suggestions for Choosing an Operating System

An operating system (abbreviated OS) is essentially the path through... Read More

Microsoft Great Plains Chemicals & Paint Industry Implementation & Customization Notes

Microsoft Great Plains fits to majority of industries, in the... Read More

Reloading Windows XP

If you have been running Windows XP for a couple... Read More

Microsoft Great Plains Furniture & Fixtures ? Implementation & Customization Highlights

Microsoft Great Plains, former Great Plains Software Dynamics / eEnterprise... Read More

Lotus Domino: Reports and Connectors ? Crystal Reports, XML, ODBC/JDBC, OLE

Lotus Notes Domino is very efficient in electronic document workflow... Read More

Screenshots Vista Windows

Features Additionally, Vista will include many other new features.Aero Vista... Read More

Benefits of Integrating Online Chat Software with CRM

Customer Relationship Management (CRM) is a strategy and processes used... Read More

Lotus Domino: Application Integration ? A Programmer View

There are two approaches for application integration:? Programmer's approach ?... Read More

Spyware Protection: A Must for Any Home Computer

Now that spyware is the single most dangerous threat to... Read More

Corporate ERP: Microsoft Great Plains For The Plant In Brazil ? Overview For CIO

Microsoft Business Solutions Great Plains as new ERP for multinational... Read More

Microsoft Great Plains GL: General Ledger ? Overview For Consultant

Microsoft Business Solutions Great Plains is marketed for mid-size companies... Read More

How to Choose the BEST Charting Software

I suggest that you do not spend a lot of... Read More

Introduction To ISDN, Part III: PAP

Introduction To ISDN, Part III: Configuring PPP PAP AuthenticationNow we... Read More

Save Your Resources - Combine Your IM Clients

There are so many different programs that clutter up your... Read More

Microsoft Great Plains in Construction & Building ? Implementation & Customization Highlights

Microsoft Great Plains could be tuned and setup to fit... Read More

Kick-Ass Performance For Your PC? Its Easy

Is your PC is slow and wimpy? Then you need... Read More

Think Of This

Think of this, first we had the HAM Radio, then... Read More

Green Bay Hummer H2 SUV rentals ..