1 Chapter 6 Architectural Design

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 88

Chapter 6 – Architectural Design

Lecture 1

Chapter 6 Architectural design 1


Topics covered

 Architectural design decisions


 Architectural views
 Architectural patterns
 Application architectures

Chapter 6 Architectural design 2


Software architecture

 The design process for identifying the sub-systems


making up a system and the framework for sub-system
control and communication is architectural design.
 The output of this design process is a description of the
software architecture.

Chapter 6 Architectural design 3


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.

Chapter 6 Architectural design 4


Architecture and Requirements

 As Bosch discusses, individual components


implement the functional system requirements.
The nonfunctional requirements depend on the
system architecture—the way in which these
components are organized and communicate. In
many systems, non-functional requirements are
also influenced by individual components, but
there is no doubt that the architecture of the
system is the dominant influence.

Chapter 6 Architectural design 5


Architectural abstraction

 Architecture in the small is concerned with the


architecture of individual programs. At this level, we are
concerned with the way that an individual program is
decomposed into components.
 Architecture in the large is concerned with the
architecture of complex enterprise systems that include
other systems, programs, and program components.
These enterprise systems are distributed over different
computers, which may be owned and managed by
different companies.

Chapter 6 Architectural design 6


The architecture of a packing robot control
system

Chapter 6 Architectural design 7


Advantages of explicit architecture

 Stakeholder communication
 Architecture may be used as a focus of discussion by system
stakeholders.
 System analysis
 Making the system architecture explicit at an early stage in the
system development requires some analysis. Architectural
design decisions have a profound effect on whether or not the
system can meet critical requirements such as performance,
reliability, and maintainability.
 Large-scale reuse
 The architecture may be reusable across a range of systems
 Product-line architectures may be developed.

Chapter 6 Architectural design 8


 Although each software system is unique, systems
in the same application domain often have similar
architectures that reflect the fundamental concepts
of the domain. For example, application product
lines are applications that are built around a core
architecture with variants that satisfy specific
customer requirements. When designing a system
architecture, you have to decide what your system
and broader application classes have in common,
and decide how much knowledge from these
application architectures you can reuse.

Chapter 6 Architectural design 9


Architectural pattern

 The architecture of a software system may be


based on a particular architectural pattern or
style. An architectural pattern is a description of a
system organization (Garlan and Shaw, 1993),
such as a client–server organization or a layered
architecture. Architectural patterns capture the
essence of an architecture that has been used in
different software systems. You should be aware
of common patterns, where they can be used,
and their strengths and weaknesses when making
decisions about the architecture of a system.
Chapter 6 Architectural design 10
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.
 However, if the architecture of a system is to be
thoroughly documented then it is better to use a notation
with well-defined semantics for architectural description.
The requirements for model semantics depends on how
the models are used.
Chapter 6 Architectural design 11
Architectural design decisions

Architectural design is a creative process


where you design a system organization
that will satisfy the functional and non-
functional requirements of a system.
 However, a number of common decisions span
all design processes and these decisions affect
the non-functional characteristics of the system.

Chapter 6 Architectural design 12


Architectural design decisions

it is a creative process, the activities


within the process depend
 on the type of system being developed,
 the background and experience of the
system architect, and
 The specific requirements for the system

Chapter 6 Architectural design 13


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.

Chapter 6 Architectural design 14


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.

Chapter 6 Architectural design 15


Architectural design decisions

 Is there a generic application architecture that can be


used?
 How will the system be distributed?
 What architectural styles are appropriate?
 What approach will be used to structure the system?
 How will the system be decomposed into modules?
 What control strategy should be used?
 How will the architectural design be evaluated?
 How should the architecture be documented?

Chapter 6 Architectural design 16


Architecture reuse

 Systems in the same domain often have similar


architectures that reflect domain concepts.
 Application product lines are built around a core
architecture with variants that satisfy particular customer
requirements.
 The architecture of a system may be designed around
one of more architectural patterns or ‘styles’.
 These capture the essence of an architecture and can be
instantiated in different ways.
 Discussed later in this lecture.

Chapter 6 Architectural design 17


Distributed Architecture

 For embedded systems and systems designed


for personal computers, there is usually only a
single processor and you will not have to design
a distributed architecture for the system.
However, most large systems are now
distributed systems in which the system software
is distributed across many different computers.
The choice of distribution architecture is a key
decision that affects the performance and
reliability of the system.

Chapter 6 Architectural design 18


architectural design evaluation

 Evaluating an architectural design is difficult


