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: http://swen.uwaterloo.ca/~iivkovic Web: 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
Agenda Agenda � Inception: Mining Existing Product Line Artifacts � Elaboration: Defining Semantic Annotations � Construction: Selecting Suitable Components � Transition: Summary and Future Research 2
Options Analysis for Reengineering (OAR) Options Analysis for Reengineering (OAR) From SEI Technical Report CMU/SEI- -2001 2001- -TN TN- -013, June 2001 013, June 2001 From SEI Technical Report CMU/SEI 3
Mining Existing Product Line Artifacts Mining Existing Product Line Artifacts � Mining software artifacts represent recovery of existing parts of 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 4
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 5
Agenda Agenda � Inception: Mining Existing Product Line Artifacts � Elaboration: Defining Semantic Annotations � Construction: Selecting Suitable Components � Transition: Summary and Future Research 6
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 ones 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 7
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: v 0 = sv 0 (P 1 =sv 1 , … P n =sv n ) where sv i are simple values, and P i are semantic properties � Each sv 1..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)) 8
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 9
Annotation Context UML Profile Annotation Context UML Profile DEFINING ANNOTATION CONTEXT <<PROFILE>> ANNOTATION CONTEXT «METACLASS» CLASS <<EXTENDS>> «STEREOTYPE» SEMANTICHEAD OBJECT[1] : MODELELEMENT CONTEXT[*] : SEMANTICPROPERTY 10
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’) ) 11
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 12
Annotations Hierarchy Example Annotations Hierarchy Example 13
Agenda Agenda � Inception: Mining Existing Product Line Artifacts � Elaboration: Defining Semantic Annotations � Construction: Selecting Suitable Components � Transition: Summary and Future Research 14
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 15
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 16
Mining Context UML Profile Mining Context UML Profile 17
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 18
Agenda Agenda � Inception: Mining Existing Product Line Artifacts � Elaboration: Defining Semantic Annotations � Construction: Selecting Suitable Components � Transition: Summary and Future Research 19
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 20
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 21
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? 22
Recommend
More recommend