软件工程03-2(详细设计)
软件工程概要设计和详细设计

•过程设计则是把结构成份转换成软件的过程性描述。
•界面设计是对系统边界的描述,用户界面是用户和 系统进行交互的工具,人机接口直接影响软件的寿命。
ClientA
ClientB
ClientC
ClientD
第三级
客
户 机
business logic node(商业逻辑结点)
Security
(安全)
Event
(事件)
Search
(搜索)
服
务
器
Database management node
(数据库管理结点)
第二级 第一级
软件工程概要设计和详细设计
现在越来越多的应用采用多层结构,以适应不断 变化的用户需求。
软件工程概要设计和详细设计
四、分布式对象结构(Distributed Objects Architecture)
在C/S模型中,客户和服务器在服务/请求上的差别, 在一定程度上限制了系统的灵活性和可扩展性。
采用分布式对象结构 :
“对象(Object)”——提供服务的系统组件(System Component)。
② 安全性:网络环境面临着各种威胁,如病毒、 木马、非法访问,安全问题十分突出
③ 可管理性:开放性造成异构性,造成管理困难 ④ 不可预知性:系统响应时间受网络负载等网络
环境的影响。
软件工程概要设计和详细设计
三、 客户机/服务器模型(Client/Server Architectural Model) C/S结构是一种分布式模型,采用发请求、得结
软件工程课程全部课程

软件工程伦理与职业规范
软件工程伦理
涉及软件开发过程中的道德和伦理问 题,如隐私保护、数据安全、软件可 靠性等。
软件工程职业规范
包括软件开发人员的职业道德、行为 规范、团队协作等方面的要求,以确 保软件开发过程的高效和质量。
软件工程的发展
软件工程自20世纪60年代诞生以来,经历了多个发展阶段。从 最初的瀑布模型到敏捷开发方法,软件工程的方法论和工具不 断演进,以适应不断变化的软件开发需求。
软件工程方法论
传统软件工程方法论
包括瀑布模型、螺旋模型等,强调严 格的阶段划分和文档化,适用于需求 明确且稳定的项目。
敏捷软件工程方法论
改进方法论述
介绍常用的持续改进方法,如PDCA循环(计划、执行、检查、行 动)、六西格玛管理、精益软件开发等,并分析其适用性和优缺点。
团队协作与沟通
强调团队协作和沟通在持续改进中的重要性,探讨如何建立高效的团 队协作机制和沟通渠道,以促进持续改进的实施。
案例分析:成功项目经验分享
成功项目介绍
选取一个或多个成功的软件项目作为案例,介 绍项目的背景、目标、实施过程以及取得的成 果。
需求变更管理
建立需求变更管理流程,明确变更申请、审批和 执行等环节
对变更需求进行评估,包括影响范围、成本和风 险等
及时更新需求规格说明书和相关文档,确保与项 目实际情况保持一致
03 系统设计与架构
系统总体设计
系统需求分析
对用户需求进行深入理解,明确系统应具备的功能和性能。
系统总体架构设计
根据需求分析结果,设计系统的整体架构,包括各组成部分及其 相互关系。
软件工程第4章 软件设计

