Presented by Charles Reid 2/7/2005

Slides:



Advertisements
Similar presentations
Business process engineering: an overview The goal of business process engineering (BPE) is to define architectures that will enable a business to use.
Advertisements

Dr. Rogelio Dávila Pérez
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
Architecture Representation
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
By Philippe Kruchten Rational Software
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Architecture Lecture 2
Integrating the Computer Science Curriculum by Reusing Soccer Simulation Game Vadim Kyrylov, PhD Associate Professor Sarkeys Endowed Chair School of Business.
Foundations for the Study of Software Architecture by Dewayne Perry & Alexander Wolf ACM SIGSOFT, Oct Presented by Charles Reid 2/7/2005.
Introduction to Software Architecture. Software Architecture Definition  Definition. A software system’s architecture is the set of principal design.
Introduction to Software Engineering Lecture 6 André van der Hoek.
Contributions in Distributed Systems Engineering by “Jari Koistinen” Presenter : S. J. Paheerathan Thesis Presentation.
Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.
Software Architecture: An Introduction
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
Introduction to Computer and Programming CS-101 Lecture 6 By : Lecturer : Omer Salih Dawood Department of Computer Science College of Arts and Science.
Lesson 7 Guide for Software Design Description (SDD)
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
SOFTWARE DESIGN.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Computer Science, Algorithms, Abstractions, & Information CSC 2001.
Foundations of Information Systems in Business. System ® System  A system is an interrelated set of business procedures used within one business unit.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
Exploiting Architectural Prescriptions for Self-Managing, Self-Adaptive Systems: A Position Paper Matthew J. Hawthorne and Dewayne E. Perry Dept. of Electrical.
1 Prof. Dr. Nizamettin AYDIN
Basic Concepts and Definitions
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
24 October 2006Kaiser: COMS W4156 Fall COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Design Concepts ch-8
Software Architecture Lecture 3
Review of last class Software Engineering Modeling Problem Solving
Software Architecture
The Object-Oriented Database System Manifesto
Physical Data Model – step-by-step instructions and template
SOFTWARE DESIGN AND ARCHITECTURE
Unified Modeling Language
System Design and Modeling
Software Architecture Lecture 3
Software Architecture Lecture 2
Model-Driven Analysis Frameworks for Embedded Systems
Software Connectors – A Taxonomy Approach
Software Architecture Lecture 3
Component-Level Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS223: Software Engineering
Implementing Architectures
Object oriented analysis and design
Analysis models and design models
Architecture Description Languages
Software Architecture Lecture 3
Software Architecture Lecture 3
Network Architecture By Dr. Shadi Masadeh 1.
Automated Analysis and Code Generation for Domain-Specific Models
Chapter 5 Architectural Design.
Human Computer Interaction Lecture 14 HCI in Software Process
Software Architecture Lecture 3
Call and return architectures
Logical Architecture & UML Package Diagrams
Presentation transcript:

Presented by Charles Reid 2/7/2005 Foundations for the Study of Software Architecture by Dewayne Perry & Alexander Wolf ACM SIGSOFT, Oct. 1992 Presented by Charles Reid 2/7/2005

Dewayne E. Perry Undergrad degree in Philosophy with a M.S. and Ph.D. in Computer Science Long list of academic employment including UCLA (philosophy), CMU, and University of Texas at Austin Tons of professional research on software processes and software engineering Board member of International Software Process Association (ISPA).

Alexander L. Wolf Prof. of Computer Science at the University of Colorado at Boulder Director of Software Engineering Research Lab Chair of the ACM Special Interest Group in Software Engineering (SIGSOFT) Several publications in several areas – Networking, Distributed Systems, Software Architecture, Software Process, Security, Component Management, …

Purpose of the Paper The purpose is “to build the foundation for software architecture”. They look at other architectural disciplines to gain an intuition for software architecture. The paper proposes a model for software architecture and provides an example

Where Does Architecture Fit? Requirements Determine what information, processing, and characteristics of the information processing are needed Architecture Determines architectural elements, their interactions, and the constraints they are subject to Design Modularization and detailed interfaces, algorithms, and data types to support the architecture Implementation Representations of elements from the design

Why are they doing this? The authors expect that disciplined software architecture will: Provide an architectural framework for satisfying requirements Provide a basis for design, cost estimation, and process management Promote reuse Provide a basis for consistency and dependency analysis Provide a way to separate aesthetics from engineering

Architectural Erosion and Drift The system becomes more brittle due to violations of the original architecture Architectural Drift Due to “insensitivity about the architecture” They claim this leads to inadaptability which can lead to lack of clarity or coherence Erosion – sequential processing and then someone introduces concurrency somewhere which makes the system more susceptible to problems

Gaining the Intuition for Software Architecture Computer Architecture Not a useful basis for software architecture due to fundamental differences Relatively small number of design elements and scale is achieved through replication Network Architecture Also not too useful Focuses on nodes and connections and deals with a small number of topologies Relatively small number of design elements in hardware and

Gaining the Intuition for Software Architecture Building Architecture Provides useful insight Multiple views of same structure Architectural styles Style and engineering Style and materials Styles are descriptive and prescriptive, constrains elements and the formal relationships between them Can be applied to software systems, distributed might be a style, message passing

The Architectural Model Software Architecture = {Elements, Form, Rationale} Elements can be processing elements, data elements, or connecting elements Form consists of weighted properties and relationships Weighting indicates importance or necessity of the relationship Rationale is the reasoning behind the architectural decisions Water polo metaphor, players = processing elements, ball = data element, water = connecting element

Compiler Example Compiler with 5 phases Processing elements = {lexer, parser, semantor, optimizer, code generator} Data elements = {characters, tokens, phrases, annotated phrases, object code} Connecting Elements = {procedure calls, parameters}

Compiler Example cont. Form might dictate that the optimizer and annotated phrases must accompany each other but they are not necessary elements Form might also dictate relationship between data elements

Processing Architectural View Shows flow of data, relationships between processing elements

Architectural Data View Uses application-oriented properties to show the state of data that are important to the processing elements that manipulate the data

Comparing Different Compiler Models

Conclusions They believe that they’re model and the use of application-oriented properties will: Make it easier to compare architectures Make it easier to determine which architectural components can be reused Better illustrate the dependencies and consistency between architectural elements