because the true test of an architecture is how
well the system meets its functional and non-
functional requirements when it is in use.
However, you can do some evaluation by
comparing your design against reference
architectures or generic architectural patterns.
Bosch’s (2000) description of the non-functional
characteristics of architectural patterns can also
be used to help with architectural evaluation.

Chapter 6 Architectural design 19


Architecture and system characteristics

 Performance
 Localise critical operations and minimise communications.
Use large rather than fine-grain components. 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. This may mean using
a few relatively large components rather than small, fine-grain
components, which reduces the number of component
communications. You may also consider run-time system
organizations that allow the system to be replicated and
executed on different processors.

Chapter 6 Architectural design 20


Architecture and system characteristics

 Security
 Use a layered architecture with critical assets in the
inner layers, with a high level of security validation
applied to each of the layers.
 Safety
 Localise safety-critical features in a small number of
sub-systems. 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.

Chapter 6 Architectural design 21


Architecture and system characteristics

 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 (fault
tolerance).
 Maintainability
 Use fine-grain, replaceable components.

Chapter 6 Architectural design 22


System characteristics conflicts

 Obviously there is potential conflict between some of


these architectures. For example, using large
components improves performance and using small,
fine-grain components improves maintainability. If both
performance and maintainability are important system
requirements, then some compromise must be found.
This can sometimes be achieved by using different
architectural patterns or styles for different parts of the
system.

Chapter 6 Architectural design 23


Architectural views

 What views or perspectives are useful when designing


and documenting a system’s architecture?
 What notations 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.

Chapter 6 Architectural design 24


4 + 1 view model of software architecture

 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.
 Related using use cases or scenarios (+1)

Chapter 6 Architectural design 25


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.

Chapter 6 Architectural design 26


The Model-View-Controller (MVC) pattern

Name MVC (Model-View-Controller)

Description Separates presentation and interaction from the system data. The system is
structured into three logical components that interact with each other. The
Model component manages the system data and associated operations on
that data. The View component defines and manages how the data is
presented to the user. The Controller component manages user interaction
(e.g., key presses, mouse clicks, etc.) and passes these interactions to the
View and the Model. See Figure 6.3.
Example Figure 6.4 shows the architecture of a web-based application system
organized using the MVC pattern.
When used Used when there are multiple ways to view and interact with data. Also used
when the future requirements for interaction and presentation of data are
unknown.
Advantages Allows the data to change independently of its representation and vice versa.
Supports presentation of the same data in different ways with changes made
in one representation shown in all of them.
Disadvantages Can involve additional code and code complexity when the data model and
interactions are simple.

Chapter 6 Architectural design 27


The organization of the Model-View-Controller

Chapter 6 Architectural design 28


Model

 The model is responsible for managing the


data of the application.
 It responds to the request from the view
and it also responds to instructions from
the controller to update itself
 It is the lowest level of the pattern which is
responsible for maintaining data.
 The Model represents the application core
(for instance a list of database records).
 It is also called the domain layer
View

 The View displays the data (the database records).


 A view requests information from the model, that it needs
to generate an output representation.
 MVC is often seen in web applications, where the view is
the HTML page.
Controller

 The Controller is the part of the application that


handles user interaction.
 Typically controllers read data from a view, control
user input, and send input data to the model.
 It handles the input, typically user actions and
may invoke changes on the model and view.
Web application architecture using the MVC
pattern

Chapter 6 Architectural design 32


Workflow in MVC - Example

Though MVC comes in different flavours, the


control flow generally works as follows:
1. The user interacts with the user interface in
some way (e.g., user presses a button)
2. A controller handles the input event from the
user interface, often via a registered handler or
callback.
3. The controller accesses the model, possibly
updating it in a way appropriate to the user’s
action (e.g., controller updates user’s shopping
cart).
Workflow in MVC - Example

4. A view uses the model to generate an appropriate user


interface (e.g., view produces a screen listing the
shopping cart contents).
The view gets its own data from the model. The model
has no direct knowledge of the view.
Dependence hierarchy

 There is usually a kind of hierarchy in the MVC


pattern.

 The Model knows only about itself.

 That is, the source code of the Model has no


references to either the View or Controller.
 The View however, knows about the Model. It will poll the
Model about the state, to know what to display.
 That way, the View can display something that is based
on what the Model has done.
 But the View knows nothing about the Controller.
 The Controller knows about both the Model and the
View.
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.
 However, often artificial to structure systems in this way.

Chapter 6 Architectural design 37


The Layered architecture pattern

Name Layered architecture


