0% found this document useful (0 votes)
78 views40 pages

Chapter 4 - Architectural Design and User Interface Design (PART 1)

The document discusses architectural design and provides information on several key topics: 1. It introduces architectural design decisions and notes there are nine questions system architects must consider, such as what approach to structure the system and what architectural styles are appropriate. 2. It discusses architectural views and introduces the 4+1 view model for presenting different views of a system's architecture. 3. It covers architectural patterns that can be reused in designs, such as layered architectures and repository architectures, and provides examples of when each pattern is useful.
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)
78 views40 pages

Chapter 4 - Architectural Design and User Interface Design (PART 1)

The document discusses architectural design and provides information on several key topics: 1. It introduces architectural design decisions and notes there are nine questions system architects must consider, such as what approach to structure the system and what architectural styles are appropriate. 2. It discusses architectural views and introduces the 4+1 view model for presenting different views of a system's architecture. 3. It covers architectural patterns that can be reused in designs, such as layered architectures and repository architectures, and provides examples of when each pattern is useful.
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/ 40

Chapter 4 : Architectural

Design and User Interface


Design (PART 1)
Objective
At the end of this chapter, you will:
• Understand why the architectural design of software is
important;
• Understand the decisions that have to be made about the
system architecture during the architectural design process;
• Have been introduced to the idea of architectural patterns,
well-tried ways of organizing system architectures, which can
be reused in system designs;
• Know the architectural patterns that are often used in
different types of application system, including transaction
processing systems and language processing systems.
Topic Outline
• Architectural design decisions
• Architectural views
• Architectural patterns
• Application Architecture
• User interface design
4.1 ARCHITECTURAL DESIGN
DECISIONS
Recap on Design process
(Chapter 2)
Recap on Design process
(Chapter 2)
Definitions
• Architectural design:
– The design process for identifying the sub-system 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.

Chapter 4 Requirements engineering


Architectural design
• An early stage of the system design process.
• Represents the link between specification and design
processes.
• Often carried out in parallel with some specification
activities.
• It involves identifying major system components and
their communications.
Advantages of explicit architecture
• Stakeholder communication
– Architecture may be used as a focus of discussion by
system stakeholders.
• System analysis
– Means that analysis of whether the system can meet its
non-functional requirements is possible.
• Large-scale reuse
– The architecture may be reusable across a range of
systems.
Packing robot control system
Vision
system

Object Arm Gripper


identification controller controller
system

• Shows the components


Packaging
selection that have to be developed.
system • Shows these component
and the links between
them
Packing Conveyor
system controller

Abstract model of the architecture


Rational on Architectural
design decisions
• Architectural design is a creative process so the process
differs depending on the type of system being developed.
• Due to the creative process, the activities within the process
depend on the type of the system being developed,
background and experience of system architect, specific
requirements of the system.
• During architectural design process, system architects have to
make a number of structural decisions that profoundly affect
the system and its development process  9 DESIGN
DECISION QUESTIONS

Chapter 4 Requirements engineering


Architectural design decisions
(Nine questions)
1. What approach will be used to structure the system?
2. What architectural styles are appropriate?
3. What control strategy should be used?
4. How will the structural components be decomposed into
subcomponents?
5. Is there a generic application architecture that can be used?
6. What architectural organization is best for delivering the
non-functional requirements?
7. How will the system be distributed?
8. How will the architectural design be evaluated?
9. How should the architecture be documented?

Chapter 4 Requirements engineering


Architecture and system characteristics
• Performance
– Localize critical operations and minimize communications. Use
large rather than fine-grain components.
• Security
– Use a layered architecture with critical assets in the inner layers.
• Safety
– Localise safety-critical features in a small number of sub-
systems.
• Availability
– Include redundant components and mechanisms for fault
tolerance.
• Maintainability
– Use fine-grain, replaceable components.
4.2 ARCHITECTURAL VIEWS
Architectural design decisions
(Nine questions)

1. What approach will be used to structure the


system?

Chapter 4 Requirements engineering


Analogy of House Architecture View

Interior elevations showing Schematic electrical Exterior elevations of


details of fireplaces, cabinets, layouts the front, rear and sides
built-in units and other special
interior features

Difference
views of a
house

Detailed floor plans


Roof plans showing details of the layout
Architectural Views
• What views or perspectives are useful when designing and
documenting a system’s architecture?
• What notation should be used for describing architectural
models?
• Each architectural model only shows one view or perspective
of the system.
– It might show how a system is decomposed into modules,
how the run-time processes interact or the different ways
in which system components are distributed across a
network.
– For both design and documentation, you usually need to
present multiple views of the software architecture.
4 + 1 view model

End-user
Programmers &
software managers

