四、总体设计
目的:回答“概括的说,系统应该如何实现”
总体设计分两个阶段:
1.系统设计阶段,确定系统的具体实现方案
2.结构设计阶段,确定软件结构
1.设计过程
1.设想供选择的方案
2.选区合理的方案
3.推荐最佳方案
4.功能分解(结构设计及由哪些模块组成,确定每个模块的处理过程)
5.设计软件结构(层次图或者结构图)
6.设计数据库
7.制定测试计划
8.书写文档:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果
9.审查和复审
2.设计原理
1.模块化
把程序划分成独立命名且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求,把复杂的问题分解成容易解决的小问题
模块化和软件成本关系:根据总成本曲线,每个程序相应的有一个最适当得模块数目M,使系统的开发成本最小
2.抽象
抽出事务的本质特征而暂时不考虑他们的细节
3.逐步求精
4.信息隐藏和局部化
模块中所包含的信息不允许其他不需要这些信息的模块调用
信息局部化:把一些关系密切的软件元素屋里地址放的彼此靠近
5.模块独立
软件系统中每个模块只设计软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。
1.耦合
也叫块间关系。软件系统结构中各个模块间相互紧密联系程度的一种度量。
A.数据耦合:两个模块间彼此通过参数交换信息,交换的信息仅仅是数据
B.控制耦合:模块传递的信息中有控制信息
C.特征耦合:把整个数据结构作为参数传递,而被调用的模块是需要使用其中一部分数据
D.公共耦合:一组模块通过同一个共数据环境相互作用
E.内容耦合:1.一个模块直接访问另一个模块的内部数据
2.
2.内聚
也叫块内联系。一个模块内部各个元素彼此结合的紧密程度的度量。
A.偶然内聚
B.时间内聚
C.逻辑内聚
D.过程内聚
E.通信内聚
F.顺序内聚
G.功能内聚
模块的高内聚,低耦合原则叫做模块独立原则,也叫模块设计的原则。
五、详细设计
目的:确定应该怎样具体的实现所需要的系统。编码阶段可以直接吧这个描述翻译成莫衷语言书写的程序
1.结构程序设计
2.人机界面设计
1.设计问题
系统响应时间
用户帮助设施
出错信息处理
命令交互
2.设计过程
3.人机界面设计指南
一般交互指南
信息显示指南
数据输入指南
3.过程设计的工具
1.程序流程图
2.盒图(N-S图)
3.PAD(问题分析图表)图
4.判定表
5.判定树
6.过程设计语言(PDL)
正文形式表示数据和处理过程的设计工具
4.面向数据结构化的设计方法
1.jackson图
2.改进的jackson图
3.jackson方法
5.程序复杂程度的定量度量
六、实现
编码和测试统称为实现。
1.编码
1.选择程序语言
2.编码风格
1.程序内部文档
2.数据说明
3.语句构造
4.输入输出
5.效率
2.软件测试基础
1.目的:为了发现程序中的错误而执行程序的过程。
2.准则:
1.所有测试都应当追溯到用户需求
2.应该在测试开始之前指定出测试计划
3.pareto原理应用到测试中
4.从“小规模”开始到“大规模”
5.穷举测试是不可能的
6.为达到最佳测试效果,应有=由独立的第三方从事测试工作
3.测试方法
1.黑盒测试
2.白盒测试
4.测试步骤
1.单元测试(模块测试)
2.子系统测试:模块放在一起行成的子系统
3.系统测试:进过测试的子系统装配成完整的系统
4.验收测试(确认测试):验证系统能否慢足用户需求
5.平行运行:运行新旧系统,比较
5.测试阶段的信息流
3.单元测试