Patterns in a Nutshell
|
|
|
- Isaac Ira Ramsey
- 10 years ago
- Views:
Transcription
1 Patterns in a Nutshell
2 January 27, 1998 Patterns in a Nutshell Page 2 of 12 Trendy: Literary: 1.0 What are Patterns? Recent hot topic, OOD buzzword, lots of hype! Form of software engineering problem-solving documentation Pragmatic: Describe practical solutions to real world problems Recurring: Generative: Emergent: Identify good design structures which recur in practice Show how and when to apply the solution, and generate the desired design structure Larger solutions emerge indirectly from applying patterns in succession, and in concert together
3 January 27, 1998 Patterns in a Nutshell Page 3 of Pattern Origins and History Writings of architect Christopher Alexander (coined this use of the term pattern ca ) Documentation of best practices and handbooks for engineering and architecture Literate programming (Don Knuth), ca Kent Beck and Ward Cunningham, Tektronix, OOPSLA 87 (used Alexander s pattern ideas for Smalltalk GUI design) Erich Gamma, Ph.D. thesis, James Coplien, Advanced C++ Idioms Book, Gamma, Helm, Johnson, Vlissides, ( Gang of Four ) Object-Oriented Design Patterns book, PLoP Conferences and books, 1994-present
4 January 27, 1998 Patterns in a Nutshell Page 4 of 12 A pattern is Pattern Definitions An abstraction from a concrete form which keeps recurring in specific, non-arbitrary contexts. [generic definition] A recurring solution to a common problem in a given context and system of forces. [Alexander] A named nugget of instructive insight, conveying the essence of a proven solution to a recurring problem in a given context amidst competing concerns. A successfully recurring best practice that has proven itself in the trenches. A literary format for capturing the wisdom and experience of expert designers, and communicating it to novices
5 January 27, 1998 Patterns in a Nutshell Page 5 of Kinds of Software Patterns Design Patterns (software design; often object-oriented): - architecture (systems design) - design (component interactions) - programming idioms (language-specific techniques/style) Analysis Patterns (recurring & reusable analysis models) Organization Patterns (structure of organizations/projects) Process Patterns (software process design) Domain-Specific: Any other domain you can think of!
6 January 27, 1998 Patterns in a Nutshell Page 6 of Pattern Elements Name - a meaningful conceptual handle for discussion Context - tells how the problem occurs / when the solution works Problem - statement of the problem / intent of the solution Forces - trade-offs, goals+constraints, motivating factors/concerns - tells why the problem is difficult Solution - tells how to generate the solution - the solution structure, its participants & collaborations
7 January 27, 1998 Patterns in a Nutshell Page 7 of Pattern Elements (cont.) Examples (optional) Resulting Context - describes the end result, benefits and consequences - shows how the forces were balanced/traded-off - tells how the solution works out Rationale (optional) - underlying principles/heuristics justifying the solution - tells underpinnings of why the solution works out Related Patterns - patterns which are similar, or may precede/follow this one Known Uses - 3 or more independent instances of real world success
8 January 27, 1998 Patterns in a Nutshell Page 8 of Why Patterns? Software Patterns help us because they: Solve real world problems Capture domain expertise Document design decisions and rationale Reuse wisdom and experience of master practitioners Convey expert insight to novices Form a shared vocabulary for problem-solving discussion Show more than just the solution: - context (when and where) - forces (trade-off alternatives, misfits, goals+constraints) - resolution (how and why the solution balances the forces)
9 January 27, 1998 Patterns in a Nutshell Page 9 of Summary - What Patterns Are Not Software Patterns are not... Restricted to software design or Object-Oriented design Untested ideas/theories or new inventions Solutions that have worked only once Any old thing written-up in pattern format Abstract principles or heuristics Universally applicable for all contexts A silver bullet or panacea
10 January 27, 1998 Patterns in a Nutshell Page 10 of Summary - What Patterns Are Software Patterns are... Recurring solutions to common problems of design Practical/concrete solutions to real world problems Context specific Best-fits for the given set of concerns/trade-offs Old hat to seasoned professionals and domain experts A literary form for documenting best practices A shared vocabulary for problem-solving discussions An effective means of (re)using, sharing, and building upon existing wisdom/experience/expertise Massively overhyped!
11 January 27, 1998 Patterns in a Nutshell Page 11 of Pattern Resources - Books A Pattern Language: Towns, Buildings, Construction (APL) Christopher Alexander; Oxford University Press, 1977 The Timeless Way of Building (TTWoB) Christopher Alexander; Oxford University Press, 1979 Design Patterns: Elements of Reusable Object-Oriented Software (GoF) Gamma, Helm, Johnson, Vlissides; Addison-Wesley, 1994 Pattern-Oriented Software Architecture: A System of Patterns (POSA) Buschmann, Meunier, Rohnert, Sommerlad, Stal; Wiley and Sons, 1996 Pattern Languages of Program Design (PLoPD1) Coplien and Schmidt (editors); Addison-Wesley, 1995 Patterns of Software: Tales from the Software Community Richard Gabriel; Oxford University Press, 1996 Analysis Patterns: Reusable Object Models Martin Fowler; Addison-Wesley, 1996 Pattern Languages of Program Design 2 (PLoPD2) Vlissides, Coplien, and Kerth (editors); Addison-Wesley, 1996
12 January 27, 1998 Patterns in a Nutshell Page 12 of Pattern Resources - Online Patterns Home Page, Patterns Discussion FAQ, Ward Cunningham s WikiWikiWeb, Portland Pattern Repository, AGCS Patterns Page, Jim Coplien s OrganizationPatterns Front Page (a WikiWikiWeb clone), Patterns Mailing Lists, Cetus Links: Patterns, Brad s Pattern Links: Brad s Patterns Intro: Luke Hohmann s Patterns Intro: Doug Lea s OOD Patterns Intro:
Introduction. Observation Patterns. Accounting Patterns. How to use Patterns
Analysis Martin Fowler fowler@acm acm.org http://ourworld ourworld.compuserve.com/homepages/martin_fowler Page Martin Fowler 9//99 What we will cover Introduction Observation Accounting How to use Page
CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE
CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE SESSION I: OVERVIEW AND HISTORY OF STYLES AND PATTERNS Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012
Ontological Representations of Software Patterns
Ontological Representations of Software Patterns Jean-Marc Rosengard and Marian F. Ursu University of London http://w2.syronex.com/jmr/ Abstract. This paper 1 is based on and advocates the trend in software
Encapsulating Crosscutting Concerns in System Software
Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com
Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns
rel. 1.7 Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2008-09 Corso di Ingegneria del Software Pattern seconda parte Renato Conte - Pattern II- 1/48 - Types of software patterns
Software Refactoring using New Architecture of Java Design Patterns
Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN
A Process View on Architecture-Based Software Development
A Process View on Architecture-Based Software Development Lothar Baum, Martin Becker, Lars Geyer, Georg Molter System Software Research Group University of Kaiserslautern D-67653 Kaiserslautern, Germany
Architectural Patterns (3)
Scatter/Gather Architectural Patterns (3) Prof. Cesare Pautasso http://www.pautasso.info [email protected] @pautasso Goal: send the same message to multiple recipients which will (or may) reply to
Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk
Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Physical Architecture As stated earlier, architecture can be defined at both a logical
A Review of an MVC Framework based Software Development
, pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University
Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda
Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or
The JWAM Framework: Inspired By Research, Reality-Tested By Commercial Utilization
The JWAM Framework: Inspired By Research, Reality-Tested By Commercial Utilization Holger Breitling, Carola Lilienthal, Martin Lippert, Heinz Züllighoven University of Hamburg Computer Science Department,
Using MDA in Web Software Architectures
Using MDA in Web Software Architectures SANTIAGO MELIA, CRISTINA CACHERO AND JAIME GOMEZ 1 Universidad de Alicante, Spain The new challenges posed by the Internet market have increased the need for Web
Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
Research Topics in Software Engineering
MAP-I Programa Doutoral em Informática Research Topics in Software Engineering Unidade Curricular em Paradigmas da Computação Paradigms of Computation (UCPC) UMinho, FEUP July 23, 2009 Abstract This document
An MDA Approach for the Development of Web applications
An MDA Approach for the Development of Web applications Santiago Meliá Beigbeder and Cristina Cachero Castro {santi,ccachero}@dlsi.ua.es Univesidad de Alicante, España Abstract. The continuous advances
Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement
Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement Michael Falkenthal 1, Dierk Jugel 1, Alfred Zimmermann 1, René Reiners 2, Wilfried Reimann 3, Michael
Understanding Architectural Assets
IBM Software Group Understanding Architectural Assets Peter Eeles [email protected] 2008 IBM Corporation Agenda IBM Software Group Rational software Introduction Sources of architecture Types of architectural
Chap 1. Introduction to Software Architecture
Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)
APLRAC: A PATTERN LANGUAGE FOR DESIGNING AND IMPLEMENTING ROLE-BASED ACCESS CONTROL
APLRAC: A PATTERN LANGUAGE FOR DESIGNING AND IMPLEMENTING ROLE-BASED ACCESS CONTROL Saluka R. Kodituwakku 1, Peter Bertok 1, and Liping Zhao 2 1 Department of Computer Science RMIT University, Australia
The Oregon Software Development Process
The Oregon Software Development Process Till Schümmer 1 and Robert Slagter 2 1 Computer Science Department, FernUniversität in Hagen, Universitätsstrasse 1, 58084 Hagen, Germany [email protected]
A methodology for secure software design
A methodology for secure software design Eduardo B. Fernandez Dept. of Computer Science and Eng. Florida Atlantic University Boca Raton, FL 33431 [email protected] 1. Introduction A good percentage of the
Design Pattern Management System: A Support Tool Based on Design Patterns Applicability
Design Pattern Management System: A Support Tool Based on Design Patterns Applicability Zakaria Moudam, Radouan Belhissi, Noureddine Chenfour Computer Science Department Faculty of Sciences Dhar Mehraz
Deployment Pattern. Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4
Deployment Pattern Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4 Samsung Electronics 1,2,3, Hanyang University 4 alroad.son 1, jiwon.ss.kim 2, dude.kim 3 @samsung.net, [email protected] 4
Génie Logiciel et Gestion de Projets. Patterns
Génie Logiciel et Gestion de Projets Patterns 1 Alexander s patterns Christoffer Alexander The Timeless Way of Building, Christoffer Alexander, Oxford University Press, 1979, ISBN 0195024028 Each pattern
A Pattern System for Network Management Interfaces
A Pattern System for Network Management Interfaces Jean Tessier Rudolf K. Keller Abstract: The development of network management interfaces (NMIs) involves a variety of software layers, application programming
Refactoring Software, Architectures, and Projects in Crisis
AntiPatterns Refactoring Software, Architectures, and Projects in Crisis William J. Brown Raphael C. Malveau Hays W. McCormick III Thomas J. Mowbray John Wiley & Sons, Inc. Publisher: Robert Ipsen Editor:
Jenerator Generative Programming for Java
Jenerator Generative Programming for Java Markus Völter 1 and Andreas Gärtner 2 1 MATHEMA AG, Germany [email protected] 2 Universität Passau, Germany [email protected] Abstract. Generative
A First Set of Design Patterns for Algorithm Animation
Fifth Program Visualization Workshop 119 A First Set of Design Patterns for Algorithm Animation Guido Rößling CS Department, TU Darmstadt Hochschulstr. 10 64289 Darmstadt, Germany [email protected] Abstract
Technical Guide. Security Design Patterns. by Bob Blakley, Craig Heath, and members of The Open Group Security Forum.
Technical Guide Security Design Patterns by Bob Blakley, Craig Heath, and members of The Open Group Security Forum The Open Group April 2004, The Open Group All rights reserved. No part of this publication
The Command Dispatcher Pattern
The Command Dispatcher Pattern Can also be called: Command Evaluator Pattern. Benoit Dupire and Eduardo B Fernandez {[email protected], [email protected]} Department of Computer Science and Engineering.
Software Architecture and Patterns for Electronic Commerce Systems
Software Architecture and Patterns for Electronic Commerce Systems André Widhani, Stefan Böge, Andreas Bartelt, and Winfried Lamersdorf University of Hamburg, Department of Computer Science, Distributed
I219 Software Design Methodology
I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu [email protected] Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts
Evaluating OO-CASE tools: OO research meets practice
Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht
Teaching Software Engineering Through Game Design
Teaching Software Engineering Through Game Design Kajal Claypool Computer Science Department University of Massachusetts 1 University Avenue Lowell, MA, USA [email protected] Mark Claypool Computer Science
DEGREE CURRICULUM SOFTWARE ARCHITECTURES Degree in Computer Engineering. Teaching staff: GIL IRANZO, ROSA MARIA GARCIA GONZALEZ, ROBERTO
Academic year 2014-15 DEGREE CURRICULUM SOFTWARE ARCHITECTURES Degree in Computer Engineering Teaching staff: GIL IRANZO, ROSA MARIA GARCIA GONZALEZ, ROBERTO Subject's general information Subject name
GenericServ, a Generic Server for Web Application Development
EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student [email protected] Bilal CHEBARO Assistant professor [email protected] Abstract
A Confederation of Patterns for Resource Management
Abstract A Confederation of Patterns for Resource Management Rosana T. Vaccare Braga ICMCUniversidade de S o Paulo/ Universidade de Franca C. P. 668, 3560970 S o Carlos SP Brazil Phone Number: 55 6 2739679
Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal
Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal {Michael.Kircher,Klaus.Jank,Christa.Schwanninger, Michael.Stal}@siemens.com Corporate Technology, Siemens
Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.
Design Patterns Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. What are the major description parts? Design Patterns Descriptions
Patterns in Software Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 7 GoV Patterns Architectural Part 1 1 GoV Patterns for Software Architecture According to Buschmann et al.: A pattern for software architecture
Notes on Computer Game Design Innovation with Patterns
Notes on Computer Game Design Innovation with Patterns Kevin McGee Communications and New Media Programme National University of Singapore Singapore [email protected] ABSTRACT How can we help people design
Analysis Patterns in Dimensional Data Modeling
Analysis Patterns in Dimensional Data Modeling Stephan Schneider 1, Dirk Frosch-Wilke 1 1 University of Applied Sciences Kiel, Institute of Business Information Systems, Sokratesplatz. 2, 24149 Kiel, Germany
Applying Design Patterns in Distributing a Genetic Algorithm Application
Applying Design Patterns in Distributing a Genetic Algorithm Application Nick Burns Mike Bradley Mei-Ling L. Liu California Polytechnic State University Computer Science Department San Luis Obispo, CA
270015 - IES - Introduction to Software Engineering
Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 747 - ESSI - Department of Service and Information System Engineering Academic year: Degree: 2015 BACHELOR'S DEGREE IN INFORMATICS
ET++SwapsManager: Using Object Technology in the Financial Engineering Domain
ET++SwapsManager: Using Object Technology in the Financial Engineering Domain Thomas Eggenschwiler Erich Gamma UBILAB Union Bank of Switzerland Bahnhofstr. 45 CH-8021 Zurich, Switzerland Tel.: +41-1-236
Towards Patterns to Enhance the Communication in Distributed Software Development Environments
Towards Patterns to Enhance the Communication in Distributed Software Development Environments Ernst Oberortner, Boston University Irwin Kwan, Oregon State University Daniela Damian, University of Victoria
Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6
The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses
Structuring Product-lines: A Layered Architectural Style
Structuring Product-lines: A Layered Architectural Style Tommi Myllymäki, Kai Koskimies, and Tommi Mikkonen Institute of Software Systems, Tampere University of Technology Box 553, FIN-33101 Tampere, Finland
Design Patterns for Complex Event Processing
Design Patterns for Complex Event Processing Adrian Paschke BioTec Center, Technical University Dresden, 01307 Dresden, Germany adrian.paschke AT biotec.tu-dresden.de ABSTRACT Currently engineering efficient
SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar
SAPM Overview Semester Summary Dr. James A. Bednar [email protected] http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider
On the Agile Development of Virtual Reality Systems
10 Int'l Conf. Software Eng. Research and Practice SERP'15 On the Agile Development of Virtual Reality Systems F. Mattioli 1, D. Caetano 1, A. Cardoso 1, and E. Lamounier 1 1 Faculty of Electrical Engineering,
Design Patterns. Advanced Software Paradigms (A. Bellaachia) 1
Design Patterns 1. Objectives... 2 2. Definitions... 3 2.1. What is a Pattern?... 3 2.2. Categories of Patterns... 4 3. Pattern Characteristics [Buschmann]:... 5 4. Essential Elements of a Design Pattern
Quality Ensuring Development of Software Processes
Quality Ensuring Development of Software Processes ALEXANDER FÖRSTER,GREGOR ENGELS Department of Computer Science University of Paderborn D-33095 Paderborn, Germany {alfo engels}@upb.de ABSTRACT: Software
Design Patterns for Safety-Critical Embedded Systems
Design Patterns for Safety-Critical Embedded Systems Von der Fakultät für Mathematik, Informatik und Naturwissenschaften der RWTH Aachen University zur Erlangung des akademischen Grades eines Doktors der
MANAGEMENT S ROLE 1/16/2002 152. Copyright 2001, Net Objectives
MANAGEMENT S ROLE 1/16/2002 152 Continuous Overtime Is Counterproductive Working more hours does not increase productivity Overwork is usually an indication of something wrong - working more doesn t fix
A Study of Extreme Programming in a Large Company
A Study of Extreme Programming in a Large Company Neil B. Harrison Avaya Labs 1300 W. 120 th Ave. Westminster, CO 80234 1-303-538-1541 [email protected] ABSTRACT Agile software development is an approach
REST Client Pattern. [Draft] Bhim P. Upadhyaya ABSTRACT
REST Client Pattern [Draft] Bhim P. Upadhyaya EqualInformation Chicago, USA [email protected] ABSTRACT Service oriented architecture (SOA) is a common architectural practice in large enterprises. There
Manager-Agent and Remote Operation: Two Key Patterns for Network Management Interfaces
Manager-Agent and Remote Operation: Two Key Patterns for Network Management Interfaces Jean Tessier* Rudolf K. Keller Département d informatique et de recherche opérationnelle Université de Montréal C.P.
DC2AP: A Dublin Core Application Profile to Analysis Patterns
DC2AP: A Dublin Core Application Profile to Analysis Patterns Lucas Francisco da Matta Vegi, Jugurta Lisboa-Filho, Glauber Luis da Silva Costa, Alcione de Paiva Oliveira and José Luís Braga Departamento
STRATEGY PATTERN: PAYMENT PATTERN FOR INTERNET BANKING
I J I T E ISSN: 2229-7367 3(1-2), 2012, pp. 281-286 STRATEGY PATTERN: PAYMENT PATTERN FOR INTERNET BANKING 1 A. MEIAPPANE, 2 J. PRABAVADHI AND 3 V. PRASANNA VENKATESAN 1 Research Scholar, 3 Associate Professor,
Agile Software Development in the Large
Agile Software Development in the Large GI-Vortrag Braunschweig Jutta Eckstein Nicolai Josuttis What Does Large Mean? Large in... scope time people money risks We focus on Large Teams which implies everything
