Software Architecture - Modeling and Notations

¡Supera tus tareas y exámenes ahora con Quizwiz!

ADML

- Effort to standardize the concepts in ACME and leverage XML as a syntactic base - advantages: -- XML parsers and tools readily available -- added some ability to reason about types of properties with meta-properties - disadvantages: -- properties are still name-value pairs -- did not take advantage of XML extension mechanisms

Unified Modeling Language

- 13 loosely-interconnected notations called diagrams that capture static and dynamic aspects of software-intensive programs - advantages -- support for a diverse array of viewpoints focused on many common software engineering concerns - ubiquity improves comprehensibility - extensive documentation and tool support form many vendors - disadvantages -- needs customization through profiles to reduce ambiguity -- difficult to assess consistency among views -- difficult to capture foreign concepts or views

Wright

- An adl that specifies structure and formal behavioral specifications for interfaces between components and connectors - advantages -- structural specification similar to Darwin or Rapide -- formal interface specifications can be translated automatically into CSP and analyzed with tools - disadvantages - High learning curve - no direct mapping to implemented systems - addresses a small number of system properties relative to cost of use

Darwin

- General purpose language with graphical and textual visualizations focused on structural modeling of systems - advantages -- simple, straightforward mechanism for modeling structural dependencies -- interesting way to specify repeated elements through programmatic constructs -- can be modeled in pi-calculus for formal analysis -- can specify hierarchical structures - disadvantages -- limited usefulness beyond simple structural modeling -- no notion of explicit connectors

Modeling Approaches

- Generic Approaches -- Natural Language -- powerpoint-style modeling -- UML (Unified Language Modeling) - Early Architecture description languages -- Darwin -- Rapide -- Wright - Domain- and style-specific languages -- koala -- weaves -- AADL - Extensible architecture description languages -- ACME -- ADML -- xADL

xADL

- Modular XML-based ABL intended to maximize extensibility both in notation and tools - advantages: -- growing set of generically useful modules available already -- tool support in ArchStudio environment -- users can add their own modules via well-defined extensibility mechanisms - disadvantages -- extensibility mechanisms can be complex and increase learning curve -- heavy reliance on tools

Caveat 2

- Some systems are difficult to model in traditional ways -- Agile systems - large, comlex, or dynamic systems

Weaves

- an architectural style and notation for modeling systems of small-grain tool fragments that communicate through data flow of objects - advantages -- extremely optimized notation (even simpler than Darwin diagrams) -- close mapping to implemented systems - disadvantages -- addresses structure and data flows only

Koala

- darwin inspired notation for specifying product lines of embedded consumer-electronics devices - advantages -- advanced product-line features let you specify many systems in a single model -- direct mapping to implemented systems promotes design and code reuse - disadvantages -- limited to structural specification with additional focus on interfaces

ACME

- early general purpose ADL with support for extensibility through properties - advantages: -- structural specification capabilities similar to Darwin -- simple property structure allows for arbitrary decoration of existing elements -- tool support with AcmeStudio - disadvantages: -- no way to add new views -- property specifications can become extremely complex and have entirely separate syntax/semantics of their own

Informal graphical modeling

- general diagrams produced in tools like powerpoint and omnigraffle - advantages -- can be aesthetically pleasing -- size limitations constrain complex diagrams (multiple slides) -- extremely flexible due to large symbolic vocabulary - disadvantages -- ambiguous, non rigorous, non formal -- cannot be effectively processed or analyzed by software or machines

Rapide

- language and tool-set for exploring dynamic properties of systems of components that communicate through events - advantages -- unique and expressive language for describing asynchronously communicating components -- tool-set supports simulation of models and graphical visualization of event traces - disadvantages -- no natural or explicit mapping to implemented systems -- high learning curve - important tool support is difficult to run on modern machines

Early architecture Description languages

- many emerged from academia - focus on structure: components, connectors, interfaces, configurations - focus on formal analysis - none used in practice today

AADL

- notation and tool-set for modeling hardware/software systems, particularly embedded and real-time systems - advantages -- allows detailed specification of both hardware and software aspects of a system -- automated analysis tools check interesting end-to-end properties of a system - disadvantages -- verbose; large amount of detail required to capture even simple systems -- emerging tool support and UML profile support

Domain- and Style-Specific ADLs

- notations we have surveyed thus far have been limited generically applicable to many types of software systems - if you restrict the target domain, you can provide more advanced features and/or reduce complexity

