Chapter 6: Architectural Design

Architectural Design Activities

Definition

  • Architectural Design Activities refer to the main tasks involved in designing a software system’s architecture.

Causes

  • Not specified in notes

Goals / Objectives

  • Break down the system into organized parts
  • Define how components interact
  • Establish control mechanisms

Importance

  • Helps structure the system clearly
  • Supports communication and control planning

Procedures

  • 1. System Organization – Structuring the system into sub-systems
  • 2. Modular Decomposition – Breaking sub-systems into modules
  • 3. Control Modeling – Defining control relationships between modules

Advantages & Disadvantages

  • Advantages:
    • Clear framework for design
    • Supports reuse and complexity management
  • Disadvantages:
    • Not specified in notes

Impact / Effect

  • Leads to better system planning and communication
  • Enables reuse and easier maintenance

Examples

  • Not specified in notes

Key Takeaways

  • Architectural design includes system organization, modular decomposition, and control modeling
  • It helps define structure, communication, and control
  • It’s essential for building maintainable and scalable systems

Importance of Architectural Design

Definition

  • Architectural Design is the process of defining a structured framework for a software system.

Causes

  • Need for organized control and communication
  • Requirement to identify sub-systems

Goals / Objectives

  • Establish control and communication framework
  • Identify sub-systems within the system

Importance

  • Provides a high-level view of the system
  • Helps stakeholders understand the system
  • Ensures system meets requirements
  • Enables reuse and negotiation
  • Manages complexity

Procedures

  • Not applicable to this topic

Advantages & Disadvantages

  • Advantages:
    • High-level system presentation
    • Requirement validation
    • Reusable architecture
    • Design negotiation
    • Complexity management
  • Disadvantages:
    • Not specified in notes

Impact / Effect

  • Improves stakeholder communication
  • Supports system analysis and reuse
  • Facilitates design discussions
  • Helps manage complex systems

Examples

  • Not specified in notes

Key Takeaways

  • Architectural design is crucial for communication, reuse, and complexity management
  • It helps validate requirements and negotiate design decisions
  • It provides a reusable and understandable structure

System Organization / Structuring

Definition

  • System Organization is the process of structuring a system into sub-systems and defining their communication.

Causes

  • Need to manage complexity
  • Requirement to share data and distribute components

Goals / Objectives

  • Identify sub-systems
  • Define communication between sub-systems
  • Enable distribution and data sharing

Importance

  • Helps visualize system structure
  • Supports independent development of sub-systems
  • Enables reuse and scalability

Procedures

  • Represent system in block diagrams
  • Define sub-systems and their roles
  • Establish communication and interfaces
  • Choose an organization model:
    • Repository model
    • Client-server model
    • Layered model

Advantages & Disadvantages

  • Advantages:
    • Clear separation of concerns
    • Easier maintenance and scalability
  • Disadvantages:
    • Depends on model used (see below for model-specific pros/cons)

Impact / Effect

  • Affects how data is shared and processed
  • Influences system performance and flexibility

Examples

  • Packing Robot System with sub-systems like:
    • Vision system
    • Object Identification System
    • Arm Controller
    • Gripper Controller
    • Packing Selection System
    • Conveyer Controller

Key Takeaways

  • System organization defines sub-systems and their communication
  • It uses models like repository, client-server, and layered
  • Helps manage complexity and enables reuse

System Organization Models

Definition

  • These are common styles used to organize software systems.

Repository Model

Definition

  • A model where a central database is used to share data among sub-systems.

Causes

  • Need to share large amounts of data

Goals / Objectives

  • Centralize data management
  • Allow sub-systems to access shared data

Importance

  • Simplifies data access
  • Reduces duplication

Procedures

  • Use a central repository
  • Connect sub-systems to the repository

Advantages & Disadvantages

  • Advantages:
    • Centralized management
    • Sub-systems don’t need to know how data is produced
    • Efficient data sharing
  • Disadvantages:
    • Hard to distribute
    • Sub-systems must agree on a data model
    • Data evolution is expensive
    • No specific management policies

Impact / Effect

  • Enables integration but limits flexibility

Examples

  • Integrated CASE Toolset with:
    • Program Editor
    • Report Generator
    • Code Generator
    • Design Analyzer
    • Project Repository

Key Takeaways

  • Repository model uses a central database for sharing data
  • It’s good for large data but hard to distribute
  • Sub-systems must compromise on data models

Client-Server Model

Definition

  • A model where clients request services from servers over a network.

Causes

  • Need to distribute data and processing

Goals / Objectives

  • Separate data and processing
  • Allow multiple clients to access services

Importance

  • Supports distributed systems
  • Enables scalability and flexibility

Procedures

  • Set up servers for specific services
  • Connect clients to servers via a network

Advantages & Disadvantages

  • Advantages:
    • Easy data distribution
    • Effective networking
    • Cheaper hardware
    • Easy server upgrades
  • Disadvantages:
    • Different data models cause inefficient sharing
    • Redundant management
    • No central register of services

