Systems Analysis and Design II - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

Systems Analysis and Design II

Description:

Self-healing. Detect malfunction and recover from it. Self-configuration ... shared data: symbol table, abstract syntax tree (see Garlan and Shaw case study) ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 39
Provided by: marinl
Category:

less

Transcript and Presenter's Notes

Title: Systems Analysis and Design II


1
Systems Analysis and Design II
  • Design Goals, Software Architecture

2
Design Topics
  • Introduction to Design
  • Design Criteria
  • gtgtDesign Goals
  • gtgtArchitecture Styles
  • Physical Architecture
  • Reuse and Design Patterns
  • From Design to Implementation

3
Design Goals
  • Cost
  • Development
  • Ease of learning
  • Ease of remembering
  • Upgrade
  • Maintenance
  • Administration
  • End user
  • Ease of use
  • Increased productivity
  • Flexibility
  • Dependability
  • Reliability
  • Security
  • Robustness
  • Fault tolerance
  • Availability
  • Safety
  • Maintenance
  • Maintainability
  • Modifiability
  • Understandability
  • Adaptability
  • Reusability
  • Portability
  • Traceability of requirements
  • Backward-compatibility
  • Good documentation
  • Readability
  • Performance

4
Relationship Between Design Goals
End User
Functionality User-friendliness Ease of Use Ease
of learning Fault tolerant Robustness
Low cost Increased Productivity Backward-Compatib
ility Traceability of requirements Rapid
development Flexibility
Performance
Reliability
Portability Good Documentation
Client
(Customer,
Sponsor)
Minimum of errors Modifiability,
Readability Reusability, Adaptability Well-defined
interfaces
5
Autonomic Computing Goals
  • Self-optimization
  • Minimize the use of resources (CPU,memeory..)
  • Self-protection
  • Detect viruses, attacks, protect against them
  • Self-healing
  • Detect malfunction and recover from it
  • Self-configuration
  • Reconfigure at runtime to adapt to new situations
  • Automatic upgrades, fixes

6
Typical Design Trade-offs
  • Functionality vs. Usability
  • Cost vs. Robustness
  • Efficiency vs. Portability
  • Rapid development vs. Functionality
  • Cost vs. Reusability
  • Backward Compatibility vs. Readability

7
Design Topics
  • Introduction to Design
  • Design Criteria
  • Design Goals
  • gtgtArchitecture Styles
  • Physical Architecture
  • Reuse and Design Patterns
  • From Design to Implementation

8
What Is Software Architecture?
  • Captures the gross structure of a system
  • How it is composed of interacting parts
  • How the interactions take place
  • Key properties of the parts
  • Provides a way of analysing systems at a high
    level of abstraction
  • Illuminates top-level design decisions

9
Definition by Shaw and Garlan
  • Abstractly, software architecture involves the
    description of elements from which systems are
    built, interactions among those elements,
    patterns that guide their composition, and
    constraints on these patterns. In general, a
    particular system is defined in terms of a
    collection of components and interactions among
    these components. Such a system may in turn be
    used as a (composite) element in a larger system
    design. GarlanShaw

10
Issues Addressed by an Architectural Design
  • Gross decomposition of a system into interacting
    components
  • Typically hierarchical
  • Using rich abstractions for glue
  • Emergent system properties
  • Performance, throughput, latencies
  • Reliability, security, fault tolerance,
    evolvability
  • Rationale
  • Relates requirements and implementations

11
Architectural Styles
  • The architecture of a system includes
  • Components define the locus of computation
  • Examples web servers, databases, objects, app
    server
  • Connectors define the interactions between
    components
  • Examples procedure call, pipes, events
  • An architectural style defines a family of
    architectures constrained by
  • Component/connector vocabulary, e.g.,
  • layers and calls between them
  • Topology, e.g.,
  • stack of layers
  • Semantic constraints, e.g.,
  • a layer may only talk to its adjacent layers

12
Catalogues of Architectural Styles and Patterns
  • Architectural Styles
  • GarlanShaw M. Shaw and D. Garlan. Software
    Architecture Perspectives on a Emerging
    Discipline. Prentice Hall, Englewood Cliffs, NJ,
    1996
  • Architectural Patterns
  • POSA F. Buschmann, R. Meunier, H. Rohnert, P.
    Sommerlad, and M. Stal. Pattern-Oriented Software
    Architecture. A System of Patterns. John Wiley
    Sons Ltd., Chichester, UK, 1996

