Download presentation
1
CSC450 Software Engineering
Devon M. Simmonds University of North Carolina, Wilmington Architectural Design Some slides adapted from various sources
2
Requirements Analysis
Outline Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering This lecture will provide: An introduction to software architecture. A definition of software architecture Architectural styles Architecture as a process Architectural views Benefits of software architecture summary Software Design – bridging the gap between requirements & Implementation
3
Requirements Analysis
Outline Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering In this session we address: An introduction to software architecture. A definition of software architecture Architectural styles Architecture as a process Architectural views Benefits of software architecture Summary Software Design – bridging the gap between requirements & Implementation
4
What is Software Design?
Software design expresses a solution to a problem in programming language independent terms. This permits a design to be implemented in any programming language.
5
Moving from problem to Architecture
Requirements Spec Design Spec System attributes, anticipated changes, design constraints Design goals Use Cases Contracts Architecture subsystem structure subsystem interfaces etc. Class Diagrams Other models
6
The Place of Architecture in Design Phases
Architectural Design Identify subsystems and the services they provide Describe interactions across subsystems Subsystem Design: Define classes Describe how objects interact to accomplish subsystem services Sequence diagrams, state machines, etc. User Interface Design Data structures/Database Design Algorithm Design Pre and post conditions Test Case Design
7
UML Diagram Types for Architectural Design
Package diagrams Component diagrams Deployment diagrams
8
Architecture defined Architecture n (1555)
1: the art or science of building; specifically: the art or practice of designing and building structures and esp. habitable ones. 2 a: formation or construction resulting from or as if from a conscious act <the architecture of the garden> b: a unifying or coherent form or structure <the novel lacks architecture> 4: a method or style of building. Merriam Webster’s Collegiate Dictionary
9
Architecting a dog house
Can be built by one person Requires Minimal modeling Simple process Simple tools
10
Architecting a house Built most efficiently and timely by a team
Requires Modeling Well-defined process Power tools
11
Architecting a high rise
The more complex the problem the greater the need for: Teams of developers Modeling Well-defined processes Significant tool support
12
Computer Architecture is not Software Architecture
The assembly of logical elements into a computing device. Specifying the relations between parts of a computer system.
13
What is Software Architecture?
(a model that) describes the overall structure of the software subsystems, the relationships among subsystems and the behavior of subsystems (i.e. how subsystems interact). M B C A P K
14
What are the goals of Software Architecture?
The goal of architectural design is to meet present and future demands on the architecture. M B C A P K 14
15
Software Architecture in UML
In UML, the architecture of a software may be described using: Package diagrams Component diagrams Deployment diagrama 15
16
Requirements Analysis
Outline Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering In this session we address: An introduction to software architecture. A definition of software architecture Architectural styles Architecture as a process Architectural views Benefits of software architecture Summary Software Design – bridging the gap between requirements & Implementation
17
How do we go about creating an architecture for a system?
Exploring architectural Styles
18
Architectural styles Architectural Styles
An architecture style is a specification of how subsystems in a software may be organized. Specification of architectural components Specification of architectural connectors Specification of constraints on how components can be combined Specification of component interaction (data exchange) Specification of component configuration to form a system Specification of one or more semantic models that specify how a system’s overall properties can be determined from the properties of its parts Each architectural style defines a class of architectures. Component N Component N-1 Component 2 Component 1 18
19
Components & Connectors
What is an architectural component/subsystem? A modular unit with well defined provided and required interfaces that is replaceable. What is an architectural connector? A mechanism that mediates communication, coordination or cooperation among components. e.g. remote procedure calls, message passing Component N Component N-1 Component 2 Component 1
20
Popular architecture styles
Layered Client-server Peer-to-peer Model-view controller Pipe and Filter Shared Repository
21
A Layered Architectural Style
Layered Architectures, cont. A Layered Architectural Style Figure 2-1. Tanenbaum et al. 21
22
Rationale for Layered Architectures
Separate presentation and application logic, and other areas of concern. UI Layer “Domain” or “Application Logic” Layer Services Layer Persistence Subsystem Logging . . . 22
23
Classical Three-Tiered Architecture
Layered Architectures, cont. Classical Three-Tiered Architecture Figure 2-4 (Tanenbaum). The simplified organization of an Internet search engine into three different layers. 23
24
Benefits of layered Architectures
Layered Architectures, cont. Benefits of layered Architectures Clear separation of parts/roles/subsystems. Easy to plug and play components. Relatively simple to implement as either a concurrent or sequential system. 24
25
Popular architecture styles
Layered Shared Repository Client-Server Peer-to-peer Model-view controller Pipe and Filter 25
26
Shared repository architectures
K A T Multiple sub-systems share a common database.
27
Repository model characteristics
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. 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.
28
Popular architecture styles
Layered Shared Repository Client-Server Peer-to-peer Model-view controller Pipe and Filter 28
29
Client-server (“two-tier”) architectures
A network architecture in which each computer or process on the network is either a client or a server. 29
30
The client/Server Model
Architectural Styles The client/Server Model Fig. 2.2 Coulouris et al.: Clients invoke individual servers
31
A service provided by multiple servers
Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Client/Server Model, cont. A service provided by multiple servers Fig. 2.3 Coulouris et al.
32
Web proxy servers and caches
Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Client/Server Model, cont. Web proxy servers and caches Fig. 2.4 Coulouris et al.: Web proxy servers
33
Peer-to-peer (P2P) architectures
Each network node has equivalent responsibilities – is both a client and a server. B A C 33
34
Client-server characteristics
Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Client/Server Model, cont. Client-server characteristics 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. 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. 34
35
Popular architecture styles
Layered Shared Repository Client-Server Peer-to-peer Model-view controller Pipe and Filter 35
36
The Model-view-controller architecture
Data Functionality Model change Controller notifies query change View User Interface Separates the application object (model) from The way it is presented to the user (view), from The way in which the user controls it (controller).
37
Popular architecture styles
Layered Shared Repository Client-Server Peer-to-peer Model-view controller Pipe and Filter 37
38
Pipe and Filter architectures
K T Input to one subsystem is processed and the output is passed to another subsystem for processing. E.g. program compilation using the multi-phase translator architecture Compilation of a program is divided into Lexical analysis lex Syntax analysis Semantic analysis optimization Code generation yacc – a tool for generating compilers
39
Pipe and Filter Characteristics
Advantages Supports transformation reuse. Intuitive organization for stakeholder communication. Easy to add new transformations. Relatively simple to implement as either a concurrent or sequential system. Disadvantages Requires a common format for data transfer along the pipeline and difficult to support event-based interaction.
40
Architecture styles Summary
An architecture style provides a standardized vocabulary for communication An architecture style defines a family of systems sharing similar characteristics. An awareness of these styles can simplify the problem of defining system architectures. However, large systems are heterogeneous and may use a combination of architectural styles.
41
Architectural Design Process
Identify potential subsystems Select architectural styles Arrange subsystems to fit architectural styles Identify subsystem dependencies
42
Lets do an example!
43
Architectural Design Exercise
Draw layered, client-server, shared repository and pipe-and-filter architectures using this description The BirdCage Corporation needs software to aid the management of its business. The corporation builds its business around domestic birds. BirdCage arranges its business around different services with each service being managed by a different company making BirdCage a group of companies. Companies are divided into departments. Services include veterinary services, safekeeping of birds, bird calisthenics and a bird competitions service. In order to streamline its business, BirdCage classifies the veterinary and safekeeping services as medical services. The other two services are regarded as entertainment services. In the future the company hopes to add a number of “Nutritional” services to address the production and sales of food for birds. The corporation classifies birds as either exotic or non-exotic. BirdCage does not provide entertainment services for exotic birds. Owls and crows are non-exotic birds, while macaws, cockatoos and green quakers are exotic. BirdCage seeks to maintain a minimum stock of at least 10 of each type of exotic bird.
44
Requirements Analysis
Outline Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering In this session we address: An introduction to software architecture. A definition of software architecture Architectural styles Architecture as a process Architectural views Benefits of software architecture Summary Software Design – bridging the gap between requirements & Implementation
45
Architecture as a process
Mary Shaw, CMU Grady Booch, Philippe Kruchten, Rich Reitman Kurt Bittner, Rational Architecture as a process Software architecture encompasses the set of significant decisions about the organization of a software system selection of the structural elements and their interfaces by which a system is composed behavior as specified in collaborations among those elements composition of these structural and behavioral elements into larger subsystem architectural style that guides this organization The output of this design process is a description of the software architecture.
46
Requirements Analysis
Outline Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering In this session we address: An introduction to software architecture. A definition of software architecture Architectural styles Architecture as a process Architectural views Benefits of software architecture Summary Software Design – bridging the gap between requirements & Implementation
47
Many stakeholders, many views
Architecture is many things to many different interested parties customer project manager architect developer maintainer etc. Multiple stakeholders many views
48
Architectural view An architectural view is a simplified description (an abstraction) of a system from a particular perspective or vantage point, covering particular concerns, and omitting entities that are not relevant to this perspective.
49
Models, Views, and Diagrams
A model is a complete description of a system from a particular perspective Models, Views, and Diagrams Use Case Diagrams State Diagrams Class State Diagrams Object Use Case Diagrams Sequence Scenario Diagrams Collaboration State Diagrams Component Models Scenario Diagrams Statechart Component Diagrams Deployment Activity Diagrams
50
Diagrams A diagram is a view into a model UML diagrams
Presented from the aspect of a particular stakeholder Provides a partial representation of the system Is semantically consistent with other views UML diagrams Static views: use case, class, object, component, deployment Dynamic views: sequence, statechart, activity
51
The 4 + 1 View Model – Philippe Kruchten(95)
Logical view Development view Programmers Software management End-user Functionality Use case view Process view System integrators: Performance, Scalability, Throughput Physical view System topology, Delivery, installation Contrast logical & development view Development: directories, names Logical: source code analysis. Conceptual Physical
52
Example Logical Architecture
System Static Structural Diagram Customer Care Order Processing Domain Accounts Receivables invoice query order customer update order update bill order
53
Deployment Diagram Captures the topology of a system’s hardware
54
Requirements Analysis
Outline Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering In this session we address: An introduction to software architecture. A definition of software architecture Architectural styles Architecture as a process Architectural views Benefits of software architecture summary Software Design – bridging the gap between requirements & Implementation
55
Advantages of explicit architecture
Stakeholder communication Architecture may be used as a focus of discussion by system stakeholders. System analysis Means that analysis of whether the system can meet its non-functional requirements is possible. Large-scale reuse The architecture may be reusable across a range of systems.
56
Architecting system characteristics
Performance Localize critical operations and minimize communications. Use large rather than fine-grain components. Security Use a layered architecture with critical assets in the inner layers. Safety Localize safety-critical features in a small number of sub-systems. Availability Include redundant components and mechanisms for fault tolerance. Maintainability Use fine-grain, replaceable components.
57
Requirements Analysis
Outline Requirements Analysis Software Design Implementation Testing Deployment Evolution Systems Engineering In this session we address: An introduction to software architecture. A definition of software architecture Architectural styles Architecture as a process Architectural views Benefits of software architecture Summary Software Design – bridging the gap between requirements & Implementation
58
Architectural design decisions
Summary Architectural design decisions Is there a generic application architecture that can be used? How will the system be distributed? What architectural styles are appropriate? What approach will be used to structure the system? How will the system be decomposed into modules? What control strategy should be used? How will the architectural design be evaluated? How should the architecture be documented?
59
Summary Key points The software architecture is the fundamental framework for structuring the system. Architectural design decisions include decisions on the application architecture, the distribution and the architectural styles to be used. Different architectural models such as a structural model, a control model and a decomposition model may be developed. System organisational models include repository models, client-server models and pipe-and-filter models.
60
The End Qu es ti ons? ______________________ Devon M. Simmonds
Computer Science Department University of North Carolina Wilmington _____________________________________________________________
61
Architectural Design Exercise
Draw layered, client-server, shared repository and pipe-and-filter architectures using this description The Exotic Sunshine Corporation needs software to aid the management of its business. The corporation is made up of several different companies each having at least three divisions. The corporation classifies divisions as either production, sales or marketing. The sales and marketing divisions are given jurisdiction for a specific geographic region. This region must include the company that owns the division. Regions have managers, however, an employee may only manage two or more regions if he/she has in excess of ten years experience with the company, or ten years in a comparable position. Managers with more than ten years service and managers in the head office are allowed thirty days of paid vacation per year. In addition, they may have up to three company vehicles assigned and one of the vehicles may be a luxury vehicle. Other managers are not allowed luxury vehicles and cannot be allocated in excess of one vehicle. The corporation manufactures and sells boats, electronic equipment, fruit juices and paper.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.