Lecture 5 Introduction to Architectural Design Architectural Design Process The process of architectural design emphasizes systematic thinking to address both functional and non functional re quirements Software architecture defines the structure of systems through components connectors and configurations Design and Creativity Software design can either follow a methodical or creative approach Methodical approach Utilizes structured methods tools and patterns Creative approach Driven by intuition and innovation with potential risks Engineering Design Process The design process is divided into four main phases 1 Feasibility Identify viable design options 2 Preliminary Design Select and refine the most feasible design 3 Detailed Design Specify technical details 4 Planning for Implementation Define the plan for production and implementation Alternative Design Strategies Different strategies are considered in architectural design Cyclic Design Revisiting previous stages as needed Parallel Design Developing multiple designs concurrently Incremental Design Gradual refinement through iterations Architectural Design Decisions Architectural decisions impact how components connectors and configurations interact with a focus on balancing quality attributes such as Performance Scalability Security Modifiability Non Functional Requirements NFRs NFRs such as security performance and maintainability are critical to architectural design Architectural choices must consider how to balance these requirements with functionality Architectural Viewpoints An architecture is analyzed through multiple viewpoints including Logical View Focuses on functionality and component interactions Physical View Addresses deployment and hardware concerns Process View Describes runtime behavior and interactions Development View Focuses on organizing the development environment 20Component and Connector Views In an architecture components perform specific functions and connectors define interactions between them Connectors can take different forms Procedure calls Message passing Shared memory Quality Attributes and Tactics Achieving desired quality attributes requires applying specific tactics including Performance Load balancing caching and concurrency control Security Implementing authentication encryption and access control Modifiability Separation of concerns and modularization Architectural Patterns Architectural patterns provide templates for solving common problems such as MVC Model View Controller Separates user interface data and logic Layered Architecture Encourages separation of concerns Repository Centralized data store that components interact with Connector Foundations Connectors are essential in enabling interactions between components The slides outline the various types of connectors and their roles Communicators Transfer data between components Coordinators Manage control flow and synchronization Converters Adapt mismatched components for interaction Facilitators Streamline and mediate component interactions such as load balancing or concurrency control Connector Classification Connectors can be simple or composite Simple connectors like procedure calls handle basic interactions while composite connectors manage complex multi type interactions Examples include Procedure Call Event Connectors Data Access Linkage Connectors Combining Connectors In many systems connectors are combined to manage complex interactions between components Examples of composite connectors include Client server Combines procedure calls data access and stream connectors Peer to peer Arbitration and synchronization between distributed components
View Full Document