Towards a Reference Model of Software Resources Quality

: International standards for software product quality classify software resources as a non-functional requirement for software product. Resources requirements based-standards describe required resources requirements related to software and hardware requirements, in which hardware resources requirements specify requirements relevant to hardware environment in which the software will operate. Whereas, software resources requirements specify sizing and timing requirements required by software product. This paper propose a reference model to identify and measure resources requirements of software product quality based on ISO international standards. The proposed reference model is experimented to present its applicability using the software specifications of an ATM machine to identify and measure the functional size of resources requirements independently from development technology. This measure take place at an early phase of the software development life cycle and used by software project managers as one of the primary inputs for the effort estimation process of software products.


Introduction
Software products face a traditional challenge to obtain required resources to accomplish needed functionality for its users.Software resources requirements are considered as primary requirements for several computing environments (Alur and Weiss, 2008).For example, simple business transaction might struggle to utilize memory resources to be fully executed.The selection of such resource utilities has lead to the proposal of algorithms based on predefined metrics related to customer satisfaction or even performance metrics.For example, the quantity of advertisement pamphlet without affecting their quality requirements.
Software development organizations require software engineers to identify, measure and implement all requirements of software products.In particular, software engineers are responsible to identify all resources requirements such as I/O devices, memory resources utilization and expansion transmission of software resources.Developing such software products within time and budget is the primary challenge for many software development organizations.
A few research is found in the literature on the identification and measurement of software requirements based on international standards (Abran et al., 2013;Al-Sarayreh et al., 2013a;Meridji et al., 2013;Al-Sarayreh et al., 2013b;2012;2014;Al-Sarayreh and Abran, 2010).Most of research studies target the identification and measurement of software requirements at late phase of the software development life cycle (Khatter and Kalia, 2013).
Further, several software products failed because software engineers have poorly identified and measured software requirements (Al-Sarayreh et al., 2013a).This comes from the fact that software engineers have no reference model that is built based on an international standard to justify the need for such software requirements.
Software resources requirements illustrate the need of software components for resources from its environment in order to execute its tasks.In addition, it express the restrictions of software resources associated with workstation resources, such as microprocessor chip load and upper limit memory volume.
Software resources requirements are primary requirements in software development cycle, in which they guarantee software suitability and availability of resources for every task executed in such software products (Khatter and Kalia, 2013).
The ISO25010 international standards series (i.e., systems and software engineering -systems and Software Quality Requirements and Evaluation (SQuaRE) standards) express software resources requirements as the ability of software product to utilize correct quantities and varieties of software resources to execute certain tasks for its users under pre-defined conditions (ISO25010, 2011).
In spite of the existence of several measures for software resources requirements, most of these measures are still subjective and ineffective.For example, such these measures are defined informally, either used in an imperfect context or using poorly defined procedures.Therefore, such measures cannot be justified by software engineers for their project managers in order to use them in the effort estimation process of software products.
The motivation of this research paper is to help software development organizations and in particular software project managers and technical leaders to build more accurate effort estimation models, by improving one of primary inputs (i.e., measurement of software resources requirements) for the effort estimation process.This improvement will improve planning, management and development of software at different phases of the software development life cycle.Further, the measurement results of the proposed reference model can be used for software benchmarking purposes conducted by specialized groups such as International Software Benchmarking Group (ISBSG).
The contribution of this paper is a new reference model to identify and measure software resources requirements based on international ISO standards ISO19761 and ISO14143-1.This reference model measures functional size of software resources requirements allocated to software independently from development technology used to develop the software product.
This paper is organized as follows: Section 2 presents the literature review and section 3 presents the international standard for software functional measurement -ISO 19761: COSMIC.Section 4 presents the design of the reference model for software resources requirements.Then, section 5 presents verification of the applicability for the proposed reference model using the software specifications of an ATM machine.Finally, section 6 presents conclusions and future work directions.

