软件工程总结下
转发注明出处: http://www.cnblogs.com/0zcl/p/6243590.html
接上篇随笔: http://www.cnblogs.com/0zcl/p/6241610.html
3.需求分析
验证需求的正确性(了解下)
- 一致性:任何一条需求不能和其他需求互相矛盾
- 完整性:规格说明书应该包括用户需要的每一个功能 或性能
- 现实性:用现有的硬件技术和软件技术基本上可以实现的需求,对硬件技术的进步可以做些预测。
- 有效性:正确有效的,能解决用户面对的问题
接下来讲两个图E-R图与状态转换图(比较重要的)
实体-联系图
状态转换图
4.总体设计
做了个导图(很多概念的知识,要了解的)~~
5.详细设计
这里我就讲下过程设计的工具中的一个PAD图和判定表。外加一个流图。
PAD图
左图是基本符号(很简单~) 。右图是对P2的定义,好比P2函数内的"代码"。
接下来讲判定表,判定表能简洁无歧义地描述处理规则。看下面的图:
判定表是超简单的,但是第一次刚看到可能不知道上面图表示什么意思。我简单说下,表中有9条规则,以第二条为例,若是国内乘客&坐头等舱,但该乘客不是残疾乘客且行李重量在不大于30KG,则该乘客所需行李费为(W-30)*4。其它规则类推即可~~
流图的引入:为了进一步定量度量软件的性质(复杂度)。
- 圆表示结点,一个圆代表一条或多条语句。
- 流图中的箭头线称为边,代表控制流。
直接看下面的图:
能看懂的,过。那如何度量流图的环形复杂度呢?我说两种方法:
- 环形复杂度V(G)=E-N+2,E是流图中边的条数,N是结点数。 eg:11-9+2=4
- 环形复杂度V(G)=P+1,P是流图中判定结点的数目。 eg:3+1=4. 可知上图的V(G)=4
6.杂
软件维护:软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
决定软件可维护性的因素:
- 可理解性
- 可测试性
- 可修改性
- 可移植性:从一种计算环境(硬件配置和操作系统)转移到另一种计算环境的难易程度。
- 可重用性:可重用的构件在每次重用过程中都会发现并清除一些错误,随着时间推移,这样的构件基本上是无BUG的。
文档:影响软件可维护性的决定因素
- 用户文档:主要描述系统功能和使用方法。
- 系统文档:描述系统设计,实现和测试等各方面的内容。
最后最后我再发三张图,方便自己整理~~
ending~~~