软件工程导论复习之详细设计

1. 详细设计的主要任务

①模块的算法设计;

②确定每个模块的内部数据结构及数据库的物理结构;

③确定模块接口的具体细节;

④为每个模块设计一组测试用例;

⑤编写详细设计说明书,参加复审;

2. 结构程序设计

定义:程序的代码块仅仅通过顺序选择循环三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口(尽可能少用GO TO语句的程序设计方法)

3. 程序流程图

概念:程序流程图又称程序框图,一直是软件设计的主要工具。

优点:对控制流程的描绘很直观,便于掌握

缺点:不是逐步求精的好工具,忽视程序的全局结构;可随意转移控制,违背结构程序设计的精神;不易表示数据结构

符号:

 

4. 盒图N-S

一种不允许违背结构程序设计精神的图形工具

特点:

(1)功能域(即一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。

(2)不可能任意转移控制。

3)很容易确定局部和全程数据的作用域。

4)很容易表现嵌套关系,也可以表示模块的层次结构。

基本符号:

5. PAD图Problem Analysis Diagram

用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易

优点:

(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序

(2)PAD图所描绘的程序结构十分清晰。(3)用PAD图表现程序逻辑,易读易懂、易记。

(4)容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。

(5)既可用于表示程序逻辑.也可用于描绘数据结构。

(6)PAD图的符号支持自顶向下、逐步求精方法的使用。

基本符号:

6. 判定表Decision Table

分析和表达多逻辑条件下执行不同操作的情况下的工具。在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。

组成部分:

①条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.
②动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.
③条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.
④动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.

建立步骤:

①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有2n种规则.
②列出所有的条件桩和动作桩.
③填入条件项.
④填入动作项.等到初始判定表.
⑤简化合并相似规则(相同动作)

 7. Jackson图及改进

顺序结构:A由B、C、D 3个元素顺序组成,出现的次序依次是B、C和D

选择结构:根据条件A是B或C或D中的某一个

 重复结构:A由B出现N次(N≥0)组成

 

优点:

①便于表示层次结构,是对结构进行自顶向下分解的有力工具

②形象直观可读性好

③既能表示数据结构也能表示程序结构

改进的jackson图:Jackson图表示选择或重复结构时,选择条件或循环结束条件不能直接在图上表示.

8. Jackson方法

(1)确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构

(2)找出输入数据结构和输出数据结构中有对应关系的数据单元

(3)从描绘数据结构的Jackson图导出描绘程序结构的Jackson图

  ①为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框

  ②根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框

  ③根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框

(4)列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置

(5)用伪码表示程序。Jackson方法中使用的伪码和Jackson图是完全对应的

 9. 程序复杂程度的定量度量

把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用的工作量,定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序的定量复杂程度可以作为模块规模的精确限度

McCabe方法:

McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度

流图:为突出程序的控制流,完全不表现对数据的具体操作以及分支或循环的具体条件

计算环形复杂度的方法:

   ①流图中线性无关的区域数等于环形复杂度

   ②流图G的环形复杂度V(G)=E-N+2,E是流图中边的条数,N是结点数

   ③流图G的环形复杂度V(G)=P+1,P为流图中判定结点的数目

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值