The Hillside Group

Last updated
The Hillside Group
Formation1993
Membership
121
Official language
English
President
Joseph Yoder
Website www.hillside.net

The Hillside Group is an educational nonprofit organization founded in August 1993 to help software developers analyze and document common development and design problems as software design patterns. The Hillside Group supports the patterns community through sponsorship of the Pattern Languages of Programs conferences. [1] [2]

Contents

History

In August 1993, Kent Beck and Grady Booch sponsored a mountain retreat in Colorado where a group converged on foundations for software patterns. Ward Cunningham, Ralph Johnson, Ken Auer, Hal Hildebrand, Grady Booch, Kent Beck, and Jim Coplien examined architect Christopher Alexander's work in pattern language and their own experiences as software developers to combine the concepts of objects and patterns and apply them to writing computer programs. The group agreed to build on Erich Gamma's study of object-oriented patterns, but to use patterns in a generative way in the sense that Alexander uses patterns for urban planning and architecture. They used the word generative to mean creational, to distinguish them from Gamma's patterns' that captured observations. The group was meeting on the side of a hill, which led them to name themselves the Hillside Group. [1]

Since then, the Hillside Group has been incorporated as an educational non-profit organization. It sponsors and helps run Pattern Languages of Programs (PLoP) conferences [3] such as PLoP, EuroPlop, ChiliPlop, GuruPLoP, Asian PLoP, Scrum PLoP, Viking PLoP and Sugarloaf PLoP. The Hillside Group has also worked on the Pattern Languages of Program Design series of books. [1]

Activities

The Hillside Group sponsors the Pattern Languages of Programs conferences in various countries, including the U.S., Brazil, Norway, Germany, Australia, and Japan. The Hillside Group assisted in publishing the Pattern Languages of Program Design book series until 2006. [4] [5] [6] Since 2006, The Hillside Group has published patterns and conference proceedings through the Association for Computing Machinery (ACM) Digital Library. [7]

Patterns Library

The Hillside Patterns Library contains a comprehensive archive of patterns developed by the community, either directly or indirectly through the PLoP conferences. [8]

Conferences

The Hillside Group sponsors the conferences listed. [9] The conferences focus on writing patterns, workshops, and invited talks related to pattern development. Most of the conferences are held annually and encourage attendees to submit papers pre-conference for inclusion in the writer's workshops. The papers undergo a shepherding process, where they are analyzed and evolved before conference attendance.

The Hillside Group Board

The President of The Hillside Group for 20102014 is Joseph Yoder of The Refactory, Inc.

The Hillside Group is led by a Board consisting of the President, Vice-President, Chief Operating Officer, Treasurer, two Directors, Secretary, two Editors in Chief and four Members.

Current board

PositionName
President [10] Joseph Yoder
Vice-PresidentAdemar Aguiar
Treasurer Rebecca Wirfs-Brock
Directors Richard P. Gabriel and Neil Harrison
SecretaryLise B. Hvatum
Editors in ChiefJames Noble and Ralph Johnson
MembersBob Hanmer, Robert Biddle, Christian Kohls, and Christian Köppe
Emeritus Members Grady Booch, Linda Rising and Dirk Riehle

Founding members

Related Research Articles

<span class="mw-page-title-main">Unified Modeling Language</span> Software system design modeling tool

The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.

<i>Design Patterns</i> 1994 software engineering book

Design Patterns: Elements of Reusable Object-Oriented Software (1994) is a software engineering book describing software design patterns. The book was written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, with a foreword by Grady Booch. The book is divided into two parts, with the first two chapters exploring the capabilities and pitfalls of object-oriented programming, and the remaining chapters describing 23 classic software design patterns. The book includes examples in C++ and Smalltalk.

In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

Software design is the process by which an agent creates a specification of a software artifact intended to accomplish goals, using a set of primitive components and subject to constraints. Software design may refer to either "all the activity involved in conceptualizing, framing, implementing, commissioning, and ultimately modifying complex systems" or "the activity following requirements specification and before programming, as ... [in] a stylized software engineering process."

An anti-pattern in software engineering, project management, and business processes is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive. The term, coined in 1995 by computer programmer Andrew Koenig, was inspired by the book Design Patterns and first published in his article in the Journal of Object-Oriented Programming. A further paper in 1996 presented by Michael Ackroyd at the Object World West Conference also documented anti-patterns.

