Acme: a Language for Architecture Exchange and Analysis. Talk Outline

Similar documents
Software Architectures

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Introduction. ADL Roles

GSAW Software Architectures: What are we Building? March 1999

An Information Model for High-Integrity Real Time Systems

Current Issues and Future Trends. Architectural Interchange

Introduction to Modeling

Describing Information Systems Moving Beyond UML

Minsoo Ryu. College of Information and Communications Hanyang University.

Using the UML for Architectural Description Rich Hilliard

Review Sources of Architecture. Why Domain-Specific?

Programming Languages Third Edition

Ch 1: The Architecture Business Cycle

Architecture. Readings and References. Software Architecture. View. References. CSE 403, Spring 2003 Software Engineering

Semantics-Based Integration of Embedded Systems Models

SoberIT Software Business and Engineering Institute. SoberIT Software Business and Engineering Institute. Contents

Architecture. CSE 403, Winter 2003 Software Engineering.

Formal Modelling of Railway Interlockings Using Event-B and the Rodin Tool-chain

Metaprogrammable Toolkit for Model-Integrated Computing

Software Architectures. Lecture 6 (part 1)

UML-Based Conceptual Modeling of Pattern-Bases

A SIMULATION ARCHITECTURE DESCRIPTION LANGUAGE FOR HARDWARE-IN-LOOP SIMULATION OF SAFETY CRITICAL SYSTEMS

Architectural Blueprint

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

CSE 20 DISCRETE MATH. Fall

Software Architecture. Lecture 5

Theorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214

Domains of Concern in Software Architectures and Architecture Description Languages

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

Meta Architecting: Towered a New Generation of Architecture Description Languages

To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED.

An experiment with variable binding, denotational semantics, and logical relations in Coq. Adam Chlipala University of California, Berkeley

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

CSC 501 Semantics of Programming Languages

Computing Fundamentals 2 Introduction to CafeOBJ

Lecture 11 Lecture 11 Nov 5, 2014

Nick Rozanski Andy Longshaw Eoin Woods. Sold! How to Describe, Explain and Justify your Architecture

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

From Event-B Models to Dafny Code Contracts

Introduction to Software Engineering

Axiomatic Specification. Al-Said, Apcar, Jerejian

Specification and Analysis of Contracts Tutorial

Component-Based Software Engineering TIP

CHAPTER 9 DESIGN ENGINEERING. Overview

Self-Controlling Architecture Structured Agents

Capturing Design Expertise in Customized Software Architecture Design Environments

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

1 Motivation and Background

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

AADL Graphical Editor Design

Software Reuse and Component-Based Software Engineering

Distributed Systems Programming (F21DS1) Formal Verification

Introduction to Formal Methods

CSE 20 DISCRETE MATH. Winter

Lecture 3: Recursion; Structural Induction

Software Architectures. Lecture 8

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

ModelicaML: Getting Started Issue April 2012

LOGIC AND DISCRETE MATHEMATICS

UML 2.0 State Machines

An Ontological Approach to Domain Engineering

Handout 9: Imperative Programs and State

Real-Time and Embedded Systems (M) Lecture 19

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>

INCREMENTAL SOFTWARE CONSTRUCTION WITH REFINEMENT DIAGRAMS

Test and Evaluation of Autonomous Systems in a Model Based Engineering Context

WHAT IS SOFTWARE ARCHITECTURE?

What is a Data Model?

White Paper. Major Performance Tuning Considerations for Weblogic Server

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Appendix 1. Description Logic Terminology

Programming Languages Third Edition. Chapter 7 Basic Semantics

Self-Managed Systems: an Architectural Challenge

PdOd Kev Events I Re-world war I1 rwa

Modal Logic: Implications for Design of a Language for Distributed Computation p.1/53

Part 5. Verification and Validation

Software Engineering Chap.7 - Design and Implementation

COSC 3351 Software Design. An Introduction to UML (I)

! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. !

HyperFrame - A Framework for Hypermedia Authoring

Lecture 7: Requirements Modeling III. Formal Methods in RE

Keywords: UML-B, refactoring, refinement, object-oriented design, annealing, introduce

Formal Systems and their Applications

Research Directions in Software Architecture

