软件工程

1 - 创建一个程序

2019-12-19 01:00 CST
2019-12-18 23:02 CST
CC BY-NC 4.0

1.1 一个简单的问题

  • 程序需求:定义和限定程序需要做什么的声明。
  • 设计约束:限制软件设计和实现方式的生命。

一个完整的问题描述包括程序需求(说明和限定程序的作用)和设计约束(描述了设计和实现程序的方式)。

  • 功能需求:一个程序需要做什么(程序的作用)。
  • 非功能需求:实现功能需求需要达到的方式(程序应该具备的特性,ilities)。

功能需求

  • 输入格式
  • 排序
  • 特殊情况、edge case

非功能需求

  • 性能需求
  • 实时性需求
  • 可修改性需求
  • 安全性需求
  • 可用性需求

设计约束

  • 用户界面:用户从系统看见、感知和听到的内容,CLI/GUI
  • 典型和最大输入规模(参考输入规模极大的外部排序)
  • 平台?
  • 进度需求

设计决策

  • 编程语言
  • 算法

1.2 测试

  • 黑盒测试:测试用例基于需求规约
  • 白盒测试:在查看设计和代码实现时设计测试用例
  • 混合测试

1.3 估计工作量

(规划工作量与追踪工作进度的一些基本方式,略)

1.4 实现

实现的几个要点:

  • 一致的编程约定
  • 仔细选择名称
  • 使用函数或方法前进行测试
  • 了解标准库
  • 进行代码审查

1.5 总结

编写程序必须考虑的问题:

  • 需求
  • 设计
  • 代码实现
  • 单元测试
  • 个人工作量估算
  • 用户界面