S S M M M M L L
S S o o f f t t w w a a r r e e M M e e a a s s u u r r e e m m e e n n t t M M o o d d e e l l i i n n g g L L a a n n g g u u a a g g e e
2010-05-24 Version.1.0.0
Beatriz Mora Rivas
1
SMML - Software Measurement Modeling Language
C C o o n n t t e e n n t t s s
1. Introduction ... 4
2. Installation ... 5
2.1. Requirements ... 5
2.2. Installation ... 5
3. SMML Graphical editor: Software Measurement Modeling Language ... 6
3.1. Language Metamodel ... 6
3.1.1.SMML Associations... 6
3.1.2.SMML Entities... 7
3.2. Language Constraints... 15
3.3. Editor Options... 16
4. Software Measurement Model Definition ... 17
4.1. SMML Editor ... 17
5. Release notes ... 20
5.1. SMML v.01.00.00 ... 20
6. References... 21
2
SMML - Software Measurement Modeling Language
F F i i g g u u r r e e s s C C o o n n t t e e n n t t s s
Figure 1. SMML Metamodel... 6
Figure 2. Wizard to create a new SMML diagram or SMML File ... 17
Figure 3. SMML File... 18
Figure 4. SMML Diagram... 19
3
SMML - Software Measurement Modeling Language
T T a a b b l l e e s s C C o o n n t t e e n n t t s s
Table 1. SMML associations ... 6
Table 2. Abstract Entities not Modelables in SMML ... 7
Table 3. Entity class element in SMML ... 7
Table 4. Base Measures element in SMML ... 8
Table 5. Derived Measure element in SMML ... 9
Table 6. Indicator element in SMML... 10
Table 7. Measurement Method element in SMML ... 11
Table 8. Condition element in SMML ... 11
Table 9. Measurement Method element in SMML ... 12
Table 10. Analysis Model element in SMML... 13
Table 11. Decision Criteria element in SMML ... 14
Table 12. Information Need element in SMML ... 14
Table 13. Measurable Concept element in SMML... 15
Table 14. Quality Model element in SMML ... 15
4
SMML - Software Measurement Modeling Language
1 1 . . I I n n t t r r o o d d u u c c t t i i o o n n
SMML is a language which permits software measurement models to be built in a simple and intuitive manner. The SMML development requires both domain knowledge and language development expertise (Mernik et al., 2005) (Mora et al., 2008).
5
SMML - Software Measurement Modeling Language
2 2 . . I I n n s s t t a a l l l l a a t t i i o o n n
2 2 . . 1 1 . . R R e e q q u u i i r r e e m m e e n n t t s s
- Eclipse Galileo: http://www.eclipse.org/galileo/ (Modelling Package)
2. 2 . 2. 2 . In I ns st ta a l l la l at ti io on n
• Install Eclipse Galileo (Modeling Package):
http://www.eclipse.org/downloads/
• SMML editor 1.0.0:
o http://alarcos.esi.uclm.es/smf/smml/
• SMTool 1.0.0.
o SMML editor has dependencies with SMTool. Besides no sense to use SMML separate. To maximize its use SMTool must be installed.
http://alarcos.esi.uclm.es/smf/smtool
6
SMML - Software Measurement Modeling Language
3 3 . . S S M M M M L L G G r r a a p p h h i i c c a a l l e e d d i i t t o o r r : : S S o o f f t t w w a a r r e e M M e e a a s s u u r r e e m m e e n n t t M M o o d d e e l l i i n n g g L L a a n n g g u u a a g g e e
3 3 . . 1 1 . . L L a a n n g g u u a a g g e e M M e e t t a a m m o o d d e e l l
In this section the SMML metamodel is presented.
Figure 1. SMML Metamodel
3. 3 .1 1. .1 1. . SM S MM M L L A As ss s oc o ci i at a ti io on ns s
The SMML associations are presented in the following table:
Table 1. SMML associations
Entity Graphic Element Association
Non navigable association
Dependency
7
SMML - Software Measurement Modeling Language
3. 3 .1 1. .2 2. . SM S MM M L L E En n ti t it ti ie e s s
The SMML entities are presented in the following tables.
There are two types of entities in SMML: entities not modelables an entities modelables.
• Entities not modelables: these entities are defined in the metamodel like abstract entities. Theses entities are shown in the Table 2.
Table 2. Abstract Entities not Modelables in SMML
Entity Attributes MeasurementElement Name
Measure
name status value unit scale
OperableMeasure
name status value unit scale MeasurementApproach name operation
• Entities modelables: these entities can be defined by the user by using SMML editor.
Theses entities are shown in the following tables
Table 3. Entity class element in SMML
Element Type Description Graphic Element
EntityClass Entity The collection of all entities that satisfy a given predicate
Name Attribute
Domain metamodel name which is being measured.
If this element is not well defined, the software measurement process can not be carried out.
measurementDomain Attribute
Root element name of the domain metamodel.
If this element is not well defined, the software measurement process can not be carried out.
attributes Association
An entity class has one or more attributes.
An attribute can only belong to one entity class.
8
SMML - Software Measurement Modeling Language
Table 4. Base Measures element in SMML
Element Type Description Graphic Element
BaseMeasure (is a Measure and
an OperableMeasure) Entity
A measure of an attribute that does not depend upon any other
measure, and whose measurement approach is a measurement method.
name Attribute Base Measure name.
status Attribute
Base Measure Status. This value can not modified by the user. Is
parameter used to carry out the software measurement process by mean of QVT transformations.
value Attribute
Base Measure value, that is, the result of applying the model in the software
measurement process by mean of SMTool.
unit Attribute
Base Measure unit.
The unit in Base measure is the domain entity which is going to be measured, for example: Table (to Count Tables), Attribute (to Count Attributes), etc.
If this element is not well defined, the base measure can not be calculated.
scale Attribute
Base Measure Scale:
- Integers - Double - Etc.
measurementMethodAssociation Association
Every base measure uses one
measurement method. Every
9
SMML - Software Measurement Modeling Language
Element Type Description Graphic Element
measurement method defines one or more base measures.
attributes Association
A measure is defined for one or more attributes. An attribute may have several associated measures.
Table 5. Derived Measure element in SMML
Element Type Description Graphic Element
DerivedMeasure (is a Measure and
an OperableMeasure) Entity
A measure that is derived from other base or derived measures, using a measurement function as measurement Approach.
name Attribute Derived Measure
Name
status Attribute
Derived Measure Status. This value can not modified by the user. Is parameter used to carry out the software measurement process by mean of QVT
transformations.
value Attribute Derived Measure
value.
unit Attribute Derived Measure
value.
scale Attribute
Derived Measure Scale:
- Integers - Double Etc.
measurementFunctionAssociation Association
Every derived measure is calculated with one measurement function. Every
10
SMML - Software Measurement Modeling Language
Element Type Description Graphic Element
measurement function may define one or more derived measures.
Attributes Association
A measure is defined for one or more attributes.
An attribute may have several associated measures.
Table 6. Indicator element in SMML
Element Type Description Graphic Element
Indicator (is a Measure) Entity
A measure that is derived from other measures using an analysis model as measurement approach.
name Attribute Indicator name
status Attribute
Indicator Status. This value can not modified by the user. Is parameter used to carry out the software measurement process by mean of QVT transformations.
value Attribute Indicator value.
unit Attribute Indicator unit.
scale Attribute
Derived Measure Scale:
- Integers - Double Etc.
analysisModelAssociation Association
Every indicator is calculated with one analysis model. Every analysis model may define one or more indicators.
informationNeedAssociation Association
An indicator may satisfy several information needs.
Every information need is satisfied by one or more indicator.
Attributes Association A measure is defined for one or more attributes. An
11
SMML - Software Measurement Modeling Language
Element Type Description Graphic Element
attribute may have several associated measures.
Table 7. Measurement Method element in SMML
Element Type Description Graphic Element
MeasurementMethod (is a Measurement
Approach) Entity
A measurement method is the measurement approach that defines a base measure.
Name Attribute Measurement
Method Name
operation Attribute
Measurement Method operation. The current version only supports the
measurement method operation
“COUNT”
Conditions Association
A measurement Method has one or more conditions. A condition can only belong to one
measurement method.
Table 8. Condition element in SMML
Element Type Description Graphic Element
Condition Entity Define a specific condition on the measurement method.
name Attribute Condition name
entityAttribute Attribute Attribute name of the domain metamodel which will be measured.
condition Attribute Condition value, the current version supports the
12
SMML - Software Measurement Modeling Language
Element Type Description Graphic Element
following values:
- “=”
- <>
- <
- >
- <=
- >=
value Attribute The value that must satisfy the Condition. If the entityAttribute is an String type the value must be set between quotes ‘value’.
Table 9. Measurement Method element in SMML
Element Type Description Graphic Element
MeasurementFunction Entity
A measurement function is the measurement approach that defines a derived measure.
name Attribute Measurement
Function name
operation Attribute Measurement Function operation, the current version supports the following operation:
- + - - - / - *
This operation defines the operation applied between the two
operable measures.
m1 op m2
m1 Attribute The first operable measure (base or derived measure) selected to calculate the Derived Measure value.
m2 Attribute The second
operable
13
SMML - Software Measurement Modeling Language
Element Type Description Graphic Element
measure (base or derived measure) selected to calculate the Derived Measure value.
Table 10. Analysis Model element in SMML
Element Type Description Graphic Element
AnalysisModel Entity
An analysis model is the measurement approach that defines an indicator.
name Attribute Analysis Model name
operation Attribute
Measurement Function operation, the current version supports the following operation:
- + - - - / - *
This operation defines the operation applied between the two operable measures.
m1 op m2
interpretation Attribute
Analysis Model Interpretation, that is, the Analysis Model result. This value is obtained by analyzing the criteria decisions.
m1 Association
The first operable measure (base or derived measure) selected to calculate the Indicator value.
m2 Association
The second operable measure (base or derived measure) selected to calculate the Indicator value.
14
SMML - Software Measurement Modeling Language
Element Type Description Graphic Element
criteriaDecisions Association
An analysis model uses one or more decision criteria.
Every decision criteria is used in one or more analysis models.
Table 11. Decision Criteria element in SMML
Element Type Description Graphic Element
DecisionCriteria Entity
Thresholds, targets, or patterns used to determine the need for action or further investigation, or to describe the level of confidence in a given result.
The Decision Criteria establishes the Analysis Model interpretation.
If the Indicator value is between min and max value, the Analysis Model interpretation is the min and max value descriptor.
name Attribute Decision Criteria name minValue Attribute Decision Criteria min value.
maxValue Attribute Decision Criteria max value.
descriptor Attribute Decision Criteria descriptor.
Table 12. Information Need element in SMML
Element Type Description Graphic Element
InformationNeed Entity Insight necessary to manage objectives, goals, risks, and problems.
name Attribute Information Need name
measurableConceptAssociation Association
An information need is related to one measurable concept. A measurable concept is associated with one or more information needs.
15
SMML - Software Measurement Modeling Language
Table 13. Measurable Concept element in SMML
Element Type Description Graphic Element
MeasurableConcept Entity Abstract relationship between attributes of entities and information needs.
name Attribute Measurable Concept name
attributes Association A Measurable concept relates one or more attributes. An Attribute is related with one or more measurable concepts.
Table 14. Quality Model element in SMML
Element Type Description Graphic Element
QualityModel Entity
The set of measurable concepts and the
relationships between them which provide the basis for specifying quality
requirements and evaluating the quality of the entities of a given entity class.
Name Attribute Quality Model name
measurableConceptsAssociation Association
A quality model evaluates one or more measurable concepts. A measurable concept is evaluated by one or more quality models.
entityClassAssociation Association
A quality model is defined for a certain entity class. An entity class may have several quality models associated
3. 3 . 2. 2 . La L a n n gu g ua ag ge e C Co on ns st tr ra ai in n t t s s
- Only one element “EntityClass” can be defined in the diagram.
- Only one element “InformationNeed” can be defined in the diagram.
- Only one “EntityClass” element can be defined in the diagram.
- The MinValue attribute must be smaller than Maxvalue attribute of the DecisionCriteria element.
16
SMML - Software Measurement Modeling Language
3 3 . . 3 3 . . E E d d i i t t o o r r O O p p t t i i o o n n s s
- The smml diagram can be validated.
17
SMML - Software Measurement Modeling Language
4 4 . . S S o o f f t t w w a a r r e e M M e e a a s s u u r r e e m m e e n n t t M M o o d d e e l l D D e e f f i i n n i i t t i i o o n n
In this section, the steps necessary to define a SMML model is presented.
4. 4 . 1. 1 . SM S MM ML L E Ed di it t or o r
Software Measurement Modelling Language (SMML) (Mora et al., 2008) is a language which belongs to the SMF and supports the definition of software measurement models.
The Software Measurement Metamodel (SMM) (García et al., 2007) has been used in order to develop SMML. This metamodel is derived from the Software Measurement Ontology (SMO) (García et al., 2006) and defines the abstract syntax of SMML. The set of icons which form a part of the language have been created and/or selected in order to facilitate the definition of software measurement models by software engineers. The usage of general purpose languages to define domain measurement models is thus avoided.
SMML is a DSL with a clear syntactic and semantic definition due to its ontological foundation, with a clear syntactic and semantic definition and a solid ontological base. Besides, SMML fulfils the following general requirements of a DSL: it is usable, it conforms, and it is orthogonal, supportable and simple. SMML allows users to represent measurement models in various domains.
As stated in the previous section, SMML plays a fundamental role in SMF as it allows users to define the measurement models which are the input for the software measurement process.
The visual representation of the measurement models aims to make SMF a more usable and intuitive framework for the user. In other words, this intends to do the measurement process more comfortable.
Figure 2. Wizard to create a new SMML diagram or SMML File
SMML Editor is a graphical editor which supports the SMML. This SMML editor has been created by using the Eclipse Graphical Modeling Framework (GMF), which provides a generative
18
SMML - Software Measurement Modeling Language
component and runtime infrastructure for developing graphical editors based on EMF (Eclipse Modeling Framework) and GEF (Graphical Editing Framework). This has facilitated to create the SMML editor from the Software Measurement Metamodel (SMM) which was previously defined in EMF. The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor.
SMML Editor supports two types of files (see Figure 2):
• SMML File: this file (with .smml extension) is an instance of SMML Metamodel and it can be edited with “SMML Model editor” (see Figure 3).This editor is a SMML version of Reflective Ecore Model Editor included in EMF. From this file an instance of SMML diagram file can be obtained.
Figure 3. SMML File
• SMML diagram: this is the graphical representation of the SMML file, it is written in xmi and it has smml_diagram extension (see Figure 4). This file can be edited with the
“SMML Diagram editing”, which permit to define the software measurement models in an easy manner. These models will be used to execute the measurement process.
19
SMML - Software Measurement Modeling Language
Figure 4. SMML Diagram
20
SMML - Software Measurement Modeling Language
5 5 . . R R e e l l e e a a s s e e N N o o t t e e s s 5 5 . . 1 1 . . S S M M M M L L v v . . 0 0 1 1 . . 0 0 0 0 . . 0 0 0 0
• Initial version.
21
SMML - Software Measurement Modeling Language
6 6 . . R R e e f f e e r r e e n n c c e e s s
García, F., Bertoa, M. F., Calero, C., Vallecillo, A., Ruíz, F., Piattini, M. y Genero, M. (2006).
Towards a consistent terminology for software measurement. Information and Software Technology 48 (8)(8): 631-644
García, F., Serrano, M., Cruz-Lemus, J., Ruiz, F. y Piattini, M. (2007). Managing Software Process Measurement: A Metamodel-Based Approach. Information Sciences 177: 2570–2586.
Mernik, M., Heering, J. y Sloane, A. M. (2005). When and how to develop domain-specific languages. ACM Computing Surveys (CSUR) Volume 37(4): 316-344.
Mora, B., García, F., Ruiz, F. y Piattini, M. (2008). SMML: Software Measurement Modeling Language. The 8th OOPSLA Workshop on Domain-Specific Modeling, Nashville (Tennessee) USA, University of Alabama at Birmingham. Department of Computer and information Sciences, http://www.dsmforum.org/events/DSM08/Papers/9-Mora.pdf.
Mora, B., Ruiz, F., Garcia, F. y Piattini, M. (2008). SMML: Software Measurement Modeling Language, Department of Computer Science. University of Castilla - La Mancha,
http://www.uclm.es/dep/tsi/pdf/SMML_Software_Measurement_Modeling_Language.pdf.