Software Architectures Lecture 3
This lecture explores the fundamental concepts of software architectures, focusing on how systems are structured as modular code units and the relationships between components and connectors. Key topics include component-and-connector structures, allocation strategies, and the interaction of software systems with their non-software environments such as CPUs, file systems, and networks. We will also delve into module decomposition, layered architectures, and the implications of concurrency and shared data in client-server models. Gain insights into effective software design and deployment strategies.
Software Architectures Lecture 3
E N D
Presentation Transcript
Architectural Structures • Module Structure • How is the system to be structured as a set of code units (modules)? • Component-and-connector structures • How is the system to be structured as a set of elements that have runtime behaviour (components) and interactions (connectors) • Allocation structures • How is the system to relate to non-software structures in it’s environment (CPUs, File Systems, Networks, Development Teams …)
Software Structures Module Decomposition Class Uses Layered • Module • Decomposition • Uses • Layered • Class or generalization
Component and Connectors Components- and-connector Client-Server Shared data Process Concurrency Process, or communicating processes Concurrency Shared data, or repository Client-Server
Allocation Allocation Deployment Work assignment Implementation Deployment Implementation Work assignment