160 likes | 266 Vues
This paper, presented by Scott Armstrong and authored by N. Mehta and N. Medvidovic in 2002, introduces an extensible framework for distilling software architectural primitives from different architectural styles. The Alfa set of primitives is used to characterize, compare, and compose architectural styles, enhancing understanding and enabling the creation of complex architectures. The implementation is modeled in Alloy and implemented in Java, although Alloy's scalability is limited. The paper explores the dimensions of Alfa styles and their application to various architectural styles like Client-Server, C2, Pipe-and-Filter, and Push-based architectures.
E N D
Distilling Software Architectural Primitives • presented by Scott Armstrong • sarmstr2@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