Software Architecture: a Roadmap David GarlenSoftware ArchitecturePowerPoint PresentationRoles of ArchitectureYesterday – 1990’sToday – 10 years laterADLsExample ADLsArchitectural StyleArchitectural Interchange?Product Lines and StandardsCodification and DisseminationTomorrowBuild vs. BuyNew trends in SW architectureNetwork-Centric ComputingChallengesChallenges (cont.)Pervasive ComputingConclusion1Software Architecture: a RoadmapDavid GarlenRoshanak RoshandelYulong Liu2Software 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?3SpecificationArchitectureImplementation4Roles of Architecture•Understanding high level design•Reuse component 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 risks5Yesterday – 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 families6Today – 10 years later•Architecting A first class activity in software development life cycle•Architecture Description Languages (ADLs)•Product Lines and Standards•Codification and Dissemination7ADLs•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 Style8Example 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, …9Architectural 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??10Architectural Interchange?•ADLs integration•Acme•xADL•UML?11Product 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-hoc12Codification 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 mismatches13Tomorrow•Build vs. Buy•Network-Centric Computing•Pervasive Computing14Build 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 balance15New 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)16Network-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 challenges17Challenges•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 ensembles18Challenges (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 experts19Pervasive Computing•A large number of devices•Heterogeneous systems–Physical resource and computing power•Challenges 1.Resource usage – power consumption2.Flexibility – dynamic reconfiguration without interruption3.Mobility – automated control over the management of computational services for changing environment20Conclusion•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
View Full Document