80 likes | 230 Vues
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.
E N D
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