Literature Review
Khatter and Kalia (2013) studied several software development approaches to analyze the impact of software non-functional requirements on requirements evolution and on software quality during the software development life cycle.This study focused on views and representation of non-functional requirements and on the description of non-functional requirements in different software development approaches.It reported that there is a strong need for an accurate modeling and quantification of software non-functional requirements in order to produce high quality software.
Several research studies are presented in the literature targeted the measurement and/or approximation of software resources.For instance, Perez et al. (2015) proposed an algorithm that applies linear regression and maximum probability measures to calculate an approximation of the required software resources.The algorithm is experimented using real application datasets.For each CPU request, the proposed algorithm inputs response time and resource queue measures and yields the value of CPU consumption.Arnold et al. (2014) proposed a generic architecture to calculate resources requirements such as computing, network usage and storage for a software application in a cloud computing environment.The software application is transformed and called a "workload" using a declarative workload definition language.It is then deployed in the cloud infrastructure using a workload orchestration and optimization layer.A case study is conducted on a real application to illustrate coordination and functionalities optimization in IBM connections.Eklov et al. (2014) proposed a software profiling method to report the impact of scalability bottleneck on the scalability of multi-threaded program.These reports are aimed to help a software engineer to analyze resources requirements and to improve the architecture of such multi-threaded program.Fotrousi et al. (2014) proposed an approach to identify the relationships between levels of software quality and their impact on quality attributes and software stakeholders.This approach is aimed to help software engineers to identify the quality of "good" software from the perspective of software stakeholders.The stakeholders are given a prototype of software product to determine its quality and record their subjective feedback.Arfeen et al. (2011) proposed a framework for network resource allocation in cloud computing environment.Several strategies for network resource allocation are evaluated for possible application.Their work focused on optimizing such network allocation strategies and on network awareness.Kocsis and Ekler (2012) defined "advertising type" for advertising websites.They collected websites usage statistics and users' behavior using a web analytics program to calculate total system startup.This program collected various information about users from advertising websites including location, number of visits and time spent in each website visit on a daily basis.Shilun et al. (2011) proposed a resource-ability design to identify the resources requirements of an equipment.The proposed design allows for defining an equipment attributes in order to guarantee the capacity of resources conservation and environment responsiveness.This study reported that consumption, function, structure and environmental impacts are qualitative requirements for equipment resources.Wang et al. (2008) proposed an approach for requirements analysis and proposed a workflow model for resource-constrained business processes.This study explained that business processes are typically constrained by insufficient software resources and such shortage of resources might cause a conflict and therefore delay the achievement of higher-level business goals.The proposed approach is aimed to meet such business goals by managing the required resources as well as making available facilities for monitoring and controlling capabilities.Jia et al. (2012) analyzed a technique for maintenance task allocation.They proposed a system for computeraided decision analysis to improve the efficiency of maintenance-task analysis and maintenance-support analysis of software resources requirements.Liu et al. (2011) reported that most software resources on the internet do not provide justifiable quality indicators.Therefore, they proposed an approach that collect comments on software resources automatically.This approach is aimed to provide software engineers with justifiable quality indicators; such indicators typically help software engineers in the selection process of software resources and reusability.Li et al. (2014) studied the impact of two consolidating n-tier web applications in a cloud environment; they measured the CPU utilization and performance of two consolidated n-tier web applications, in which these two systems deploy two different soft resource allocation strategies.The study reported that a web application with more software resources has overused the CPU with a percentage of eight percent than the other consolidated application.They observed that software resource allocation in cloud environment is a primary factor on the performance of an n-tier software application.Doulamis et al. (2014) proposed an algorithm to improve software resource selection in a distributed computing environment.The proposed algorithm assigned software resources to tasks in a way that improves the utilization of software resources and minimize time requirements of tasks.It employed the concepts of graph partitioning in order to minimize time overlapping of tasks for a specific software resource and maximize time overlapping of tasks for different software resources.Seth et al. (2012) conducted an empirical study to assess the role software requirements, stakeholders and resources in the development of a high quality software product.In this study, an interview is conducted with eleven participants involved in different roles in software development projects such as software programmers, testers, requirements managers and quality control personnel.The study reported that quality attributes of a software product depend on the type of software, software users and its application domain.Further, it reported that software product quality is highly dependent on allocated resources.Chen et al. (2015) proposed an architecture to manage resources utilization of distributed datacenters and optical networks.They adopted two strategies for resources allocation along with two strategies for virtual network composition.The proposed architecture is experimented using three metrics: CPU utilization, latency and virtual network failure.Yuan (2015) proposed a prediction algorithm for virtual resource scheduling in a cloud-computing environment.The proposed algorithm is built based on Support Vector Machine (SVM) to predict dynamic software resources requirements.Experimentation of the proposed algorithm is conducted two phases, training and prediction phases using real virtual resource data.The experimental results indicated that building the prediction algorithm based on the concepts of support vector machine has improved the prediction accuracy and has opened the opportunity to use such concepts to achieve real-time performance and high accuracy software resources requirements.Li et al. (2016) proposed a framework to improve the communications between machines in software-defined cellular networks.The proposed framework is aimed improve the random access process of machine-tomachine communications.They developed a dynamic feedback and control loop to update the number of available resource blocks in a virtual machine-tomachine communications network.Triwijoyo et al. (2017) proposed an approach to measure software reliability based fault analysis and categorization.This approach divided failure data into three groups and five modules.However, this is rather late in the software development life cycle.Iskandar et al. (2016) used the use case point (Karner, 1993) method to measure software size of a knowledge management software in Bina Nusantara University.However, the measurement result is not based on internationally standardized method and it is only applicable to object-oriented software requirements and does not cover other types of requirements specifications.Wang et al. (2017) proposed a regression-based model to identify software security requirements of three open source software products.However, the study reported that this model is not able to identify all security requirements specifications without an additional support of other software tools such as GitHub tool.This means that this model requires that software requirements specifications should be written in a certain style/format.

