...

type 【即納・国内在庫】 EAGLE イエロー EYE製 (イーグルアイ) 09

by user

on
Category: Documents
11

views

Report

Comments

Transcript

type 【即納・国内在庫】 EAGLE イエロー EYE製 (イーグルアイ) 09
Case Study
Sizing natural language/UML requirements for Web and
Mobile applications using COSMIC FSM
1
1
2,1
Asma Sellami , Mariem Haoues , Hanêne Ben-Abdallah , Alain Abran
4
5
3
6
Arlan Lesterhuis , Charles Symons , Sylvie Trudel
1
Mir@cl Laboratory, University of Sfax, Tunisia
2
King Abdulaziz University, Jeddah, KSA
3
Ecole de technologie supérieure - University of Québec, Montréal, Canada
[email protected], [email protected], [email protected], [email protected]
[email protected], [email protected], [email protected]
“This case study is published by COSMIC by kind permission of the authors; it has not been formally reviewed by
the Measurement Practices Committee. Readers are invited to send any comments directly to the authors.”
1
Table of Contents
Table of Contents .................................................................................................................................... 2
1
Restaurant Management System Requirements ............................................................................ 3
1. 1 Context ......................................................................................................................................... 3
1. 2 Hardware Components ................................................................................................................ 3
1. 3 Software-Hardware Interactions .................................................................................................. 4
1. 4 Software Requirements ................................................................................................................ 4
2
A.
FUR - Functional User Requirements ...................................................................................... 4
C.
NFR - Non-Functional Requirements ..................................................................................... 16
D.
PRC - Project Requirements and Constraints ........................................................................ 17
MEASUREMENT STRATEGY PHASE ................................................................................................ 18
2. 1 Measurement Purpose ............................................................................................................... 18
2. 2 Measurement Scope................................................................................................................... 18
2. 3 Identification of Functional Users .............................................................................................. 18
2. 4 Other measurement strategy parameters ................................................................................. 18
3
A.
Level of granularity ................................................................................................................ 18
B.
Decomposition ...................................................................................................................... 19
THE MAPPING PHASE .................................................................................................................... 20
3. 1 Identification of the Software Triggering Events........................................................................ 20
3. 2 Identification of the functional processes .................................................................................. 21
3. 3 Identification of objects of interest, data groups, and data attributes ...................................... 22
4
THE MEASUREMENT PHASE .......................................................................................................... 24
4. 1 Functional size measured from FUR - natural language............................................................. 24
A.
For Mobile app ...................................................................................................................... 24
B.
For web application ............................................................................................................... 26
C.
For the whole system ............................................................................................................ 35
4. 2 Functional size measured from FUR - UML textual description ................................................. 35
A.
Using Action-Type.................................................................................................................. 35
REFERENCE ............................................................................................................................................ 43
APPENDIX A - Structured use case documentation format Using Action-Type .................................... 44
2
1
1
RESTAURANT MANAGEMENT SYSTEM REQUIREMENTS
1. 1 Context
This Case Study presents the measurement results of applying the COSMIC-FSM method (Version
4.0.1) to the “Restaurant Management System”. This system is composed of hardware and software
components. The software component named “Resto-Sys” includes two parts: a mobile app and a web
application.
The “Restaurant Management System” requirements are documented in a technical report of the final
project of study for the Professional Master's Degree at the University of Sfax-Tunisia (Mhadhbi 2013).
This case study is structured as follows:
 Chapter 1 presents the background for the “Restaurant Management System” case study. It
provides different representations of Hardware/Software requirements. The focus of this
chapter is especially on the description of the Functional User Requirements as documented
in natural language, UML use case diagrams, and the textual descriptions of use cases using
action-type (see the explanation in Appendix A).
 Chapter 2 presents the measurement strategy phase, including: measurement purpose and
scope, functional users, level of granularity and decomposition.
 Chapter 3 presents the mapping phase including: triggering events, functional processes, data
groups, data attributes, and objects of interest.
 Chapter 4 presents the measurement phase. The measurement results are provided in two
ways:
(i) a direct application of COSMIC-FSM method on FUR described in natural language in
section 4.1; and
(ii) an application of COSMIC-FSM method on the action-type of use case actions in section
4.2.
1. 2 Hardware Components
As shown in Figure 1, the hardware configuration of “Restaurant Management System” is composed
of:



A database server allowing a high storage capacity (the interaction with the DB Server is
outside the scope of this case).
A Web server that responds to the users (waiter and-or administrator) requests to access to
the “Resto-Sys”.
A Web Client and (a) Smartphone Client(s) allowing the users to access to the “Resto-Sys”.
Figure 1 Hardware Configuration
3
1. 3 Software-Hardware Interactions
The “Resto-Sys” is composed of two parts: a mobile app and a web application:


The “Resto-Sys” ensures communication between the Smartphone client (the waiter) and the
Web client (the administrator).
The web client maintains the database (that it is included in the DB server).
The “Resto-Sys” application includes the following functionalities:






The Smartphone client receives the waiter’s username and password.
The Web server retrieves data from the DB and provides the required data to the Smartphone
client.
The Smartphone client can maintain a customer's order (by adding or modifying an order).
The Web client receives the administrator’s username and password.
The Web server retrieves data from the DB and provides the required data to the Web client.
The Web client can maintain the required data, see the FUR in section 1.4 A
1. 4 Software Requirements
According to (COSMIC 2015), software requirements are classified into three categories: Functional
User Requirements (FUR), Non-Functional Requirements (NFR), and Project Requirements and
Constraints (PRC). FUR express “what the software shall do in terms of tasks and services”. NFR
include “any requirement for a hardware/software system or for a software product, including how it
should be developed and maintained and how it should perform in operation, except any functional
user requirement for the software”. PRC describe “how a software system project should be managed
and resourced or constraints that affect its performance”.
A.
FUR - Functional User Requirements
In this section, the FUR for the “Resto-Sys” are identified. First, the FUR are described in natural
language. Then, those same FUR are modeled with UML Use Case diagrams. Each use case in a
UML Use Case diagram is next detailed in textual descriptions of use cases using action-type as
presented in Appendix A.
a. FUR expressed in natural language
The “Resto-Sys” includes the following tasks:



Order management: This task allows the waiter to add, and-or modify an order via
Smartphone. It also allows the administrator to delete an order. During working hours,
waiters (Smartphone) and the administrator (web client) are continuously connected.
Account management: This task involves users’ management, and it enables access to
application with a username and a password.
Menu Items management: This task allows the management of item families and
classification of items into item families.
his
the
the
the
The “Resto-Sys” involving Mobile app must establish the following functionalities:


FUR 1- Logon: the waiter must be logged on to the web application using his Smartphone.
Each waiter has a username and a password.
FUR 2 - Maintain Order: the waiter can add and-or modify an order. He takes an order by
selecting the customer’s place, the table where he is installed, and the chosen items. Each
customer is installed at a table and can request a set of items such as: fruit salad, orange
juice, etc.
The “Resto-Sys” involving Web application must establish the following functionalities:


FUR 3 - Logon: The administrator must be logged on to access the web application using a
username and a password.
FUR4 - Maintain User: The administrator can add a user (waiter). He/she can view and-or
modify a user (waiter) data. He/She can delete an existing user and-or view the users list.
4






FUR5 - Maintain Item: The administrator can add a new item by entering the necessary data
for an item. He/She can also view, modify an item. He/She can delete an existing item and
view the items list. Each item is classified into a single item family.
FUR6 - Maintain Item family: The administrator can add a new item family by entering the
required data. He/She may also view and-or modify an item family data. He/she can delete an
existing item family, and view the list of existing item families. Examples of item family: juice,
salad, soda, etc.
FUR 7 - Maintain Place: The restaurant consists of a set of places defined by a limited area
in the restaurant (terrace, non-smoking room, etc.). The administrator can add a new place.
He/She may also view and-or modify a place data. He/She can delete an existing place, and
view the list of existing places.
FUR 8 - Maintain Table: The administrator can add a new table. He/She may also view andor modify a specific table data. He/She can delete an existing table and view the table list to
know the table state (unoccupied, occupied or reserved). Each table is installed in a specific
place.
FUR 9 -Maintain menu items: The administrator can add new menu items. He/she may also
view and-or modify a menu items data. He/she can delete an existing menu items and view
the menu items list. For example: Chinese food, dessert, etc.
FUR 10: Manage the List of Orders: The administrator can view the list of orders and may
delete a customer’s order.
These functionalities will be detailed in the following sections using UML use case diagrams.
B. FUR expressed in UML Use case diagram
Identification of Actors. Users of the “Resto-Sys” are the administrator and the waiter.
 Administrator: is the manager of the application. He/She can manage the entire “Resto-Sys”
and specify users’ rights. The administrator can access to the web application via his
username and his password.
 Waiter: is responsible for customers' orders. He/She can access to the mobile app via his
