1、软件工程软件工程第一章第一章 绪论绪论复习建议:复习建议:本章内容较少,主要是让大家了解软件工程的提出的背景本章内容较少,主要是让大家了解软件工程的提出的背景-软件危机以及软件工软件危机以及软件工程研究的内容。程研究的内容。考试题目类型主要是单项选择题、填空题,题量在考试题目类型主要是单项选择题、填空题,题量在3%5%3%5%之间。之间。第一节第一节 软件工程概念的提出与发展软件工程概念的提出与发展1 1、软件危机、软件危机速度:速度:软件的发展水平远远滞后于硬件的发展水平,生产软件的发展水平远远滞后于硬件的发展水平,生产率低下,软件制造仍然是一种人工集约生产方式率低下,软件制造仍然是一种人工
2、集约生产方式质量:质量:软件的质量低下,不能满足用户的需求、适应性差软件的质量低下,不能满足用户的需求、适应性差 成本:成本:软件开发成本居高不下软件开发成本居高不下软件工程的三个核心问题软件工程的三个核心问题:软件开发的速度软件开发的速度、软件制品的质量软件制品的质量、软件开发成本软件开发成本2、软件工程的发展软件工程的发展(1 1)2020世纪世纪60806080年代年代瀑布模型;过程化语言;支持工具瀑布模型;过程化语言;支持工具(2 2)2020世纪世纪8080年代年代 今今软件复用技术;软件生产管理;面向对象语言软件复用技术;软件生产管理;面向对象语言(3 3)近几年)近几年软件复用技
3、术:构件技术、平台技术、需求工程技术、领域软件复用技术:构件技术、平台技术、需求工程技术、领域分析技术、应用集成技术等。分析技术、应用集成技术等。3 3、什么是软件工程:、什么是软件工程:应用计算机科学理论和技术以及工程管理原则和方法,按应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的科学究对象的科学第二节第二节 软件开发的本质软件开发的本质 软件软件软件软件=程序程序+文档文档 软件开发的本质:软件开发的本质:“映射映射”,问题域到不同抽象层之间概念和问题域到不同抽象层之间概
4、念和计算逻辑的映射计算逻辑的映射.2 2 实现映射的基本手段实现映射的基本手段 何谓建立问题的模型何谓建立问题的模型:问题的结构化谱系问题的结构化谱系 例如例如1:y=x+5 结构化结构化问题问题非非 结构化结构化 或半结构化问题或半结构化问题 是解决问题的一般途径是解决问题的一般途径!其中其中:采用数学作为建模工具采用数学作为建模工具建模:建模:运用所掌握的知识运用所掌握的知识,通过抽象,给出该问题的一个结构。通过抽象,给出该问题的一个结构。模型模型模型是一个抽象。模型是在特定意图下所确定的角度和抽象层次模型是一个抽象。模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该
5、系统边界的描述、对系统内各上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述。模型元素以及它们之间关系的语义描述。系统模型的类型系统模型的类型概念模型:描述软件是什么概念模型:描述软件是什么软件模型:实现概念模型的软件解决方案。包括设计模型、实现软件模型:实现概念模型的软件解决方案。包括设计模型、实现模型和部署模型。模型和部署模型。第二章第二章 软件软件需求需求与软件需求规约与软件需求规约复习建议:复习建议:正确定义问题正确定义问题,是解决问题的基础。,是解决问题的基础。需求获取是软件开发的第一步,它的工作质量决定了需求获取是软件开发的第一步,它的工作
6、质量决定了整个软件开发工作的成败,因此本章的内容是考核的重整个软件开发工作的成败,因此本章的内容是考核的重点内容。点内容。考核的题目类型主要有:单项选择题、填空题、简答考核的题目类型主要有:单项选择题、填空题、简答题,分值在题,分值在10%10%左右。左右。内容以基本概念、基本原理为主。内容以基本概念、基本原理为主。第一节:需求与需求获取第一节:需求与需求获取1 1、需求的定义、需求的定义一个需求是有关一个一个需求是有关一个“要予构造要予构造”的陈述,描述了待开发产品的陈述,描述了待开发产品/系统功能能力、性能参数或其它性质。系统功能能力、性能参数或其它性质。2 2、需求的基本性质、需求的基本
7、性质 必要的必要的 无歧义的无歧义的 可测的可测的 可跟踪的可跟踪的 可测量的可测量的3 3、需求的分类、需求的分类 功能需求,是整个需求的主体。功能需求,是整个需求的主体。非功能需求:性能需求、外部接口需求、设计约束和质量属性需非功能需求:性能需求、外部接口需求、设计约束和质量属性需求。求。能够区分哪些是功能需求,哪些是性能需求。能够区分哪些是功能需求,哪些是性能需求。例如:例如:系统必须有能力支持系统必须有能力支持100个以上的并发用户,每个用户可个以上的并发用户,每个用户可 以处理附录以处理附录A中操作任务的任选组合,平均响应时间应该中操作任务的任选组合,平均响应时间应该 小于小于1秒,
8、最大响应时间应小于秒,最大响应时间应小于5秒。秒。其中其中:功能功能-可以处理附录可以处理附录A中操作任务的任选组合中操作任务的任选组合 性能性能-有能力支持有能力支持100个以上的并发用户个以上的并发用户 平均响应时间应小于平均响应时间应小于1秒,最大响应时间应小于秒,最大响应时间应小于5秒。秒。必须在对话窗口的中间显示错误警告,其中使用红色的、必须在对话窗口的中间显示错误警告,其中使用红色的、14点加粗点加粗Arial字体。字体。其中其中:功能功能-能显示错误警告能显示错误警告 设计约束设计约束-在对话窗口的中间显示在对话窗口的中间显示,并使用红色的、并使用红色的、14点加点加 粗粗Ari
9、al字体。字体。除了对要执行的功能给出一个陈述外,还应规约如下内容:除了对要执行的功能给出一个陈述外,还应规约如下内容:关于该功能输入的关于该功能输入的所有假定所有假定,或为了验证该功能输入,或为了验证该功能输入,有关检测的假定。有关检测的假定。功能内的任一动作次序功能内的任一动作次序,这一次序是与外部有关的。,这一次序是与外部有关的。对异常条件的响应对异常条件的响应,包括所有内外部所产生的错误。,包括所有内外部所产生的错误。需求的时序或优先程度需求的时序或优先程度。功能之间的功能之间的互斥规则互斥规则。系统内部系统内部状态的假定状态的假定。为了该功能的执行,所需要的为了该功能的执行,所需要的
10、输入和输出次序输入和输出次序。用于转换或内部计算所需要的用于转换或内部计算所需要的公式公式。4 4、性能需求、性能需求规约了一个系统或系统构件必须具有的规约了一个系统或系统构件必须具有的性能特性性能特性。例如:系统应该在例如:系统应该在5 5分钟内计算出给定季度的总销售税。分钟内计算出给定季度的总销售税。系统应该在系统应该在1 1分钟内从分钟内从100000100000条记录中检索出一个销售定单。条记录中检索出一个销售定单。该应用必须支持该应用必须支持100100个个Windows 95/NTWindows 95/NT工作站的并行访问。工作站的并行访问。注注1 1:性能需求隐含了一些满足功能需
11、求的设计方案,经常:性能需求隐含了一些满足功能需求的设计方案,经常 对设计产生一些关键的影响。例如:排序,关于花费对设计产生一些关键的影响。例如:排序,关于花费 时间的规约将确定哪种算法是可行的。时间的规约将确定哪种算法是可行的。注注2:2:性能需求对功能需求而言性能需求对功能需求而言,可以是一对多的可以是一对多的,例如例如:性能性能x 功能功能 功能功能 功能功能5 5、接口需求的类别、接口需求的类别 用户接口用户接口 和和用户之间接口的逻辑特性用户之间接口的逻辑特性。硬件接口硬件接口 说明所要求的说明所要求的支持和协议类型支持和协议类型 软件接口软件接口 允许与其它软件产品进行交互允许与其
12、它软件产品进行交互 通信接口通信接口 与通讯设施与通讯设施(如,局域网如,局域网)之间的交互之间的交互 内存约束内存约束 易失性存储和永久性存储易失性存储和永久性存储的特性和限制的特性和限制 运行运行 正常和异常正常和异常的运行的运行以及以及在系统正常和异常在系统正常和异常运行下运行下如何与系统进行交互如何与系统进行交互 地点需求地点需求 描述系统安装以及如何调整一个地点,以描述系统安装以及如何调整一个地点,以适应新的系统适应新的系统。6 6、设计约束需求、设计约束需求 法法规政策规政策 硬硬件限制件限制 与其它应用的与其它应用的接接口口 并并发操作发操作 审审计能力计能力 控控制功能制功能
13、高级高级语语言要求言要求 握握手协议手协议 应用的应用的关关键程度键程度 安安全和保密全和保密7 7、质量属性质量属性 质量属性质量属性(Quality attribute)(Quality attribute)规约了软件产品必须具有规约了软件产品必须具有的一个性质是否达到质量方面一个所期望的水平。例如:的一个性质是否达到质量方面一个所期望的水平。例如:属性属性 描述描述 可可靠性靠性 软件系统在指定环境中没有失败而正常运行的概率软件系统在指定环境中没有失败而正常运行的概率。存存活性活性 当系统的某一部分系统不能运行时,该软件继续运行或支当系统的某一部分系统不能运行时,该软件继续运行或支 持关
14、键功能的可能性。持关键功能的可能性。可可维维护性护性 发现和改正一个软件故障或对特定的范围进行修改发现和改正一个软件故障或对特定的范围进行修改 所要求的平均工作。所要求的平均工作。用用户户友好性友好性 学习和使用一个软件系统的容易程度。学习和使用一个软件系统的容易程度。需求发现的技术需求发现的技术自悟自悟交谈交谈观察观察小组会小组会提炼提炼第二节第二节 需求规约(需求规约(SRSSRS)1 1、需求规约的定义、需求规约的定义 是一个软件是一个软件/产品产品/系统所有需求陈述的正式文档,它表达了系统所有需求陈述的正式文档,它表达了一个软件一个软件/产品产品/系统的概念模型。系统的概念模型。2 2
15、、需求规约的基本性质、需求规约的基本性质 重要性和稳定性程度:对需求进行分级重要性和稳定性程度:对需求进行分级 可修改的可修改的 完整的:没有被遗漏的需求完整的:没有被遗漏的需求 一致的:不存在互斥的需求一致的:不存在互斥的需求3 3、需求规约(需求规约(SRSSRS)基本格式()基本格式(P28P28)4 4、表达需求规约、表达需求规约(规格说明书规格说明书)的三种风格的三种风格 非形式化的规约非形式化的规约 即以一种自然语言来表达需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言如同使用一种自然语言 写了一篇文章写了一篇文章.其中其中:可以不局限于那种语言通常所约定的任何符号或特
16、殊可以不局限于那种语言通常所约定的任何符号或特殊 限制限制(例如文法和词法)例如文法和词法),但要为那些在一个特定语境但要为那些在一个特定语境 中所使用的术语提供语义定义,一般情况下,该语境中所使用的术语提供语义定义,一般情况下,该语境 与通常使用该术语的语境是有区别的。与通常使用该术语的语境是有区别的。半形式化的规约半形式化的规约 即以半形式化符号体系即以半形式化符号体系(包括术语表、标准化的表达格包括术语表、标准化的表达格式等式等)来表达需求规约。来表达需求规约。因此因此,半形式化规约的编制应遵循一半形式化规约的编制应遵循一个标准的表示模板个标准的表示模板(一些约定一些约定)。其中其中:-
17、术语表术语表明确地标识了一些词,可以基于某一种自然语言明确地标识了一些词,可以基于某一种自然语言 -标准化的表达格式标准化的表达格式(例如例如数据流图、状态转换图、实例如例如数据流图、状态转换图、实 体关系图、数据结构图以及过程结构图等体关系图、数据结构图以及过程结构图等)标识了一些元标识了一些元 信息信息,支持以更清晰的方式系统化地来编制文档支持以更清晰的方式系统化地来编制文档.-应用中应用中,不论是词还是标准化的表达格式不论是词还是标准化的表达格式,在表达上均必在表达上均必 须遵循一些约定须遵循一些约定,即应以一种准确和一致方式使用之。即应以一种准确和一致方式使用之。形式化规约形式化规约
18、即以一种基于良构数学概念的符号体系来编制需求规约,即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。一般往往伴有解释性注释的支持。其中其中:-以数学概念以数学概念用于定义该符号体系的词法和语义用于定义该符号体系的词法和语义;-定义了一组支持逻辑推理的证明规则定义了一组支持逻辑推理的证明规则,并支持这一符号体并支持这一符号体 系的定义和引用。系的定义和引用。5 5、需求规约的作用、需求规约的作用 其作用可概括为:其作用可概括为:第一:也是最重要的,第一:也是最重要的,作为软件开发组织和用户之间一份事作为软件开发组织和用户之间一份事实的实的技术合同书技术合同书;是;是
19、产品功能及其环境的产品功能及其环境的体现体现。第二,对于项目的其余大多数工作,它是一个第二,对于项目的其余大多数工作,它是一个管理控制点管理控制点。第三,对于产品的设计,它是一个正式的、受控的第三,对于产品的设计,它是一个正式的、受控的起始点起始点。第四,是创建产品验收测试计划和用户指南的第四,是创建产品验收测试计划和用户指南的基础基础 SRSSRS所不能实现的作用所不能实现的作用 第一,它不是一个第一,它不是一个设计文档设计文档。它是一个。它是一个“为了为了”设计的文档。设计的文档。第二,它不是第二,它不是进度或规划文档进度或规划文档,不应该包含更适宜包含在,不应该包含更适宜包含在工作陈述(
20、工作陈述(SOWSOW)、软件项目管理计划)、软件项目管理计划(SPMP)(SPMP)、软件生存周、软件生存周期管理计期管理计 划划(SLCMP)(SLCMP)、软件配置管理计划、软件配置管理计划(SCMP)(SCMP)或软件质或软件质量保证计划量保证计划(SQAP)(SQAP)等文档中的信息。因此,在等文档中的信息。因此,在SRSSRS中不应给中不应给 出出:项目成本;项目成本;交付进度;交付进度;报告规程;报告规程;软件开发方法;质量保证规程;配置管理规程;软件开发方法;质量保证规程;配置管理规程;验证和确认规程;验收规程;安装规程。验证和确认规程;验收规程;安装规程。第三章第三章 结构化
21、方法结构化方法复习建议:复习建议:自顶向下,逐步求精。自顶向下,逐步求精。本章是整个课程的重点内容,其基本思想、基本章是整个课程的重点内容,其基本思想、基本原理和基本方法是软件工程理论体系中最经典本原理和基本方法是软件工程理论体系中最经典的内容,考核题型涉及单项选择题、填空题、简的内容,考核题型涉及单项选择题、填空题、简答题、综合应用题所有题目类型,占分值答题、综合应用题所有题目类型,占分值25%25%左右左右。建议考生在牢记基本概念、基本原理的基础上建议考生在牢记基本概念、基本原理的基础上,对综合应用题多下工夫,多做练习。,对综合应用题多下工夫,多做练习。第一节第一节 结构化需求分析结构化需
22、求分析第三章第三章 结构化方法结构化方法1 1、需求分析面临的挑战、需求分析面临的挑战问题空间理解问题空间理解人与人之间的通信,人与人之间的通信,“有效沟通有效沟通”需求的变化性需求的变化性第三章第三章 结构化方法结构化方法第三章第三章 结构化方法结构化方法3 3、数据流图、数据流图DFDDFD图图 用于建立系统功能模型。用于建立系统功能模型。是一种描述数据变换的图形化工具,其中包含的元素可以是是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。数据流、数据存储、加工、数据源和数据潭等。4 4、建模过程(绘制流程图的过程)、建模过程(绘制流程图的过程)
23、自顶向下、功能分解自顶向下、功能分解(1 1)建立系统环境图)建立系统环境图(2 2)自顶向下,逐步求精,建立系统的层次数据流图自顶向下,逐步求精,建立系统的层次数据流图 0 0层图:从层图:从0 0层图开始对流程图中的要素编号层图开始对流程图中的要素编号 1 1层图层图(3 3)定义数据字典)定义数据字典(4 4)描述加工)描述加工第三章第三章 结构化方法结构化方法【例题例题】绘制数据流程图(绘制数据流程图(20082008年年1010月真题)月真题)41.41.某个学生成绩管理系统的部分功能如下:某个学生成绩管理系统的部分功能如下:(1 1)基本信息管理:教务管理人员输入或修改学期教学执行
24、)基本信息管理:教务管理人员输入或修改学期教学执行计划、学生名单和教师名单;计划、学生名单和教师名单;(2 2)学生选课:学生根据教学执行计划进行选课;)学生选课:学生根据教学执行计划进行选课;(3 3)分配任课教师:教务管理人员为符合开课条件的课程分)分配任课教师:教务管理人员为符合开课条件的课程分配教师,并打印任课通知单给教师;配教师,并打印任课通知单给教师;(4 4)成绩管理:每门课程的教师在考试评分结束后将考试成)成绩管理:每门课程的教师在考试评分结束后将考试成绩交给教务管理人员,教务管理人员输入、维护成绩,系统可绩交给教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单(发给学
25、生)、成绩统计分析表(发给教务管理人生成成绩单(发给学生)、成绩统计分析表(发给教务管理人员)。员)。请根据要求画出该问题的分层数据流图(要求画出顶层和请根据要求画出该问题的分层数据流图(要求画出顶层和0 0层层数据流图)。数据流图)。第三章第三章 结构化方法结构化方法【解析解析】顶层图:只包含数据源顶层图:只包含数据源/数据潭以及相关的数据流和一个处理。数据潭以及相关的数据流和一个处理。第三章第三章 结构化方法结构化方法要注意的问题要注意的问题:1 1、黑洞、黑洞(black hole)(black hole),即只有输入而没有输出。,即只有输入而没有输出。只有输出而没有输入。只有输出而没有
26、输入。灰洞灰洞(gray hole)(gray hole),即输入不足以产生输出。灰洞是经常,即输入不足以产生输出。灰洞是经常也是不易被察觉的错误。也是不易被察觉的错误。加工处理只用来表示数据的处理和变化,避免将计算机命加工处理只用来表示数据的处理和变化,避免将计算机命令作为处理。令作为处理。数据流必须起于且数据流必须起于且/或止于处理,即每一个数据流必须有一或止于处理,即每一个数据流必须有一个处理与之有关,数据流不能起于数据存贮且止于一个数据源个处理与之有关,数据流不能起于数据存贮且止于一个数据源/数据潭或另一个数据存贮;也不能起于某个实体且止于另一数据潭或另一个数据存贮;也不能起于某个实体
27、且止于另一个数据源个数据源/数据潭或数据存贮。数据潭或数据存贮。第三章第三章 结构化方法结构化方法5 5、数据字典、数据字典定义数据流程图中所有数据流和数据存储的数据结构。定义数据流程图中所有数据流和数据存储的数据结构。定义为:定义为:=顺序结构:顺序结构:+选择结构:选择结构:【1 1】重复结构:重复结构:子界:子界:m.nm.n第三章第三章 结构化方法结构化方法6 6、加工的描述、加工的描述 (1 1)判定表)判定表判断表判断表(Decision Table)(Decision Table)也称为决策表,是一个二维表,它也称为决策表,是一个二维表,它说明了每一种条件组合所产生的结果。说明了
28、每一种条件组合所产生的结果。该表分为四个象限该表分为四个象限(quadrants)(quadrants)。1.1.左上限代表所有的条件左上限代表所有的条件2.2.左下限代表可能的结果左下限代表可能的结果3.3.右上限代表每一种条件的取值右上限代表每一种条件的取值(用用Y Y和和N N来表示来表示)4.4.右下限用右下限用X X表示所对应的条件组合所产生的结果表示所对应的条件组合所产生的结果【例题例题】画出顾客购货的折扣政策的决策表。画出顾客购货的折扣政策的决策表。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在若付
29、款日期在1010天以内天以内(含含1010天天),则当交易额超过¥,则当交易额超过¥10,00010,000时,给予时,给予5 5的折扣;当交易额在¥的折扣;当交易额在¥5,0005,000到¥到¥10,00010,000之间之间(含¥含¥5,000)5,000)时,给予时,给予3 3的的折扣;当交易额低于¥折扣;当交易额低于¥5,0005,000时,没有折扣。若付款日期超过时,没有折扣。若付款日期超过1010天,则无天,则无论交易额多少,均不给任何折扣。论交易额多少,均不给任何折扣。(2 2)、判定树)、判定树判断树判断树 (Decision Tree)(Decision Tree)也称为决
30、策树,是用来描述在一也称为决策树,是用来描述在一组不同的条件下,决策的行动是根据不同条件及其取值来选组不同的条件下,决策的行动是根据不同条件及其取值来选择的处理过程。业务规则的描述通常可以使用判断树这一过择的处理过程。业务规则的描述通常可以使用判断树这一过程描述工具。程描述工具。【例题例题】画出顾客购货的折扣政策的决策树。画出顾客购货的折扣政策的决策树。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在付款日期在1010天以内天以内(含含1010天天),则当交易额超过¥,则当交易额超过¥10,00010,000时,
31、给予时,给予5 5的折的折扣;当交易额在¥扣;当交易额在¥5,0005,000到¥到¥10,00010,000之间之间(含¥含¥5,000)5,000)时,给予时,给予3 3的折扣;的折扣;当交易额低于¥当交易额低于¥5,0005,000时,没有折扣。若付款日期超过时,没有折扣。若付款日期超过1010天,则无论交易额天,则无论交易额多少,均不给任何折扣。多少,均不给任何折扣。(3 3)、结构化语言)、结构化语言【例题例题】用结构化语言表达:顾客购货的折扣政策。用结构化语言表达:顾客购货的折扣政策。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在销售商在给顾客的折扣时,要考
32、虑付款日期和交易额这两个因素。若付款日期在1010天以内天以内(含含1010天天),则当交易额超过¥,则当交易额超过¥10,00010,000时,给予时,给予3 3的折扣;当交易额在的折扣;当交易额在¥5,0005,000到¥到¥10,00010,000之间之间(含¥含¥5,000)5,000)时,给予时,给予2 2的折扣;当交易额低于¥的折扣;当交易额低于¥5,0005,000时时,没有折扣。若付款日期超过,没有折扣。若付款日期超过1010天,则无论交易额多少,均不给任何折扣。天,则无论交易额多少,均不给任何折扣。IF IF 付款日期在付款日期在1010日以上日以上 折扣折扣=0=0ELSE
33、ELSE IF IF 交易额交易额=10000=10000 折扣折扣=3%=3%ELSE ELSE IF IF交易额交易额=5000=5000 折扣折扣=2%=2%ELSE ELSE 折扣折扣=0=0 7 7、需求验证需求验证验证每一个需求满足验证每一个需求满足5 5个性质:个性质:必要的、无歧义的、可测的、可跟踪的、可测量的必要的、无歧义的、可测的、可跟踪的、可测量的验证需求规格说明书满足验证需求规格说明书满足4 4个性质:个性质:重要性和稳定性程度、可修改的、完整的、一致的重要性和稳定性程度、可修改的、完整的、一致的第二节第二节 结构化设计结构化设计分为总体设计和详细设计分为总体设计和详细
34、设计1 1、总体设计的任务、总体设计的任务把系统的功能需求分配到一个特定的软件体系结构中。把系统的功能需求分配到一个特定的软件体系结构中。2 2、表达软件体系结构的工具、表达软件体系结构的工具(1 1)yourdonyourdon模块结构图模块结构图(2 2)层次图)层次图(3 3)HIPOHIPO图图3 3、模块结构图、模块结构图 结构图结构图(Structure Chart)(Structure Chart)是对软件总体结构的一种图形描述,它显示了软是对软件总体结构的一种图形描述,它显示了软件的层次结构、组织和通讯。也就是说,在结构图中,显示了软件是由哪些件的层次结构、组织和通讯。也就是说
35、,在结构图中,显示了软件是由哪些模块组成的,这些模块按照什么样的层次结构组织在一起以及模块之间通过模块组成的,这些模块按照什么样的层次结构组织在一起以及模块之间通过什么接口联系在一起。什么接口联系在一起。结构图也称之为控制结构图、模块结构图或系统结构图。结构图也称之为控制结构图、模块结构图或系统结构图。空心表示数据信息空心表示数据信息实心传递控制信息实心传递控制信息4 4、层次图、层次图层次图中一个矩形框代表一个模块,框间的连线表示调用关系(位于层次图中一个矩形框代表一个模块,框间的连线表示调用关系(位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。上方的矩形框所代表的模块调用位
36、于下方的矩形框所代表的模块)。5 5、HIPOHIPO图图HIPOHIPO图是美国图是美国IBMIBM公司发明的公司发明的“层次图加输入层次图加输入/处理处理/输出图输出图”的英文缩写。的英文缩写。为了使为了使HIPOHIPO图具有可追踪性,在图具有可追踪性,在H H图图(即层次图即层次图)里除了顶层的方框之外,每个里除了顶层的方框之外,每个方框都加了编号。方框都加了编号。H H图图+IPO+IPO图图 6 6、总体设计步骤、总体设计步骤将将DFDDFD图图映射映射为设计层面的模块及模块调用。为设计层面的模块及模块调用。(1 1)变换流)变换流(Transform Flow)(Transfor
37、m Flow)。基于变换流的数据流程图是一个线性的。基于变换流的数据流程图是一个线性的顺序结构,由输入臂、输出臂和变换中心三部分组成。其中变换中心使系统顺序结构,由输入臂、输出臂和变换中心三部分组成。其中变换中心使系统数据发生本质的变化,输入臂将物理输入变换成逻辑输入,而输出臂则将逻数据发生本质的变化,输入臂将物理输入变换成逻辑输入,而输出臂则将逻辑输出变换成物理输出。辑输出变换成物理输出。(2 2)事务流事务流(Transaction Flow)(Transaction Flow)。事务流的数据流程图中有一个事务处理。事务流的数据流程图中有一个事务处理中心,它将输入分为许多相互平行的加工路径
38、,然后根据输入的属性,选择某中心,它将输入分为许多相互平行的加工路径,然后根据输入的属性,选择某一加工路径。如下图所示。一加工路径。如下图所示。业务中心完成以下任务:业务中心完成以下任务:接收事务接收事务(即输入数据即输入数据);分析每个事务并确定它的类型;分析每个事务并确定它的类型;根据事务的类型选取一条活动通路。根据事务的类型选取一条活动通路。【例题例题】控制结构图的绘制控制结构图的绘制根据数据计算的数据流图:根据数据计算的数据流图:输入数据输入数据数据求解数据求解打印输出打印输出画出以转换为中心的控制结构图。画出以转换为中心的控制结构图。【解析解析】这是一个典型的以这是一个典型的以“转换
39、为中心转换为中心”结构的分解,可以转化为:结构的分解,可以转化为:总结总结:任何处理都可以划分为两种转换类型之一:以转换为中心的分解:任何处理都可以划分为两种转换类型之一:以转换为中心的分解和以业务为中心结构的分解。和以业务为中心结构的分解。【例题例题】产生固定资产资料数据流程图如下,做出以业务为中心的模块控制结构图。产生固定资产资料数据流程图如下,做出以业务为中心的模块控制结构图。这是以业务为中心的处理,根据模板,可以转化为:这是以业务为中心的处理,根据模板,可以转化为:7 7、模块模块执行一个特殊任务的一个过程以及相关的数据结构。模块通常由两部分组成:模执行一个特殊任务的一个过程以及相关的
40、数据结构。模块通常由两部分组成:模块接口和模块体。块接口和模块体。8 8、模块化模块化“分而治之分而治之”和和“抽象抽象”。把一个待开发的软件分解成若干个简单的、具有高内聚低耦合的模块,这一过程把一个待开发的软件分解成若干个简单的、具有高内聚低耦合的模块,这一过程称为模块化。称为模块化。模块化是系统设计基本原理模块化是系统设计基本原理/原则之一。原则之一。9 9、内聚、内聚(Cohesion)(Cohesion)是指一个模块内部个成分之间相互关联程度的度量。也就是说,凝是指一个模块内部个成分之间相互关联程度的度量。也就是说,凝聚是对模块内各处理动作组合强度的一种度量。很显然,一个模块的聚是对模
41、块内各处理动作组合强度的一种度量。很显然,一个模块的内聚越大越好。内聚越大越好。(1 1)偶然凝聚)偶然凝聚 可维护性最差可维护性最差 (2 2)逻辑凝聚)逻辑凝聚(3 3)时间凝聚)时间凝聚(4 4)过程内聚)过程内聚(5 5)通信内聚)通信内聚(6 6)顺序凝聚)顺序凝聚(7 7)功能凝聚)功能凝聚 可维护性最好可维护性最好 1010、模块耦合、模块耦合耦合耦合(coupling)(coupling)是对两个模块之间联接程度的一种度量。模块间的依赖是对两个模块之间联接程度的一种度量。模块间的依赖程度越大,则其耦合程度也就越大;反之,模块间的依赖程度越小,则其程度越大,则其耦合程度也就越大;
42、反之,模块间的依赖程度越小,则其耦合程度也就越小。耦合程度也就越小。很显然,为了使软件具有较好的可维护性和可修改性,模块间的关联程很显然,为了使软件具有较好的可维护性和可修改性,模块间的关联程度即耦合程度应越小越好。因为耦合程度越小,表明模块间的独立程度越度即耦合程度应越小越好。因为耦合程度越小,表明模块间的独立程度越大,这样在修改一个模块时,对其它模块的影响程度就越小,从而使模块大,这样在修改一个模块时,对其它模块的影响程度就越小,从而使模块的修改工作局限于一个最小范围之内。的修改工作局限于一个最小范围之内。(1 1)内容耦合)内容耦合(2 2)公共耦合)公共耦合(3 3)数据耦合)数据耦合
43、(4 4)控制耦合)控制耦合(5 5)标记耦合)标记耦合原则原则是:尽量用数据耦合,少用控制耦合,限制公共耦合的范围,避免是:尽量用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。使用内容耦合。1111、启发式规则启发式规则高内聚、低耦合。高内聚、低耦合。(1 1)改进软件结构,提高软件独立性。模块分解改进软件结构,提高软件独立性。模块分解(2 2)模块规模适中模块规模适中(3 3)力求深度、宽度、扇出、扇入适中。力求深度、宽度、扇出、扇入适中。深度:表示其控制的层数。深度:表示其控制的层数。宽度:同一层次上模块总数的最大值。宽度:同一层次上模块总数的最大值。扇出:一个模块直接控
44、制的下级模块的数目。扇出:一个模块直接控制的下级模块的数目。扇入:有多少个上级模块直接调用它。扇入:有多少个上级模块直接调用它。原则原则:顶层模块扇出比较大,中间层模块扇出较小,底层模块具有较大:顶层模块扇出比较大,中间层模块扇出较小,底层模块具有较大的扇入。的扇入。(4 4)尽量使模块的作用域在其控制域内。尽量使模块的作用域在其控制域内。模块的控制域:这个模块本身以及所有直接或间接从属它的模块的集合模块的控制域:这个模块本身以及所有直接或间接从属它的模块的集合。模块的作用域:受该模块内一个判断所影响的所有模块的集合。模块的作用域:受该模块内一个判断所影响的所有模块的集合。(5 5)尽力降低模
45、块接口的复杂度尽力降低模块接口的复杂度(6 6)力求模块功能可以预测力求模块功能可以预测 1212、详细设计、详细设计具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一组例程和数据结构。组例程和数据结构。1313、结构化程序设计方法、结构化程序设计方法一种基于结构的编程方法,即采用顺序结构、选择结构和重复结构进行编程,一种基于结构的编程方法,即采用顺序结构、选择结构和重复结构进行编程,其中每一结构只允许一个入口和一个出口其中每一结构只允许一个入口和一个出口 三种基本的控制结构:三种基本的控制结构:(a)(a)
46、顺序结构,先执行顺序结构,先执行A A再执行再执行B B;(b)IF-THEN-ELSE(b)IF-THEN-ELSE型选择型选择(分支分支)结构;结构;(c)DO-WHILE(c)DO-WHILE型循环结构型循环结构 1414、详细设计工具详细设计工具(1 1)程序流程图程序流程图程序流程图:程序流程图又称为程序框图,它是历史最悠久使用最广泛的描述过程序流程图:程序流程图又称为程序框图,它是历史最悠久使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。程设计的方法,然而它也是用得最混乱的一种方法。(2)(2)盒图(盒图(N-SN-S图)图)出于要有一种不允许违背结构程序设计精神的
47、图形工具的考虑,出于要有一种不允许违背结构程序设计精神的图形工具的考虑,NassiNassi和和ShneidermanShneiderman提出了盒图,又称为提出了盒图,又称为N-SN-S图。图。(a)(a)顺序;顺序;(b)IF-THEN-ELSE(b)IF-THEN-ELSE型分支;型分支;(c)CASE(c)CASE型多分支;型多分支;(d)(d)循环;循环;(e)(e)调用子程序调用子程序A A(3)PAD(3)PAD图图PADPAD是问题分析图是问题分析图(Problem Analysis Diagram)(Problem Analysis Diagram)的英文缩写,自的英文缩写,
48、自19731973年由日本日立年由日本日立公司发明以后,已得到一定程度的推广。它用二维树形结构的图来表示程序的控制公司发明以后,已得到一定程度的推广。它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。下图给出流,将这种图翻译成程序代码比较容易。下图给出PADPAD图的基本符号。图的基本符号。(4)(4)类程序设计语言类程序设计语言PDLPDLPDLPDL也称为伪码,它是用正文形式表示数据和处理过程的设计工具。也称为伪码,它是用正文形式表示数据和处理过程的设计工具。PDLPDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方具有严格的关键字外部语法,用于定义控制
49、结构和数据结构;另一方面,面,PDLPDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。因此,一般说来应各种工程项目的需要。因此,一般说来PDLPDL是一种是一种“混杂混杂”语言,它使用语言,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。结构化的程序设计语言)的语法。可以作为注释工具直接插在源程序中间。可以作为注释工具直接插在源程序中间。1515、设计规约、设计规约完整准确地描述满足需求
50、规约所要求的所有功能模块,以及完整准确地描述满足需求规约所要求的所有功能模块,以及伴随功能模块而出现的非功能机制。伴随功能模块而出现的非功能机制。设计规约包括概要设计规约和详细设计规约。设计规约包括概要设计规约和详细设计规约。(1)(1)概要设计规约概要设计规约指明高层软件体系结构。指明高层软件体系结构。系统环境系统环境软件模块的结构软件模块的结构模块描述模块描述文件结构和全局数据文件的逻辑结构文件结构和全局数据文件的逻辑结构测试需求测试需求(2)(2)详细设计规约详细设计规约各处理过程的算法各处理过程的算法算法所涉及的全部数据结构的描述算法所涉及的全部数据结构的描述例题】根据下列变换型的数据
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。