




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程案例开发与实践第6章软件详细设计详细设计的任务1.为每个模块进行详细的算法设计。确定模块采用的算法,写出模块的详细过程性描述。即为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述。2.为模块内的数据结构进行设计。确定每一模块使用的数据结构。3.对数据库进行物理设计,即确定数据库的物理结构。4.网络设计。5.其它设计:根据软件系统类型,还可能要进行用户界面设计、输入/输出格式设计。包括对系统外部的接口,对系统内部其他模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。
接口设计注意以下原则:统一性;简明易学;灵活性;严谨性。6.编写详细设计说明书;评审。(1)模块的逻辑描述要清晰易读、正确可靠。(2)采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可读性、可测试性、可维护性。(3)选择恰当描述工具来描述各模块算法。(4)职能划分功能化(5)功能划分流程化.流程划分单据化.单据划分表格化.表格划分原子化:6.2详细设计的原则6.3详细设计工具6.3.1程序流程图1.顺序结构图6-1顺序结构2.选择结构3.循环结构完整的程序流程图示例•
例如:判定2000—2500年中的每一年是否闰年,将结果输出。润年的条件是:能被4整除,但不能被100整除的年份是闰年,或者能被100整除,又能被400整除的年份是闰年。根据所给的判断是否为闰年的条件,画出的程序流程图如图6-4所示。可见程序流程图可以清晰完整地表达出处理的全过程。例题1:求10!的流程图。AA开
始t
=
1i
=
2t
=
i
*ti
=i+1i
<
11结
束真假输出t程序流程图的主要缺点如下:程序流程图从本质上来说不是逐步求精的好工具,它容易使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。程序流程图中用箭头代表控制流,程序员可以不顾结构程序设计的精神,随意转移控制,而使程序结构过于混乱。程序流程图在表示数据结构方面存在不足。方块图(N-S图)是Nassi和Shneiderman提出的,是一种符合结构化程序设计原则的图形描述工具又称之为盒图6.3.2
方块图(N-S图)在N-S图中,为了表示五种基本结构,规定了五种图形结构,具体如下:例如,将上述例题1和例题2使用N-S图表示如下特点:功能域(即,一个特定控制结构的作用域)明确,用图形表示,非常清晰。必须遵守结构化程序设计的要求,不能任意转移控制。很容易确定局部和全程数据的作用域。很容易表现嵌套关系,也可以表示模块的层次结构。5.3.3
PAD图PAD是问题分析图,它用二维树型结构的图来表示程序的控制流,PAD图也使用五种基本控制结构,具体如下:练习(画出PAD图)求g(x)=0
x=0-1
x<0S=1+3+5+…+999。1
x>0求f(x)=-1
x<=01
x>0s=0i=1While
i<=999i=i+2s=s+iPrint
sInput
xF(X)=1X>0T输出F(X)FInput
xG(x)=1xX>0X=0
G(x)=0F(X)=-1X<0G(x)=-1输出g(X)PAD图的主要优点如下:使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。PAD图所描绘的程序结构十分清晰。用PAD图表现程序逻辑,易读、易懂、易记。容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。即可用于表示程序逻辑,也可用于描绘数据结构。PAD图的符号支持自顶向下、逐步求精方法的使用。例2.4求规律:①第1项的分子分母都是1②第2项的分母是2,以后每一项的分母子都是前一项的分母加1③笫2项前的运算符为“-”,后一项前面的运算符都与前一项前的运算符相反例2.4求sign—当前项符号
term—当前项的值
sum—当前各项的和
deno—当前项分母S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)*sig-n1S5:term=sign*(1/deno)S6:sum=sum+termS7:deno=deno+1-1/21-1/2S8:若deno≤100返回S4;否则3
算法满结足束,返回S4例2.4求sign—当前项符号
term—当前项的值
sum—当前各项的和
deno—当前项分母S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)*sig1nS5:term=sign*(1/deno)S6:sum=sum+termS7:deno=deno+11/31-1/2+1/3S8:若deno≤100返回S4;否则4
算法满结足束,返回S4例2.4求S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)*signS5:term=sign*(1/deno)S6:sum=sum+termS7:deno=deno+1S8:若deno≤100返回S4;否则算法结束99次循环后sum的值就是所要求的结果例2.5给出一个大于或等于3的正整数,判断它是不是一个素数。所谓素数(prime),是指除了1和该数本身之外,不能被其他任何 整数整除的数例如,13是素数,因为它不能被2,3,4,…,12整除。判断一个数n(n≥3)是否素数:将n作为被除数, 将2到(n-1)各个整数先后作为除数,如果都不 能被整除,则n为素数S1:输入n的值S2:i=2
(i作为除数)S3:n被i除,得余数rS4:如果r=0,表示n能被i整除,则输出n“不是素数”,算法结束;否则执行S5S5:i+1
iS6:如果i≤n-1,返回S3;否则输出n“是素数”,然后结束。2.3算法的特性一个有效算法应该具有以下特点:有穷性。一个算法应包含有限的操作步骤,而不能是无限的。确定性。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。5.3.4
过程设计语言(PDL)PDL具有二重性,一方面具有严格的关键字外部语法,用于定义控制和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是不太严格的,以便可以灵活使用,从而适应各种项目的需要。因此,一般说来PDL是一种“混杂”语言,它通常使用一种自然语言的词汇,但同时却使用另一种结构化的程序设计语言的语法。PDL(结构化语言)PDL(Program
design
Language)是一种用于描述功能模块的算法设计和加工细节的语言,也称为过程设计语言。
它是一种伪码,一方面具有严格的外语法,语法应符合一般程序设计语言的语法规则;另一方面,
其内语法表示实际操作和条件,可以用自然语言中一些简单的句子、短语和通用的数学符号,比较灵活自由。PDL语言的主要定义语句及基本控制结构的表达如下所示:定义语句数据定义:DECLARE属性变量名,…属性包括:整型、实型、双精度型、字符型、指针、数组及结构等类型。模块定义:PROCEDURE模块名(参数)……RETURNEND基本控制结构(1)顺序结构:语句序列S1语句序列S2…语句序列Sn(2)选择结构:顺序结构的语句序列采用自①IF-ELSE结构然语言进行描述。IF条件IF条件语句序列S1或语句序列SELSEENDIF语句序列S2ENDIF②多分支IF结构
IF条件1语句序列S1ELSEIF条件2语句序列S2ELSE语句序列SnENDIF…③CASE结构CASE表达式OFCASE取值1语句序列S1CASE取值2语句序列S2…CASE语句序列SnENDCASE(3)循环结构:①FOR结构FOR循环变量=初值TO终值循环体SEND
FOR②WHILE结构WHILE条件循环体SENDWHILE③UNTIL结构
REPEAT循环体SUNTIL条件输入/输出语句①输入语句:
GET(输入变量表)②输出语句:
PUT(输出变量表)模块调用语句CALL模块名(参数)1引言2编写目的3项目背景与需求概述4定义5参考资料6软件结构7程序描述8接口9存储结构10.数据库设计11.限制条件12.测试要点:给出测试模块的主要测试要求。13.尚未解决的问题6.4详细设计说明书格式6.5详细设计实例6.5.1图书管理子系统菜单设计6.5.2系统模块(1)读者查询:可以通过本模块对读者信息按编号、 卡号、姓名、类别、有效否等字段进行查询。(2)图书查询:本模块可以从图书分类号、条形码、 书名、作者、出版社等方面进行图书信息的查询。(3)综合查询:通过查询模块,可以进行所有图 书、所有借出图书、今日借出图书、今日归还图 书、今日
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 别永珍学会感恩主题班会教案
- 华电公司考试试题及答案
- 党员培训考试试题及答案
- 火电安全考试试题及答案
- 益阳市桃江县2025年五年级数学第二学期期末预测试题含答案
- 2025-2030中国煤机行业市场发展分析及竞争格局与投资价值研究报告
- 《学前儿童健康照护 》电子教案-4-2 皮疹的识别与照护-教学设计
- 2024届安徽省合肥市高三一模考试政治试卷 无答案
- 重症肺炎的诊断及治疗
- 超声引导下肌骨介入治疗
- 部编版六年级下册语文第五单元 主题训练卷
- 《教育系统重大事故隐患判定指南》知识培训
- 49-提高临边防护栏杆有效合格率(清泉建筑)
- 2025年新高考语文模拟考试试卷(五)
- 实习生补充协议范例模板
- 2025年高考数学基础知识篇(核心知识背记手册)
- 药品经营质量管理规范
- 专项24-正多边形与圆-重难点题型
- 通信工程勘察设计管理办法
- 数据库原理及应用教程(第5版) (微课版)课件 第4章 关系型数据库理论
- (完整文本版)日文履历书(文本テンプレート)
评论
0/150
提交评论