The International Standard for Software Functional Size Measurement: ISO 19761
The ISO19761: COSMIC (ISO, 2011) international standard proposes a general model of software functional requirements that explains the borderline among hardware and software.This standardized method measures functional size of a software product independently of the technology used to develop such a product based on the identified functional user requirements.The COSMIC measurement method propose generic model of software functional user requirements in order to clarify the boundary between hardware and software.
Figure 1 presents the COSMIC generic model that demonstrate the generic flow of data from a functional perspective.In this model, software is typically bounded by hardware and it is used either by a human user or by an engineered device.The human user interacts with software using a variety of input/output devices.Furthermore, software is bounded by storage hardware such as RAM memory.
The functionality of software is enclosed within the data groups of functional flows.In order to specify these functional flows, four data movement types are identified by COSMIC as follows: • Two data movement types (i.e., Entry and eXit) are identified specify the functional flows between the human users and engineered devices from one side and software from the other side • Two data movement types (i.e., Read and Write) are identified to specify the functional flows between storage and software Diverse perceptions normally used for different measurement purposes.For example, in embedded and real time software, users are typically "engineered devices" which interact straightforward with software.For business and management application software, COSMIC considers that the users are one or more humans who interact directly with the business or management applications software across the border.In other words, the "I/O hardware" is ignored.
The ISO 19761 method measures the size of software based on identifiable of functional user requirements.Then, they are allocated to hardware and software from the unifying perspective of a system integrating these two "components".Since ISO 19761 is aimed at sizing software, only those requirements allocated to software are considered in its strategic measurement procedure.

Design of Reference Model of Software Resources Requirements
This section present the design of reference model to identify and measure software resources requirements based on international standards.Four steps are recommended by Abran (2010) to design a reference measurement model as follows: • Determination of measurement objectives for software product • Characterization of software resources terms • Identification of resources entity types and relationship among entities • Numerical assignment rules for software resources requirements

Determination of Measurement Objectives for Software Product
This part presents the main objective of the proposed reference model as a portion of a software product quality, along with the point of view of the reference measurement model and the anticipated uses of the measurement results: • Measurement objective: To measure the functional size of software resources requirements using ISO19761: COSMIC as an intentional standard for software functional measurement • Measurement point of view: Software resources perspective allocated to software resources requirements • Intended use of measurement results: The uses of measurement results spans the whole software development life cycle.These functional size measures represent one of the primary inputs for the effort estimation process of software products.Further, these measures can be used for software benchmarking purposes

