200 likes | 338 Views
Software Architecture: a Roadmap David Garlen. Roshanak Roshandel Yulong Liu. Software Architecture. Design and specification of complex software systems in terms of coarse-grained building blocks High-level abstraction representing structure, behavior, and key properties of software systems
E N D
Software Architecture: a RoadmapDavid Garlen Roshanak Roshandel Yulong Liu
Software Architecture • Design and specification of complex software systems in terms of coarse-grained building blocks • High-level abstraction representing structure, behavior, and key properties of software systems • System’s blueprint • Shaw & Garlen: Elements, their interactions, patterns, constraints • Perry & Wolf: { Elements, Forms, Rational } what? how? why?
Architecture Implementation Specification
Roles of Architecture • Understandinghigh level design • Reusecomponent libraries, component, framework (domain specific SWA, reference FW, arch. Design patterns) • Construction arch. description: blueprint for components and their dependencies • Evolution separation of concerns (functionality vs. interaction) • Analysis consistency, constraints, dependency, domain specific • Management critical evaluation of arch. clearer understanding of requirements, implementation and risks
Yesterday – 1990’s • Box and lines – ad-hoc • No analysis of consistency of specification • No checking of architecture-implementation consistency • Importance of architecture in industry • recognition of a shared repository of methods, techniques, patterns and idioms (engineering) • exploiting commonalities in specific domains to provide reusable frameworks for product families
Today – 10 years later • Architecting A first class activity in software development life cycle • Architecture Description Languages (ADLs) • Product Lines and Standards • Codification and Dissemination
ADLs • Formalization • analysis for consistency, completeness, correctness • Conceptual framework and concrete syntax for characterizing SW arch • Tools for parsing, analysis, simulation and code generation • May be tied to particular Architectural Style
Example ADLs • C2 : Highly distributed event-based systems • Darwin: Analysis of distributed message passing systems • Meta-H: Design of real-time avionic systems • Rapide: Simulation of architectural design • Wright: formal spec and analysis of interaction between components • SADL, Unicon, Aesop, Adage, …
Architectural Style • Vocabulary of component types, connector types, and constraints governing them • pipe-and-filter, layered, C2, blackboard, client-server, GenVoca, event-based • Key determinant of system’s success • What about a style for embedded systems??
Architectural Interchange? • ADLs integration • Acme • xADL • UML?
Product Lines and Standards • Commonalities across products • Requirements for family of systems and their relationships • Cross-vendor integration standards • HLA framework for distributed simulation • interface standards • formalized and standardized • EJB distributed Java-based enterprise application • vendor neutral interface • ad-hoc
Codification and Dissemination • Lack of shared body of knowledge • Standard architectural styles • Identification & documentation of these styles patterns engineering • Mismatch analysis (e.g. COTS integration) identify architectural strategies for bridging mismatches
Tomorrow • Build vs. Buy • Network-Centric Computing • Pervasive Computing
Build vs. Buy • Key issue in the development of system • Buying + saves development time • may not completely satisfy the need • less under control of the dev. team • Economic pressures to reduce time-to-market changes the balance
New trends in SW architecture • Need for industry-wide standards • component-based engineering • Agree on common architectural FW (COM, JavaBeans, CORBA) • architecture-based engineering (HLA, EJB) • New SW subcontracting process • higher standards of architecture conformance (commercial or governmental) • Standardization of notations and tools • architectural modeling (UML, XML)
Network-Centric Computing • PC-centric model Network-centric model • distribution, mobility, resource constraints • riche set of computing and information retrieval services • Closed-system open-system • mainly static architecture dynamic architecture • less centralized control (e.g. Internet) • Several new challenges
Challenges • Scaling up to the size and variability of the internet • implementation and specification changed • Computing with dynamically-formed, task-specific, coalitions of distributed autonomous resources • manage architecture models at run time • evaluate the properties of components ensembles
Challenges (cont.) • Need for architectures that flexibly accommodate commercial application service providers • local & remote computing, billing, security • Need for architectures that allows system composition by end users • unnecessary to be technical experts
Pervasive Computing • A large number of devices • Heterogeneous systems • Physical resource and computing power • Challenges • Resource usage – power consumption • Flexibility – dynamic reconfiguration without interruption • Mobility – automated control over the management of computational services for changing environment
Conclusion • It is all about the Architecture • We are sitting in the right class!! • From science to engineering • Still immature but we are on the right track