## 2 Related Work
\begin{table}
\begin{tabular}{c c} \hline \hline
**Criteria** & **Description** \\ \hline C1 & The approach allows its users to model the behavior of software and the behavior with software. \\ \hline C2 & The approach allows its users to include a shift in the behavior of the model and its inner components at different points in time. \\ \hline C3 & The approach allows its users to define and sequence the execution of methods/functions with support for parallel computing. Method/function dependency management and data I/O per function should also be included. \\ \hline C4 & The approach should allow the user to define data paths, and how data are generated, exchanged, and consumed. \\ \hline C5 & The approach should provide an alternative for a stochastic definition of _behavior with software_, meaning that the behavior with software can be statistically analyzed but not precisely predicted. This is of interest to us so that consumer behaviors can be modeled with aftermarket data. \\ \hline C6 & The approach should support the aggregation of models to design full software components or applications. \\ \hline C7 & The approach should allow the users to obtain a measurable output as a result of the execution of the profile they model. \\ \hline C8 & The approach should allow the user to define a resource consumption of any type, not only from the perspective of software but also hardware and other physical resources, e.g.: fuel. \\ \hline C9 & The goal of the approach must be oriented towards generating useful metrics for evaluating the energy consumption of the profiles. \\ \hline C10 & The approach must include means for profiling Human-Provided Services (HPSs) and modeling user behavior. \\ \hline C11 & The approach should be platform- and framework-agnostic, and aimed specifically at the initial phases of the software development life cycle. \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Criteria used to compare the existing approaches to useful features. \begin{table}
\begin{tabular}{c c c c c c c c c c c} \hline \hline
**Source** & **C1** & **C2** & **C3** & **C4** & **C5** & **C6** & **C7** & **C8** & **C9** & **C10** & **C11** \\ \hline
[15] & ✓ & ✓ & ✕ & ✕ & ✕ & ✓ & ✕ & ✕ & ✕ & ✓ & ✕ \\ \hline
[16] & ✓ & ✓ & ✕ & ✓ & ✓ & ✓ & ✓ & ✕ & ✕ & ✕ & ✕ \\ \hline
[17] & ✕ & ✓ & ✕ & ✓ & ✕ & ✕ & ✕ & ✕ & ✕ & ✕ & ✕ \\ \hline
[18] & ✓ & ✕ & ✕ & ✕ & ✕ & ✓ & ✓ & ✓ & ✕ & ✕ & ✕ \\ \hline
[19] & ✕ & ✓ & ✕ & ✓ & ✓ & ✕ & ✕ & ✕ & ✕ & ✕ & ✕ \\ \hline
[20] & ✓ & ✓ & ✓ & ✕ & ✕ & ✓ & ✕ & ✕ & ✕ & ✕ & ✕ \\ \hline
[21] & ✕ & ✓ & ✓ & ✕ & ✕ & ✕ & ✕ & ✕ & ✕ & ✕ & ✕ \\ \hline
[22] & ✓ & ✓ & ✕ & ✕ & ✓ & ✕ & ✕ & ✕ & ✕ & ✕ \\ \hline
[23] & ✕ & ✓ & ✕ & ✕ & ✓ & ✓ & ✕ & ✕ & ✕ & ✕ \\ \hline
[24] & ✕ & ✓ & ✕ & ✕ & ✓ & ✓ & ✕ & ✕ & ✕ & ✓ & ✓ \\ \hline
[25] & ✕ & ✓ & ✓ & ✕ & ✓ & ✓ & ✓ & ✕ & ✕ & ✕ \\ \hline
[26] & ✕ & ✕ & ✓ & ✕ & ✕ & ✓ & ✓ & ✕ & ✓ & ✓ & ✕ \\ \hline
[27] & ✕ & ✕ & ✓ & ✕ & ✓ & ✓ & ✓ & ✕ & ✓ & ✕ \\ \hline BBCP & ✓ & ✓ & ✓ & ✓ & ✓ & ✓ & ✓ & ✓ & ✓ & ✓ \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Comparison among the existing approaches and our behavior-based consumption profiles. Our research revealed the following. On the one hand, approaches that deal with the behavior with software include taking into account human personality profiles to generate believable bot behaviors for a game tournament [21], prototyping intelligent systems that adapt their behavior to match a profile of the user [28], and the simulation of real user behavior on the Internet using machine learning techniques [20]. On the other hand, several examples of software behavior include studying the behavior of embedded systems in component-based software development according to different signal flows [19], modeling an application and resource behavior with profiles in heterogeneous environments [22], and the creation of behavioral profiles built in UML (Unified Modeling Language) to specify the architectural behavioral rules of applications [18]. Most of the previous works make use of a common technique: profiling.