Software Architecture Design Instructor: Dr. Jerry Gao.

Slides:



Advertisements
Similar presentations
Design Concepts and Principles
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
SWE Introduction to Software Engineering
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Establishing the overall structure of a software system
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
Architectural Design, Distributed Systems Architectures
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6: Architectural Design
System Design & Software Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Engineering Architectural Design
Software Architecture
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
© Andrew IrelandSoftware Design F28SD2 Architectural Design Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt University Edinburgh.
Chapter 11 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS451 Lecture 13: Architectural Design Chapter 10
Chapter 11 Architectural Design.
Chap 8. Architectural Design
Architectural Design. Recap Introduction to design Design models Characteristics of good design Design Concepts.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Architectural Design, Distributed Systems Architectures
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SOFTWARE DESIGN.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Software Architecture and Patterns
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design 10/24/2015ICS 413 – Software Engineering1.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Architectural Design Identifying system components and their interfaces.
Design Concepts and Principles Instructor: Dr. Jerry Gao.
Software Engineering CSC 342/Dr. Ghazy Assassa Chapter 10, Architectural Design “Sommerville +.. “ Slide 1 CSC 342 Semester II: H ( G)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 8 Architectural Design Slide 1 1 Chapter 8 Architectural Design.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
CSC480 Software Engineering Lecture 10 September 25, 2002.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
Arch-1 9.Architecture. Arch-2 What’s Architecture? Description of sub-system –Components/sub-systems –Their interaction Framework for communication.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
BZUPAGES.COMSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Part 3 Design What does design mean in different fields?
CS 425/625 Software Engineering Architectural Design
Princess Nourah bint Abdulrahman University
Software Architecture
Presentation transcript:

Software Architecture Design Instructor: Dr. Jerry Gao

Software Architecture Design Jerry Gao, Ph.D. Jan 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

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.

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

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.

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

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

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

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

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

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

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