Lecture-22
& 23
University of Management & Technology
School of Systems and Technology
Software Engineering
CC-2101
Architectural Design
Somerville | Ch-6 (Pg.
167)
By: Dr. Arfan
Arshad
What is Architectural design?
• Architectural design is concerned with understanding
how a software system should be organized and
designing the overall structure of that system.
• Architectural design is the critical link between design and
requirements engineering, as it identifies the main
structural components in a system and the
relationships between them.
• The output of the architectural design process is an
architectural model that describes how the system is
organized as a set of communicating components.
Example - The architecture of a packing robot
control system
Advantages of explicit architecture
• Stakeholder communication
o Architecture may be used as a focus of discussion by system
stakeholders.
• System analysis
o Means that analysis of whether the system can meet its non-
functional requirements is possible.
• Large-scale reuse
o The architecture may be reusable across a range of systems
o Product-line architectures may be developed.
Architectural representations
• Simple, informal block diagrams showing entities and
relationships are the most frequently used method for
documenting software architectures.
• But these have been criticized because they lack
semantics, do not show the types of relationships
between entities nor the visible properties of entities
in the architecture.
• Depends on the use of architectural models.
• The requirements for model semantics depends on how
the models are used.
Box and line diagrams
• Very abstract - they do not show the nature of
component relationships nor the externally visible
properties of the sub-systems.
• However, useful for communication with
stakeholders and for project planning.
Use of architectural models
• As a way of facilitating discussion about the system design
• A high-level architectural view of a system is useful for communication with
system stakeholders and project planning because it is not cluttered with detail.
• Stakeholders can relate to it and understand an abstract view of the system.
• They can then discuss the system as a whole without being confused by detail.
• As a way of documenting an architecture that has been
designed
• The aim here is to produce a complete system model that shows the different
components in a system, their interfaces and their connections.
Architectural design decisions
Architectural views
Architectural views
• A logical view, which shows the key abstractions in the
system as objects or object classes.
• A process view, which shows how, at run-time, the system
is composed of interacting processes.
• A development view, which shows how the software is
decomposed for development.
• A physical view, which shows the system hardware and
how software components are distributed across the
processors in the system.
Architectural patterns
• Patterns are a means of representing, sharing and
reusing knowledge.
• An architectural pattern is a stylized description of good
design practice, which has been tried and tested in
different environments.
• Patterns should include information about when they
are and when they are not useful.
• Patterns may be represented using tabular and
graphical descriptions.
The Model-View-Controller (MVC) pattern
• The Model-View-Controller
(MVC) is an architectural
pattern that separates an
application into three
main logical components:
• the model, the view, and the
controller.
• Each of these components
are built to handle specific
development aspects of an
application.
• MVC is one of the most
frequently used industry-
Web application architecture using the MVC pattern
Layered architecture
• Used to model the interfacing of
sub-systems.
• Organises 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.
Repository architecture
• Sub-systems must exchange data. This may be done in two ways:
• Shared data is held in a central database or repository and may be
accessed by all sub-systems;
• Each sub-system maintains its own database and passes data explicitly
to other sub-systems.
Client-server architecture
• Distributed system model which
shows how data and
processing is distributed
across a range of
components.
• Can 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.
• Network which allows clients to
access servers.
Thankyou
Q&A