5. 设计软件结构 通常程序中的一个模块完成一个适当的子功能。应 该把模块组织成良好的层次系统,顶层模块调用它 的下层模块以实现程序的完整功能,每个下层模块 再调用更下层的模块,从而完成程序的一个子功能, 最下层的模块完成最具体的功能。
6. 设计数据库 对于需要使用数据库的那些应用系统,软件工程师 应该在需求分析阶段所确定的系统数据需求的基础 上,进一步设计数据库。
高内聚也有两类:如果一个模块内的处理元素和同 一个功能密切相关,而且这些处理必须顺序执行 (通常一个处理元素的输出数据作为下一个处理元 素的输入数据),则称为顺序内聚。根据数据流图 划分模块时,通常得到顺序内聚的模块,这种模块 彼此间的连接往往比较简单。如果模块内所有处理 元素属于一个整体,完成一个单一的功能,则称为 功能内聚。功能内聚是最高程度的内聚。
(2) 用户手册根据总体设计阶段的结果,修改更正 在需求分析阶段产生的初步的用户手册。
(3) 测试计划包括测试策略,测试方案,预期的测 试结果,测试进度计划等等。 (4) 详细的实现计划 (5) 数据库设计结果
9. 审查和复审 最后应该对总体设计的结果进行严格的技术审查, 在技术审查通过之后再由使用部门的负责人从管理 角度进行复审。
为什么模块的独立性很重要呢?主要有两条理由: 第一,有效的模块化(即具有独立的模块)的软件比 较容易开发出来。这是由于能够分割功能而且接口 可以简化,便于多人分工合作开发同一个软件。
第二,独立的模块比较容易测试和维护。这是因为 相对说来,修改设计和程序需要的工作量比较小, 错误传播范围小,需要扩充功能时能够“插入”模块。
(2)详细设计。详细设计阶段的根本目标是确定 应该怎样具体地实现所要求的系统,也就是说,经 过这个阶段的设计工作,应该得出对目标系统的精 确描述,从而在编码阶段可以把这个描述直接翻译 成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序,而是 要设计出程序的“蓝图”,结果基本上决定了最终 的程序代码的质量。
软件工程(第五版)--习题及答案

一、判断题1、(√)详细设计也称模块设计。
2、(×)在数据代码设计时,应尽量让一条代码代表多个信息。
3、(×)在数据代码设计时,应可能设计字母和数字混合代码。
4、(×)在输出界面设计时,要尽可能使用代码或缩写,以求简洁。
5、(×)详细设计评审应尽可能和概要设计评审一同进行。
二、选择题1、软件详细设计的主要任务是确定每个模块的(A )。
A 、算法和使用的数据结构、算法和使用的数据结构 B 、外部接口、外部接口 C 、功能、功能 D 、程序、程序2、借助于软件工具,可将(C )容易地转换为高级语言源程序。
)容易地转换为高级语言源程序。
A 、程序流程图、程序流程图 B 、N-S 图 C 、PAD 图 D 、判定表、判定表3、不属于详细设计工具的是(A )。
A 、DFD 图B 、PAD 图C 、PDlD 、N-S 图 4、程序的三种基本结构是(C )。
A 、过程、子过程和子程序、过程、子过程和子程序 B 、递归、堆栈和队列、递归、堆栈和队列 C 、顺序、选择和重复、顺序、选择和重复 D 、调用、返回和转移、调用、返回和转移 5、下面描述中,符合结构化程序设计风格的是(A )。
A 、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 、模块只有一个入口,可以有多个出口C 、注重提高程序的执行效率、注重提高程序的执行效率D 、不使用goto 语句 三、简答题1、软件的详细设计阶段完成的主要任务是什么? 答:(1)算法设计;(2)数据结构设计;(3)模块接口细节设计;(4)测试用例设计;(5)数据库物理设计;(6)数据代码设计;(7)其他设计;(8)编写详细设计说明书并进行评审。
编写详细设计说明书并进行评审。
2、数据输入界面设计的主要原则有哪些?答:在设计数据输入界面时应做到:尽量简化用户的工作、减少输入的出错率;减轻用户的记忆负担、尽可能减少输入量并实现自动输入;尽可能减少输入量并实现自动输入; 对共同的输入设置默认值;对共同的输入设置默认值; 使用代码或缩写;缩写; 自动填入已输入过的内容;列表式输入; 数据分组输入。
《软件工程》(课程代码02333)

