2、盒图(N-S图)
出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。
基本符号和表示的结构
举例
3、PAD图
PAD是问题分析图(problem analysis diagram), 用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易
(a) 顺序(先执行P1后执行P2);(b)选择(IF C THEN P1 ELSE P2);
(c)CASE型多分支;(d)WHILE型循环(WHILE C DO P);(e)UNTIL型循环(REPEA P UNTIL C);(f)语句标号;(g)g定义
使用PAD图提供的定义功能来逐步求精的例子
4、在详细设计阶段,软件复杂度主要体现为程序的复杂程度,可用程序模块的环形复杂度(McCabe方法)来度量,或用Halstead方法来度量
5、环形复杂度(McCabe方法)来度量
计算工具:流图--退化了的程序流程图
McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。
为了突出表示程序的控制流,人们通常使用流图(也称为程序图)。所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。
计算方法:3种方法
(1) 流图中的区域数等于环形复杂度
区域:由边和结点围成的面积称为区域。当计算区域数时应该包括图外部未被围起来的那个区域。即流图的封闭区域数加1。
(2) 流图的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。 (3) 流图的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
6、Halstead方法来度量----计算方法
Halstead方法是另一个著名的方法,它根据程序中运算符和操作数的总数来度量程序的复杂程度。
计算复杂度的方法:在图形界面(或Web界面)环境下,尤其是在交互系统的中,一个模块的页面数以及每个页面上的项目数,也是模块复杂程度度量的依据。
第七章
1、编码风格涉及的一系列内容
源程序实际上也是一种供人阅读的文档,有一个文档的风格问题。应该使程序具有良好的风格。源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准。 ①源程序文档化(程序内部的文档) ②数据说明 ③语句构造 ④输入输出设计 ⑤程序的效率
2、单元测试、集成测试、确认/验收测试,测试计划(包括用例)在什么时候书写形成
单元测试:--模块测试
模块测试的目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。在这个测试步骤中所发现的往往是详细设计和编码的错误。 集成测试:
子系统测试----局部(模块——>子系统)
子系统测试是按软件结构把经过单元测试的若干模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此,这个步骤着重测试模块间的接口。
系统测试----全局(子系统——>完整系统)
系统测试是,按软件结构,把经过测试的若干子系统装配成一个完整的系统来测试。在
这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定要求。在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常合称为集成测试。 验收测试--用户参与
验收测试把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据(系统将来要处理的信息)进行测试。验收测试的目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。验收测试也称为确认测试。
3、软件测试与调试的目的
软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。 测试横跨两个阶段:
(1)编写出每个模块之后就对它做必要的测试(称为单元测试)。
(2)在上一阶段结束之后,对软件系统还应该进行各种综合测试 通常由专门的测试人员承担这项工作。
软件测试的直接目的是要衡量软件产品是否符合预期; 软件测试的根本目的是确保软件满足用户需求;
调试就是通过测试发现软件的错误之后改正错误并进行再诊断。调试是测试阶段最困难的工作。调试是在测试发现错误之后排除错误的过程。调试的任务是进一步诊断和改正程序中潜在的错误。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库软件工程导论(第6版)知识点总结、复习课 - 图文(6)在线全文阅读。
相关推荐: