Professional Documents
Culture Documents
Software Engineering: Architectural Design
Software Engineering: Architectural Design
ARCHITECTURAL DESIGN
Contact Information
Instructor
E-Mail:
rpgeorge@iau.edu.sa
Office Hours:
Sunday 10-12
Monday 10-11
Objectives
3
Know the architectural patterns that are often used in different types
Architectural views
Architectural patterns
Application architectures
Software architecture
5
programs. At this level, we are concerned with the way that an individual
These enterprise systems are distributed over different computers, which may
Stakeholder Communication
Means that analysis of whether the system can meet its non-
functional requirements is possible.
Large-scale Reuse
layered architecture.
Architecture and system characteristics
11
The particular architectural style that you choose for a system should depend on the
non-functional system requirements:
Performance
If performance is a critical requirement, the architecture should
be designed to localize critical operations within a small number
of components, with these components all deployed on the same
computer rather than distributed across the network.
Security
If security is a critical requirement, a layered structure for the
architecture should be used, with the most critical components
protected in the innermost layers, with a high level of security
validation applied to these layers.
Architecture and system characteristics
12
Safety
If safety is a critical requirement, the architecture should be
designed so that safety-related operations are all located in
either a single component or in a small number of components.
This reduces the costs and problems of safety validation and
makes it possible to provide related protection systems that can
safely shut down the system in the event of failure.
Availability
If availability is a critical requirement, the architecture should be
designed to include redundant components so that it is possible
to replace and update components without stopping the system.
Maintainability
Use fine-grain, changeable components.
View model of software architecture
13
A logical view, which shows the key abstractions in the system as objects or
object classes.
interacting processes.
development.
A physical view, which shows the system hardware and how software
Patterns should include information about when they are useful and when
Can involve additional code and code complexity when the data model
Disadvantages
and interactions are simple.
Web application architecture using the
16
MVC pattern
manages user interaction
(e.g., key presses, mouse defines and manages how
clicks, etc.) and passes these the data is presented to
interactions to the View and the user.
the Model.
Organises the system into a set of layers each of which provide a set of
services.
Organizes the system into layers with related functionality associated with
each layer. A layer provides services to the layer above it so the lowest-
Description
level 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
development is spread across several teams with each team responsibility
When used
for a layer of functionality; when there is a requirement for multi-level
security.
Allows replacement of entire layers so long as the interface is maintained.
Advantages Redundant facilities (e.g., authentication) can be provided in each layer to
increase the dependability of the system.
Application layer
All systems that involve interaction with a shared database can be considered
to be transaction-based information systems.
Information systems have a generic architecture that can be organized as a
layered architecture.
These are transaction-based systems as interaction with these systems generally
involves database transactions.
Layers include:
Name Repository
All data in a system is managed in a central
repository that is accessible to all system
Description
components. Components do not interact directly,
only through the repository.
The repository pattern is concerned with the static structure of a system and
The Client server pattern is the common run-time pattern for distributed systems.
Distributed system model shows how data and processing is distributed across
a range of components.
Name Client-server