1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.

Slides:



Advertisements
Similar presentations
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
Advertisements

Architecture Representation
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Reuse SEII-Lecture 28
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Software Architectures and Embedded Systems Nenad Medvidovic with Sam Malek and Marija Mikic-Rakic Computer Science Department University of Southern California.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 3 – Building.
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
1 SYSTEM & SOFTWARE ARCHITECTURE Elements, Definitions, Representation.
Page 1 Building Reliable Component-based Systems Ivica Crnkovic Chapter 9 Component Composition and Integration.
Software Testing and Quality Assurance
Software Architecture Research and Practice Nenad Medvidovic University of Southern California
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
Software Architecture: A Roadmap David Garlan Presented by: Divya Chopra.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Agenda Architectural Styles The Alfa Project Architectural framework.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
SWE Introduction to Software Engineering
- 1 - Component Based Development R&D SDM Theo Schouten.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
Planning for Middleware Rose Gamble Leigh Davis Jamie Payton University of Tulsa.
Software Architecture: a Roadmap David Garlan 2000 By: A. Rasoolzadegan.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Software Architecture in Practice (3rd Ed) Introduction
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Key Challenges for Modeling Language Creation by Demonstration Hyun Cho, Jeff Gray Department of Computer Science University of Alabama Jules White Bradley.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Page 1, December 8, 2015 CBSE – graduate course Component-Based Software Engineering Building reliable component-based systems Overview
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Chapter 19: Interfaces and Components [Arlow and Neustadt, 2005] University of Nevada, Reno Department of Computer Science & Engineering.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Lecture 21: Component-Based Software Engineering
Basic Concepts and Definitions
CS223: Software Engineering Lecture 14: Architectural Patterns.
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-7 in the text book All lecture material through intro to.
Software Architecture Lecture 3
CSCI 578 Software Architectures
Software Architecture Lecture 3
Model-Driven Analysis Frameworks for Embedded Systems
Software Connectors – A Taxonomy Approach
Software Architecture Lecture 3
CSCI 578 Software Architectures
Architecture Description Languages
Software Architecture Lecture 3
Software Architecture Lecture 3
Chapter 5 Architectural Design.
Software Architecture Lecture 3
Presentation transcript:

1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu

2 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?

3 Specification Architecture Implementation

4 Roles 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 risks

5 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

6 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

7 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

8 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, …

9 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??

10 Architectural Interchange? ADLs integration Acme xADL UML?

11 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

12 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

13 Tomorrow Build vs. Buy Network-Centric Computing Pervasive Computing

14 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

15 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)

16 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

17 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

18 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

19 Pervasive Computing A large number of devices Heterogeneous systems –Physical resource and computing power Challenges 1.Resource usage – power consumption 2.Flexibility – dynamic reconfiguration without interruption 3.Mobility – automated control over the management of computational services for changing environment

20 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