Diseño y Evaluación de Arquitecturas de Software. Architecture Based Design Method

Com S 541. Programming Languages I

Composability Test of BOM based models using Petri Nets

SOFTWARE ENGINEERING. To discuss several different ways to implement software reuse. To describe the development of software product lines.

Chapter 1: Programming Principles

«Computer Science» Requirements for applicants by Innopolis University

Etanova Enterprise Solutions

Semantic Interconnection Models & Inscape. Unit Interconnection Model. Example Uses of Unit IM

Chapter 2 Overview of the Design Methodology

Presenter: Dong hyun Park

THE LOGIC OF QUANTIFIED STATEMENTS

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

CASE TOOLS LAB VIVA QUESTION

Object-Oriented Theories for Model Driven Architecture

Transcription:

Acme: a Language for Architecture Exchange and Analysis Dave Wile USC/ISI/CSE wile @ isi.edu http://www.isi.edu/softwaresciences/wile/home-page.html Talk Outline What is architecture? The uses for formal ADLs Acme fundamentals Acme support tools Current work - Architecture dynamism - Architecture-based, domain-specific analysis and generation

What is Architecture? "Boxes and Arrows" Convey structural information - Gross organization - Interacting, interconnected components Often require multiple views or perspectives Identify conceptual or actual artifacts Identify information or control flows Concern events relating the artifacts Foundation for constraints on behaviors and relatedness of entities and events Do not convey functionality

Architecture Design Current practice: - ad hoc - informal - picture-based Therefore, - Poorly understood by developers - Designs cannot be analyzed for consistency or completeness - Constraints are not enforced during system evolution - No tools to help designers with their tasks Hence, we need formal architecture description languages The Uses for Formal ADLs

Uses for ADL Specifications Confluent terminology Structural specification for readers Application-independent analyses - connectors are connected: >> all top level inputs are inputs to some subcomponent >> all top level outputs are outputs from some subcomponent - contexts imposed on the same name are consistent - instantiations have the same number of input and output arguments as the generic - parts referenced by instances must be defined by generics Uses for ADL Specifications Application-dependent analyses: - Interaction protocols - Bandwidths and latencies - Locations of resources - Anticipated dimensions of evolution Simulation Animation Instantiation to produce application code Traversal mechanisms for system programmers - apply to each - filter - choose subarchitecture

New Ideas Community Consensus Architecture Interchange Language Integration of independently-developed, architecture analysis tool sets. Idiosyncracies conveyed via annotated properties Architecture Infrastructure Shared via the Web Impact No duplication of architecture-related tools among EDCS Community Shared Architecture and Generation Cluster community vision Low buy-in, architecture-based analysis and prototyping support for specific problem domains Schedule ACME Language Specification Acme Fundamentals

Goals for ACME Interchange format for architectural development tools and environments -n * m problem -> m + n >> graphical interface tools >> animation >> analysis for deadlock, well-fonnedness >> architecture style-specific tools Underlying representation for developing new tools for analyzing and visualizing architectures Goals for ACME Vehicle for creating conventions: concensus building - Semantic foundations >> refinement >> event-based >> temporal logic - Architecture families >> Architecture evolution >> Dynamic architectures Expressive descriptions that are easy for humans to read and write

ACME Kernel Components, with ports Connectors, with roles Attachments of particular ports to particular roles Aggregates: collections of components, connectors and attachments Properties of any of above I Name Here Acme Support Tools

Project Directions Deployment of Research Components - Development: AcmeLib, Webifier, GUI Tools, Layout Tools, Acme Language with (Types and Families) - Research: Families (styles), Dynamism, Semantics, Constraints (Armani), Domain-specific architecture analyzers and generators Deployment Platforms - Development: Java, C++ - Research: Common Lisp (Popart/APS/Flea), Haskell, Java++ Community-wide Architecture ToolKit (ATK) Available: - Layout - Connectivity Analysis - Acme => Rapide, Wrigl- ~t, and UniCon's tool availability - Performance Analysis Under Development: Automatic Tools - PC-based Acme graphical editor - Powerpoint-based Acme graphical editor - Static constraint checker and visualizer - Event sublanguage