Impact / Effect

  • Enables distributed access but may cause data inconsistency

Examples

  • Film and Picture Library System with:
    • Catalogue Server
    • Video Server
    • Picture Server
    • Hypertext Server
    • Clients accessing via wide-bandwidth network

Key Takeaways

  • Client-server model separates services and clients
  • It’s scalable and flexible but may have data sharing issues
  • Useful for distributed systems

Layered Model

Definition

  • A model where the system is organized into layers, each providing services to the layer above.

Causes

  • Need for structured development and clear interfaces

Goals / Objectives

  • Support incremental development
  • Limit impact of changes to adjacent layers

Importance

  • Helps manage complexity
  • Supports modular development

Procedures

  • Organize system into layers:
    • Operating System Layer
    • Database System Layer
    • Object Management Layer
    • Configuration Management Layer

Advantages & Disadvantages

  • Advantages:
    • Clear interfaces
    • Supports incremental development
    • Changes affect only adjacent layers
  • Disadvantages:
    • Not specified in notes

Impact / Effect

  • Makes system easier to maintain and extend

Examples

  • Version Management System with 4 layers:
    • Configuration Management
    • Object Management
    • Database System
    • Operating System

Key Takeaways

  • Layered model organizes systems into stacked layers
  • It supports modularity and easier updates
  • Each layer provides services to the one above

Modular Decomposition

Definition

  • Modular Decomposition is the process of breaking down sub-systems into smaller, manageable modules.

Causes

  • Need to simplify complex systems
  • Requirement to organize components clearly

Goals / Objectives

  • Decompose sub-systems into modules
  • Group related components together
  • Improve maintainability and clarity

Importance

  • Makes systems easier to understand and manage
  • Supports reuse and modular development

Procedures

  • Identify sub-systems
  • Break each sub-system into modules
  • Apply decomposition strategies:
    • Object-Oriented Decomposition
    • Function-Oriented Decomposition

Advantages & Disadvantages

  • Advantages:
    • Easier to manage and maintain
    • Supports reuse and clarity
  • Disadvantages:
    • Not specified in notes

Impact / Effect

  • Leads to better system structure
  • Improves development and maintenance efficiency

Examples

  • Not specified in notes (see sub-strategies below for examples)

Key Takeaways

  • Modular decomposition breaks sub-systems into smaller modules
  • It uses object-oriented or function-oriented strategies
  • Helps manage complexity and improve clarity

Object-Oriented Decomposition

Definition

  • A strategy that organizes modules based on objects and their interactions.

Causes

  • Need to model real-world entities
  • Desire for encapsulation and reuse

Goals / Objectives

  • Group related data and operations into objects
  • Model system behavior using object interactions

Importance

  • Reflects real-world structure
  • Supports encapsulation and reuse

Procedures

  • Define objects with attributes and operations
  • Connect objects based on relationships
  • Example structure:
    • Client, Receipt, Invoice, Payment
    • Attributes: CustomerNo, Name, Address, etc.
    • Operations: Issue(), sendReminder(), acceptPayment(), sendReceipt()

Advantages & Disadvantages

  • Advantages:
    • Natural mapping to real-world entities
    • Supports reuse and encapsulation
  • Disadvantages:
    • Not specified in notes

Impact / Effect

  • Improves system modularity and clarity
  • Makes maintenance and extension easier

Examples

  • Invoice Processing System with objects:
    • Client, Invoice, Payment, Receipt
    • Each object has attributes and operations

Key Takeaways

  • Object-oriented decomposition uses objects to organize modules
  • It reflects real-world entities and supports reuse
  • Common in systems like invoice processing

Function-Oriented Decomposition

Definition

  • A strategy that organizes modules based on system functions and processes.

Causes

  • Need to focus on operations and tasks
  • Desire to structure system by functionality

Goals / Objectives

  • Break system into functional components
  • Group related tasks into modules

Importance

  • Clarifies system operations
  • Supports task-based development

Procedures

  • Identify main functions
  • Create modules for each function
  • Example structure:
    • Issue receipts, Read invoices, Identify payments, Issue reminders
    • Modules: Receipts, Invoices, Payments, Reminders

Advantages & Disadvantages

  • Advantages:
    • Clear functional breakdown
    • Easy to understand system flow
  • Disadvantages:
    • Not specified in notes

Impact / Effect

  • Helps organize system by tasks
  • Improves clarity and functional focus

Examples

  • Invoice Processing System with modules:
    • Receipts, Invoices, Payments, Reminders
    • Functions: Issue receipts, Identify payments, etc.

Key Takeaways

  • Function-oriented decomposition organizes modules by tasks
  • It’s useful for systems focused on operations
  • Common in invoice and payment systems

Control Modeling

Definition

  • Control Modeling is the process of defining how sub-systems are controlled and how services are delivered at the right time and place.

Causes

  • Need to manage control flow between sub-systems
  • Requirement to deliver services correctly

