SW Product Quality Analysis
SW Product Quality Analysis
=
=
|
|
|
|
.
|
\
|
(
(
(
(
=
n
k
m
n
kn
k
m
ARV
SPQFW
SPQMV
1
1
100
(8)
where
SPQFW is an emphasis factor of the Software Product Quality Factor
ARV is the analysis result value from the AnalysisResult table
n is the number of the different software product quality factors
m is the number of the different analysis result values of SPQF
k
TAMK University of Applied Sciences 55 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
quality model is created; one does not have to know the exact weight factors for all the
selected quality factors.
5.3.4 Presenting the Software Product Quality Models
The software product quality is a combination of 1 to n amount of quality models. Each
quality model represents different aspects of the overall quality based on the analysis
data stored in to the database.
Figure 12 illustrates one idea how software products quality could be presented to the
end users in the external Tieto SPQ analysis system viewer. In figure 12 there is an
imaginary progress of the software quality development of the product x during
observation period of one year. In this figure there are three quality models available for
the product x: the maintainability, the performance efficiency and the usability. The y-
axis represents the software product quality model value that is calculated with the
formula 8 from the previous chapter. The y-axis is a percentage value ranging from 0 to
100 where the higher value is better. The x-axis contains the reports observation
period.
Combining the data from the ProductLabel table with the data from the SPQMValue
table, one can insert more detailed information into the report charts. In figure 12 there
is an example where the performance efficiency has been affected because new analysis
tool configuration settings have been taken into use. The dark blue line in the graph
Figure 12. Development of the Software Product Quality during fixed observation period
(one year).
TAMK University of Applied Sciences 56 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
shows clearly the impact to the quality of the maintainability model between different
refactoring phases of the software product. The graph shows that refactoring in phase
one and phase two has dropped quality value dramatically for short period of time, but
overall the refactoring has increased the quality of the product. The graph also shows
that refactoring in phase three has dropped the overall quality so the conclusion is that
the refactoring in phase three was not a complete success. When the accuracy of the
data in the system evolves; one can offer more complex and precise reports to the end
users.
5.4 Services of Tieto SPQ Analysis System
Tieto SPQ analysis system will be delivered and installed as a fully working analysing
system. This will include all the necessary components for any company or team to start
analysing its software products. To make this possible Tieto SPQ analysis system has to
offer different kinds of services to make it easy for every team to start using quality
analyses. This chapter describes a few of those services: what they could be and what
their responsibilities would be. These services could be the installation and
configuration service; the analysing tools integration service; the help desk and training
service; and the quality consultation service.
5.4.1 Installation and Configuration Service
The Installation and Configuration Service (ICS) is a service that is needed when the
system is installed to the target group. The ICS is responsible for delivering Tieto SPQ
analysis system, installing the database and setting up all the connections and access
rights for the end users of the system. Depending on the selected quality model; the ICS
will distribute the needed analysis tools and their configuration and launch files.
5.4.2 Analysing Tools Integration Service
The Analysing Tools Integration Service (ATIS) is a service that maintains and offers
help and tools for different analysing purposes. Its main purpose is to provide all the
needed tools to evaluate software product quality model metrics. Before any tool can be
added to the ATIS list, it must be evaluated and right configuration data gathered to
prevent faulty analysis results. All the tool binaries are distributed from Tieto SPQ
TAMK University of Applied Sciences 57 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
analysis system server. This allows ATIS to manage tool updates in one centralised
way.
By default the ATIS offers tool configurations as an Apache Ant script file. The Apache
Ant is a task based build tool written in Java. It can be used to run different tasks like
execute, copy, delete, create folder and so on. The Apache Ant is also extendable so if
some functionality is not included in the core Ant libraries; one can easily create custom
Ant tasks with J ava. The configuration file does not contain any knowledge about
project files. This means that it can be launched independently during build phase. The
complete configuration and launch files can be found from appendix 1 and appendix 2.
In the program listing 1 is a piece of configuration file showing PMD tool settings that
is used to pass different parameters to the analysis tool. All the tools settings can be
configured from this file.
This configuration file contains all the settings for all the analysis tools supported by the
system. The configuration file is not meant to be installed to the build machines; instead
it is linked from Tieto SPQ analysis system server in the actual launch file. By keeping
the configuration file in the server side gives the ATIS a better control over the settings.
If one wants later on to change some analysis tools configuration, it is done in the
server. Next time analyses are run all the build machines get the updated settings.
When a new analysis tool is added to the ATIS it must go through the evaluation and
validation phase. During this phase, the tool is examined more closely and it is
configured correctly to be suited for the quality metric(s) it is analysing. After the initial
Program listing 1: Example of an ant configuration for software quality
analysis tools
### Conf i gur at i on f i l e st ar t s ###
### PMD ###
pmd_out put _f i l e=pmd_r esul t s. xml
pmd_out put _f ol der =pmd
pmd_ant _t ask_cl assname=net . sour cef or ge. pmd. ant . PMDTask
pmd_use_shor t _f i l e_names=t r ue
pmd_f or mat t er _t ype=xml
pmd_r ul eset =r ul eset s/ f avor i t es. xml
.
.
### Conf i gur at i on f i l e ends ###
TAMK University of Applied Sciences 58 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
settings are clarified, the tools settings are added to the configuration file and the tool is
ready to be used.
The program listing 2 shows a piece from the actual launch file. This file is executed in
the build machine and it will get all its settings from Tieto SPQ analysis system servers
configuration file. The launch file is used to control which analyses tools are run and
where they output the analyses results for post-processing.
5.4.3 Help Desk and Training Servi ce
The Help Desk and Training Service (HDTS) is a service that has two main
responsibilities; handling support tickets and to train new users. The help desk service is
responsible for general support tasks; such as, providing support by phone and email.
The training service is responsible for creating and distributing e-learning materials as
well as giving hands-on class trainings that will teach Tieto SPQ analysis system
functionalities to the end users.
Program listing 2: Ant launch file for running software quality analysis tools
<! - - ========================================================================== - - >
<! - - Run sof t war e qual i t y anal ysi s t ool s - - >
<! - - ========================================================================== - - >
<t ar get name="run_software_product_quality_analysis">
<echo>I ni t i al i zi ng di r ect or y st r uct ur e. . . </ echo>
<mkdi r di r ="${quality_analysis_results_dir}"/ >
<mkdi r di r ="${quality_analysis_binaries_dir}"/ >
<echo>Copyi ng bi nar i es t o anal yse. . . </ echo>
<copy t odi r ="${quality_analysis_binaries_dir}"
f ai l oner r or ="true"
over wr i t e="true">
<f i l eset di r ="${product_binaries}/ ">
<i ncl ude name="*.jar"/ >
</ f i l eset >
</ copy>
<echo>St ar t i ng PMD anal ysi s. . . </ echo>
<ant cal l t ar get ="pmd"/ >
</ t ar get >
<! - - ========================================================================== - - >
<! - - PMD anal ysi s - - >
<! - - ========================================================================== - - >
<t ar get name="pmd">
<t askdef name="pmd" cl assname="${pmd_ant_task_classname}"/ >
<mkdi r di r ="${quality_analysis_results_dir}/${pmd_output_folder}/"/ >
<pmd shor t Fi l enames="${pmd_use_short_file_names}">
<r ul eset >${pmd_ruleset}</ r ul eset >
<f or mat t er t ype="${pmd_formatter_type}"
t oFi l e="${quality_analysis_results_dir}/${pmd_output_folder}/
${pmd_output_file}"/ >
<f i l eset r ef i d="product_plugin_source_files"/ >
</ pmd>
</ t ar get >
TAMK University of Applied Sciences 59 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
5.4.4 Qualit y Consultation Service
The Quality Consultation Services (QCS) is responsible to offer help in different
quality oriented situation. It can be used to order new quality models for the company,
to give training in quality issues or to order the evaluation team to validate the software
product quality. The services of the QCS should not be free of charge. It should be
chargeable for Tieto SPQ analysis system customers and this money should be used to
implement more accurate software product quality analyses for the end users.
5.5 Software Analysis Data Management
All the software analysis tools are run in the build servers automatically during different
build phases. In the end these analysis results are stored in the MySQL database but
before that they have to be collected and harmonised in a managed way. By using the
unified harmonisation process one can guarantee that all software products are treated
equally in Tieto SPQ analysis system. This chapter describes one possible solution for
the software analysis data management.
Figure 13. Overview of the analysis data collecting management.
TAMK University of Applied Sciences 60 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
Figure 13 shows the basic architecture for the software analysis data management in
Tieto SPQ analysis system. The software analysis data management is divided into two
phase: to the analysis data collecting phase and to the analysis data processing phase.
In the data collecting phase, the product is built in the build server and the specific
Apache Ant script is run to launch wanted analysis tools. The analysis results are saved
to folders specified by the Apache Ant configuration file. In order to get the results from
the build servers to Tieto SPQ analysis system, they have to be sent in a controlled way.
This could be done by using specially designed Apache Ant task.
In figure 13 the RAC (Raw Analysis data Collector) container represents the analysis
data collector Apache Ant task. This task could be written in Java and Tieto SPQ
analysis systems the ATIS service could be in charge of distributing this to the
different build servers. By using Apache Ant task to send the analysis data, gives us the
advantage of an easy integration with the other ATIS analysis tool launch and
configuration files. All the needed configurations for the RAC could be stored to the
same Apache Ant configuration file defined by the ATIS. Because the configuration file
is meant to be located in the server; any future adjusting will be automatically updated
to build phases next time they are run.
To start the analysis processing phase, the RAC must send required analysis result files
and to invoke the analysis data processing web service. FTP (File Transfer Protocol)
could be used to send the analysis result files into a specific folder in Tieto SPQ
analysis system server. Also to successfully emit the analysis data for the correct
product and for the correct software product quality factor; the RAC must pass on to the
web service the product name, the measurement id and the URI (Uniform Resource
Identifier) of the analysis result files.
The product name can be either configured to the Apache Ant configuration file by the
ATIS or dynamically read from the build server. The measurement id is a 32-bit GUID
that is used to determine which tool is performing the current measurement and which
software product quality factor it is measuring. The measurement id has to be found
TAMK University of Applied Sciences 61 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
from Tieto SPQ analysis system database and therefore it is configured by the ATIS
when the analysis tool is integrated with the other ATIS tools.
The second half of the figure 13 contains the analysis data processing phase. This data
processing is done in Tieto SPQ analysis system server and it is invoked through a web
service call. The figure 13 shows different layers of the data processing mechanism in
Tieto SPQ analysis system: the analysis data validation management; the analysis tool
parser (ATP) management; the harmonisation and calculation management; and the
analysis data storage management.
The analysis data validation management layer is responsible of validating the input
from the RAC Apache Ant task and to pass on the data to the correct analysis tool
parser in the ATP management layer. The measurement id can tell the used analysis tool
and version; and that information can be used to select the correct ATP from the ATP
management layer. The product name is used to retrieve the correct product id from the
database so that it can be inserted to the AnalysisResults table by the analysis data
storage management layer. The analysis data storage management layer is responsible
of storing the analysis results into the correct tables in the database.
The analysis tool parser management layer is responsible for containing the correct
parser implementation to each of the analysis tools that are recognised by the system. In
figure 13, the ATP
1
to the ATP
n
represents the different analysis tool parsers that are
supported by the system. The architecture of this layer has to be very extendable
because each time a new analysis tool is integrated to Tieto SPQ analysis system, a new
parser has to be added as well. This could be achieved, for example, by using some sort
of APT Manager. This ATP Manager would select and start the correct parser for the
input, collect the parsed data and pass the data on to the harmonisation and calculation
management layer.
The harmonisation and calculation management layer is responsible for scaling the
parsed analysis tool data to correct format and passing the data to the analysis data
storage management layer. In figure 13 the ATL
1
to the ATL
n
(Analysis Tool Logic),
illustrates business logic components for each of the analysis tool parser output.
TAMK University of Applied Sciences 62 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
Together these components compose the business logic how different analysis results
are converted and harmonised so that they can be stored into the database. This layer
also has to be extendable because a new ATL component is needed when a new ATP
component is added to the system.
TAMK University of Applied Sciences 63 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
5.6 Database Architecture
The data storage for the analysing results is a MySQL database. The MySQL database
was chosen because it is widely spread and used; it is open source database; and it was
already in use in other Tieto ETB systems.
The appendix 3 contains the whole database schema for Tieto SPQ analysis system. The
designed database is a combination from different layers. Each layer represents a logical
entity that is divided into separate tables. Different layers are the Software Product
Layer (SPL), the Software Product Quality Model Layer (SPQML), the Software
Quality Library Layer (SQLL), the Software Product Quality Analysis Layer (SPQAL)
and the Analysis Configuration Layer (ACL). The appendix 3 also shows the full
relationships between different database tables. Following sub chapters describe
purpose of each of these layers in more detail.
5.6.1 Design Principles
All the tables in Tieto SPQ analysis system database contain unique auto-id to identify
individual entities of each table. Using the unique auto-id for each table also helps
indexing the tables better. Four different data types were used in Tieto SPQ analysis
system database schema design; Integer (INT), Decimal, Date and Varchar.
The integer data type was used for automatic ids; the decimal data type was used for
different emphasis factors and analyses result values; the date data type was used to
store timestamps for important events and the varchar data type was chosen because it
allows storing strings with variable-length. According to MySQL documentation
(MySQL 5.0 Reference Manual) the varchar data type takes less space than the fixed
size char data type; when it is used to save an empty string value. It was logical to use
the varchar data type especially for the different description fields because they are
optional and thus empty description fields do not take unnecessary space.
5.6.2 Software Product Layer
The Software Product Layer (SPL) in figure 14 contains all the software product related
information in Tieto SPQ analysis system. This layers main responsibility is to keep
TAMK University of Applied Sciences 64 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
track of the products that are monitored by the system. This layer also contains tables
for very light-weight user management.
Table 29 contains the schema of the ProgrammingLanguage table. The Programming-
Language table is used to identify different programming languages that the product can
have. The programming language knowledge can be used to specify which analysis
tools are provided for analyses. The programming language can also be used when one
wants to see a quality report separately for example to C++and Java. The programming
language is mapped with many-to-many relationship, the
Product_has_ProgrammingLanguage table, to the Product table. Multiple programming
languages can be used to develop the product and same programming language is used
in multiple products.
Figure 14. Software Product Layer from the SoPQAS database schema.
Table 30. Schema of the ProductLabel table.
Column Datatype Required Descripti on
idProductLabel INT Yes Unique auto-id for the product label entity
idProduct INT Yes
The product that this product label belongs
to
LabelDescription VARCHAR(64) Yes Description of the product label
LabelDate DATE Yes The date value of the product label
Table 29. Schema of the ProgrammingLanguage table.
Column Datatype Required Descripti on
idProgrammingLanguage INT Yes
Unique auto-id for the
programming language entity
Name VARCHAR(32) Yes
Name of the programming
language
Description VARCHAR(128) No
Optional. Description of the
programming language
TAMK University of Applied Sciences 65 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
Table 30 contains the schema of the ProductLabel table. The ProductLabel table is used
for storing different comments about the product. The comment can be a version
number or some other development issue that may have changed the outcome of the
quality analyses. The ProductLabel can be used in a presentation layer to show
additional information to the user.
Table 31 contains the schema of the Project table. The project table stores all projects
recognized by Tieto SPQ analysis system. The project can have multiple products and it
must be created to the system before any products can be added. The project is mapped
with many-to-many relationship, the Project_has_User table, to the User table. This
means that the project can have multiple users and the user can participate in multiple
projects.
Table 32 contains the schema of the User table. The User table is an optional table for
Tieto SPQ analysis system. It offers light-weight user management to restrict
unauthorized access to analyses data. It is meant to be used to verify does the user have
access rights to view analyses results for selected products. This table is optional
because it is really meant to be used only in development and testing phases of the
system.
In the real production environment more sophisticated user management should be
used. This could be done using LDAP (Lightweight Directory Access Protocol) or other
Table 31. Schema of the Project table.
Column Datatype Required Descripti on
idProject INT Yes
Unique auto-id for the project
entity
Name VARCHAR(64) Yes Name of the project
Description VARCHAR(128) No
Optional. Description of the
project
Table 32. Schema of the User table.
Column Datatype Required Descripti on
idUser INT Yes Unique auto-id for the user entity
Username VARCHAR(32) Yes Username for the user
Password VARCHAR(32) Yes Password for the user (MD5 checksum)
Firstname VARCHAR(32) Yes User's firstname
Lastname VARCHAR(32) Yes User's lastname
Email VARCHAR(64) Yes User's email address
TAMK University of Applied Sciences 66 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
similar authentication protocols. The user identification should also be done in correct
business logic layer.
Table 33 contains the schema of the Product table. The Product table is the heart of the
system and it also contains most foreign keys to other tables. It is used to store all the
products that contain analyses data. The idProject column is used in one-to-many
relationship with the Project table to identify the project that the product belongs to.
5.6.3 Software Product Quality Model Layer
The Software Product Quality Model Layer (SPQML) in figure 15 contains all the
information from the different software product quality models stored in Tieto SPQ
analysis system.
Figure 15. Software Product Quality Model Layer from the SoPQAS database schema.
Table 33. Schema of the Product table.
Column Datatype Required Descripti on
idProduct INT Yes Unique auto-id for the product entity
idProject INT Yes The project that this product belongs to
Name VARCHAR(64) Yes Name of the product
Description VARCHAR(128) No Optional. Description of the product
TAMK University of Applied Sciences 67 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
Table 34 contains the schema of the SPQM table. The Software Product Quality Model
(SPQM) table includes information of the different quality models stored in the system.
The SPQM is mapped with many-to-many relationship, the Product_has_SPQM table,
to the Product table. The software product can have multiple software product quality
models and the software product quality model can be used with multiple software
products. The SPQMWeight is an optional emphasis factor that can be used to adjust
the weight of the software product quality model in the calculation of the overall
software product quality.
Table 35 contains the schema of the SPQM_has_SPQFactor table. The
SPQM_has_SPQFactor table is a mapping table between the SPQM and the SPQFactor
tables. Each SPQFactor can belong to multiple software product quality models and
each software product quality model can have multiple SPQFactors. This table includes
the knowledge that tells how each software product quality model is made of. The
SPQFWeight is an emphasis factor that is used to specify how much weight SPQFactor
has in this particular software product quality model. The SPQFWeight is used in
calculation of the software product quality model value.
Table 34. Schema of the SPQM table.
Column Datatype Required Descripti on
idSPQM INT Yes Unique auto-id for the SPQM entity
Name VARCHAR(64) Yes Name of the SPQM
Description VARCHAR(256) No Optional. Description of the SPQM
SPQMWeight DECIMAL No
Optional. Emphasis factor for the
SPQM.
Table 35. Schema of the SPQM_has_SPQFactor table.
Column Datatype Required Descripti on
SPQM_idSPQM INT Yes Mapping id of theSPQM
SPQFactor_idSPQFactor INT Yes Mapping id of the SPQFactor
SPQFWeight DECIMAL Yes Emphasis factor for the SPQFactor
TAMK University of Applied Sciences 68 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
5.6.4 Software Quality Library Layer
The Software Quality Library Layer (SQLL) in figure 16 there is responsible for
providing information about different software product quality libraries.
table 36 contains the schema of the SPQFactor table. The Software Product Quality
Factor (SPQF) is a building block for creating a new software product quality model. It
is a smallest entity of the software product quality model that is measured by Tieto SPQ
analysis system. For example, the analysability could be an entity of the SPQFactor
when the software product quality library is the ISO/IEC 25000. The idSPQFLibrary
and the idSPQFCategory columns are used with one-to-many relationship to identify
what library and category this SPQFactor belongs to.
Figure 16. Software Quality Library Layer from the SoPQAS database schema.
Table 36. Schema of the SPQFactor table.
Column Datatype Required Descripti on
idSPQFactor INT Yes Unique auto-id for the SPQFactor entity
idSPQFLibrary INT Yes The quality library this SPQFactor is part of
idSPQFCategory INT No Optional. Category of the SPQFactor
Name VARCHAR(64) Yes Name of the SPQFactor
Description VARCHAR(128) No Optional. Description of the SPQFactor.
Table 37. Schema of the SPQLibrary table.
Column Datatype Required Descripti on
idSPQFLibrary INT Yes Unique auto-id for the SPQFLibrary entity
Name VARCHAR(64) Yes Name of the SPQFLibrary
Description VARCHAR(128) No Optional. Description of the SPQFLibrary
TAMK University of Applied Sciences 69 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
Table 37 contains the schema of the SPQLibrary table. Table contains information
about the different software quality libraries the system is familiar with. The ISO/IEC
9126 and the ISO/IEC 25000 are examples of possible software quality libraries in
Tieto SPQ analysis system.
Table 38 contains the schema of the SPQCategory table. The Software Product Quality
Category (SPQC) is an optional table to categorise software product quality factors. If
the SPQFactor is, for example, a resource utilisation, its optional SPQCategory could be
performance efficiency based on the ISO/IEC 25000 standard.
5.6.5 Software Product Quality Anal ysis Layer
The Software Product Quality Analysis Layer (SPQAL) in figure 17 holds all the data
from the quality analyses in Tieto SPQ analysis system. Layers main responsibility is
to store different analyses data and to provide it to the different quality reports.
Figure 17. Software Product Quality Analysis Layer from the SoPQAS database schema.
Table 38. Schema of the SPQCategory table.
Column Datatype Required Descripti on
idSPQFCategory INT Yes Unique auto-id for the SPQFCategory entity
Name VARCHAR(64) Yes Name of the SPQFCategory
Description VARCHAR(128) No Optional. Description of the SPQFCategory
Table 39. Schema of the SPQMValue table.
Column Datatype Required Descripti on
idSPQMValue INT Yes Unique auto-id for the SPQMValue entity
idProduct INT Yes The product this entity belongs to
idSPQM INT Yes The SPQM this entity represents of
SPQMValue DECIMAL Yes The calculated value of the SPQM
SPQMValueDate DATE Yes Date value when this entity was composed
TAMK University of Applied Sciences 70 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
Table 39 contains the schema of the SPQMValue table. This table is one of the most
important tables in the database. It is used to save the results for different software
product quality models. Values in this table are used when different kind of quality
reports are generated. Each calculated SPQMValue is linked to the correct product with
the idProduct id-value. The idSPQM column is used to identify which software product
quality model this SPQMValue belongs to.
Table 40 contains the schema of the AnalysisResult table. The AnalysisResults table is
the most important table in the database. It contains all the harmonised analyses results
from different build machines, evaluation teams etc. This table is used to calculate
SPQMValues for each software product quality models. The idProduct column is used
to identify the product this analysis result belongs to. The idAnalysisMeasurement
column can be used to identify what analysis tool and version was used to get specific
analysis data and which SPQFactor was measured.
Table 40. Schema of the AnalysisResult table.
Column Datatype Required Descripti on
idAnalysisResult INT Yes
Unique auto-id for the analysis result
entity
idProduct INT Yes The product this entity belongs to
idAnalysisMeasurement INT Yes
The measurement method that was used
to get this result
AnalysisResultValue DECIMAL Yes The stored value for this entity
AnalysisDate DATE Yes The date when this entity was measured
TAMK University of Applied Sciences 71 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
5.6.6 Analysis Configuration Layer
The Analysis Configuration Layer (ACL) in figure 18 contains the configuration data
for the different analysis tools used in Tieto SPQ analysis system.
Table 41 contains the schema of the AnalysisMeasurement table. The
AnalysisMeasurement table is a mapping table between the AnalysisResult and the
SPQFactor and the AnalysisPerformer tables. This table is used to identify which
analysis tools are used to measure specific SPQFactor. The idAnalysisPerformer
Figure 18. Analysis Configuration Layer from the SoPQAS database schema.
Table 41. Schema of the AnalysisMeasurement table.
Column Datatype Required Descripti on
idAnalysisMeasurement INT Yes
Unique auto-id for the analysis
measurement entity
GUID_AnalysisMeasurement VARCHAR(32) Yes
MD5 checksum of this analysis
reporter
idAnalysisPerformer INT Yes
The entity that is performing this
measurement
idSPQFactor INT Yes
The SPQFactor this measurement is
validating
TAMK University of Applied Sciences 72 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
identifies the actual tool behind the analysis. The idSPQFactor tells what software
product quality factor this measurement is validating. The GUID_AnalysisMeasurement
is a generated 32-bit MD5 checksum for the analysis data collecting process. This
identification can be used to make sure that the analysis data is reported to the right
SQPFactor and to the right analysis performer.
Table 42 contains the schema of the AnalysisPerformer table. The AnalysisPerformer
table contains the information of the analysis tools used to evaluate different SPQFactor
values. The Googles Testability Explorer analysing tool and a software quality
evaluation team are examples of the entities of this table. This information can be used
later on to create reports that tell which analysis tools were used in some particular
measurement. The PerformerWeight is an optional emphasis factor that can be used to
adjust the weight effect of this tool when its analysis results are combined.
Table 43 contains the schema of the AnalysisType table. The AnalysisType is an
optional table for typing the analysis performer. This table can be used to separate
things like dynamic or static analysing; and manual or automatic analysing.
Table 42. Schema of the AnalysisPerformer table.
Column Datatype Required Descripti on
idAnalysisPerformer INT Yes
Unique auto-id for the analysis performer
entity
Name VARCHAR(64) Yes Name of the analysis performer
Version VARCHAR(32) No
Optional. Version of the analysis
performer
Description VARCHAR(128) No
Optional. Description of the analysis
performer
idAnalysisType INT No
Optional. The type of the analysis
performer
PerformerWeight DECIMAL No
Optional. Factor to adjust the emphasis of
this entity
Table 43. Schema of the AnalysisType table.
Column Datatype Required Descripti on
idAnalysisType INT Yes Unique auto-id for the analysis type entity
Name VARCHAR(32) Yes Name of the analysis type
Description VARCHAR(128) No Optional. Description of the analysis type
TAMK University of Applied Sciences 73 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
6 Conclusions
Over the years the software products have grown bigger in size and complexity, and
that has raised the need for a good software quality assurance. To be able to provide a
sufficient level of software quality, different software quality assurance processes must
be in place. Unfortunately, these quality processes do not often take into account the
quality of the actual software product itself.
This led to the subject of this masters thesis, Tieto SPQ (Software Product Quality)
analysis system. The work in this masters thesis was done in two parts. Firstly, the
software quality was studied using software literature and the ISO/IEC 9126 and the
ISO/IEC 25000 family of standards. Secondly, the overall architecture of Tieto SPQ
analysis system was designed. One can say that this masters thesis serves as an
architecture specification for Tieto SPQ analysis system. All the necessary system
services and components were introduced; and the concept of software product quality
model was defined.
Although the overall architecture for Tieto SPQ analysis system is now defined, the
final implementation of the system has not started yet. It was decided that the actual
implementation phases would start after this system specification phase is complete.
The next step would be to start different development phases where all system
components will be implemented and put to work. This could be done in a separate
project or by using competence development paths of Tieto personnel. This would mean
that each of the system components is implemented by one or more of Tieto employee
as part of their career development exercises.
When Tieto SPQ analysis system has been implemented and it is running with several
projects, one big challenge is to find correct analysis tools for all different SPQFactors
provided by the system. The evaluation of the analysis tools could be done by few
preselected projects from different software fields. These projects should be used to
identify which analysis tools are mature enough for Tieto SPQ analysis system.
TAMK University of Applied Sciences 74 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
The database defined in this masters thesis is a very theoretical one because of the lack
of real-life analyses data. It can be used for storing the analyses results for different
SPQFactors but could still need some adjusting when the final system is implemented.
The lack of real-life analysis data also means that in order to supply sufficient amount
of reasonable reports to the end users, the analyses have to be executed for some period
of time before the data accuracy becomes feasible. The fine-tuning of the different
emphasis factors probably takes time too, perhaps one to two year. This is something
that has to be taken into account before Tieto SPQ analysis system is considered to be
provided to external customers of Tieto ETB.
One possibility to decrease the time to market of Tieto SPQ analysis system would be to
use some existing analysis softwares that already would contain multiple analysis tools
to validate different SPQFactors of the used software product quality model. Finding
and validating these existing systems would require once again another evaluation
phase but in the end it could save time compared to the situation where each of the
analysis tools is evaluated separately.
Some of the SPQFactors from the ISO/IEC 9126 and the ISO/IEC 25000 standards will
require the usage of evaluation teams. They cannot be simply measured automatically
by an analysis tool; instead, they require human interaction in order to be validated.
This process was recognised in this masters thesis but the actual process still needs to
be defined in detail. This is part of the detailed definition of the Quality Consultation
Service (QCS).
There exist tremendous possibilities in the concept of Tieto SPQ analysis system,
especially because it is designed not only for the statical analyses tools but also to
support the usage of evaluation teams. It would stand out from other analysis systems
because it would support concepts from the ISO/IEC 9126 and the ISO/IEC 25000
standards. A lot of issues were covered during this masters thesis but a lot of work is
still required before the system is up and running completely. In order to make Tieto
SPQ analysis system compelling and competitive against other analysis system, the
implementation and data collecting phases should be started as soon as possible.
TAMK University of Applied Sciences 75 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
References
Books, articles and web pages
Ioannis G. Stamelos, and Panagiotis Sfetsos, 2007. Agile Software Development
Quality Assurance, Information Science Reference.
Kan, H. Stephen, 2002. Metrics and Models in Software Quality Engineering, Second
Edition. Addisson Wesley.
Tian, J eff, 2005, Software Quality Engineering Testing, Quality Assurance, and
Quantifiable Improvement, John Wiley & Sons, Inc.
Lee, T. Alice, Gunn Todd, Pham Tuan and Ricaldi Ron, 1994. Technical Memorandum
104799: Software Analysis Handbook - Software Complexity Analysis
and Software Reliability Estimation and Prediction [pdf-file].
[referred to 09.06.2009] Available:
http://ston.jsc.nasa.gov/collections/TRS/_techrep/TM-1994-104799.pdf
M. El Wakil, A. El Bastawissi, M. Boshra, and A. Fahmy, 2nd International Conference
on Informatics and Systems (INFOS04), 2004. Object-Oriented Design
Quality Models A Survey and Comparison. [pdf-file].
[referred to 09.10.2009] Available:
http://homepages.wmich.edu/~m5elwakil/INFOS04_ElWakil.pdf
Laing Victor, Coleman Charles, Manager, SATC, 2001. Principal Components of
Orthogonal Object-Oriented Metrics (323-08-14),
White Paper Analyzing Results of NASA Object-Oriented Data. [pdf-
file].
[referred to 10.10.2009] Available:
http://satc.gsfc.nasa.gov/support/OSMASAS_SEP01/Principal_Componen
ts_of_Orthogonal_Object_Oriented_Metrics.pdf
Dr. Rosenberg, Linda H., Unisys Goverment Systems; Hyatt, Lawrence E., Software
Assurance Technology Center. 1996. Unisys Technology Conference.
Software Quality Metrics for Object-Oriented Environments. [pdf-file].
TAMK University of Applied Sciences 76 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
[referred to 10.10.2009] Available:
http://satc.gsfc.nasa.gov/support/CROSS_APR97/oocross.PDF
Bansiya Jagdish, Davis Carl G. , 2002 , A Hierarchical Model for Object-Oriented
DesignvQuality Assessment, IEEE Transactions on Software Engineering,
vol. 28, No. 1, January 2002.
Dr. Rosenberg, Linda H., Software Assurance Technology Center. 1998. Software
Technology Conference. Applying and Interpreting Object-Oriented
Metrics. [pdf-file].
[referred to 10.10.2009] Available:
http://satc.gsfc.nasa.gov/support/STC_APR98/apply_oo/apply.pdf
MySQL 5.0 Reference Manual, 10 Datatypes, 10.4 String Types, 10.4.1 - The CHAR
and VARCHAR Types. [Online]
[referred to 19.10.2009] Available:
http://dev.mysql.com/doc/refman/5.0/en/char.html
TAMK University of Applied Sciences 77 (77)
Degree Programme in Information Technology, Master's Degree
Mika Immonen
Standards
ISO/IEC 9126-1:2000, ISO/IEC FDIS 9126-1:2000(E), Software engineering - Product
quality - Part 1: Quality model
ISO/IEC 9126-2:2001, ISO/IEC J TC1/SC7 N2419 9126-2, 17.01.2001, DTR 9126-2:
Software Engineering - Product Quality Part 2 - External Metrics
ISO/IEC 9126-3:2001, ISO/IEC J TC1/SC7 N2416 9126-3, 16.01.2001, DTR 9126-3:
Software Engineering - Product Quality Part 3 - Internal Metrics
ISO/IEC 9126-4:2001, ISO/IEC J TC1/SC7 N2430 9126-4, 02.02.2001, DTR 9126-4:
Software Engineering Software Product Quality - Part 4: Quality In Use Metrics
ISO/IEC 25000:2005, ISO/IEC J TC1/SC7 N3163, FCD 25000 - Software Engineering
- Software product Quality Requirements and Evaluation (SQuaRE) - Guide to
SQuaRE.
ISO/IEC 25010:2009, ISO/IEC J TC1/SC7 N4231, 17.02.2009 , CD 25010.3, Software
engineering -Software product Quality Requirements and Evaluation (SQuaRE) Quality
model
Tietos internal materials
Nevalainen, Risto. 2009. Senior Advisor, e-mail message 2.3.2009, FISMA (Finnish
Software Measurement Association), process management theme group, ISO
standardisation.
Aaltonen, Juha, Software Engineer. Koivu, Vesa, Information Solutions Manager. 2009.
ETB Technical overview.ppt, PowerPoint presentation 3.6.2009.
TAMK University of Applied Sciences APPENDIX 1
Degree Programme in Information Technology, Master's Degree 1(1)
Mika Immonen
Appendix 1: A Configuration File to Run Analysis Tools with Ant .
####################################################################################
# #
# Thi s f i l e cont ai ns conf i gur at i on dat a t o sof t war e pr oduct qual i t y anal ysi s t ool s #
####################################################################################
### Conf i gur at i on f i l e st ar t s ###
### Fi ndbugs ###
f i ndbugs_home_pat h=/ home/ <user name>/ . hudson/ anal ysi s_t ool s/ f i ndbugs- 1. 3. 8
f i ndbugs_out put _pat h=
f i ndbugs_out put _f i l e=f i ndbugs_r esul t s. xml
f i ndbugs_out put Opt i on=xml : wi t hMessages
f i ndbugs_out put _f ol der =f i ndbugs
f i ndbugs_ant _t ask_cl assname=edu. umd. cs. f i ndbugs. ant t ask. Fi ndBugsTask
f i ndbugs_ant _j vmar gs=" - Xmx512M"
### PMD ###
pmd_out put _f i l e=pmd_r esul t s. xml
pmd_out put _f ol der =pmd
pmd_ant _t ask_cl assname=net . sour cef or ge. pmd. ant . PMDTask
pmd_use_shor t _f i l e_names=t r ue
pmd_f or mat t er _t ype=xml
### Checkst yl e ###
checkst yl e_home_pat h=/ home/ <user name>/ . hudson/ anal ysi s_t ool s/ checkst yl e- 5. 0
checkst yl e_t askdef _r esour ce_cl asspat h_j ar =checkst yl e- al l - 5. 0. j ar
checkst yl e_conf i g_f i l e=sun_checks. xml
checkst yl e_out put _f ol der =checkst yl e
checkst yl e_out put _f i l e=checkst yl e_r epor t . xml
### CPD ###
cpd_out put _f ol der =cpd
cpd_out put _f i l e=cpd_r esul t s. xml
cpd_mi ni mum_t oken_count =100
cpd_ant _t ask_cl assname=net . sour cef or ge. pmd. cpd. CPDTask
cpd_out put _f or mat =xml
cpd_sour ce_code_l anguage=j ava
### CCCC ####
cccc_home_di r =/ home/ <user name>/ . hudson/ anal ysi s_t ool s/ cccc- 3. 1. 4/ cccc/
cccc_shel l _cmd_di r =/ home/ <user name>/ . hudson/ anal ysi s_t ool s/ cccc- 3. 1. 4/ cccc_shel l _cmd
cccc_shel l _command_f i l e=r un_cccc. sh
cccc_os=Li nux
cccc_ant _exec=sh
cccc_out put _f ol der =cccc
cccc_execut abl e_name=cccc
cccc_out put _f i l e=cccc_r esul t s. xml
cccc_f ai l oner r or =t r ue
cccc_l ang=j ava
cccc_sour ce_code_f i l e_ext ensi on_at t r i but e=*. j ava
### Test abi l i t y Expl or er ###
t est abi l i t y_out put _f ol der =t est abi l i t y
t est abi l i t y_out put _f i l e=t est abi l i t y_r esul t s. xml
t est abi l i t y_er r or _f i l e=t est abi l i t y_er r or s. t xt
t est abi l i t y_pr i nt _det ai l =xml
t est abi l i t y_pr i nt dept h=0
t est abi l i t y_mi ncost =1
t est abi l i t y_maxexcel l ent cost =50
t est abi l i t y_maxaccept abl ecost =100
t est abi l i t y_wor st of f ender count =20
t est abi l i t y_cycl omat i c=1
t est abi l i t y_gl obal =10
t est abi l i t y_ant _t ask_cl assname=com. googl e. ant . Test abi l i t yTask
t est abi l i t y_ant _t ask_cl asspat h_val ue=/ opt / apache- ant - 1. 7. 0/ l i b/ ant - t est abi l i t y- expl or er -
1. 3. 0- r 275. j ar ; / opt / apache- ant - 1. 7. 0/ l i b/ t est abi l i t y- expl or er - 1. 3. 0- r 275. j ar
### Conf i gur at i on f i l e ends ###
TAMK University of Applied Sciences APPENDIX 2
Degree Programme in Information Technology, Master's Degree 1(4)
Mika Immonen
continued
Appendix 2: A Launch File to Run Analysis Tools with Ant.
<?xml ver si on="1.0" encodi ng="UTF-8"?>
<! - -
PURPOSE:
========
Thi s f i l e cont ai ns t ool Ant t ask conf i gur at i ons f or sof t war e pr oduct qual i t y
anal ysi s.
Cur r ent l y suppor t ed anal ysi s t ool s ar e
Fi ndbugs ( ht t p: / / f i ndbugs. sour cef or ge. net / manual / i nt r oduct i on. ht ml ) :
====================================================================
Fi ndBugsi s a pr ogr amt o f i nd bugs i n J ava pr ogr ams. I t l ooks f or i nst ances of
" bug pat t er ns" code i nst ances t hat ar e l i kel y t o be er r or s.
PDM ( ht t p: / / pmd. sour cef or ge. net / ) :
==================================
PMD scans J ava sour ce code and l ooks f or pot ent i al pr obl ems l i ke:
* Possi bl e bugs - empt y t r y/ cat ch/ f i nal l y/ swi t ch st at ement s
* Dead code - unused l ocal var i abl es, par amet er s and pr i vat e met hods
* Subopt i mal code - wast ef ul St r i ng/ St r i ngBuf f er usage
* Over compl i cat ed expr essi ons - unnecessar y i f st at ement s, f or l oops t hat coul d
be whi l e l oops
* Dupl i cat e code - copi ed/ past ed code means copi ed/ past ed bugs
.
Checkst yl e ( ht t p: / / wi ki . hudson- ci . or g/ di spl ay/ HUDSON/ Checkst yl e+Pl ugi n) :
========================================================================
The Checkst yl e pl ug- i n scans f or checkst yl e- r esul t . xml f i l es i n t he bui l d wor kspace
and r epor t s t he number of war ni ngs f ound.
CPD( ht t p: / / pmd. sour cef or ge. net / cpd. ht ml ) :
=========================================
CPD i s par t of t he PMD t ool . CPD st ands f or Copy- Past e- Det ect or and i t
can be used t o check dupl i cat e code bl ock f r omt he sour ce.
CCCC ( ht t p: / / wi ki . hudson- ci . or g/ di spl ay/ HUDSON/ CCCC+Pl ugi n) :
============================================================
CCCC i s a t ool whi ch anal yzes C++ and J ava f i l es and gener at es a r epor t on var i ous
met r i cs of t he code. Met r i cs suppor t ed i ncl ude l i nes of code, McCabe' s compl exi t y
and met r i cs pr oposed by Chi damber &Kemer er and Henr y&Kaf ur a.
Test abi l i t y Expl or er
( ht t p: / / wi ki . hudson- ci . or g/ / di spl ay/ HUDSON/ Test abi l i t y+Expl or er +Pl ugi n) :
==================================================================================
Test abi l i t y Expl or er i s an open- sour ce t ool t hat i dent i f i es har d- t o- t est J ava code.
Test abi l i t y Expl or er pr ovi des a r epeat abl e obj ect i ve met r i c of " t est abi l i t y. " Thi s
met r i c becomes a key component of engi neer i ng a soci al change wi t hi n an
or gani zat i on of devel oper s. The Test abi l i t y Expl or er r epor t pr ovi des act i onabl e
i nf or mat i on t o devel oper s whi ch can be used as measur e of pr ogr ess t owar ds a goal
and a gui de t o r ef act or i ng t owar ds a mor e t est abl e code- base.
Fur t her i nf or mat i on can be f ound:
ht t p: / / googl et est i ng. bl ogspot . com/ 2008/ 10/ t est abi l i t y- expl or er - measur i ng. ht ml
HOWTO CONFI GURATE:
===================
Add each new t ool as own t ar get and t hen cal l t hemf r om
r un_sof t war e_pr oduct _qual i t y_anal ysi s t ar get .
The common anal ysi s t ool conf i gur at i on dat a i s r ead f r om
sof t war e_pr oduct _qual i t y_anal ysi s_t ool s. pr oper t i es f i l e
- - >
<pr oj ect name="Software Product Quality Analysis Tools Package for ETB Linux Build"
def aul t ="run_software_product_quality_analysis">
<! - - ========================================================================== - - >
<! - - Used pr oper t y f i l e( s) - - >
<! - - ========================================================================== - - >
<pr oper t y f i l e="software_product_quality_analysis_tools.properties"/ >
TAMK University of Applied Sciences APPENDIX 2
Degree Programme in Information Technology, Master's Degree 2(4)
Mika Immonen
continued
<! - - ========================================================================== - - >
<! - - Ot her def aul t val ues - - >
<! - - ========================================================================== - - >
<pr oper t y name="quality_analysis_results_dir"
val ue="${env.WORKSPACE}/quality_analysis_results"/ >
<pr oper t y name="quality_analysis_binaries_dir"
val ue="${quality_analysis_results_dir}/binaries"/ >
<! - - ========================================================================== - - >
<! - - Scanned sour ce f i l es - - >
<! - - ========================================================================== - - >
<f i l eset i d="product_plugin_source_files" di r ="${product_plugin_dist_root}/src/">
<i ncl ude name="**/*.java"/ >
</ f i l eset >
<! - - ========================================================================== - - >
<! - - Run sof t war e qual i t y anal ysi s t ool s - - >
<! - - ========================================================================== - - >
<t ar get name="run_software_product_quality_analysis">
<echo>I ni t i al i zi ng di r ect or y st r uct ur e. . . </ echo>
<mkdi r di r ="${quality_analysis_results_dir}"/ >
<mkdi r di r ="${quality_analysis_binaries_dir}"/ >
<echo>Copyi ng bi nar i es t o anal yse. . . </ echo>
<copy t odi r ="${quality_analysis_binaries_dir}"
f ai l oner r or ="true"
over wr i t e="true">
<f i l eset di r ="${product_binaries} /">
<i ncl ude name="*.jar"/ >
</ f i l eset >
</ copy>
<echo>St ar t i ng Fi ndBugs anal ysi s. . . </ echo>
<ant cal l t ar get ="findbugs"/ >
<echo>St ar t i ng PMD anal ysi s. . . </ echo>
<ant cal l t ar get ="pmd"/ >
<echo>St ar t i ng Checkst yl e anal ysi s. . . </ echo>
<ant cal l t ar get ="checkstyle"/ >
<echo>St ar t i ng CPD anal ysi s. . . </ echo>
<ant cal l t ar get ="cpd"/ >
<echo>St ar t i ng CCCC anal ysi s. . . </ echo>
<ant cal l t ar get ="cccc"/ >
<echo>St ar t i ng Test abi l i t y Expl or er anal ysi s. . . </ echo>
<ant cal l t ar get ="testability_explorer"/ >
</ t ar get >
<! - - ========================================================================== - - >
<! - - Fi ndBugs anal ysi s - - >
<! - - ========================================================================== - - >
<t ar get name="findbugs">
<t askdef name="findbugs" cl assname="${findbugs_ant_task_classname}"/ >
<pr oper t y name="findbugs.home" val ue="${findbugs_home_path}" / >
<mkdi r di r ="${quality_analysis_results_dir}/${findbugs_output_folder}/"/ >
<f i ndbugs
home="${findbugs.home}"
j vmar gs="${findbugs_ant_jvmargs}"
out put ="${findbugs_outputOption}"
out put Fi l e="${quality_analysis_results_dir}/${findbugs_output_folder}/
${findbugs_output_file}" >
<sour cePat h pat h="${product_plugin_dist_root}/src/"/ >
<cl ass l ocat i on="${quality_analysis_binaries_dir}/${product_pluginID}_
${product_version}.jar" / >
</ f i ndbugs>
</ t ar get >
TAMK University of Applied Sciences APPENDIX 2
Degree Programme in Information Technology, Master's Degree 3(4)
Mika Immonen
continued
<! - - ========================================================================== - - >
<! - - PMD anal ysi s - - >
<! - - ========================================================================== - - >
<t ar get name="pmd">
<t askdef name="pmd" cl assname="${pmd_ant_task_classname}"/ >
<mkdi r di r ="${quality_analysis_results_dir}/${pmd_output_folder}/"/ >
<pmd shor t Fi l enames="${pmd_use_short_file_names}">
<r ul eset >r ul eset s/ f avor i t es. xml </ r ul eset >
<r ul eset >basi c</ r ul eset >
<f or mat t er t ype="${pmd_formatter_type}"
t oFi l e="${quality_analysis_results_dir}/${pmd_output_folder}/
${pmd_output_file}"/ >
<f i l eset r ef i d="product_plugin_source_files"/ >
</ pmd>
</ t ar get >
<! - - ========================================================================== - - >
<! - - Checkst yl e anal ysi s - - >
<! - - ========================================================================== - - >
<t ar get name="checkstyle">
<t askdef
r esour ce="checkstyletask.properties"
cl asspat h="${checkstyle_home_path}/
${checkstyle_taskdef_resource_classpath_jar}"/ >
<mkdi r di r ="${quality_analysis_results_dir}/${checkstyle_output_folder}/"/ >
<checkst yl e conf i g="${checkstyle_home_path}/${checkstyle_config_file}"
f ai l ur ePr oper t y="checkstyle.failure"
f ai l OnVi ol at i on="false">
<f or mat t er t ype="xml"
t of i l e="${quality_analysis_results_dir}/${checkstyle_output_folder}/
${checkstyle_output_file}"/ >
<f i l eset r ef i d="product_plugin_source_files"/ >
</ checkst yl e>
<! - -
<st yl e i n=" checkst yl e_r epor t . xml " out =" checkst yl e_r epor t . ht ml "
st yl e=" checkst yl e. xsl " / >
- - >
</ t ar get >
<! - - ========================================================================== - - >
<! - - CPD( Copy- Past e- Det ect or ) anal ysi s - - >
<! - - ========================================================================== - - >
<t ar get name="cpd">
<mkdi r di r ="${quality_analysis_results_dir}/${cpd_output_folder}/"/ >
<t askdef name="cpd" cl assname="${cpd_ant_task_classname}" / >
<cpd
mi ni mumTokenCount ="${cpd_minimum_token_count}"
l anguage="${cpd_source_code_language}"
f or mat ="${cpd_output_format}"
out put Fi l e="${env.WORKSPACE}/quality_analysis_results/cpd/cpd_results.xml">
<f i l eset r ef i d="product_plugin_source_files"/ >
</ cpd>
</ t ar get >
TAMK University of Applied Sciences APPENDIX 2
Degree Programme in Information Technology, Master's Degree 4(4)
Mika Immonen
<! - - ========================================================================== - - >
<! - - CCCC anal ysi s - - >
<! - - ========================================================================== - - >
<t ar get name="cccc">
<mkdi r di r ="${quality_analysis_results_dir}/${cccc_output_folder}/"/ >
<copy t odi r ="${quality_analysis_results_dir}/${cccc_output_folder}"
f ai l oner r or ="${cccc_failonerror}"
over wr i t e="true">
<f i l eset di r ="${cccc_shell_cmd_dir}">
<i ncl ude name="${cccc_shell_command_file}"/ >
</ f i l eset >
</ copy>
<exec di r ="${cccc_home_dir}/${cccc_shell_cmd_dir}"
execut abl e="${cccc_ant_exec}"
os="${cccc_os}"
f ai l oner r or ="${cccc_failonerror}">
<ar g val ue="${cccc_shell_command_file}"/ >
<ar g val ue="${env.WORKSPACE}"/ >
<ar g val ue="${cccc_source_code_file_extension_attribute}"/ >
<ar g val ue="${cccc_home_dir}/${cccc_executable_name}"/ >
<ar g val ue="${cccc_output_file}"/ >
<ar g val ue="${cccc_lang}"/ >
</ exec>
</ t ar get >
<! - - ========================================================================== - - >
<! - - Test abi l i t y Expl or er anal ysi s - - >
<! - - ========================================================================== - - >
<t ar get name="testability_explorer">
<mkdi r di r ="${quality_analysis_results_dir}/${testability_output_folder}/"/ >
<t askdef name="testability" cl assname="${testability_ant_task_classname}"
cl asspat h="${testability_ant_task_classpath_value}"/ >
<t est abi l i t y f i l t er =""
r esul t f i l e="${quality_analysis_results_dir}/
${testability_output_folder}/${testability_output_file}"
er r or f i l e="${quality_analysis_results_dir}/
${testability_output_folder}/${testability_error_file}"
pr i nt dept h="${testability_printdepth}"
pr i nt ="${testability_print_detail}"
mi ncost ="${testability_mincost}"
maxexcel l ent cost ="${testability_maxexcellentcost}"
maxaccept abl ecost ="${testability_maxacceptablecost}"
wor st of f ender count ="${testability_worstoffendercount}"
cycl omat i c="${testability_cyclomatic}"
gl obal ="${testability_global}"
whi t el i st ="eclipse*">
<cl asspat h>
<f i l eset di r ="${quality_analysis_binaries_dir}">
<i ncl ude name="${product_pluginID}_${product_version}.jar"/ >
</ f i l eset >
</ cl asspat h>
</ t est abi l i t y>
</ t ar get >
</ pr oj ect >
TAMK University of Applied Sciences APPENDIX 3
Degree Programme in Information Technology, Master's Degree 1(1)
Mika Immonen
Appendix 3: The Database Schema for the Software Product Qualty Analysis System.