加油!最后一天!冲刺!
4.1设计过程
总体设计:又称为概要设计或初步设计
任务:1.确定系统中每个程序由哪些模块组成以及这些模块相互间的关系
2.划分出物理元素。包括程序、文件、数据库、文档等。
4.2设计原理***
模块化
模块:能够单独命名,有边界元素限定的程序元素的序列,是构成程序的基本构件。
模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
抽象
抽出事物的本质特性而暂不考虑细节
逐步求精
逐步揭露出底层细节,Miller法则:注意力集中在(7±2)上
信息隐藏与局部化
信息隐藏:指一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。主要是指模块的实现细节。
局部化:指把一些关系密切的软件元素物理地放的彼此靠近,它有助于实现信息隐藏。
模块独立
模块独立性:是模块化、抽象、信息隐蔽和局部化概念的直接结果。
模块独立是好设计的关键,设计是决定软件质量的关键环节。
度量标准:耦合、内聚。
一、耦合
是对一个软件结构内不同模块之间互连程序的度量。耦合强度取决于模块接口的复杂程度、通过接口的数据等
耦合性越高,模块独立性越弱。
二、内聚
是用来度量一个模块内部各个元素彼此相结合的紧密程度的。
同其他模块强耦合的模块意味着弱内聚;强内聚模块意味着与其他模块间松散耦合
软件设计目标:高内聚、低耦合
4.3启发规则
4.4描述软件结构的图形工具 
4.5面向数据流设计方法
5.1详细设计任务目的
(1)详细设计目的
确定怎样具体地实现所要求的系统,得出对目标的精准描述。
(2)详细设计任务
过程设计:即设计软件体系结构中所包含的每个模块的实现算法
数据设计:设计软件数据结构。
接口设计:设计软件内部各模块之间的接口
5.2结构程序设计
5.3人机界面设计
人机界面设计:是接口设计的一个重要的组成部分
设计人机界面过程常遇到的4个问题:
系统响应时间 重要属性:长度和易变性 用户帮助设施 出错信息处理 命令交互
人机界面设计指南:一般交互指南、信息显示指南、数据输入指南
5.4过程设计工具
5.5程序复杂度定量度量
6.1实现
软件生命周期中的编码和测试统称为实现
1.语言选择:减少编程的难度、减少程序测试量、容易维护的实现基础
2.编码风格:程序内部的文档、数据说明、语句构造、输入输出、效率:效率主要指处理机时间和存储器容量
6.2软件测试基础
1.软件测试的目标:软件测试是为了发现错误而执行程序的过程。编码阶段(单元测试)测试阶段(各种综合测试)
6.3-6.5测试技术
单元测试
回归测试:重新执行已经做过测试的某个子集,以保证程序的变化没有带来非预期的副作用
6.6白盒测试
控制结构测试:基本路径测试、条件测试、循环测试
6.7黑盒测试
6.8调试
调试(也称为纠错)是在测试发现错误之后排除错误的过程。方法:蛮干法、回溯法、原因排除法
结果:找到了原因,然后改正和排除,没找到原因,猜测了一个原因,并设计附加测试用例来验证这个假设。
6.9软件可靠性
软件可靠性:程序在给定时间间隔内,按照规格说明书的规定成功运行的概率。
软件可用性:程序在给定时间点,按照规格说明书的规定成功运行的概率