0%

250325-系统涉及

系统设计

界面设计

界面设计

  • 置于用户控制之下(典型反例:各种广告)
  • 减少用户的记忆负担(默认的一些图标,X是关闭,之类)
  • 保持界面的一致性()

结构化设计

alt text

自顶向下,逐步分解求精

  • 概要设计(分解模块,模块之间的关系)
  • 详细设计(具体任务选择合适的处理办法)

    原则

  • 模块独立性原则;高内聚(只做一件事),低耦合()
  • 模块保持的大小适中
  • 多扇入,少扇出(自己本身是高度复用,少调用别人)
  • 深度和宽度均不宜过高

内聚程度(从高到低)

内聚

  • 功能内聚(单一功能)
  • 顺序内聚(顺序执行)
  • 通信内聚(一个数据结构)
  • 过程内聚(特定次序执行,不可以调整)
  • 时间内聚(数据初始化,在同一段时间内完成)
  • 逻辑内聚(一组任务)
  • 偶然内聚

低耦合(从低到高)

  • 非直接耦合 (与其他模块没有直接关系)
  • 数据耦合(传递简单参数)
  • 标记耦合(传递结构体)
  • 控制耦合(传递控制流程信息,比如 传递了5,但是5是用来做判断流程)
  • 外部耦合(全局变量)
  • 公共耦合(公共数据区域)
  • 内容耦合 (访问另一模块的内部数据)

面向对象设计

类的分类

alt text

  • 边界类(interface)
  • 控制类(应用逻辑、业务逻辑、数据库访问逻辑)
  • 实体类(用户类)

    原则

    alt text

软件测试

alt text

白盒测试与黑盒测试

  • 白盒测试(结构测试)
    • 路径覆盖
    • 逻辑覆盖
  • 黑盒测试(功能测试)
    • 等价类划分(不同类的问题)
    • 边界值分析

执行方式

  • 人工
  • 自动化
    • 先写脚本-> 自动化执行
    • 不适合项目周期短,需求变动频繁
    • 单元自动化测试、接口自动化测试、UI 自动化测试

软件测试阶段

  • 单元测试(详细设计,内部模块的测试)
  • 集成测试(概要设计,模块之间的测试)
  • 系统测试(需求分档,功能测试、性能测试、验收测试、压力测试等)
  • 确认测试(需求文档,新版教程移除)

集成测试

  • 一次性组装(风险高)
    • 自顶向下(可能需要加桩模块)
    • 自底向下(模拟数据)
  • 增量式组装(测试全面)

系统测试

  • 功能测试
  • 性能测试
    • 负载测试(各种工作负载性能)
    • 压力测试(测上线,极值,系统瓶颈)
    • 强度测试(测下线,极值,资源特别低情况运行)
    • 容量测试(并发测试)
    • 可靠性测试(MTTF之类的参数)
  • 健壮性测试
  • 用户界面测试
  • 安全性测试
  • 安装与反安装测试