13
Architectural Styles
  • Repositories
  • Model/View/Controller
  • Layered Architectures
  • Tiered Architectures
  • Heterogeneous Architectures

14
Repositories / Data Centred
  • Characterised by a central data store component
    representing systems state and a collection of
    independent components that operate on the data
    store.
  • Connections between data store and external
    components vary considerably in this style
  • Transactional databases Incoming stream of
    transactions trigger processes to act on data
    store. Passive.
  • Examples compiler, bank and payroll
    applications, software development tools
  • Blackboard architecture Current state of data
    store triggers processes. Active.

15
Blackboard
  • Characteristics cooperating partial solution
    solvers collaborating but not following a
    pre-defined strategy.
  • Current state of the solution stored in the
    blackboard.
  • Processing triggered by the state of the
    blackboard.

Knowledge Source 1
Knowledge Source 6
Knowledge Source 2
Blackboard (shared data)
Knowledge Source 5
Knowledge Source 3
Knowledge Source 4
16
Examples of Blackboard Architectures
  • Problems for which no deterministic solution
    strategy is known, but many different approaches
    (often alternative ones) exist and are used to
    build a partial or approximate solution.
  • AI vision, speech and pattern recognition
  • Modern compilers act on shared data symbol
    table, abstract syntax tree (see Garlan and Shaw
    case study)

17
Model-View-Controller
  • A decomposition of an interactive system into
    three components
  • A model containing the core functionality and
    data,
  • One or more views displaying information to the
    user, and
  • One or more controllers that handle user input.
  • A change-propagation mechanism (i.e., observer)
    ensures consistency between user interface and
    model, e.g.,
  • If the user changes the model through the
    controller of one view, the other views will be
    updated automatically
  • Sometimes the need for the controller to operate
    in the context of a given view may mandate
    combining the view and the controller into one
    component
  • The division into the MVC components improves
    maintainability

18
Model-View-Controller
view1
view2
view3
controller1
controller2
model
19
Model/View/Controller
  • Subsystems are classified into 3 different types
  • Model subsystem Responsible for application
    domain knowledge
  • View subsystem Responsible for displaying
    application domain objects to the user
  • Controller subsystem Responsible for sequence
    of interactions with the user and notifying views
    of changes in the model.
  • MVC is a special case of a repository
    architecture
  • Model subsystem implements the central
    datastructure, the Controller subsystem
    explicitly dictate the control flow

20
Example of a File System Based on the MVC
Architectural Style
21
Example Collaborations
22
Layered Systems
  • A layered system is organised hierarchically,
    each layer providing service to the layer above
    it and serving as a client to the layer below.
    (Garlan and Shaw)
  • Each layer collects services at a particular
    level of abstraction.
  • In a pure layered system Layers are hidden to
    all except adjacent layers.

23
Closed Architecture (Opaque Layering)
  • Any layer can only invoke operations from the
    immediate layer below
  • Design goal High maintainability, flexibility

24
Open Architecture (Transparent Layering)
  • Any layer can invoke operations from any layers
    below
  • Design goal Runtime efficiency

VM1
VM2
VM3
VM4
25
Layered System Examples
  • Example 1 ISO defined the OSI 7-layer
    architectural model with layers Application,
    Presentation, , Data, Physical.
  • Protocol specifies behaviour at each level of
    abstraction (layer).
  • Each layer deals with specific level of
    communication and uses services of the next lower
    level.
  • Example 2 TCP/IP is the basic communications
    protocol used on the internet. The same layers in
    a network communicate virtually.
  • Example 3 Operating systems e.g. hardware layer,
    , kernel, resource management, user level
    Onion Skin model.
  • ...

26
Layered Systems
  • Strengths
  • Increasing levels of abstraction as we move up
    through layers partitions complex problems
  • Maintenance - in theory, a layer only interacts
    with layers above and below. Change has minimum
    effect.
  • Reuse - different implementations of the same
    level can be interchanged
  • Standardisation based on layers e.g. OSI
  • Weaknesses
  • Not all systems are easily structured in layers
    (e.g., mobile robotics)
  • Performance - communicating down through layers
    and back up, hence bypassing may occur for
    efficiency reasons

