真是应了那句:白天游四方、晚上点灯补裤裆(捂脸),孩子睡了夜深人静了、我才是开始我的小笔记整理工作。。
详细设计是软件设计的第二阶段,这一阶段的工作,就是要对系统中的每个模块给出足够详细的过程性描述,故也称为过程设计)
目的:确定应该怎么具体实现所要求的系统经过这一阶段的设计工作,应该得出对目标系统的精确描述。具体的就是为了软件结构图中每一个模块确定采用的算法和快内数据结构。用某种选定的详细设计工具更清晰地描述,从而在编码阶段可以把这些描述直接翻译成某种程序设计语言,书写的源程序。
任务:要设计出程序的“蓝图”,以后程序将根据这个蓝图写出实际的代码。
5.2结构化程序设计
所使用的结构有:顺序、选择和重复3种
顺序结构:实现过程的步骤是任意算法说明的基础。
条件结构:提供按某些逻辑发生选择处理的条件
重复结构:提供循环处理
只有3种基本控制结构就能实现任何单入口单出口,且无死循环、死语句的程序。
结构化程序设计采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。
5.3详细设计工具
描述程序处理过程的工具称为详细设计工具,可以分为图形、表格和语言3类,对工具基本要求:提供对设计准确无歧义的描述,应能控制流程、处理功能、数据组织及其它方面的实现细节。从而在编码阶段能把对设计的描述直接翻译成程序代码
常用的详细设计工具:HIPO图、判定表、判定树前面章节已讲,现介绍新的如下:
程序流程图:
优点:易学、表达算法直观
缺点:不够规范,特别是使用箭头使质量受到很大影响因此必须加以限制,使其称为规范的详细设计工具。
为了使它能够描述结构化的程序限制只用前面所述的3种基本结构图。
例图5.1
程序流图的缺点:
1、本质上不是逐步求精的好工具,它诱使程序员过早考虑控制流程,而不去考虑程序的整体结构。
2、图中箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制,容易造成非结构化的程序结构。
3、程序流图不易表示数据结构和层次的结构。
5.3.2盒图 (N-S图)
N-S图的主要特点就是只能描述结构化程序所允许的标准结构图
例图5.2
N-S图的优点有:
1、功能域表达明确,功能域从盒子图上可以明显看出来
2、很容易确定局部和全局数据的作用域
3、不可能随意转移控制。
4、很容易表达模块的层次结构并列出嵌套关系。
5、使软件人员遵守结构化程序设计的规定,自然地养成良好的程序设计风格。
5.3.3问题分析图(PAD图)
PAD时一种算法描述工具,采用一种由左向右的二维树型结构图来描述程序的逻辑,图5.3PAD的基本控制结构
图5.3
PAD优点如下:
1、用PAD图设计出来的程序必然是结构化程序
2、PAD图描绘的程序结构十分清晰,图最左面的竖线就是程序的主线,即第一层结构,随着程序的层次增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线,PAD图中竖线的条数就是程序的层次数。
3、PAD图的付款支持自顶向下,逐步求精的方法,左边层次中的内容可以抽象,然后用def从做向右逐步细化
4、用PAD途表示的程序逻辑易读、易懂、易记使用方便
5、即可表示程序逻辑,也可用于描绘数据结构。
6、可自动生成程序,利用软件工具自动完成,省去扔编码工作,有利于提高软件的可靠性和软件生产率。
图5.4PAD图将数组A(1)到A(10)从大到小进行选择排序的算法描述
5.3.4过程设计语言(PDL)
过程设计语言也称为伪码,是一种用于描述模块算法设计和处理细节的语言,具有严格的关键字外层语法,用于定义控制结构和数据结构。
PDL特点:
1、关键字有固定语法,以便提供结构化的控制结构,数据说明和模块化的特征,通常在所有可能嵌套使用的控制结构的头和尾部都有关键字。
2、描述处理过程的说明性语言没有严格的语法限制
3、具有数据说明机制,既包括简单的数据结构(如简单变量和数组)包括复杂的数据结构(如链表或层次的数据结构)
4、具有规模定义和调用机制,从开发应根据系统编程所用的语种,说明过程设计语言表示的有关程序结构。
PDL程序结构
1、顺序结构
自然语言描述结构如下
处理s1
处理s2
…
处理sn
2、选择结构
If-else结构如下
if条件
处理s1
else
处理s2
endif
if-orif-else结构如下
if条件1
处理s1
orif 条件2
处理s2
else处理sn
endif
case结构如下:
case of
case(1)
处理s1
case(2)
处理s2
…
else处理sn
endcase
循环结构
for结构如下
forI=1to m
循环体
end for
while 结构如下
while条件
循环体
endwhile
until结构如下
repeat
循环体
until条件
4、出口结构
escape结构如下
while条件
处理s1
cycle i if 条件
处理s2
endwhile
5、扩充结构
模块定义:procedure 模块名(参数)
return
end
模块调用定义 call 模块名(参数)
数据定义:de clare属性 变量多
注:属性有整列、实型、双精度、字符、指针、数组及结构类型
输入/输出定义 get(输入变量表) put(输出变量表)
5.4人机界面设计
本节对以下3个方面进行介绍:界面设计问题、界面设计原则、界面设计过程。
5.4.1人机界面设计问题
1、系统响应时间 属性:长度和易变性
2、用户帮助设施分为:集成和附加两类,集成一开始就设计在软件界面里面,附加:系统建成之后添加到软件中的。
3、出错信息处理:交互式系统给出错误信息或警告信息。
4、命令交互
5.4.2人机界面设计原则
可归为:界面简洁、控制摆放规范、颜色统一、符合用户习惯
3条用户界面设计的重要准则,称为黄金指导准则。
1、让用户驾驭软件,而不是软件驾驭用户
2、尽可能减少用户的记忆负担
3、保持界面的一致性
5.4.3人机界面设计过程
1、建立任务的目标和意图
2、目标和意图明确后,建立界面需求规格模型。
3、以界面需求模型为依据,创建用户界面原型
4、用户使用评估该界面原型
5、设计者根据用户的意见修改设计并实现下一原型。
6、不断进行下去,直到用户感到满意为止。
5.5详细设计说明书
1、引言部分和前两章一样,不多赘述
2、程序描述:(所有模块给出以下说明)
2.1功能
2.2性能
2.3输出和输入项目
2.4算法:模块所选用的算法
2.5程序逻辑:详细描述各个模块实现的算法可以采用流程图NS图、PDL语言、PAD图、判定表和判定树等描述算法的图表。
2.6接口
2.7存储分配
2.8限制条件
2.9测试要点:给出测试模块的主要测试要求
本章小结:
详细设计阶段的任务是确定如何实现所要求的目标系统,将总体设计阶段得到的模块算法用详细审计工具:程序流程图、NS图、PAD图和PDL语言描述处来,即设计出程序蓝图,从而在下一个编码阶段直接翻译成某种程序设计语言书写的程序,结构化程序设计技术是软件详细设计的基础,任何一个程序都可以用:顺序、选择、循环2种结构来设计和实现,结构化程序设计具有理解性和可维护性。
人机界面设计质量直接影响用户对软件产品的接受程度,因此必须对人机界面设计给与足够的重视。在人机界面的设计过程中,必须充分重视并认真处理好系统响应,用户帮助实施、出错信息处理和命令交互4个设计问题。
今天的文章软件详细设计包括哪些内容_软件设计6大原则分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/78895.html