Pattern-Oriented Software Architecture

Last updated

Pattern-Oriented Software Architecture is a series of software engineering books describing software design patterns.

Contents

POSA1

Pattern-Oriented Software Architecture Volume 1: A System of Patterns
Pattern-Oriented Software Architecture.jpg
AuthorFrank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad and Michael Stal
LanguageEnglish
Subject Computer programming
Published
  • 1996
ISBN 978-0471958697

Architectural patterns

Design patterns

POSA2

Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture.jpg
Author Douglas C. Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann
LanguageEnglish
Subject Computer programming
Published2000
ISBN 978-0471606956

Service access and configuration patterns

Event handling patterns

Synchronization patterns

Concurrency patterns

POSA3

Pattern-Oriented Software Architecture Volume 3: Patterns for Resource Management
Pattern-Oriented Software Architecture.jpg
AuthorMichael Kircher, Prashant Jain
LanguageEnglish
Subject Computer programming
Published
  • 2004
ISBN 978-0470845257

Resource acquisition

Resource lifecycle

Resource release

POSA4

Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing
Pattern-Oriented Software Architecture.jpg
AuthorFrank Buschmann, Kevlin Henney, Douglas C. Schmidt
LanguageEnglish
Subject Computer programming
Published
  • 2007
ISBN 978-0470059029

Software architecture

Distribution Infrastructure

Adaptation and execution

Resource management

Database access

POSA5

Pattern Oriented Software Architecture Volume 5: On Patterns and Pattern Languages
Pattern-Oriented Software Architecture.jpg
AuthorFrank Buschmann, Kevlin Henney, Douglas C. Schmidt
LanguageEnglish
Subject Computer programming
Published
  • 2007
ISBN 978-0471486480

Patterns referenced in volume 5:

Related Research Articles

<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.

Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.

The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between systems on different operating systems, programming languages, and computing hardware. CORBA uses an object-oriented model although the systems that use the CORBA do not have to be object-oriented. CORBA is an example of the distributed object paradigm.

In software engineering, the adapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes work with others without modifying their source code.

The facade pattern is a software-design pattern commonly used in object-oriented programming. Analogous to a facade in architecture, a facade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can:

In computer programming, the proxy pattern is a software design pattern. A proxy, in its most general form, is a class functioning as an interface to something else. The proxy could interface to anything: a network connection, a large object in memory, a file, or some other resource that is expensive or impossible to duplicate. In short, a proxy is a wrapper or agent object that is being called by the client to access the real serving object behind the scenes. Use of the proxy can simply be forwarding to the real object, or can provide additional logic. In the proxy, extra functionality can be provided, for example caching when operations on the real object are resource intensive, or checking preconditions before operations on the real object are invoked. For the client, usage of a proxy object is similar to using the real object, because both implement the same interface.

In object-oriented programming, the command pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time. This information includes the method name, the object that owns the method and values for the method parameters.

<span class="mw-page-title-main">Model–view–controller</span> Software design pattern

Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements. This is done to separate internal representations of information from the ways information is presented to and accepted from the user.

<span class="mw-page-title-main">Systems development life cycle</span> Systems engineering terms

In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an information system. The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

In software engineering, structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships among entities.

Tuxedo is a middleware platform used to manage distributed transaction processing in distributed computing environments. Tuxedo is a transaction processing system or transaction-oriented middleware, or enterprise application server for a variety of systems and programming languages. Developed by AT&T in the 1980s, it became a software product of Oracle Corporation in 2008 when they acquired BEA Systems. Tuxedo is now part of the Oracle Fusion Middleware.

Microsoft Transaction Server (MTS) was software that provided services to Component Object Model (COM) software components, to make it easier to create large distributed applications. The major services provided by MTS were automated transaction management, instance management and role-based security. MTS is considered to be the first major software to implement aspect-oriented programming.

In object-oriented design, the dependency inversion principle is a specific methodology for loosely coupling software modules. When following this principle, the conventional dependency relationships established from high-level, policy-setting modules to low-level, dependency modules are reversed, thus rendering high-level modules independent of the low-level module implementation details. The principle states:

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is open source.

The Composite UI Application Block is an addition to Microsoft's .NET Framework for creating complex user interfaces made of loosely coupled components. Developed by Microsoft's patterns & practices team, CAB is used exclusively for developing Windows Forms. A derivative version of CAB exists in both the Web Client and Mobile Client Software Factories as well. It encourages the developer to use either the Model-View-Controller or Model-View-Presenter architectural pattern, to encourage reuse of the individual User Controls by not coupling them with their underlying data elements or presentation code.

Domain-driven design (DDD) is a major software design approach, focusing on modeling software to match a domain according to input from that domain's experts.

<span class="mw-page-title-main">Model–view–presenter</span>

Model–view–presenter (MVP) is a derivation of the model–view–controller (MVC) architectural pattern, and is used mostly for building user interfaces.

Wrapper libraries consist of a thin layer of code which translates a library's existing interface into a compatible interface. This is done for several reasons:

The entity-control-boundary (ECB), or entity-boundary-control (EBC), or boundary-control-entity (BCE) is an architectural pattern used in use-case driven object-oriented software design that structures the classes composing a software according to their responsibilities in the use-case realization.