High Level Design

CSC 480
Software Engineering
High Level Design
Topics
Architectural Design
 Overview of Distributed Architectures
 User Interface Design Guidelines

Software Architecture


The design process for identifying the subsystems 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
Software Architecture

The set of significant decisions about the
organizations of a software system




Elements and their interfaces
Their behaviors and collaborations
Composition of these structural and behavioral
elements into progressively larger subsystems
Also concerns about


Performance, reliability, reuse, and trade-offs
Aesthetic concerns
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


System analysis


Architecture may be used as a focus of discussion
by system stakeholders
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
Sub-Systems and Modules


A sub-system is a system in its own right whose
operation is independent of the services
provided by other sub-systems.
A module is a system component that provides
services to other components but would not
normally be considered as a separate system
Architectural Models


Different architectural models may be produced
during the design process
Each model presents different perspectives on
the architecture




Static structural model that shows the major system
components
Dynamic process model that shows the process
structure of the system
Interface model that defines sub-system interfaces
Relationships model such as a data-flow model
Application Layers
Presentation layer
Application processing
layer
Data management
layer
Three-tier Architectures



In a three-tier architecture, each of the
application architecture layers may execute on a
separate processor
Allows for better performance than a thin-client
approach and is simpler to manage than a fatclient approach
A more scalable architecture - as demands
increase, extra servers can be added
Client-Server Architecture




Distributed system model which shows how
data and processing is distributed across a
range of components
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
Servers and Active Objects

Servers.


The object is implemented as a parallel process
(server) with entry points corresponding to object
operations. If no calls are made to it, the object
suspends itself and waits for further requests for
service
Active objects

Objects are implemented as parallel processes and
the internal object state may be changed by the
object itself and
not simply by external calls
A 3-Tier System Architecture
Presentation
Client
Server
Server
Application
processing
Data
management
An Internet Banking System
Client
HTTP interaction
Datab ase server
Web server
Client
SQL query
Account
HTMLservice
file
provision
transfer
SQL
Client
Application Server
Client
Account service
provision
Customer
account
database
Use of C/S Architectures
Architecture
Two-tier C/S
architecture with
thin clients
Two-tier C/S
architecture with fat
clients
Three-tier or multitier architecture
Applications
Legacy system applications where separating application processing and
data management is impractical
Computationally-intensive applications such as compilers with little or no
data management
Data-intensive applications (browsing and querying) with little or no
application processing.
Applications where application processing is provided by COTS (e.g.
Microsoft Excel) on the client
Applications where computationally-intensive processing of data (e.g. data
visualisation) is required.
Applications with relatively stable end-user functionality used in an
environment with well-established system management
Large scale applications with hundreds or thousands of clients
Applications where both the data and the application are volatile.
Applications where data from multiple sources are integrated
The User Interface



System users often judge a system by its
interface rather than its functionality
A poorly designed interface can cause a user to
make catastrophic errors
Poor user interface design is the reason why so
many software systems are never used
Graphical User Interfaces

Most users of business systems interact with
these systems through graphical interfaces
although, in some cases, legacy text-based
interfaces are still used
GUI Characteristics
Characteris tic
Windows
Icons
Menus
Pointing
Graphics
Des cription
Multiple windows allow different information to be
displayed s imultaneous ly on the us er’s s creen.
Icons different types of information. On s ome sys tems ,
icons repres ent files; on others , icons
repres ent
process es .
Commands are selected from a menu rather than typed
in a command language.
A pointing device s uch as a mous e is us ed for s electing
choices from a menu or indicating items of interest in a
window.
Graphical elements can be mixed with text on the same
display.
GUI Advantages

They are easy to learn and use.
 Users
without experience can learn to use the system
quickly.

The user may switch quickly from one task to
another and can interact with several different
applications.
 Information
remains visible in its own window when
attention is switched.

Fast, full-screen interaction is possible with
immediate access to anywhere on the screen
UI Design Guidelines



Five general factors
Rules for user interface design
Five user-computer interaction styles