Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural...

44
1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami 1 , Mariem Haoues 1 , Hanêne Ben-Abdallah 2,1 , Alain Abran 3 Arlan Lesterhuis 4 , Charles Symons 5 , Sylvie Trudel 6 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.”

Transcript of Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural...

Page 1: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

1

Case Study Sizing natural language/UML requirements for Web and

Mobile applications using COSMIC FSM

Asma Sellami1, Mariem Haoues

1, Hanêne Ben-Abdallah

2,1, Alain Abran

3

Arlan Lesterhuis4, Charles Symons

5, Sylvie Trudel

6

1Mir@cl Laboratory, University of Sfax, Tunisia

2King Abdulaziz University, Jeddah, KSA

3Ecole 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.”

Page 2: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

2

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

A. FUR - Functional User Requirements ...................................................................................... 4

C. NFR - Non-Functional Requirements ..................................................................................... 16

D. PRC - Project Requirements and Constraints ........................................................................ 17

2 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

A. Level of granularity ................................................................................................................ 18

B. Decomposition ...................................................................................................................... 19

3 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

Page 3: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

3

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

Page 4: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

4

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 his Smartphone. It also allows the administrator to delete an order. During working hours, the waiters (Smartphone) and the administrator (web client) are continuously connected.

Account management: This task involves users’ management, and it enables access to the application with a username and a password.

Menu Items management: This task allows the management of item families and the classification of items into item families.

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.

Page 5: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

5

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 and-or 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 Global Use Cases Detailed Use Cases

Waiter Logon FUR 1: Logon

Maintain Order FUR 2: Maintain Order

Administrator

Logon FUR 3: Logon

Maintain Data

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

Maintain Order 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).

Page 6: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

6

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

Page 7: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

7

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*/

Page 8: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

8

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

Page 9: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

9

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. */

Page 10: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

10

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

Page 11: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

11

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>].

Page 12: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

12

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>].

Page 13: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

13

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 */

Page 14: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

14

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”>

Page 15: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

15