Description 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 layers represent core services
that are likely to be used throughout the system. See Figure 6.6.
Example A layered model of a system for sharing copyright documents
held in different libraries, as shown in Figure 6.7.
When used Used when building new facilities on top of existing systems;
when the development is spread across several teams with
each team responsibility for a layer of functionality; when there
is a requirement for multi-level security.
Advantages Allows replacement of entire layers so long as the interface is
maintained. Redundant facilities (e.g., authentication) can be
provided in each layer to increase the dependability of the
system.
Disadvantages In practice, providing a clean separation between layers is often
difficult and a high-level layer may have to interact directly with
lower-level layers rather than through the layer immediately
below it. Performance can be a problem because of multiple
levels of interpretation of a service request as it is processed at
each layer.

Chapter 6 Architectural design 38


A generic layered architecture

Chapter 6 Architectural design 39


The architecture of the LIBSYS system

 Library system called LIBSYS, allows controlled


electronic access to copyright material from a group of
university libraries.
 This has a five-layer architecture, with the bottom layer
being the individual databases in each library.

Chapter 6 Architectural design 40


The architecture of the LIBSYS system

Chapter 6 Architectural design 41


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 large amounts of data are to be shared,
the repository model of sharing is most
commonly used a this is an efficient data sharing
mechanism.

Chapter 6 Architectural design 42


The Repository pattern

Name Repository
Description All data in a system is managed in a central repository that is
accessible to all system components. Components do not
interact directly, only through the repository.
Example Figure 6.9 is an example of an IDE where the components
use a repository of system design information. Each software
tool generates information which is then available for use by
other tools.
When used You should use this pattern when you have a system in which
large volumes of information are generated that has to be
stored 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.
Advantages Components can be independent—they do not need to know
of the existence of other components. Changes made by one
component can be propagated to all components. All data can
be managed consistently (e.g., backups done at the same
time) as it is all in one place.
Disadvantages The repository is a single point of failure so problems in the
repository affect the whole system. May be inefficiencies in
organizing all communication through the repository.
Distributing the repository across several computers may be
difficult.

Chapter 6 Architectural design 43


A repository architecture for an IDE

Chapter 6 Architectural design 44


Repository architecture

 The relational database management system is a


typical design domain for the repository
architecture.
 The data store of the repository maintains all types
of data including schema (metadata), data tables,
and index files for data tables. Many tools are
available to develop applications on the database
stored in the database management system.

Chapter 6 Architectural design 45


Repository architecture

 These include design,


development, maintenance,
and documentation tools.
Oracle Designer, Oracle
Developer (Form, Graphics,
and Reporter), Oracle SQL
and PL/SQL, Oracle
Financials, Oracle e-
Business, Oracle data
warehouse, and many other
software tools are available
for Oracle database system.

Chapter 6 Architectural design 46


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. Chapter 6 Architectural design 47
Client-server architecture

It is based on two communicating


processes, usually running on different
processors, and thus decomposes a
system into two major subsystems: client
and server. The first process, the client,
issues a request to the second process,
the server. The server process receives the
request (serving data from a database,
printing a document etc), carries it out, and
sends a reply to the client.
Chapter 6 Architectural design 48
Two-tier client-server

Chapter 6 Architectural design 49


The Client–server pattern

Name Client-server

Description In a client–server architecture, the functionality of the system is organized


into services, with each service delivered from a separate server. Clients
are users of these services and access servers to make use of them.

Example Figure 6.11 is an example of a film and video/DVD library organized as a


client–server system.
When used Used when data in a shared database has to be accessed from a range
of locations. Because servers can be replicated, may also be used when
the load on a system is variable.
Advantages The principal advantage of this model is that servers can be distributed
across a network. General functionality (e.g., a printing service) can be
available to all clients and does not 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 may be
unpredictable because it depends on the network as well as the
system. May be management problems if servers are owned by
different organizations.

Chapter 6 Architectural design 50


Transaction Processing Monitors

 Program that controls data transfer between clients


and servers in order to provide a consistent
environment, particularly for Online Transaction
Processing (OLTP).

Pearson Education © 2015 51


TPM as middle tier of 3-tier client-
server

Pearson Education © 2015 52


Client-server

 Client side presented two problems preventing true


scalability:
 ‘Fat’ client, requiring considerable resources on
client’s computer to run effectively.
 Significant client side administration overhead.
 Advantages of three-tier:
 ‘Thin’ client, requiring less expensive hardware.
 Application maintenance centralized.
 Easier to modify or replace one tier without affecting
others.
 Separating business logic from database functions
makes it easier to implement load balancing.
Chapter 6 Architectural design 53
Three-tier client-server

Chapter 6 Architectural design 54


