所有架构级的设计决策应该根据被设计系统的功能、行为和社会学等方面的需求来作出,这是一个原则,既适用于软件架构,同样也适用于传统的建筑架构领域。“形式追随功能”的指导方针来自从数百年失败的建筑项目中获得的经验,
但是却常常被软件从业者忽视。
design-by-buzzword(按照时髦的词汇来做设计)是一种常见的现象。
一个软件架构是一个软件系统在其操作的某个阶段的运行时(run-time)元素的抽象。
软件系统通常拥有多个操作阶段,例如启动、初始化、正常处理、重新初始化和停止。每个操作阶段都有自己的架构。
软件架构的核心是抽象原则:通过封装来隐藏系统的一些细节,从而更好地识别和支持系统的属性。
软件架构是软件系统在运行时的抽象,而软件结构则是静态源代码的属性。
一个软件架构由一些架构元素(组件、连接器和数据)的配置来定义,这些元素之间的关系受到约束,以获得想要得到的一组架构属性。
一个组件是软件指令和内部状态的一个抽象单元,通过其接口提供对于数据的转换。
一个连接器是对于组件之间的通讯、协调或者合作进行仲裁的一种抽象机制。
连接器是是对于组件之间的通讯、协调或者合作进行仲裁的一种抽象机制。
连接器通过将数据元素从它的一个接口转移(transferring)到另一个接口而不改变数据,来支持组件之间的通信。在其内部,一个连接器可以包含一个由组件组成的子系统,为了转移的目的对数据进行某种转换、执行转移、然后做相反的转换并交付与原始数据相同的结果。然而,架构所捕获到的外部行为的抽象可以忽略这些细节。与之相反,从外部的角度观察,组件可以(尽管并非总是)对数据进行转换。
一个数据是组件通过一个连接器接收或发送的信息元素。
一个配置是在系统的运行期间组件、连接器和数据之间的架构关系的结构。
软件架构的架构属性集合包括了对组件、连接器和数据的选择和排列所导致的所有属性。例如:进化的相对容易程度、组件的可重用性、效率、动态扩展能力;这些常常被称作品质属性(quality attributes)。
分享到:
相关推荐
Web 设计相关概念教学课件 本教学课件主要讲解了 Web 设计相关概念,包括 HTML、XHTML、DHTML、CSS、XML 等技术和标准。下面对这些概念进行详细解释。 HTML HTML(HyperText Markup Language)是一种基本的 WEB ...
下面将详细探讨Web程序设计的相关知识点。 首先,Web程序设计的基础是HTML(超文本标记语言),它是网页内容的结构化表示。HTML5是当前的标准,提供了更多的元素和功能,如音频、视频和离线存储,以提升用户体验。 ...
以下是基于这个主题的Web设计相关知识点: 1. **响应式设计**:在移动设备普及的今天,响应式设计是Web设计的基础。它允许网站根据用户设备的屏幕大小和方向自动调整布局、图片大小和脚本功能,确保在任何设备上都...
《无懈可击的WEB设计第二版》是一本由美国著名Web设计师及作家Dan Cederholm所著的书籍,它是Web标准设计领域的经典之作。本书全面论述了如何利用XHTML和CSS技术,提高网站的灵活性与适应性,使其能够适应不同的用户...
说明文件可能包括如何使用该平台,它的特色功能,以及与WEB设计相关的最佳实践。 综上所述,"WEB设计版精华荟萃"可能包含了以下知识点: 1. **设计基础**:讲解WEB设计的基本原理,如色彩搭配、字体选择、布局设计...
10. **部署与运维**:理解服务器配置、自动化部署、性能优化等相关知识,能确保Web应用的稳定运行。 通过阅读《Web程序设计 第5版》,读者不仅可以系统学习上述各方面的理论知识,还能通过实例练习提升实际操作能力...
Web程序设计是构建和维护基于Web的应用程序的过程,它涵盖了前端和后端开发的各个方面。..."Web程序设计18.csf" 文件可能是课程资料或练习文件,具体内容需解压查看,以便进一步学习和理解Web开发的相关概念和技能。
Web流程设计器是一款基于Java开发的流程自动化工具,其核心是JBPM(Java Business Process Management)工作流引擎。JBPM是一个开源的企业级工作流管理系统,它提供了业务流程的建模、部署、执行和监控功能,旨在...
【标签】"web"进一步确认了这个压缩包与Web技术相关,可能涉及的Web设计元素包括但不限于: 1. HTML (HyperText Markup Language):网页内容的基础结构语言,用于定义网页的布局和内容。 2. CSS (Cascading Style ...
课程设计的内容包括熟悉WWW服务器和WEB服务器的工作原理、熟悉套接字编程的相关知识、完成一个简单的WEB服务器的设计与实现、运行该服务器,并编写一个简单的HTML文件完成测试。 课程设计要求包括按要求编写课程...
在本“Web课程设计——明星网站设计”项目中,我们将深入探讨Web前端开发的核心技术和实践应用,特别是关于CSS样式表和HTML5的使用。这个课程旨在帮助学生掌握创建吸引人的、响应式的明星网站所需的技能。 首先,让...
Web程序设计是构建和维护基于...综上所述,"Web程序设计19"涵盖了Web开发的多个方面,包括前端和后端技术,以及与之相关的安全性、测试和项目管理。不断学习和掌握这些技术,将有助于成为一名全面且高效的Web开发者。
Web程序设计(关于电子商务)Web程序设计(关于电子商务)Web程序设计(关于电子商务)Web程序设计(关于电子商务)Web程序设计(关于电子商务)Web程序设计(关于电子商务)Web程序设计(关于电子商务)Web程序设计(关于...
【标题】"WEB程序设计课程设计案例"是一个实践性的项目,旨在通过实际操作来提升学习者在网页设计和开发领域的技能。在这个项目中,你将有机会应用所学的Web技术,包括HTML、CSS、JavaScript以及可能的服务器端编程...
Web设计涵盖了网页布局、色彩搭配、图形设计等多个方面,旨在提供用户友好的界面和流畅的交互体验。在这个项目中,我们的目标是设计一个关于中国文化馆的网站,因此,设计时需要充分考虑中国元素的融入,如传统图案...
在该文中深入讨论了采用基于WEB技术,并以工作流作为运行环境的电子...第三章提出了一个完备的、基于工作流的WEB电子表单设计系统架构;第四章列举了实现上述系统所必需的关键技术;最后在第五章结合Form Designer V1.0
《无懈可击的WEB设计》是Web设计领域的一本经典著作,其第二版更是针对现代Web技术的发展进行了全面更新和扩展。这本书旨在帮助读者理解并掌握创建高效、可用且吸引人的网页设计的关键原则和技巧。以下是根据标题、...
【标题】"Web课程设计报告(自认为还不错)"涵盖了Web开发的基础理论与实践应用,这份报告可能包含了一个全面的学习和项目实施过程。在Web开发领域,这通常涉及到前端技术、后端技术以及服务器管理等多个方面。以下...