You are on page 1of 8

An Architectural Style defines a family of systems in terms of a pattern of structural organization.

It determines: the vocabulary of components and connectors that can be used in instances of that style a set of constraints on how they can be combined. Why Architectural Styles ? Makes for an easy way to communicate among stakeholders Documentation of early design decisions Allow for the reuse and transfer of qualities to similar systems Describing an Architectural Style The architecture of a specific system is a collection of : o computational components o description of the interactions between these components (connectors) Software architectures are represented as graphs where nodes represent components: o Procedures o Modules o Processes o Tools o Databases and edges represent connectors: o procedure calls o event broadcasts o database queries o pipes

REPOSITORY STYLE Suitable for applications in which the central issue is establishing, augmenting, and maintaining a complex central body of information. Typically the information must be manipulated in a variety of ways. Often long-term persistence is required.

Components: A central data structure representing the current state of the system. A collection of independent components that operate on the central data structure. Connectors: Typically procedure calls or direct memory accesses.

Repository Style Examples Information Systems Programming Environments Graphical Editors AI Knowledge Bases Reverse Engineering Systems

Repository Style Advantages Efficient way to store large amounts of data. Sharing model is published as the repository schema. Centralized management: Backup Security concurrency control Software Design

Repository Style Disadvantages Must agree on a data model a priori. Difficult to distribute data. Data evolution is expensive.

PROCESS CONTROL STYLE Suitable for applications whose purpose is to maintain specified properties of the outputs of the process at (sufficiently near) given reference values. Applicable to continually running system used for maintaining correct values. The errors may be compensated for through feedback. Examples o Temperature control system o Power plant control system Components :

o Process Definition : includes mechanisms for manipulating some process variables. o Control Algorithm : for deciding how to manipulate process variables. o Sensors producing values of process variables pertinent to control. Connectors: o Process Variables: Controlled variable : whose value the system is intended to control. Input variable : that measures an input to the process. Manipulated variable : whose value can be changed by the controller. o Set Point : is the desired value for a controlled variable. Structures 1. Open Loop system o doesn't use information about process variables to adjust the system. o rarely suited to physical processes in the real world.

2. Closed Loop system o uses information about process variables to manipulate process variables in order to compensate for variations in process variables and operation conditions.

Process Control Example : Automobile Speed Control

Advantage: Well suited for the control of continuous processes particularly where the control algorithm is subject to change (possibly even at run-time). Disadvantage: Not easily applicable when multiple interacting processes (and controls) are needed

The 4+1 view model proposed by Phillipe Kruchten is : The four main views according to this model are: Logical View (Module View): The logical view is concerned about the output(s) of the system and how it will affect the end users. For this purpose the logical view attempts to defragment the system into a set of abstractions, or modules. This decomposition serves two purposes o it enables functional analysis o it also helps in identification of common mechanisms and design elements that are common across the system.

Process View (Component-and-Connector View): This view deals with concurrency and distribution, system integrity, and fault tolerance. This view tries to explain which components interact, and how they do so. It tries to explain the connections between different components from a runtime perspective.

Development View (Allocation View): This view describes the static organization of the software in its development environment. It deals with modules, work allocation, costs and planning.

It also involves monitoring of project progress, software reuse, and security.

Physical View (Deployment View): This view describes the mapping(s) of the software onto the hardware and reflects its distributed aspects. It looks into system requirements like reliability and performance. It maps the various elements identified in the above three views.

These views, combined with a 5th view, which is Use cases or scenarios, represents the entire architecture. Figure 1 represents Kruchtens 4+1 view model.

Figure 1: The 4+1 view model

The architecture of a system is therefore a combination of three things: the components, their Interrelationships the functional and behavioral constraints applied by the stakeholders concerns.

These, in turn, give rise to views. The different views blend together to form the architectural descriptions. Over the years, the architects and researchers have identified certain architectural styles and patterns. Each view can be developed using a particular style, depending on the suitability of the same for the representation of that view.

You might also like