Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Architecture Design Instructor: Dr. Jerry Gao.

Similar presentations


Presentation on theme: "Software Architecture Design Instructor: Dr. Jerry Gao."— Presentation transcript:

1 Software Architecture Design Instructor: Dr. Jerry Gao

2 Software Architecture Design Jerry Gao, Ph.D. Jan. 1999 - Architecture design - General description - System structuring (repository model, client-server model, and abstract machine) - Control models (centralized control, event-driven systems) - Modular decomposition (object model, data-flow model) - Domain-specific architectures

3 Software Architectural Design Large systems can be decomposed into sub-systems that provide some related set of services. The architectural design focus on: - partitioning a system into a logical sub-systems and modules. - identify their interactions and relationships. - System structuring: The system is structured into a number of principal sub-systems. Each is an independent software unit. They communicate with one and another. - Control modeling: Create a general model of the control relationships between the parts of the system. - Modular decomposition: Partition each sub-system into small modules. The architecture design must identify these modules and their interactions.

4 Architectural Design - The Repository Model Two ways to share data information in a distributed environment: - Share a central database - Each sub-system maintains a local database The repository model: Advantages: Efficient way to share large amount data Disadvantages:- Sub-systems must share the same repository data model - System evolution is difficult - Fault-tolerance problem - Different sub-systems may have different requirements Design editor Code generator Project repository Design analyser Report generator Program editor Design translator

5 Software Architecture Software architecture is the hierarchical structure of program components and their interactions. Shaw and Garlan [SHA95a] describe a set of properties of architecture design: - Structural properties: The architecture design defines the system components and their interactions. - Extra-functional properties: The architecture design should address how the design architecture achieves requirements for performance, capacity, reliability, adaptability, security. - Families of related systems: The architecture design should draw upon repeatable patterns in the design of families of similar systems. Figure 13.3.

6 Different architectural design methods: (Figure 13.3) - Structural models: represent architecture as an organized collection of components. - Framework models: increase the level of design abstraction by identifying repeatable architecture design frameworks (patterns) - Dynamic models: address the behavior aspects of the program architecture - Process models: focus on the design of the business or technical process - Functional models: can be used to represent the functional hierarchy of a system Software Architecture Fan-out Fan-in Control Hierarchy

7 Structural Partitioning The program structure should be partitioned both horizontally and vertically. (Figure 13.4) (1) Horizontal partitioning defines separate branches of the modular hierarchy for each major program function. Simplest way is to partition a system into: input, data transformation (processing), and output Advantages of horizontal partition: - easy to test, maintain, and extend - fewer side effects in change propagation or error propagation Disadvantage:more data to be passed across module interfaces --> complicate the overall control of program flow (2) Vertical partitioning suggests the control and work should be distributed top-down in program structure. Advantages: good at dealing with changes: - easy to maintain the changes - reduce the change impact and and propagation

8 Architectural Design - The Client-Server Model The major components of this model: - A set of stand-alone servers which offer services to other sub-systems. - A set of clients that call on the services offered by servers. - A network which allows the clients to access these services. The most advantage: distribution user access and network-centered Client 1Client 2Client 3Client 4 Wide-bandwidth Network Catalogue server Catalogue Video server Film clip files Picture server Digitized photographs Hypertext server Hypertext web

9 Architectural Design - The Abstract Machine Model Abstract machine model (a layered model): - It organizes a system into a series of layers each of which provides a set of services. Each layer defines an abstract machine. OSI model is a typical example. It supports the incremental development of systems. Pros: changeable and portable. Cons: - Structuring system is difficult. - Performance may be a problem OS Version management Object management database management

10 Architectural Design - The Control Model Control model are concerned with the control flow between sub-systems. Control models supplement structural models. Two general approaches: a) centralized control and b) event-based control - Event-based control: - each sub-system can be respond to externally generated events. Main program Routine 3Routine 2Routine 1 Routine 1.1 Routine 2.1Routine 3.1 System controller user interface Sensor processes Actuator processes Computation processes Call-return model of controlA centralized control model for a real-time system Fault handler

11 Architectural Design - The Control Model Control model are concerned with the control flow between sub-systems. Control models supplement structural models. Two general approaches: a) centralized control and b) event-based control - Event-based control: - each sub-system can be respond to externally generated events. Handler 1 Process 1 Handler 2 Process 2 Handler 3 Process 3 Event and message handler Sub-system 1 Sub-system 2 Sub-system 3 Interrupt vector An interrupt-driven control model A control model based on selective broadcasting

12 Data Design Guidelines for data design: - Apply the systematic analysis on data - data objects, relationships, and data flow as well as contents. - Identify all data structures and related operations - Establish a data dictionary - data objects and their relationships as well as constraints - Defer the low-level design decisions until late in the design process - Use information hiding in the design of data structures - A library of useful data structures and operations - reusable data objects - reusable data structure templates - Use a software design and programming language to support data specification and abstraction


Download ppt "Software Architecture Design Instructor: Dr. Jerry Gao."

Similar presentations


Ads by Google