Mining Existing Software Product Line Artifacts using Polymorphic - - PowerPoint PPT Presentation
Mining Existing Software Product Line Artifacts using Polymorphic - - PowerPoint PPT Presentation
Mining Existing Software Product Line Artifacts using Polymorphic Dependency Relations Presented by Igor Ivkovi Ivkovi Presented by Igor Email: iivkovic@swen.uwaterloo.ca iivkovic@swen.uwaterloo.ca Email: Web:
2
Agenda Agenda
Inception:
Mining Existing Product Line Artifacts
Elaboration:
Defining Semantic Annotations
Construction:
Selecting Suitable Components
Transition:
Summary and Future Research
3
Options Analysis for Reengineering (OAR) Options Analysis for Reengineering (OAR)
From SEI Technical Report CMU/SEI From SEI Technical Report CMU/SEI-
- 2001
2001-
- TN
TN-
- 013, June 2001
013, June 2001
4
Mining Existing Product Line Artifacts Mining Existing Product Line Artifacts
Mining software artifacts represent recovery of existing parts
- f a software-intensive system for reuse in the course of
evolution
OAR represents one of the first systematic methods to
identification of reusable software components
With OAR, candidate architectural components can be
identified based on a set of reusability requirements
Once identified, the complexity of changes required for reuse
in product lines or new software development can be analyzed
OAR is meant to provide a set of artifact mining options with
cost, effort, and risk estimates related to these options
5
Formalizing OAR Mining Process Formalizing OAR Mining Process
In this talk, we propose a formalization of the mining process
through UML-defined semantic annotations
Each artifact is annotated with a corresponding semantic
head, thereby allowing semantic annotations and analysis
Each semantic head contains a set of hierarchical
semantic values, defined according to the semantic value theory
Each mining context represents a selected set of semantic
values that can be used to identify candidate components
The approach is defined using UML 2.0 profiles to allow for
simplified adoption – easier instantiation and extension
6
Agenda Agenda
Inception:
Mining Existing Product Line Artifacts
Elaboration:
Defining Semantic Annotations
Construction:
Selecting Suitable Components
Transition:
Summary and Future Research
7
OAR Component Annotation and Selection OAR Component Annotation and Selection
OAR prescribes that after creating a mining context, it is
necessary to inventorize available components
Specialized activities in this step include identification of
their functionality, language, infrastructure support, and interfaces
From here, candidate components can be selected as the
- nes that match the criteria of the mining context
However, the OAR description does not provide a
formalism for specification of component properties
It also does not provide an algorithm for matching the
criteria of the mining context and individual components
8
Defining Semantic Annotations Defining Semantic Annotations
We propose a systematic approach to annotation of existing assets by
associating components with semantic heads
Each semantic head represents a set of composite hierarchical
semantic values defined according to the semantic value theory
Semantic values are of the following format: v0 = sv0(P1=sv1, …
Pn=svn) where svi are simple values, and Pi are semantic properties
Each sv1..n can be recursively associated with its own semantic
context of properties and semantic values – examples include:
Class(Language=UML(Represents=Objects)) Component(Feature=AccessControl(GranularityLevel=Design(Per
spective=Concrete)),QualityGoal=Security(Metric=AttackSurface))
9
Semantic Annotations in UML Semantic Annotations in UML
To provide for easier adoption, we use UML 2.0 metamodel
as the basis for representation of semantic annotations
We define <<semanticHead>> stereotype as part of the
Annotation Context UML Profile
Each semantic head is associated with one model
element, and it contains zero or more semantic values
The elements of the semantic head are created as part of
the component inventorization
10
Annotation Context UML Profile Annotation Context UML Profile
DEFINING ANNOTATION CONTEXT <<PROFILE>> ANNOTATION CONTEXT «METACLASS» CLASS OBJECT[1] : MODELELEMENT CONTEXT[*] : SEMANTICPROPERTY «STEREOTYPE» SEMANTICHEAD <<EXTENDS>>
11
Specialized Annotations Specialized Annotations
Types of annotated component information include:
Implemented features such as Component (Feature=
‘DatabaseAccess’, Limitation=‘DataManipulation’)
Interface properties such as Component (InterfaceType=
‘Proxy’(Protocol=‘HTTP’))
Language properties such as Component (Implementation
Language= ‘Java’(Dialect=‘Enterprise Java Beans’))
Environment
constraints such as Component (PlatformDependence=‘Yes’(OperatingSystem=‘Windows’) )
12
Specialized Annotations using UML Profiles Specialized Annotations using UML Profiles
To allow for easier application, we introduce specific UML
profile with stereotypes for annotation of specific concerns
Each specialized UML profile represents a set of mining
concerns applicable to a specific mining perspective
Each such profile defines specific stereotypes with
corresponding attributes and constraints
For example, a generic architecture annotation profile is
extended with specific dynamic architecture profile
13
Annotations Hierarchy Example Annotations Hierarchy Example
14
Agenda Agenda
Inception:
Mining Existing Product Line Artifacts
Elaboration:
Defining Semantic Annotations
Construction:
Selecting Suitable Components
Transition:
Summary and Future Research
15
Defining Mining Context Defining Mining Context
Once we have annotated components with specific semantic
values, we can query them to identify those of specific interest
We create the mining context as collection of association
rules
Each rule is a collection of semantic properties and values
that are used to query individual component annotations
Example:
A: Class(Language=‘UML’(Represents=‘Objects’)) B: class(Language=‘Java’(Represents=‘Objects’)) Context: {Represents=‘Objects’}, Result: A, B Context: {Language=‘UML’}, Result: A Context: {Language=‘SDL’}, Result: None
16
Defining Mining Context in UML Defining Mining Context in UML
Similarly to annotations, we use UML 2.0 profiles as the basis for
representation of semantic annotations
We define <<associationContext>> stereotype as part of the
Mining Context UML profile
Given that each context is a set of semantic values, a specific context
subtype can be used to query components at specific level of detail
We also provide for specialized association contexts for different
component types and mining domains
For example, different contexts for areas such as database
access, role-based access control, and user interfaces
17
Mining Context UML Profile Mining Context UML Profile
18
Towards Framework Implementation Towards Framework Implementation
The framework is being prototyped as a plug-in for the Eclipse
environment using UML 2.0 extensions
Annotations are inserted into models by associating
specific model elements with specific stereotypes
Annotated models are represented using XMI in XML for
manipulation and transformation
Querying is performed using XPath/XQuery expressions
19
Agenda Agenda
Inception:
Mining Existing Product Line Artifacts
Elaboration:
Defining Semantic Annotations
Construction:
Selecting Suitable Components
Transition:
Summary and Future Research
20
Conclusions Conclusions
In this paper, we have presented a framework for mining
existing software assets using the theory of semantic values
We have presented an approach for annotating available
components with semantic properties and values
We have also discussed the creation of the mining context
and its usage in component querying and selection
The approach was defined using UML 2.0 profiles to allow for
simpler adoption and extension
21
Future Research Future Research
In future research, we aim to address the following:
Formalization of profiles for specific mining concerns, such
as recovery of architectural artifacts from requirements
Application to other stages of OAR, such as component
refactoring
Adaptation to more recent mining approaches such as the
Service-Oriented Migration and Reuse Technique (SMART)
Integration into existing environments such as Eclipse
22
Points for Discussion Points for Discussion
Use of UML profiles for annotation
Profiles for specific concerns? Profiles for specific artifact types? Profiles vs. metamodels for mining existing assets?
Semantic annotations as criteria for component selection
Annotations necessary for component extraction? Other approaches?
Tool support