Characterization of Software Resources Terms
This part presents the terms and vocabulary of software resources requirements as defined by ISO standards ISO19761 (ISO, 2011) and ISO 14143-1 (IOS, 2007).Software resources requirements are classified as external and internal software resources.External software resources include I/O resources, memory resources and transmission resources.On the other hand, internal software resources include consumptions of hardware resources in system environment together with the software resources product during testing and/or operations.Therefore, software resources entities that are to be measured using the proposed reference model are as follows: Further, this part present three metamodels to capture external and internal software resources requirements.A metamodel is an effective candidate to present visually different entity types, existing relationships, rules and constraints of a requirement-modeling problem.A metamodel provides software engineers with a roadmap in order to improve the representation of stakeholders needs, in a "language" that is understandable to other software development teams in software development project.Based on the identification of the eight entity types, three metamodels are proposed to present visually the entity types and their relationships.

Metamodel of Transmission Resources
There are three entity types to capture the requirements of transmission resources; they are maximum transmission utilization, transmission capacity utilization and media devices utilization.Figure 4 presents a metamodel that represents the three identified entity types and their corresponding relationships.This metamodel represent the relationships between entity types in terms of input, process and output.

Numerical Assignment Rules for Software Resources Requirements
The foundations of the numerical assignment rules for software resources requirements are presented in the previous metamodels of I/O device resources, memory resources and transmission resources (Fig. 2 to 4).Numerical assignments rules can be described

Software product transmission resources utilization
Evaluate what is required for the system to reach a situation of maximum load Designed the maximum number of transmission

Required maximum transmission including error massages and failures
Designed the transmission capacity to be used by the software

Run application and monitor result (s)
Designed the transmission rate between different devices media

Execute concurrently specified tasks with multiple users
Observe transmission capacity and compare specified one

