Presentation is loading. Please wait.

Presentation is loading. Please wait.

©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.

Similar presentations


Presentation on theme: "©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design."— Presentation transcript:

1 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design

2 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 2 Topics covered l Architectural design decisions l System organisation l Decomposition styles l Control styles l Reference architectures

3 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 3 Software architecture l The design process for identifying the sub- systems making up a system and the framework for sub-system control and communication is architectural design. l The output of this design process is a description of the software architecture.

4 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 4 Architectural design l Represents the link between specification and design processes. l Often carried out in parallel with some specification activities. l It involves identifying major system components and their communications.

5 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 5 Advantages of explicit architecture l Stakeholder communication Architecture may be used as a focus of discussion by system stakeholders. l System analysis Means that analysis of whether the system can meet its non-functional requirements is possible. l Large-scale reuse The architecture may be reusable across a range of systems.

6 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 6 Architecture and system characteristics l Performance Localise critical operations and minimise communications. Use large rather than fine-grain components. l Security Use a layered architecture with critical assets in the inner layers. l Safety Localise safety-critical features in a small number of sub- systems. l Availability Include redundant components and mechanisms for fault tolerance. l Maintainability Use fine-grain, replaceable components.

7 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 7 Architectural conflicts l Using large-grain components improves performance but reduces maintainability. l Introducing redundant data improves availability but makes security more difficult. l Localising safety-related features usually means more communication so degraded performance.

8 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 8 System structuring l Concerned with decomposing the system into interacting sub-systems. l The architectural design is normally expressed as a block diagram presenting an overview of the system structure.

9 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 9 Packing robot control system

10 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 10 Box and line diagrams l Very abstract - they do not show the nature of component relationships nor the externally visible properties of the sub-systems. l However, useful for communication with stakeholders and for project planning.

11 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 11 Architectural design decisions l Is there a generic application architecture that can be used? l How will the system be distributed? l What architectural styles are appropriate? l What approach will be used to structure the system? l How will the system be decomposed into modules? l What control strategy should be used? l How will the architectural design be evaluated? l How should the architecture be documented?

12 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 12 Architecture reuse l Systems in the same domain often have similar architectures that reflect domain concepts. l Application product lines are built around a core architecture with variants that satisfy particular customer requirements.

13 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 13 Architectural styles l The architectural model of a system may conform to a generic architectural model or style. l An awareness of these styles can simplify the problem of defining system architectures. l However, most large systems are heterogeneous and do not follow a single architectural style.

14 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 14 Architectural models l Used to document an architectural design. l Static structural model that shows the major system components. l Dynamic process model that shows the process structure of the system. l Interface model that defines sub-system interfaces. l Relationships model such as a data-flow model that shows sub-system relationships. l Distribution model that shows how sub-systems are distributed across computers.

15 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 15 The repository model l Sub-systems must exchange data. This may be done in two ways: Shared data is held in a central database or repository and may be accessed by all sub- systems; Each sub-system maintains its own database and passes data explicitly to other sub-systems. l When large amounts of data are to be shared, the repository model of sharing is most commonly used.

16 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 16 CASE toolset architecture

17 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 17 Repository model characteristics l Advantages Efficient way to share large amounts of data; Sub-systems need not be concerned with how data is produced Centralised management e.g. backup, security, etc. Sharing model is published as the repository schema. l Disadvantages Sub-systems must agree on a repository data model. Inevitably a compromise; Data evolution is difficult and expensive; No scope for specific management policies; Difficult to distribute efficiently.

18 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 18 Client-server model l Set of stand-alone servers which provide specific services such as printing, data management, etc. l Set of clients which call on these services. l Network which allows clients to access servers.

19 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 19 Film and picture library

20 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 20 Client-server characteristics l Advantages Distribution of data is straightforward; Makes effective use of networked systems. May require cheaper hardware; Easy to add new servers or upgrade existing servers. l Disadvantages No shared data model so sub-systems use different data organisation. Data interchange may be inefficient No central register of names and services - it may be hard to find out what servers and services are available.

