Software Architecture Research and Practice Nenad Medvidovic University of Southern California

Slides:



Advertisements
Similar presentations
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures.
Advertisements

A component- and message-based architectural style for GUI software
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
C S E USC CBSP Bridging Requirements and Architecture Models Paul Grünbacher Center for Software Engineering University of Southern California, Los Angeles.
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
ICS 123 Interoperability ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Programming in the Many Software Engineering Paradigm for the 21 st Century Nenad Medvidovic Center for Software Engineering Computer Science Department.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
A Model-Driven Framework for Architectural Evaluation of Mobile Software Systems George Edwards Dr. Nenad Medvidovic Center.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
1 Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University.
Identifying Architectural Bad Smells Joshua Garcia, Daniel Popescu, George Edwards and Nenad Medvidovic University of Southern California.
Software Architecture: An Introduction
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
SWE Introduction to Software Engineering
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Architecture in Practice (3rd Ed) Introduction
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
International Conference on Software Engineering 2007
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
The Systems Development Life Cycle
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
Computer Science 340 Software Design & Testing Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Lecture VIII: Software Architecture
Improving System Availability in Distributed Environments Sam Malek with Marija Mikic-Rakic Nels.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Software Connectors.
Software Design and Architecture
Software Architecture Lecture 7
Architecture Description Languages
.NET vs. J2EE Architecture
Software Connectors.
Software Architecture Lecture 8
Automated Analysis and Code Generation for Domain-Specific Models
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 8
Software Architecture Lecture 8
Software Architecture Lecture 7
Software Architecture Lecture 6
Presentation transcript:

Software Architecture Research and Practice Nenad Medvidovic University of Southern California

The Motivation Rapid and continuous growth of software –size, complexity, heterogeneity, distribution –reliance on legacy software Interoperability with heterogeneous hardware –each hardware device runs its own software  Engineering systems of systems

A Motivating Example Building a Software Environment from Existing Tools The tools –OO database  RPC mechanism –GUI toolkit  event-broadcast mechanism System costs –estimated: 6 months, 1 person-year  actual: 24 months, 5 person-years Result –huge system –sluggish performance –difficult to maintain  The underlying causes were architectural!But, where was the architecture hidden?

What is the Problem? This is a simple software system!

The Usual Tool: Design Abstraction We have to do better!

Architectural Abstraction

Why Software Architecture? Early, high-level system model Stakeholder understanding and communication Focus on specific system properties Separation of concerns Early analysis and simulation Tool-supported implementation Improved processes and project management

Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s form to B’s form Provide B with import/export converter Separate B’s essence from its packaging Publish abstraction of A’s form Introduce intermediate form Transform on the fly What is the right answer? Negotiate to find common form for A and B How do we enable components A and B to interact?

Key Contribution Areas Understanding and exploiting software connectors Architectural representation and analysis Architecture-based system composition and generation Architectural styles and product line architectures Architecting processes  Key challenges –formalism vs. understandability tradeoff –formalism vs. incompleteness and incrementality

Recent Success Stories Direct product of research –HLA –Tokyo Electric Power Company –ADAGE –Motorola Indirect, but clear influence of research –Siemens –Component interoperability platforms