
Grande do Norte (UFRN) in Brazil. It has developed 
several enterprise large-scale information systems 
(SINFO, 2012) which perform full automation of 
university management activities. Due to the quality 
of these systems, several Brazilian federal 
institutions have licensed and extended them to their 
needs. 
Our main goal was to verify the approach 
feasibility of static analysis in practice. In this sense, 
the tool should extract useful information in order to 
help developers answering some questions, such as: 
(i) what scenarios does a specific method belong to? 
(ii) what kinds of quality attributes can affect a 
specific scenario? (iii) what are the scenarios that 
contain potential tradeoff points among quality 
attributes?
 
4.1.1  Choosing Evaluation Scenarios 
In the first step we have chosen some specific 
scenarios: (i) sending message – scenario used for 
sending messages (emails); (ii) authenticated 
document generation – scenario used to generate 
authenticated documents; (iii) user authentication – 
scenario used to authenticate users in the web 
application; (iv) mobile user authentication – 
scenario used to authenticate users from a mobile 
device.
 
4.1.2 Identifying Scenarios 
In this step the starting execution method for each 
chosen scenario were identified. They are, 
respectively: (i) 
sendMessage(); (ii) execute(); (iii) 
userAuthentication(); (iv) 
mobileUserAuthentication(). 
4.1.3  Identifying Quality Attributes 
The methods and quality attributes selected were: (i) 
getJdbcTemplate()
 with @Performance – it was 
considered to be relevant for performance 
requirements because it is accessed by several 
database operations; (ii) 
enqueue()with  @Security 
– it is used by the system to enqueue messages that 
will be sent over the network; (iii)
 
createRegistry()
with  @Security – it is used to 
create the registry of an authenticated document to 
ensure its legitimacy; (iv)
 toMD5() with @Security 
– it is used to create an MD5 hashing of strings, for 
example, passwords; (v)
 initDataSourceJndi() 
with  @Reliability – it is used to initialize the 
access to the database and was considered critical 
for reliability because if the database initialization 
fails, the system is not going to work adequately.
 
4.1.4  Executing the Static Analysis Tool: 
Preliminary Results 
The tool execution has extracted useful and 
interesting information in order to help us answering 
the questions highlighted on section 4.1. 
Considering the first question – (i) what 
scenarios does a specific method belong to? – the 
tool can determine that the 
getJdbcTemplate() 
method, for example, belongs to the following 
scenarios: user authentication, mobile user 
authentication and authenticated document 
generation. This is possible because the tool builds a 
static call graph of each scenario and calculates if a 
call to a particular method exists in some of the 
possible paths of execution. 
Regarding the second question – (ii) what kinds 
of quality attributes can affect a specific scenario? – 
the tool verifies all the paths for a specific scenario 
checking which ones have any quality attribute. Our 
tool has identified, for example, all the quality 
attributes related to the User Authentication 
scenario: (i) performance quality attribute – because 
the method 
getJdbcTemplate() belongs to a 
possible path; (ii) the reliability quality attribute 
because the method 
initDataSourceJndi() also 
belongs to a possible path;  and (iii) finally, the 
security quality attribute for the same reason, the 
method 
toMD5() is used to encrypt the user 
password. 
Finally, for answering the third question – (iii) 
what are the scenarios that contain potential 
tradeoff points among quality attributes? – the tool 
looks for scenarios affected by more than one 
quality attribute because they contain potentially 
tradeoff points among their quality attributes. The 
tool has identified that: (i) user authentication and 
mobile user authentication are potential scenarios to 
have  tradeoff because they are affected by 
performance, security and reliability; (ii) 
authenticated document generation is another 
potential  tradeoff  point because it addresses the 
reliability and security quality attributes; on the 
other hand (iii) the sending message does not 
represent a tradeoff point because it is only affected 
by the security quality attribute. These results are 
summarized in Table 1. 
The information identified automatically by our 
tool is useful to indicate to the architects and 
developers which specific scenarios and code assets 
they need to give more attention when evaluating or 
evolving the software architecture through the 
conduction of code inspections or the execution of 
manual or automated testing. In that way, our 
AutomatingtheArchitectureEvaluationofEnterpriseInformationSystems
337