Available: Tools for Generation - GUI Acme interface, generating Acme from Graphics and vise versa - Interchange via Acme generation among: Rapide, Wright, UniCon, Aesop Under development: - Acme (Armani) constraint enforcer - Acme semantics generator - MetaH in Acme - Constraint "residue" generation for constraint checks against dynamically maintained model of architecture Incremental Value-Added Adapt and build on what you have - No implementation assumptions on what architecture is describing - Versions available on multiple platforms Reuse of effort - Customize architecture families for multiple product reuse Increased return on assets - Introduced automation where none existed

Certainty in Design and Development Ensure against mistakes - Architecture analysis up-front, before detailed design decisions, e.g. precise module decomposition - Dynamic verification of architectural constraints with potential for violation prevention Change with high confidence and predictability - Reanalysis is cheap - Interface assumptions constantly rechecked if using architectural composition mechanism - Design evolution constraints enforced - Dynamic constraint maintenance Easily Assimilated Adoption barriers - Shallow learning curve for Acme specification language - Shallow learning curve on available tools (high leverage) - Multiple platform availability enables adoption in embedded systems Costs - Low buy-in to obtain tool use - Multiple platform availability avoids interoperation costs

Web-based ACME Tools Webifier: produces web-viewable description of ACME Layout tool that packages graph layout algorithms that you can experiment with (used by webifier) Research Directions Powerpoint Design Editor Architecture Dynamism Quality of Service Specifications

ACME is Stable I am about to describe our research at IS1 Do not mistake the speculative nature of the research as instability in the language. Existing syntax and tools will be supported as long as there are users. We are extending Acme to include dynamism. Moreover, we are specifying Acme's semantics precisely to understand the dynamic effects and design problem-specific tool support Research Directions ==> Powerpoint Design Editor - Architecture-based, domain-specific analysis and generation Architecture Dynamism Quality of Service Specifications

Architecture for Analysis Powerpoint interface to Acme All components, ports, connectors, and roles created using normal Powerpoint Mediating Connector technology used to keep a shadow AcmeLib-like model of activity Designer customizes the icons, colors, fonts, etc., used to create the architecture Designer decides what attributes can be attached to the various parts Designer writes problem-domain specific analysis packages C......... C

Designer' s Environment Component and Connector classes and abstract classes built up graphically Type structure conveyed by arrows Enumerated datatypes in addition to integers, float, boolean and string specified Legal attributes described on a per type basis Attributes inherited from abstract classes Analysis menus and error notification information described

Research Directions Powerpoint Design Editor ==> Architecture Dynamism Quality of Service Specifications Architecture Dynamism Variety of ways architecture can change: - Instantiation of nearly complete template - Logical refinement of components - Additions to skeleton or reference architecture - Implementation details - Self-modifying architecture The last is what is usually meant by "dynamism" in architecture, but the concerns are the same in all

Dynamic ACME Possible uses: - Design rules a la Arrnani - Law-governed systems a la Naftaly Minsky - Flea-enforced multiple stage dynamic constraints - Single state constraint checking a la Common Lisp ACME Analyzer - Adapt Wright dynamism (- constraints on script) Shared Concerns Stem from analyzability - Want to guarantee that certain properties hold or do not hold - These depend on the architecture, the topological structure Examples: - End-to-end throughput depends on interfering traffic - Security depends on knowing all connections through which secure information could leak - Accountability depends on intercepting all sources of information needing accounting

Closed World Assumptions Allow finer reasoning - structural closure is ideal - closure of means for changing/constructing may be just as good (induction needed to prove properties maintained) Alternatives: - model the dynamic architecture and check constraints on behavior dynamically - must detect before a system becomes unsafe Declarative Dynamic ACME Semantic implications: - open elements, elements whose parts are not entirely specified - optional and multiple elements, whose presence is not necessarily guaranteed Constraints represented by specifications are conditionally existentially quantified Operational ACME mirrors in transactions

Acme Semantics Properties and predicates are either: - Assumed to hold -- the axioms - Derivative from those assumed to hold -- the theorems Implicitly, an Acme specification requires that topological assumptions be verified to hold in the artifact the specification purports to describe Assumed predicates must also be verified there Derived predicates are logical consequences Example Open Component - open component A-D = {port in = {assume property I = r} }; - Component A-D and port A-D.in can be identified in the artifact: identifiable(a-d) and identifiable(a-d.in) - They are instances of types corresponding to component and port in the implementation: component(a-d) and port(a-din) - Port A-D.in is a port of A-D: port-of(a-din, A-D) - A-D.inJs properties are satisfied in the artifact: I(A-D.in)=r

