Proposed Ideas
-
Upload
kaye-cameron -
Category
Documents
-
view
13 -
download
0
description
Transcript of Proposed Ideas
![Page 1: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/1.jpg)
04/19/23 ABB Workshop 1
Proposed Ideas
Therapon Skotiniotis Karl Lieberherr
Northeastern University
Boston, MA 02115 USA
![Page 2: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/2.jpg)
04/19/23 ABB Workshop 2
Traversal Related Concerns
• AIP performs lookups on hierarchical structures– NamePaths, Aspect Directory etc
• Demeter Theories could be deployed (XPath)– User friendly specification of Paths
from GUI via Valve to ValveTemperacture
from GraphicDisplay to *
• Adaptable specification
• Ability to add behavior on a group or substructure through the introduction of Demeter Style Visitors
![Page 3: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/3.jpg)
04/19/23 ABB Workshop 3
Traversal Related Concerns(cont)
• Demeter Style Visitors– Perform operations before/after/around a specific node that is
being visited– Encapsulates behavior in a separate file – Easier extensibility
• Potential operations – Maintenance of Structures– Recording of dependencies
• Type Level ASK• Instance Level ASK
– Copying of structures – Ready made global operations on structures
![Page 4: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/4.jpg)
04/19/23 ABB Workshop 4
Traversal Related Concerns(cont)
A/C
getRTemp
Room
Valve
getTemp
![Page 5: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/5.jpg)
04/19/23 ABB Workshop 5
Traversal Related Concerns(cont)
A/C
getRTemp
Traversal + Visitor:from Room to getTemp(VmakeComponent)
Valve
getTemp
Valve_temp_compRoomRoom_climate_comp
Traversal + Visitor:from Room to getRTemp(VmakeComponent)
![Page 6: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/6.jpg)
04/19/23 ABB Workshop 6
AOSD already in AIP
• “The house that ABB build”– Trackers and Hooks
• The ideas are really close to – JoinPoint model
• Hooks are a restricted pointcut for creation, modification and alteration
• Trackers are a bit more flexible– You can define the AIP aspects upon which you can capture
• Creation, Deletion, Setters, Notifications
![Page 7: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/7.jpg)
04/19/23 ABB Workshop 7
AOSD already in AIP (cont)
• Adding – Method invocations will give a similar JoinPoint model as that of
AspectJ.
• Can be accomplished – Using a language specific approach ala AspectJ– Introduce a “Intermediary” component to delegate according to the
pointcuts provided by the programmer – Through a design constraint enforced by an API (yet another one)
• Issues – Language specific
• Harder to implement • Programmers need to learn a new sub-language
![Page 8: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/8.jpg)
04/19/23 ABB Workshop 8
AOSD already in AIP (cont)
• Issues (cont)– Intermediary component
• A new tool rewrites the programmer’s source (preprocessor) making all necessary arrangements.
• Compile time + Runtime performance issues.• Automatically tangle code harder to provide runtime adaptability• Programmer can be oblivious to the whole mechanism
– Just uses the extra facility if he needs to.
– Design Constraints via an API • Extra components introduced at Framework level (might affect
stability and/or performance)• Maintain runtime adaptability.• May become too verbose for the programmer
![Page 9: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/9.jpg)
04/19/23 ABB Workshop 9
Reuse Reuse Reuse
• Fine grained separation + subjective view make reuse between systems difficult– Duplicated information
– Dependencies between views • Underlying implementation
• Context sensitive dependencies
• HyperJ Solution– HyperSpaces and Multi Dimensional Separation of Concerns
– Binary manipulation. No need of source code
– Language specific (if at all possible)
![Page 10: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/10.jpg)
04/19/23 ABB Workshop 10
Component Based Reuse
• The ability to reuse “building blocks” to provide– Similar solutions to similar problems– Create a new solution by adopting multiple collaborations together
and then applying them to the underlying system
• Capture parts of the systems structure that are paramount to the solution
• Define what abstract component types are expected/provided only
• This requires a coordination between – Structural Dependencies within Structures (Directories in AIP)– Behavioral Dependencies between entities (DLL’s ASO’s etc)
![Page 11: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/11.jpg)
04/19/23 ABB Workshop 11
Component Based Reuse (cont)
• Structural Dependencies – XPath and a default visitor could capture structural dependencies
– Trackers and Hooks can be deployed by the programmer to capture behavioral dependencies
![Page 12: Proposed Ideas](https://reader036.fdocuments.in/reader036/viewer/2022082818/56812e64550346895d9408a6/html5/thumbnails/12.jpg)
04/19/23 ABB Workshop 12
Traversal Related Concerns(cont)
• XPath– Follows the same idea
– Allows also for documenting AIP structures
to * (MakeHMTLVisitor)
• “Write once runs on any Structure”