The document provides an overview of architectural design in software engineering, emphasizing its role in bridging requirements and software design through various architectural styles and decision-making processes. It discusses motivations for software architecture, key activities, and the impact of architecture on system attributes such as performance and maintainability. Additionally, it covers different architectural models, patterns, and terminologies, highlighting the importance of modularity and stakeholder communication.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
12 views4 pages
Comprehensive Summary Architectural Design CSC577
The document provides an overview of architectural design in software engineering, emphasizing its role in bridging requirements and software design through various architectural styles and decision-making processes. It discusses motivations for software architecture, key activities, and the impact of architecture on system attributes such as performance and maintainability. Additionally, it covers different architectural models, patterns, and terminologies, highlighting the importance of modularity and stakeholder communication.
This lecture introduces the concept of architectural design in software engineering. It sets out to explain its importance, the design decisions involved, various architectural styles (organization, decomposition, control), and the use of reference architectures. Slide 2: Remember This? Architectural design bridges the requirements and software design. It decomposes large systems into related sub-systems and establishes control and communication frameworks. The output is a complete software architecture that supports stakeholder communication, analysis, and reuse. Slide 3: Motivations for Software Architecture Architecture is driven by both organizational (stakeholder communication, system context, work allocation) and technical (reuse, system analysis, partitioning, maintainability) motivations. These ensure the system meets its goals efficiently. Slides 4-5: Architectural Design Decisions Design decisions involve choosing architectural templates, hardware distribution, architectural styles, control strategies, documentation methods, structural decomposition, and ensuring non-functional requirements are addressed. It is a creative process guided by decision-making. Slides 6-7: System Architecture Affects... Architecture affects performance (localizing critical ops), security (layered defenses), safety (isolating safety features), availability (redundancy), and maintainability (modular design). Trade-offs may arise between these attributes. Slide 8: Why? Illustrates that different architecture exists for the same functionality because of various influencing factors like environment, cost, or stakeholder preferences. Slide 9: Architectural Design Activities Key interleaved activities include modular decomposition (splitting into modules), system structuring (interacting sub- systems), and control modeling (establishing control relationships). Slide 10: The First Step... The initial architectural phase focuses on decomposing the system into sub-systems. This is abstract but useful for communication and planning. Slide 11: Architectural Styles Architectural styles include structural (repository, client- server, layered), control (centralised, event-driven), and domain-specific models (object-oriented, dataflow). Slides 12-13: Repository Model All sub-systems share a central repository. Pros: data sharing, central management. Cons: agreement on data model, difficult evolution, inefficient distribution. Slides 14-15: Client-Server Model Divides the system into clients and servers. Pros: simple distribution, low cost. Cons: inconsistent data models, redundant management, no central registry. Slide 16: Layered Model Organizes systems into layers, each providing services to the layer above. Independent and easier to maintain or update. Slides 17-18: Centralized Control Includes Call-Return (sequential control from a main program) and Manager (central controller coordinates concurrent systems). Slides 19-20: Event-Driven Systems Broadcast model uses event handlers to notify components. Interrupt-driven model uses asynchronous triggers routed to specific handlers. Slide 21: Domain-Specific Architectures Includes modular decomposition using object models (encapsulated data and operations) and data-flow models (functional transformations). Slides 22-23: Data-Flow Model Also known as pipe-and-filter. Data flows through independent transformations. Pros: reusable, easy to understand and extend. Cons: needs shared data format, not suited for events. Slide 24: Same Application, Different Architecture Demonstrates how the same system (invoice/payment) can be built using object-oriented or data-flow architectures. Slide 25: Architecture Patterns Patterns offer reusable, tested design solutions. They explain where applicable and their pros/cons. Can be described graphically or in tables. Slide 26: MVC Pattern Model-View-Controller separates data (Model), interface (View), and logic (Controller) to improve modularity and maintainability. Slide 27: Ruby on Rails MVC MVC in action using Ruby on Rails: browser requests go to the controller, interact with the model, and return views to the user. Slide 28: Terminologies Clarifies differences between architectural styles (structure), architectural patterns (solutions), and design patterns/frameworks (code-level practices). Slides 29-30: Key Points Architecture defines system structure. Models include organization (e.g., layered), decomposition (e.g., object/data- flow), and control (e.g., event-driven). Reference architectures aid comparison.