The following outline is provided as an overview of and topical guide to software engineering:

The Portland Pattern Repository (PPR) is a repository for computer programming software design patterns. It was accompanied by a companion website, WikiWikiWeb, which was the world's first wiki. The repository has an emphasis on Extreme Programming, and it is hosted by Cunningham & Cunningham (C2) of Portland, Oregon. The PPR's motto is "People, Projects & Patterns".

<span class="mw-page-title-main">Grady Booch</span> American software engineer

Grady Booch is an American software engineer, best known for developing the Unified Modeling Language (UML) with Ivar Jacobson and James Rumbaugh. He is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments.

James O. Coplien, also known as Cope, is a writer, lecturer, and researcher in the field of computer science. He held the 2003–4 Vloeberghs Leerstoel at Vrije Universiteit Brussel and has been a visiting professor at University of Manchester.

James E. Rumbaugh is an American computer scientist and object-oriented methodologist who is best known for his work in creating the Object Modeling Technique (OMT) and the Unified Modeling Language (UML).

<span class="mw-page-title-main">Ivar Jacobson</span>

Ivar Hjalmar Jacobson is a Swedish computer scientist and software engineer, known as major contributor to UML, Objectory, Rational Unified Process (RUP), aspect-oriented software development and Essence.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

William F. "Bill" Opdyke is an American computer scientist and enterprise architect at JPMorgan Chase, known for his early work on code refactoring.

<span class="mw-page-title-main">Presentation–abstraction–control</span>

Presentation–abstraction–control (PAC) is a software architectural pattern. It is an interaction-oriented software architecture, and is somewhat similar to model–view–controller (MVC) in that it separates an interactive system into three types of components responsible for specific aspects of the application's functionality. The abstraction component retrieves and processes the data, the presentation component formats the visual and audio presentation of data, and the control component handles things such as the flow of control and communication between the other two components.

The bus factor is a measurement of the risk resulting from information and capabilities not being shared among team members, derived from the phrase "in case they get hit by a bus". It is also known as the bus problem, truck factor, or bus/truck number.

<span class="mw-page-title-main">Pattern Languages of Programs</span> Annual conference series on software design patterns

Pattern Languages of Programs is the name of a group of annual conferences sponsored by The Hillside Group. The purpose of these conferences is to develop and refine the art of software design patterns. Most of the effort focuses on developing a textual presentation of a pattern such that it becomes easy to understand and apply. This is typically done in a writers' workshop setting.

An authors' conference or writers' conference is a type of conference where writers gather to review their written works and suggest improvements. This process helps an author improve their work and learn to be a better writer for future works, both by receiving critiques of their own work and by mentoring the work of the other authors. Writers may also benefit from meeting and hearing from professionals in related fields, such as agents, editors, illustrators, publishers, and providers of other relevant services.

Organizational patterns are inspired in large part by the principles of the software pattern community, that in turn takes it cues from Christopher Alexander's work on patterns of the built world. Organizational patterns also have roots in Kroeber's classic anthropological texts on the patterns that underlie culture and society. They in turn have provided inspiration for the Agile software development movement, and for the creation of parts of Scrum and of Extreme Programming in particular.

Software archaeology or source code archeology is the study of poorly documented or undocumented legacy software implementations, as part of software maintenance. Software archaeology, named by analogy with archaeology, includes the reverse engineering of software modules, and the application of a variety of tools and processes for extracting and understanding program structure and recovering design information. Software archaeology may reveal dysfunctional team processes which have produced poorly designed or even unused software modules, and in some cases deliberately obfuscatory code may be found. The term has been in use for decades.

References

  1. 1 2 3 The Hillside Group (1994–2018). "History". The Hillside Group. Retrieved July 2, 2021.
  2. "Hillside Group". WikiWikiWeb . November 26, 2014. Retrieved July 2, 2021.
  3. Fowler, Martin (March–April 2003). "Patterns" (PDF). IEEE Software. pp. 2–3. Retrieved July 2, 2021.
  4. Coplein, James O. and Douglas C. Schmidt Pattern Languages of Program Design Addison-Wesley, New York 1995
  5. "HE educators | Pearson UK".
  6. "HE educators | Pearson UK".
  7. "ACM Digital Library".
  8. "The Hillside Group : Patterns Library".
  9. "Pattern Languages of Programs (PLoP) Conferences".
  10. "Joseph Yoder – the Refactory".