12 - System Architecture
12 - System Architecture
3
Design Phase
Creativity
• System and program design are a particular part of creativity in the
software development, as user interfaces
5
System architecture
System architecture is the overall design of a system:
• Computers and networks (e.g., LAN, Internet, cloud services)
• Interfaces and protocols (e.g., HTTP, IMAP, ODBC)
• Databases (e.g., relational, distributed)
• Security
• Operations (e.g., backup, archiving, audit trails)
6
Models for System Architecture
8
Example: Low cohesion (blue), High coupling (red)
9
Example: High cohesion (blue), Low coupling (red)
BETTER!
10
Component
11
Components as Replaceable Elements
12
Components and Classes
13
Kinds of Components
14
Package
15
Node
16
Example: Simple Web System
17
Deployment Diagram
• One of the two kinds of diagrams used in modeling the physical aspects
of an object-oriented system
• Show the configuration of run time processing nodes and the
components that live on them
• We use deployment diagrams to model the static deployment view of a
system
• A deployment diagram commonly contains
• Nodes
• Dependency and association relationships
18
Deployment Diagram (2)
19
Deployment Diagram (3) – Common Uses
20
Model embedded system
21
Model client/server system
• Identify the nodes that represent your system’s client and server
processors
• Highlight those devices that are relevant to the behavior of the system
• Model the topology of these nodes in a deployment diagram
22
Model a fully distributed system
23
Component Diagram
• Component diagrams are one
of the two kinds of diagrams
for modeling the physical
aspects of object-oriented
software system
• Show the organization and
dependencies among a set of
components
• We use component diagrams
to model the static
implementation view of a
software system
24
Component diagram - content
Component diagram commonly contains:
• Components
• Interfaces
• Dependency, generalization, association and realization relationships
25
Component Diagram: Interfaces
An interface is a collection of
operations that are used to
specify a service of a class or a
component
• Relationship between a
component and its interface
can be in two ways
• Iconic form of realization
• Expanded form (reveal
operations) of realization
• The component that accesses
the services of the other
component through the
interfaces using dependency
26
Application Programming Interface (API)
27
Component diagaram to Model an API
28
Component Diagram to Model Source Code
29
Component Diagram to Model an executable release
30
Component Diagram to Model Tables, Files, Documents
31
Component Diagram to Model a physical database
32
Architectural Styles
33
Architecture Style: Pipe
34
Architectural Style: Client/Server
35
Architectural Style: Repository
36
Architectural Style: Repository with Storage Access Layer
37
Exercise (Old Exam Question)
38
Solution for Phase 1
39
Solution for Phase 1
40
Solution for Phase 2
41
Solution for Phase 2
42
12. System Architecture
(end of lecture)
43