0% found this document useful (0 votes)
16 views

Lecture 22 23

Uploaded by

Laiba Anwaar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Lecture 22 23

Uploaded by

Laiba Anwaar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

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

You might also like