软件架构概述

一. 什么是软件架构

计算机系统的软件架构是解释该系统所需的结构体的集合,其中包括:软件元素、元素之间相互关系,以及二者各自的属性——该定义来自卡内基梅隆大学软件工程研究所。

二. 架构为什么重要

软件架构的重要性在于它会影响整个软件系统。只有审慎地选择软件架构,才能降低风险,避免失败。

  • 架构是系统的骨架
  • 架构影响质量。
  • 架构与功能(基本上)是正交的
  • 架构约束程序

三. 架构何时重要

对于大规模或高复杂度的系统,需要特别重视架构。下面给出了五种存在架构高风险的特殊案例。

  • 小的解空间
  • 高的失败风险
  • 难以实现的质量属性
  • 全新的领域
  • 产品线

四. 如何运用软件架构?

4.1 架构无关的设计

这种方式几乎不关注架构。系统要么成为一个大泥鳅,要么形成某种并非你有意为之的独特架构,要么在领域规范的引导下选用某一推定架构。

4.2 专注架构的设计

专注架构的设计往往需要使用架构层面的抽象概念(例如,各种组件及连接器)及架构层面的视图(例如,模块视图、运行时视图与部署视图)去解释问题。

4.3 提升架构的设计

对于专注架构的设计方式,开发者会审慎挑选适合其系统目标的架构。而提升架构的设计是一种更为严格的专注架构的设计。当采用提升架构的设计方式时,开发者会以保证系统的某一目标或属性为目的去设计架构。使用任何一种软件设计,要得到若干保证都是很困难的,不过提升架构的设计会力争通过架构决策来保证某一目标或属性。提升架构的想法是,一旦某一目标或属性被提升至架构中,开发者就无需再写任何代码去实现它。

五 架构建模

架构划分为三个主要模型:领域模型、设计模型与代码模型
领域模型描述了领域中不变的事实;设计模型描述了所要构建的系统;代码模型描述了系统的源代码。

  • 领域模型。领域模型表达了与系统相关的现实世界的不变事实。
  • 设计模型。设计模型主要是在设计者控制下。
  • 代码模型。代码模型即是系统的源代码实现。

其他

UML(统一建模语言)、4+1架构视图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值