1.软件设计的目标和任务:根据用信息域表示的软件的需求以及功能和性能需求进行数据设计,系统结构设计,程序设计。

2.软件设计的过程:1.规定规范2.软件系统结构的总体设计3.处理方式设计4.数据结构设计5.可靠性色痕迹6.编写概要设计阶段的文档7.概要设计评审。

3.软件设计基础:自顶向下,逐步细化;模块 每个名字都不相同模块的调用关系和接口;模块建的信息传递;表示模块A有条件地调用另一个模块B;一般采用两个准则度量模块独立性  即 模块耦合和模块内聚;高内聚低耦合。

4.变换分析的步骤:第一重画数据流图;第二有效输入,有效输出,中心变换部分;第三,级分解,设计上层模块; 第四,进行二级分解,设计输入,输出和中心变换部分的中、下层模块。

5.模块功能的完善化:1,执行规定的功能的部分2出错处理的部分3.给他的调用者返回一个结束状态标识。

6.过程设计:程序流程图,N-S图盒图,PAD 问题分析图

7.PDL 结构化语言:一种用于描述功能模块的算法设计和加工需要的语言。成为设计程序用的语言

8.概要设计的过程:1设计系统方案2选取一组合理的方案3推荐最佳实施方案4功能分解5软件结构设计6数据库设计、文档结构的设计7制定测试计划8编写概要设计文档9审查与复审概要设计文档。

9.模块独立性的重要性:1 具有独立的模块的软件比较容易开发出来2 比较容易测试和维护

10.结构设计原则:1显著改进软件结构提高模块独立性2模块规模应该适中3适当选择深度、宽度、扇出和扇入4模块的作用域应该在控制域之内5力争降低模块接口的复杂程度6设计单入口单出口的模块7模块功能应该可以预测

11.语言选择总原则:1先求正确后求快2先求清晰后求快3求快不忘保持程序正确4保持程序整洁以求快5不要因效率而牺牲清晰。

12.结构化程序设计主要包括:1在编写程序时候,使用几种基本控制结构2在程序设计过程中,尽量采用自顶向下和逐步细化的原则,由粗到细,一步步展开。

13.源程序文档化:1标识符的命名2 安排注释3 程序的视觉组织

14.数据说明:1次序规范化2 语句变量安排有序化3使用注释说明复杂数据结构4.除非对效率由特殊的要求,程序编写要做到清晰第一,效率第二5.首先要宝泽和那个正确然后速度6.避免是应用临时变量而使用可读性下降7.让编译程序简单的优化8尽可能使用库函数9避免不必要的转移 10.尽量只采用三种基本的控制结构 循环,选择和顺序结构11避免使用空的ELSE语句和IF。。。Then if 。。。语句 12 避免采用过于复杂的条件测试13 尽量减少使用“否定”条件的语句 14 尽可能用通俗易懂的伪代码来描述程序的流程,然后再翻译成必须使用的语言 15 数据结构要有利于程序的简化16要模块化17 利用信息隐蔽,确保每个模块的独立性 18 从数据出去去构造程序19 不要修补不好的程序,要重新编写20 对太大的程序,要分块编写、测试,然后再集成

15.计算环路复杂性方法: v(G)=m-n+p

M是弧数 n 是节点数 p 是强连通分量个数  v(G) 是有向图G中环路个数

Halstead 程序长度  程序编完后测量

H=n1*log2n1+n2*log2n2

程序员工作量  E=V /L