Wright ADL Liz White INFT 821 - Software Architecture.

Slides:



Advertisements
Similar presentations
Addressing Non-Functional Properties in Software Architecture using ADL Christopher Van Eenoo Osama Hylooz Khaled Khan University of Western Sydney ASWEC.
Advertisements

1 Introduction to VHDL (Continued) EE19D. 2 Basic elements of a VHDL Model Package Declaration ENTITY (interface description) ARCHITECTURE (functionality)
Architecture Representation
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
DERI Innsbruck Seminar – March 2004 Robert Allen and David Garlan: A Formal Basis for Architectural Connection Uwe Keller.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Design of Web-based Systems IS Development: lecture 10.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
The Architecture Design Process
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
A Formal Model of Computation for Sensory-Based Robotics
CS189A/172 - Winter 2008 Lecture 7: Software Specification, Architecture Specification.
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
An Introduction to Rational Rose Real-Time
Chapter 7 Structuring System Process Requirements
Lecture 6 Template Semantics CS6133 Fall 2011 Software Specification and Verification.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Lecture 6 Data Flow Modeling
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
CS5204 – Operating Systems 1  -Calculus Reasoning about concurrency and communication (Part 1).
Paper written by Flavio Oquendo Presented by Ernesto Medina.
An Object-Z based Metamodel for Wright Joint work with M. Maouche 2, and M. Mosteghanemi 1 Presented by M. Bettaz 1 1 MESRS/ESI Algeria 2 Philadelphia.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
CWRU EECS 317 EECS 317 Computer Design LECTURE 1: The VHDL Adder Instructor: Francis G. Wolff Case Western Reserve University.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
Krista Lozada iAcademy First Term 2009
TAL7011 – Lecture 4 UML for Architecture Modeling.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including.
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 1 CSE 503 – Software Engineering Lecture 14: Introduction to software architecture Rob DeLine.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
1 Abstract Model Specification. 2 Explicitly describes behavior in terms of a model using well-defined types (viz. set, sequences, relations, functions)
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Advanced Component Models ULCM & HLCM Julien Bigot, Hinde Bouziane, Christian Perez COOP Project Lyon, 9-10 mars 2010.
CS223: Software Engineering Lecture 13: Software Architecture.
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
An Object-Z / CSP Based Approach for the Specification of Architectural Connectors Mourad Maouche Philadelphia University Jordan Mohamed Bettaz MESRS Algeria.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
1 A Multi-Paradigm Approach to Describe Software Systems presented by Adel Smeda.
Software Architecture Week 4, Lecture 1
UML Diagrams: Class Diagrams The Static Analysis Model
CSCI 578 Software Architectures
SOFTWARE DESIGN AND ARCHITECTURE
Software Connectors – A Taxonomy Approach
CSCI 578 Software Architectures
Software Architecture Lecture 7
Software Connectors.
Architecture Description Languages
Software Architecture Lecture 8
An Introduction to Software Architecture
Software Connectors.
Paper written by Flavio Oquendo Presented by Ernesto Medina
Software Connectors.
write on board in advance: handouts, names, Hoare quote
Software Architecture Lecture 8
Software Architecture Lecture 8
Architectural Mismatch: Why reuse is so hard?
CSCI 578 Software Architectures
Presentation transcript:

Wright ADL Liz White INFT Software Architecture

Wright Model n Components - computation elements with multiple ports n Connectors - interaction - first class - consists of roles and glue n Configuration - components and connectors related into a system

Example System SimpleExample component Server = port provide = [ provide protocol] computation = component Client = port request = [ request protocol] computation = connector C-S-connector = role client = [ client protocol] role server = [ server protocol ] glue = [ glue protocol]

Instances s: Server c: Client cs: C-S-connector Attachments s.provide as cs.server c.request as cs.client

Describing connection n Should be able to express common cases of architectural interaction (pipes, events, procedure call) n Should allow description of complex dynamic interactions between components (for example, that a connection must be initialized before use) n Should allow distinctions between connector variations n Should be based on analyzable formal model

Communicating Sequential Processes - CSP n Processes and events - events may have input (e?x) and output (e!x) data n Prefixing e --> P Internal/external choice (| and  ) n Parallel Composition -- P || Q - joint interaction over events in intersection of alphabets of P and Q Special symbol for successful termination  n Scoped process names (let Q = … in R)

Why CSP? n Other options: Petri Nets, SDL, I/O Automata, StateCharts n In CSP, we can capture the distinction between internal and external choice n CSP has parallel composition n Tool support (theorem proving) n Disadvantages: timing, fairness not addressed in CSP

Wright Connectors n Connectors describe the behavior of connection n Roles - local behavior of the interaction parties - the obligations of each participant in the interaction n Glue - describes how the activities of the roles are coordinated n Glue || role-1 || role-2 ||... || role-n

Simple Pipe connector pipe = port source = in!x --> source port sink = out?y --> sink glue = source.in?x --> sink.out!x --> glue

Simple Client/Server connector C-S-connector = role Client = (request!x --> result?y --> Client) |  role Server = (invoke?v --> return!w --> Server)   glue = (Client.request?x --> Server.invoke!x --> Server.return?y --> Client.result!y --> glue)

Another Pipe connector Pipe = role Writer = write --> Writer | close -->  role Reader = let ExitOnly = close ->  in let DoRead = (read --> Reader  read-eof --> ExitOnly) in DoRead | ExitOnly

glue = let ReadOnly = Reader.read --> ReadOnly  Reader.read-eof --> Reader.close -->   Reader.close -->  in let WriteOnly = Writer.write --> WriteOnly Writer.close -->  in Writer.write--> glue  Reader.read --> glue  Writer.close --> ReadOnly  Reader.close --> WriteOnly

Shared Data connector shared_data1 = role User1 = set --> User1 | get --> User1 | role User2 = set --> User2 | get --> User2 | glue = User1.set --> glue  User2.set --> glue  User1.get --> glue  User2.get --> glue  

Wright Components n Port - logical point of interaction between a component and its environment (I.e. the rest of the system) - Defines the expectations of the component. n A component may have multiple ports n Computation - describes the relationship between the ports

Example system Capitalize component Split = port input = getchar?x --> input port output1 = putchar!x --> output1 port output2 = putchar!x --> output2 computation = input.getchar?y --> output1.putchar!y --> input.getchar?y --> output2.putchar!y --> computation component Filter = port inport = get?x --> inport port outport = put!x --> outport computation = inport.get?x --> outport!x --> computation

component Merger port input1 = get?c --> input1 port input2 = get?c --> input2 port output = put!c --> output computation = input1.get?c --> output.put!c --> input2.get?d --> output.put!d --> computation

Wright Configuration n Describe the system structure n Instances - instantiate some components and connectors of given types n Attachments - bind the port of a component to the role of a connector n Hierarchical

Instances s : Split l, u : Filter m: Merger p1, p2, p3, p4: Pipe; Attachments s.output1 as p1.source s.output2 as p2.source l.inport as p1.sink u.inport as p2.sink l.outport as p3.source u.output as p4.source m.input1 as p3.sink m.input2 as p4.sink