Mining Existing Software Product Line Artifacts using Polymorphic - - PowerPoint PPT Presentation

mining existing software product line artifacts using
SMART_READER_LITE
LIVE PREVIEW

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:


slide-1
SLIDE 1

Mining Existing Software Product Line Artifacts using Polymorphic Dependency Relations

Presented by Igor Presented by Igor Ivkovi Ivković ć

Email: Email: iivkovic@swen.uwaterloo.ca iivkovic@swen.uwaterloo.ca Web: Web: http://swen.uwaterloo.ca/~iivkovic http://swen.uwaterloo.ca/~iivkovic Department of Electrical and Computer Engineering Department of Electrical and Computer Engineering University of Waterloo, Canada University of Waterloo, Canada

slide-2
SLIDE 2

2

Agenda Agenda

Inception:

Mining Existing Product Line Artifacts

Elaboration:

Defining Semantic Annotations

Construction:

Selecting Suitable Components

Transition:

Summary and Future Research

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

6

Agenda Agenda

Inception:

Mining Existing Product Line Artifacts

Elaboration:

Defining Semantic Annotations

Construction:

Selecting Suitable Components

Transition:

Summary and Future Research

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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))

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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>>

slide-11
SLIDE 11

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’) )

slide-12
SLIDE 12

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

slide-13
SLIDE 13

13

Annotations Hierarchy Example Annotations Hierarchy Example

slide-14
SLIDE 14

14

Agenda Agenda

Inception:

Mining Existing Product Line Artifacts

Elaboration:

Defining Semantic Annotations

Construction:

Selecting Suitable Components

Transition:

Summary and Future Research

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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

slide-17
SLIDE 17

17

Mining Context UML Profile Mining Context UML Profile

slide-18
SLIDE 18

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

slide-19
SLIDE 19

19

Agenda Agenda

Inception:

Mining Existing Product Line Artifacts

Elaboration:

Defining Semantic Annotations

Construction:

Selecting Suitable Components

Transition:

Summary and Future Research

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

Eclipse-based tools? Other tools?

slide-23
SLIDE 23

Mining Existing Software Product Line Artifacts using Polymorphic Dependency Relations

Presented by Igor Presented by Igor Ivkovi Ivković ć

Email: Email: iivkovic@swen.uwaterloo.ca iivkovic@swen.uwaterloo.ca Web: Web: http://swen.uwaterloo.ca/~iivkovic http://swen.uwaterloo.ca/~iivkovic Department of Electrical and Computer Engineering Department of Electrical and Computer Engineering University of Waterloo, Canada University of Waterloo, Canada