Informal graphical modeling evaluation

- scope and purpose -- arbitrary diagrams consisting of symbols and text - basic elements -- geometric shapes, splines, clip-art, text segments - style -- in general, no support - static and dynamic aspects -- any aspect can be modeled, but no semantics behind modeling - dynamic modeling -- rare, although APIs to manipulate graphics exist - non functional aspects -- with natural language annotations - ambiguity -- can be reduced through the use of rigorous symbolic vocabulary/dictionaries - accuracy -- manual reviews and inspection - precision -- up to modeler; generally canvas is limited in size - viewpoints -- any viewpoint - viewpoint consistency -- manual reviews and inspection

Natural Language Evaluation

- scope and purpose -- capture design decisions in prose form - basic elements -- any concepts required - style -- can be described by using more general language - static and dynamic aspects -- any aspect can be modeled - dynamic modeling -- no direct tie to implemented/running system - non functional aspects -- expressive vocabulary available - ambiguity -- plain natural language tends to be ambiguous; statement template and dictionaries help - accuracy -- manual reviews and inspection - precision -- can add text to describe any level of detail - viewpoints -- any viewpoint - viewpoint consistency -- manual reviews and inspection

UML evaluation

- scope and purpose -- diverse array of design decisions in 13 viewpoints - basic elements -- multitude (states, classes, objects, etc) - style -- through OCL constraints - static and dynamic aspects -- some static diagrams - dynamic modeling -- rare; depends on the environment - non functional aspects -- no direct support, natural language annotations - ambiguity -- many symbols are interpreted differently depending on context; profiles reduce ambiguity - accuracy -- well-formedness checks, automatic constraint checking - precision -- up to modeler; wide flexibility - viewpoints -- each diagram type represents a viewpoint - viewpoint consistency -- constraint checking, manual

Rapide Evaluation

- scope and purpose -- interactions between components communicating with events - basic elements -- structures, components/interfaces, behaviors - style -- N/A - static and dynamic aspects -- static structure and dynamic behavior is co-modeled - dynamic modeling -- some of the tools provide limited animation capabilities - non functional aspects -- N/A - ambiguity -- well-defined semantics limit ambiguity - accuracy -- compilers check syntax, simulators can be used to check semantics although simulation results are non-deterministic and non-exhaustive - precision -- detailed behavioral modeling possible - viewpoints -- single structural/behavioral viewpoint - viewpoint consistency -- N/A

AADL Evaluation

- scope and purpose -- interconnected multi-level systems architectures - basic elements -- multitude - components, threads, hardware elements, configurations, mappings - style -- N/A - static and dynamic aspects -- primarily static structure but additional properties specify dynamic aspects - dynamic modeling -- N/A - non functional aspects -- N/A - ambiguity -- most elements have concrete counterparts with well-known semantics - accuracy -- structural as well as other interesting properties can be automatically analyzed - precision -- many complex interconnected levels of abstraction and concerns - viewpoints -- many viewpoints addressing different aspects of the system - viewpoint consistency -- mappings and refinement can generally be automatically checked or do not overlap

Darwin evaluation

- scope and purpose -- modeling software structure - basic elements -- components, interfaces, configurations, hierarchy - style -- limited support through programmatic constructs - static and dynamic aspects -- mostly static structure; some dynamic aspects through lazy and dynamic instantiation/binding - dynamic modeling -- N/A - non functional aspects -- N/A - ambiguity -- rigorous, but structural elements can be interpreted in many ways - accuracy -- pi-calculus analysis - precision -- modelers choose appropriate level of detail through hierarchy - viewpoints -- structural viewpoints - viewpoint consistency -- N/A

xADL Evaluation

- scope and purpose -- modeling various architectural concerns with explicit focus on extensibility - basic elements -- components, connectors, interfaces, links, options, variants, versions, ..., plus extensions - style -- limited, through type system - static and dynamic aspects -- mostly static views with behavior and dynamic aspects provided through extensions - dynamic modeling -- models can be manipulated programmatically - non functional aspects -- Through extensions - ambiguity -- base schemas are permissive; extensions add rigor or formality if needed - accuracy -- correctness checkers included in ArchStudio and users can add additional tools through well-defined mechanisms - precision -- base schemas are abstract, precision added in extensions - viewpoints -- several viewpoints provided natively, new viewpoints through extensions - viewpoint consistency -- checkable through external tools and additional consistency rules

