Distilling Software Architectural Primitives

Preview:

DESCRIPTION

Distilling Software Architectural Primitives. presented by Scott Armstrong sarmstr2@uiuc.edu. Authors. N. Mehta (USC) Student (2002) N. Medvidovic (USC) Professor. Related Papers. - PowerPoint PPT Presentation

Citation preview

Distilling Software

Architectural Primitives

presented by Scott Armstrongsarmstr2@uiuc.edu

Authors

•N. Mehta (USC)

•Student (2002)

•N. Medvidovic (USC)

•Professor

Related Papers• 2000 – Software Connectors and Refinements in Family Architectures (Alexander Egyed,

Nikunj R. Mehta, Nenad Medvidovic)

• 2000 – Toward a taxonomy of software connectors (Mehta, Medvidovic, Sandeep Phadke)

• 2002 – Distilling Software Architectural Primitives from Architectural Styles

• 2002 – A Family of Software Architecture Implementation Frameworks (Medvidovic, Mehta, Marija Mikic-Rakic)

• 2003 – Software Architectural Support for Handheld Computing (Medvidovic, Mikic-Rakic, Mehta, Sam Malek)

• 2003 – Composing architectural styles from architectural primitives (Mehta, Medvidovic)

• 2004 – Modeling Behavior in Compositions of Software Architectural Primitives (Mehta, Medvidovic, Marjan Sirjani, Farhad Arbab)

• 2004 – Dissertation: Composing style-based software architectures from architectural primitives (Mehta, Medvidovic)

Overview

•Understanding Based on Set of Primitives

•Extensible Framework for Implementation

•Use Alfa as the Set of Primitives to:

•Characterize Styles

•Identify Similarities

•Compose Complex Styles

Understanding

•Formally Describe Architectural Styles

•Identify Style Characteristics

•Compare Styles

•Create Architectures using Primitives

Framework

•Assembly Language for Architectures

•Set of Primitives

•Characteristics of Large Number of Styles

•Extensible

•Improves Understanding of Styles

Alfa

•Modeling Styles

•Primitives

•Modeled in Alloy

•Implemented directly in Java

Alfa Style Dimensions

•Structure

•Topology

•Behavior

•Interaction

•Data

Alfa

•Used to Model, Analyze and Implement:

•Client-Server

•C2

•Pipe-and-Filter

•Push-based

Alfa Primitives

•Particles

•Portals

•Jumpers

•Messages

•Calls

•Threads

•Controllers

•Fragments

•Transports

•Dispatcher

Alfa Modeling in Alloy

•Lightweight

•Suitable for Formal Architecture Modeling

•Structures and Constraints -1st order Logic

Alfa Implementation•Implemented in Java

•Alloy not suited to Details and Distribution

•Alloy has limited scalability

•Alfa Implementation in Java is less Efficient

Alfa Extensibility

•Client-Server: 4 Additional Primitives

•C2: No Additional Primitives

•Pipe-and-Filter: No Additional Primitives

•Push-based: 2 Additional Primitives

Alfa Reusability

•Alloy Models

•Alfa Primitives

•Alfa Implementations of Infrastructures

What it Means

•Primitives can Improve Understanding

•Primitives for Implementation?

•Framework for Implementation?

•Formal Approach to Architecture

Recommended