System engineers
Integrator
4 + 1 view model of software architecture
1. A logical view : shows the key abstractions in the
system as objects or object classes.
2. A process view : shows how, at run-time, the system
is composed of interacting processes.
3. A development view : shows how the software is
decomposed for development.
4. A physical view : shows the system hardware and
how software components are distributed across
the processors in the system.
 Related using use cases or scenarios
4.3 ARCHITECTURAL
PATTERNS
Architectural design decisions
(Nine questions)

2. What architectural styles are appropriate?


3. What control strategy should be used?
4. How will the structural components be decomposed
into subcomponents?

Chapter 4 Requirements engineering


Architectural patterns
• Patterns are a means as a way 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 the are not useful.
• Patterns may be represented using tabular and graphical
descriptions.
Architectural
Patterns

Layered Repository Client-server Pipe and filter


architecture architecture architecture architecture
Layered architecture
• Used to model the interfacing of sub-systems.
• Organize a system into layers
– Each layer provides services to the one outside it and acts
as a client to the layer inside.
– The design includes protocols that explain how each pair
of layers will interact.
– Each layer can be thought of as an abstract machine.
 Also called an abstract machine model
– Supports the incremental development of sub-systems in
different layers.
 When a layer interface changes, only the adjacent layer is
affected.
Layered architecture
• Used when
– building new facilities on top of existing systems
– The development is spread across several teams with each
team responsibility for a layer of functionality
– There is a requirement for multi-level security.

• Example:
– Layered security architecture : A system to provide file
security
Layered architecture
• Advantages
– Each layer can be considered to be an increasing level of
abstraction.
– Designers can use the layers to decompose a problem into
a sequence of more abstract steps.
– It’s easy to add or modify a layer as the need arises.
• Disadvantages
– Not easy to structure a system in layers.
– The multiple layers of abstraction are not always evident
when examine a set of requirements.
– System performance may suffer from the extra
coordination among the layers.
Example : Layered architecture

A generic layered architecture

Chapter 6 Architectural Design


Example : Layered architecture

The architecture of the LIBSYS system


Example : Layered architecture

The architecture of the iLearn system


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.
• When to use:
– Large amounts of data to be shared and stored for a long
time.
– In data-driven systems where the inclusion of data in the
repository triggers an action or tool.
Repository architecture
• Advantages
– Components can be independent.
– Changes made by one component can be propagated to all
components.
– All data can be managed consistency (e.g.. Backups done
at the same time).
• Disadvantages
– Problems in the repository affects the whole system.
– Inefficient in organizing all communication through the
repository.
– Difficulties in distributing the repository across several
computers.
Example : Repository architecture

A repository architecture for an IDE


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.
• When to use:
– Data in a shared database has to be accessed from a range
of locations.

Chapter 6 Architectural Design


Client-server architecture
• Advantages
– Servers can be distributed across a network.
– General functionality (e.g., a printing service) can be
available to all clients and does nor need to be
implemented by all services.
• Disadvantages
– Each service is a single point of failure so susceptible to
denial of service attacks or server failure.
– Performance maybe unpredictable because it depends on
the network as well as the system.
Example : Client-server architecture

A client–server architecture for a film library


Pipe and filter architecture
• The processing of the data in a system is organized so that
each processing component (filter) is discrete and carries out
one type of data transformation.
• The data flows (as in a pipe) from one component to another
for processing.
– May be referred to as a pipe and filter model (as in UNIX
shell).
• Commonly used in data processing applications where inputs
are processed in separate stages to generate related outputs.
– Not really suitable for interactive systems.

Chapter 6 Architectural Design


Pipe and filter architecture
• Advantages
– Easy to understand and supports transformation reuse.
– Workflow style matches the structure of many business
processes.
– Evolution by adding transformation is straightforward.
– Can be implemented as either a sequential or concurrent
system.
• Disadvantages
– The format for data transfer has to be agreed upon
between communicating transformations.
– Each transformation must parse its input and unparsed its
output to the agreed form  this increase system
overhead.
Example : Pipe and filter architecture

An example of the pipe and filter architecture used in a payments system


Key points
• A software architecture is a description of how a software
system is organized.
• Architectural design decisions include decisions on the type
of application, the distribution of the system, the architectural
styles to be used.
• Architectures may be documented from several different
perspectives or views such as a conceptual view, a logical
view, a process view, and a development view.
• Architectural patterns are a means of reusing knowledge
about generic system architectures. They describe the
architecture, explain when it may be used and describe its
advantages and disadvantages.

Chapter 6 Architectural Design


ACTIVITIES
• Draw diagrams showing a conceptual view and a process view
of the architectures of the following systems:
– An automated ticket-issuing system used by passengers at
a railway station.
– A computer-controlled video conferencing system that
allow video, audio and computer data to be visible to
several participants at the same time.
– A robot floor cleaner that is intended to clean relatively
clear spaces such as corridors. The cleaner must be able to
sense walls and other obstructions.

You might also like