《软件工程》(课程代码02333)第一大题:单项选择题1、“软件工程的概念是为解决软件危机而提出的”这句话的意思是【】• A.强调软件工程成功解决了软件危机的问题• B.说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理• C.说明软件工程这门学科的形成是软件发展的需要• D.说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护存在的问题参考答案:C2、瀑布模型的主要特点是【】• A.将开发过程严格地划分为一系列有序的活动• B.将开发过程分解为阶段• C.提供了有效的管理模式• D.缺乏灵活性参考答案:A3、在软件工程的需求分析阶段,不属于问题识别内容的是[ ]• A.功能需求• B.性能需求• C.环境需求• D.输入/输入出需求参考答案:D4、画某系统的数据流图时,顶层图有[ ]• A.0张• B.1张• C.2张• D.3张及其以上参考答案:B5、软件模块内聚性最强的是[ ]• A.功能内聚• B.通信内聚• C.偶然内聚• D.逻辑内聚参考答案:D6、最早提出软件系统维护问题的阶段是【】• A.可行性分析• B.需求分析• C.概要设计• D.详细设计参考答案:B7、SD(结构化设计)方法设计的结果是【】• A.模块• B.模块结构图• C.模块的算法• D.数据流图参考答案:B8、在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试【】• A.单元测试• B.系统羽4试• C.集成测试• D.确认测试参考答案:A9、软件详细设计阶段的任务是【】• A.算法与数据结构设计• B.功能设计• C.调用关系设计• D.输入/输出设计参考答案:A10、下列属于静态测试方法的是【】• A.黑盒法• B.路径覆盖• C.白盒法• D.人工检测参考答案:D11、Fortran语言主要作为以下哪个方面的语言【】• A.科学工程计算• B.系统软件• C.事务处理• D.人工智能参考答案:A12、用结构化语言来描述加工逻辑的外层结构时,以下不属于基本结构的是【】• A.顺序结构• B.选择结构• C.嵌套结构• D.重复结构参考答案:C13、可维护软件的主要特性包括【】• A.可理解性、可修改性、可移植性• B.可使用性• C.可维护性、可使用性、可靠性• D.可测试性参考答案:A14、程序设计语言不具有的特性是【】• A.心理特性• B.工程特性• C.应用特性• D.技术特性参考答案:C15、下列不属于项目进度安排主要方法的是【】• A.工程网络图• B.Gantt图• C.进度结构图• D.任务资源表参考答案:C16、下列不属于通常冗余技术的是【】• A.结构冗余• B.信息冗余• C.时间冗余• D.代码冗余参考答案:D17、下列工具中,属于需求追踪工具的是【】• A.在DBMS上的应用运行工具• B.追踪和状态报告• C.访问和版本控制机构• D.文件和修改管理参考答案:A18、关于软件测试的目的,下面观点错误的是【】• A.为了发现错误而执行程序的过程• B.一个好的测试用例能够发现至今尚未发现的错误• C.证明程序是正确、没有错误的• D.一个成功的测试用例是发现了至今尚未发现的错误的测试参考答案:C19、在制定项目开发计划文档时,不包含的内容是【】• A.项目概述• B.实施计划• C.测试计划• D.交付期限参考答案:C20、面向对象的开发方法中,以下哪种方法原是面向Ada语言的,并处于面向对象开发方法的奠基性地位【】• A.Booch方法• B.coad方法• C.UML语言• D.OMT方法参考答案:A21、可行性研究要进行一次_____需求分析。
清华大学郑人杰殷仁昆教授软件工程讲义03

软件工程
12
c) 模块可理解性 一个模块可不参考其他模 块而被理解;
d) 模块连续性 对软件需求的一些微小变更 只导致对某个模块的修改而整个系统不 用大动;
e) 模块保护 将模块内出现异常情况的影响 范围限制在模块内部;
5) 设计应遵循信息隐蔽的原则。
✓ Patnas主张在开发时,将每个程序的成分隐 藏在模块内,定义每一个模块时尽可能少地 显露其内部的处理。
软件工程
13
✓ 每个模块的实现细节对于其它模块是隐蔽的, 将来修改软件时偶然引入错误所造成的影响 就可以局限在一个或几个模块内部,不致波 及到软件的其它部分。
✓ 在可预见将来可能修改的场合,信息隐蔽可 以提高软件的可修改性、可测试性和可移植 性。
公共耦合(Common Coupling)
若一组模块都访问同一个公共数据环境,则它 们之间的耦合就称为公共耦合。公共的数据环 境可以是全局数据结构、共享的通信区、内存 的公共覆盖区等。
软件工程
21
公共耦合的复杂程度随耦合模块的个数增加而 显著增加。若只是两模块间有公共数据环境, 则公共耦合有两种情况。松散公共耦合和紧密 公共耦合。
软件工程
25
功能内聚 (Functional Cohesion)
一个模块中各个部分都是完成某一具体功能必 不可少的组成部分,或者说该模块中所有部分 都是为了完成一项具体功能而协同工作,紧密 联系,不可分割的。则称该模块为功能内聚模 块。
功能内聚模块的功能独立性最强。
软件工程
26
信息内聚 (Informational Cohesion)
这种模块完成多个功能,各个功能相互独立但 都在同一数据结构上操作,每一项功能有一个 唯一的入口点。这个模块将根据不同的要求, 确定该执行哪一个功能。
软件工程(第3版)第2章 人民邮电出版社PPT课件

