Software Architecture Patterns

Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

SOFTWARE

ARCHITECTURE
VIEWS AND
PATTERNS

TECHNICAL ENGLISH 3”O”

PROFESSOR: HELEN MARTÍNEZ


SOFTWARE ARCHITECTURE
• The software architecture represents the decomposition of requirements into the
functions and subfunctions that are necessary to provide the specified behavior and
performance characteristics. Software architecture refers to the art and science of
designing and implementing software products (Scmidt, 2013).
• It stablishes the design framework for a software product
• an architecture must be designed to meet the specific requirements and constraints of
the application it is intended for.
• In partitioning an application, the architect assigns responsibilities to each
constituent component. These responsibilities define the tasks a component can be
relied upon to perform within the application. In this manner each component plays a
specific role in the application, and the overall component ensemble that comprises
the architecture collaborates to provide the required functionality
• One of the most powerful mechanisms for describing an architecture is hierarchical
decomposition. Components that appear in one level of description are decomposed
in more detail in accompanying design documentation
• The architecture clearly partitions the responsibilities of each team, defining the
dependencies between them.
ARCHITECTURE VIEWS
ARCHITECTURE VIEWS
The term “architecture views” rose to prominence in Philippe Krutchen’s 19955 paper
on the 4+1 View Model. This presented a way of describing and understanding an
architecture based on the following four views:
• Logical View
• Process view
• Physical view
• Development view
LOGICAL VIEW
• This describes the architecturally significant elements of the architecture and the
relationships between them. The logical view essentially captures the structure of the
application using class diagrams or equivalents.
PROCESS VIEW
• It focuses on describing the
concurrency and
communications elements of an
architecture. In IT applications,
the main concerns are
describing multi-threaded or
replicated components, and the
synchronous or asynchronous
communication mechanisms
used.
PHYSICAL VIEW
• It depicts how the major processes and components are mapped on to the
applications hardware. It might show, for example, how the database and web
servers for an application are distributed across a number of server machines.
PHYSICAL VIEW
DEVELOPMENT VIEW
• This captures the internal organization of the software components, typically as they
are held in a development environment or configuration management tool. For
example, the depiction of a nested package and class hierarchy for a Java application
would represent the development view of an architecture.
DEVELOPMENT VIEW
ARCHITECTURE MODEL
• Module: a structural view of the architecture, comprising the code modules such as
classes, packages and subsystems in the design. It also captures module
decomposition, inheritance, associations and aggregations.
• Component and Connector: This view describes the behavioral aspects of the
architecture. Components are typically objects, threads or processes, and the
connectors describe how the components interact. Common connectors are sockets,
middleware like CORBA or shared memory.
• Allocation: This view shows how the processes in the architecture are mapped to
hardware, and how they communicate using networks and/or databases. It also
captures a view of the source code in the configuration management systems, and
who in the development group has responsibility for each modules.
ASSIGNMENT 2
DIRECTIONS
• Each group has to give an oral presentation and turn in a written file (PTT).
I. The written document should include the following
• Definition
• Characteristics (Deployment, testability, performance, scalability,
development)
• Uses
• Advantages & Disadvantages
II. Oral Presentation
• Two members of each group will give a presentation (10 min).
SOFTWARE ARCHITECTURE PATTERNS

1. Layered pattern 6. Peer-to-peer pattern

2. Client-server pattern 7. Event driven pattern

3. Master-slave pattern 8. Model view controller pattern

4. Pipe-filter patter 9. Blackboard pattern

5. Broker pattern 10. Interpreter pattern

You might also like