21 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 21 Abstract machine (layered) model l Used to model the interfacing of sub-systems. l Organises the system into a set of layers (or abstract machines) each of which provide a set of services. l Supports the incremental development of sub- systems in different layers. When a layer interface changes, only the adjacent layer is affected. l However, often artificial to structure systems in this way.

22 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 22 Version management system

23 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 23 Modular decomposition styles l Styles of decomposing sub-systems into modules. l No rigid distinction between system organisation and modular decomposition.

24 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 24 Sub-systems and modules l A sub-system is a system in its own right whose operation is independent of the services provided by other sub-systems. l A module is a system component that provides services to other components but would not normally be considered as a separate system.

25 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 25 Modular decomposition l Two modular decomposition models covered An object model where the system is decomposed into interacting objects A pipeline or data-flow model where the system is decomposed into functional modules which transform inputs to outputs. l If possible, decisions about concurrency should be delayed until modules are implemented.

26 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 26 Object models l Structure the system into a set of loosely coupled objects with well-defined interfaces. l Object-oriented decomposition is concerned with identifying object classes, their attributes and operations (methods). l When implemented, objects are created from these classes and some control model used to coordinate object operations.

27 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 27 Invoice processing system

28 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 28 Object model advantages l Objects are loosely coupled so their implementation can be modified without affecting other objects. l The objects may reflect real-world entities. l OO implementation languages are widely used. l However, object interface changes may cause problems and complex entities may be hard to represent as objects.

29 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 29 Function-oriented pipelining l Functional transformations process their inputs to produce outputs. l May be referred to as a pipe and filter model (as in UNIX shell). l Variants of this approach are very common. When transformations are sequential, this is a batch sequential model which is extensively used in data processing systems. l Not really suitable for interactive systems.

30 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 30 Invoice processing system

31 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 31 Pipeline model advantages l Supports transformation reuse. l Intuitive organisation for stakeholder communication. l Easy to add new transformations. l Relatively simple to implement as either a concurrent or sequential system.

32 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 32 l Requires a common format for data transfer along the pipeline. - simple string in Unix - requires parsing-unparsing l Difficult to support event-based interaction. Pipeline model disadvantages

33 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 33 Control styles l Are concerned with the control flow between sub- systems. Distinct from the system decomposition model. l Centralised control One sub-system has overall responsibility for control and starts and stops other sub-systems. l Event-based control Each sub-system can respond to externally generated events from other sub-systems or the system’s environment.

34 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 34 Centralised control l A control sub-system takes responsibility for managing the execution of other sub-systems. l Call-return model Top-down subroutine model where control starts at the top of a subroutine hierarchy and moves downwards. Applicable to sequential systems. l Manager model Applicable to concurrent systems. One system component controls the stopping, starting and coordination of other system processes. Can be implemented in sequential systems as a case statement.

35 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 35 Call-return model

36 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 36 Real-time system control

37 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 37 Event-driven systems l Driven by externally generated events where the timing of the event is outside the control of the sub- systems which process the event. l Two principal event-driven models Broadcast models. An event is broadcast to all sub- systems. Any sub-system which can handle the event may do so; Interrupt-driven models. Used in real-time systems where interrupts are detected by an interrupt handler and passed to some other component for processing.

38 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 38 Broadcast model l Effective in integrating sub-systems on different computers in a network. l Sub-systems register an interest in specific events. When these occur, control is transferred to the sub- system which can handle the event. l Control policy is not embedded in the event and message handler. Sub-systems decide on events of interest to them. l However, sub-systems don’t know if or when an event will be handled.

39 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 39 Selective broadcasting

40 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 40 Interrupt-driven systems l Used in real-time systems where fast response to an event is essential. l There are known interrupt types with a handler defined for each type. l Each type is associated with a memory location and a hardware switch causes transfer to its handler. l Allows fast response but complex to program and difficult to validate.

41 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 41 Interrupt-driven control

42 ©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 42 Reference architectures l Architectural models may be specific to some application domain. l Two types of domain-specific model Generic models which are abstractions from a number of real systems and which encapsulate the principal characteristics of these systems. Reference models which are more abstract, idealised model. Provide a means of information about that class of system and of comparing different architectures. l Generic models are usually bottom-up models; Reference models are top-down models.


Download ppt "©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design."

Similar presentations


Ads by Google