1 / 50

Architecture Description Languages (ADLs)

Architecture Description Languages (ADLs). A Brief History of ADLs. Software architecture emerged as a research discipline in the early 1990s Soon thereafter, many notations were either invented, recast, and/or argued for as architecture description languages

herbst
Download Presentation

Architecture Description Languages (ADLs)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architecture Description Languages (ADLs)

  2. A Brief History of ADLs • Software architecture emerged as a research discipline in the early 1990s • Soon thereafter, many notations were either invented, recast, and/or argued for as architecture description languages • Each provided modeling capabilities geared at software design • Though not necessarily architecture! • They saw varying degrees of adoption and use

  3. What is an ADL?

  4. So, What Was the Answer? • An ADL is a language that provides features for modeling a software system’s conceptualarchitecture, distinguished from the system’s implementation. • An ADL must support the building blocks of an architectural description • Components • Interfaces • Connectors • Configurations

  5. What Happened to the ADLs? • Some of the obvious reasons: • Often targeted at research environments • Awkward syntax and/or semantics • Modeling rigidity • Limited and idiosyncratic analysis support • Inadequate tool support • UML • Video killed the radio star…

  6. Examples on ADL • Early generations: • Darwin, Rapide, Wright • Domain and style specific ADLs: • Koala, AADL • Extensible ADLs: • Acme, ADML (an XML based ADL; syntax derived from Acme), xADL

  7. What Does/Did an ADL Description Look Like? • A Rapide component type Application is interface extern action Request(p : params); public action Results(p : params); behavior (?M in String) Receive(?M) => Results(?M);; end Application;

  8. What Does/Did an ADL Description Look Like? • A Wright connector

  9. What Does/Did an ADL Description Look Like? • An Acme architecture

  10. Classifying ADLs • Essential features • Components • Connectors • Interfaces • Configurations • Desirable features • Specific aspects of components, connectors, and configurations • Tool support • Approaches to modeling configurations • Implicit configuration • Explicit configuration • Approaches to associating architecture with implementation • Implementation constraining • Implementation independent

  11. Brilliant! So, what went wrong?

  12. Business Domain Technology Remember This? Software Architecture

  13. Business Domain Technology Where “1G” ADLs Lived… Software Architecture

  14. So, a Deeper Reason • 1G ADLs focused exclusively on technology • So did our study • The broader context was completely missing • Relation to system requirements • Constraints imposed by implementation platforms • Characteristics of application domains • Organizational structure and politics • Business model • Position in the marketplace • …

  15. How Do We Define an ADL Then? • An architectural model is an artifact or document that captures some or all of the design decisions that make up a system’s architecture. • Architectural modeling is the effort to capture and document the design decisions that make up a system’s architecture. • An architecture description language is a notation in which architecture models can be expressed.

  16. 2G ADLs • Only a handful of 1G ADLs have “stuck around”… • …but, boy, have they changed • They evolved into 2G ADLs • UML 2.0  UML 1.x • AADL  MetaH • Koala  Darwin  Conic • xADL 2.0  xADL 1.0  C2 • All have strong technological foci • Yet they are very different from each other

  17. UML 2.0 • De facto standard software design language • Developed by OMG • A “Swiss Army Knife” of notations • Has a number of architectural constructs • Ubiquitous • Primary focus – to conquer the world

  18. UML 2.0 in Action

  19. UML 2.0 in Action

  20. UML 2.0 in Action

  21. UML 2.0 Under the Lampposts Software Architecture

  22. Domain Technology UML 2.0 Under the Lampposts Software Architecture

  23. Technology UML 2.0 Under the Lampposts Software Architecture Business

  24. Business Technology UML 2.0 Under the Lampposts Software Architecture Business Domain

  25. AADL • Architecture Analysis and Design Language • Initially stood for “Avionics ADL” • Primarily textual • Very detailed • An AADL component runs on a processor, which runs one or more processes, each of which contains one or more threads of control, all of which can receive instructions through in ports and send data through out ports over a bus… • Primary focus – embedded, real-time, hybrid systems

  26. AADL in Action system implementation sensor_type.temperature subcomponents the_sensor_processor : processor sensor_processor_type; the_sensor_process : process sensor_process_type.one_thread; connections bus access network -> the_sensor_processor.network; event data port sensed -> the_sensor_process.sensed; event data port control -> the_sensor_process.control; properties Actual_Processor_Binding => reference the_sensor_processor applies to the_sensor_process; end sensor_type.temperature;

  27. AADL Under the Lampposts Software Architecture

  28. Domain Technology AADL Under the Lampposts Software Architecture

  29. Domain Technology AADL Under the Lampposts Software Architecture

  30. Business Domain Technology AADL Under the Lampposts Software Architecture Business

  31. Koala • Developed at Philips • In collaboration with Imperial College London • Used in the consumer electronics domain • Both graphical and textual • Primary focus – management of product populations • Modeling • Analysis • Implementation generation • Deployment

  32. Koala in Action

  33. Koala in Action

  34. Koala Under the Lampposts Software Architecture

  35. Domain Koala Under the Lampposts Software Architecture Technology

  36. Business Koala Under the Lampposts Software Architecture Technology

  37. Business Domain Koala Under the Lampposts Software Architecture Technology

  38. xADL 2.0 • Developed at UC Irvine • In use at Boeing • XML substrate • Both graphical and textual • Primary focus – extensibility

  39. xADL 2.0 in Action

  40. xADL 2.0 in Action <component id="dbComp"> <description>Database</description> <interface id="sql-in"> <description>SQL</description> <direction>in</direction> </interface> <datasource> <vendor>Oracle Corp.</vendor> <location>db.example.com:1234/db1</location> <username>webUser</username> <password>secret</password> </datasource> </component>

  41. xADL 2.0 Under the Lampposts Software Architecture

  42. Domain Technology xADL 2.0 Under the Lampposts Software Architecture

  43. Business Technology xADL 2.0 Under the Lampposts Software Architecture

  44. Business Technology xADL 2.0 Under the Lampposts Software Architecture Domain

  45. 2G ADLs Side-by-Side UML 2.0 AADL Koala xADL 2.0

  46. Some Observations • Architecture embraces many concerns • More mature and successful ADLs incorporate concerns from 3L • Multiple views are a must • No single set of modeling features is sufficient for every project • Extensibility is a key property of ADLs • Tools are often as important as notations

More Related