版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六讲软件工程详细设计什么是详细设计?决定各个模块的实现算法,设计出必要的过程细节,并给予清晰的表示,使之成为编码的工具。是否需要详细设计?什么时候需要详细设计?第六讲软件工程详细设计什么是详细设计?一、详细设计的基本任务处理方式设计物理设计可靠性设计其它设计(包括代码设计、输入/输出格式设计、人机对话设计)一、详细设计的基本任务处理方式设计二、详细设计的方法采用自顶向下、逐步求精的程序设计方法使用三种基本控制结构构造程序(顺序、选择、重复)主程序员的组织形式
结构化程序设计技术是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序、选择和循环三种控制结构。二、详细设计的方法采用自顶向下、逐步求精的程序设计方法详细设计的方法使用结构程序设计技术的好处:1)提高软件开发工程的成功率和生产率;2)系统有清晰的层次结构,容易阅读理解;3)单入口单出口的控制结构,容易诊断纠正;4)模块化可以使得软件可以重用;5)程序逻辑结构清晰,有利于程序正确性证明
详细设计的方法使用结构程序设计技术的好处:详细设计的方法经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE选择和DO_WHILE循环;扩展的结构程序设计:除了三种基本控制结构,还使用DO_CASE和DO_UNTIL循环;修正的结构程序设计:除了三种基本控制结构和两种扩充结构,还使用BREAK等结构。详细设计的方法经典的结构程序设计:只允许使用顺序、IF_TH1.程序流程图是最为熟悉、应用最为广泛的算法表示工具、可以比较好的描绘出算法思路。1.程序流程图是最为熟悉、应用最为广泛的算法表示工具、可以程序流程图的基本结构程序流程图的基本结构程序流程图的基本结构程序流程图的基本结构程序流程图标准常用符号书上实例p187程序流程图标准常用符号书上实例p187程序流程图程序流程图虽然比较直观,灵活,并且比较容易掌握,但是它的随意性和灵活性却使它不可避免地存在着一些缺点:(1)由于程序流程图的特点,它本身并不是逐步求精的好工具。因为它使程序员容易过早地考虑程序的具体控制流程,而忽略了程序的全局结构;
(2)程序流程图中用箭头代表控制流,这样使得程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制;
(3)程序流程图在表示数据结构方面存在不足。程序流程图程序流程图虽然比较直观,灵活,并且比较容易掌握,但2.N-S图N-S图是由Nassi和Shneiderman提出的一种符合结构化程序设计原则的图形描述工具。也叫盒图。2.N-S图N-S图是由Nassi和ShneidermanN-S图N-S图N-S图特点(1)功能域(即某一个特定控制结构的作用域)有明确的规定,并且可以很直观地从N-S图上看出来;(2)它的控制转移不能任意规定,必须遵守结构化程序设计的要求;(3)很容易确定局部数据和全局数据的作用域;(4)很容易表现嵌套关系,也可以表示模块的层次结构。N-S图特点(1)功能域(即某一个特定控制结构的作用域)有明N-S图
N-S图与流程图的相互转换?
书上实例p190N-S图N-S图与流程图的相互转换?3.PAD图PAD图是日本日立公司提出,由程序流程图演化来的,用结构化程序设计思想表现程序逻辑结构的图形工具。为ISO认可。3.PAD图PAD图是日本日立公司提出,由程序流程图演化来PAD图的符号PAD图的符号PAD图的符号PAD图的例子
PAD图的符号PAD图的例子PAD图PAD图的实例见p191页特点:结构清晰,支持结构化的程序设计方法,有利于自动生成程序。PAD图PAD图的实例见p191页例子:
输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。请画出该程序的流程图、N-S图、PAD图。
例子:输入三个正整数作为边长,判断该三条边构成的三角形是等例子:
例子:例子:
例子:例子:
例子:思考:在数据A(1)~A(n)中求最大数和次大数.。在数据A(1)~A(n)中求前m个最大的数。思考:在数据A(1)~A(n)中求最大数和次大数.。4.判定表当算法中包含多重条件选择时,用程序流程图、N-S图或PAD都不能清晰地描述。用判定表确可以清晰表达复杂条件与应做动作之间的关系。4.判定表当算法中包含多重条件选择时,用程序流程图、N-S判定表
12345教授
TFFF副教授
FTFF讲师
FFTF助教
FFFT讲座TFFFF50×
30
×
25
×
20
×
15
×例:某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。判定表
12345教授
TFFF副教授
FTFF讲师
FFT判定表一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作.判定表一张判定表由四部分组成,左上部列出所有条件,左下部是所判定表某航空公司规定,重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。判定表某航空公司规定,重量不超过30公斤的行李可免费托运。重判定表判定表5.PDL语言PDL是一种用于描述功能模块的算法设计和加工细则的语言。它是一种伪码。PDL不同于一般的“结构化语言”。PDL更接近于自然语言,容易看懂。5.PDL语言PDL是一种用于描述功能模块的算法设计和加工PDL语言PDL语言具有下述特点:(1)PDL虽然不是程序设计语言,但是它与高级程序设计语言非常类似,只要对PDL描述稍加变换就可变成源程序代码。因此,它是详细设计阶段很受欢迎的表达工具。(2)用PDL写出的程序,既可以很抽象,又可以很具体。因此,容易实现自顶向下逐步求精的设计原则。(3)PDL描述同自然语言很接近,易于理解。(4)PDL描述可以直接作为注释插在源程序中,成为程序的内部文档。这对提高程序的可读性是非常有益的。(5)PDL描述与程序结构相似,因此自动产生程序比较容易。PDL的缺点是不如图形描述形象直观PDL语言PDL语言具有下述特点:程序复杂度的定量度量定量度量程序复杂度的作用:(1)可估算软件中错误的数量及软件开发工作量;(2)度量的结果可用来比较不同设计或不同算法的优劣;(3)程序的复杂度可作为模块规模的限度。程序复杂度的定量度量定量度量程序复杂度的作用:程序复杂度的定量度量
流图“退化”的程序流程图,仅描绘程序的控制流程,不表现对数据的具体操作及循环、选择的条件。
1.
McCabe方法程序复杂度的定量度量流图1.McCabe方法程序复杂度的定量度量一个圆代表一条或多条语句;一个顺序结构可以合并成一个结点;汇点也是结点;一个顺序处理框序列和一个判断框可映射成一个结点。程序复杂度的定量度量一个圆代表一条或多条语句;汇点也是结点程序复杂度的定量度量复合条件:包含了一个或多个布尔运算符(OR、AND、NOR等)。应把复合条件分解为简单条件,每个条件对应一个结点。程序复杂度的定量度量复合条件:程序复杂度的定量度量计算环形复杂度的方法:
1)环形复杂度V(G)等于流图中的区域数;
2)环形复杂度V(G)=E-N+2,其中E是流图中边的条数,N是结点数;
3)环形复杂度V(G)=P+1,其中P为流图中判定结点的数目。程序复杂度的定量度量计算环形复杂度的方法:程序复杂度的定量度量例:计算下列程序图的程序复杂度程序复杂度的定量度量例:计算下列程序图的程序复杂度程序复杂度的定量度量解:方法一:程序图把平面分为4个区域,程序复杂度V(G)=4;方法二:边的条数E=11,结点数N=9,程序复杂度V(G)=E-N+2=4;方法三:判定结点为1、2、4点,数目为P=3个,所以V(G)=P+1=4。程序复杂度的定量度量解:程序复杂度的定量度量环形复杂度的用途对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。实践表明,模块规模以V(G)≤10为宜。程序复杂度的定量度量环形复杂度的用途程序复杂度的定量度量根据程序中运算符和操作数的总数来度量程序复杂度。N=N1+N2其中:N定义为程序长度;N1为程序中运算符出现的总次数;
N2为操作数出现的总次数。2.
Halstead方法程序复杂度的定量度量根据程序中运算符和操作数的总数来度量程程序复杂度的定量度量Halstead给出预测程序长度的公式为:H=n1log2n1+n2log2n2其中:H定义为程序预测长度;
n1为程序中使用的不同运算符(包括关键字)的个数;
n2为程序中使用的不同操作数(变量和常量)的个数。程序复杂度的定量度量Halstead给出预测程序长度的公式程序复杂度的定量度量验证表明,程序的预测长度H和实际程序长度N非常接近。Halstead给出了预测程序中包含错误的个数的公式:
E=Nlog2(n1+n2)/3000程序复杂度的定量度量验证表明,程序的预测长度H和实际程序长第六讲软件工程详细设计什么是详细设计?决定各个模块的实现算法,设计出必要的过程细节,并给予清晰的表示,使之成为编码的工具。是否需要详细设计?什么时候需要详细设计?第六讲软件工程详细设计什么是详细设计?一、详细设计的基本任务处理方式设计物理设计可靠性设计其它设计(包括代码设计、输入/输出格式设计、人机对话设计)一、详细设计的基本任务处理方式设计二、详细设计的方法采用自顶向下、逐步求精的程序设计方法使用三种基本控制结构构造程序(顺序、选择、重复)主程序员的组织形式
结构化程序设计技术是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序、选择和循环三种控制结构。二、详细设计的方法采用自顶向下、逐步求精的程序设计方法详细设计的方法使用结构程序设计技术的好处:1)提高软件开发工程的成功率和生产率;2)系统有清晰的层次结构,容易阅读理解;3)单入口单出口的控制结构,容易诊断纠正;4)模块化可以使得软件可以重用;5)程序逻辑结构清晰,有利于程序正确性证明
详细设计的方法使用结构程序设计技术的好处:详细设计的方法经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE选择和DO_WHILE循环;扩展的结构程序设计:除了三种基本控制结构,还使用DO_CASE和DO_UNTIL循环;修正的结构程序设计:除了三种基本控制结构和两种扩充结构,还使用BREAK等结构。详细设计的方法经典的结构程序设计:只允许使用顺序、IF_TH1.程序流程图是最为熟悉、应用最为广泛的算法表示工具、可以比较好的描绘出算法思路。1.程序流程图是最为熟悉、应用最为广泛的算法表示工具、可以程序流程图的基本结构程序流程图的基本结构程序流程图的基本结构程序流程图的基本结构程序流程图标准常用符号书上实例p187程序流程图标准常用符号书上实例p187程序流程图程序流程图虽然比较直观,灵活,并且比较容易掌握,但是它的随意性和灵活性却使它不可避免地存在着一些缺点:(1)由于程序流程图的特点,它本身并不是逐步求精的好工具。因为它使程序员容易过早地考虑程序的具体控制流程,而忽略了程序的全局结构;
(2)程序流程图中用箭头代表控制流,这样使得程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制;
(3)程序流程图在表示数据结构方面存在不足。程序流程图程序流程图虽然比较直观,灵活,并且比较容易掌握,但2.N-S图N-S图是由Nassi和Shneiderman提出的一种符合结构化程序设计原则的图形描述工具。也叫盒图。2.N-S图N-S图是由Nassi和ShneidermanN-S图N-S图N-S图特点(1)功能域(即某一个特定控制结构的作用域)有明确的规定,并且可以很直观地从N-S图上看出来;(2)它的控制转移不能任意规定,必须遵守结构化程序设计的要求;(3)很容易确定局部数据和全局数据的作用域;(4)很容易表现嵌套关系,也可以表示模块的层次结构。N-S图特点(1)功能域(即某一个特定控制结构的作用域)有明N-S图
N-S图与流程图的相互转换?
书上实例p190N-S图N-S图与流程图的相互转换?3.PAD图PAD图是日本日立公司提出,由程序流程图演化来的,用结构化程序设计思想表现程序逻辑结构的图形工具。为ISO认可。3.PAD图PAD图是日本日立公司提出,由程序流程图演化来PAD图的符号PAD图的符号PAD图的符号PAD图的例子
PAD图的符号PAD图的例子PAD图PAD图的实例见p191页特点:结构清晰,支持结构化的程序设计方法,有利于自动生成程序。PAD图PAD图的实例见p191页例子:
输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。请画出该程序的流程图、N-S图、PAD图。
例子:输入三个正整数作为边长,判断该三条边构成的三角形是等例子:
例子:例子:
例子:例子:
例子:思考:在数据A(1)~A(n)中求最大数和次大数.。在数据A(1)~A(n)中求前m个最大的数。思考:在数据A(1)~A(n)中求最大数和次大数.。4.判定表当算法中包含多重条件选择时,用程序流程图、N-S图或PAD都不能清晰地描述。用判定表确可以清晰表达复杂条件与应做动作之间的关系。4.判定表当算法中包含多重条件选择时,用程序流程图、N-S判定表
12345教授
TFFF副教授
FTFF讲师
FFTF助教
FFFT讲座TFFFF50×
30
×
25
×
20
×
15
×例:某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。判定表
12345教授
TFFF副教授
FTFF讲师
FFT判定表一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作.判定表一张判定表由四部分组成,左上部列出所有条件,左下部是所判定表某航空公司规定,重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。判定表某航空公司规定,重量不超过30公斤的行李可免费托运。重判定表判定表5.PDL语言PDL是一种用于描述功能模块的算法设计和加工细则的语言。它是一种伪码。PDL不同于一般的“结构化语言”。PDL更接近于自然语言,容易看懂。5.PDL语言PDL是一种用于描述功能模块的算法设计和加工PDL语言PDL语言具有下述特点:(1)PDL虽然不是程序设计语言,但是它与高级程序设计语言非常类似,只要对PDL描述稍加变换就可变成源程序代码。因此,它是详细设计阶段很受欢迎的表达工具。(2)用PDL写出的程序,既可以很抽象,又可以很具体。因此,容易实现自顶向下逐步求精的设计原则。(3)PDL描述同自然语言很接近,易于理解。(4)PDL描述可以直接作为注释插在源程序中,成为程序的内部文档。这对提高程序的可读性是非常有益的。(5)PDL描述与程序结构相似,因此自动产生程序比较容易。PDL的缺点是不如图形描述形象直观PDL语言PDL语言具有下述特点:程序复杂度的定量度量定量度量程序复杂度的作用:(1)可估算软件中错误的数量及软件开发工作量;(2)度量的结果可用来比较不同设计或不同算法的优劣;(3)程序的复杂度可作为模块规模的限度。程序复杂度的定量度量定量度量程序复杂度的作用:程序复杂度的定量度量
流图“退化”的程序流程图,仅描绘程序的控制流程,不表现对数据的具体操作及循环、选择的条件。
1.
McCabe方法程序复杂度的定量度量流图1.McCabe方法程序复杂度的定量度量一个圆代表一条或多条语句;一个顺序结构可以合并成一个结点;汇点也是结点;一个顺序处理框序列和一个判断框可映射成一个结点。程序复杂度的定量度量一个圆代表一条或多条语句;汇点也是结点程序复杂度的定量度量复合条件:包含了一个或多个布尔运算符(OR、AND、NOR等)。应把复合条件分解为简单条件,每个条件对应一个结点。程序复杂度的定量度量复合条件:程序复杂度的定量度量计算环形复杂度的方法:
1)环形复杂度V(G)等于流图中的区域数;
2)环形复杂度V(G)=E-N+2,其中E是流图中边的条数,N是结点数;
3)环形复杂度V(G)=P+1,其中P为流图中判定结点的数目。程序复杂度的定量度量计算环形复杂度的方法:程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学生保险全保障协议
- 2025标识标牌行业发展趋势分析与预测合同3篇
- 二零二五版办公区域租赁合同(含物业增值服务)
- 二手住宅交易服务合同(2024年版)3篇
- 二零二五年度上市公司专项财务咨询与辅导协议
- 二零二五年度股权分割协议书模板
- 2025年度矿业权出让与地质安全监管合同
- 2025年度车辆借出免责及车辆使用责任界定协议
- 二零二五年度文化艺术活动派遣协议范本
- 2025年度城市综合体物业保安劳务管理合同
- 小儿甲型流感护理查房
- 雾化吸入疗法合理用药专家共识(2024版)解读
- 2021年全国高考物理真题试卷及解析(全国已卷)
- 拆迁评估机构选定方案
- 趣味知识问答100道
- 钢管竖向承载力表
- 2024年新北师大版八年级上册物理全册教学课件(新版教材)
- 人教版数学四年级下册核心素养目标全册教学设计
- JJG 692-2010无创自动测量血压计
- 三年级下册口算天天100题(A4打印版)
- CSSD职业暴露与防护
评论
0/150
提交评论