• No se han encontrado resultados

OBJETIVOS ESPECÍFICOS

3. MARCO TEORICO

3.4 CILINDROS NEUMÁTICOS

3.5.2 Electroválvulas(válvulas electromagnéticas)

A way of mitigating the problems identified in the previous section is to evolve the integrated development environments (IDEs) so that they include functionalities to fa- cilitate quantitative assessment in CBD. An analogy can be made to the automated refactoring functionalities of some IDEs. Without the inclusion of these refactoring functionalities, their usage would have a smaller impact on the current state of prac- tice in software development. The validation of metrics to assess components and assemblies in the context of well-defined measurement goals is a pre-requisite for such IDE evolution. Practitioners should be able to know when and how to use quantitative information to support their work. The integration of such support in IDEs is essential, if a widespread adoption of a quantitative approach to CBD is sought.

In this dissertation, we demonstrate the feasibility of a formal approach to CBD as- sessment that combines rigor with simplicity, is replicable, and can be integrated with current development environments, thus providing automated advice to practitioners involved in CBD assessment. This approach, called Ontology-Driven Measurement (ODM), is an evolution from the MetaModel Driven Measurement (M2DM) approach,

originally proposed in [Abreu 01b, Abreu 01a] for the evaluation of object-oriented de- signs using software metrics.

We extend the concept of M2DM to models which may not necessarily be metamod- els. This evolution is required so that we can define metrics at different meta-levels, according to the requirements of each experimental work. In some situations, we use a metamodel, while in others we use a model. In any case, our metrics will be defined using an ontology of the domain upon which we want to perform the measurements. The nature of this domain is also an evolution from M2DM’s original proposal: while M2DM was created to allow defining and computing metrics in object-oriented de- signs, in this dissertation we will use ODM to define and compute metrics both at the process and at the product level, in the context of CBD.

Our main contributions include:

• Ontologies (metamodels and models) construction and extension.

• The formalization of metrics for CBD, using several underlying ontologies, to explore the expressiveness of the ODM approach.

• Experimental validation of our proposals, by using a common software experi- mentation process model, also proposed in this dissertation.

• Development of prototypical tool support for the experimental activities de- scribed in this dissertation.

We regard ontology construction as a first step towards assessment in CBD. Ex- pressing the CBD concepts relevant to a particular measurement initiative through a ontology helps eliciting such concepts and their relations. In some situations, an ex- isting ontology can be readily adopted (e.g. when UML 2.0 components are assessed, we can use the UML 2.0 metamodel [OMG 07]). In others, we have to either extend an existing ontology, or to create a new one, in order to reach adequate expressiveness for our assessment tasks. The lack of a generic, widely accepted, component model hampers the adoption of a generic ontology for CBD.

While preparing this dissertation, we proposed several metamodels and extensions. In [Goulão 03], we created a UML profile representing Acme [Garlan 00b] compo- nents in UML 2.0. We created this profile to assess the suitability of UML 2.0 as a component Architecture Description Language (ADL), with respect to the structural view of component-based architectures. We chose to create a profile for the Acme language, because Acme was originally designed to capture the main structural con- cepts of ADLs. We concluded that UML was indeed suitable for expressing the struc- tural views of although it has less syntactic sugar than Acme, particularly for express- ing synchronous communication between components. While defining metrics upon the standard Corba Components Metamodel (CCM) [OMG 02a] we identified some limitations in that metamodel, concerning the specification of component assemblies.

In [Goulão 05a], we proposed an extension of the CCM to support the representation of the instantiation of component assemblies. We will discuss it in chapter 5. The experimental work carried out in chapter 7 lead to the definition of a metamodel for representing Eclipse plug-ins. We also define a process model for representing part of the component development process, in chapter 6 [Goulão 06], in order to support measurement at the process level.

The quantitative assessment of components and component assemblies requires a rigorous approach. Different assessors evaluating the same component or component assembly in different locations must be able to replicate the assessment conditions and get the same results. This requirement of replicability is generic to scientific experi- mentation and is earning a growing attention in industry and academia, although its fulfillment remains a challenge (see, for instance, [Jedlitschka 04]). The driver behind the replicability requirement is the ability to offer evidence on the effects of using a par- ticular technology, or technique, rather than providing a set of toy examples and un- convincing claims. This concern crosscuts the whole dissertation and is made explicit through the process model for conducting experimental work, in chapter 3 (originally proposed in [Goulão 07a]).

Using an ontology-based approach to metrics collection experiments, at a process and product level, reduces the subjectivity in the experiment design, thus facilitating its replication. Moreover, expressing metrics definitions formally upon an ontology removes ambiguity from the definitions, and provides an executable way of collecting the metrics. Furthermore, the technique used in the metrics definition can be extended for defining heuristics that help assessing the metrics results, thus providing a stronger integration with the underlying measurement goals.

As a proof of concept with respect to the expressiveness of the metrics specification technique, we formalize the definition of metrics available in the literature as well as propose new metrics for CBD. The formalized metrics include not only metrics for individual components (both in isolation and within a specific component assembly), but also for component assemblies. This formalization (as well as that of heuristics) is carried out upon several component models.

The usefulness of a quantitative approach to support assessment in the scope of CBD is carried out through the experimental work presented in this dissertation. This work includes:

• A case study for the cross validation of a metrics set proposed by Washizaki et al. [Washizaki 03], in chapter 4 [Goulão 05c].

• A quasi-experiment on the influence of practitioners’ expertise in one of the pro- cess activities carried out during software component development, in chapter 6 [Goulão 06].

repository.

For each of these experimental validations, the set of research goals, the underlying ontology, the metrics definitions and collection, and their interpretation with respect to the research goals are discussed.

All the experimental work presented in this dissertation follows the experimental process model defined in chapter 3. While the experimental work presented in this dis- sertation provides a set of anecdotal examples of the usage of the experimental process model, we also include a case study in chapter 3 to evaluate the process model itself. Naturally, this case study was also conducted using the process model.

The experimental work presented in this dissertation required developing tool sup-

portto define and collect software metrics. The architecture of such tool support will also be discussed, with a focus on how it can be integrated with a modern IDE for pro- viding automated support for assessment in CBD. The integration of assessment tools with common IDEs is essential to foster its usage and has influenced our choices of the formalization technique, as discussed in the next section.