Smartphone and using his username and his password.
Identification of Use Cases. Based on the FUR listed in section A) a., Table 1 Fout! Verwijzingsbron
niet gevonden.lists the identified Use Cases.
Table 1 Use cases Identification
Actor
Waiter
Administrator
Global Use Cases
Logon
Maintain Order
Logon
Maintain Data
Maintain Order
Detailed Use Cases
FUR 1: Logon
FUR 2: Maintain Order
FUR 3: Logon
FUR 4: Maintain User
FUR 5: Maintain Item
FUR 6: Maintain Item family
FUR 7: Maintain Place
FUR 8: Maintain Table
FUR 9: Maintain Menu Items
FUR 10: Manage the List of
Orders
The global use case diagram, as presented in Figure 2, identifies the main functionalities provided by
the system “Resto-Sys”. Thus, the administrator and the waiter must be logged on before maintaining
data and orders. Each use case identified in the global use case diagram can include one or more use
cases. As an example, the use case “Maintain Data” in the global use case diagram is detailed using
six use cases: “Maintain User”, “Maintain Item”, “Maintain Item family”, “Maintain Place”, “Maintain
Table”, and “Maintain Menu Items”. The use case “Maintain Order” for “Administrator” actor is also
detailed using “Manage the List of Orders” (Figure 3).
5
Figure 2 Global Use Case Diagram
Figure 3 Detailed Use Case Diagram for “Maintain Data” and “Maintain Order” use cases
Use Cases Textual Descriptions. Each detailed use case identified in Table 1 is represented using a
use case textual description (see Appendix A). Note that a use case textual description represents a
discrete unit of interaction between the system “Resto-Sys” (mobile and web applications) and its
users (Waiter and Administrator).
FUR 1 Use case “Logon” mobile app
6
Name: <Logon>
Description: <This use case describes how the Waiter logs into the web application>
Actors: <Primary actor: Waiter>
Begin
MS /* Main scenario */
1. <Waiter><Expletive><The Waiter requests for a connection to the web
application using his Smartphone>
2. <System><Expletive><The mobile app asks the Waiter to enter his username
and password>
3. <Waiter><Request><The waiter enters his username and password using his
Smartphone> [<Waiter ID>]
4. <System><Response & Request & Request ><The web application checks the
validity of username and password> [<Waiter ID>] [<Log status>] [<Log status>]
/*If the username and password are valid, the waiter is connected*/
End
ES /* Error scenario */
Begin <Username and password are incorrect, begin at Num '4'>
5. <System><Response><The mobile app displays the message “the username
and the password are invalid.”>
End
End use case
FUR 2: Use case “Maintain Order”
Name: <Maintain Order>
Description: <This use case allows the waiter to add or modify a customer's order>
Actors: <Primary actor: Waiter>
Begin
MS /* Main Scenario */
Add an Order
Begin
1. <System><Expletive><when the waiter logged on, the list of restaurant options is
displayed>.
2. <Waiter><Request><The waiter presses the option “Add a new order”>[<Order
Data>].
3. <System><Response & Request><The system displays the list of places> [Place
Data> & <Place Data>].
4. <Waiter><Request & Response><The waiter chooses the place where the
customer is installed> [<Place ID> & <Place ID>].
5. <System>< Request & Response ><The system displays the list of tables>
[<Table Data> & <Table Data>].
6. <Waiter><Request& Response><The waiter chooses the table where the
customer is installed> [<Table ID> & <Table ID>].
7. <System>< Request & Response><The system checks if there is any active
order for the selected table and changes the order state from active to closed>
[<Table ID> & <Table ID>].
8. <System><Request & Response><The system displays the list of item families>
[<Item family data> & <Item family data>].
9. <Waiter><Request & Response><The waiter chooses the item families based on
the items requested by the customer> [<Item family ID> & <Item family ID>].
10. <System><Request & Response><The system displays the list of items
according to the selected Item families> [<Item Data> & <Item Data>].
11. <Waiter><Request & Response><The waiter selects the items requested by the
customer and specify for each item the recommended quantity and customer's
comment> [<Order Items>] [<Order Items>].
12. <System><Request><The system creates the new order> [<Order Data>].
End
AS /*Alternative Scenario*/
7
Modify an Order
Begin
1. <System><Expletive><when the waiter logged on, the list of restaurant options is
displayed>.
2. <Waiter><Request><The waiter presses the option “Modify an order”>[<Order
Data>].
3. <System><Response & Request><The system displays the list of places> [Place
Data>&<Place Data>].
4. <Waiter><Request & Response><The waiter chooses the place where the
customer is installed> [<Place ID>&<Place ID>].
5. <System>< Request & Response ><The system displays the list of tables >
[Table Data>&<Table Data>].
6. <Waiter><Request & Response><The waiter chooses the table where the
customer is installed> [<Table ID>&<Table ID>].
7. <System><Request & Response><The system displays the list of items
recommended by the customer with their quantities and comments> [<Order
Items>&<Order Items>].
8. <Waiter><Request & Response><The waiter adds/deletes the new/existing item,
modifies items' quantities or modifies items' comments> [<Order Items>&<Order
Items>].
9. <System><Request><The system updates the order data> [<Order Data>].
End
ES /* Error Scenario */
Begin<Orders list is empty, begin at Num '2' in the alternative scenario>
2.1 <System><Response><The system displays the message “Orders list is empty”>
/* The scenario restarts at point 1. */
End
End use case
FUR 3: Use case “Logon” web application
Name: <Logon>
Description: <This use case describes how the Administrator logs into the system>
Actors: <Primary actor: Administrator>
Begin
MS /* Main scenario */
1. <Administrator><Expletive><The Administrator requests for a connection to the
system>
2. <System><Expletive><The system asks the Administrator to enter his username
and password>
3. <Administrator><Request><The Administrator introduces his username and
password> [<Administrator ID>]
4. <System><DataRecovery><The system checks the validity of username and
password> [<Administrator ID>]
/*If the username and password are valid, the Administrator is connected*/
End
ES /* Error scenario */
Begin <Username and password are incorrect, begin at Num '4'>
5. <System><Response><The system displays the message “the username and
the password are invalid.”>
End
End use case
FUR 4: Use case “Maintain User”
Name: <Maintain User >
Description: <This use case allows users update>
Actors: <Primary actor: Administrator>
Begin
8
MS /* Main Scenario*/
Add a User
1. <Administrator><Expletive><The administrator requests to add a new user>.
2. <System><Expletive><The system displays the user form and requires the
administrator to enter the necessary data for adding a user>.
3. <Administrator><Request><The administrator enters the user data> [<Waiter
Data>].
4. <System><Expletive><The system checks that all required data are entered
correctly>.
5. <System><DataPersist><The system adds the new user> [<Waiter Data>].
AS /* Alternative Scenario */
View User Data
1. <Administrator><Request><The administrator selects to view the list of waiters>
[<Waiter Data>].
2. <System><DataRecovery><The system retrieves the list of users> [<Waiter
Data>].
3. <System><Response><The system displays the list of users> [<Waiter Data>].
4. <Administrator><Request><The administrator selects the desired user> [<Waiter
ID>].
5. <System><DataRecovery><The system retrieves user data from the Database>
[<Waiter Data>].
6. <System><Response><The system displays the data of the selected user>
[<Waiter Data>].
Modify User Data
1. <Administrator><Request><The administrator selects to view the list of waiters>
[<Waiter Data>].
2. <System><DataRecovery><The system retrieves the list of users> [<Waiter
Data>].
3. <System><Response><The system displays the list of users> [<Waiter Data>].
4. <Administrator><Request><The administrator chooses the user to be modified>
[<Waiter ID>].
5. <System><DataRecovery><The system retrieves user data from Database>
[<Waiter Data>]
6. <Administrator><Response><The system displays user data> [<Waiter Data>].
7. <Administrator><Request><The administrator modifies user data that can be
changed> [<Waiter Data>].
8. <System><DataPersist><The system save the change> [<Waiter Data>].
Delete a User
1. <Administrator><Request><The administrator selects to view the list of waiters>
[<Waiter Data>].
2. <System><DataRecovery><The system retrieves the list of users> [<Waiter
Data>].
3. <System><Response><The system displays the list of users> [<Waiter Data>].
4. <Administrator><Request><The administrator chooses the user to be deleted>
[<Waiter ID>].
5. <System><DataPersist><The system deletes the selected user> [<Waiter ID>].
ES /* Error Scenario */
Begin<User already exists, begin at Num '5' in the main scenario>
5.1 <System><Response><The system displays the message “User already exists”>
/* The scenario restarts at point 2. */
End
Begin<The users list is empty, begin at Num '3' in the alternative scenario 'View User
Data'>
3.1<System><Response><The system displays the message “The users list is empty”>
/* The scenario restarts at point 1. */
9
End
Begin<The users list is empty, begin at Num '3' in the alternative scenario “Delete a
User”>
3.1<System><Response><The system displays the message “The users list is empty”>
/* The scenario restarts at point 1. */
End
End use case
FUR 5: Use case “Maintain item”
Name: <Maintain item>
Description: <This use case allows the administrator to add, modify, view and delete an
item>
Actors: <Primary actor: Administrator>
Begin
MS /* Main Scenario */
Add an Item
1. <Administrator><Expletive><The administrator asks for adding a new item>.
2. <System><Expletive><The system displays the item form and asks the
administrator to enter the necessary data for adding an item>.
3. <Administrator><Request><The administrator enters the data of the item and
instructs the system to validate the addition> [<Item Data>].
4. <System><Expletive><The system checks that all required data are entered
correctly>.
5. <System><DataPersist><The system adds the new item> [<Item Data>].
AS /* Alternative Scenario */
View Item Data
1. <Administrator><Request><The administrator selects to view the items’ list>
[<Item Data>].
2. <System><DataRecovery><The system retrieves the list of items> [<Item
Data>].
3. <System><Response><The system displays the list of items> [<Item Data>].
4. <Administrator><Request><The administrator selects the desired item> [<Item
ID>].
5. <System><DataRecovery><The system retrieves the item data from the
Database> [<Item Data>].
6. <System><Response><The system displays the selected item data> [<Item
Data>].
Modify an Item
1. <Administrator><Request><The administrator selects to view the items’ list>
[<Item Data>].
2. <System><DataRecovery><The system retrieves the list of items> [<Item
Data>].
3. <System><Response><The system displays the list of items> [<Item Data>].
4. <Administrator><Request><The administrator selects the item to be modified>
[<Item ID>].
5. <System><DataRecovery><The system retrieves the item data from the
Database> [<Item Data>].
6. <System><Response><The system displays the data of the selected item to the
administrator> [<Item Data>].
7. <Administrator><Request><The administrator modifies the desired fields (name,
price, quantity, image, etc.) and asks the system to update the data of the
selected item> [<Item Data>].
8. <System><DataPersist><The system saves the change> [<Item Data>].
Delete an Item
10
1. <<Administrator><Request><The administrator selects to view the items’ list>
[<Item Data>]
2. <System><DataRecovery><The system retrieves the list of items> [<Item
Data>].
3. <System><Response><The system displays the list of items> [<Item Data>].
4. < Administrator><Request><The administrator selects the item to be deleted>
[<Item ID>].
5. <System><DataPersist><The system deletes the selected item> [<Item ID>].
ES /* Error Scenario */
Begin<Item already exists, begin at Num '5' in the main scenario>
5.1 <System><Response><The system displays the message “Item already exists”>
/* The scenario restarts at point 2. */
End
Begin<The items list is empty, begin at Num '2' in the alternative scenario 'View Item
data'>
2.1 <System><Response><The system displays the message “The items list is
empty”>
/* The scenario restarts at point 1. */
End
End use case
FUR 6: Use case “Maintain Item Family”
Name: <Maintain Item Family>
Description: <This use case allows the administrator to add, modify, view and delete an
item family>
Actors: <Primary actor: Administrator>
Begin
MS /* Main Scenario */
Add an Item Family
1. <Administrator><Expletive><The administrator requests for adding a new item
family>.
2. <System><Expletive><The system displays the item family form and asks the
administrator to enter the necessary data for adding an item family>.
3. <Administrator><Request><The administrator enters the data of the item and
instructs the system to validate the addition> [<Item Family Data>].
4. <System><Expletive><The system checks that all required data are entered
correctly>.
5. <System><DataPersist><The system adds the new item family> [<Item Family
Data>].
AS /* Alternative Scenario */
View Item Family Data
1. <Administrator><Request><The administrator selects to view the item families’
list> [<Item Families Data>].
2. <System><DataRecovery><The system retrieves the item families list> [<Item
Family Data>].
3. <System><Response><The system displays the item families list> [<Item Family
Data>].
4. <Administrator><Request><The administrator selects the desired item family>
[<Item family ID>].
5. <System><DataRecovery><The system retrieves the item family data from the
Database> [<Item family Data>].
6. <System><Response><The system displays the selected Item family data to the
administrator> [<Item family Data>].
Modify an Item Family
1. <Administrator><Request><The administrator selects to view the item families’
list> [<Item Families Data>].
11
2. <System><DataRecovery><The system retrieves the item families list> [<Item
Family Data>].
3. <System><Response><The system displays the item families list> [<Item Family
Data>].
4. <Administrator><Request><The administrator selects the item family to be
modified> [<Item family ID>].
5. <System><DataRecovery><The system retrieves the item family data from the
Database> [<Item family Data>].
6. <System><Response><The system displays the modification interface> [<Item
family Data>].
7. <Administrator><Request><The administrator modifies the desired fields and
instructs the system to update the item family data>[<Item family Data>].
8. <System><DataPersist><The system saves the change> [<Item family Data>].
Delete an Item Family
1. <Administrator><Request><The administrator selects to view the item families’
list> [<Item Families Data>].
2. <System><DataRecovery><The system retrieves the item families list> [<Item
Family Data>].
3. <System><Response><The system displays the item families list> [<Item Family
Data>].
4. <Administrator><Request><The administrator selects the item family to be
deleted> [<Item family ID>].
5. <System><DataPersist><The system deletes the selected item family> [<Item
family ID>].
ES /* Error Scenario */
Begin<Item Family already exists, begin at Num '5' in the main scenario>
5.1 <System><Response><The system displays the message “Item family already
exist”>
/* The scenario restarts at point 2. */
End
Begin<Item families list is empty, begin at Num '3' in the alternative scenario 'View
Item family data>
3.1<System><Response><The system displays the message “Item families list is
empty”>
/* The scenario restarts at point 2. */
End
End use case
FUR 7: Use case Maintain place
Name: <Maintain place>
Description: <This use case is used to add, view, modify and delete a place>
Actors: <Primary actor: Administrator>
Begin
MS /* Main scenario */
Add a Place
1. <Administrator><Expletive><The administrator requests for adding a new place>.
2. <System><Expletive><The system displays the place form and asks the
administrator to enter the necessary data for a place>.
3. <Administrator><Request><The administrator enters the place data> [<Place
Data>].
4. <System><Expletive><The system checks that all required data are entered
correctly>.
5. <System><DataPersist><The system adds the new place> [<Place Data>].
12
AS /* Alternative Scenario */
View a Place Data
1. <Administrator><Request><The administrator selects to view the places list>
[<Place Data>].
2. <System><DataRecovery><The system retrieves the places list> [<Place Data>].
3. <System><Response><The system displays the places list > [<Place Data>].
4. <Administrator><Request><The administrator selects the desired place> [<Place
ID>].
5. <System><DataRecovery><The system retrieves the Place data from the
Database> [<Place Data>].
6. <System><Response><The system displays the data of the selected place to the
Administrator> [<Place Data>].
Modify a Place
1. <Administrator><Request><The administrator selects to view the places list>
[<Place Data>]
2. <System><DataRecovery><The system retrieves the list of places> [<Place
Data>].
3. <System><Response><The system displays the list of places> [<Place Data>].
4. <Administrator><Request><The administrator chooses the place to be modified>
[<Place ID>].
5. <System><DataRecovery><The system retrieves the place data from the
Database> [<Place data>].
6. <System><Response><The system displays the data of the selected Place to
the administrator> [<Place Data>].
7. <Administrator><Request><The administrator modifies the place data> [<Place
Data>].
8. <System><DataPersist><The system saves the change> [<Place Data>].
Delete a Place
1. <Administrator><Request><The administrator selects to view the places list>
[<Place Data>].
2. <System><DataRecovery><The system retrieves the list of places> [<place
Data>].
3. <System><Response><The system displays the list of places> [<Place Data>].
4. <Administrator><Request><The administrator chooses the place to be deleted>
[<Place ID>].
5. <System><DataPersist><The system deletes the selected place> [<Place ID>].
ES /* Error Scenario */
Begin<Place already exist, begin at Num '5' in the main scenario>
5.1 <System><Response><The system displays the message “Place already exists”>
/* The scenario restarts at point 3. */
End
Begin<Places list is empty, begin at Num '2' in the alternative scenario “View a place
data”>
2.1 <System><Response><The system displays the message “Places list is empty”>
/* The scenario restarts at point 1. */
End
End use case
FUR 8: Use case “Maintain Table”
Name: <Maintain Table>
Description: <This use case allows the administrator to add, view, modify and delete a
table>
Actors: <Primary actor: Administrator>
Begin
MS /* Main Scenario */
13
Add a Table
1. <Administrator><Expletive><The administrator requests to add a new table>.
2. <System><Expletive><The system displays the table form and asks the
administrator to enter the necessary data for adding a table>.
3. <Administrator><Request><The administrator enters all the table data> [<Table
Data>].
4. <System><Expletive><The system checks that all required data are entered
correctly>.
5. <System><DataPersist><The system adds the new table> [<Table Data>].
AS /* Alternative Scenario */
View Table Data
1. <Administrator><Request><The administrator selects to view the tables list>
[<Table Data>].
2. <System><DataRecovery><The system retrieves the tables list> [<Table Data>].
3. <System><Response><The system displays the tables list > [<Table Data>].
4. <Administrator><Request><The administrator selects the desired table> [<Table
ID>].
5. <System><DataRecovery><The system retrieves the Table Data from the
Database> [<Table ID>].
6. <System><Response><The system displays the data of the selected table to the
administrator> [<Table Data>].
Modify Table Data
1. <Administrator><Request><The administrator selects to view the tables list>
[<Table Data>].
2. <System><DataRecovery><The system retrieves the tables list> [<Table Data>].
3. <System><Response><The system displays the tables list > [<Table Data>].
4. <Administrator><Request><The administrator chooses the table> [<Table ID>].
5. <System><DataRecovery><The system retrieves the Table data from the Data
base> [<Table Data>].
6. <System><Response><The system displays the data of the selected table to the
administrator> [<Table Data>].
7. <Administrator><Request><The administrator modifies the table data> [<Table
Data>].
8. <System><DataPersist><The system saves the change> [<Table Data>].
Delete a Table
1. <Administrator><Request><The administrator selects to view the tables list>
[<Table Data>].
2. <System><DataRecovery><The system retrieves the tables list> [<Table Data>].
3. <System><Response><The system displays the tables list > [<Table Data>].
4. <Administrator><Request><The administrator chooses the table to be deleted>
[<Table ID>].
5. <System><DataPersist><The system deletes the selected table> [<Table ID>].
ES /* Error Scenario */
Begin<Table already exists, begin at Num '5' in the main scenario>
5.1 <System><Response><The system displays the message “Table already exists”>
/* The scenario restarts at point 3. */
End
Begin<Tables list is empty, begin at Num '3' in the alternative scenario 'View Table
Data>
3.1<System><Response><The system displays the message “Tables list is empty”>
/* The scenario restarts at point 1. */
End
Begin<Tables list is empty, begin at Num '3' in the alternative scenario 'Delete a
Table>
3.1<System><Response><The system displays the message “Tables list is empty”>
14
/* The scenario restarts at point 1. */
End
End use case
FUR 9: Use case “Maintain Menu Items”
Name: <Maintain Menu Items>
Description: <This use case allows the administrator to maintain a menu items>
Actors: <Primary actor: Administrator>
Begin
MS /* Main Scenario */
Add a Menu Items
1. <Administrator><Expletive><The administrator requests to add a new menu
items>.
2. <System><Expletive><The system displays the menu items form and asks the
administrator to enter the necessary data for adding a menu items>.
3. <Administrator><Request><The administrator enters the menu items data>
[<Menu Items Data>].
4. <System><Expletive><The system checks that all required data are entered
correctly>.
5. <System><DataPersist><The system adds the new menu items > [<Menu Items
Data>].
AS /* Alternative Scenario */
View a Menu Items Data
1. <Administrator><Request><The administrator selects to view the menu items list
option> [<Menu Item Data>].
2. <System><DataRecovery><The system retrieves the menu items’ list> [<Menu
Items Data>].
3. <System><Response><The system displays the menu items’ list > [<Menu Items
Data>].
4. <Administrator><Request><The administrator selects the desired menu items>
[<Menu Items ID>].
5. <System><DataRecovery><The system retrieves the menu items data from the
Database> [<Menu Items ID>].
6. <System><Response><The system displays the data of the selected menu items
to the administrator> [<Menu Items Data>].
Modify a Menu Items
1. <Administrator><Request><The administrator selects to view the menu items list
option> [<Menu Item Data>].
2. <System><DataRecovery><The system retrieves the menu items’ list> [<Menu
Items Data>].
3. <System><Response><The system displays the menu items’ list > [<Menu Items
Data>].
4. <Administrator><Request><The administrator selects the desired menu items>
[<Menu Items ID>].
5. <System><DataRecovery><The system retrieves the menu items data from the
Database> [<Menu Items data>].
6. <System><Response><The system displays the data of the selected menu items
to the administrator> [<Menu Items Data>].
7. <Administrator><Request><The administrator modifies the menu items data that
can be changed> [<Menu Items Data>].
8. <System><DataPersist><The system saves the change> [<Menu Items Data>].
Delete a Menu Items
1. <Administrator><Request><The administrator selects to view the menu items list
option> [<Menu Item Data>].
15
2. <System><DataRecovery><The system retrieves the menu items’ list> [<Menu
Items Data>].
3. <System><Response><The system displays the menu items’ list > [<Menu Items
Data>].
4. <Administrator><Request><The administrator selects the desired menu items >
[<Menu Items ID>].
5. <System><DataPersist><The system deletes the menu items > [<Menu Items
ID>].
ES /* Error Scenario */
Begin<Menu items already exist, begin at Num '5' in the main scenario>
5.1 <System><Response><The system displays the message “Menu items already
exist”>
/* The scenario restarts at point 3. */
End
Begin<The Menu items list is empty, begin at Num '3' in the alternative scenario 'View
Menu Items Data>
3.1<System><Response><The system displays the message “The Menu items list is
empty”>
/* The scenario restarts at point 2. */
End
Begin<The Menu items list is empty, begin at Num '3' in the alternative scenario
“Delete a Menu items”>
3.1<System><Response><The system displays the message “The Menu items list is
empty”>
/* The scenario restarts at point 2. */
End
End use case
FUR 10: Use case “Manage the List of Orders”
Name: <Manage the List of Orders>
Description: <This use case allows to view the list of orders and delete a customer’s
order>
Actors: <Primary actor: Administrator>
Begin
MS /* Main Scenario */
View the List of Orders
1. <Administrator><Request><The administrator selects to view the orders list>
[<Order Data>].
2. <System><DataRecovery><The system retrieves the orders list> [<Order
Data>].
3. <System><Response><The system displays the orders list> [<Order Data>].
AS /* Alternative Scenario */
Delete an Order
4. <Administrator><Request><The administrator selects the order to be deleted
from the orders list> [<Order ID>].
5. <System><DataPersist><The system deletes the order> [<Order ID>].
ES /* Error Scenario */
Begin<Orders list is empty, begin at Num '3' in the main scenario>
3.1 <System><Response><The system displays the message “Orders list is
empty”>
/* The scenario restarts at point 1. */
End
16
C.
NFR - Non-Functional Requirements
Non-functional requirements define some quality requirements such as: performance, usability and
security. The mobile app interface must be easy to use, simple and clear. Moreover, the web
application must be compatible with any operating system, easy to use, understandable; with a “good
response time”. It is also evident that “Resto-Sys” (including web and mobile applications) requires the
presence of an internet connection.
D.
PRC - Project Requirements and Constraints
The PRC address types of constraints surrounding the software development project, such as the
competing demands of time, cost, and scope limitations on the project resources needed;
dependencies on other projects, data storage space, etc.
17
2
2
MEASUREMENT STRATEGY PHASE
2. 1 Measurement Purpose
The purpose of the measurement is to determine the size of the “Resto-Sys” software on the basis of
its Functional User Requirements, as specified in Chapter 1 of this case study, and then estimate the
development efforts for the mobile app and the web application separately.
2. 2 Measurement Scope
The scope is all functionality as specified in the Functional User Requirements for the software as
described in section 1.4 A, the interaction with the DB Server is outside the scope. The “Resto-Sys”
software is in the application layer. The FUR specify decomposition of its software in a mobile app
component and a web application component.
2. 3 Identification of Functional Users
The human functional users of the “Resto-Sys” are the administrator and the waiter.
 The Administrator: is the manager of the application. He is entitled to manage the entire