Same Component Closed - gpdn component A-D = {port in = {property I = r)); - semantics: identifiable(a-d) and identifiable(a-d.in) and component(a-d) and port(a-d.in) and port-of(a-d.in, A-D) and for all p port-of(p,a-d) => p=a-d.in and I(A-D.in)=r More Constrained Openness Allow optional parts in specification (ports, components, connectors, roles) Semantics is a predicate conditioned on identifying the optional parts Some closure statements are still possible Done with "multiplicity" notation of mathematics adopted by UML

Example Optional Port - component A-D = { port in; O..1 port scale=property P=q) - semantics: identifiable(a-d) and identifiable(a-din) and component(a-d) and port(a-d.in) and port-of(a-din, A-D) and (identifiable(a-d.scale) => P(A-D. scale)=q) and for all p (port-of(p,a-d) => p=a-d.in or p=a-d.scale) Optional and Multiple Parts - open component A-D = { port in; open 0..1 port scale; 0.. port out) - Informally: A-D may have more ports If port scale is present, it may be defined further Port out is multiple and may be referred to as outlj], but it need not appear Ports in and out are "closed" Essentially, these provide idioms for refined openness

Real Use for Semantics Specify styles using dynamism constructs Instantiate style types in a specification Derive semantics automatically: assumptions and proof obligations Pass off semantics to a theorem prover - Theorem prover may prove some things inconsistent; must rewrite specification - Theorem prover may be able to derive some derivatives - Take residue and check dynamically in a simulation keeping track of the abstract architectural structure (using a Base Acme facility)

Research Directions Powerpoint Design Editor Architecture Dynamism ==> Quality of Service Specifications QoS Problem Construct and run - many complex applications - whose computing resource needs vary over time - sometimes conflicting with one another - on a single computing platform Guaranteeing QoS attributes to the applications - resource utilization - robustness

Allow Applications to: Place varying demands on system resources over time. Communicate changes in requirements to a QoS infrastructure. Respond to changes in resource availability. Negotiate with providers for the appropriate level of resource support.. I r Camera - Recognizer Results Figure 1 : Image Processing Architecture

G' Main Camera ii Front Camera Results Figure 2a: Station 1 Architecture mcarner.-. Recognizer i A Results Figure 2b: Station 2 Architecture Camera...... Station 1 Station 2 Results, Results Figure 3: Implementation Architecture

Technology: each application The logical topology (architecture) of the application; A state-space characterization of its dynamic execution; The topological elements' dependencies on these states and resource requests associated with them; Transitions between states in this space; Models governing the timing and extent of resource consumption (to be transmitted to the QoS manager); Policies reacting to choices that could be presented by different platform models; Platform and state-based implementation choices for topological elements; Platform and state-based descriptions for QoS model monitoring. Each Implementation Its topology (architecture), normally a modification of an already-existing design; QoS performance and cost models for the resources it controls.

Generate Automatically An analysis of the well-formedness, consistency, completeness, and conformance between the various specifications; An implementation harness for communicating QoS information between nodes in the platform topology; A distributed QoS manager that runs on the platform; A set of surrogate model managers for the applications, collecting QoS-relevant information and transmitting it when it differs from the distributed manager's model; A QoS model manager, reporting discrepancies in QoS resource availabilities or performance costs from those previously known by the application. Station 1 Specification States Monitoring, Seeking, Coping Components: IR: When Seelung or Coping: present = true Recognize: When Monitoring: Execution module is "c:/egg/scan.exen When Seeking: Execution module is "c:/egg/hot-spot.exe" When Coping: Execution module is "c:/egg/snap.exe" Requests: When Monitoring & Result.movement: allocate IR When Seeking & Operator.cance1: release IR Transitions: When Monitoring: Result.movement 3 Seeking Main-Camera.failure 3 Coping When Seeking: Result.quiescent 3 Monitoring When Coping: Main-Camera.on-line + Monitoring Result.movement 3 Seeking