/* 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>].

Page 16: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

16

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

Page 17: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

17

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.

Page 18: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

18

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.

Web

application

Mobile

app

Functional User

(Waiter)

Functional User

(Administrator)

E

E X

E

PersistentStorage

X

X E

X

W R

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

Page 19: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

19

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 Web Server

E X

EX

Figure 5 Decomposition

Page 20: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

20

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 Functional Processes Triggering Events

FUR 1: Logon FP 1: Logon 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 The waiter modifies an order

FUR 3: Logon FP 4: Logon The administrator access to the logon form

FUR 4: Maintain User

FP 5: Add a User The administrator adds a user

FP 6: View Users List The administrator asks for the users list

FP 7: View a User data The administrator asks for a user data

FP 8: Modify User Data The administrator modifies a user data

FP 9: Delete a User The administrator deletes a user

FUR 5: Maintain Item

FP 10: Add an Item The administrator adds a new item

FP 11: View Items List The administrator views the items list

FP 12: View an Item Data The administrator views the item data

FP 13: Modify an Item The administrator modifies an item

FP 14: Delete an Item The administrator deletes an item

FUR 6: Maintain Item Family

FP 15: Add an Item Family The administrator adds a new item family

FP 16: View Item Families List The administrator views the item families list

FP 17: View an Item Family Data

The administrator views an item family data

FP 18: Modify an Item Family The administrator modifies an item family

FP 19: Delete an Item Family The administrator deletes an item family

FUR 7: Maintain Place

FP 20: Add a Place The administrator adds a place

FP 21: View Places List The administrator views the places list

FP 22: View a Place Data The administrator views a place data

FP 23: Modify a Place The administrator modifies a place

FP 24: Delete a Place The administrator deletes a place

FUR 8: Maintain Table

FP 25: Add a Table The administrator adds a table

FP 26: View Tables List The administrator views the tables list

FP 27: View a Table Data The administrator views a table Data

FP 28: Modify Table Data The administrator modifies a table data

FP 29: Delete a Table The administrator deletes a table

FUR 9: Maintain Menu Items

FP 30: Add a Menu Items The administrator adds a Menu Items

FP 31: View Menu Items List The administrator views the Menu Items list

FP 32: View a Menu Items Data The administrator views a Menu Items data

FP 33: Modify a Menu Items The administrator modifies a Menu Items

FP 34: Delete a Menu Items The administrator deletes a Menu Items

FUR 10: Manage the List of Orders

FP 35: View the List of Orders The administrator views the list of orders

FP 36: Delete an Order The administrator deletes an order

Page 21: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

21

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 Functional Processes

FUR 1: Logon FP 1: Logon

FUR 2:Maintain Order FP 2: Add an Order FP 3: Modify an Order

FUR 3: Logon FP4: Logon

FUR 4: Maintain User

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

FUR 5: Maintain Item

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

FUR 6: Maintain Item Family

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

FUR 7: Maintain Place

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

FUR 8: Maintain Table

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

FUR 9: Maintain Menu Items

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

FUR 10: Manage the List of Orders FP 35: View the List of Orders

FP 36: Delete an Order

Page 22: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

22

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 Data attributes Example

FUR 1 FUR 4

Waiter

Waiter Data username, password, name, phone_number, address, userstate

username: alx84 password: 123 name: Alex phone_number: 22234567 address: Sfax, Tunisia

Log status userstate userstate: connected

Waiter ID username, password username: Alx84 password: 123

FUR 3

Administrator

Administrator Data username, password, name, phone_number, address, userstate

username: adm84 password: 456 name: Bill phone_number: 59875444 address: Sfax, Tunisia

Administrator ID username, password username: adm84 password: 456

Log status userstate userstate: connected

FUR 8

Table Table Data

table number, place number, state, capacity

table number: 1 place number: 1 state: occupied capacity: 2

Table ID table number table number: 1

FUR 6

Item family Item family Data

item family number, menu items number designation

item family number: 1 designation: Juice menu items number: 1

item family number: 2 designation: soda menu items number:1

Item family ID item family number item family number: 1

FUR 5

Item Item Data

item number, item family number designation, image, price, quantity

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 ID item number item number: 1

FUR 7

Place Place Data place number, name

place number: 1 name: non-smoking

Place ID place number place number: 1

FUR 2 FUR 10

Order

Order ID order number, order number: 20

Order Data

order number, table number, order status, date, time,

order number: 20 table number: 1 order status: active date: 05/07/2016 time: 8:00 pm

Page 23: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

23

name name: Alex

Order Items

order number, item number, quantity, comment

order number: 20 item number: 1 quantity: 3 comment: none item number: 2 quantity: 1 comment: with ice

FUR 9 Menu Items

Menu Items ID menu items number menu items number: 1

Menu Items Data menu items number, description

menu items number: 1 description: dessert

From FUR 1 to FUR 10

Messages E/C message Message description Message description: “Orders list is empty”

Page 24: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

24

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

Sub-Process Description Data Group

Objects of

interest

Data Movement

Type

CFP

Waiter Enter username and

password Waiter ID Waiter E 1

Provide actor data to the web

application Waiter ID Waiter X 1

Receive log status

(Connected)

Log status

(Connected) Waiter E 1

The mobile app log status

(Not connected)

Log status

(Not connected) Waiter E 1

Waiter

The mobile app displays

Error/Confirmation messages

from the web application

E/C Message Messages X 1

Total size = 5 CFP

FP 2: Add an Order Triggering event: The waiter adds a new order

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Waiter The waiter presses the

option “Add a new order” Order Data Order E 1

The web application returns

the list of places Place Data Place X 1

Waiter The mobile app displays the

list of places to the waiter Place Data Place E 1

Waiter The waiter chooses the place

where the customer is

installed

Place ID Place E 1

The mobile app sends the

selected place to the web

application

Place ID Place X 1

The web application returns

the list of tables Table Data Table E 1

Waiter The mobile app displays the

list of tables to the waiter Table Data Table X 1

Waiter

The waiter chooses the table

where the customer is

installed

Table ID Table E 1

The mobile app sends the

selected table to the web

application

Table ID Table X 1

Page 25: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

25

FP 2: Add an Order Triggering event: The waiter adds a new order

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

The web application checks

if there is any active order for

the selected table

Table ID Table E 1

The web application changes

the order state from active to

closed

Table ID Table X 1

The web application returns

the item family list

Item family

data Item family E 1

Waiter The mobile app displays the

item family list to the waiter

Item family

data Item family X 1

Waiter

The waiter selects the item

family based on the items

requested by the customer

Item family

ID Item family E 1

The mobile app sends the

selected item family to the

web application

Item family

ID Item family X 1

The web applications returns

the list of items according to

the selected Item families

Item Data Item E 1

Waiter The mobile app displays the

list of items to the waiter Item Data Item X 1

Waiter

The waiter selects the items

required by the customer and

specify for each item the

recommended quantity and

customer's comment

Order Items Order E 1

The mobile app sends the

selected items, the

recommended quantities and

customer's comments to the

web application

Order Items Order X 1

The web application creates

the new order Order Data Order E 1

Total size = 20 CFP

FP 3: Modify an Order Triggering event: The Waiter modifies an order

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Waiter The waiter presses the

option “Modify an order” Order Data Order E 1

The web application returns

the list of places Place Data Place X 1

Waiter The mobile app displays the

list of places to the waiter Place Data Place E 1

Waiter The waiter chooses the place

where the customer is

installed

Place ID Place E 1

The mobile app sends the

selected place to the web

application

Place ID Place X 1

Page 26: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

26

FP 3: Modify an Order Triggering event: The Waiter modifies an order

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

The web application returns

the list of tables Table Data Table E 1

Waiter The mobile app displays the

list of tables to the waiter Table Data Table X 1

Waiter

The waiter chooses the table

where the customer is

installed

Table ID Table E 1

The mobile app sends the

selected table to the web

application

Table ID Table X 1

The web application retrieves

the list of items

recommended by the

customer with their quantities

and comments

Order Items Order E 1

Waiter

The mobile app displays the

items recommended by the

customer with their quantities

and comments to the waiter

Order Items Order X 1

Waiter

The waiter adds/deletes the

new/existing item, modifies

items' quantities or modifies

items' comments

Order Items Order E 1

The mobile app sends the

modified items to the web

application

Order Items Order X 1

The web application updates

the order data Order Data Order E 1

Waiter

The mobile app displays

Error/Confirmation messages

from the web application

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator Enter username and

password

Administrator

ID Administrator E 1

The web application reads

username and password

Administrator

ID Administrator R 1

Administrator The web application displays E/C Messages X 1

Page 27: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

27

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator enters the

user data Waiter Data Waiter E 1

The web application adds

the new user Waiter Data Waiter W 1

Administrator the web application displays

Error/Confirmation messages

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects to

view the users list Waiter Data Waiter E 1

The web application retrieves

the Users list Waiter Data Waiter R 1

Administrator The web application displays

the Users list Waiter Data Waiter X 1

Administrator The web application displays

Error/Confirmation messages

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects the

desired user (Waiter) Waiter ID Waiter E 1

The web application retrieve

user data from the Database Waiter Data Waiter R 1

Administrator

The web application displays

the data of the selected

waiter

Waiter Data Waiter X 1

Total size = 3 CFP

FP 8: Modify User Data Triggering event: The administrator modifies user data

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator

The administrator modifies

waiter data that can be

changed

Waiter Data Waiter E 1

The web application saves

the change Waiter Data Waiter W 1

Total size = 2 CFP

Page 28: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

28

FP 9: Delete a User Triggering event: The administrator deletes a user

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator chooses

the user to be deleted Waiter ID Waiter E 1

The web application deletes

the selected waiter Waiter ID Waiter W 1

Administrator The web application displays

Error/Confirmation messages

E/C

Message Messages X 1

Total size = 3 CFP

FP10: Add an Item Triggering event: The administrator adds a new item

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator enters the

data of the item Item Data Item E 1

The web application adds the

new item Item Data Item W 1

Administrator The web application displays

Error/Confirmation messages

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects to

view the items list Item Data Item E 1

The web application retrieves

the items list Item Data Item R 1

Administrator The web application displays

the items list Item Data Item X 1

Administrator The web application displays

Error/Confirmation messages

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects the

desired item Item ID Item E 1

The web application retrieves

the item data from the

Database

Item Data Item R 1

Administrator

The web application displays

the data of the selected item

to the administrator

Item Data Item X 1

Total size = 3 CFP

Page 29: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

29

FP13: Modify an item

Triggering event: The administrator modifies an item

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator

The administrator modifies

the desired fields (name,

price, quantity, image, etc.)

and asks the web application

to update the data of the item

Item Data Item E 1

The web application save the

change Item Data Item W 1

Total size = 2 CFP

FP14: Delete an Item Triggering event: The administrator deletes an item

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects the

item to be deleted Item ID Item E 1

The web application deletes

the selected item Item ID Item W 1

Administrator The web application displays

Error/Confirmation messages

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator

The administrator enters the

data of the item and

instructs the web application

to validate the addition

Item Family

Data Item Family E 1

The web application adds

the new item family

Item Family

Data Item Family W 1

Administrator

The web application

displays Error/Confirmation

messages

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects to

view the item families list

Item Family

Data Item Family E 1

The web application retrieves

the item families list

Item Family

Data Item Family R 1

Administrator The web application displays

the item families list

Item Family

Data Item Family X 1

Administrator The web application displays

Error/Confirmation messages

E/C

Message Messages X 1

Total size = 4 CFP

Page 30: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

30

FP17: View Item family data Triggering event: The administrator views an item family data

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects the

desired Item Family

Item Family

ID Item Family E 1

The web application retrieves

the Item Family data from the

Database

Item Family

Data Item Family R 1

Administrator

The web application displays

the data of the selected Item

Family to the administrator

Item Family

Data Item Family X 1

Total size = 3 CFP

FP 18: Modify an item family Triggering event: The administrator modifies an item family

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator

The administrator modifies

the desired fields (name,

image, color) and instructs

the web application to update

the item family data

Item family

Data Item Family E 1

The web application saves

the change

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects the

family items to be deleted

Item family

ID Item Family E 1

The web application deletes

the selected family item

Item family

ID Item Family W 1

Administrator The web application displays

Error/Confirmation messages

E/C

Message Messages X 1

Total size = 3 CFP

FP 20: Add a place Triggering event: The administrator adds a place

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator adds the

place data Place Data Place E 1

The web application adds the

new place Place Data Place W 1

Administrator The web application displays

Error/Confirmation messages E/C Messages X 1

Total size = 3 CFP

Page 31: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

31

FP 21: View the Places list Triggering event: The administrator views the places list

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type CFP

Administrator The administrator selects to

view the places list Place Data Place E 1

The web application retrieves

the Places list Place Data Place R 1

Administrator The web application displays

the Places list Place Data Place X 1

Administrator The web application displays

Error/Confirmation messages

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects the

desired place Place ID Place E 1

The web application retrieves

the Place data from the

Database

Place Data Place R 1

Administrator

The web application displays

the data of the selected

place to the administrator

Place Data Place X 1

Total size = 3 CFP

FP 23: Modify a place Triggering event: The administrator modifies a place data

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator

The administrator modifies

the place data that can be

changed

Place Data Place E 1

The web application save the

change Place Data Place W 1

Total size = 2 CFP

FP 24: Delete a Place Triggering event: The administrator deletes a place

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator chooses

the place to be deleted Place ID Place E 1

The web application deletes

the selected place Place ID Place W 1

Administrator The web application displays

Error/Confirmation messages

E/C

Message Messages X 1

Total size = 3 CFP

Page 32: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

32

FP25: Add a table Triggering event: The administrator adds a table

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type CFP

Administrator The administrator adds the

table data Table Data Table E 1

The web application adds the

new table Table Data Table W 1

Administrator The web application displays

Error/Confirmation messages

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects to

view the tables list Table Data Table E 1

The web application retrieves

the Tables list Table Data Table R 1

Administrator The system displays the

Tables list Table Data Table X 1

Administrator The web application displays

Error/Confirmation messages

E/C

Message Messages X 1

Total size = 4 CFP

FP 27: View table data Triggering event: The administrator views table data

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects the

desired table Table ID Table E 1

The web application retrieves

the Table data from the

database

Table Data Table R 1

Administrator

The web application displays

the data of the selected table

to the administrator

Table Data Table X 1

Total size = 3 CFP

FP 28: Modify table data Triggering event: The administrator modifies table data

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator modifies

the table data Table Data Table E 1

The web application save the

change Table Data Table W 1

Total size = 2 CFP

Page 33: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

33

FP29: Delete a table Triggering event: The administrator deletes a table

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type CFP

Administrator The administrator chooses

the table to be deleted Table ID Table E 1

The web application deletes

the selected table Table ID Table W 1

Administrator The web application displays

Error/Confirmation messages

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

Sub-Process Description Data

Group

Objects of interest

Data Movement

Type

CFP

Administrator The administrator enters the

Menu Items Data

Menu Items

Data Menu Items E 1

The web application add the

new Menu Items Data

Menu Items

Data Menu Items W 1

Administrator The web application displays

Error/Confirmation messages

E/C

Message Messages X 1

Total size = 3 CFP

FP 31: View the Menu Item list Triggering event: The Administrator views the Menu Items list

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects to

view the menu Items list

Menu Items

Data Menu Items E 1

The web application retrieves

the Menu Items list

Menu Items

Data Menu Items R 1

Administrator The web application displays

the Menu Items list

Menu Items

Data Menu Items X 1

Administrator The web application displays

Error/Confirmation messages

E/C

Message Messages X 1

Total size = 4 CFP

FP 32: View a Menu Item data Triggering event: The Administrator views a Menu Items data

Functional User

Sub-Process Description Data Group Objects of

interest

Data Movement

Type CFP

Administrator The administrator selects the

desired Menu Items

Menu Items

ID Menu Items E 1

The web application retrieve

the Menu Items Data

Menu Items

Data Menu Items R 1

The web application displays

the Data of the selected

Menu Items to the

administrator

Menu Items

Data Menu Items X 1

Total size = 3 CFP

Page 34: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

34

FP 33: Modify a Menu Item Triggering event: The administrator modifies a Menu Items

Functional User

Sub-Process Description Data

Group Objects of

interest

Data Movement

Type CFP

Administrator

The administrator modifies

the Menu Item Data that

can be changed

Menu Items

Data Menu Items E 1

The web application saves

the change

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

Sub-Process Description Data Group Objects of

interest

Data Movement

Type

CFP

Administrator The administrator selects the

desired Menu Items

Menu Items

ID Menu Items E 1

The web application deletes

the selected Menu Items

Menu Items

ID Menu Items W 1

Administrator The web application displays

Error/Confirmation messages

E/C

Message Messages X 1

Total size = 3 CFP

FP 35: Manage the List of Orders Triggering event: The administrator views the list of orders

Functional

User Sub-Process Description Data Group

Objects of

interest

Data

Movement

Type CFP

Administrator The administrator selects to

view the orders list Order Data Order E 1

The web application retrieves

the orders data Order Data Order R 1

Administrator The web application displays

the orders list Order Data Order X 1

Administrator The web application displays

Error/Confirmation messages

E/C

Message Messages X 1

Total size = 4 CFP

FP 36: Delete an order Triggering event: The administrator deletes an order

Functional

User Sub-Process Description Data Group

Objects of

interest

Data

Movement

Type CFP

Administrator The administrator selects the

order to be deleted Order ID Order E 1

The web application deletes

the selected order 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

Page 35: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

35

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

Actions-types description COSMIC concepts CFP

Action-type = Expletive An action that does not lead

to an exchange of data. Not applied 0 CFP

Action-type = Request

An action representing the act

of asking for something, it is

directed by an actor.

An Entry data movement

from the Functional user to

the software to be measured

1 CFP

Action-type = Response

An answer or a reply sent

after a Request, it is directed

by the system.

An eXit data movement from

the software to be measured

to the Functional user

1 CFP

Action-type =

DataRecovery

An action that allows the

retrieving of data.

A Read data movement from

the persistent storage to the

software to be measured

1 CFP

Action-type =

DataPersist

An action allowing the

recording of data.

A Write data movement from

the software to be measured

to the persistent storage

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

Functional Processes

Sub-Process Description Action Type CFP

FUR 1: Logon FP 1: Logon

Enter username and password Request 1

Provide actor data to the web application

Response 1

Receive log status (Connected) Request 1

Receive log status (Not Connected)

Request 1

Display Error/Confirmation message

Response 1

FS(FP 1: Logon) = 5 CFP

FUR 2: Maintain Order

FP 2: Add an order

The waiter presses the option

“Add a new order” Request 1

The web application returns the

list of places Response 1

The mobile app displays the list

of places to the waiter Request 1

Page 36: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

36

The waiter chooses the place

where the customer is installed Request 1

The mobile app sends the

selected place to the web

application

Response 1

The web application returns the

list of tables Request 1

The mobile app displays the list

of tables to the waiter Response 1

The waiter chooses the table

where the customer is installed Request 1

The mobile app sends the

selected table to the web

application

Response 1

The web application checks if

there is any active order for the

selected table

Request 1

The web application changes the

order state from active to closed Response 1

The web application returns the

item family list Request 1

The mobile app displays the item

family list to the waiter Response 1

The waiter selects the item

family based on the items

requested by the customer

Request 1

The mobile app sends the

selected item family to the web

application

Response 1

The web applications returns the

list of items according to the

selected Item families

Request 1

The mobile app displays the list

of items to the waiter Response 1

The waiter selects the items

required by the customer and

specify for each item the

recommended quantity and

customer's comment

Request 1

The mobile app sends the

selected items, the

recommended quantities and

customer's comments to the web

application

Response 1

The web application creates the

new order Request 1

FS(FP 2: Add an order) = 20 CFP

FP 3: Modify an order

The waiter presses the

option “Modify an order” Request 1

The web application returns

the list of places Response 1

The mobile app displays the

list of places to the waiter Request 1

The waiter chooses the place

where the customer is

installed

Request 1

Page 37: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

37

The mobile app sends the

selected place to the web

application

Response 1

The web application returns

the list of tables Request 1

The mobile app displays the

list of tables to the waiter Response 1

The waiter chooses the table

where the customer is

installed

Request 1

The mobile app sends the

selected table to the web

application

Response 1

The web application retrieves the

list of items recommended by the

customer with their quantities

and comments

Request 1

The mobile app displays the

items recommended by the

customer with their quantities

and comments to the waiter

Response 1

The waiter adds/deletes the

new/existing item, modifies

items' quantities or modifies

items' comments

Request 1

The mobile app sends the

modified items to the web

application

Response 1

The web application updates

the order data Request 1

The mobile app displays

E/C messages from the web

application

Response 1

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

Functional Processes

Sub-Process Description Action Type

CFP

FUR 3: Logon

FP 4: Logon

Enter username and password Request 1

The web application reads

username and password

Data-

Recovery 1

Display Error/Confirmation

message Response 1

FS(FP 4: Logon) = 3 CFP

Page 38: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

38

FUR 4: Maintain User

FP 5: Add a user

The Administrator enters the user

data (waiter) Request 1

The web application adds the new

user DataPersist 1

Display Error/Confirmation message

Response 1

FS(FP 5: Add a User) = 3 CFP

FP 6: View the Users list

The administrator selects to

view the users list Request 1

The web application retrieves the

Users list

Data-

Recovery 1

The web application displays the

Users list Response 1

Display Error/Confirmation

messages Response 1

FS(FP 6: View the Users list) = 4 CFP

FP 7: View User Data

The Administrator selects the

desired user (Waiter) Request 1

The web application retrieves user

data from the Database

Data-

Recovery 1

The web application displays the

data of the selected waiter Response 1

FS(FP 7: View User Data) = 3 CFP

The Administrator modifies the

waiter data that can be changed Request

1

The web application saves the change

DataPersist 1

FS(FP 8: Modify User Data) = 2 CFP

FP 9: Delete a User

The Administrator chooses the

waiter to be deleted Request 1

The web application deletes the

selected waiter DataPersist 1

Display Error/Confirmation message

Response 1

FS(FP 9: Delete a User) = 3 CFP

FUR 5: Maintain Item

FP 10: Add an Item

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

FP 11: View the items list

The administrator selects to

view the items list Request 1

The web application retrieves the

items list

Data-

Recovery 1

The web application displays the

items list Response 1

Display Error/Confirmation

messages Response 1

FS(FP 11: View the items list) = 4 CFP

FP 12: View an Item data

The Administrator selects the

desired item Request 1

The web application retrieves the

Item data from the Data base

Data-

Recovery 1

Page 39: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

39

The web application displays the

data of the selected Item to the

Administrator

Response 1

FS(FP 12: View an Item data) = 3 CFP

The Administrator modifies the

desired fields and asks the web

application to update the data of

the item

Request 1

The web application saves the

change DataPersist 1

FS(FP 13: Modify an Item) = 2 CFP

FP 14: Delete an Item

The Administrator selects the item

to be deleted Request 1

The web application deletes the

selected item DataPersist 1

Display Error/Confirmation message

Response 1

FS(FP 14: Delete an Item) = 3 CFP

FUR 6: Maintain Item family

FP 15: Add an item family

The Administrator enters the data

of the item and instructs the web

application to validate the addition

Request 1

The web application adds the new

item family DataPersist 1

Display Error/Confirmation message

Response 1

FS(FP 15: Add an item family) = 3 CFP

FP 16: View the Item families list

The administrator selects to

view the item families list Request 1

The web application retrieves the

item families list

Data-

Recovery 1

The web application displays the

item families list Response 1

Display Error/Confirmation

messages Response 1

FS(FP 16: View the Item families list) = 4 CFP

FP 17: View an Item family data

The Administrator selects the

desired Item family Request 1

The web application retrieves the

Item family data Data-

Recovery 1

The web application displays the

data of the selected Item family to

the Administrator

Response 1

FS(FP 17: View an Item family data) = 3 CFP

The Administrator modifies the

desired fields and instructs the web

application to update the data of

the item family

Request 1

The web application saves the change

DataPersist 1

FS(FP 18: Modify an item family) = 2 CFP

FP 19: Delete an item family

The Administrator selects the

family items to be deleted Request 1

The web application deletes the

selected family item DataPersist 1

Display Error/Confirmation message

Response 1

Page 40: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

40

FS(FP 19: Delete an item family) = 3 CFP

FUR 7: Maintain Place

FP 20: Add a Place

The Administrator adds the place

data Request 1

The web application adds the new

place DataPersist 1

Display Error/Confirmation message

Response 1

FS(FP 20: Add a Place) = 3 CFP

FP 21: View the Places list

The administrator selects to

view the places list Request 1

The web application retrieves the

Places list

Data-

Recovery 1

The web application displays the

Places list Response 1

Display Error/Confirmation

messages Response 1

FS(FP 21: View the Places list) = 4 CFP

FP 22: View a Place data

The Administrator selects the

desired place Request 1

The web application retrieves the

Place data from the Data base

Data-

Recovery 1

The web application displays the

data of the selected Place to the

Administrator

Response 1

FS(FP 22: View a Place data) = 3 CFP

The Administrator modifies the

place data that can be changed Request 1

The web application saves the change

DataPersist 1

FS(FP 23: Modify a place) = 2 CFP

FP 24: Delete a place

The Administrator chooses the

place to be deleted Request 1

The web application deletes the

selected place DataPersist 1

Display Error/Confirmation message

Response 1

FS(FP 24: Delete a place) = 3 CFP

FUR 8: Maintain Table

FP 25: Add a Table

The Administrator adds the table

data Request 1

The web application adds the new

table DataPersist 1

Display Error/Confirmation message

Response 1

FS(FP 25: Add a Table) = 3 CFP

FP 26: View the Tables list

The administrator selects to

view the tables list Request 1

The web application retrieves the

Tables list

Data-

Recovery 1

The web application displays the

Tables list Response 1

Display Error/Confirmation

messages Response 1

FS(FP 26: View the Tables list) = 4 CFP

FP 27: View table

The Administrator selects the

desired table Request 1

Page 41: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

41

data The web application retrieves the

Table data from the database

Data-

Recovery 1

The web application displays the

data of the selected table to the

Administrator

Response 1

FS(FP 27: View table data) = 3 CFP

The Administrator modifies the

table data Request 1

The web application saves the

change DataPersist 1

FS(FP 28: Modify table data) =2 CFP

FP 29: Delete a Table

The Administrator chooses the

table to be deleted Request 1

The web application deletes the

selected table DataPersist 1

Display Error/Confirmation

message Response 1

FS(FP 29: Delete a Table) = 3 CFP

FP 30: Add a Menu Items

The Administrator enters the menu

items data Request 1

FUR 9: Maintain Menu Items

The web application adds the new

menu items DataPersist 1

Display Error/Confirmation

message Response 1

FS(FP 30: Add an Menu Items ) = 3 CFP

FP 31: View the Menu Items list

The administrator selects to

view the menu Items list Request 1

The web application retrieves the

Menu Items list

Data-

Recovery 1

The web application displays the

Menu Items list Response 1

Display Error/Confirmation

messages Response 1

FS(FP 31: View the Menu Items list) = 4 CFP

FP 32: View a Menu Items Data

The Administrator selects the

desired menu items Request 1

The web application retrieves the

menu items data

Data-

Recovery 1

The web application displays the

data of the selected menu items to

the Administrator

Response 1

FS(FP 32: View Menu items Data) = 3 CFP

FP 33: Modify a Menu Items

The Administrator modifies the

menu items data that can be

changed

Request 1

The web application saves the

change DataPersist 1

FS(FP 33: Modify a Menu items) = 2 CFP

FP 34: Delete a Menu Items

The Administrator selects the

desired menu items Request 1

The web application deletes the

selected menu items DataPersist 1

Display Error/Confirmation

message Response 1

FS(FP 34: Delete a Menu Items) = 3 CFP

FP 35: The administrator selects to Request 1

Page 42: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

42

View the List of Orders

view the orders list

FUR 10: Manage the List of Orders

The web application retrieves the

orders data

Data-

Recovery 1

The web application displays the

list of orders Response 1

Display Error/Confirmation

message Response 1

FS(FP 35: View the List of Orders) = 4 CFP

FP 36: Delete an order data

The administrator selects the order

to be deleted Request 1

The web application deletes the

selected order DataPersist 1

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.

Page 43: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

43

REFERENCE

COSMIC (2015a) Guideline on Non-Functional & Project Requirements : How to consider non-

functional 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.

Page 44: Case Study Sizing natural language/UML requirements for ... · 1 Case Study Sizing natural language/UML requirements for Web and Mobile applications using COSMIC FSM Asma Sellami1,

44

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>] [<Out-

Parameter>]

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>] [<Out-

Parameter>]

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>] [<Out-

Parameter>]

End

End Use Case

Special requirements:<list of non-functional requirements>