160 likes | 257 Views
Distilling Software Architectural Primitives. presented by Scott Armstrong sarmstr2@uiuc.edu. Authors. N. Mehta (USC) Student (2002) N. Medvidovic (USC) Professor. Related Papers.
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