Architecture Description Languages (ADLs) are formal languages used to represent the architecture of software systems. ADLs describe components, connectors, configurations, and constraints. They differ in the terminology used to describe these architectural elements. ADLs also vary in their ability to specify non-functional properties and support for different programming languages. The most successful ADLs allow modeling at both a high level of abstraction and with fidelity to implementations.
This is an introductory lecture to Architecture Description Languages, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Advanced Software Engineering course, a.y. 2014-2015
http://lore.com/Advanced-Software-Engineering-Univaq/
This lecture is about Architecture Description Languages. What they are, how they evolved in time, current challenges and perspectives.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Architecture Description Languages: An Overviewelliando dias
This document provides an overview of architecture description languages (ADLs). It defines architecture and discusses the positives and negatives of ADLs. It explores different ADL approaches including ACME, Rapide, Wright, Aesop, and others. It examines the differences between architecture and design. The document also includes examples of specifications written in different ADLs.
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
5th of April 2016. My presentation done at the 3rd Architecture Centric Virtual Integration Workshop (ACVI) workshop, co-located with WICSA and Comparch 2016, Venice, Italy.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/IEEESoftware_2015.pdf
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
The document discusses metamodeling and the Model Driven Architecture (MDA). It covers topics such as model driven engineering, metamodeling, metamodeling in UML, and the OMG technologies that support MDA. Metamodeling involves modeling modeling elements and their relationships. Metamodels define the structure of models, while models are instances that conform to metamodels. The MDA uses metamodels and models to develop and transform systems.
This is an introductory lecture to Architecture Description Languages, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Advanced Software Engineering course, a.y. 2014-2015
http://lore.com/Advanced-Software-Engineering-Univaq/
This lecture is about Architecture Description Languages. What they are, how they evolved in time, current challenges and perspectives.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Architecture Description Languages: An Overviewelliando dias
This document provides an overview of architecture description languages (ADLs). It defines architecture and discusses the positives and negatives of ADLs. It explores different ADL approaches including ACME, Rapide, Wright, Aesop, and others. It examines the differences between architecture and design. The document also includes examples of specifications written in different ADLs.
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
5th of April 2016. My presentation done at the 3rd Architecture Centric Virtual Integration Workshop (ACVI) workshop, co-located with WICSA and Comparch 2016, Venice, Italy.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/IEEESoftware_2015.pdf
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
The document discusses metamodeling and the Model Driven Architecture (MDA). It covers topics such as model driven engineering, metamodeling, metamodeling in UML, and the OMG technologies that support MDA. Metamodeling involves modeling modeling elements and their relationships. Metamodels define the structure of models, while models are instances that conform to metamodels. The MDA uses metamodels and models to develop and transform systems.
Domain-driven design (DDD) is an approach that involves using a shared domain model and ubiquitous language to support complex domains and ensure alignment between software design and business needs. It emphasizes basing the software design on an evolving model that shares common concepts with domain experts. DDD uses patterns like entities, value objects, aggregates and repositories to structure the software around domain concepts and separate domain logic from data access and external interfaces.
The document discusses software architecture, including definitions, principles, patterns, and modeling techniques. It defines architecture as the structure of a system comprising software elements and relationships. Some key principles discussed are single responsibility, open/closed, and dependency inversion. Common patterns like MVC, layered, and multitier architectures are explained. The document also introduces Unified Modeling Language (UML) for modeling systems using diagrams like class, component, and package diagrams.
Diagrams are important communication tools that help visualize software architecture. There are different levels of diagrams including context diagrams, container diagrams, and component diagrams. Context diagrams show the system context and external actors. Container diagrams show high-level technology choices and responsibilities. Component diagrams show the logical components within a container and their relationships. Together these diagrams help communicate the overall architecture vision at different levels of abstraction.
The document discusses object-oriented analysis and design (OOAD), including an introduction to basic OO principles like encapsulation, abstraction, hierarchy, and modularity. It then covers various techniques for object-oriented analysis like noun lists and use cases. Finally, it discusses the process of transforming analysis models into design models using object-oriented design.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Software Architecture and Project Management module III : PATTERN OF ENTERPRISEsreeja_rajesh
This document discusses various software architecture patterns. It begins by covering communication patterns, including the forward-receiver and client-dispatcher-server patterns. It then discusses structural patterns, including decorator, proxy, bridge, composite and others. For each pattern, it provides descriptions, examples, and UML diagrams. The document is focused on explaining different types of architectural patterns for software design.
This is an introductory lecture to Software Architecture, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
This document provides an overview of the Unified Modeling Language (UML) including its motivations, types of diagrams, syntax, and tools. UML is a standardized modeling language used to communicate software design through visual models. It allows specification of user interactions, system responsibilities, data flow, and more. Common UML diagram types include use case diagrams, class diagrams, sequence diagrams, and state diagrams. Each diagram type has a specific notation and purpose in modeling different aspects of a software system.
Software Archtecture.
Software design is a process to transform user requirements into some suitable form, which helps the programmer in software coding and implementation.
Software design is the important step in SDLC (Software Design Life Cycle), which moves the concentration from problem domain to solution domain. It tries to specify how to fulfill the requirements mentioned in SRS.
Software design plays an important role in developing software: during software design, software engineers produce various models that form a kind of blueprint of the solution to be implemented
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Mozaic Works
This document discusses software architecture and how it relates to code. It suggests that software architecture should be more accessible to developers and embodied in the code through architecturally evident coding styles. Components can be extracted from code if naming conventions, packaging, and other patterns are used. Both diagrams and code should reflect the architectural abstractions. Software architecture models can be maintained as code to keep them in sync with implementation changes.
This seminar lecture, provided at the Gran Sasso Science Institute, provides an overview on software architecture styles, product lines, and my research
The document discusses deployment diagrams in UML. It defines key concepts like nodes, artifacts, manifestations, and deployment targets. It explains that deployment diagrams show how software components are deployed to physical hardware, and can model communication between nodes. The document also provides guidance on how to construct deployment diagrams and examples of common diagram elements.
This document provides an introduction and overview of structural modeling and use case modeling in the Unified Modeling Language (UML). It discusses the goals and benefits of modeling, provides a quick tour of UML concepts, and covers the core elements of structural modeling like classes, interfaces, associations and diagrams. It explains when and how to model system structure and provides an example of interface-based design. The document is intended to teach the basics of UML structural and use case modeling.
The document discusses architecture implementation frameworks. It defines an architecture implementation framework as a piece of software that bridges an architectural style to implementation technologies. It provides examples of different frameworks for supporting the pipe-and-filter and C2 styles. Frameworks can be evaluated based on properties like platform support, fidelity to style, assumptions, and efficiency. Middleware and component models are related but emerge based on services rather than style. Strategies for resolving mismatches between style and middleware are discussed.
This document discusses interoperability between software components. It defines interoperability as the ability of independently developed components to interact meaningfully by communicating and exchanging data or services. Achieving interoperability is challenging due to heterogeneity between components in terms of programming languages, platforms, data formats, and assumptions. Common Object Request Broker Architecture (CORBA) and XML are examined as approaches to enabling interoperability, but both make assumptions that can limit their effectiveness and even introduce new interoperability issues in some cases. Shaw's taxonomy of interoperability solutions is also referenced.
Software Architecture: views and viewpointsHenry Muccini
This is an introductory lecture to Software Architecture Views and Viewpoints, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Domain-driven design (DDD) is an approach that involves using a shared domain model and ubiquitous language to support complex domains and ensure alignment between software design and business needs. It emphasizes basing the software design on an evolving model that shares common concepts with domain experts. DDD uses patterns like entities, value objects, aggregates and repositories to structure the software around domain concepts and separate domain logic from data access and external interfaces.
The document discusses software architecture, including definitions, principles, patterns, and modeling techniques. It defines architecture as the structure of a system comprising software elements and relationships. Some key principles discussed are single responsibility, open/closed, and dependency inversion. Common patterns like MVC, layered, and multitier architectures are explained. The document also introduces Unified Modeling Language (UML) for modeling systems using diagrams like class, component, and package diagrams.
Diagrams are important communication tools that help visualize software architecture. There are different levels of diagrams including context diagrams, container diagrams, and component diagrams. Context diagrams show the system context and external actors. Container diagrams show high-level technology choices and responsibilities. Component diagrams show the logical components within a container and their relationships. Together these diagrams help communicate the overall architecture vision at different levels of abstraction.
The document discusses object-oriented analysis and design (OOAD), including an introduction to basic OO principles like encapsulation, abstraction, hierarchy, and modularity. It then covers various techniques for object-oriented analysis like noun lists and use cases. Finally, it discusses the process of transforming analysis models into design models using object-oriented design.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Software Architecture and Project Management module III : PATTERN OF ENTERPRISEsreeja_rajesh
This document discusses various software architecture patterns. It begins by covering communication patterns, including the forward-receiver and client-dispatcher-server patterns. It then discusses structural patterns, including decorator, proxy, bridge, composite and others. For each pattern, it provides descriptions, examples, and UML diagrams. The document is focused on explaining different types of architectural patterns for software design.
This is an introductory lecture to Software Architecture, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
This document provides an overview of the Unified Modeling Language (UML) including its motivations, types of diagrams, syntax, and tools. UML is a standardized modeling language used to communicate software design through visual models. It allows specification of user interactions, system responsibilities, data flow, and more. Common UML diagram types include use case diagrams, class diagrams, sequence diagrams, and state diagrams. Each diagram type has a specific notation and purpose in modeling different aspects of a software system.
Software Archtecture.
Software design is a process to transform user requirements into some suitable form, which helps the programmer in software coding and implementation.
Software design is the important step in SDLC (Software Design Life Cycle), which moves the concentration from problem domain to solution domain. It tries to specify how to fulfill the requirements mentioned in SRS.
Software design plays an important role in developing software: during software design, software engineers produce various models that form a kind of blueprint of the solution to be implemented
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Mozaic Works
This document discusses software architecture and how it relates to code. It suggests that software architecture should be more accessible to developers and embodied in the code through architecturally evident coding styles. Components can be extracted from code if naming conventions, packaging, and other patterns are used. Both diagrams and code should reflect the architectural abstractions. Software architecture models can be maintained as code to keep them in sync with implementation changes.
This seminar lecture, provided at the Gran Sasso Science Institute, provides an overview on software architecture styles, product lines, and my research
The document discusses deployment diagrams in UML. It defines key concepts like nodes, artifacts, manifestations, and deployment targets. It explains that deployment diagrams show how software components are deployed to physical hardware, and can model communication between nodes. The document also provides guidance on how to construct deployment diagrams and examples of common diagram elements.
This document provides an introduction and overview of structural modeling and use case modeling in the Unified Modeling Language (UML). It discusses the goals and benefits of modeling, provides a quick tour of UML concepts, and covers the core elements of structural modeling like classes, interfaces, associations and diagrams. It explains when and how to model system structure and provides an example of interface-based design. The document is intended to teach the basics of UML structural and use case modeling.
The document discusses architecture implementation frameworks. It defines an architecture implementation framework as a piece of software that bridges an architectural style to implementation technologies. It provides examples of different frameworks for supporting the pipe-and-filter and C2 styles. Frameworks can be evaluated based on properties like platform support, fidelity to style, assumptions, and efficiency. Middleware and component models are related but emerge based on services rather than style. Strategies for resolving mismatches between style and middleware are discussed.
This document discusses interoperability between software components. It defines interoperability as the ability of independently developed components to interact meaningfully by communicating and exchanging data or services. Achieving interoperability is challenging due to heterogeneity between components in terms of programming languages, platforms, data formats, and assumptions. Common Object Request Broker Architecture (CORBA) and XML are examined as approaches to enabling interoperability, but both make assumptions that can limit their effectiveness and even introduce new interoperability issues in some cases. Shaw's taxonomy of interoperability solutions is also referenced.
Software Architecture: views and viewpointsHenry Muccini
This is an introductory lecture to Software Architecture Views and Viewpoints, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Webinar: Designing a schema for a Data WarehouseFederico Razzoli
Are you new to data warehouses (DWH)? Do you need to check whether your data warehouse follows the best practices for a good design? In both cases, this webinar is for you.
A data warehouse is a central relational database that contains all measurements about a business or an organisation. This data comes from a variety of heterogeneous data sources, which includes databases of any type that back the applications used by the company, data files exported by some applications, or APIs provided by internal or external services.
But designing a data warehouse correctly is a hard task, which requires gathering information about the business processes that need to be analysed in the first place. These processes must be translated into so-called star schemas, which means, denormalised databases where each table represents a dimension or facts.
We will discuss these topics:
- How to gather information about a business;
- Understanding dictionaries and how to identify business entities;
- Dimensions and facts;
- Setting a table granularity;
- Types of facts;
- Types of dimensions;
- Snowflakes and how to avoid them;
- Expanding existing dimensions and facts.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
OpenID AuthZEN Interop Read Out - AuthorizationDavid Brossard
During Identiverse 2024 and EIC 2024, members of the OpenID AuthZEN WG got together and demoed their authorization endpoints conforming to the AuthZEN API
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
2. How would you define an Architecture
Description Language (ADL)?
Architecture Description Languages (ADLs) are formal
languages that can be used to represent the architecture
of a software-intensive system
How would you define an architecture?
The components that comprise a system;
The behavioural specifications for those components;
The patterns and mechanisms for interactions among
them.
3. What are the main differences between
ADL and requirements?
In principle…
… Requirements describe problem spaces, while
… ADL are rooted in the solution space.
In practice…
… Requirements are often divided into behavioural chunks for
ease of presentation,
… Languages such as ADLs are more suited to represent
architectural components.
4. What are the main differences between
ADL and programming languages?
In principle…
… Programming languages bind all architectural abstractions to
specific point solutions, while
… ADLs intentionally suppress or vary such binding.
In practice…
… Architecture is embodied and recoverable from code, while
… Languages provide architecture-level views of the system.
5. What are the main differences between
ADL and modelling languages?
In principle…
… Modelling languages are more concerned with the
behaviours of the sholw rather than of the parts, while
… ADLs concentrate on representation of components.
In practice…
… Many modelling languages allow the representation of
cooperating components and can represent architectures
reasonably well.
6. Which leads to the question…
Why do we study ADLs when modelling
languages, such as UML, “can represent
architectures quite well”?
7. Properties that ADLs should exhibit:
[Shaw] [Luckham]
Ability to represent Component abstraction
components Communication abstraction
Ability to represent Communication integrity
connectors Ability to model dynamic
Abstraction and architectures
encapsulation Ability to reason about
Types and Type-checking causality and time
Ability to accommodate Hierarchical refinement
analysis tools openly support
Relativity, the mapping of
behaviours to architecture
What are the commonalities between the two lists?
8. Do you think that researchers are re-
inventing the wheel of ADLs?
9. Why do you think ADLs still lack
industrial applicability?
11. Two aspects of ADL:
1. To aid understanding and
communication about a software system
2. To provide formal syntax and semantics
of ADLs, powerful analysis tools and
runtime support tools.
Researchers have generally adopted one or
another…
12. Tracz defines an ADL as consisting
of four “C”s: components,
connectors, configurations and Given that there is
constraints. NO standard
Medvidovic and colleagues argue definition of what
that it is vital to model
architectures at four levels of
abstraction: internal component
{ properties an ADL
should exhibit, do
you think ADL
semantics, component interfaces, interchange is
component interconnections in an possible?
architecture, and architectural style
rules.
We have seen Luckham and Shaw
in the previous paper…
If you had to define a consensus of an
ADL, what would that be?
13. Different types of ADLs:
Implementation Implementation
Independent Constraining
Wright and Rapide: Weaves
Model components and UniCon
connectors at a high level
of abstraction; MetaH
Do not assume or Require a much higher degree
prescribe a particular of fidelity of an architecture to
relationship between an its implementations.
architectural description
Components are directly
and an implementation.
related to their
implementations
What do you think is the most successful ADL?
Implementation Independent or Constraining?
15. So previously we discussed ADL
vs. Modelling Languages,
especially UML…
Here, the paper states that:
{ “Although UML may provide
modeling power equivalent to or
suprassing that of an ADL, the
abstractions it provides will not
match an architect’s mental
model of the system”.
16. Statecharts is a modeling formalism based on
finite state machines (FSM) that provides a
state encapsulation construct, support for
concurrency, and broadcast communication.
{ Comparing Statecharts & ADLs
States -> components
Transitions -> connectors
Interconnections -> configurations
17. Do you think Statechart is
an ADL?
Statechart is NOT an ADL!
18. Each ADL models
components
ACME, Aesop, CS, Darwin, SADL, UniCon and
Wright -> components;
Rapide -> interfaces;
Weaves -> tool fragments;
MetaH -> processes.
---> Differ in the Terminology!
Different ADLs focus on different application domains,
architectural styles, or aspects of the architectures they
model.
19. PLAYER input IS StreamIn
MAXASSOCS (1)
MINASSOCS(1)
SIGNATURE (“line”)
PORTBINDING (stdin)
END input
{ UniCon
Explanation: The constraint that the input player of StreamIn
type is bound to standard input and participates in exactly one
association in a given architecture.
20. port DataRead = get DataRead ☐
✓
Explanation: Interaction protocol for a component port.
: event transition
✓ : successfully terminating process
☐ : deterministic choice
{ Wright
21. Local_client : TYPE = {c:Client | Local(c)}
Explanation: Local_client is a subtype of Client such that all of
its instance satisfy the predicate Local.
{ SADL
22. Do you think an ADL is
capable of specifying non-
functional component
requirements?
ACME, Aesop and Weaves lack support.
MetaH and UniCon provide more support
for modelling non-functional properties.
23. ADLs that model
connectors
ACME, Aesop, C2, SADL, UniCon and Wright ->
connectors;
Rapide and MetaH-> connections;
Weaves -> transport services;
Darwin -> bindings.
---> Differ in the Terminology!
24. ROLE output IS Source
MAXCONNS(1)
END input
Explanation: Belongs to the Pipe connector type and is
constrained to be connected to at most a single player.
Example of
{ connector in
UniCon
25. What about Non-Functional
Connector Properties?
UniCon is the only ADL that
supports explicit specification
of non-functional connector
properties.
26. ADLs that model
configurations
In-line configuration ADLs (ex. Rapide) tend to be
encumbered with connector details.
Explicit configuration ADLs (ex. Wright) have the
best potential to facilitate understandability of
architectural structure.
27. Configurations are used to facilitate
communication among different
stakeholders with different level of
technical expertise.
In-line configuration ADLs (ex. Rapide) tend to be
encumbered with connector details.
Explicit configuration ADLs (ex. Wright) have the
best potential to facilitate understandability of
architectural structure.
28. ADLs support development in the
following programming languages:
Aesop and Darwin C++;
MetaH Ada;
Unicon C;
C2 C++, Ada and Java;
Weaves C, C++, Objective C and Fortran.
29. Scaling an Architecture
An existing
architecture is
{ scaled up: (a) by
adding new
components/conn
ectors to its
interior and (b)
by expanding it
C2’s graphical notation “outward”.
Can you name any disadvantages between
the two different scaling approaches?
30. Evolvability
What are the two different perspectives of
evolvability of architectural configuration?
The ability to accommodate addition of new
components (as shown in the previous slide).
An ADL’s tolerance and/or support for incomplete
architectural descriptions.
31. What is Architecture
Tradeoff Analysis Method
(ATAM)?
- A comprehensive way to evaluate a
software architecture;
- Reveals how well an architecture
satisfies particular quality goals;
- Provides insight into how quality
goals interact.
32. ATAM requires
participation and mutual
cooperation of 3 groups:
1. The evaluation team – an external group
to the project.
2. Project decision makers – are empowered
to speak for the development project or
have to mandate changes to it.
3. Architecture stakeholders.
33. Outputs of the ATAM
- A concise presentation of the
architecture;
- Articulation of the business goals;
- Quality requirements in terms of a
collection of scenarios;
- Mapping of architectural decisions to
quality requirements;
- A set of identified sensitivity and
tradeoff points;
- A set of risks and non risks;
- A set of risk themes.
34. Phases of the ATAM
Phase Activity Participants Typical
Duration
0 Partnership and Evaluation team Proceeds informally
Preparation leadership and key project as required, perhaps
decision makers over a few weeks.
1 Evaluation Evaluation team and 1 day followed by a
project decision makers hiatus of 2 to 3
weeks
2 Evaluation Evaluation team, project 2 days
(continued) decision makers and
stakeholders
3 Follow-up Evaluation team and 1 week
evaluation client