Download presentation
Presentation is loading. Please wait.
1
第3步:将上图对应转换为程序流程图,并将每个处理框编号。
2
第4步:Pseudocode 分类。分析每个处理框应该做的动作并用伪码表示 这些动作。得到分类指令表。
4
Warnier方法 第5步:将前一步分类指令表中有同样处理框标识(序号)的指令归为一组,基本上按照“输入-处理-输出”的顺序组织这些指令,并按处理序号排序 例如:010-读 若文件没有结束 040-顾客号送访问顾客号 -旧余额送工作区 ……
5
设计方法比较: 没有一种方法能够适用于所有的应用领域; 设计“优劣程度”的评定标准,大都建立在不可证明的假设的基础之上;
“设计”首先是解决问题的活动,而解决问题的过程和办法是因人而异的; 方法是重要的,但只有在支撑环境中运用它们才能得到成功。
6
详细设计 详细设计是给出软件结构中各模块的内部过程描述。 模块的内部过程描述也就是模块内部的算法设计。
详细设计也既是要导出一种算法设计表示,由此可以直接而简单地导出程序代码。
7
详细设计 详细设计的逻辑基础: 使用结构化构造(即用顺序、选择和重复三种程序结构)表示程序过程,降低程序的复杂性,从而提高可靠性、易测试性和易维护性。
8
详细设计 详细设计工具作用: 工具: 对软件开发人员来说,提高软件开发效率。
对软件测试和维护人员来说,提供摆脱繁琐的程序代码,了解模块程序结构的途径。 工具: 图形工具: 将过程细节用图形来表示,在图中,逻辑结构用具体的图形表示 列表工具:利用表来表示过程细节,表列出了各种操作和相应的条件 语言工具:用类语言(伪码)表示过程的细节,很接近编程语言。
9
设计工具 图形工具 1、程序流程图(Program Flow Chart) 2、盒图(Box Diagram) 3、PAD图
10
程序流程图 5种基本控制结构 (1) 顺序结构(sequential structure)
(3) 先判定型循环结构(while-loop structure) (1) 顺序结构(sequential structure) (2) 选择结构(selective structure) T P S F A B P B A F T (5) 多情况选择(case structure) T A1 F P=1 A2 P=2 … An P=n (4) 后判定型循环结构(until-loop structure) F S T P 5种基本控制结构
11
程序流程图 优点:直观、容易掌握,且历史“悠久”,使用 广泛。 缺点:本质上不具备逐步求精的特点,对于提高
任何复杂的程序流程图都应由以上五种基本结构组合而成。 ISO 认可的规定符号: 优点:直观、容易掌握,且历史“悠久”,使用 广泛。 缺点:本质上不具备逐步求精的特点,对于提高 大型系统的可理解性作用甚微; 不易表示数据结构;转移控制太方便。 趋势:使用越来越少。
12
盒图 2、盒图(Box Diagram): Nassi &Shneiderman 1973年提出,又称为N-S Charts。Chapin 1974年作扩充,故也称为Chapin charts. P F T A B Selective Do-While P S While Sequential A B Call subroutine A Do-Until P S Until Case P 1 2 n A1 A2 An
13
盒图 例: x4 i g h f k x1 b a j x2 c d e k : Do-Until x6 1 Do-While x3 2 3
14
盒图 特点: ① 没有箭头,不允许随意转移控制;
② 每个矩形框(Case中条件取值例外)都是一个功能域(即一个特定结构的作用域),结构表示明确; ③ 局部及全程数据的作用域易见; ④ 易表现嵌套关系(embedded structure)以及模块的层次结构。
15
PAD 3、PAD(Problem Analysis Diagram):日立公司,1973 A B While P S Until P P
Sequential While P S Until P Loops P A B THEN ELSE Selective P = A1 A2 Case An 1 2 n … Statement Index def Definition
16
PAD
17
PAD 例:N-S图与PAD的转换 练习:请将N-S图转化成PAD图 x2 c d e k : x4 i g h f k x1 b a j
Do-While x3 2 3 d e k : x4 T F Do-Until x5 i g h f k x1 b Do-Until x6 a j P A B THEN ELSE Selective While P S Until P Loops A B Sequential P = A1 A2 Case An 1 2 n …
18
PAD a j Until x5 i Until x6 b x1 k f x4 g h k x2 d e While x3 c 开始
结束 a j Until x5 i Until x6 b x1 k f x4 g h def k x2 d e 1 2 3 While x3 c
19
PAD 特点: ① 结构清晰,层次分明,易读; ② 支持自顶向下、逐步求精的设计思想; ③ 容易将PAD自动转换为高级语言源程序。
20
设计工具 列表工具 判定表 & 判定树(Decision Table & Tree)表示复杂的条件(input)组合与应做动作(output)之间的对应关系。
21
列表工具 例: 航空行李托运费的算法 按规定:重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。
22
判定表 Rules Rule numbers Condition rows Action rows
23
判定树 用判定树表示计算行李费的算法 行李费算法 行李重量W > 30 行李重量W 30 免费 国内乘客 外国乘客 头等舱 其他舱
残疾乘客 正常乘客 (W-30) 2 (W-30) 4 (W-30) 3 (W-30) 6 (W-30) 8 (W-30) 12 注:判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试 用判定树表示计算行李费的算法
24
语言工具 例: PDL (Program Design Language):又称 Pseudocode.
PROCEDURE spell_check IS BEGIN Split document into single words Look up words in dictionary Display words which are not in dictionary Create a new dictionary END spell_check External statements Internal
25
工具 ① 有固定的外语法(keyword); ② 内语法用自然语言描述; ③ 有数据说明,例如: ④有子程序定义与调用机制,例如:
应具备以下特点: ① 有固定的外语法(keyword); ② 内语法用自然语言描述; 抽象类型 ③ 有数据说明,例如: TYPE number IS STRING LENGTH (12) TYPE table IS INSTANCE OF symbol_table ④有子程序定义与调用机制,例如: PROCEDURE <子程序名> <属性:内部\外部,编程语言等等> INTERFACE <参数表:I\O等等> pseudocode lines END 调用时可用:PERFORM <子程序名> USING<参数表>
26
设计工具 优点:易于实现由PDL到源代码的自动转换。 缺点:不够直观。
6、文件夹: 记录模块开发过程的文档。建议每个开发小组建立自己的文件夹。
27
工具 项目名称: 模块名称: 开发人员: 完成日期: 模块简述:
28
工具的使用 设计工具应具有的属性: 选用设计工具,应考虑的问题: 模块性、简明性、便于编辑、机器可读性、 易维护性、强行结构化、自动处理、
数据表示、逻辑验证、编程能力 选用设计工具,应考虑的问题: 是否能导致易于理解和评审的过程表达式? 是否能提高“编码”能力? 是否易于维护?以便设计总能给出正确的程序。
29
设计规约 分为总体设计和详细设计规约。 总体设计规约主要说明系统的结构设计,是详细设计的基础。
详细设计规约主要说明系统结构中的每个模块的过程设计。
30
Design specification Design specification Ⅰ. Scope
A. System objectives B. Major software requirements C. Design constraints, limits
31
Design specification Ⅱ. Data design
A. Data objects and resultant data structures B. File and database structures 1. External file structure a. Logical structure b. Logical record description c. Access method 2. Global data 3. File and data cross reference
32
Design specification Ⅲ. Architectural design
A. Review of data and control flow B. Derived program structure Ⅳ. Interface design A. Human-machine interface specification B. Human-machine interface design rules C. External interface design 1. Interface to external data 2. Interface to external systems or devices D. Internal interface design rules
33
Design specification Ⅴ. Procedural Design for each module:
A. Processing narrative B. Interface description C. Design language description D. Modules used E. Internal data structures F. Comments/restrictions/limitations
34
Design specification Ⅵ. Requirements cross-reference
Ⅶ. Test provisions A. Test guideline B. Integration strategy C. Special consideration Ⅷ. Special Notes Ⅸ. Appendix
35
Design Review Design review 设计的复审
软件的设计由管理方面的代表、技术开发方面的代表和其他有关人员(诸如用户、质量保障和软件支持者等)共同进行复审。 对设计进行复审的明显好处是可以比较早地发现软件的缺陷,从而可以使每个缺陷在进行编程、测试和交付之前予以纠正,从而显著地降低随后的开发阶段和维护阶段的费用。 设计复审包括正规的审查、非正规的审查和检查三种方式。
36
Design Review 设计复审的标准: 易追溯性: 风险 : 实用性: 易维护性 质量
该软件设计包括了软件需求规格说明的所有要求了吗? 该软件的每个部件与某个具体的软件要求有关吗? 风险 : 实现该设计会有很大风险吗?也就是说,没有技术性的突破该设计也能完成吗? 实用性: 该软件对软件要求所确定的问题是一种实用的解决办法吗? 易维护性 该设计是否将导致一个便于维护的系统? 质量 该设计具备一个“好”的软件应有的质量特征吗?
37
Design Review (Cont.) 接口 技术清晰度 选择方案 限制 某些具体的问题 外部和内部的接口已经规定得足够明确了吗?
该设计的表达方式是否使它便于转化成程序? 选择方案 考虑了其他设计方案了吗?采用什么标准来选择最后方案呢? 限制 软件限制是否现实?与要求相符合吗? 某些具体的问题 该软件便于人控制机器吗?便于测试吗?与其他系统部分相适应吗?有足够的文档吗?
38
Design Review 正规的复审 通常是为了评价软件的结构和接口;
这种类型的复审的特点在于:设计人员和复审人员都要认真的准备;有相当多的复审者参加,他们对该软件研制项目有不同程度的兴趣; 管理方面和技术方面站得高,视野开阔; 提供正式的设计文档; 由通知到开会的时间间隔至少有两个星期。
39
Design Review 非正规的复审 所谓非正规的复审指的是从临时通知的碰头会到有关同事参加的比较有组织的复审这整个范围而言的,一般由通知到开会的时间间隔只有二至三天。
40
小结 体系结构设计 面向数据流的设计 面向数据结构的设计 详细设计 设计规约与评审
Similar presentations