Actual transmission capacity
The degree of synchronization between devices using descriptive text (i.e., practitioner's description) or using mathematical expressions (i.e., formal theoretical viewpoint).
According to the international standard for software functional size measurement -ISO19761, a functional process is defined as an elementary component of a set of functional user requirements.It includes a unique cohesive and independently executable set of data movement types (ISO, 2011).Four data movement types are identified by ISO19761: An 'Entry' data movement type moves a data resource group into software from a functional user and an 'eXit' data movement type moves a data resources group out.Further, the 'Write' and 'Read' data movement types move a data group to and from persistent storage, respectively (ISO, 2011).One (1) CFP (i.e., COSMIC Function Point) represent a functional size measurement of each counted data movement type (ISO, 2011).
Data resources groups form sources and/or to data destinations for software resources requirements.Table 1 and 2 presents data sources/destinations of software resources requirements.In both tables, software resources are categorized into the three classes, I/O device resources, memory resources and transmission resources -see column #1, data sources/destinations are next presented in column #2 and finally the objects of interest (i.e., resource type) are presented in column #3.

Quality Evaluation of Software Resources
section presents an extension of the proposed reference model software resources requirements.It presents building numerical assignments rules based on mathematical expressions using descriptive text rules in ISO25010 (2011).The numerical assignment rules are appended to the I/O resources devices, memory resources and transmission resources metamodels.The resulting metamodels presented in this section represent instantiation metamodels of the proposed reference model.They can be used to identify and measure software resources requirements based on the concepts in ISO25010 ( 2011), which can be considered as quality evaluation of software resources requirements in addition to the measurement benefit.I/O errors (Equation 4).Entity type 3 is used to measure internal software resources throughout calibrating the test condition to define maximum I/O loading (Equation 5).It is worth mentioning that the measurement result of Equation 4 and 5 is in Number.Equation 6is used calculate all the arithmetic summation of all data movements in one functional process: Figure 6 presents an instantiation metamodel to measure memory resources -externally -for one functional process and it is based on entity type (5).Entity type 5 is used to measure external software resources throughout executing concurrently a large number of tasks and run the application and record number of errors due to memory failures and warnings for one functional process (Equation 7).It is worth mentioning that there are no internal memory measures as defined in ISO19761 (2011).Further, the measurement result of Equation 7 is in Size and Equation 8 is used calculate all the arithmetic summation of all data movements in one functional process: Where: A5 = Actual memory needed B5 = Designed required memory Figure 7 presents an instantiation metamodel to measure transmission resources -externally -for one functional process and it is based on entity type 6, entity type 7 and entity type 8. Entity type 6 is used to measure the external software resources throughout evaluate what is required for the system to reach a situation of maximum load.Further, entity type 7 is used to measure the external software resources throughout observing transmission capacity and compare it to the specified one.Finally, entity type 8 is used to measure the external software resources throughout executing concurrently specified tasks with multiple users.The measurement results of Equation 9 to 11 is in transmission number, capacity and rate, respectively:

Scope and Objective
This section presents a verification of the proposed reference model of software resources requirements using the software specifications of an Automated Teller Machine (ATM) system.The automated teller machine system is a real time system that is developed for banks' clients to conduct several financial services without the interference of bank personnel.A sample of requirements specifications is selected for the withdrawal process of the automated teller machine.These requirements specifications represent an explanation of the withdrawal process that a typical user normally conduct to withdraw money from the automated teller machine.It is worth mentioning that the authors have not selected certain ideal (complete) requirements specifications of the withdrawal process with possibly quality attributes identified for two reasons: • During an early phase of the software development life cycle, it is expected to obtain software requirements specifications in which they are vague, incomplete, or inaccurate.Therefore, the selected specifications can emulate a similar case.• Selecting ideal requirements specifications will prevent quality evaluation of software resources requirements using the proposed reference model.

Software Specifications of an Automated Teller Machine
An automated teller machine wait for the user to start interaction process by inserting the bank client-card into the card reader to read all necessary information from magnetic strip and/or the microprocessor chip.This information includes a unique card number and other encrypted personal and account information.Upon insertion of user card into the card reader, the user shall wait until the "insert PIN" screen appears; it is considered as the starting step for client authentication.When the "insert PIN" screen appears, the user shall enter her/his personal identification number.Then, the system need to verify whether the entered information (i.e., PIN) is correct.identification number is wrong, the system will automatically eject the client-card.However, if it is correct, the system will ask the user to enter the withdrawal amount.After that, the system need to check the account balance in order to complete the withdrawal transaction and withdraw cash for the user.On the other hand, if the account balance is not enough or user entered a wrong PIN, the transaction information is saved in the account table (on the server database).Figure 8 presents a flow of activities diagram for withdrawal process of an automated teller machine system.

Experimentation of the Proposed Reference Model
The withdrawal process in the automated teller machine is analyzed based on flow of functionality from the user view.The following steps represent the flow of functionality steps: Waiting to insert card, waiting to enter PIN, waiting to check PIN, waiting to enter amount, verify balance and get cash.
Two approaches are adopted for the purpose of this experiment: • First approach identifies software resources requirements using the proposed reference model and then measures the functional size of the software resources requirements using the concepts exist in ISO19761 (IOS, 2007) • Second approach identifies software resources requirements using the proposed reference model and then measures such identified requirements based on the concepts exist in the international standard ISO25010 -systems and Software Quality Requirements and Evaluation (SQuaRE) standard (ISO25010, 2011) 3 presents the identification and the measurement of software resources requirements of the automated teller machine using the first approach.Using this approach, there are seven functional processes are identified and they are presented in column #1.It can be noticed that there are two functional processes identified with the name "verify balance".One functional process is associated with memory resources and another process is associated with transmission resources.
For each identified functional process, the corresponding resource type and description of measured resource is presented in column #2 and column #3.The description of the measured resource represents a data resource group, which this is moved by a one data movement type.Each data movement type that moves one data resource group is measured as one CFP (COSMIC Function Point).For example, the functional process "waiting to insert card" is measured using ISO19761 as follows: it represents an I/O resource type and includes two data resource groups.The first data resource group is moved when the user enters her/his client-card using an I/O device (i.e.card reader); this movement is defined as an Entry (E) data movement type and equals to (1) CFP.The second data resource group is moved from the system using the I/O device (i.e.ATM screen); this movement is defined as an eXit data movement type and equals to (1) CFP.Therefore, the total functional size measurement for the "waiting to insert card" functional process equals to (2) COSMIC Function Points (CFPs).The measurement concepts of ISO19761 applies to the other six functional process in the similar fashion.For example, the fifth functional process "verify balance" is measured using ISO19761 as follows: It represents a memory resource type and includes two data resource groups.The first data resource group is moved from the storage hardware into the ATM software designated functionality; this movement is defined as Read (R) data movement type and equals to (1) CFP.
The first data resource group is moved from the ATM software designated functionality and written into storage hardware; this movement is defined as Write (W) data movement type and equals to (1) CFP.Therefore, the total functional size measurement for the "verify balance" functional process equals to (2) COSMIC Function Points (CFPs).
The total functional size measurement of software resources requirements of the withdrawal process for the ATM system, equals to the arithmetic summation of the functional size of all identified functional process and this is equal to (16) COSMIC Function Points (CFPs).
Table 4 presents the identification and the measurement of software resources requirements of the automated teller machine using the second approach.Using this approach, seven functional processes are identified and they are presented in column #1.It can be noticed that there are two functional processes identified with the name "verify balance".One functional process is associated with memory resources and another process is associated with transmission resources.
For each functional process out of the seven identified processes, there is a corresponding "resource type" and "description of measured resource" that is presented in column #2 and #3, respectively.Furthermore, the measurement units and the corresponding mathematical equations used to calculate resources size for each functional process are presented in column #4 and #5, respectively.For example, the 'waiting to insert card' functional process use I/O resource and include two data resource groups, the measurement unit for both data resource groups is in 'time' and this resource is measured using Equation 1.

Summary of Findings
Both approaches adopted in this experiment are able to identify the same number of functional processes.The functional size measurement using the first approach, measures the functional size of software resources requirements independently of the technology used to develop such a product based on the identified functional user requirements.The resulting measures have a unified measurement unit (i.e., CFP -COSMIC function point) and they are aggregated arithmetically to be used in the effort estimation process of a software product.
On the other hand, using the second approach to measure software resources requirements do not yield unified size units of software resources requirements.For example, the measurement unit for I/O device resources is in 'time' unit and the measurement unit of memory resources is in 'size' unit.Therefore, software engineers who need a unified measurement -for effort estimation purposes -cannot aggregate these measures arithmetically.
Further notice, not all the proposed equations using the second approach are used to measure software resources requirements of the ATM system.This can be referred to the fact these specifications are not developed (i.e., identified and modeled) using a model that is built based on an international standard, such as ISO25010.However, this can be considered as quality evaluation of software resources requirements.Finally, the measurement of software resources using the second approach has not lead to numerical values result; it is be because the requirements specifications of the ATM system have provided no details about designed values of software resources requirements.

Threats to Validity
An internal validity threat is associated with any changes in the design of the experiment such as lack of description for the concepts to be evaluated in the experiment.To mitigate the risk of this threat to validity, the principal researcher who designed the reference model has not conducted the experiment himself.However, another researcher (i.e., author) has conducted a pilot test verify the validity the experimental steps and finally a third researcher (i.e., author) has conducted the experimentation of the proposed reference model.
An external validity threat is expressed as the extent that the experimental results can be generalized beyond the experimental settings.The proposed reference model of software resources requirements is experimented only using the requirements specifications of the withdrawal process for an automated teller machine.To mitigate the risk of this threat to validity, further experiments should be conducted in the future using the requirements specifications of different software products of different types (i.e., real time software, business application software, or even a hybrid of both types).

Conclusion
This paper proposed a new reference model to identify and measure software resources requirements based on ISO international standards ISO19761 and ISO14143-1.This proposed reference model measures functional size of software resources requirements allocated to software using the concepts of ISO19761 and independently from development technology used to develop the software product.Further, the proposed reference model measures software resources requirements using the concepts in ISO25010, which can be considered as quality evaluation of software resources requirements.
The experimental results showed that the proposed reference model is capable of identifying and measuring the functional size of software resources requirements.The industrial impact of this paper is improving one of the inputs for the effort estimation process.Therefore, it will improve planning, management and development of software at different phases of the software development life cycle.Further, the measurement results of the proposed reference model can be used for benchmarking software purposes conducted by research groups such as ISBSG software benchmarking group.
Future work will be directed to conduct more experiments using requirements specifications of different software products of different types, in order to generalize the results reported in this study.In addition, future work will be directed to automate the measurement of software resources requirements through building (or add to an existing) automated measurement tool.

Fig. 1 :
Fig. 1: A generic model of ISO 19761: COSMIC measurement method There are four entity types to capture the requirements of I/O devices resources; they are I/O devices utilization, I/O related errors, I/O loading and user waiting time of I/O devices.Figure2presents a metamodel that represents the four identified entity types and their corresponding relationships.This metamodel represent the relationship between entity types in terms of input, process and output.EntityType 1 (for external measurement for I/O device resources): • Entity name: I/O devices utilization • Input of entity type 1 is specified time that designed to occupy I/O devices • Process used between input and output: execute concurrently a large number of tasks, record I/O device utilization and compare with design objectives • Output of entity type 1 is actual time of I/O devices occupied • Entity type 1 measures the functional size of the I/O devices utilization • Entity relationship: many-many of I/O devices time on software Entity Type 2 (for internal measurement for I/O device resources): • Entity name: I/O related errors • Input of entity type 2 is user-operating time during user observation • Process used between input and output: calibrate test conditions • Output of entity type 2 is number of warning messages or system failures • Entity type 2 measures the functional size of the I/O related errors • Entity relationship: many-many of I/O devices related errors on software Entity Type 3 (for internal measurement for I/O device resources): • Entity name: I/O loading • Input of entity type 3 is designed I/O loading limits • Process used between input and output: emulate conditions weather the system reaches a situation of maximum I/O load • Output of entity type 3 is occupied of I/O loading limits • Entity type 3 measures the functional size of the I/O loading limits • Entity relationship: many-many of I/O devices loading period on software Entity Type 4 (for external measurement for I/O device resources): • Entity name: User waiting time of I/O devices • Input of entity type 4 is designed waiting time of I/O devices • Process used between input and output: Run the application and record number of errors due to I/O failures and warnings • Output of entity type 4 is actual waiting time of I/O devices • Entity type 4 measures the functional size of user waiting time of I/O devices • Entity relationship: Many-many of I/O devices waiting Entity Type 5 (for external measurement for memory resources): • Entity name: Memory utilization • Input of entity type 5 is designed required memory • Process used between input and output: Calibrate test conditions, emulate conditions weather system reaches a situation of maximum I/O load, run the application and record number of errors due to I/O failures and warnings • Output of entity type 5 is the actual memory needed • Entity type 5 measures the functional size of memory utilization • Entity relationship: Many-many of memory utilization on software

Fig. 5 :
Fig. 5: Metamodel of I/O devices resources with numerical assignment rules Figure 5 presents an instantiation metamodel to measure I/O device resources externally and internally for one functional process.The measurement of I/O device externally is based on entity type (1) and entity type (4).Entity type 1 is used to measure the external software resources throughout executing concurrently a large number of tasks and record I/O device utilization (Equation1).Further, entity type 4 is used to measure the external software resources throughout run the application of record of errors due to I/O failures and warning (Equation2).It is worth mentioning that the measurement result of Equation 1 and 2 is in Time and Equation 3 is used calculate all the arithmetic summation of all data movement types in one functional process: of warning msgs or system failures B2 = User operating time during user observation A3 = Occupied I/O loading limits B3 = Designed I/O loading limits

Fig. 8 :
Fig. 8: Flow of activities diagram for withdrawal process of an automated teller machine system

Table 1 :
Resources data sources If the entered personal

Table 3 :
Identification and measurement of resources requirements of ATM system using first approach

Table 4 :
Identification and measurement of resources requirements of ATM system using second approach