“Resto-Sys” and specify users and their individual rights.
 The Waiter: is responsible for adding or modifying the customers’ orders.
Note. As the interaction with the DB Server is outside the scope of this case the DB Server is not
an actor of “Resto-Sys”, rather it is the physical implementation of the web application’s persistent
storage.
Figure 4 presents the contextual diagram for the “Resto-Sys” showing all its functional users.
X E
E
E X
X
Functional User
(Waiter)
E
X
Mobile
app
Web
application
W
Functional User
(Administrator)
R
Persistent
Storage
Figure 4 Contextual diagram
2. 4 Other measurement strategy parameters
A. Level of granularity
The FUR of the “Resto-Sys” are at two levels of granularity. The first level of granularity is that of the
Use Case global diagram (Figure 2). At this level, the data movements cannot be observed. For such
18
cases, a COSMIC approximation method can be applied (COSMIC 2015b). However, since each use
case identified in the first level can be detailed in the second level (such as Maintain Data which is
detailed in Figure 3), the required level to apply COSMIC is where use cases are detailed using their
textual description. More specifically, actions in a use case can be associated with the COSMIC data
movement, as their level of granularity is the standard level, the ‘functional process level of
granularity’..
B. Decomposition
Figure 5 presents the decomposition for the “Resto-Sys”. The mobile app interacts with the Web
server via eXit/Entry data movement. The web server can require data to be stored or retrieved to/from
persistent storage. Here, the architecture used to implement this system is 2-tier architecture. The two
major components are: the Mobile app and the Web Server.
Mobile App
E
X
X
E
Web Server
Figure 5 Decomposition
19
3
3
THE MAPPING PHASE
3. 1 Identification of the Software Triggering Events
From the FUR, the following triggering events are identified. For each functional process, there is only
one triggering event (see Table 2).
Table 2 Triggering Event Identification
FUR
FUR 1: Logon
Functional Processes
FP 1: Logon
Triggering Events
The waiter access to the logon form
FUR 2:
Maintain Order
FP 2: Add an Order
The waiter adds a new order
FP 3: Modify an Order
FP 4: Logon
FP 5: Add a User
FP 6: View Users List
FP 7: View a User data
FP 8: Modify User Data
FP 9: Delete a User
FP 10: Add an Item
FP 11: View Items List
FP 12: View an Item Data
FP 13: Modify an Item
FP 14: Delete an Item
FP 15: Add an Item Family
FP 16: View Item Families List
FP 17: View an Item Family
Data
FP 18: Modify an Item Family
FP 19: Delete an Item Family
FP 20: Add a Place
FP 21: View Places List
FP 22: View a Place Data
FP 23: Modify a Place
FP 24: Delete a Place
FP 25: Add a Table
FP 26: View Tables List
FP 27: View a Table Data
FP 28: Modify Table Data
FP 29: Delete a Table
FP 30: Add a Menu Items
FP 31: View Menu Items List
FP 32: View a Menu Items Data
FP 33: Modify a Menu Items
FP 34: Delete a Menu Items
The waiter modifies an order
FP 35: View the List of Orders
The administrator views the list of orders
FP 36: Delete an Order
The administrator deletes an order
FUR 3: Logon
FUR 4:
Maintain User
FUR 5:
Maintain Item
FUR 6:
Maintain Item
Family
FUR 7:
Maintain Place
FUR 8:
Maintain Table
FUR 9:
Maintain Menu
Items
FUR 10:
Manage the
List of Orders
The administrator access to the logon form
The administrator adds a user
The administrator asks for the users list
The administrator asks for a user data
The administrator modifies a user data
The administrator deletes a user
The administrator adds a new item
The administrator views the items list
The administrator views the item data
The administrator modifies an item
The administrator deletes an item
The administrator adds a new item family
The administrator views the item families list
The administrator views an item family data
The administrator modifies an item family
The administrator deletes an item family
The administrator adds a place
The administrator views the places list
The administrator views a place data
The administrator modifies a place
The administrator deletes a place
The administrator adds a table
The administrator views the tables list
The administrator views a table Data
The administrator modifies a table data
The administrator deletes a table
The administrator adds a Menu Items
The administrator views the Menu Items list
The administrator views a Menu Items data
The administrator modifies a Menu Items
The administrator deletes a Menu Items
20
3. 2 Identification of the functional processes
From the FUR, the following functional processes are identified (see Table 3).
Table 3 Functional Processes Identification
FUR
FUR 1: Logon
FUR 2:Maintain Order
FUR 3: Logon
FUR 4: Maintain User
FUR 5: Maintain Item
FUR 6: Maintain Item Family
FUR 7: Maintain Place
FUR 8: Maintain Table
FUR 9: Maintain Menu Items
FUR 10: Manage the List of Orders
Functional Processes
FP 1: Logon
FP 2: Add an Order
FP 3: Modify an Order
FP4: Logon
FP 5: Add a User
FP 6: View Users List
FP 7: View a User Data
FP 8: Modify User Data
FP 9: Delete a User
FP 10: Add an Item
FP 11: View Items List
FP 12: View an Item Data
FP 13: Modify an Item
FP 14: Delete an Item
FP 15: Add an Item Family
FP 16: View Item Families list
FP 17: View an Item Family Data
FP 18: Modify an Item Family
FP 19: Delete an Item Family
FP 20: Add a Place
FP 21: View a Places List
FP 22: View a Place Data
FP 23: Modify a Place
FP 24: Delete a Place
FP 25: Add a Table
FP 26: View Tables List
FP 27: View a Table Data
FP 28: Modify Table Data
FP 29: Delete a Table
FP 30: Add a Menu Items
FP 31: View Menu Items List
FP 32: View a Menu Items Data
FP 33: Modify a Menu Items
FP 34: Delete a Menu Items
FP 35: View the List of Orders
FP 36: Delete an Order
21
3. 3 Identification of objects of interest, data groups, and data attributes
From the FUR, 10 objects of interest are identified. These are listed in Table 4 with their data groups
and data attributes.
Table 4 List of Objects of Interest, Data Groups, and Data attributes
FUR
Objects of
Interest
Data Groups
FUR 1
FUR 4
Data attributes
Waiter Data
username, password,
name, phone_number,
address, userstate
Log status
userstate
Waiter ID
username, password
Administrator Data
username, password,
name, phone_number,
address, userstate
Administrator ID
username, password
Log status
userstate
Table Data
table number, place
number, state, capacity
Table ID
table number
Item family Data
item family number,
menu items number
designation
Item family ID
item family number
Waiter
FUR 3
Administrator
FUR 8
Table
FUR 6
Item family
FUR 5
Item
FUR 7
Place
FUR 2
FUR 10
Order
Item Data
item number,
item family number
designation,
image,
price,
quantity
Item ID
item number
Place Data
place number, name
Place ID
Order ID
place number
order number,
order number,
table number,
order status,
date,
time,
Order Data
Example
username: alx84
password: 123
name: Alex
phone_number: 22234567
address: Sfax, Tunisia
userstate: connected
username: Alx84
password: 123
username: adm84
password: 456
name: Bill
phone_number: 59875444
address: Sfax, Tunisia
username: adm84
password: 456
userstate: connected
table number: 1
place number: 1
state: occupied
capacity: 2
table number: 1
item family number: 1
designation: Juice
menu items number: 1
item family number: 2
designation: soda
menu items number:1
item family number: 1
item number: 1
item family number: 1
designation: orange juice
image: orange.jpg
price: 1 D
quantity: 30
item number: 2
item family number: 2
designation: coca cola
image: coca.jpg
price: 2 D
quantity: 100
item number: 1
place number: 1
name: non-smoking
place number: 1
order number: 20
order number: 20
table number: 1
order status: active
date: 05/07/2016
time: 8:00 pm
22
Order Items
FUR 9
Menu Items ID
Menu Items
From
FUR 1 to
FUR 10
Messages
Menu Items Data
E/C message
name
order number,
item number,
quantity,
comment
menu items number
menu items number,
description
Message description
name: Alex
order number: 20
item number: 1
quantity: 3
comment: none
item number: 2
quantity: 1
comment: with ice
menu items number: 1
menu items number: 1
description: dessert
Message description:
“Orders list is empty”
23
4
4
THE MEASUREMENT PHASE
4. 1 Functional size measured from FUR - natural language
A. For Mobile app
The mobile app includes the functional processes (FP1, FP2, and FP 3). In this section, we give a
detailed measurement of the functional size of the mobile app.
FP1: Logon
Triggering event: The waiter access to the logon form
Functional
User
Waiter
Waiter
Sub-Process Description
Enter username and
password
Provide actor data to the web
application
Receive log status
(Connected)
The mobile app log status
(Not connected)
The mobile app displays
Error/Confirmation messages
from the web application
Objects
of
interest
Data Group
Data
Movement
Type
CFP
Waiter ID
Waiter
E
1
Waiter ID
Waiter
X
1
Waiter
E
1
Waiter
E
1
Messages
X
1
Log status
(Connected)
Log status
(Not connected)
E/C Message
Total size = 5 CFP
FP 2: Add an Order
Triggering event: The waiter adds a new order
Functional
User
Waiter
Waiter
Waiter
Waiter
Waiter
Sub-Process Description
The waiter presses the
option “Add a new order”
The web application returns
the list of places
The mobile app displays the
list of places to the waiter
The waiter chooses the place
where the customer is
installed
The mobile app sends the
selected place to the web
application
The web application returns
the list of tables
The mobile app displays the
list of tables to the waiter
The waiter chooses the table
where the customer is
installed
The mobile app sends the
selected table to the web
application
Data Group
Objects of
interest
Data
Movement
Type
CFP
Order Data
Order
E
1
Place Data
Place
X
1
Place Data
Place
E
1
Place ID
Place
E
1
Place ID
Place
X
1
Table Data
Table
E
1
Table Data
Table
X
1
Table ID
Table
E
1
Table ID
Table
X
1
24
FP 2: Add an Order
Triggering event: The waiter adds a new order
Functional
User
Waiter
Waiter
Waiter
Waiter
Sub-Process Description
The web application checks
if there is any active order for
the selected table
The web application changes
the order state from active to
closed
The web application returns
the item family list
The mobile app displays the
item family list to the waiter
The waiter selects the item
family based on the items
requested by the customer
The mobile app sends the
selected item family to the
web application
The web applications returns
the list of items according to
the selected Item families
The mobile app displays the
list of items to the waiter
The waiter selects the items
required by the customer and
specify for each item the
recommended quantity and
customer's comment
The mobile app sends the
selected items, the
recommended quantities and
customer's comments to the
web application
The web application creates
the new order
Data Group
Objects of
interest
Data
Movement
Type
CFP
Table ID
Table
E
1
Table ID
Table
X
1
Item family
E
1
Item family
X
1
Item family
ID
Item family
E
1
Item family
ID
Item family
X
1
Item Data
Item
E
1
Item Data
Item
X
1
Order Items
Order
E
1
Order Items
Order
X
1
Order Data
Order
E
1
Item family
data
Item family
data
Total size = 20 CFP
FP 3: Modify an Order
Triggering event: The Waiter modifies an order
Functional
User
Waiter
Waiter
Waiter
Sub-Process Description
The waiter presses the
option “Modify an order”
The web application returns
the list of places
The mobile app displays the
list of places to the waiter
The waiter chooses the place
where the customer is
installed
The mobile app sends the
selected place to the web
application
Data Group
Objects of
interest
Data
Movement
Type
CFP
Order Data
Order
E
1
Place Data
Place
X
1
Place Data
Place
E
1
Place ID
Place
E
1
Place ID
Place
X
1
25
FP 3: Modify an Order
Triggering event: The Waiter modifies an order
Functional
User
Waiter
Waiter
Waiter
Waiter
Waiter
Sub-Process Description
The web application returns
the list of tables
The mobile app displays the
list of tables to the waiter
The waiter chooses the table
where the customer is
installed
The mobile app sends the
selected table to the web
application
The web application retrieves
the list of items
recommended by the
customer with their quantities
and comments
The mobile app displays the
items recommended by the
customer with their quantities
and comments to the waiter
The waiter adds/deletes the
new/existing item, modifies
items' quantities or modifies
items' comments
The mobile app sends the
modified items to the web
application
The web application updates
the order data
The mobile app displays
Error/Confirmation messages
from the web application
Data Group
Objects of
interest
Data
Movement
Type
CFP
Table Data
Table
E
1
Table Data
Table
X
1
Table ID
Table
E
1
Table ID
Table
X
1
Order Items
Order
E
1
Order Items
Order
X
1
Order Items
Order
E
1
Order Items
Order
X
1
Order Data
Order
E
1
E/C
Message
Messages
X
1
Total size = 15 CFP
The total functional size of the mobile app is the sum of the sizes of its three functional processes
(FP1, FP2, and FP3), that is:
5 CFP + 20 CFP + 15 CFP = 40 CFP
B. For web application
The web application includes 33 functional processes (from FP4 to FP 36). In this section, we give a
detailed measurement of the functional size of the web application.
X
FP 4: Logon
Triggering event: The administrator access to the logon form
Functional
User
Administrator
Administrator
Sub-Process Description
Data Group
Enter username and
password
The web application reads
username and password
The web application displays
Administrator
ID
Administrator
ID
E/C
Data
Movement
Type
CFP
Administrator
E
1
Administrator
R
1
Messages
X
1
Objects of
interest
26
Error/Confirmation
messages
Message
Total size = 3 CFP
FP 5: Add a User (Web application)
Triggering event: The administrator adds a user (waiter)
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator enters the
user data
The web application adds
the new user
the web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Waiter Data
Waiter
E
1
Waiter Data
Waiter
W
1
E/C
Message
Messages
X
1
Total size = 3 CFP
FP 6: View the Users list
Triggering event: The administrator views the users list
Functional
User
Administrator
Administrator
Administrator
Sub-Process Description
The administrator selects to
view the users list
The web application retrieves
the Users list
The web application displays
the Users list
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Waiter Data
Waiter
E
1
Waiter Data
Waiter
R
1
Waiter Data
Waiter
X
1
E/C
Message
Messages
X
1
Total size = 4 CFP
FP 7: View a User data
Triggering event: The administrator views a user data
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator selects the
desired user (Waiter)
The web application retrieve
user data from the Database
The web application displays
the data of the selected
waiter
Data Group
Objects of
interest
Data
Movement
Type
CFP
Waiter ID
Waiter
E
1
Waiter Data
Waiter
R
1
Waiter Data
Waiter
X
1
Total size = 3 CFP
FP 8: Modify User Data
Triggering event: The administrator modifies user data
Functional
User
Administrator
Sub-Process Description
The administrator modifies
waiter data that can be
changed
The web application saves
the change
Data Group
Objects of
interest
Data
Movement
Type
CFP
Waiter Data
Waiter
E
1
Waiter Data
Waiter
W
1
Total size = 2 CFP
27
FP 9: Delete a User
Triggering event: The administrator deletes a user
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator chooses
the user to be deleted
The web application deletes
the selected waiter
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Waiter ID
Waiter
E
1
Waiter ID
Waiter
W
1
E/C
Message
Messages
X
1
Total size = 3 CFP
FP10: Add an Item
Triggering event: The administrator adds a new item
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator enters the
data of the item
The web application adds the
new item
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Item Data
Item
E
1
Item Data
Item
W
1
E/C
Message
Messages
X
1
Total size = 3CFP
FP 11: View the items list
Triggering event: The administrator views the items list
Functional
User
Administrator
Administrator
Administrator
Sub-Process Description
The administrator selects to
view the items list
The web application retrieves
the items list
The web application displays
the items list
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Item Data
Item
E
1
Item Data
Item
R
1
Item Data
Item
X
1
E/C
Message
Messages
X
1
Total size = 4 CFP
FP 12: View an Item data
Triggering event: The administrator views an item data
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator selects the
desired item
The web application retrieves
the item data from the
Database
The web application displays
the data of the selected item
to the administrator
Data Group
Objects of
interest
Data
Movement
Type
CFP
Item ID
Item
E
1
Item Data
Item
R
1
Item Data
Item
X
1
Total size = 3 CFP
28
FP13: Modify an item
Triggering event: The administrator modifies an item
Functional
User
Administrator
Sub-Process Description
The administrator modifies
the desired fields (name,
price, quantity, image, etc.)
and asks the web application
to update the data of the item
The web application save the
change
Objects of
interest
Data Group
Data
Movement
Type
CFP
Item Data
Item
E
1
Item Data
Item
W
1
Total size = 2 CFP
FP14: Delete an Item
Triggering event: The administrator deletes an item
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator selects the
item to be deleted
The web application deletes
the selected item
The web application displays
Error/Confirmation messages
Objects of
interest
Data Group
Data
Movement
Type
CFP
Item ID
Item
E
1
Item ID
Item
W
1
E/C
Message
Messages
X
1
Total size = 3 CFP
FP 15: Add an item family
Triggering event: The Administrator adds a new item family
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator enters the
data of the item and
instructs the web application
to validate the addition
The web application adds
the new item family
The
web
application
displays Error/Confirmation
messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Item Family
Data
Item Family
E
1
Item Family
Data
Item Family
W
1
E/C Message
Messages
X
1
Total size = 3 CFP
FP 16: View the Item families list
Triggering event: The administrator views the item families list
Functional
User
Administrator
Administrator
Administrator
Sub-Process Description
Data Group
The administrator selects to
view the item families list
The web application retrieves
the item families list
The web application displays
the item families list
The web application displays
Error/Confirmation messages
Item Family
Data
Item Family
Data
Item Family
Data
E/C
Message
Data
Movement
Type
CFP
Item Family
E
1
Item Family
R
1
Item Family
X
1
Messages
X
1
Objects of
interest
Total size = 4 CFP
29
FP17: View Item family data
Triggering event: The administrator views an item family data
Functional
User
Administrator
Administrator
Data
Movement
Type
CFP
Item Family
E
1
Item Family
Data
Item Family
R
1
Item Family
Data
Item Family
X
1
Sub-Process Description
Data Group
The administrator selects the
desired Item Family
The web application retrieves
the Item Family data from the
Database
The web application displays
the data of the selected Item
Family to the administrator
Item Family
ID
Objects of
interest
Total size = 3 CFP
FP 18: Modify an item family
Triggering event: The administrator modifies an item family
Functional
User
Administrator
Sub-Process Description
The administrator modifies
the desired fields (name,
image, color) and instructs
the web application to update
the item family data
The web application saves
the change
Data Group
Objects of
interest
Data
Movement
Type
CFP
Item family
Data
Item Family
E
1
Item family
Data
Item Family
W
1
Total size = 2 CFP
FP 19: Delete an item family
Triggering event: The administrator deletes an item family
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator selects the
family items to be deleted
The web application deletes
the selected family item
The web application displays
Error/Confirmation messages
Data Group
Item family
ID
Item family
ID
E/C
Message
Data
Movement
Type
CFP
Item Family
E
1
Item Family
W
1
Messages
X
1
Objects of
interest
Total size = 3 CFP
FP 20: Add a place
Triggering event: The administrator adds a place
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator adds the
place data
The web application adds the
new place
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Place Data
Place
E
1
Place Data
Place
W
1
E/C
Messages
X
1
Total size = 3 CFP
30
FP 21: View the Places list
Triggering event: The administrator views the places list
Functional
User
Administrator
Administrator
Administrator
Sub-Process Description
The administrator selects to
view the places list
The web application retrieves
the Places list
The web application displays
the Places list
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Place Data
Place
E
1
Place Data
Place
R
1
Place Data
Place
X
1
E/C
Message
Messages
X
1
Total size = 4 CFP
FP 22: View a Place data
Triggering event: The administrator views the place data
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator selects the
desired place
The web application retrieves
the Place data from the
Database
The web application displays
the data of the selected
place to the administrator
Data Group
Objects of
interest
Data
Movement
Type
CFP
Place ID
Place
E
1
Place Data
Place
R
1
Place Data
Place
X
1
Total size = 3 CFP
FP 23: Modify a place
Triggering event: The administrator modifies a place data
Functional
User
Administrator
Sub-Process Description
The administrator modifies
the place data that can be
changed
The web application save the
change
Data Group
Objects of
interest
Data
Movement
Type
CFP
Place Data
Place
E
1
Place Data
Place
W
1
Total size = 2 CFP
FP 24: Delete a Place
Triggering event: The administrator deletes a place
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator chooses
the place to be deleted
The web application deletes
the selected place
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Place ID
Place
E
1
Place ID
Place
W
1
E/C
Message
Messages
X
1
Total size = 3 CFP
31
FP25: Add a table
Triggering event: The administrator adds a table
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator adds the
table data
The web application adds the
new table
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Table Data
Table
E
1
Table Data
Table
W
1
E/C
Message
Messages
X
1
Total size = 3 CFP
FP 26: View the Tables list
Triggering event: The administrator views the tables list
Functional
User
Administrator
Administrator
Administrator
Sub-Process Description
The administrator selects to
view the tables list
The web application retrieves
the Tables list
The system displays the
Tables list
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Table Data
Table
E
1
Table Data
Table
R
1
Table Data
Table
X
1
E/C
Message
Messages
X
1
Total size = 4 CFP
FP 27: View table data
Triggering event: The administrator views table data
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator selects the
desired table
The web application retrieves
the Table data from the
database
The web application displays
the data of the selected table
to the administrator
Data Group
Objects of
interest
Data
Movement
Type
CFP
Table ID
Table
E
1
Table Data
Table
R
1
Table Data
Table
X
1
Total size = 3 CFP
FP 28: Modify table data
Triggering event: The administrator modifies table data
Functional
User
Administrator
Sub-Process Description
The administrator modifies
the table data
The web application save the
change
Data Group
Objects of
interest
Data
Movement
Type
CFP
Table Data
Table
E
1
Table Data
Table
W
1
Total size = 2 CFP
32
FP29: Delete a table
Triggering event: The administrator deletes a table
Functional
User
Administrator
Administrator
Sub-Process Description
The administrator chooses
the table to be deleted
The web application deletes
the selected table
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Table ID
Table
E
1
Table ID
Table
W
1
E/C
Message
Messages
X
1
Total size = 3 CFP
FP 30: Add a Menu Item
Triggering event: The administrator adds a Menu Items
Functional
User
Administrator
Administrator
Sub-Process Description
Data
Group
The administrator enters the
Menu Items Data
The web application add the
new Menu Items Data
The web application displays
Error/Confirmation messages
Menu Items
Data
Menu Items
Data
E/C
Message
Data
Movement
Type
CFP
Menu Items
E
1
Menu Items
W
1
Messages
X
1
Objects of
interest
Total size = 3 CFP
FP 31: View the Menu Item list
Triggering event: The Administrator views the Menu Items list
Functional
User
Administrator
Administrator
Administrator
Sub-Process Description
Data Group
The administrator selects to
view the menu Items list
The web application retrieves
the Menu Items list
The web application displays
the Menu Items list
The web application displays
Error/Confirmation messages
Menu Items
Data
Menu Items
Data
Menu Items
Data
E/C
Message
Data
Movement
Type
CFP
Menu Items
E
1
Menu Items
R
1
Menu Items
X
1
Messages
X
1
Objects of
interest
Total size = 4 CFP
FP 32: View a Menu Item data
Triggering event: The Administrator views a Menu Items data
Functional
User
Administrator
Sub-Process Description
Data Group
The administrator selects the
desired Menu Items
The web application retrieve
the Menu Items Data
The web application displays
the Data of the selected
Menu Items to the
administrator
Menu Items
ID
Menu Items
Data
Menu Items
Data
Data
Movement
Type
CFP
Menu Items
E
1
Menu Items
R
1
Menu Items
X
1
Objects of
interest
Total size = 3 CFP
33
FP 33: Modify a Menu Item
Triggering event: The administrator modifies a Menu Items
Functional
User
Administrator
Sub-Process Description
The administrator modifies
the Menu Item Data that
can be changed
The web application saves
the change
Data
Group
Objects of
interest
Data
Movement
Type
CFP
Menu Items
Data
Menu Items
E
1
Menu Items
Data
Menu Items
W
1
Total size = 2 CFP
FP 34: Delete a Menu Item
Triggering event: The administrator deletes a Menu Items
Functional
User
Administrator
Administrator
Sub-Process Description
Data Group
The administrator selects the
desired Menu Items
The web application deletes
the selected Menu Items
The web application displays
Error/Confirmation messages
Menu Items
ID
Menu Items
ID
E/C
Message
Data
Movement
Type
CFP
Menu Items
E
1
Menu Items
W
1
Messages
X
1
Objects of
interest
Total size = 3 CFP
FP 35: Manage the List of Orders
Triggering event: The administrator views the list of orders
Functional
User
Administrator
Administrator
Administrator
Sub-Process Description
The administrator selects to
view the orders list
The web application retrieves
the orders data
The web application displays
the orders list
The web application displays
Error/Confirmation messages
Data Group
Objects of
interest
Data
Movement
Type
CFP
Order Data
Order
E
1
Order Data
Order
R
1
Order Data
Order
X
1
E/C
Message
Messages
X
1
Total size = 4 CFP
FP 36: Delete an order
Triggering event: The administrator deletes an order
Functional
User
Administrator
Sub-Process Description
The administrator selects the
order to be deleted
The web application deletes
the selected order
Data Group
Objects of
interest
Data
Movement
Type
CFP
Order ID
Order
E
1
Order ID
Order
W
1
Total size = 2 CFP
The total functional size of the web application is the sum of the sizes of its 33 functional processes,
that is:
3 CFP + 3 CFP + 4 CFP + 3 CFP + 2 CFP+ 3 CFP + 3 CFP + 4 CFP + 3 CFP +2 CFP + 3 CFP +
3 CFP + 4 CFP + 3 CFP + 2 CFP + 3 CFP + 3 CFP + 4 CFP + 3 CFP + 2 CFP + 3 CFP + 3 CFP +
4 CFP + 3 CFP + 2 CFP+ 3 CFP + 3 CFP + 4 CFP + 3 CFP + 2 CFP + 3 CFP + 4 CFP + 2 CFP
= 99 CFP
34
C. For the whole system
The total size of “Resto-Sys” is then equal to the sum of functional sizes of mobile and web
applications (40 CFP + 99 CFP) = 139 CFP.
4. 2 Functional size measured from FUR - UML textual description
A. Using Action-Type
Table 5 presents the mapping of action-type in use case description with COSMIC data movements.
Table 5 Equivalence between action-type in use case description and COSMIC concepts in
terms of Data movements
Actions-types in Use
case description
Action-type = Expletive
Action-type = Request
Action-type = Response
Actions-types description
An action that does not lead
to an exchange of data.
An action representing the act
of asking for something, it is
directed by an actor.
An answer or a reply sent
after a Request, it is directed
by the system.
Action-type =
DataRecovery
An action that allows the
retrieving of data.
Action-type =
DataPersist
An action allowing the
recording of data.
COSMIC concepts
CFP
Not applied
0 CFP
An Entry data movement
from the Functional user to
the software to be measured
An eXit data movement from
the software to be measured
to the Functional user
A Read data movement from
the persistent storage to the
software to be measured
A Write data movement from
the software to be measured
to the persistent storage
1 CFP
1 CFP
1 CFP
1 CFP
a. For mobile app
Table 6 presents the measurement results of the functional size of the mobile app based on the
Action-Type.
Table 6 Measurement Results-Using Action-Type (mobile app)
Functional
User
Requirements
FUR 1: Logon
Functional
Processes
FP 1:
Logon
Sub-Process Description
Action
Type
CFP
Enter username and password
Request
1
Provide actor data to the web
application
Response
1
Receive log status (Connected)
Request
1
Request
1
Response
1
Receive log status (Not
Connected)
Display Error/Confirmation
message
FS(FP 1: Logon) = 5 CFP
FUR 2:
Maintain Order
FP 2: Add
an order
The waiter presses the option
“Add a new order”
The web application returns the
list of places
The mobile app displays the list
of places to the waiter
Request
1
Response
1
Request
1
35
FP 3:
Modify an
order
The waiter chooses the place
Request
1
where the customer is installed
The mobile app sends the
selected place to the web
Response
1
application
The web application returns the
Request
1
list of tables
The mobile app displays the list
Response
1
of tables to the waiter
The waiter chooses the table
Request
1
where the customer is installed
The mobile app sends the
selected table to the web
Response
1
application
The web application checks if
there is any active order for the
Request
1
selected table
The web application changes the
Response
1
order state from active to closed
The web application returns the
Request
1
item family list
The mobile app displays the item
Response
1
family list to the waiter
The waiter selects the item
family based on the items
Request
1
requested by the customer
The mobile app sends the
selected item family to the web
Response
1
application
The web applications returns the
list of items according to the
Request
1
selected Item families
The mobile app displays the list
Response
1
of items to the waiter
The waiter selects the items
required by the customer and
specify for each item the
Request
1
recommended quantity and
customer's comment
The mobile app sends the
selected items, the
recommended quantities and
Response
1
customer's comments to the web
application
The web application creates the
Request
1
new order
FS(FP 2: Add an order) = 20 CFP
The waiter presses the
Request
1
option “Modify an order”
The web application returns
Response
1
the list of places
The mobile app displays the
Request
1
list of places to the waiter
The waiter chooses the place
where the customer is
Request
1
installed
36
The mobile app sends the
selected place to the web
Response
1
application
The web application returns
Request
1
the list of tables
The mobile app displays the
Response
1
list of tables to the waiter
The waiter chooses the table
where the customer is
Request
1
installed
The mobile app sends the
selected table to the web
Response
1
application
The web application retrieves the
list of items recommended by the
Request
1
customer with their quantities
and comments
The mobile app displays the
items recommended by the
Response
1
customer with their quantities
and comments to the waiter
The waiter adds/deletes the
new/existing item, modifies
Request
1
items' quantities or modifies
items' comments
The mobile app sends the
Response
1
modified items to the web
application
The web application updates
Request
1
the order data
The mobile app displays
Response
1
E/C messages from the web
application
FS(FP 3: Modify an order) = 15 CFP
The total functional size of the mobile app is the sum of the sizes of its three functional processes
(FP1, FP2, and FP3), that is:
5 CFP + 20 CFP + 15 CFP = 40 CFP
b. For web application
The following Table 7 presents the measurement results of the functional size of the web application
based on the Action-Type.
Table 7 Measurement Results-Using Action-Type (web application)
Functional
User
Requirements
FUR 3: Logon
Functional
Processes
FP 4:
Logon
Sub-Process Description
Enter username and password
The web application reads
username and password
Display Error/Confirmation
message
Action
Type
CFP
Request
DataRecovery
1
Response
1
1
FS(FP 4: Logon) = 3 CFP
37
FP 5: Add
a user
FP 6: View
the Users
list
FUR 4:
Maintain User
FP 7: View
User Data
FP 9:
Delete a
User
FP 10: Add
an Item
The Administrator enters the user
data (waiter)
The web application adds the new
user
Display Error/Confirmation
message
Request
1
DataPersist
1
Response
1
FS(FP 5: Add a User) = 3 CFP
The administrator selects to
Request
1
view the users list
The web application retrieves the
Data1
Users list
Recovery
The web application displays the
Response
1
Users list
Display Error/Confirmation
Response
1
messages
FS(FP 6: View the Users list) = 4 CFP
The Administrator selects the
Request
1
desired user (Waiter)
The web application retrieves user Data1
data from the Database
Recovery
The web application displays the
Response
1
data of the selected waiter
FS(FP 7: View User Data) = 3 CFP
The Administrator modifies the
1
Request
waiter data that can be changed
The web application saves the
1
DataPersist
change
FS(FP 8: Modify User Data) = 2 CFP
The Administrator chooses the
Request
1
waiter to be deleted
The web application deletes the
DataPersist
1
selected waiter
Display Error/Confirmation
Response
1
message
FS(FP 9: Delete a User) = 3 CFP
The Administrator enters the data
of the item
Request
1
The web application adds the new
item
DataPersist
1
Display Error/Confirmation
message
Response
1
FS(FP 10: Add an Item) = 4 CFP
FUR 5:
Maintain Item
FP 11:
View the
items list
FP 12:
View an
Item data
The administrator selects to
Request
1
view the items list
The web application retrieves the
Data1
items list
Recovery
The web application displays the
Response
1
items list
Display Error/Confirmation
Response
1
messages
FS(FP 11: View the items list) = 4 CFP
The Administrator selects the
Request
1
desired item
The web application retrieves the
Item data from the Data base
DataRecovery
1
38
FP 14:
Delete an
Item
FP 15: Add
an item
family
FP 16:
View the
Item
families
list
FUR 6:
Maintain Item
family
FP 17:
View an
Item family
data
FP 19:
Delete an
item family
The web application displays the
data of the selected Item to the
Response
1
Administrator
FS(FP 12: View an Item data) = 3 CFP
The Administrator modifies the
desired fields and asks the web
Request
1
application to update the data of
the item
The web application saves the
DataPersist
1
change
FS(FP 13: Modify an Item) = 2 CFP
The Administrator selects the item
Request
1
to be deleted
The web application deletes the
DataPersist
1
selected item
Display Error/Confirmation
Response
1
message
FS(FP 14: Delete an Item) = 3 CFP
The Administrator enters the data
of the item and instructs the web Request
1
application to validate the addition
The web application adds the new
DataPersist
1
item family
Display Error/Confirmation
Response
1
message
FS(FP 15: Add an item family) = 3 CFP
The administrator selects to
Request
1
view the item families list
The web application retrieves the
Data1
item families list
Recovery
The web application displays the
Response
1
item families list
Display Error/Confirmation
Response
1
messages
FS(FP 16: View the Item families list) = 4 CFP
The Administrator selects the
Request
1
desired Item family
The web application retrieves the
Item family data
DataRecovery
1
The web application displays the
data of the selected Item family to Response
1
the Administrator
FS(FP 17: View an Item family data) = 3 CFP
The Administrator modifies the
desired fields and instructs the web
Request
1
application to update the data of
the item family
The web application saves the
DataPersist
1
change
FS(FP 18: Modify an item family) = 2 CFP
The Administrator selects the
Request
1
family items to be deleted
The web application deletes the
DataPersist
1
selected family item
Display Error/Confirmation
Response
1
message
39
FP 20: Add
a Place
FP 21:
View the
Places list
FP 22:
View a
Place data
FS(FP 19: Delete an item family) = 3 CFP
The Administrator adds the place
Request
1
data
The web application adds the new
DataPersist
1
place
Display Error/Confirmation
Response
1
message
FS(FP 20: Add a Place) = 3 CFP
The administrator selects to
Request
1
view the places list
The web application retrieves the
Data1
Places list
Recovery
The web application displays the
Response
1
Places list
Display Error/Confirmation
Response
1
messages
FS(FP 21: View the Places list) = 4 CFP
The Administrator selects the
Request
1
desired place
The web application retrieves the
Place data from the Data base
FUR 7:
Maintain
Place
FP 25: Add
a Table
FUR 8:
Maintain
Table
FP 26:
View the
Tables list
FP 27:
View table
1
The web application displays the
data of the selected Place to the
Response
1
Administrator
FS(FP 22: View a Place data) = 3 CFP
The Administrator modifies the
place data that can be changed
FP 24:
Delete a
place
DataRecovery
Request
1
The web application saves the
DataPersist
1
change
FS(FP 23: Modify a place) = 2 CFP
The Administrator chooses the
Request
1
place to be deleted
The web application deletes the
DataPersist
1
selected place
Display Error/Confirmation
Response
1
message
FS(FP 24: Delete a place) = 3 CFP
The Administrator adds the table
Request
1
data
The web application adds the new
DataPersist
1
table
Display Error/Confirmation
Response
1
message
FS(FP 25: Add a Table) = 3 CFP
The administrator selects to
Request
1
view the tables list
The web application retrieves the Data1
Tables list
Recovery
The web application displays the
Response
1
Tables list
Display Error/Confirmation
Response
1
messages
FS(FP 26: View the Tables list) = 4 CFP
The Administrator selects the
Request
1
desired table
40
data
FP 29:
Delete a
Table
FP 30: Add
a Menu
Items
FP 31:
View the
Menu
Items list
FUR 9:
Maintain
Menu Items
FP 32:
View a
Menu
Items Data
FP 33:
Modify a
Menu
Items
FP 34:
Delete a
Menu
Items
FP 35:
The web application retrieves the
Table data from the database
DataRecovery
1
The web application displays the
data of the selected table to the
Response
1
Administrator
FS(FP 27: View table data) = 3 CFP
The Administrator modifies the
Request
1
table data
The web application saves the
DataPersist
1
change
FS(FP 28: Modify table data) =2 CFP
The Administrator chooses the
Request
1
table to be deleted
The web application deletes the
DataPersist
1
selected table
Display Error/Confirmation
Response
1
message
FS(FP 29: Delete a Table) = 3 CFP
The Administrator enters the menu
Request
1
items data
The web application adds the new
DataPersist
1
menu items
Display Error/Confirmation
Response
1
message
FS(FP 30: Add an Menu Items ) = 3 CFP
The administrator selects to
Request
1
view the menu Items list
The web application retrieves the
Data1
Menu Items list
Recovery
The web application displays the
Response
1
Menu Items list
Display Error/Confirmation
Response
1
messages
FS(FP 31: View the Menu Items list) = 4 CFP
The Administrator selects the
Request
1
desired menu items
The web application retrieves the
Data1
menu items data
Recovery
The web application displays the
data of the selected menu items to Response
1
the Administrator
FS(FP 32: View Menu items Data) = 3 CFP
The Administrator modifies the
menu items data that can be
Request
1
changed
The web application saves the
DataPersist
1
change
FS(FP 33: Modify a Menu items) = 2 CFP
The Administrator selects the
Request
1
desired menu items
The web application deletes the
DataPersist
1
selected menu items
Display Error/Confirmation
Response
1
message
FS(FP 34: Delete a Menu Items) = 3 CFP
The administrator selects to
Request
1
41
View the
List of
Orders
FUR 10:
Manage the
List of Orders
FP 36:
Delete an
order data
view the orders list
The web application retrieves the
Data1
orders data
Recovery
The web application displays the
Response
1
list of orders
Display Error/Confirmation
Response
1
message
FS(FP 35: View the List of Orders) = 4 CFP
The administrator selects the order
Request
1
to be deleted
The web application deletes the
DataPersist
1
selected order
FS(FP 36: View an order data)= 2 CFP
The total functional size of the web application is the sum of the sizes of its 33 functional processes,
that is:
3 CFP + 3 CFP + 4 CFP + 3 CFP + 2 CFP+ 3 CFP + 3 CFP + 4 CFP + 3 CFP + 2 CFP+ 3 CFP + 3
CFP +4 CFP + 3 CFP + 2 CFP + 3 CFP + 3 CFP + 4 CFP + 3 CFP + 2 CFP + 3 CFP + 3 CFP + 4
CFP + 3 CFP + 2 CFP+ 3 CFP + 3 CFP + 4 CFP + 3 CFP + 2 CFP + 3 CFP + 4 CFP + 2 CFP = 99
CFP
The total size of “Resto-Sys” is then equal to the sum of functional sizes of mobile and web
applications (40 CFP + 99 CFP) = 139 CFP, which is the same functional size as measured by
referring to the documented FUR in natural language.
42
REFERENCE
COSMIC (2015a) Guideline on Non-Functional & Project Requirements : How to consider nonfunctional and project requirements in software project performance measurement,
benchmarking and estimating.
COSMIC (2015b) Guideline for Early or Rapid COSMIC Functional Size Measurement by using
approximation approaches.
Haoues M, Sellami A, Ben-Abdallah H (2016) Functional Change Impact Analysis in Use Cases: An
Approach based on COSMIC Functional Size Measurement.
Mhadhbi S (2013) Conception et Développement d’un Système de Gestion Restaurant Mobile.
43
APPENDIX A - STRUCTURED USE CASE DOCUMENTATION FORMAT USING
ACTION-TYPE
Many individual proposals of textual descriptions are available to assist in documenting a Use Case
(UC). We proposed an extension of the UC textual description with the “Type” of an action which can
be: “Request”, “DataPersist”, “DataRecovery”, “Expletive”, or “Response” (Haoues et al. 2016). A
“Request” corresponds to an action representing the act of asking for something, it is directed by an
actor. A “Response” corresponds to an answer or a reply sent after a Request, it is directed by the
system. A “DataPersist” action corresponds to an action allowing the recording of data. An “Expletive”
action is used to get an action started but does not lead to an exchange of data.“DataRecovery” action
allows the retrieving of data.
The following documentation of a use case is provided in (Haoues et al. 2016).
Number:<unique ID assigned to a use case>
Name:<unique name assigned to a use case>
Level:<level of use case description>
Description:<a summary of use case purpose>
Actors:<Primary actor: actor that initiates the use case>
<Secondary actor: actor that participate within the use case>
Pre-condition:<a list of conditions that must be true to initialize the use case>
Post-condition (success):<state of the system if goal is achieved>
Post-condition (failure):<state of the system if goal is abandoned>
Relationship
[Include:<use cases in relation with this use case by "include">,Extend:<use cases
in relation with this use case by "extend">, Super use case:<list of subordinate use
cases of this use case>, Sub use case: <list of all use cases that specialize this use
case>]
Begin
MS /* Main scenario */
<Steps of the scenario from trigger to goal>
Begin
<NumAction> [<Pre-condition>] <Actor|System><Type: Request, DataPersist,
Expletive, Response, DataRecovery><Action Description> [<Int-Parameter>] [<OutParameter>]
End
AS /* Alternative scenario */
Begin<Event, begin at Num "action number">
<NumAction> [<Pre-condition>] <Actor|System><Type: Request, DataPersist,
Expletive, Response, DataRecovery><Action Description> [<Int-Parameter>] [<OutParameter>]
The main scenario back to NUM
End
ES /* Error scenario */
Begin<Event, begin at Num "action number">
<NumAction> [<Pre-condition>] <Actor|System><Type: Request, DataPersist,
Expletive, Response, DataRecovery><Action Description> [<Int-Parameter>] [<OutParameter>]
End
End Use Case
Special requirements:<list of non-functional requirements>
44
Fly UP