Koala Evaluation

- scope and purpose -- structures and interfaces of product lines of component based systems - basic elements -- components, interfaces, elements for variation points: switches, diversity, interfaces, etc - style -- product lines might be seen as very narrow styles - static and dynamic aspects -- static structure only - dynamic modeling -- N/A - non functional aspects -- N/A - ambiguity -- close mappings to implementation limit ambiguity - accuracy -- close mappings to implementations should reveal problems - precision -- structural decisions are fully enumerated but other aspects are left out - viewpoints -- structural viewpoint with explicit points of variation - viewpoint consistency -- N/A

Weaves Evaluation

- scope and purpose -- structures of components and connectors in the weaves style - basic elements -- components, queues, directed interconnections - style -- weaves style implicit - static and dynamic aspects -- static structure only - dynamic modeling -- N/A, although there is a 1 to 1 mapping between model and implementation elements - non functional aspects -- N/A - ambiguity -- meanings of weaves elements are well defined although important elements (protocols) are subject to interpretation - accuracy -- syntactic errors are easy to identify - precision -- structural decisions are fully enumerated but other aspects left out - viewpoints -- structural viewpoint - viewpoint consistency -- N/A

ACME Evaluation

- scope and purpose -- structures of components and connectors with extensible properties - basic elements -- components, connectors, interfaces, hierarchy, properties - style -- through type system - static and dynamic aspects -- static structure is modeled natively, dynamic aspects in properties - dynamic modeling -- AcmeLib allows for programmatic model manipulation - non functional aspects -- Through properties - ambiguity -- meanings of elements subject to some interpretation, properties may have arbitrary level of rigor/formality - accuracy -- checkable syntactically, via type system, and properties by external tools - precision -- properties can increase precision but cannot add new elements - viewpoints -- structural viewpoint is native, properties might provide additional viewpoints - viewpoint consistency -- via external tools that must be developed

Wright Evaluation

- scope and purpose -- structures, behaviors, and styles of systems composed of components and connectors - basic elements -- components, connectors, interfaces, attachments, styles - style -- supported through predicates over instance models - static and dynamic aspects -- static structural models annotated with behavioral specification - dynamic modeling -- N/A - non functional aspects -- N/A - ambiguity -- well-defined semantics limit ambiguity - accuracy -- wright models can be translated into CSP for automated analysis - precision -- detailed behavioral modeling possible - viewpoints -- single structural/behavioral viewpoint plus styles - viewpoint consistency -- style checking can be done automatically

Natural Language

- spoken/written languages such as english - Advantages -- highly expressive -- accessible to stakeholders -- plentiful tools available -- good for capturing non-rigorous or informal architectural elements (non-functional requirements) - Disadvantages -- ambiguous, non-rigorous, non formal -- often verbose (expressed in more words than needed -- cannot be effectively processed or analyzed by software or machines - ambiguity can be reduced and rigor increased by using statement templates

Caveat 1

- the preceding overview for breadth rather than depth -- semantics and capabilities of many of these notations quite deep and subtle -- you are encouraged to investigate individual notations more deeply

Extensible ADLs

- there is tension between the expressiveness of general-purpose ADLs and the optimization and customization of more specialized ADLs - How do we get the best of both worlds? -- use multiple notations in tandem -- overload an existing notation or ADL -- add additional features we want to an existing ADL - extensible ADLs attempt to provide such guidance

ADML Evaluation

SAME AS ACME BUT IN XML


Conjuntos de estudio relacionados

Real Estate Prelicense Sales Exam

View Set

Texas Statutes and Rules Common To All Lines

View Set

World Literature Unit 9-12 Review A Beka Book

View Set

Chapter 16: Big Business and Organized Labor, 1860-1900

View Set

APWH Chapter 8- Early Civilizations in Africa

View Set

AEF2/8 QT8 COMPLETE THE SENTENCES WITH THE BEST CORRECT WORD.

View Set

Chapter 24 - Assessment of the Skin, Hair, and Nails

View Set

Chapter 6: Values, Ethics, and Advocacy

View Set

Chapter 11: The Endocrine System: Glands and Hormones

View Set

Biology Quiz 3 - Plant-and Fungus-like Protists

View Set

Cell Biology: Asexual and Sexual Reproduction

View Set