Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami

Similar presentations


Presentation on theme: "Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami"— Presentation transcript:

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


Download ppt "Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami"

Similar presentations


Ads by Google