Goals / Objectives

  • Establish control relationships between sub-systems
  • Ensure services are delivered efficiently
  • Define control styles for different system types

Importance

  • Helps coordinate sub-system operations
  • Ensures timely and correct service delivery
  • Supports system reliability and responsiveness

Procedures

  • Choose control style:
    • Centralized Control
      • Call-Return Model
      • Manager Model
    • Event-Based Control
      • Broadcast Model
      • Interrupt-Driven Model

Advantages & Disadvantages

  • Advantages:
    • Enables structured control flow
    • Supports both sequential and concurrent systems
  • Disadvantages:
    • Depends on control style used (see below for model-specific pros/cons)

Impact / Effect

  • Affects system responsiveness and coordination
  • Determines how sub-systems interact and respond

Examples

  • Not specified in notes (see sub-models below for examples)

Key Takeaways

  • Control modeling defines how sub-systems are managed
  • It uses centralized or event-based styles
  • Ensures services are delivered correctly and on time

Centralized Control

Definition

  • A control style where one sub-system has overall responsibility and starts/stops other sub-systems.

Causes

  • Need for structured control in sequential or concurrent systems

Goals / Objectives

  • Centralize control logic
  • Coordinate sub-system operations

Importance

  • Simplifies control flow
  • Ensures predictable behavior

Procedures

  • Use one main controller
  • Apply either:
    • Call-Return Model for sequential systems
    • Manager Model for concurrent systems

Advantages & Disadvantages

  • Advantages:
    • Clear control hierarchy
    • Suitable for predictable systems
  • Disadvantages:
    • May limit flexibility
    • Not ideal for distributed systems

Impact / Effect

  • Provides structured control
  • May reduce responsiveness in dynamic environments

Examples

  • Not specified in notes (see sub-models below)

Key Takeaways

  • Centralized control uses one main controller
  • It’s suitable for sequential or concurrent systems
  • Ensures structured and predictable control flow

Call-Return Model

Definition

  • A top-down subroutine model used in sequential systems.

Procedures

  • Main program calls routines in sequence
  • Example structure:
    • Main Program
      • Routine 1, Routine 2, Routine 3
      • Routine 1.1, Routine 1.2, etc.

Examples

  • Sequential systems with structured subroutine calls

Key Takeaways

  • Call-return model is used for sequential systems
  • It follows a top-down structure
  • Each routine is called in order by the main program

Manager Model

Definition

  • A model where one system component acts as a manager and controls other processes.

Procedures

  • Designate a system manager
  • Allow sub-systems to execute concurrently
  • Example components:
    • Sensor Processes, Computation Processes, System Controller, Actuator Processes, User Interface, Fault Handler

Examples

  • Concurrent systems with a central controller

Key Takeaways

  • Manager model is used for concurrent systems
  • One component manages all others
  • Processes can run at the same time

Event-Based Control

Definition

  • A control style where sub-systems respond to events from other systems or the environment.

Causes

  • Need for dynamic and responsive control
  • Requirement to handle external or internal events

Goals / Objectives

  • Enable sub-systems to react to events
  • Support distributed and real-time systems

Importance

  • Improves responsiveness
  • Supports integration across networks

Procedures

  • Use either:
    • Broadcast Model
    • Interrupt-Driven Model

Advantages & Disadvantages

  • Advantages:
    • Flexible and dynamic
    • Suitable for distributed systems
  • Disadvantages:
    • May be harder to manage and predict

Impact / Effect

  • Enables real-time responses
  • Supports integration across multiple systems

Examples

  • Not specified in notes (see sub-models below)

Key Takeaways

  • Event-based control responds to system or environmental events
  • It’s flexible and suitable for real-time systems
  • Uses broadcast or interrupt-driven models

Broadcast Model

Definition

  • A model where events are broadcast to all sub-systems, and those able to handle them respond.

Procedures

  • Broadcast event to all sub-systems
  • Sub-systems respond if capable
  • Example structure:
    • Event and Message Handler
    • Subsystems 1–4 respond to events E1–E4

Examples

  • Distributed systems across networks

Key Takeaways

  • Broadcast model sends events to all sub-systems
  • Only relevant sub-systems respond
  • Useful for integrating distributed systems

Interrupt-Driven Model

Definition

  • A model where sub-systems respond to interrupts, often used in real-time systems.

Procedures

  • Use an interrupt handler
  • Sub-systems respond when interrupted

Examples

  • Real-time systems requiring immediate response

Key Takeaways

  • Interrupt-driven model uses interrupts to trigger responses
  • It’s suitable for real-time systems
  • Ensures fast and targeted control

Final Revision Summary

System Organization

  • Structure system into sub-systems
  • Identify communication paths
  • Models: Repository, Client-Server, Layered

Modular Decomposition

  • Break sub-systems into modules
  • Strategies: Object-Oriented, Function-Oriented

Control Modeling

  • Define control relationships
  • Styles: Centralized (Call-Return, Manager), Event-Based (Broadcast, Interrupt-Driven)