Download presentation
Presentation is loading. Please wait.
Published byHerbert Wade Modified over 6 years ago
1
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Modified from Sommerville’s originals
2
Objectives Understand the importance of architectural design.
2 Understand the importance of architectural design. Introduce to the architectural views. Understand the decisions that be made during architectural design. Know the architectural patterns that are often used in different types of application system.
3
Architecture 3 Architecture: Floor plan
4
Software Design The software design process is composed of four main
4 The software design process is composed of four main design activities: Architectural design this chapter. Data design. Component design. Interface design.
5
Software Design Deliverables
5 The main deliverables of the Software Design are: Software architecture. Data structures. Pseudo code. Interface designs. Software Design Document.
6
Software Architecture
6 Architectural Design: The design process concerned with understanding how a system should be organized and designing the overall structure of that system. Software Architecture model: Output of this design process, describes how the system is organized as a set of communicating components. A Software Architecture consists of: Elements (components) with certain properties/behaviors. Relationships between them. Description of permitted and forbidden interactions.
7
Architectural Design 7 It is the first stage in the software design process. It links between specification and design process. Often carried out in parallel with some of the specification activities. However, this is not ideally. It involves identifying main structural components in a system and the relationships between them.
8
Architecture and System Characteristics
13 A particular architectural style that you choose for a system should depend on the non-functional requirements (System Characteristics): Performance If it is critical, use large and few components less communications. Security If it is critical, use a layered architecture with critical assets in the innermost layer with high level of validation in this layer. Safety If it is critical, put safety-critical features in one or small number of sub- systems to reduces costs in the event of failure. Availability If it is critical, include redundant components update without stop. Maintainability If it is critical, use separate components and avoid shared data structure.
9
1. System Organization system.
17 Reflects the basic strategy that is used to organize a system. Three architectural styles are widely used: An abstract machine or layered style; A shared data repository style; A client/server style.
10
Layered Architecture Used to model the interfacing of sub-systems.
18 Used to model the interfacing of sub-systems. Organizes the system into a set of layers (or abstract machines) each of which provide a set of services. Supports the incremental development of sub-systems in different layers. When a layer interface changes, only the adjacent layer is affected. Each layer provides a set of services to the layer above and serves as a client to the layer below.
11
Layered Architecture 19
12
The Architecture of the LIBSYS System
20
13
Advantages & Disadvantages of Layered Style
21 Advantages: Supports incremental development. Changeable (if a layer changes, only adjacent layers are affected). Disadvantages: Structuring systems into layers is difficult. Inner layers may provides facilities required by all layers (e.g. file management). Performance is degraded.
14
Repository Style Sub-systems must exchange data.
22 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. When? large amounts of data are to be shared, the repository model of sharing is most commonly used.
15
Advantages & Disadvantages of Repository Style
23 Advantages: Efficient way to share large amounts of data; Sub-systems need not be concerned with how data is produced; Centralized management e.g. backup, security, etc. Sharing model is published as the repository schema. Disadvantages: Sub-systems must agree on a repository data model; Data evolution is difficult and expensive; No scope for specific management policies; Difficult to distribute efficiently.
16
Repository Style for Project
24
17
Client-Server Architecture
25 Distributed system model which shows how data and processing is distributed across a range of components. Set of stand-alone servers which provide specific services such as printing, data management, etc. Set of clients which call on these services. Network which allows clients to access servers. Client and server exchange data for processing.
18
Advantages: Disadvantages:
Advantages & Disadvantages of Client–Server 26 Advantages: Servers can be distributed across a network. General functionality (e.g. printing service) can be available to all clients and does not need to be implemented by all services. Easy add new server or upgrade existing one. Disadvantages: Security problem, each server will be suspected if a fault happen. Performance may be unpredictable because it depends on the network as well as the system. Management problems with servers owned by different organizations.
19
Client–Server Architecture for a Film Library
27
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.