Home | | Software Architectures | Call Return Styles

Chapter: Software Architectures : Architectural styles

Call Return Styles

Main program and subroutines: Style Analysis

Call Return Styles

 

Traditional, language-influenced styles

 

•Main program and subroutines (Herarchical)

•Object-oriented

 

Layered

 

•Virtual machines

•Client-server

 

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

 •Connectors: remote procedure call, network protocols

•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


Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
Software Architectures : Architectural styles : Call Return Styles |


Privacy Policy, Terms and Conditions, DMCA Policy and Compliant

Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.