A client–server architecture for a film library

Chapter 6 Architectural design 55


A client–server architecture for a film library

 This is a multi-user, web-based system for providing a film


and photograph library. Several servers manage and
display the different types of media.
 Video frames need to be transmitted quickly and in
synchrony but at relatively low resolution. They may be
compressed in a store, so the video server can handle
video compression and decompression in different formats.
 Still pictures must be maintained at a high resolution, so it
is appropriate to maintain them on a separate server.

Chapter 6 Architectural design 56


A client–server architecture for a film library

 The catalog must be able to deal with a variety


of queries and provide links into the web
information system that includes data about the
film and video clips, and
 An e-commerce system that supports the sale of
photographs, film, and video clips.
 The client program is simply an integrated user
interface, constructed using a web browser, to
access these services.

Chapter 6 Architectural design 57


Pipe and filter architecture

 Functional transformations process their inputs to


produce outputs.
 Analogy: a pipeline consists of a chain of processing
elements (processes, threads, functions, etc.), arranged
so that the output of each element is the input of the
next; the name is by analogy to a physical pipeline.
 May be referred to as a pipe and filter model (as in UNIX
shell).
 Variants of this approach are very common. When
transformations are sequential, this is a batch sequential
model which is extensively used in data processing
systems. Not really suitable for interactive systems.

Chapter 6 Architectural design 58


An example of the pipe and filter architecture

Chapter 6 Architectural design 59


Pipe-n-filter Architecture: UNIX example

The pipe operator “I” moves the stdout from its predecessor
to the stdin of its successor. The successor can start data
transformation over the data stream before the predecessor
completes its transformation or processing. For example, the
pipeline of Unix commands reports the number of users who
are currently logged onto the system.
who | wc -1
The who command sends the current users to its output
stream; the wc command takes its input stream from the
pipe and counts the number of lines (i.e., the number of the
current users). The wc command starts its counting before
the who command completes its output.

Chapter 6 Architectural design 60


Pipe-n-filter Architecture: UNIX example

The following example, illustrated in Figure 5.8, shows two


Unix processes, one running in the background and the other
running in the foreground. Both of these processes have their
data pipe streams, one is a Unix implicit pipeline and other
consists of pipeA and pipeB. The cat command sends the
contents of the infile to the pipe, and the tee command sends
the same data to two pipelines. The background process with
named pipeline searches for 'a' and the foreground one
searches for 'c'; the two processes are joined together at the
second cat command with ”-“ (current process) and pipeB;
the last filter reports the counts of each character matched

Chapter 6 Architectural design 61


Pipe-n-filter Architecture: UNIX example

 Unix also supports named pipes to connect the filters. A


named pipe may be placed between two processes as a
Unix stream pipe.

Chapter 6 Architectural design 62


Pipe-n-filter : UNIX example

 The filter used above can be replaced by any other Unix


command or application program as long as they take
input from stdin and outputs data to stdout. Here is
such a situation:

Chapter 6 Architectural design 63


The pipe and filter pattern

Name Pipe and filter

Description 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.

Example Figure 6.13 is an example of a pipe and filter system used for processing
invoices.
When used Commonly used in data processing applications (both batch- and transaction-
based) where inputs are processed in separate stages to generate related
outputs.
Advantages Easy to understand and supports transformation reuse. Workflow style
matches the structure of many business processes. Evolution by adding
transformations 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 unparse its
output to the agreed form. This increases system overhead and may mean that
it is impossible to reuse functional transformations that use incompatible data
structures.

Chapter 6 Architectural design 64


Application architectures

 Application systems are designed to meet an


organizational need.
 As businesses have much in common, their
application systems also tend to have a common
architecture that reflects the application
requirements.
 A generic application architecture is an
architecture for a type of software system that may
be configured and adapted to create a system that
meets specific requirements.
Chapter 6 Architectural design 65
Use of application architectures

 As a starting point for architectural design.


 As a design checklist.
 As a way of organising the work of the
development team.
 As a means of assessing components for reuse.
 As a vocabulary for talking about application
types.

Chapter 6 Architectural design 66


Examples of application types

 Data processing applications


 Data driven applications that process data in batches
without explicit user intervention during the processing.
 Transaction processing applications
 Data-centred applications that process user requests
and update information in a system database.
 Event processing systems
 Applications where system actions depend on
interpreting events from the system’s environment.
 Language processing systems
 Applications where the users’ intentions are specified in
a formal language that is processed and interpreted by
the system.
Chapter 6 Architectural design 67
Application type examples

 Focus here is on transaction processing and