27
Tiered Architectures
  • Special kind of layered architecture for
    enterprise applications
  • Evolution
  • Two Tier
  • Three Tier
  • Multi Tier

28
2 Tier Client/Server Architectural Style
  • One or many servers provides services to
    instances of subsystems, called clients.
  • Client calls on the server, which performs some
    service and returns the result
  • Client knows the interface of the server (its
    service)
  • Server does not need to know the interface of the
    client
  • Response in general immediately
  • Users interact only with the client

29
Client/Server Architectural Style
  • Often used in database systems
  • Front-end User application (client)
  • Back end Database access and manipulation
    (server)
  • Functions performed by client
  • Customized user interface
  • Front-end processing of data
  • Initiation of server remote procedure calls
  • Access to database server across the network
  • Functions performed by the database server
  • Centralized data management
  • Data integrity and database consistency
  • Database security
  • Concurrent operations (multiple user access)
  • Centralized processing (for example archiving)

30
Design Goals for Client/Server Systems
  • Service Portability
  • Server can be installed on a variety of machines
    and operating systems and functions in a variety
    of networking environments
  • Transparency, Location-Transparency
  • The server might itself be distributed (why?),
    but should provide a single "logical" service to
    the user
  • Performance
  • Client should be customized for interactive
    display-intensive tasks
  • Server should provide CPU-intensive operations
  • Scalability
  • Server should have spare capacity to handle
    larger number of clients
  • Flexibility
  • The system should be usable for a variety of user
    interfaces and end devices (eg. wearable
    computer, desktop, cell, PDA)
  • Reliability
  • System should survive node or communication link
    problems

31
Problems with Client/Server Architectural Styles
  • Layered systems do not provide peer-to-peer
    communication
  • Peer-to-peer communication is often needed
  • Example Database receives queries from
    application but also sends notifications to
    application when data have changed

32
Peer-to-Peer Architectural Style
  • Generalization of Client/Server Architecture
  • Clients can be servers and servers can be clients
  • More difficult because of possibility of deadlocks

33
Three Tier Client Server Architecture Design
  • Emerged in the 1990s to overcome the limitations
    of the two tier architecture by adding an
    additional middle tier.
  • This middle tier provides process management
    where business logic and rules are executed and
    can accommodate hundreds of users by providing
    generic services such as queuing, application
    execution, and database staging.
  • An effective distributed client/server design
    that provides increased performance, flexibility,
    maintainability, reusability, and scalability,
    while hiding the complexity of distributed
    processing from the user.

34
Three Tier Client Server Architecture Design
User System Interface
Processing Management
Database Management
35
Service Oriented Architecture (SOA)
36
Heterogeneous Architectures
  • In practice the architecture of large-scale
    system is a combination of architectural styles
  • (Hierarchical heterogeneous) A Component in one
    style may have an internal style developed in a
    completely different style (e.g, pipe component
    developed in OO style, implicit invocation module
    with a layered internal structure, etc.)
  • (Locational heterogeneous) Overall architecture
    at same level is a combination of different
    styles (e.g., repository (database) and
    mainprogram-subroutine, etc.)Here individual
    components may connect using a mixture of
    architectural connectors - message invocation and
    implicit invocation.
  • (Perspective heterogeneous) Different
    architecture in different perspectives (e.g.,
    structure of the logical view, structure of the
    physical view, etc.)

37
Example of Heterogeneous Architectures
Enterprise Architectures
  • Multi tier (at the highest level), distributed,
    transactional databases, event-based
    communication, object-oriented, MVC (e.g., for
    presentation in the client), pipe for workflow,
    etc.

38
Summary
  • Design Goals
  • Can be grouped in
  • Reliability, Performance, End User,
    Maintainability, Cost
  • Architecture
  • Components
  • Connectors
  • Constraints and properties
  • Architecture Styles
  • Repositories
  • Model/View/Controller
  • Layered Architectures
  • Tiered Architectures
  • Heterogeneous Architectures
Write a Comment
User Comments (0)
About PowerShow.com