Architectural Design Objectives • To introduce architectural design and to discuss its importance • Establishing the overall • To explain why multiple models are required to document a software structure of a software architecture • To describe types of architectural system models that may be used • To discuss how domain-specific reference models may be used as a basis for product-lines and to compare software architectures What is software architecture? Topics covered • System structuring • The design process for identifying the sub-systems making up a • Control models system and the framework for sub- • Modular decomposition system control and communication is • Domain-specific architectures called architectural design • The output of this design process is a description of the software architecture 1
Advantages of explicit Architectural design architecture • Stakeholder communication • An early stage of the system design process – Architecture may be used as a focus of discussion by system stakeholders • Represents the link between • System analysis specification and design processes – Means that analysis of whether the • Often carried out in parallel with system can meet its non-functional some specification activities requirements is possible • Large-scale reuse • It involves identifying major system – The architecture may be reusable components and their across a range of systems communications Architectural design process Sub-systems and modules • System structuring • A sub-system is a system in its own right whose operation is independent – The system is decomposed into several principal sub-systems and communications of the services provided by other between these sub-systems are identified sub-systems • Control modelling • A module is a system component – A model of the control relationships between the different parts of the system is that provides services to other established components but would not normally • Modular decomposition be considered as a separate system – The identified sub-systems are decomposed into modules 2
Architectural models Architectural models • Static structural model • Different architectural models may be produced during the design – shows the major system components process • Dynamic process model – shows the process structure of the • Each model presents different system perspectives on the architecture • Interface model – defines sub-system interfaces • Relationships model – E.g., data-flow model Architectural styles Architecture attributes • Performance • The architectural model of a – Localize operations to minimize sub-system system may conform to a generic communication architectural model or style • Security • An awareness of these styles can – Use a layered architecture with critical assets in inner layers simplify the problem of defining • Safety system architectures – Isolate safety-critical components • However, most large systems are • Availability heterogeneous and do not follow a – Include redundant components in the architecture single architectural style • Maintainability – Use fine-grain, self-contained components 3
System structuring Packing robot control system • Concerned with decomposing the Vision system into interacting sub-systems system • The architectural design is normally Object expressed as a block diagram Arm Gripper identification controller controller presenting an overview of the system system structure • More specific models showing how Packaging sub-systems share data, are selection system distributed and interface with each other may also be developed Packing Conveyor controller system The repository model CASE toolset architecture • Sub-systems must exchange data. This Design Code may be done in two ways: Editor Generator – Shared data is held in a central database or repository and may be accessed by all sub- systems Design Program Project – Each sub-system maintains its own database Translator Editor Repository and passes data explicitly to other sub- systems • When large amounts of data are to be Design Report shared, the repository model of sharing Analyzer Generator is most commonly used 4
Repository model Client-server architecture characteristics • Advantages • Distributed system model which shows how data and processing is distributed – Efficient way to share large amounts of data across a range of components – Sub-systems need not be concerned with how data is managed • Set of stand-alone servers which provide – Centralized management e.g. backup, specific services such as printing, data security, etc. management, etc. • Disadvantages • Set of clients which call on these – Sub-systems must agree on a repository data services model. Inevitably a compromise • Network which allows clients to access – Data evolution is difficult and expensive servers – Difficult to distribute efficiently Film and picture library Client-server characteristics • Advantages Client 1 Client 2 Client 3 Client 4 – Distribution of data is straightforward – Makes effective use of networked systems. May require cheaper hardware Wide-bandwidth Network – Easy to add new servers or upgrade existing servers • Disadvantages Catalog Hypertext Video Picture – No shared data model so sub-systems use server server server server different data organization – Data interchange may be inefficient – Redundant management in each server – No central register of names and services - Catalog Film clip Digitized Hypertext it may be difficult to find out what servers files photographs web and services are available 5
Abstract machine model Version management system • Used to model the interfacing of sub- systems Version management • Organizes the system into a set of layers (or abstract machines) each of which provide a set of services Object management • Supports the incremental development of Database system sub-systems in different layers. When a Operating system layer interface changes, only the adjacent layer is affected • However, often difficult to structure systems in this way Control models Centralized control • A control sub-system takes responsibility • Are concerned with the control flow for managing the execution of other between sub-systems. Distinct from the sub-systems system decomposition model • Call-return model • Centralized control – Top-down subroutine model where control – One sub-system has overall responsibility for starts at the top of a subroutine hierarchy control and starts and stops other sub- and moves downwards. Applicable to systems sequential systems • Event-based control • Manager model – One system component controls the stopping, – Each sub-system can respond to externally starting and coordination of other system generated events from other sub-systems or processes. Can be implemented in sequential the system’s environment systems as a case statement. Applicable to concurrent systems. 6
Call-return model Real-time system control Main Motor Motor Motor Motor Motor Motor Program Motor processes Sensor processes processes processes processes processes processes processes System controller Routine Routine Routine 1 2 3 Motor Motor Motor User Fault Computation processes processes processes interface handler processes Routine Routine Routine Routine Routine 1.1 1.2 2.1 3.1 3.2 Event-driven systems Broadcast model • Effective in integrating sub-systems on • Driven by externally generated events different computers in a network • Two principal event-driven models • Sub-systems register an interest in – Broadcast models. An event is broadcast to specific events. When these occur, all sub-systems. Any sub-system that can control is transferred to the sub-system handle the event may do so that can handle the event – Interrupt-driven models. Used in real-time • Control policy is not embedded in the systems where interrupts are detected by an event and message handler. Sub-systems interrupt handler and passed to some other decide on events of interest to them component for processing • However, sub-systems don’t know if or • Other event driven models include when an event will be handled spreadsheets and production systems 7
Selective broadcasting Interrupt-driven systems • Used in real-time systems where fast response to an event is essential • There are known interrupt types with a handler defined for each type Sub-system Sub-system Sub-system Sub-system 1 2 3 4 • Each type is associated with a memory location and a hardware switch causes Event and message handler transfer to its handler • Allows fast response but complex to program and difficult to validate Interrupt-driven control Modular decomposition • Another structural level where sub- Interrupts systems are decomposed into modules • Two modular decomposition models Interrupt vector – An object model where the system is decomposed into interacting objects – A data-flow model where the system is decomposed into functional modules that Handler Handler Handler Handler transform inputs to outputs. Also known as 1 2 3 4 the pipeline model • If possible, decisions about concurrency should be delayed until modules are Process Process Process Process implemented 1 2 3 4 8
Recommend
More recommend