Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA
Software Architectures High level representation of system –Structure, behavior, interactions, properties Architecture Description Languages (ADLs) –Formal descriptions, –Style representations –Analysis –Lack implementation support Mismatch between conceptual model and running systems –Difficulties in system evolution
Concept To Realization Concept –Clear separation of concerns - modular units –Architecture style based analysis –Independent of infrastructure Realization –Global data and functions –Unforeseen dependencies –Unpredictable properties –Finite platform characteristics
Architecture and Implementation
Architecture Frameworks Infrastructure support for architecture –Implementation –Deployment –Execution –Evolution –E.g. Middleware technologies and object frameworks Based on architectural styles –C2 style for highly distributed, dynamic architectures –CORBA for brokered architectures
C2 Framework Objectives A runtime environment for C2-style architectures that provides –Substrate independence –Distribution of computation –Message based communication –Dynamism –Light weight infrastructure with support for monitoring –Extensible foundation –Tractable transformation of architecture in to systems
Family of Frameworks Different programming languages Support for different underlying middleware Tailored for different needs –Performance vs. Flexibility –Resource constrained environments Palm pilot, embedded devices Over 100 applications to date Architectural style in terms of object oriented infrastructure
Framework Evolution C2 Project Inception C++ framework First Applications developed Ada frameworkQ Middleware Java framework Polylith, ILU and RMI connectors ArchStudio oC2 framework eC2 frameworkxC2 framework C2.fw framework Embedded applications
Family Characteristics C2 –Original object oriented framework oC2 –Optimized for message based communication –Better concurrency management through thread pools eC2 –Resource constrained processing –Improved data structures for decreased memory usage xC2 –Highly extensible framework –Reduced coupling and improved element composition
C2 Framework Design Evolution
Next Generation Software Architectures Sound implementation techniques Better composition abilities Richer architectural constructs Highly tailored frameworks Merging academic research with industrial practices More objective principles of architecture based software development
Questions ??