6条“最佳实践” 10个“流程要素”
可重用方法内容及流程构建块的框架
可以在定义自己的开发方法和过程
底层方法及流程定义语言
统一方法架构元模型 UML
RUP最佳实践
迭代式开发 需求管理 使用基于组件的架构 可视化建模 验证软件质量 控制软件变更
问题定义 可行性研究 需求分析 概要设计 详细设计 编码和单元测试 集成测试(综合测试) 软件维护
瀑布模型
收集需求 分析 设计 编码 测试 维护
瀑布模型 - 加入迭代过程
收集需求 分析 设计 编码 测试 维护
快速原型法
快速建立一个反映用户 主要需求的原型系统
可视化编程工具的广泛 使用
架构和组件
软件架构(Software Architecture)
构成系统的组件 组件之间的关联和交互
架构刻画了系统的整体设计
去掉了细节部分 突出了系统的重要特征
可视化建模
由于应用领域不同,模型可以有文字、图形或数学 表达式等多种形式,一般说来,使用可视化的图形 更容易令人理解。
验证软件质量
用户故事 需求
测试用例 新用户故事
差错
隐喻 架构试探
制定交付 交付计划 计划
不确定的估计
确定的估计
最新版本
用户认可
迭代开发
验收测试
下一次迭代
小交付
难点试探
XP(极限编程Extreme Programming)的整体开发过程
极限编程
未完成的任务 用户故事 交付计划 项目速率
新用户故事 新项目速率
共享的信息
能力成熟度模型的结构
能力成熟度等级
初始级 可重复级 已定义级 已管理级 优化级
软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。
1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。
1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。
1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。
2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海大学计算机学院
25/41
判定表
当算法中包含多重嵌套的条件选择时,用程序
流程图、N-S图或PAD都不易清楚地描述。
然而,判定表却能清晰地表达复杂的条件组合
与应做动作之间的对应关系。 一张判定表由4部分组成,左上部列出所有条件, 左下部是所有可能做的动作,右上部是表示各 种条件组合的一个矩阵,右下部是和每种条件 组合相对应的动作。判定表右半部的每一列实 质上是一条规则,规定了与特定的条件组合相 对应的动作。
上海大学计算机学院 17/41
N-S图
盒图没有箭头,因此不允许随意转移控制。 坚持使用盒图作为详细设计的工具,可以 使程序员逐步养成用结构化的方式思考问 题和解决问题的习惯。
上海大学计算机学院
18/41
控制结构相互组合和嵌套的实例
上海大学计算机学院
19/41
PAD
PAD是问题分析图(problem analysis
上海大学计算机学院
35/41
设计规约
Ⅰ. 工作范围 A. 系统目标 B. 运行环境 C. 主要软件需求 D. 设计约束∕限制 Ⅱ. 体系结构设计 A. 数据流与控制流复审 B. 导出的程序结构 C. 功能与程序交叉索引 Ⅲ. 数据设计 A. 数据对象与形成的数据结构 B. 文件和数据库结构 ⅰ文件的逻辑结构 ⅱ 文件逻辑记录描述 ⅲ 访问方式
上海大学计算机学院
12/41
程序流程图
程序流程图又称为程序框图,它是历史最悠久、
使用最广泛的描述过程设计的方法,然而它也 是用得最混乱的一种方法。 从20世纪40年代末到70年代中期,程序流程图 一直是软件设计的主要工具。它的主要优点: 对控制流程的描绘很直观,便于初学者掌握。 由于程序流程图历史悠久,为最广泛的人所熟 悉,尽管它有种种缺点,许多人建议停止使用 它,但至今仍在广泛使用着。不过总的趋势是 越来越多的人不再使用程序流程图了。
上海大学计算机学院
14/41
控制结构相互组合和嵌套的实例
上海大学计算机学院
15/41
N-S图
Nassi和Shneiderman 提出了一种符合结构化程序设计
原则的图形描述工具,叫做盒图,也叫做N-S图(五种 基本控制结构)
上海大学计算机学院
16/41
N-S图
出于要有一种不允许违背结构程序设计
是编码的先导,这一阶段产生的设计文档 的质量将直接影响下一阶段程序的质量。 上海大学计算机学院
5/41
部件级设计技术
表达工具必须具有描述过程细节的能力, 可在编码阶段直接将它翻译为用某种语 言表达的code。 在部件级设计阶段,主要完成如下工作:
(1)
(2) (3)
为每个部件确定采用的算法,选择某种适当的 工具表达算法的过程,编写部件的详细过程性 描述; 确定每一部件内部使用的数据结构; 在部件级设计结束时,应该把上述结果写入部 件级设计说明书,并且通过复审形成正式文档, 作为下一阶段(编码阶段)的工作依据。
上海大学计算机学院 24/41
PAD
PAD图的主要优点如下: (5) 即可用于表示程序逻辑,也可用于描绘数据结构。 (6) PAD图的符号支持自顶向下、逐步求精方法的使用。 开始时设计者可以定义一个抽象的程序,随着设计工作 的深入而使用def符号逐步增加细节,直至完成详细设 计. PAD图是面向高级程序设计语言的,为FORTRAN, COBOL和PASCAL等每种常用的高级程序设计语言都 提供了一整套相应的图形符号。由于每种控制语句都有 一个图形符号与之对应,显然将PAD图转换成与之对应 的高级语言程序比较容易。
上海大学计算机学院 7/41
结构化程序设计
结构程序设计的概念最早由Dijkstra提出。
理由:goto语句对程序的可读性、可测试 性和可维护性带来了极大的危害。 1965年“程序的质量与程序中所包含的 GOTO 语句的数量成反比”。 1966年Bohm和Jacopini证明了,只用3 种基本的控制结构就能实现任何单入口、 单出口的程序。这3种基本的控制结构是 “顺序”、“选择”和“循环”。
上海大学计算机学院
27/41
判定表
上海大学计算机学院
28/41
判定表的优点是能够简洁,无二义性地
描述所有的处理规则。
但判定表表示的是静态逻辑,是在某种
条件取值组合情况下可能的结果,它不 能表达加工的顺序,也不能表达循环41
判定树
判定表虽然能清晰地表示复杂的条件组合 与应做的动作之间的对应关系,但其含义 却不是一眼就能看出来的,初次接触这种 工具的人理解它需要有一个简短的学习过 程。此外,当数据元素的值多于两个时 (例如,上例中假设对机票需细分为头等 舱、二等舱和经济舱等多种级别时),判 定表的简洁程度也将下降。
上海大学计算机学院
13/41
程序流程图
程序流程图的主要缺点如下:
(1) 程序流程图本质上不是逐步求精的好工具, 它诱使程序员过早地考虑程序的控制流程,而 不去考虑程序的全局结构。 (2) 程序流程图中用箭头代表控制流,因此程序 员不受任何约束,可以完全不顾结构程序设计 的精神,随意转移控制。 (3) 程序流程图不易表示数据结构。
外语法应当符合一般程序设计语言常用语句
的语法规则; 内语法可以用英语中一些简单的句子、短语 和通用的数学符号,来描述程序应执行的功 能
上海大学计算机学院 33/41
PDL的使用实例
PROCEDURE
spellcheck IS 查找错拼的单词 BEGIN split document into single words 把整个文档分离成单词 lood up words in dictionary 在字典中查这些单词 display words which are not in dictionary 显示字典中查不到的单词 create a new dictionary 造一新字典 END spellcheck
上海大学计算机学院
4/41
部件级设计技术
在软件体系结构设计阶段,已经确定了软
件系统的总体结构,给出了系统中各个组 成部件的功能和部件间的联系。
部件级设计是要在上述结果的基础上,考
虑“怎样实现”这个软件系统,直到对系 统中的每个部件给出足够详细的过程性描 述。
还不是程序,不能直接运行。部件级设计
上海大学计算机学院
34/41
PDL特点
1. 有固定的关键字外语法,提供全部结构化控制结构、数 据说明和部件特征。属于外语法的关键字是有限的词汇 集,它们能对PDL正文进行结构分割,使之变得易于理 解。为了区别关键字,规定关键字一律大写,其它单词 一律小写。 2.内语法使用自然语言来描述处理特性。内语法比较灵活, 只要写清楚就可以,不必考虑语法错,以利于人们可把 主要精力放在描述算法的逻辑上。 3. 有数据说明机制,包括简单的(如标量和数组)与复杂 的(如链表和层次结构)的数据结构。 4. 有子程序定义与调用机制,用以表达各种方式的接口说 明。
上海大学计算机学院
21/41
PAD实例
上海大学计算机学院
22/41
PAD
PAD图的主要优点如下: (1) 使用表示结构化控制结构的PAD符号所 设计出来的程序必然是结构化程序。 (2) PAD图所描绘的程序结构十分清晰。图 中最左面的竖线是程序的主线,即第一层 结构。随着程序层次的增加,PAD图逐渐 向右延伸,每增加一个层次,图形向右扩 展一条竖线。PAD图中竖线的总条数就是 程序的层次数。
C. 全局数据
D. 文件∕数据与程序交叉索引 Ⅳ. 接口设计 A. 人机界面规格说明 B. 人机界面设计规则 C. 外部接口设计 ⅰ外部数据接口 ⅱ 外部系统或设备接口 36/41 D. 内部接口设计规则 上海大学计算机学院
详细设计阶段的任务还不是具体地编写程
序,而是要设计出程序的“蓝图”,以后 程序员将根据这个蓝图写出实际的程序代 码。 上海大学计算机学院
3/41
部件级设计技术
部件在不同的分析设计方法中对应不同的
名称。在结构化分析和设计方法时部件往 往被称为模块。
在面向对象分析和设计时部件被称为类,
在基于构件的开发方法中,部件被称为构 件。
上海大学计算机学院
30/41
判定树
判定树是判定表的变种,也能清晰地表示
复杂的条件组合与应做的动作之间的对应 关系。
判定树的优点:它的形式简单到不需任何
说明,一眼就可以看出其含义,因此易于 掌握和使用。多年来判定树一直受到人们 的重视,是一种比较常用的系统分析和设 计的工具。
上海大学计算机学院
diagram)的英文缩写,自1973年由日本 日立公司发明以后,已得到一定程度的推 广。它用二维树形结构的图来表示程序的 控制流,将这种图翻译成程序代码比较容 易。
上海大学计算机学院
20/41
PAD
PAD是Problem Analysis Diagram的缩
写 ,由程序流程图演化而来 五种基本控制结构
精神的图形工具的考虑,Nassi和 Shneiderman提出了盒图,又称为N-S 图。它有下述特点:
(1) 功能域(即,一个特定控制结构的作用域)明 确,可以从盒图上一眼就看出来。 (2) 不可能任意转移控制。 (3) 很容易确定局部和全程数据的作用域。 (4) 很容易表现嵌套关系,也可以表示模块的 层次结构。
31/41
判定树
图6.7是和表6.1等价的判定树。
上海大学计算机学院
32/41
设计性语言PDL (补充材料)
PDL(Program Design Language)是一
种用于描述功能部件的算法设计和处理 细节的语言,称为设计性语言。 它是一种伪码。一般地,伪码的语法规 则分为“外语法”和“内语法”