language processing systems.
 Transaction processing systems
 E-commerce systems;
 Reservation systems.
 Language processing systems
 Compilers;
 Command interpreters.

Chapter 6 Architectural design 68


Transaction processing systems

 Process user requests for information from a


database or requests to update the database.
 From a user perspective a transaction is:
 Any coherent sequence of operations that satisfies a
goal;
 For example - find the times of flights from London to
Paris.
 Users make asynchronous requests for service
which are then processed by a transaction
manager.

Chapter 6 Architectural design 69


The structure of transaction processing
applications

Chapter 6 Architectural design 70


TPS view

 Transaction processing systems are usually interactive


systems in which users make asynchronous requests for
service. First a user makes a request to the system
through an I/O processing component. The request is
processed by some application specific logic. A
transaction is created and passed to a transaction
manager, which is usually embedded in the database
management system. After the transaction manager has
ensured that the transaction is properly completed, it
signals to the application that processing has finished.

Chapter 6 Architectural design 71


TPS view

 Transaction processing systems may be organized


as a ‘pipe and filter’ architecture with system
components responsible for input, processing, and
output. For example, consider a banking system
that allows customers to query their accounts and
withdraw cash from an ATM. The system is
composed of two cooperating software
components — the ATM software and the account
processing software in the bank’s database server.
The input and output components are implemented
as software in the ATM and the processing
component is part of the bank’s database server. 72
Chapter 6 Architectural design
The software architecture of an ATM system

Chapter 6 Architectural design 73


Information systems architecture

 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:
 The user interface
 User communications
 Information retrieval
 System database

Chapter 6 Architectural design 74


Layered information system architecture

Chapter 6 Architectural design 75


The architecture of the MHC-PMS

Chapter 6 Architectural design 76


The layered architecture of the MHC-PMS

 Data validation means checking that the data is


appropriate before passing it to the next layers and
before storing in the DB, e.g. alphabets in a field that
only allows numeric data.

Chapter 6 Architectural design 77


Web-based information systems

 Information and resource management systems are now


usually web-based systems where the user interfaces are
implemented using a web browser.
 For example, e-commerce systems are Internet-based resource
management systems that accept electronic orders for goods or
services and then arrange delivery of these goods or services
to the customer.
 In an e-commerce system, the application-specific layer
includes additional functionality supporting a ‘shopping cart’ in
which users can place a number of items in separate
transactions, then pay for them all together in a single
transaction.

Chapter 6 Architectural design 78


Web-based information systems

Web-Client Database
Web-Server Server
HTML-Form
(+JavaScript) Submit Call PHP DBMS
Data interpreter LAN

PHP SQL
Web-Browser WWW Script commands
Response Response Database
Reply Output

79
5B. Language processing systems

Accept a natural or artificial language as


input and generate some other
representation of that language.
May include an interpreter to act on the
instructions in the language that is being
processed.

Chapter 6 Architectural design 80


The architecture of a language processing
system

Chapter 6 Architectural design 81


Compiler components

 A lexical analyzer, which takes input language tokens and


converts them to an internal form.
 A symbol table, which holds information about the names
of entities (variables, class names, object names, etc.)
used in the text that is being translated.
 A syntax analyzer, which checks the syntax of the
language being translated.
 A syntax tree, which is an internal structure representing
the program being compiled.

Chapter 6 Architectural design 82


Compiler components

 A semantic analyzer that uses information from the


syntax tree and the symbol table to check the semantic
correctness of the input language text.
 A code generator that ‘walks’ the syntax tree and
generates abstract machine code.

Chapter 6 Architectural design 83


A pipe and filter compiler architecture

Chapter 6 Architectural design 84


A repository compiler architecture

Chapter 6 Architectural design 85


Key points

 A software architecture is a description of how a software


system is organized.
 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.
 Models of application systems architectures help us
understand and compare applications, validate application
system designs and assess large-scale components for
reuse.

Chapter 6 Architectural design 86


Assignment 4b

 6.2. You have been asked to prepare and deliver a


presentation to a non-technical manager to justify the
hiring of a system architect for a new project. Write a list
of bullet points setting out the key points in your
presentation. Naturally, you have to explain what is
meant by system architecture.

Chapter 6 Architectural design 87


Assignment 4c, 4d

 6.6. Suggest an architecture for a system (such as


iTunes) that is used to sell and distribute music on the
Internet. What architectural patterns are the basis for
this architecture?
 6.8. Using the generic model of a language processing
system presented here, design the architecture of a
system that accepts natural language commands and
translates these into database queries in a language
such as SQL.

Chapter 6 Architectural design 88

You might also like