Call Return
Styles
Traditional,
language-influenced styles
•Main
program and subroutines (Herarchical)
•Object-oriented
Layered
•Virtual
machines
Main
program and subroutines: Style Analysis
Summary:
•Decomposition
based upon separation of functional processing steps
•Design elements
•Components:
main program and subroutines
•Connectors:
function/procedure calls
•Data:
Values passed in/out subroutines
•Topology
•Static
organization is hierarchical
•Full
structure: a directed graph
Main
program and subroutines: Style Analysis
What
are common examples of its use?
•Small
programs, pedagogical uses
•What
are the advantages of using the style?
•Modularity:
subroutines can be replaced as long as interface semantics are unaffected
•What
are the disadvantages of using the
style?
•Usually
fails to scale
•Inadequate
attention to data structures
•Effort
to accommodate new requirements: unpredictable •Relation to programming languages/environments
•Traditional
programming languages: BASIC, Pascal, C…
Object-Oriented
Style: Style Analysis
Summary:
•State
strongly encapsulated. Internal representation is hidden from other objects
•Objects are responsible for their internal representation integrity
•Design elements
•Components:
objects (data and associated operations) •Connectors: method invocations
•Data:
arguments passed to methods
•Topology
•Can
vary arbitrarily: data and interfaces can be shared through inheritance
Advantages
and Disadvantages of object oriented Approach
What
are the advantages of using the style?
•Integrity:
data is manipulated only by appropriate methods •Abstraction: internals are
hidden
What
are the disadvantages of using the
style?
•Not
efficient enough for high performance computing (e.g., scientific computing,
data science)
•Distributed
applications require extensive middleware to provide access to remote objects
•In
absence of additional structural principles unrestricted OO can lead to highly
complex applications
Layered
Style Lunar Lander
Basic idea:
•Each layer exposes an interface (API) to be used by the layer above it
•Each layer
acts as a
−Server: service provider to layer “above”
−Client: service consumer of the layer “below”
•Taylor
et al call this style “virtual machines”
•I
do not like this name since these virtual machines are not related to
simulation or program execution as in “Java Virtual Machine”, Python, etc.
Layered
Style: Style Analysis
Summary:
•An
ordered sequence of layers, each layer offers services (interfaces) that can be
used by programs (components) residing with the layer(s) above it
•Design elements
•Components:
layers, each layer usually several programs •Connectors: typically procedure
calls
•Data:
parameters passed between layers
•Topology
•Linear
(strict layering), acyclic (non-strict layering)
Advantages
and Disadvantages
What
are the advantages of using the style?
•Clear
dependence structure benefits evolution
−Lower
layers are independent from the upper layers
−Upper
layers can evolve independently from the lower layers as long as the
interface
semantics is unchanged
−Strict layering: limits propagation of
change
•Reuse
−e.g.,
standardized layer interfaces for libraries/frameworks
•What
are the disadvantages of using the
style?
•Not
universally applicable
•Performance
(mostly for strict layering and many layers)
Client-Server
Style
Similar
to the layered style
•Differences
•Only
two layers
−Client(s)
−Server
•Network-based
connection
•Clients
•Thin
– no processing beyond UI
•Thick
– otherwise
Summary:
•Client
initiates communication by sending server a request.
•Server
performs the requested action and replies.
•Design elements
•Components:
client(s) and server
•Data:
parameters and return values
•Topology
•Two-level,
multiple clients making requests to server
•No
client-client communication Software
Advantages and
Disadvantages
What are the advantages of using the style?
•Data centralization, powerful server
serving many clients
•What are the disadvantages of using the style?
•Single point of failure
•Network bandwidth / amount of requests
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.