Seg 3100: Software Development for Large-Scale Systems

Seg 3100: Software Development for Large-Scale Systems

<p>SEG 3100: SOFTWARE DEVELOPMENT FOR LARGE-SCALE SYSTEMS (MI) Lecture C3: Architectural Design Patterns</p><p>Note: For diagrams, refer to class notes</p><p>Main Categories:</p><p> a. Subsystem and Component Patterns b. Concurrency Patterns c. Memory Patterns d. Resource Patterns e. Distribution Patterns f. Reliability Patterns</p><p>Selected Patterns for Large Scale Software Systems:</p><p>A. Subsystem and Component Patterns</p><p> a. Layered Patterns</p><p>Layers pattern helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction.</p><p> o Model View Controller (Interactive Systems) The Model-View-Controller pattern (MVC) divides an interactive application into three components. The model contains the core functionality and data. Views display information to the user. Controllers handle user input. Views and controllers together comprise the user interface. A change-propagation mechanism ensures consistency between the user interface and the model. o Presentation-Abstraction-Control (Interactive Systems) Allows multiple types of GUIs to be built from a single abstraction o Five Layer Architectural Pattern List of packages - Application Layer Package a. Manage users and their profiles b. Build user workspace c. Network Control d. OS Functions e. HW Functions f. Administrative functions g. Warnings and messages</p><p>- User Interface Package a. Workspace elements: Scroll bar, windows, progress bar, etc b. Workspace presentation c. Presentation and windows d. Login/Logoff e. User Interaction</p><p>- Communication Package a. Data Link Management (Circuits and protocols) b. Name Server access c. Data transport E.g. Use of CORBA model (Broker, Proxy patterns) d. Data conversion</p><p>- Abstract OS Package a. Information Hiding b. Virtual API (use Façade pattern) c. Manage memory d. Manage Tasks and threads</p><p>- Abstract HW Package a. API for virtual devices (sensors, actuators) b. Device drivers c. Bus interfaces d. Virtual processors</p><p>Can be used in the design and virtual implementation of complex real time systems, e.g. A7 Aircraft.</p><p> b. Micro-Kernel Architecture (Adaptable Systems)</p><p>The Microkernel pattern applies to software systems that must be able to adapt to changing system requirements. It separates a minimal functional core from extended functionality and customer- specific parts. The microkernel also serves as a socket for plugging in these extensions and coordinating their collaboration. </p><p>Examples and diagrams: See class room discussions c. ROOM Pattern (RealTime Object Oriented Methodology  RRRT)</p><p>Motivation behind RRRT. Developed by Bernie Selic at Nortel.</p><p>Classes in ROOM Pattern:</p><p>- Capsule - Ports - Protocols</p><p>Main features: - Each class’s behaviour can be described by a state-chart - State charts can be nested  Harel statecharts - Capsules can regarded as nested classes with structure and behaviour. - Capsules interact with other capsules using the ports - Bidirectional Interface classes are called ports. End port, relay port, conjugate port, internal port - - Protocol classes describe the message interaction rules Binary, conjugate - Ports associated with protocols - By splitting ports from the protocols, it is possible to establish circuits whose behaviour can be dynamically changed  powerful feature -</p><p>Disadvantage: Too heavy weight. Useful in medium to large scale modeling.</p><p>B. Concurrency Patterns</p><p> a. Interrupt Pattern - Scan for interrupts - Identify interrupt - Prioritize interrupt - Save state (Registers and Variables, Program Counter) - Obtain variables for the interrupt - Identify Interrupt Service Routine - Produce result - Restore the situation that was there prior to the arrival of the interrupt (Load the old registers, variables and the PC) - Start from the point you left off.</p><p> b. Pipe and Filter</p><p>The Pipes and Filters pattern provides a structure for systems that process a stream of data. Each processing step is encapsulated in a filter component. Data is passed through pipes between adjacent filters. Recombining filters allows you to build families of related systems. </p><p> c. Blackboard Pattern The Blackboard pattern is useful for problems for which no deterministic solution strategies are known. In Blackboard several specialized subsystems assemble their knowledge to build a possibly partial or approximate solution. </p><p>C. Memory Patterns [Ref 2]</p><p> a. Memory Allocation b. Garbage Collection c. Smart Pointer</p><p>D. Resource Patterns [Ref 2]</p><p> a. Critical Section b. Priority Inheritance c. Ordered Locking</p><p>E. Distribution Patterns [Ref 2]</p><p> a. Broker Pattern: The Broker pattern can be used to structure distributed software systems with decoupled components that interact by remote service invocations. A broker component is responsible for coordinating communication, such as forwarding requests, as well as for transmitting results and exceptions.</p><p> b. Observer Pattern c. Proxy Pattern d. Remote Procedure Call</p><p>References: 1. www.rationalrose.com/models/architectural_patterns.zip 2. Real Time Design Patterns: Bruce Douglass, Addison Wesley, 2003</p>

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    5 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us