Open Issues in
Dynamic Software Architectures

Maintaining System Integrity

How does a change impact the running system?

Do what degree can the change's impact be predicted?

How is system integrity maintained?

If unprecedented changes are supported, what form of in-the-field analysis is required?

Describing Runtime Changes

What aspect of the system changes? E.g., a component's implementation, a component's external interface, architecture topology/component bindings?

What are the appropriate runtime change operations? Possible operations include: creating and destroying components and connectors, establishing or tearing down communication links, replacing one component for another, hierarchically nesting and unnesting components, interposing and "wrapping" components?

How should architectural changes be described? Are the change operations implicit or explicit in the description?

Applying Runtime Changes

How should runtime changes be applied to the running system? One operation at a time, all at once (transactions), dependent on the operation, ...

How do the change operations affect the runtime system? Are new processes and threads created for each new component? Are there new memory management issues? ...

How can a component's internal state be preserved and transferred to its replacement?

What aspect of the architectural model should be deployed with the system to support runtime change and analysis?

What triggers a runtime change? Explicitly requested by end-users, implicitly through system monitoring (self-adaptive)?

Architectural Model to Implementation Mapping

Most systems currently assume a one-to-one mapping between model and implementation elements. Is this adequate? Is it useful to support one-to-many, many-to-one, many-to-many mappings as well? Investigating techniques for architectural refinement (such as [MQR95]) may be a good start.

How is the mapping from the architectural model to the implementation specified?

Relationship to Dynamic Languages (DLs)

What techniques and tools can dynamic architecture researchers use from DL researchers?

How are DLs different than/similar to dynamic architectures?

Return to the Dynamic Software Architectures home page.
These pages are maintained by Peyman Oreizy. Send comments via e-mail.