7.系统结构化开发

系统设计

概要设计与详细设计

  • 概要设计:总体结构设计、数据结构与数据库设计、文档、评审

  • 详细设计:模块内算法,模块内数据结构,数据库物理设计,代码,用户界面,文档,评审

系统设计原则

  • 分解-协调
  • 自顶向下
  • 信息隐蔽和抽象
  • 一致性
  • 明确性
  • 模块高内聚低耦合
  • 模块扇入扇出系数合理
  • 模块规模适当

WebAPP设计

多数采用敏捷开发(应用级别)

WebAPP需求模型

  • 内容模型:web界面包含的内容
  • 交互模型:用户与webApp采用的交互方式,用例,顺序(流程),状态,原型(布局)
  • 功能模型:计算与操作功能
  • 导航模型:超链接
  • 配置模型:描述WebApp所在环境与基础设施

WebApp设计

  • 架构设计:框架设计,用户,界面,数据的交互,常用设计构架–MVC(模型视图控制器)
  • 构件设计:单模块设计,是内容与功能的聚合包
  • 内容设计:内容对象的表现与导航的组织
  • 导航设计:定义导航路径

数据流图

结构化分析简称SA,自顶向下,逐步分解,是面向数据的,需建立数据流图(功能分析),状态转换图(行为分析),E-R图(建立数据模型),数据字典(名称解释),其核心考点为数据流图

构件

元素图元
数据流image-20210524082805596
加工image-20210524082813728
数据存储image-20210524082842629
外部实体image-20210524082852955

原则

  • 数据流必须经过加工,即输入源和输出源,必定有一方是加工
  • 父图与子图的输入输出流必须一致
  • 同一个加工,输入与输出的名字必须不同
  • 数据的来源,必须是输入数据加工后能产生的,或者就是输入数据的部分

测试

测试类型

  • 动态测试
    • 黑盒测试:功能性测试,根据功能设计用例,测试软件
    • 白盒测试:结构性测试,根据代码逻辑设计用例,进行用例覆盖
  • 静态测试
    • 桌前自测:程序员自测
    • 代码审查:评审小组审查
    • 代码走查:测试提供输入条件,程序员对代码逐行调试,是否符合原设计逻辑

测试策略

  • 自底向上:需编写驱动程序,逐一合并模块
  • 自顶向下:需编写桩程序,逐步向下测试
  • 三明治:都做,但工作量大

测试阶段

  • 单元测试
  • 集成测试
  • 确认测试
    • 内部确认测试:内部根据SRS设计文档,测试
    • Alpha测试:用户开发环境测试
    • Beta测试:用户实际使用环境测试
    • 验收测试
  • 系统测试:测试是否满足设计需求与合同要求
  • 配置项测试:
  • 回归测试:测试软件变更后,变更部分的正确性,原有功能的不损害性

测试用例

黑盒测试用例
  • 等价类划分:同类取一,一次只能设置一个错误条件,控制变量
  • 边界值划分:边界值也要测一下
  • 错误推测:凭经验判断,可能出错的点,进行测试
  • 因果图:结构反推原因,无固定方法
白盒测试用例
  • 语句覆盖SC:所有语句都要执行一遍
  • 判断覆盖DC:每个判定条件的真和假都要被覆盖
  • 条件覆盖CC:单个判断条件内的每个独立子条件都要执行一遍真和假
  • 条件判定组合覆盖CDC:同时满足判断覆盖与条件覆盖
  • 多条件覆盖MCC:n个子条件的测试用例为2^n
  • 修正判定条件覆盖MCDC:控制变量
  • 路径覆盖:所有可行路径均覆盖

系统转换

  • 直接转换:风险大,有点节约成本

  • 并行转换:新系统试运行,优点:风险小,可对新旧系统性能进行比较,缺点:成本高,数据转换难

  • 分段转换:拆分子系统,依次试用运行每个子系统。缺点:耗时,需协调数据接口

  • 数据转换与迁移:

    • 系统切换前工具迁移
    • 系统切换前手动录入
    • 系统切换后通过新系统生成
    • 转换过程ETL:抽取,转换,装载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值