Architecture Design and Patterns
Architecture Design and Patterns
4. Architecture Patters
Client-Server Architecture
Pipe and Filter Architecture
Architecture Designs and Decision Designs
(Presented by 4224 Raza Ul Mustafa)
Architectural Design
Architectural design is a process for identifying the sub-systems making up a
system and the framework for sub-system control and communication. The
output of this design process is a description of the software architecture.
Architectural design is an early stage of the system design process. It represents
the link between specification and design processes and is often carried out in
parallel with some specification activities. It involves identifying major system
components and their communications.
Software architectures can be designed at two levels of abstraction:
System Structure
Functional Behaviour
Interaction
Non-Functional
Implement
Architecture Views
(Presented by 4247 Waseem Abbas)
Architectural views:
Dictionary Meaning : manner of looking at something , , ,
In architecture first of all we will discuss about what is views??
For better understanding and managing multi dimensional view must be taken for
any complex entity,multiple parameters involved.
For Example In civil what are view of building…..
Room layout, front Elevation drawing; 3D view of building /room ; Electrical
diagram Plumbing diagram; security alarm diagram; AC duct diagram etc…..
Architecture view in SE
Each view address a set of system concern , following the conventions of its
viewpoint Actually Viewpoint _ A position or direction
So,a view of a system is a repsentation of the system from the perspective of a
viewpoint.
Example of SW Views
A logical view(top/overall/bird eye view)
In logical view we explain all function and organizations,
Implemention View
In implemention view technology(HW and networking)
Module sequence
Development view
Front end
Back end
Database connectivity
Process (Deployment) view
Module and function,
Their interaction
Control points
Non functional requirements
Security view
User id / password
Graphical password
Transactional password
Architecture views
It is impossible to represent all relevant information about a system architecture
in a single architecture model as each model only shows one view or prospective
of the system.
You usually need to present multiple views of the software architecture.
Multiple perspective are necessary to capture the complete behavior and
development of a software system.
Architecture Patterns
(MVC and Layered Architecture)
(Presented by 4222 Muhammad Umar Darraz)
Architectural patterns:
Patterns are a means of representing, sharing and reusing knowledge. An
architectural pattern is a stylized description of a good design practice, which has
been tried and tested in different environments. Patterns should include
information about when they are and when the are not useful. Patterns may be
represented using tabular and graphical descriptions.
Model-View-Controller:
Serves as a basis of interaction management in many web-based
systems.
Decouples three major interconnected components:
o The model is the central component of the pattern that directly
manages the data, logic and rules of the application. It is the
application's dynamic data structure, independent of the user
interface.
o A view can be any output representation of information, such as a
chart or a diagram. Multiple views of the same information are
possible.
o The controller accepts input and converts it to commands for the
model or view.
Supported by most language frameworks.
Pattern name Model-View-Controller (MVC)
Problem The display presented to the user frequently changes over time
description in response to input or computation. Different users have
different needs for how they want to view the program.s
information. The system needs to reflect data changes to all
users in the way that they want to view them, while making it
easy to make changes to the user interface.
Layered architecture:
Used to model the interfacing of sub-systems.
Organizes the system into a set of layers (or abstract machines) each of
which provide a set of services.
Supports the incremental development of sub-systems in different
layers. When a layer interface changes, only the adjacent layer is
affected.
However, often artificial to structure systems in this way.
Name Layered architecture
Organizes the system into layers with related functionality associated with
each layer. A layer provides services to the layer above it so the lowest-level
Description
layers represent core services that are likely to be used throughout the
system.
Used when building new facilities on top of existing systems; when the
When used development is spread across several teams with each team responsibility for
a layer of functionality; when there is a requirement for multi-level security.
You should use this pattern when you have a system in which
large volumes of information are generated that has to be stored
When used
for a long time. You may also use it in data-driven systems where
the inclusion of data in the repository triggers an action or tool.
Client-server architecture:
Distributed system model which shows how data and processing is
distributed across a range of components, but can also be implemented
on a single computer.
Set of stand-alone servers which provide specific services such as
printing, data management, etc.
Set of clients which call on these services.
Name Client-server