Sei sulla pagina 1di 18

Marwan Abi-Antoun

Presented at SSSG
(October 21st 2004)

Architectural Refinement:
from ACME to ArchJava

Paper in submission Semantic Issues in


Architectural Refinement
OOSPLA Demo next week by Dr. Aldrich

Dr. Jonathan Aldrich


Dr. David Garlan
Bradley Schmerl
Tony Tseng

Contributors:

Credits

Solution space expands with decrease in


abstraction level
Narrow down implementation space with
specific middleware (or runtime libraries)

From Architecture to Implementation

Abstract and Concrete Views

Abstract: ACME
Concrete: ArchJava

Mapping of typing relationships


Refining connectors
Handling information loss and overlap
Illustrated with candidate representations:

Key Challenges

Built-in checking of architectural rules


Flexible predicate based type system

Set of components, connectors,


Set of rules

Architectural Style or Family

System, Components, Representations,

Hierarchical representation

ACME in a Nutshell

Abstract View in ACME

Constraints, Properties, Styles, .

No one-to-one correspondence to ACME:

Type system enforces inter-component


communication
Component substitutability

Guarantee architectural conformance

Built-in Components, Connectors, Ports, Glue...

Extension of Java programming language


Specify architecture within the code

ArchJava in a Nutshell

Concrete View in ArchJava

10

Use ACME family (style) as mixin style


controlling refinement

Explicitly stored and maintained in the model


Can be refined incrementally
Used to determine readiness for refinement
Fine-grained control over refinement

Indicate choices of refinement in the


architectural model and not in the tool

Key Ideas

11

Property Set {string}


Property Set {string}

Port

Type

Instance

Component

System

ACME Construct

Required Methods
Provided Methods

Port

Component Class
Component Instance
Component Class

Component Class

ArchJava

Mapping Components

12

Role

Type

Instance

Connector

ACME Construct

Connector Class

Implicit
Explicit

Connector Class
Connector Instance

ArchJava

Mapping Connectors

13

Connector Instance
Java package

Attachment

Representation

Style

Constraint

Property

Glue

ArchJava

Binding

ACME Construct

Other Mappings

14

15

Components/Connectors/Ports explicitly
declaring types
No dangling ports or roles
For connected ports, provided and
required methods must match
Component type cannot require more
methods than parent type (substitutability)

Architectural Validation

16

Can only generate ArchJava for an ACME


system and not an ACME family
Cannot exclude portions of architecture
model to support iterative refinement
No support for multi-way connections
Not generating enough information to
simplify round-trip engineering

Current Tool Limitations

No true mixin support

ACME Limitation:

Support iterative refinement

Tolerating incompleteness

E.g., family should not encode signature of


required and provided methods

Adding too much detail to abstract view

Component Substitutability too restrictive

ArchJava Limitation:

Open Issues

17

http://archjava.fluid.cs.cmu.edu/

ArchJava:

http://www.cs.cmu.edu/~acme

ACME:

References

19

Potrebbero piacerti anche