软件设计工程化实践

  • 以软件工程的方式来看,在进行程序编码之前会经历:需求,设计(概念,详细),编码,调试,发布等阶段
  • 而在设计阶段的概要和详细设计中会有不同的表示方式,典型的就是用UML进行分析
  • UML会以多种视图的方式对软件进行分析
    • 用例图
    • 类视图
    • 时序图
    • 状态图
    • 部署图
      ....
  • 当然,形式不是特别的重要,重要的是能够在真正编码前理清问题,避免重头再来,毕竟纸面上的设计要比真正的编码快得多。这也是为什么coding并不是特别有趣的原因(将纸面的设计转换为代码)。

针对咖啡机

  • 各个模块的划分
  • 模块间的相互关系
  • 核心的数据结构,算法
  • 典型的应用过程
  • 状态图
  • 一个具体的例子(肯定不完善,供参考)
    需要一款软件来控制硬件设备
    大致的步骤
    • 定义核心的需求:用例图
    • 从总体上看软件和上下文


      image.png
    • 单就软件本身,进行模块化分解


      类结构
    • 某些关键的算法或结构,对于核心数据结构,交互场景,算法甚至需要实际地编码验证


      类结构

      类结构

      类结构

      参数

      相互关系

      相互关系

      状态转换

      时序图

你可能感兴趣的:(软件设计工程化实践)