A Responsibility-Based Pattern Language for Usability-Supporting Architectural Patterns

Total Page:16

File Type:pdf, Size:1020Kb

A Responsibility-Based Pattern Language for Usability-Supporting Architectural Patterns To appear in the Proceedings of EICS 2009, July 14-17, 2009, Pittsburgh, PA, USA A Responsibility-Based Pattern Language for Usability-Supporting Architectural Patterns Bonnie E. John Len Bass Elspeth Golden Pia Stoll HCI Institute Software Engineering Institute HCI Institute ABB Corp Research Carnegie Mellon University Carnegie Mellon University Carnegie Mellon University Forskargränd 6 5000 Forbes Ave. 4500 Fifth Ave. 5000 Forbes Ave. SE 72178 Pittsburgh, PA, 15217 Pittsburgh, PA, 15217 Pittsburgh, PA, 15217 Västerås, Sweden +1-412-268-7182 +1-412-268-6763 1+412-268-2000 +46 21 32 30 00 [email protected] [email protected] [email protected] [email protected] ABSTRACT Thus, the original USAPs were a pattern “catalogue”, as opposed Usability-supporting architectural patterns (USAPs) were to a pattern language [8]. developed as a way to explicitly connect the needs of As originally conceived to emulate patterns in the Alexander style architecturally-sensitive usability concerns to the design of [2], a USAP had six types of information. We illustrate the types software architecture. In laboratory studies, the Cancellation with information from the Cancellation USAP [15]. USAP was shown to significantly improve the quality of 1. A brief scenario that describes the situation that the USAP is architecture designs for supporting the ability to cancel a long- intended to solve. For example, “The user issues a command running command, sparking interest from a large industrial then changes his or her mind, wanting to stop the operation organization to develop new USAPs and apply them to their and return the software to its pre-operation state.” product line architecture design. The challenges of delivering the 2. A description of the conditions under which the USAP is architectural information contained in USAPs to practicing relevant. For example, “A user is working in a system where software architects led to the development of a pattern language the software has long-running commands, i.e., more than one for USAPs based on software responsibilities and a web-based second.” tool for evaluating an architecture with respect to those patterns. 3. A characterization of the user benefits from implementing the USAP. For example, “Cancel reduces the impact of routine Categories and Subject Descriptors user errors (slips) by allowing users to revoke accidental H.5.2 User Interfaces; D.2.11 Software Architectures. commands and return to their task faster than waiting for the erroneous command to complete.” General Terms 4. A description of the forces that impact the solution. For Design, Human Factors. example, “No one can predict when the users will want to cancel commands” 5. An implementation-independent description of the solution, Keywords i.e., responsibilities of the software. For example, one Usability, software architecture. implication of the force given above is the responsibility that “The software must always listen for the cancel command.” 1. INTRODUCTION 6. A sample solution using UML-style diagrams. These diagrams Usability-supporting architectural patterns (USAPs) were were intended to be illustrative, not prescriptive, and are, by developed as a way to explicitly connect the needs of necessity, in terms of an overarching architectural pattern architecturally-sensitive usability concerns to the design of (e.g., MVC). Both component and sequence diagrams were software architecture [14]. A score of patterns were originally provided, showing MVC before and after incorporating the proposed [5], loosely connected by software tactics that they USAP’s responsibilities. Responsibilities were assigned to might share (e.g., encapsulation of function, data indirection, each component and represented in the UML-style diagrams preemptive scheduling), but this relationship was not developed (Figures 1 and 2). sufficiently to be of benefit in subsequent research or practice. Making all six parts complete and internally consistent is a time- consuming process and for several years the original authors Permission to make digital or hard copies of all or part of this work for succeeded only in creating one full exemplar, the Cancellation personal or classroom use is granted without fee provided that copies are USAP for canceling long-running commands. With only one not made or distributed for profit or commercial advantage and that USAP fully fleshed out, there was no opportunity to discover copies bear this notice and the full citation on the first page. To copy structure that might lead to a pattern language. otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. The Cancellation USAP was shown to significantly improve the EICS’09, July 14–17, 2009, Pittsburgh, PA, USA. quality of architecture designs for supporting the ability to cancel Copyright 2009 ACM 1-58113-000-0/00/0004…$5.00. a long-running command in laboratory studies [12, 13]. This the architecture and had not yet written any code. Their success was encouraging, but did not address issues with implementation plan started with the backbone of the product line designing an architecture that had to consider more than one system, the core functionality, which would support all the USAP at a time. Multiple USAPs had been used in a real variation points for the products. Usability had been prioritized as development setting, but that intervention required heavy one of three most important software qualities for the new system involvement from the researchers who developed the USAPs during the Quality Attribute Workshop. because they were not sufficiently fleshed out for the architect to The best method to support usability concerns through software use them on his own [1]. Thus, prior uses of USAPs suffered from architecture has been the subject of some investigation over the two defects. First, the industrial uses all involved the researchers past years. In addition to the work on USAPs [5, 12, 13, 14, 15], who developed USAPs and this clearly does not scale up. Second, Folmer and his colleagues [9, 10] and Juristo and her colleagues the laboratory experiments were paper based and the participants [16] have investigated the relationship between software omitted important responsibilities of the USAPs, leaving architecture and usability. None of this work has gained additional room for quality improvement. widespread industry acceptance probably because all of the results reported require the direct involvement of the researchers. Thus, our goal in this project was to deliver appropriate knowledge concerning usability and software architecture to ABB’s software architects in a format and at a time that would benefit their design and that could scale to support global development efforts. After some investigation into the interplay of usability and software architecture the ABB research team, supporting the ABB project team, decided to try using usability-supporting Figure 1 UML-style component diagram of the MVC architectural patterns (USAPs) in a collaboration with the authors reference architecture before considering the ability to cancel at Carnegie Mellon University (CMU). Their decision was based a long running command. Original responsibilities of MVC on the fact that USAPs use generic usability scenarios and from are numbered R1, R2, etc. and refer to prose descriptions of these construct generic software architecture responsibilities. By the responsibilities accompanying the diagram. working this way, ABB expected to address some of the major usability concerns early in the software design phase without having an actual user interface design in place. The collaboration started with several teleconferences and a two- day workshop where the ABB research team together with the CMU research team presented the USAP approach and the ABB project team presented their new product line system to be developed. The researchers presented 19 general usability scenarios possibly relevant to this domain. These were: • Progress feedback • Warning/status/alert feedback • Undo • Canceling commands Figure 2 UML-style component diagram of MVC revised to • User profile include the responsibilities necessary to provide the ability to • Help cancel a long running command. New cancellation • Command aggregation responsibilities are numbered CR1, CR2, etc., are assigned to • Action for multiple objects both old and new components, and refer to prose descriptions • Workflow model of the responsibilities in the Cancellation USAP. • Different views of data • Keyboard shortcuts • Reuse of information 2. A COLLABORATION BETWEEN • Maintaining compatibility with other systems INDUSTRY AND ACADEMIA • Navigating within a single view A large global company, ABB, was beginning the development of • Recovering from failure a new product line. Prior to the collaboration reported in this • Identity management paper, the project team in the business unit developing the new • Comprehensive search product line of systems, together with an ABB research team, had • Supporting internationalization done a use case analysis, performed a Quality Attribute Workshop • Working at the user’s pace to collect non-functional requirements from prioritized scenarios The ABB project team was asked to prioritize the general [4], used the Influencing Factors method [18] and conducted the usability scenarios and they decided to focus on two – User first step of the Product Line Architecture development approach Profile and Warning/status/alert feedback (which ABB called
Recommended publications
  • Patterns Senior Member of Technical Staff and Pattern Languages Knowledge Systems Corp
    Kyle Brown An Introduction to Patterns Senior Member of Technical Staff and Pattern Languages Knowledge Systems Corp. 4001 Weston Parkway CSC591O Cary, North Carolina 27513-2303 April 7-9, 1997 919-481-4000 Raleigh, NC [email protected] http://www.ksccary.com Copyright (C) 1996, Kyle Brown, Bobby Woolf, and 1 2 Knowledge Systems Corp. All rights reserved. Overview Bobby Woolf Senior Member of Technical Staff O Patterns Knowledge Systems Corp. O Software Patterns 4001 Weston Parkway O Design Patterns Cary, North Carolina 27513-2303 O Architectural Patterns 919-481-4000 O Pattern Catalogs [email protected] O Pattern Languages http://www.ksccary.com 3 4 Patterns -- Why? Patterns -- Why? !@#$ O Learning software development is hard » Lots of new concepts O Must be some way to » Hard to distinguish good communicate better ideas from bad ones » Allow us to concentrate O Languages and on the problem frameworks are very O Patterns can provide the complex answer » Too much to explain » Much of their structure is incidental to our problem 5 6 Patterns -- What? Patterns -- Parts O Patterns are made up of four main parts O What is a pattern? » Title -- the name of the pattern » A solution to a problem in a context » Problem -- a statement of what the pattern solves » A structured way of representing design » Context -- a discussion of the constraints and information in prose and diagrams forces on the problem »A way of communicating design information from an expert to a novice » Solution -- a description of how to solve the problem » Generative:
    [Show full text]
  • Wiki As Pattern Language
    Wiki as Pattern Language Ward Cunningham Cunningham and Cunningham, Inc.1 Sustasis Foundation Portland, Oregon Michael W. Mehaffy Faculty of Architecture Delft University of Technology2 Sustasis Foundation Portland, Oregon Abstract We describe the origin of wiki technology, which has become widely influential, and its relationship to the development of pattern languages in software. We show here how the relationship is deeper than previously understood, opening up the possibility of expanded capability for wikis, including a new generation of “federated” wiki. [NOTE TO REVIEWERS: This paper is part first-person history and part theory. The history is given by one of the participants, an original developer of wiki and co-developer of pattern language. The theory points toward future potential of pattern language within a federated, peer-to-peer framework.] 1. Introduction Wiki is today widely established as a kind of website that allows users to quickly and easily share, modify and improve information collaboratively (Leuf and Cunningham, 2001). It is described on Wikipedia – perhaps its best known example – as “a website which allows its users to add, modify, or delete its content via a web browser usually using a simplified markup language or a rich-text editor” (Wikipedia, 2013). Wiki is so well established, in fact, that a Google search engine result for the term displays approximately 1.25 billion page “hits”, or pages on the World Wide Web that include this term somewhere within their text (Google, 2013a). Along with this growth, the definition of what constitutes a “wiki” has broadened since its introduction in 1995. Consider the example of WikiLeaks, where editable content would defeat the purpose of the site.
    [Show full text]
  • From a Pattern Language to a Field of Centers and Beyond Patterns and Centers, Innovation, Improvisation, and Creativity
    From a Pattern Language to a Field of Centers and Beyond Patterns and Centers, Innovation, Improvisation, and Creativity Hajo Neis Illustration 1: University of Oregon in Portland Downtown Urban Campus The Campus is located in downtown Portland in adapted old warehouse buildings, and was first designed in the Oregon pattern language method with the principles of pat- terns and user participation. The White Stag building facilities are open since 2009. 144 Hajo Neis INTRODUCTION What we call now the ›overall pattern language approach‹ in architecture, urban design, and planning has grown from its original principle of ›pattern and pat- tern language‹ into a large and solid body of theory and professional work. To- day, pattern theory and practice includes a large number of principles, methods, techniques and practical project applications in which patterns themselves play a specific part within this larger body of knowledge. Not only has the pattern lan- guage approach grown in its original area of architecture, but it has also (though less triumphantly than silently) expanded into a large number of other disciplines and fields, in particular computer and software science, education, biology, com- munity psychology, and numerous practical fields. Nevertheless, we first have to acknowledge that the pattern approach originally started with a single principle almost 50 years ago, the principle of pattern and pattern language that gave the name to this school of thought and practical professional project work. In this article we want to trace some of the theoretical and practical develop- ment of the pattern method and its realization in practical projects. We want to explore how challenges and opportunities resulted in the adaptation of the pattern language method into various forms of pattern project formats and formulations including ›pattern language‹ and ›project language.‹ We want to look at various forms of innovations and techniques that deal with theoretical improvements as well as the necessities of adaptation for practical cases and projects.
    [Show full text]
  • Pattern Languages in HCI: a Critical Review
    HUMAN–COMPUTER INTERACTION, 2006, Volume 21, pp. 49–102 Copyright © 2006, Lawrence Erlbaum Associates, Inc. Pattern Languages in HCI: A Critical Review Andy Dearden Sheffield Hallam University Janet Finlay Leeds Metropolitan University ABSTRACT This article presents a critical review of patterns and pattern languages in hu- man–computer interaction (HCI). In recent years, patterns and pattern languages have received considerable attention in HCI for their potential as a means for de- veloping and communicating information and knowledge to support good de- sign. This review examines the background to patterns and pattern languages in HCI, and seeks to locate pattern languages in relation to other approaches to in- teraction design. The review explores four key issues: What is a pattern? What is a pattern language? How are patterns and pattern languages used? and How are values reflected in the pattern-based approach to design? Following on from the review, a future research agenda is proposed for patterns and pattern languages in HCI. Andy Dearden is an interaction designer with an interest in knowledge sharing and communication in software development. He is a senior lecturer in the Com- munication and Computing Research Centre at Sheffield Hallam University. Janet Finlay is a usability researcher with an interest in design communication and systems evaluation. She is Professor of Interactive Systems in Innovation North at Leeds Metropolitan University. 50 DEARDEN AND FINLAY CONTENTS 1. INTRODUCTION 2. THE SCOPE OF THIS REVIEW 2.1. General Software Design Patterns 2.2. Interface Software Design Patterns 2.3. Interaction Design Patterns 3. A SHORT HISTORY OF PATTERNS 3.1.
    [Show full text]
  • A Pattern Language for Designing Application-Level Communication Protocols and the Improvement of Computer Science Education Through Cloud Computing
    Utah State University DigitalCommons@USU All Graduate Theses and Dissertations Graduate Studies 5-2017 A Pattern Language for Designing Application-Level Communication Protocols and the Improvement of Computer Science Education through Cloud Computing Jorge Edison Lascano Utah State University Follow this and additional works at: https://digitalcommons.usu.edu/etd Part of the Computer Sciences Commons Recommended Citation Lascano, Jorge Edison, "A Pattern Language for Designing Application-Level Communication Protocols and the Improvement of Computer Science Education through Cloud Computing" (2017). All Graduate Theses and Dissertations. 6547. https://digitalcommons.usu.edu/etd/6547 This Dissertation is brought to you for free and open access by the Graduate Studies at DigitalCommons@USU. It has been accepted for inclusion in All Graduate Theses and Dissertations by an authorized administrator of DigitalCommons@USU. For more information, please contact [email protected]. A PATTERN LANGUAGE FOR DESIGNING APPLICATION-LEVEL COMMUNICATION PROTOCOLS AND THE IMPROVEMENT OF COMPUTER SCIENCE EDUCATION THROUGH CLOUD COMPUTING by Jorge Edison Lascano A dissertation submitted in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY in Computer Science Approved: ______________________ ____________________ Stephen W. Clyde, Ph.D. Curtis Dyreson, Ph.D. Major Professor Committee Member ______________________ ____________________ Haitao Wang, Ph.D. Young-Woo Kwon, Ph.D. Committee Member Committee Member ______________________ ____________________ Luis Gordillo, Ph.D. Mark R. McLellan, Ph.D. Committee Member Vice President for Research and Dean of the School of Graduate Studies UTAH STATE UNIVERSITY Logan, Utah 2017 ii Copyright © Jorge Edison Lascano 2017 All Rights Reserved iii ABSTRACT A Pattern Language for Designing Application-Level Communication Protocols and the Improvement of Computer Science Education through Cloud Computing by Jorge Edison Lascano, Doctor of Philosophy Utah State University, 2017 Major Professor: Stephen W.
    [Show full text]
  • Non-Software Examples of Software Design Patterns Автор: Michael Duell
    Non-Software Examples of Software Design Patterns Автор: Michael Duell. Хорошая, хоть и старая (97 год) статья в которой приведены примеры применения паттернов в вещах, которые не имеют отношения к разработке. Такой подход отлично иллюстрирует паттерны и делает их более доступными для понимания. Например отлично показан паттерн Фасад: интерфейсы офисных устройств можно сильно упростить с помощью секретарши. Или например паттерн Бридж, который показан на примере выключателя которым можно управлять лампочкой, вентилятором или любым другим прибором. Non-Software Examples of Software Design Patterns by Michael Duell Abstract Software design patterns have roots in the architectural patterns of Christopher Alexander, and in the object movement. According to Alexander, patterns repeat themselves, since they are a generic solution to a given system of forces. The object movement looks to the real world for insights into modeling software relationships. With these dual roots, it seems reasonable that software design patterns should be repeated in real world objects. This paper presents a real world, non software instance of each design pattern from the book, Design Patterns - Elements of Reusable Object-Oriented Software [13]. The paper also discusses the implications of non-software examples on the communicative power of a pattern language, and on design pattern training. 1. Introduction Within the software industry, a growing community of patterns proponents exists. The roots of the patterns movement are found in the writings of architect Christopher Alexander, who describes a pattern as a generic solution to a given system of forces in the world [1]. Alexander's patterns can be observed in everyday structures. Each pattern in A Pattern Language[2] includes a picture of an archetypal example of the pattern.
    [Show full text]
  • The Idea of Architecture, the User As Inhabitant: Design Through a Christopher Alexander Lens
    The Idea of Architecture, The User As Inhabitant: Design through a Christopher Alexander Lens Molly Wright Steenson Carnegie Mellon University, School of Design [email protected] Abstract: The architect Christopher Alexander contributed the major notion oF “architecture” to the Field oF design research and its associated practices, an engagement that began in 1962, with the Design Methods movement. As co- author oF A Pattern Language and author oF such books as Notes on the Synthesis of Form and The Timeless Way of Building, he and his colleagues inFluenced the notion oF architecture in the Fields oF design, design research and computer programming. Through the joint interpretations and applications oF Alexander’s version of architecture by designers and programmers, two important practices emerged: the use oF patterns in programming, and the concept oF a user as the inhabitant oF a system oF soFtware. Yet this view oF “architecture” held by designers and programmers diFFers From how architects practice the Field, not to mention how they negatively they assess Alexander. Ultimately, there is much to learn From Alexander’s contrarian stance and in the connections and disconnections in the idea oF architecture, as it is understood in user-centered design. Keywords: architecture, Christopher Alexander, pattern languages 1. Introduction Designers and design researchers use the word “architecture” to describe the process oF designing systems. In so doing, they envision the user oF such a system as an inhabitant of the space oF soFtware. The architect Christopher Alexander, a seminal contributor to Design Methods and design research, is largely responsible For transmitting “architecture” to the practices oF design researchers, user-centered designers (by which I include interaction, experience, and soFtware designers, and inFormation architects who engage with design research methods), and certain computer programmers.
    [Show full text]
  • A Pattern Language Towns ·Buildings ·Construction = I C L I > Ci) I :X Co:> C
    > f""'t- ...,f""'t- = A Pattern Language Towns ·Buildings ·Construction = I c l I > Ci) I :X Co:> c.. ...,= "':r Co:> Co:> ...,< "'...... ¢.....= Co:> (":> 0 '='" "'0 = "'c.. Q;> :r Christopher Alexander c.' = > Sara Ishikawa · Murray Silverstein = WITH Max Jacobson ·Ingrid Fiksdahl-King ** Oxford Shlomo Angel CONTENTS USING THIS BOOK A pattern language ix Summary of the language xvm Choosing a language for yout project xxxv The poetry of the language xl TOWNS Using the language 3 Patterns IG-457 BUILDINGS Using the language 463 Patterns 467-93I CONSTRUCTION Using the language 935 Patterns 939-I I 66 + ACKNOWLEDGMENTS I I 67 25 ACCESS TO WATER* 135 • • . water is always precious. Among the special natural places covered by SACRED SITES ( 24), we single out the ocean beaches, lakes, and river banks, because they are irreplaceable. Their maintenance and proper use require a special pattern. + + + People have a fundamental yearning for great bodies of water. But the very movement of the people toward the water can also destroy the water. Either roads, · freeways, and industries destroy the water's edge and make it so dirty or so treacherous that it is virtually inac- cessible; or when the water's edge is preserved, it falls into private hands. II ccess to water is blocked. But the need that people have for water is vital and profound. (See, for example, C. G. Jmig, Symbols of Transformation, where Jung takes bodies of water which appear in dreams as a consistent representation of the dreamer's unconscious.) The problem can be solved only if it is understood that people will build places near the water because it is entirely natural; but that the land immediately along the water's edge must be pre- served for common use.
    [Show full text]
  • A Pattern Language: Towns, Buildings, Construction
    A Pattern Language: Towns, Buildings, Construction "Individuals have no effective voice in any community of more than 5,000-10,000 persons." A Pattern Language: Towns, Buildings, Construction is a 1977 book on architecture, urban design, and community livability. It was authored by Christopher Alexander , Sara Ishikawa and Murray Silverstein of the Center for Environmental Structure of Berkeley, California, with writing credits also to Max Jacobson , Ingrid Fiksdahl-King and Shlomo Angel . Decades after its publication, it is still one of the best-selling books on architecture. [1] 1 / 4 A Pattern Language: Towns, Buildings, Construction The book creates a new language, what the authors call a pattern language derived from timeless entities called patterns. As they write on page xxxv of the introduction "All 253 patterns together form a language." Patterns describe a problem and then offer a solution. In doing so the authors intend to give ordinary people, not only professionals, a way to work with their neighbors to improve a town or neighborhood, design a house for themselves or work with colleagues to design an office, workshop or public building such as a school. It includes 253 patterns such as 12 - Community of 7000 given a treatment over several pages where Pattern 12 on page 71 then goes on to state " Individuals have no effective voice in any community of more than 5,000-10,000 persons ." It is written as a set of problems and documented solutions. This is a form that a theoretical mathematician or computer scientist might call a generative grammar. Written in the 1970's at University of California - Berkeley, it was influenced by the emerging language to describe computer programming and design.
    [Show full text]
  • On Pattern Languages, Design Patterns and Evolution
    New Design Ideas Vol.3, No.1, 2019, pp.44-52 ON PATTERN LANGUAGES, DESIGN PATTERNS AND EVOLUTION Bruno Postle* Independent researcher, Sheffield, UK Abstract. Pattern Languages for the built environment and Design Patterns for computer software are closely related fields. This article discusses differences between the two considering the different problem spaces of each. We identify possible reasons for the general acceptance of Design Patterns in computer science and the corresponding lack of acceptance by architects. A novel approach to the design of buildings is proposed using a synthesis of Evolutionary Computing with a Pattern Language as fitness criteria. Keywords: Pattern languages, design patterns, evolutionary computing, computer science, architecture, urban design. Corresponding Author: Bruno Postle, 75 Crookes Road, Sheffield S10 5BD, UK, Tel.: +447981460853 e-mail: [email protected] Received: 21 December 2018; Accepted: 27 February 2019; Published: 28 June 2019. 1. Introduction This article provides context for a larger ongoing Free Software project for the design of domestic buildings using simulated evolution (Postle, 2013). This software is unique in that the process is driven entirely by what are called Pattern Languages – with the aim that the buildings should meet human needs at every scale – the resulting designs bear a strong resemblance to vernacular or „traditional‟ architecture. This background is interesting in itself, so we will introduce some ideas regarding the built environment that are generally considered outside the architectural mainstream, but which have long had profound influence in the computer science field. We will explore how we can learn from this existing cross-pollination between the architecture and computer science fields, with the aim to use this information to close the circle and make something genuinely useful for the built environment.
    [Show full text]
  • Christopher Alexander - Wikipedia, the Free Encyclopedia 頁 1 / 9
    Christopher Alexander - Wikipedia, the free encyclopedia 頁 1 / 9 Christopher Alexander From Wikipedia, the free encyclopedia Christopher Wolfgang Alexander (born 4 October 1936 in Vienna, Austria)[1][2] is a widely influential architect and design theorist, and currently emeritus professor at the University of California, Berkeley. His theories about the nature of human-centered design have had notable impacts across many fields beyond architecture, including urban design, software, sociology and other fields.[3] Alexander has also designed and personally built over 100 buildings, both as an architect and a general contractor.[4][5] In the field of software, Alexander is regarded as the father of Christopher Alexander in 2012. the Pattern Language movement. The first wiki - the technology behind Wikipedia - led directly from Alexander's work, according to its creator, Ward Cunningham.[6][7] Alexander's work has also influenced the development of Agile software development and Scrum (software development)[8] In architecture, Alexander's work is used by a number of different contemporary architectural communities of practice, including the New Urbanist movement, to help people to reclaim control over their own built environment.[9] However, Alexander is controversial among some mainstream architects and critics, in part because his work is often harshly critical of much of contemporary architectural theory and practice.[10] Alexander is known for his many books on the design and building process, including Notes on the Synthesis of Form, A City is Not a Tree (first published as a paper and recently re-published in book form), The Timeless Way of Building, A New Theory of Urban Design, and The Oregon Experiment.
    [Show full text]
  • The Pattern Languages
    CopCh04v3.fm Page 29 Sunday, June 13, 2004 3:27 PM PART II The Pattern Languages Finally, the patterns themselves! Thank you for patiently reading the introductory material, for it will help you use the patterns. We have divided the patterns into four interrelated pattern languages: 1. Project Management: the organizational aspects of managing projects. 2. Piecemeal Growth of the Organization: the ways in which an organization grows and develops over time. 3. Organizational Style: the general approach to the way the organization works. 4. People and Code: the ways in which people affect code—and the ways in which the design of code affects people! Each pattern language presents patterns in a sequence that allows the patterns to build on each other. Sometimes a pattern recurs in multiple pattern languages, but we present the pattern only in the pattern language with which it is most strongly connected, and we include a refer- ence to that appearance in other appearances of the pattern. In practice, you will use all four of these pattern languages together, weaving patterns together to solve problems and to strengthen your organization one pattern at a time. The first two pattern languages are design pattern languages; the second two are construc- tion pattern languages. Chapters 4 and 5 are dedicated to these two kinds of patterns, respec- tively. Alexander makes the same distinction in his pattern language, separating the act of design from the engineering considerations of construction. Design patterns are those that lay the foundation of the entity to be built—buildings and towns for Alexander, and software development organizations for us.
    [Show full text]