UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 1 CSE 503 – Software Engineering Lecture 14: Introduction to software architecture Rob DeLine.

Slides:



Advertisements
Similar presentations
A component- and message-based architectural style for GUI software
Advertisements

Architecture Representation
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Page 1 Building Reliable Component-based Systems Ivica Crnkovic Chapter 9 Component Composition and Integration.
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
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.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Unified Modeling (Part I) Overview of UML & Modeling
CS189A/172 - Winter 2008 Lecture 7: Software Specification, Architecture Specification.
Data and Process Modeling
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
ARCHITECTURAL MISMATCH Heather T. Kowalski September 5, 2000.
Software Architecture in Practice
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
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.
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.
Architectural Design.
End User Architecting Vishal Dwivedi Institute for Software Research Carnegie Mellon University Advanced User Interface Software 1.
Documenting Software Architectures
Design and Architecture of Complex Software Systems Conf.dr.ing. Ioana Şora
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
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.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Secure Systems Research Group - FAU Classifying security patterns E.B.Fernandez, H. Washizaki, N. Yoshioka, A. Kubo.
Software Architecture in Practice Architectural description (The reduced version)
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
CHAPTER 6 - MODELING ANH AU. BACKGROUND Architectural model – an artifact that captures some or all of the design decisions that comprise a system’s architecture.
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
Wright ADL Liz White INFT Software Architecture.
Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
Slide 1 Software Architecture SSE. Slide 2 Typical description of software architectures l Descriptions of software systems often include a section on.
UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine1 CSE 503 – Software Engineering Lecture 3: An introduction to Alloy Rob DeLine 5 Apr 2004.
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
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.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
CS223: Software Engineering Lecture 13: Software Architecture.
An Object-Z / CSP Based Approach for the Specification of Architectural Connectors Mourad Maouche Philadelphia University Jordan Mohamed Bettaz MESRS Algeria.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
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.
CSCI 578 Software Architectures
Software Design and Architecture
Design and Architecture of Complex Software Systems
CSCI 578 Software Architectures
Software Architecture Lecture 7
Software Connectors.
Architecture Description Languages
Software Architecture Lecture 8
An Introduction to Software Architecture
write on board in advance: handouts, names, Hoare quote
Software Architecture Lecture 8
Software Architecture Lecture 8
CSCI 578 Software Architectures
Presentation transcript:

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 1 CSE 503 – Software Engineering Lecture 14: Introduction to software architecture Rob DeLine 12 May 2004

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 2 What is a software architecture? According to Google Images...

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 3 What do these figures contain? Components (boxes)  Places where computation takes place  Places where data is stored  Box shapes discriminate component type Connections (lines)  Some kind of interaction among components  Often binary, sometimes n-ary  Line attributes discriminate connection types Composition (grouping, backgrounds, fences)  Show commonality, boundaries Often accompanied by descriptive jargon  “pipe and filter”, “client/server”, “object-oriented”, “publish/subscribe”, “layered”, “microkernel”, “web services”,...

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 4 Carving out a new level of abstraction In the early age of programming languages... sum := 0; i := 0; while (i < 10) { sum := sum + i; i := i + 1; } return; 10: stconst r0, 0 11: stconst r1, 0 12: stconst r2, 10 13: sub r2,r0,r4 14: bz r4, 18 15: add r1,r0,r1 16: incr r0 17: br 12 18: ret sum := 0 i := 0 i <= 10 sum := sum + i; i := i + 1; return T F no control abstractions semi-formal notations and jargon precise notations and disciplines “structured programming”

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 5 Architecture as a new abstraction Researchers are carving out a higher-level abstraction architectural description languages (ADLs) s = socket(...); bind(s,...); listen(s,...); while (true) { x = accept(s,...); receive(x,...); close(x); } no interaction abstractions semi-formal notations and jargon precise notations and disciplines pattern languages and other guidance classifications

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 6 Architectural description languages In the 90s, researchers created many architectural notations  grew out of module interconnection languages (1975)  focus on recording system structure (typically static structure)  different goals, but many shared concepts Common concepts  Components  Connectors (common disagreement: aren’t these just components?)  Compositions (combinations of elements to form new elements)  Architecture style (constraints on elements and their composition)

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 7 UniCon Focus on encapsulating complex construction rules  Editor lets you drag-and-drop elements and hook them up  Given a system description, UniCon’s compiler produces low-level interaction code build instructions (makefile) that invokes needed tools Shaw, DeLine, Klein, Ross, Young and Zelesnik, “Abstractions for software architectures and tools to support them”, Trans. on Soft. Eng. 21(4):

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 8 Wright Focus on making interaction formal  Components interact through ports  Connectors interact through roles  Attachments are made by binding ports to roles  Ports and roles are formally defined as CSP processes  Port/role compatibility is a process refinement check Since we studied process calculi, let’s look in more detail... Allen and Garlan, “Formalizing architectural connection”, ICSE ’94.

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 9 Wright component description Split is a “tee” filter component Split = port In = read?x -> In [] read-eof  close   port Left, Right = write!x  Out ┌┐close   comp spec = let Close = In.close  Left.close  Right.close   in Close [] In.read?x  Left.write!x  (Close [] In.read?x  Right.write!x  computation)

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 10 Wright connector description A pipe is a queue of text connector Pipe = role Writer = write!x  Writer ┌┐close   role Reader = let ExitOnly = close   in let DoRead = (read?x  Reader [] read-eof  ExitOnly) in DoRead ExitOnly glue = let ReadOnly = Reader.read!y  ReadOnly [] Reader.read-eof  Reader.close   [] Reader.close   in let WriteOnly = Writer.write?x  WriteOnly [] Writer.close   in Writer.write?x  glue [] Reader.read!y  glue [] Writer.close  ReadOnly [] Reader.close  WriteOnly spec  Reader.read i !y.  Writer.write j ?x. i=j  x=y  Reader.read-eof  (Writer.close  #Reader.read = #Writer.write)

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 11 Wright system description A system composes components and connectors system Capitalize component Split =... connector Pipe = instances split: Split; p1, p2: Pipe; attachments split.Left as p1.Writer; upper.In as p1.Reader; split.Right as p2.Writer; lower.In as p2.Reader;... end Capitalize.

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 12 Classifying aspects of architecture Taxonomies and other classifications  Gather known examples into rigorous, but not formal, structure  Often a good first step toward theory  Important precedents in biology, chemistry Examples  Shaw and Clements, “A field guide to boxology: Preliminary classification of architectural styles for software systems,” Compsac ’97  Kazman, Clements, Abowd, and Bass, “Classifying architectural elements as a foundation for mechanism matching,” Compsac ’97  DeLine, “A catalog of techniques for resolving packaging mismatch”, Symp. on Software Reusability 1999  Mehta, Medvidovic, and Phadke, “Towards a taxonomy of software connectors”, ICSE 2000

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 13 Shaw and Clements taxonomy

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 14 Shaw and Clements taxonomy

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 15 Kazman et al taxonomy

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 16 Kazman et al taxonomy

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 17 Kazman et al taxonomy

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 18 Kazman et al taxonomy

UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine 19 Guidance Researchers are recording what experts know about arch.  Given a problem, how do I pick an architecture? Lane, “Studying software architecture through design spaces and rules,” Tech Report CMU-CS  Given a set of extrafunctional requirements, how do I pick an arch.? Kazman, Bass, Abowd, Webb, “SAAM: A method for analyzing the properties of software architectures,” ICSE ’94  Given a set of attacks and security tools, which is most cost effective? Butler, “Security attribute evaluation method: a cost-benefit approach”, ICSE ’02 Important case: pattern languages  Catalogue of problem/solution pairs  Next Mon: A quick tour of Gamma &al’s pattern language  Next Wed: A quick tour of different architectural styles