Chapter 06b--Modeling-

advertisement
1. Domain- and Style- Specific ADLs
a. Some ADLs are domain-specific or style-specific, or at least optimized for describing
architectures in a particular domain or style
b. Importance
i. Scope is better tailored to stakeholder needs
ii. Unnecessary details could be left because there is little need for genericity
c. Comprises
i. A reference architecture, which describes a general computational framework
for a significant domain of applications;
ii. A component library, which contains reusable chunks of domain expertise; and
iii. An application configuration method for selecting and configuring components
within the architecture to meet particular application requirements.
d. Examples
i. Koala
1. Developed by Philips Electronics
2. Specially designed for modeling embedded software for consumer
electronics
3. Inherits from Darwin
a. Semantically and syntactically
b. Uses Darwin’s structural concepts of input and output ports
c. Expands them through the addition of constructs to support
product-line architectures
d. Multiple products can be described with a single model, with
differences between the products encoded as variation points
4. Evaluation Rubric
ii. Weaves
1. Architectural style and accompanying notation.
2. Used for modeling systems of small-grain tool fragments that process
objects of data
3. Advantages
a. Extremely optimized notation
i. Even simpler than Darwin diagrams
b. Close mapping to implemented systems
4. Disadvantages
a. Addresses structure and data flows only
b.
5. Evaluation Rubric
6. Lunar Lander in Weaves
a. Components do not communicate by request-response
procedure call. They communicate by streams of objects
b. Basic flows of data are similar to the other models
c. Explicit presence of return channels for data
i. A request that travels from a way does not imply that a
response comes back along the same way
ii. The response way must be specified
d. Information about structural connections but does not capture
aspects of how those connections are used
i. Could be included with an additional model like natural
language
7. Takeaways
a. Simple diagrams
b. Constructs have more specific meaning
iii. AADL
1. It contains useful constructs and capabilities for modeling a wide variety
of embedded and real-time systems such as automotive and medical
systems.
2. Can describe interfaces to components for both the flow of control and
data
3. Can capture non-functional aspects of components such as timing,
safety, and reliability attributes
4. Components are defined in two parts
a. Component type
i. Defines the interfaces to a component
b. Component implementation
i. An instance of a particular component type
c. Component’s category (additional element that affects
components)
i. Can be hardware, software, or composite
5. Advantages
a. Allows detailed specification of both hardware and software
aspects of a system
b. Automated analysis tools check interesting end-to-end
properties of system
6. Disadvantages
a. Verbose; large amount of detail required to capture even simple
systems
b. Emerging tool support and UML profile support
7. Evaluation Rubric
8. Lunar Lander in AADL
a. Just one part is modeling
i. The Calculation component and its connection to the
Data Store component.
ii. The components are connected by a physical Ethernet
bus
iii. Real-time version
1. Activities are done at regular intervals
9. Takeaways
a. High-cost, high-value notation
b. Complex and extensive specification, even for small systems
c. These costs may be worth on the specific domain that AADL is
positioned because they are safety-critical and expensive or
impossible to redeploy
2. Extensible ADLs
a. Extensible ADLs can be used to combine the flexibility of generic languages with the
analyzability and precision of semantically rich languages.
b. Provide a basic set of constructs for describing certain common architectural concerns
c. Include support
d. Basic approach to employing an extensible ADL is as follows
i. Determine which concerns can be modeled using the existing (baseline)
capabilities of the ADL
ii. For those concerns that cannot be modeled using the baseline capabilities,
choose how to extend the ADL to support their modeling (or reuse an extension
developed by another user)
iii. Extend the ADL and its supporting tools as necessary to support the modeling of
the unique features
e. Examples
i. ACME
1. Has a base set of seven constructs
a. Components
b. Connectors
c. Ports
d. Roles
e. Attachments
i. Systems
ii. Representations
f. Properties
i. Decorations that can be applied to any of the basic
seven kinds of elements
g. Advantages
i. Structural specification capabilities similar to Darwin
ii. Simple property structure allows for arbitrary
decoration of existing elements
iii. Tool support with AcmeStudio
h. Disadvantages
i. No way to add new views
ii. Property specifications can become extremely complex
and have entirely separate syntax/semantics of their
own
i. Evaluation Rubric
j. Lunar Lander in ACME
i. Largely structural and includes components,
connectors, ports, roles and attachments
ii. Verbosity
iii. Use of properties
iv. Additional properties could be added using ACME to
model Lunar Lander
k. Takeaways
i. Provide a degree of flexibility
ii. Properties can increase precision but cannot add new
elements
2. ADML
a. XML-based architecture
b. Syntax derived from ACME
c. ADML is supported by meta-properties
d. Advantages
i. XML parsers and tools readily available
ii. Added some ability to reason about types of properties
with meta-properties
e. Disadvantages
i. Properties are still name-value pairs
ii. Did not take advantage of XML extension mechanisms
f. Lunar Lander in ADML
i. Similar to ACME
ii. Use of XML opens this specification up to a wider array
of tools
iii. Verbose is denser than in ACME
g. Takeaways
i. ADML provides extensibility by encoding Acme’s namevalue pair properties into XML.
3. xADL
a. XML-based language
b. An attempt to provide a platform upon which common
modeling features can be reused from domain to domain and
new features can be created and added to the language as firstclass entities
c. On the other languages they are added as extensions to other
entities
d. Advantages
i. Growing set of generically useful modules available
already
ii. Tool support in ArchStudio environment
iii. Users can add their own modules via well-defined
extensibility mechanisms
e. Disadvantages
i. Extensibility mechanisms can be complex and increase
learning curve
ii. Heavy reliance on tools
f. The xADL Data Binding Library
i. It is a software library that provides an API for parsing,
reading, writing, and serializing documents in a
particular language
ii. In xADL it is a set of Java classes that correspond to
xADL data types
iii. Data Binding Library provides a simple interface to
make these operations (read, write, query, manipulate)
g. Apigen
i. It is a xADL’s data binding library generator
ii. Given a set of XML schemas, the Apigen can generate
the complete data binding library with support for those
schemas
iii. For any changes or adds, Apigen will generate a new
data binding library by rerunning
h. Evaluation Rubric
i. Luna Lander in xADL
i. Similar to ADML and ACME
ii. Has an associated graphical visualization provided by an
editor called Archipelago
iii. Application can be extended using new schemas and
these schemas can be reused in another projects
j. Takeaways
i. Modeling various architectural concerns with explicit
focus on extensibility
ii. xADL is supported by a variety of visualization, analysis,
and utility tools in the ArchoStudio environment
3. When Systems Become too Complex to Model
a. Certain applications cannot be modeled using the techniques that were used on the
Lunar Lander example
b. Gigantic and diverse applications like the Web or Gnutella
c. Impossible to generate a model of these systems in the traditional componentsconnectors-and-configuration sense
d. There are some strategies to consider to model these systems
e. Strategies
i. Model Limited Aspects of the Architecture
1. Use Cases
2. Interaction Patterns
3. More limited and easier to be modeled
ii. Model an Instance
1. Consider if a complete model is needed
2. Modeling only the relevant portion of the system
iii. Exploit Regularity
1. Large systems have low heterogeneity
2. These large portions can be modeled once and repeated automatically
iv. Model the Style
1. Instead of modeling as an application, consider modeling the REST style
instead
2. WEB is based on the REST architecture
v. Model the Protocol
1. Model protocol details
2. HTTP example on the Web
Download