




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023/2/30软件工程任课教师:郭雷勇E-mail:guoly2004@第4章详细设计2023/2/31本章要点一、详细设计的概述
二、详细设计方法三、详细设计过程四、案例分析2023/2/32详细设计定义
详细设计是将概要设计的框架内容具体化、明细化,将概要设计转化为可以操作的软件模型.
2023/2/33详细设计定义模块描述:描述模块的功能以及需要解决的问题,该模块在什么时候被调用,为什么需要这个模块等。算法描述数据描述
2023/2/34本章要点一、详细设计的概述二、详细设计方法三、详细设计过程四、案例分析2023/2/35详细设计结构化的详细设计方法面向对象的详细设计方法2023/2/36结构化详细设计方法图形符号的设计方式
表格的设计方式伪代码
2023/2/37图形符号的设计方式2023/2/38图2盒图的基本符号2023/2/39将以下盒图用程序的流程图2023/2/310图3PAD图的基本符号2023/2/311图4使用PAD图提供的定义功能来逐步求精的例子2023/2/312表格的设计方式-决策表描述不同条件集合下采取行动的若干组合的情况条件桩条件条目行动桩行动条目指定所有输入可能满足的条件指定可能发生的不同行为的集合2023/2/313决策表(判定表)实例C1:a、b、c构成三角形C2:a=b?C3:a=c?C4:b=c?A1:非三角形A2:不等边三角形A3:等腰三角形A4:等边三角形A5:不可能NXYyyyXYyyNXYyNNXYyNYXYNNNX2023/2/314伪代码
程序设计语言(PDL),也称为结构化英语或者伪代码,它是一种混合语言,它采用一种语言(例如英语)的词汇同时采用类似另外一种语言(例如,结构化程序语言)的语法。
2023/2/315面向对象的详细设计方法算法和数据结构的设计
算法是设计对象中每个方法的实现规格数据结构的设计与算法是同时进行的
模块和接口
将对象定义为模块
定义对象之间的接口和对象的总的结构2023/2/316本章要点一、详细设计的概述二、详细设计方法三、详细设计过程四、案例分析2023/2/317详细设计过程详细设计过程2023/2/318
详细设计阶段设计出的模块质量如何呢?定量化度量程序复杂程度的方法很有价值: 把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用的工作量;
定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣; 程序的定量的复杂程度可以作为模块规模的精确限度。
主要方法:McCabe方法和Halstead方法。程序复杂程度的定量度量2023/2/3191.流图
McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。为了突出表示程序的控制流,人们通常使用流图(也称为程序图)。 所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。McCabe方法2023/2/320
在流图中用圆表示结点,一个圆代表一条或多条语句。 程序流程图中的一个顺序的处理框序列和一个菱形判定框,可以映射成流图中的一个结点。 流图中的箭头线称为边,它和程序流程图中的箭头线类似,代表控制流。
!!!在流图中一条边必须终止于一个结点,即使这个结点并不代表任何语句(实际上相当于一个空语句)。 由边和结点围成的面积称为区域,当计算区域数时应该包括图外部未被围起来的那个区域。 当过程设计中包含复合条件时(逻辑OR,AND,NAND,NOR),应该把复合条件分解为若干个简单条件,每个简单条件对应流图中一个结点。包含条件的结点称为判定节点,从每个判定结点引出两条或多条边。程序流程图到流图的映射2023/2/321由PDL翻译成的流图2023/2/322由包含复合条件的PDL映射成的流图2023/2/3232.计算环形复杂度的方法 环形复杂度定量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,可以用下述3种方法中的任何一种来计算环形复杂度。(1)流图中的区域数等于环形复杂度。(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。2023/2/3243.环形复杂度的用途
程序的环形复杂度取决于程序控制流的复杂程度,也即是取决于程序结构的复杂程度。当程序内分支数或循环个数增加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。
McCabe研究大量程序后发现,环形复杂度高的程序往往是最困难、最容易出问题的程序。实践表明,模块规模以V(G)≤10为宜,也就是说,V(G)=10是模块规模的一个更科学更精确的上限。2023/2/325 Halstead方法是另一个著名的方法,它根据程序中运算符和操作数的总数来度量程序的复杂程度。令N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为:N=N1+N2
详细设计完成之后,可以知道程序中使用的不同运算符(包括关键字)的个数n1,以及不同操作数(变量和常数)的个数n2。Halstead给出预测程序长度的公式如下:H=n1log2n1+n2log2n2多次验证都表明,预测的长度H与实际长度N非常接近。Halstead方法2023/2/326Halstead还给出了预测程序中包含错误的个数的公式如下:E=Nlog2(n1+n2)/3000有人曾对从300条到12000条语句范围内的程序核实了上述公式,发现预测的错误数与实际错误数相比误差在8%之内。2023/2/327相关文档《软件项目详细设计》2023/2/328本章要点一、详细设计的概述二、详细设计方法三、详细设计过程四、案例分析2023/2/329案例分析<网上招聘系统>详细设计2023/2/330小结详细设计方法结构化详细设计方法面向对象的详细设计方法2023/2/3311假设只允许使用SEQUENCE和IF-THEN-ELSE两种控制结构,怎样利用它们完成DO-WHILE操作?2画出下列伪码程序的程序流程图和盒图: START IFpTHEN WHILEqDO f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 遵义医科大学《语言艺术与写作》2023-2024学年第二学期期末试卷
- 湘中幼儿师范高等专科学校《绘画基础(油画)》2023-2024学年第一学期期末试卷
- 北京市东城区普通校2025届高三下学期期末学分认定考试语文试题试卷含解析
- 大理农林职业技术学院《俄语笔译》2023-2024学年第二学期期末试卷
- 东北电力大学《风景园林学科及行业进展》2023-2024学年第二学期期末试卷
- 吉林体育学院《工程管理软件应用》2023-2024学年第二学期期末试卷
- 鄂尔多斯应用技术学院《建筑安全技术及管理》2023-2024学年第二学期期末试卷
- 大连理工大学城市学院《概率论与数理统计II》2023-2024学年第二学期期末试卷
- 哈尔滨工程大学《移动终端开发技术》2023-2024学年第二学期期末试卷
- 洪湖市2025年五下数学期末教学质量检测模拟试题含答案
- 浙江省金华市2024年中考数学一模试题(含答案)
- TSG51-2023起重机械安全技术规程
- 高职机电专业《机电一体化技术》说课课件
- 政府专项债业务培训
- 2024理疗馆合作协议书范本
- NB-T+33008.1-2018电动汽车充电设备检验试验规范 第1部分:非车载充电机
- 停工责任的告知函(联系单)
- 2024广东省高级人民法院劳动合同制书记员招聘笔试参考题库含答案解析
- 2025届新高考生物精准复习:基因和染色体的关系+
- CHT 8023-2011 机载激光雷达数据处理技术规范(正式版)
- 《煤矿建设安全规范》
评论
0/150
提交评论