Foundations for the Study of Software Architecture by Dewayne Perry & Alexander Wolf ACM SIGSOFT, Oct. 1992 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
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Architecture Representation
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Design Concepts and Principles
Integrating the Computer Science Curriculum by Reusing Soccer Simulation Game Vadim Kyrylov, PhD Associate Professor Sarkeys Endowed Chair School of Business.
Educating Programmers: A Customer Perspective Alexander Stepanov A9.com Workshop on Quality Software: A Festschrift for Bjarne Stroustrup Texas A&M University,
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
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.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
Contributions in Distributed Systems Engineering by “Jari Koistinen” Presenter : S. J. Paheerathan Thesis Presentation.
Software Architecture: An Introduction
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Computational Thinking Related Efforts. CS Principles – Big Ideas  Computing is a creative human activity that engenders innovation and promotes exploration.
What is Software Architecture?
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.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
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.
Architectural Blueprints The “4+1” View Model of Software Architecture
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Design Concepts By Deepika Chaudhary.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
CSE 303 – Software Design and Architecture
Foundations of Information Systems in Business. System ® System  A system is an interrelated set of business procedures used within one business unit.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
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.
Professional Ethics and Responsibilities
1 Prof. Dr. Nizamettin AYDIN
Basic Concepts and Definitions
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
ARCHITECTURA L ADAPTATION TALIESIN SMITH. CONCEPTS Adaptation – Modification of a software system to satisfy new requirements and changing circumstances.
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.
Software Architecture Lecture 3
Review of last class Software Engineering Modeling Problem Solving
Software Architecture
Presented by Charles Reid 2/7/2005
Unified Modeling Language
Change to university degree accreditation incorporating employability:
SOFTWARE ARCHITECTURE AND DESIGN
Software Architecture Lecture 3
Model-Driven Analysis Frameworks for Embedded Systems
Software Architecture Lecture 3
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS223: Software Engineering
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.
Software Architecture Lecture 3
Presentation transcript:

Foundations for the Study of Software Architecture by Dewayne Perry & Alexander Wolf ACM SIGSOFT, Oct 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 Architectural Erosion 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

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

Gaining the Intuition for Software Architecture Building Architecture Provides useful insight Multiple views of same structure Architectural styles Style and engineering Style and materials

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

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

Architectural Data View

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