The document discusses architectural design and software architecture. It covers topics like architectural design decisions, views, patterns, and application architectures. Architectural design represents the link between specification and design and involves identifying major system components and their communications. Common architectural representations include box and line diagrams, while views provide different perspectives of the system. Architectural patterns like Model-View-Controller and layered architectures help structure systems and promote reuse.
The document discusses architectural design and provides examples of different architectural styles and application architectures. It covers topics such as:
- Architectural styles like layered architecture, model-view-controller, client-server, pipe and filter, and repository patterns.
- Generic application architectures for transaction processing systems and language processing systems. Examples given include ATMs, reservation systems, compilers, and command interpreters.
- Information system architectures often use a layered style with layers for the user interface, communications, retrieval, and database.
- Web-based information systems have interfaces implemented through a web browser.
The document discusses architectural design and provides examples of different architectural patterns and application architectures. It begins with defining architectural design and its role in the system design process. It then covers topics such as architectural views, patterns like Model-View-Controller and layered architectures. Examples are given of different application architectures for transaction processing and information systems. Key decisions in architectural design and documenting architectures are also summarized.
The document discusses architectural design and key concepts:
- Architectural design determines the subsystems of a system and how they communicate. It represents the link between specification and design.
- Views and patterns are used to document architectures. Common views include logical, process, development, and physical views. Patterns like MVC and layered architectures organize systems.
- Architectural design involves decisions like the application architecture, distribution, styles, decomposition, and documentation. Views and non-functional requirements influence these decisions.
The document discusses architectural design in software engineering. It covers topics like architectural design decisions, views, patterns, and application architectures. Architectural design involves identifying major system components and their communications in order to represent the link between specification and design processes. Common architectural patterns discussed include model-view-controller, layered architectures, repositories, client-server, pipes and filters. The document also provides examples of architectures for different types of applications like transaction processing systems and information systems.
The document provides an overview of architectural design topics including:
- Architectural design decisions involve choices around application architecture, distribution, styles, and documentation.
- Architectural views provide different perspectives of a system's modules, runtime processes, and distribution.
- Architectural patterns like MVC and layered architectures capture proven design solutions.
- Application architectures provide templates for transaction processing, language processing, and information systems.
This document discusses architectural design and provides examples of architectural views, patterns, and decisions. It covers topics such as the 4+1 view model, layered architecture pattern, model-view-controller pattern, and how architectural decisions impact system characteristics such as performance, security, and maintainability. Key points are that architectural design represents a link between specification and design, and that views, patterns, and decisions are important aspects of documenting and designing software architectures.
Architectural design involves identifying major system components and their communications. Architectural views provide different perspectives of the system, such as conceptual, logical, process, and development views. Common architectural patterns include model-view-controller, layered, client-server, and pipe-and-filter architectures. Application architectures define common structures for transaction processing, information, and language processing systems.
This document summarizes key topics from Chapter 6 on architectural design, including:
- Architectural design decisions involve identifying subsystems, frameworks for control and communication, and describing the software architecture.
- Architectural views represent different perspectives of a system such as conceptual, logical, process, and development views.
- Architectural patterns like MVC, layered architectures, and client-server are common approaches that can be reused.
- Application architectures provide generic structures for transaction processing, language processing, and information systems.
This document provides an overview of topics related to architectural design, including architectural design decisions, views, patterns, and application architectures. It discusses software architecture and the goals of architectural design. Specific architectural patterns covered include Model-View-Controller (MVC) and layered architectures. Examples are provided to illustrate how these patterns can be applied.
The document discusses architectural design, including:
- Architectural design determines how a software system is organized and structured. It identifies the main components and relationships.
- Architectural views show different perspectives of a system, such as logical, process, development, and physical views. Common patterns like model-view-controller and layered architectures are also covered.
- Architectural decisions impact system characteristics like performance, security, and maintainability. Common application architectures are also discussed.
The document discusses architectural design and various architectural concepts. It covers topics like architectural design decisions, architectural views using different models, common architectural patterns like MVC and layered architectures, application architectures, and how architectural design is concerned with organizing a software system and identifying its main structural components and relationships.
The document discusses architectural design and provides information on architectural design decisions, views, patterns, and levels of abstraction. It describes architecture in the small as concerned with individual programs, while architecture in the large refers to complex enterprise systems. There are advantages to explicitly designing architecture such as stakeholder communication, system analysis, and large-scale reuse. Architectural views include logical, process, development, and physical views. Design decisions depend on requirements like performance, security, safety, availability, and maintainability. Common patterns include model-view-controller and layered architectures.
Subject: Software Architecture Design
Topic: Distributed Architecture
In this presentation, you will learn about design pattern, softawre architecture, distributed architecture, basis of distributed architecture, why distributed architecture, need of distributed architecture, advantages and disadvantages of DA and much more.
Rate my presentation, It's designed graphically.
This document discusses components, component-based development, software architectures, frameworks, and patterns. It covers topics such as:
- Defining components and their interfaces.
- Object-oriented components in Java and how Java classes can function as reusable components.
- Different architectural styles including data-flow, data-centered, virtual machine, and call-return styles.
- Frameworks, which combine an architecture and component repository to facilitate development, and product lines which develop a range of products using a common framework.
- Common patterns like model-view-controller (MVC) and how patterns exist at different levels from architectural to design to code idioms.
Architectural Design in Software Engineering SE10koolkampus
The document introduces architectural design and discusses its importance in establishing the overall structure of a software system. It explains that multiple models are required to document a software architecture and describes common types of architectural models, including static, dynamic, interface, relationships, and domain-specific models. The document also discusses advantages of explicit architecture, the architectural design process, subsystems and modules, architectural styles, and attributes like performance, security, safety, availability, and maintainability.
The document discusses software architecture, including:
1. Definitions of software architecture and how it is influenced.
2. Common sections of a software architecture document such as introduction, views, goals and quality.
3. Architectural patterns and views including model-view-controller, layered patterns, and the "4+1" views of logical, process, deployment, and implementation.
4. How architecture addresses concerns like complexity, communication, and early decisions.
This document discusses an approach to assembling software products using a product line approach. It presents a separation continuum that separates concerns both vertically (from abstract to implementation layers) and horizontally (between human-facing and machine-facing aspects). An application assembly approach is then discussed where a product line architecture is tied to this separation continuum, allowing high productivity by reusing pre-built software assets to realize new product lines. The approach aims to facilitate experimentation in building large-scale application assembly capabilities.
Unit 5- Architectural Design in software engineering arvind pandey
This document provides an overview of architectural design for software systems. It discusses topics like system organization, decomposition styles, and control styles. The key aspects covered are:
1. Architectural design identifies the subsystems, framework for control/communication, and is described in a software architecture.
2. Common decisions include system structure, distribution, styles, decomposition, and control strategy. Models are used to document the design.
3. Organization styles include repository (shared data), client-server (shared services), and layered (abstract machines). Decomposition can be through objects or pipelines. Control can be centralized or event-based.
This document provides an overview of topics covered in Chapter 7 on software design and implementation, including object-oriented design using UML, design patterns, implementation issues, and open source development. It discusses the design and implementation process, build vs buy approaches, object-oriented design processes involving system models, and key activities like defining system context, identifying objects and interfaces. Specific examples are provided for designing a wilderness weather station system.
The document discusses object-oriented design and its role in software development. It describes how design builds upon analysis to provide implementation details. Key aspects of object-oriented design include defining a multilayered architecture, specifying subsystems and components, describing classes and objects, and defining communication mechanisms. The input to design comes from artifacts created in analysis like use cases and class models. The output of design serves as a blueprint to guide construction.
保密服务明尼苏达大学莫里斯分校英文毕业证书影本美国成绩单明尼苏达大学莫里斯分校文凭【q微1954292140】办理明尼苏达大学莫里斯分校学位证(UMM毕业证书)原版高仿成绩单【q微1954292140】帮您解决在美国明尼苏达大学莫里斯分校未毕业难题(University of Minnesota, Morris)文凭购买、毕业证购买、大学文凭购买、大学毕业证购买、买文凭、日韩文凭、英国大学文凭、美国大学文凭、澳洲大学文凭、加拿大大学文凭(q微1954292140)新加坡大学文凭、新西兰大学文凭、爱尔兰文凭、西班牙文凭、德国文凭、教育部认证,买毕业证,毕业证购买,买大学文凭,购买日韩毕业证、英国大学毕业证、美国大学毕业证、澳洲大学毕业证、加拿大大学毕业证(q微1954292140)新加坡大学毕业证、新西兰大学毕业证、爱尔兰毕业证、西班牙毕业证、德国毕业证,回国证明,留信网认证,留信认证办理,学历认证。从而完成就业。明尼苏达大学莫里斯分校毕业证办理,明尼苏达大学莫里斯分校文凭办理,明尼苏达大学莫里斯分校成绩单办理和真实留信认证、留服认证、明尼苏达大学莫里斯分校学历认证。学院文凭定制,明尼苏达大学莫里斯分校原版文凭补办,扫描件文凭定做,100%文凭复刻。
特殊原因导致无法毕业,也可以联系我们帮您办理相关材料:
1:在明尼苏达大学莫里斯分校挂科了,不想读了,成绩不理想怎么办???
2:打算回国了,找工作的时候,需要提供认证《UMM成绩单购买办理明尼苏达大学莫里斯分校毕业证书范本》【Q/WeChat:1954292140】Buy University of Minnesota, Morris Diploma《正式成绩单论文没过》有文凭却得不到认证。又该怎么办???美国毕业证购买,美国文凭购买,【q微1954292140】美国文凭购买,美国文凭定制,美国文凭补办。专业在线定制美国大学文凭,定做美国本科文凭,【q微1954292140】复制美国University of Minnesota, Morris completion letter。在线快速补办美国本科毕业证、硕士文凭证书,购买美国学位证、明尼苏达大学莫里斯分校Offer,美国大学文凭在线购买。
美国文凭明尼苏达大学莫里斯分校成绩单,UMM毕业证【q微1954292140】办理美国明尼苏达大学莫里斯分校毕业证(UMM毕业证书)【q微1954292140】成绩单COPY明尼苏达大学莫里斯分校offer/学位证国外文凭办理、留信官方学历认证(永久存档真实可查)采用学校原版纸张、特殊工艺完全按照原版一比一制作。帮你解决明尼苏达大学莫里斯分校学历学位认证难题。
主营项目:
1、真实教育部国外学历学位认证《美国毕业文凭证书快速办理明尼苏达大学莫里斯分校修改成绩单分数电子版》【q微1954292140】《论文没过明尼苏达大学莫里斯分校正式成绩单》,教育部存档,教育部留服网站100%可查.
2、办理UMM毕业证,改成绩单《UMM毕业证明办理明尼苏达大学莫里斯分校毕业证样本》【Q/WeChat:1954292140】Buy University of Minnesota, Morris Certificates《正式成绩单论文没过》,明尼苏达大学莫里斯分校Offer、在读证明、学生卡、信封、证明信等全套材料,从防伪到印刷,从水印到钢印烫金,高精仿度跟学校原版100%相同.
3、真实使馆认证(即留学人员回国证明),使馆存档可通过大使馆查询确认.
4、留信网认证,国家专业人才认证中心颁发入库证书,留信网存档可查.
《明尼苏达大学莫里斯分校国外学历认证美国毕业证书办理UMM100%文凭复刻》【q微1954292140】学位证1:1完美还原海外各大学毕业材料上的工艺:水印,阴影底纹,钢印LOGO烫金烫银,LOGO烫金烫银复合重叠。文字图案浮雕、激光镭射、紫外荧光、温感、复印防伪等防伪工艺。
高仿真还原美国文凭证书和外壳,定制美国明尼苏达大学莫里斯分校成绩单和信封。成绩单办理UMM毕业证【q微1954292140】办理美国明尼苏达大学莫里斯分校毕业证(UMM毕业证书)【q微1954292140】做一个在线本科文凭明尼苏达大学莫里斯分校offer/学位证研究生文凭、留信官方学历认证(永久存档真实可查)采用学校原版纸张、特殊工艺完全按照原版一比一制作。帮你解决明尼苏达大学莫里斯分校学历学位认证难题。
明尼苏达大学莫里斯分校offer/学位证、留信官方学历认证(永久存档真实可查)采用学校原版纸张、特殊工艺完全按照原版一比一制作【q微1954292140】Buy University of Minnesota, Morris Diploma购买美国毕业证,购买英国毕业证,购买澳洲毕业证,购买加拿大毕业证,以及德国毕业证,购买法国毕业证(q微1954292140)购买荷兰毕业证、购买瑞士毕业证、购买日本毕业证、购买韩国毕业证、购买新西兰毕业证、购买新加坡毕业证、购买西班牙毕业证、购买马来西亚毕业证等。包括了本科毕业证,硕士毕业证。
This document discusses architectural design and provides examples of architectural views, patterns, and decisions. It covers topics such as the 4+1 view model, layered architecture pattern, model-view-controller pattern, and how architectural decisions impact system characteristics such as performance, security, and maintainability. Key points are that architectural design represents a link between specification and design, and that views, patterns, and decisions are important aspects of documenting and designing software architectures.
Architectural design involves identifying major system components and their communications. Architectural views provide different perspectives of the system, such as conceptual, logical, process, and development views. Common architectural patterns include model-view-controller, layered, client-server, and pipe-and-filter architectures. Application architectures define common structures for transaction processing, information, and language processing systems.
This document summarizes key topics from Chapter 6 on architectural design, including:
- Architectural design decisions involve identifying subsystems, frameworks for control and communication, and describing the software architecture.
- Architectural views represent different perspectives of a system such as conceptual, logical, process, and development views.
- Architectural patterns like MVC, layered architectures, and client-server are common approaches that can be reused.
- Application architectures provide generic structures for transaction processing, language processing, and information systems.
This document provides an overview of topics related to architectural design, including architectural design decisions, views, patterns, and application architectures. It discusses software architecture and the goals of architectural design. Specific architectural patterns covered include Model-View-Controller (MVC) and layered architectures. Examples are provided to illustrate how these patterns can be applied.
The document discusses architectural design, including:
- Architectural design determines how a software system is organized and structured. It identifies the main components and relationships.
- Architectural views show different perspectives of a system, such as logical, process, development, and physical views. Common patterns like model-view-controller and layered architectures are also covered.
- Architectural decisions impact system characteristics like performance, security, and maintainability. Common application architectures are also discussed.
The document discusses architectural design and various architectural concepts. It covers topics like architectural design decisions, architectural views using different models, common architectural patterns like MVC and layered architectures, application architectures, and how architectural design is concerned with organizing a software system and identifying its main structural components and relationships.
The document discusses architectural design and provides information on architectural design decisions, views, patterns, and levels of abstraction. It describes architecture in the small as concerned with individual programs, while architecture in the large refers to complex enterprise systems. There are advantages to explicitly designing architecture such as stakeholder communication, system analysis, and large-scale reuse. Architectural views include logical, process, development, and physical views. Design decisions depend on requirements like performance, security, safety, availability, and maintainability. Common patterns include model-view-controller and layered architectures.
Subject: Software Architecture Design
Topic: Distributed Architecture
In this presentation, you will learn about design pattern, softawre architecture, distributed architecture, basis of distributed architecture, why distributed architecture, need of distributed architecture, advantages and disadvantages of DA and much more.
Rate my presentation, It's designed graphically.
This document discusses components, component-based development, software architectures, frameworks, and patterns. It covers topics such as:
- Defining components and their interfaces.
- Object-oriented components in Java and how Java classes can function as reusable components.
- Different architectural styles including data-flow, data-centered, virtual machine, and call-return styles.
- Frameworks, which combine an architecture and component repository to facilitate development, and product lines which develop a range of products using a common framework.
- Common patterns like model-view-controller (MVC) and how patterns exist at different levels from architectural to design to code idioms.
Architectural Design in Software Engineering SE10koolkampus
The document introduces architectural design and discusses its importance in establishing the overall structure of a software system. It explains that multiple models are required to document a software architecture and describes common types of architectural models, including static, dynamic, interface, relationships, and domain-specific models. The document also discusses advantages of explicit architecture, the architectural design process, subsystems and modules, architectural styles, and attributes like performance, security, safety, availability, and maintainability.
The document discusses software architecture, including:
1. Definitions of software architecture and how it is influenced.
2. Common sections of a software architecture document such as introduction, views, goals and quality.
3. Architectural patterns and views including model-view-controller, layered patterns, and the "4+1" views of logical, process, deployment, and implementation.
4. How architecture addresses concerns like complexity, communication, and early decisions.
This document discusses an approach to assembling software products using a product line approach. It presents a separation continuum that separates concerns both vertically (from abstract to implementation layers) and horizontally (between human-facing and machine-facing aspects). An application assembly approach is then discussed where a product line architecture is tied to this separation continuum, allowing high productivity by reusing pre-built software assets to realize new product lines. The approach aims to facilitate experimentation in building large-scale application assembly capabilities.
Unit 5- Architectural Design in software engineering arvind pandey
This document provides an overview of architectural design for software systems. It discusses topics like system organization, decomposition styles, and control styles. The key aspects covered are:
1. Architectural design identifies the subsystems, framework for control/communication, and is described in a software architecture.
2. Common decisions include system structure, distribution, styles, decomposition, and control strategy. Models are used to document the design.
3. Organization styles include repository (shared data), client-server (shared services), and layered (abstract machines). Decomposition can be through objects or pipelines. Control can be centralized or event-based.
This document provides an overview of topics covered in Chapter 7 on software design and implementation, including object-oriented design using UML, design patterns, implementation issues, and open source development. It discusses the design and implementation process, build vs buy approaches, object-oriented design processes involving system models, and key activities like defining system context, identifying objects and interfaces. Specific examples are provided for designing a wilderness weather station system.
The document discusses object-oriented design and its role in software development. It describes how design builds upon analysis to provide implementation details. Key aspects of object-oriented design include defining a multilayered architecture, specifying subsystems and components, describing classes and objects, and defining communication mechanisms. The input to design comes from artifacts created in analysis like use cases and class models. The output of design serves as a blueprint to guide construction.
保密服务明尼苏达大学莫里斯分校英文毕业证书影本美国成绩单明尼苏达大学莫里斯分校文凭【q微1954292140】办理明尼苏达大学莫里斯分校学位证(UMM毕业证书)原版高仿成绩单【q微1954292140】帮您解决在美国明尼苏达大学莫里斯分校未毕业难题(University of Minnesota, Morris)文凭购买、毕业证购买、大学文凭购买、大学毕业证购买、买文凭、日韩文凭、英国大学文凭、美国大学文凭、澳洲大学文凭、加拿大大学文凭(q微1954292140)新加坡大学文凭、新西兰大学文凭、爱尔兰文凭、西班牙文凭、德国文凭、教育部认证,买毕业证,毕业证购买,买大学文凭,购买日韩毕业证、英国大学毕业证、美国大学毕业证、澳洲大学毕业证、加拿大大学毕业证(q微1954292140)新加坡大学毕业证、新西兰大学毕业证、爱尔兰毕业证、西班牙毕业证、德国毕业证,回国证明,留信网认证,留信认证办理,学历认证。从而完成就业。明尼苏达大学莫里斯分校毕业证办理,明尼苏达大学莫里斯分校文凭办理,明尼苏达大学莫里斯分校成绩单办理和真实留信认证、留服认证、明尼苏达大学莫里斯分校学历认证。学院文凭定制,明尼苏达大学莫里斯分校原版文凭补办,扫描件文凭定做,100%文凭复刻。
特殊原因导致无法毕业,也可以联系我们帮您办理相关材料:
1:在明尼苏达大学莫里斯分校挂科了,不想读了,成绩不理想怎么办???
2:打算回国了,找工作的时候,需要提供认证《UMM成绩单购买办理明尼苏达大学莫里斯分校毕业证书范本》【Q/WeChat:1954292140】Buy University of Minnesota, Morris Diploma《正式成绩单论文没过》有文凭却得不到认证。又该怎么办???美国毕业证购买,美国文凭购买,【q微1954292140】美国文凭购买,美国文凭定制,美国文凭补办。专业在线定制美国大学文凭,定做美国本科文凭,【q微1954292140】复制美国University of Minnesota, Morris completion letter。在线快速补办美国本科毕业证、硕士文凭证书,购买美国学位证、明尼苏达大学莫里斯分校Offer,美国大学文凭在线购买。
美国文凭明尼苏达大学莫里斯分校成绩单,UMM毕业证【q微1954292140】办理美国明尼苏达大学莫里斯分校毕业证(UMM毕业证书)【q微1954292140】成绩单COPY明尼苏达大学莫里斯分校offer/学位证国外文凭办理、留信官方学历认证(永久存档真实可查)采用学校原版纸张、特殊工艺完全按照原版一比一制作。帮你解决明尼苏达大学莫里斯分校学历学位认证难题。
主营项目:
1、真实教育部国外学历学位认证《美国毕业文凭证书快速办理明尼苏达大学莫里斯分校修改成绩单分数电子版》【q微1954292140】《论文没过明尼苏达大学莫里斯分校正式成绩单》,教育部存档,教育部留服网站100%可查.
2、办理UMM毕业证,改成绩单《UMM毕业证明办理明尼苏达大学莫里斯分校毕业证样本》【Q/WeChat:1954292140】Buy University of Minnesota, Morris Certificates《正式成绩单论文没过》,明尼苏达大学莫里斯分校Offer、在读证明、学生卡、信封、证明信等全套材料,从防伪到印刷,从水印到钢印烫金,高精仿度跟学校原版100%相同.
3、真实使馆认证(即留学人员回国证明),使馆存档可通过大使馆查询确认.
4、留信网认证,国家专业人才认证中心颁发入库证书,留信网存档可查.
《明尼苏达大学莫里斯分校国外学历认证美国毕业证书办理UMM100%文凭复刻》【q微1954292140】学位证1:1完美还原海外各大学毕业材料上的工艺:水印,阴影底纹,钢印LOGO烫金烫银,LOGO烫金烫银复合重叠。文字图案浮雕、激光镭射、紫外荧光、温感、复印防伪等防伪工艺。
高仿真还原美国文凭证书和外壳,定制美国明尼苏达大学莫里斯分校成绩单和信封。成绩单办理UMM毕业证【q微1954292140】办理美国明尼苏达大学莫里斯分校毕业证(UMM毕业证书)【q微1954292140】做一个在线本科文凭明尼苏达大学莫里斯分校offer/学位证研究生文凭、留信官方学历认证(永久存档真实可查)采用学校原版纸张、特殊工艺完全按照原版一比一制作。帮你解决明尼苏达大学莫里斯分校学历学位认证难题。
明尼苏达大学莫里斯分校offer/学位证、留信官方学历认证(永久存档真实可查)采用学校原版纸张、特殊工艺完全按照原版一比一制作【q微1954292140】Buy University of Minnesota, Morris Diploma购买美国毕业证,购买英国毕业证,购买澳洲毕业证,购买加拿大毕业证,以及德国毕业证,购买法国毕业证(q微1954292140)购买荷兰毕业证、购买瑞士毕业证、购买日本毕业证、购买韩国毕业证、购买新西兰毕业证、购买新加坡毕业证、购买西班牙毕业证、购买马来西亚毕业证等。包括了本科毕业证,硕士毕业证。
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdfGiacomo Vacca
Presented at Kamailio World 2025.
Establishing WebRTC sessions reliably and quickly, and maintaining good media quality throughout a session, are ongoing challenges for service providers. This presentation dives into the details of session negotiation and media setup, with a focus on troubleshooting techniques and diagnostic tools. Special attention will be given to scenarios involving FreeSWITCH as the media server and Kamailio as the signalling proxy, highlighting common pitfalls and practical solutions drawn from real-world deployments.
Global Networking Trends, presented at TWNIC 43rd IP Open Policy MeetingAPNIC
Jia Rong Low, Director General at APNIC, presented on 'Global Networking Trends' at the 6th ICANN APAC-TWNIC Engagement Forum and 43rd TWNIC OPM held in Taipei from 22 to 24 April 2025.
What Is Cloud-to-Cloud Migration?
Moving workloads, data, and services from one cloud provider to another (e.g., AWS → Azure).
Common in multi-cloud strategies, M&A, or cost optimization efforts.
Key Challenges
Data integrity & security
Downtime or service interruption
Compatibility of services & APIs
Managing hybrid environments
Compliance during migration
3. Software architecture Definition
The design process for identifying the sub-systems
making up a system and the framework for sub-system
control and communication is architectural design.
The output of this design process is a description of the
software architecture.
3
Chapter 6 Architectural design
4. The architecture of a packing robot control
system – Box and Line Diagram
4
Chapter 6 Architectural design
5. Architectural design decisions – common
questions (though a creative process)
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?
5
Chapter 6 Architectural design
6. Architecture reuse
Systems in the same domain often have similar
architectures that reflect domain concepts.
Application product lines are built around a core
architecture with variants that satisfy particular customer
requirements.
The architecture of a system may be designed around
one of more architectural patterns or ‘styles’.
These capture the essence of an architecture and can be
instantiated in different ways.
Discussed later in this lecture.
6
Chapter 6 Architectural design
7. Architecture and system characteristics
Performance
Localise critical operations and minimise communications. Use large
rather than fine-grain components or replicate.
Security
Use a layered architecture with critical assets in the inner layers.
Safety
Localise 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.
7
Chapter 6 Architectural design
8. 4 + 1 view model of software architecture
A logical view, which shows the key abstractions in the
system as objects or object classes.
A process view, which shows how, at run-time, the
system is composed of interacting processes.
A development view, which shows how the software is
decomposed for development.
A physical view, which shows the system hardware and
how software components are distributed across the
processors in the system.
Related using use cases or scenarios (+1)
8
Chapter 6 Architectural design
9. Architectural patterns
Patterns are a means of representing, sharing and
reusing knowledge.
An architectural pattern is a stylized description of good
design practice, which has been tried and tested in
different environments.
Patterns should include information about when they are
and when the are not useful.
Patterns may be represented using tabular and graphical
descriptions.
9
Chapter 6 Architectural design
10. The Model-View-Controller (MVC) pattern
Name MVC (Model-View-Controller)
Description Separates presentation and interaction from the system data. The system is
structured into three logical components that interact with each other. The
Model component manages the system data and associated operations on
that data. The View component defines and manages how the data is
presented to the user. The Controller component manages user interaction
(e.g., key presses, mouse clicks, etc.) and passes these interactions to the
View and the Model. See Figure 6.3.
Example Figure 6.4 shows the architecture of a web-based application system
organized using the MVC pattern.
When used Used when there are multiple ways to view and interact with data. Also used
when the future requirements for interaction and presentation of data are
unknown.
Advantages Allows the data to change independently of its representation and vice versa.
Supports presentation of the same data in different ways with changes made
in one representation shown in all of them.
Disadvantages Can involve additional code and code complexity when the data model and
interactions are simple.
10
Chapter 6 Architectural design
11. The organization of the Model-View-Controller
11
Chapter 6 Architectural design
13. Layered architecture
Used to model the interfacing of sub-systems.
Organises 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.
However, often artificial to structure systems in this way.
13
Chapter 6 Architectural design
14. The Layered architecture pattern
Name Layered architecture
Description Organizes the system into layers with related functionality
associated with each layer. A layer provides services to the
layer above it so the lowest-level layers represent core services
that are likely to be used throughout the system. See Figure 6.6.
Example A layered model of a system for sharing copyright documents
held in different libraries, as shown in Figure 6.7.
When used Used when building new facilities on top of existing systems;
when the development is spread across several teams with
each team responsibility for a layer of functionality; when there
is a requirement for multi-level security.
Advantages Allows replacement of entire layers so long as the interface is
maintained. Redundant facilities (e.g., authentication) can be
provided in each layer to increase the dependability of the
system.
Disadvantages In practice, providing a clean separation between layers is often
difficult and a high-level layer may have to interact directly with
lower-level layers rather than through the layer immediately
below it. Performance can be a problem because of multiple
levels of interpretation of a service request as it is processed at
each layer.
14
Chapter 6 Architectural design
20. Repository architecture
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 a
this is an efficient data sharing mechanism.
20
Chapter 6 Architectural design
21. The Repository Architecture pattern
Name Repository
Description All data in a system is managed in a central repository that is
accessible to all system components. Components do not
interact directly, only through the repository.
Example Figure 6.9 is an example of an IDE where the components
use a repository of system design information. Each software
tool generates information which is then available for use by
other tools.
When used You should use this pattern when you have a system in which
large volumes of information are generated that has to be
stored for a long time. You may also use it in data-driven
systems where the inclusion of data in the repository triggers
an action or tool.
Advantages Components can be independent—they do not need to know
of the existence of other components. Changes made by one
component can be propagated to all components. All data can
be managed consistently (e.g., backups done at the same
time) as it is all in one place.
Disadvantages The repository is a single point of failure so problems in the
repository affect the whole system. May be inefficiencies in
organizing all communication through the repository.
Distributing the repository across several computers may be
difficult.
21
Chapter 6 Architectural design
23. Client-server architecture
Distributed system model which shows how data and
processing is distributed across a range of components.
Can be implemented on a single computer.
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.
23
Chapter 6 Architectural design
24. The Client–server pattern
Name Client-server
Description In a client–server architecture, the functionality of the system is
organized into services, with each service delivered from a
separate server. Clients are users of these services and access
servers to make use of them.
Example Figure 6.11 is an example of a film and video/DVD library
organized as a client–server system.
When used Used when data in a shared database has to be accessed from a
range of locations. Because servers can be replicated, may also
be used when the load on a system is variable.
Advantages The principal advantage of this model is that servers can be
distributed across a network. General functionality (e.g., a printing
service) can be available to all clients and does not need to be
implemented by all services.
Disadvantages Each service is a single point of failure so susceptible to denial of
service attacks or server failure. Performance may be
unpredictable because it depends on the network as well as the
system. May be management problems if servers are owned by
different organizations.
24
Chapter 6 Architectural design
26. Pipe and filter architecture
Functional transformations process their inputs to
produce outputs.
May be referred to as a pipe and filter model (as in UNIX
shell).
Variants of this approach are very common. When
transformations are sequential, this is a batch sequential
model which is extensively used in data processing
systems.
Not really suitable for interactive systems.
26
Chapter 6 Architectural design
27. The pipe and filter pattern
Name Pipe and filter
Description The processing of the data in a system is organized so that each
processing component (filter) is discrete and carries out one type of
data transformation. The data flows (as in a pipe) from one component
to another for processing.
Example Figure 6.13 is an example of a pipe and filter system used for
processing invoices.
When used Commonly used in data processing applications (both batch- and
transaction-based) where inputs are processed in separate stages to
generate related outputs.
Advantages Easy to understand and supports transformation reuse. Workflow style
matches the structure of many business processes. Evolution by
adding transformations is straightforward. Can be implemented as
either a sequential or concurrent system.
Disadvantages The format for data transfer has to be agreed upon between
communicating transformations. Each transformation must parse its
input and unparse its output to the agreed form. This increases
system overhead and may mean that it is impossible to reuse
functional transformations that use incompatible data structures.
27
Chapter 6 Architectural design
28. An example of the pipe and filter architecture
28
Chapter 6 Architectural design
29. Application architectures
A generic application architecture is an architecture for a
type of software system that may be configured and
adapted to create a system that meets specific
requirements.
As a starting point for architectural design.
As a design checklist.
As a way of organising the work of the development team.
As a means of assessing components for reuse.
As a vocabulary for talking about application types.
29
Chapter 6 Architectural design
30. Examples of application types
Data processing applications
Data driven applications that process data in batches without explicit
user intervention during the processing.
Transaction processing applications
Data-centred applications that process user requests and update
information in a system database.
Event processing systems
Applications where system actions depend on interpreting events
from the system’s environment.
Language processing systems
Applications where the users’ intentions are specified in a formal
language that is processed and interpreted by the system.
Chapter 6 Architectural design 30
31. Summary
Architectural design decisions
Pattern or Application; Distribution of responsibilities;
Control strategy; Modules; How to model
Architectural views
Logical, process, development, physical + use cases
Architectural patterns
MVC, Layered,
Application architectures
Repository, client-server, pipe and filter
Chapter 6 Architectural design 31