Lectures Software Engineering - Chapter 10: Architectural Design

ppt 44 trang hoanguyen 3550
Bạn đang xem 20 trang mẫu của tài liệu "Lectures Software Engineering - Chapter 10: Architectural Design", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptlectures_software_engineering_chapter_10_architectural_desig.ppt

Nội dung text: Lectures Software Engineering - Chapter 10: Architectural Design

  1. Architectural Design l Establishing the overall structure of a software system ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 1
  2. Objectives l To introduce architectural design and to discuss its importance l To explain why multiple models are required to document a software architecture l To describe types of architectural model that may be used l To discuss how domain-specific reference models may be used as a basis for product-lines and to compare software architectures ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 2
  3. Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 3
  4. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 4
  5. Architectural design l An early stage of the system design process 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 5
  6. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 6
  7. Architectural design process l System structuring • The system is decomposed into several principal sub-systems and communications between these sub-systems are identified l Control modelling • A model of the control relationships between the different parts of the system is established l Modular decomposition • The identified sub-systems are decomposed into modules ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 7
  8. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 8
  9. Architectural models l Different architectural models may be produced during the design process l Each model presents different perspectives on the architecture ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 9
  10. Architectural models 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 10
  11. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 11
  12. Architecture attributes l Performance • Localise operations to minimise sub-system communication l Security • Use a layered architecture with critical assets in inner layers l Safety • Isolate safety-critical components l Availability • Include redundant components in the architecture l Maintainability • Use fine-grain, self-contained components ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 12
  13. 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 l More specific models showing how sub-systems share data, are distributed and interface with each other may also be developed ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 13
  14. Packing robot control system ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 14
  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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 15
  16. CASE toolset architecture ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 16
  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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 17
  18. Client-server architecture l Distributed system model which shows how data and processing is distributed across a range of components 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 18
  19. Film and picture library ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 19
  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 • Redundant management in each server • No central register of names and services - it may be hard to find out what servers and services are available ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 20
  21. Abstract machine 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 difficult to structure systems in this way ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 21
  22. Version management system ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 22
  23. Control models 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 23
  24. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 24
  25. Call-return model ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 25
  26. Real-time system control ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 26
  27. Event-driven systems l Driven by externally generated events where the timing of the event is outwith 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 l Other event driven models include spreadsheets and production systems ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 27
  28. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 28
  29. Selective broadcasting ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 29
  30. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 30
  31. Interrupt-driven control ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 31
  32. Modular decomposition l Another structural level where sub-systems are decomposed into modules l Two modular decomposition models covered • An object model where the system is decomposed into interacting objects • A data-flow model where the system is decomposed into functional modules which transform inputs to outputs. Also known as the pipeline model l If possible, decisions about concurrency should be delayed until modules are implemented ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 32
  33. 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 l When implemented, objects are created from these classes and some control model used to coordinate object operations ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 33
  34. Invoice processing system ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 34
  35. Data-flow models 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 35
  36. Invoice processing system ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 36
  37. Domain-specific architectures l Architectural models which are 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 37
  38. Generic models l Compiler model is a well-known example although other models exist in more specialised application domains • Lexical analyser • Symbol table • Syntax analyser • Syntax tree • Semantic analyser • Code generator l Generic compiler model may be organised according to different architectural models ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 38
  39. Compiler model ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 39
  40. Language processing system ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 40
  41. Reference architectures l Reference models are derived from a study of the application domain rather than from existing systems l May be used as a basis for system implementation or to compare different systems. It acts as a standard against which systems can be evaluated l OSI model is a layered model for communication systems ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 41
  42. OSI reference model Application ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 42
  43. Key points l The software architect is responsible for deriving a structural system model, a control model and a sub-system decomposition model l Large systems rarely conform to a single architectural model l System decomposition models include repository models, client-server models and abstract machine models l Control models include centralised control and event-driven models ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 43
  44. Key points l Modular decomposition models include data-flow and object models l Domain specific architectural models are abstractions over an application domain. They may be constructed by abstracting from existing systems or may be idealised reference models ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10 Slide 44