Download - Proposed Ideas

Transcript
Page 1: Proposed Ideas

04/19/23 ABB Workshop 1

Proposed Ideas

Therapon Skotiniotis Karl Lieberherr

Northeastern University

Boston, MA 02115 USA

Page 2: Proposed Ideas

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

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

04/19/23 ABB Workshop 4

Traversal Related Concerns(cont)

A/C

getRTemp

Room

Valve

getTemp

Page 5: Proposed Ideas

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

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

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

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

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

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

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

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”