《软件体系结构》——笔记(1)

今天开始网上上课了,第一节课便是《软件体系结构》。因为之前说过要利用好这个博客,所以我打算这学期在博客上开始写学习笔记,今天便从第一节课开始。

本门课大纲

  • 关于软件体系结构的基本概念和知识

  • 面向对象设计原则和分包原则

  • 质量属性

    需求分为功能性需求和非功能性需求,质量属性是关乎软件的质量,属于非功能性需求

  • 软件架构风格

    • 架构模式:C/S,B/S,MVC

    • 设计模式:工厂模式、简单工厂模式、单例模式等

      MVC:开发网站应用的主流架构

  • 软件产品线

软件开发历史

  • 软件的规模和复杂度越来越高
  • 软件的抽象程度越来越高
    • 机器语言–>汇编语言–>高级语言–>开发框架
    • 面向过程编程–>面向对象编程–>面向切面编程

架构设计的重要性

  • 好的架构设计对于软件系统成败至关重要

  • 架构设计比数据结构和程序算法更为重要

    架构设计为什么重要?

    • 随着软件的复杂度和规模的提升,软件失败的风险变得更大了,而且失败的成功更高
    • 架构设计的目的就是降低失败的风险
    • 一个良好的架构设计是弹性的、灵活的,易于扩展、易于维护易于添加新功能、易于演化
    • 做架构设计的时候可以把系统分解成模块,降低了复杂度,从而降低了风险

软件架构的好处

  • 提高开发效率
  • 降低开发量
  • 降低了软件失败的风险

软件体系结构定义

  • 软件架构

    • 软件元素:功能、接口、程序、类模块、层、子系统、客户端/服务器等
    • 可见属性:提供服务、性能特征、错误处理、共享资源使用等
    • 关键:这些元素之间的组合机制
  • 软件体系结构组成

    • 构成元素——组件(系统的逻辑或功能单元)
    • 交互机制——连接器(组件之间的交互规则或机制)
  • 简而言之

    • 软件体系结构设计 = 分解 + 组合

      分解/组合的作用

      • 降低软件设计和构建的复杂度

      • 控制软件开发的风险

      • 提高组织管理的效率

框架

  • 框架是解决特定问题的可重用的应用程序结构
  • 提供解决特定问题的必要的、基本的组件
  • 组件间的交互机制和约束
  • 提供基于框架开发的应用程序的上下文或环境
  • 通常而言,框架以类库形式提供。如 .NET架构、JavaEE框架等
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!

请我喝杯咖啡吧~

支付宝
微信