Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 3
Advertisements

Architecture Representation
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Architecture Lecture 2
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
SS ZG653Second Semester Topic Architectural Patterns – Review of Patterns.
Basic Concepts in Component-Based Software Engineering
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
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.
The Architecture Design Process
Unified Modeling (Part I) Overview of UML & Modeling
December 9, 2001Architectural Design, ECEN Architecture – Layers, in particular ECEN 5543 / CSCI 5548 SW Eng of Standalone Programs University of.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
Architectural Styles, Design Patterns, and Objects Architectural Styles, Design Patterns, and Objects By Robert T. Monroe, Andrew Kompanek, Ralph Melton,
Chapter 22 Object-Oriented Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Architectural Design.
Design Patterns Trends and Case Study John Hurst June 2005.
Chapter 9 Design Engineering
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Architecture and Patterns
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
CMPS 435 F08 These slides are designed to accompany Web Engineering: A Practitioner’s Approach (McGraw-Hill 2008) by Roger Pressman and David Lowe, copyright.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
Software Design and Architecture SEG3202 Nour El Kadri.
Architectural Styles, Design Patterns, and Objects Joe Paulowskey.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
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.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Basic Concepts and Definitions
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
Systems Architectures System Integration & Architecture.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Introduction: Databases and Database Systems Lecture # 1 June 19,2012 National University of Computer and Emerging Sciences.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Pertemuan 09 Architectural Patterns Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Software Architecture Lecture 3
Design Patterns-1 7 Hours.
Software Architecture
Introduction to Design Patterns
Design Patterns.
Software Architecture Lecture 3
Software Architecture Lecture 2
Software Architecture Lecture 3
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Patterns.
Chapter 9 Design Engineering
Architecture Description Languages
Software Architecture Lecture 3
Design Engineering.
Software Architecture Lecture 3
Software Architecture Lecture 3
From Use Cases to Implementation
Presentation transcript:

Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes

Introduction to Patterns Created: 19 August 2004

Pattern Describes a particular recurring design problem that arises in specific design contexts Presents a well-proven generic scheme for its solution   The solution scheme is specified by describing its constituent components, their responsibilities and relationships, and the ways in which they collaborate 1

Characteristics of Patterns Describe solutions to recurring problems that arise in specific design situations. Distilled from practical experience Describe a group of components (e.g., classes or objects), how the components interact, and the responsibilities of each component.  Higher level abstractions than classes or objects. Provide vocabulary for communication among designers  Choice of name for pattern is very important. 2

Characteristics of Patterns (cont.) Help document architectural vision of a design. If vision clearly understood  less likely violated when the system is modified Provide conceptual skeleton for a solution, encourage the construction of software with well- defined properties Are building blocks for construction of complex designs Help designers manage complexity of software 3

Descriptions of Patterns ContextProblemSolution 4

Descriptions of Patterns Context Describes situation in which design problem arises 5

Descriptions of Patterns Problem Describes problem that arises repeatedly in context   set of forces some aspect that must be considered when attempting a solution  requirements the solution must satisfy e.g., efficiency  constraints that must be considered e.g., use of a certain algorithm or protocol  desirable properties of a solution e.g., easy to modify 6

Descriptions of Patterns Solution Describes a proven solution to the problem Specifies a configuration of elements to balance the forces associated with the problem  Describes static structure of the configuration, identifying components and connectors relationships among the components relationships among the components  Describes dynamic runtime behavior of the configuration, identifying control structure of components and connectors 7

Categories of Patterns Architectural patterns Design patterns Idioms Idioms 8

Categories of Patterns Architectural patterns “ An architectural pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them ” High-level abstraction Fundamental design decision in development of a software system Independent of the implementation language Example  Pipes and Filters pattern 9

Categories of Patterns Design patterns “A design pattern provides a scheme for refining the subsystems or components of a software system, or the relationships between them. It describes a commonly- recurring structure of communicating components that solves a general design problem within a particular context” Mid-level abstraction Affect the structure of a subsystem Independent of the implementation language Example   Adapter (or Wrapper) pattern   Iterator pattern   Strategy (or Policy) pattern 10

Categories of Patterns Idioms “An idiom is a low-level pattern specific to a programming language. An idiom describes how to implement particular aspects of components or the relationships between them using the features of the given language” Low-level abstraction Language-specificExample   language-specific iterator defined to implement interface Iterator in Java   Counted Pointer for storage management of shared objects in C++ 11

References Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern-Oriented Software Architecture: A System of Patterns, Wiley, Mary Shaw and David Garlan. Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall,

Acknowledgement 13 This work was supported by a grant from Acxiom Corporation titled “The Acxiom Laboratory for Software Architecture and Component Engineering (ALSACE).” This work was supported by a grant from Acxiom Corporation titled “The Acxiom Laboratory for Software Architecture and Component Engineering (ALSACE).”