Post on 07-Jan-2016
description
transcript
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