




文档简介
复杂系统的面向对象 建模、分析与设计 复杂系统的面向对象 建模、分析与设计 合肥工业大学研究生课程 王 跃 飞 第一章 引言 ?1.1 软件工程的基本概念 ?1.2 软件需求分析和开发的结构化方法 ?1.3 结构化方法的特点与不足 ?1.4 面向对象技术 ?1.5 booch方法简介 1.1 软件工程的基本概念 ?什么是软件 ?软件的分类 ?软件生存期 ?软件工程 ?软件工程的目的和要求 ? ? 软件软件软件软件是计算机系统中与硬件相互依是计算机系统中与硬件相互依是计算机系统中与硬件相互依是计算机系统中与硬件相互依 存的另一部分,存的另一部分,存的另一部分,存的另一部分,它是包括程序,数它是包括程序,数它是包括程序,数它是包括程序,数 据及其相关文档的完整集合。据及其相关文档的完整集合。据及其相关文档的完整集合。据及其相关文档的完整集合。 ? ? 程序程序程序程序是按事先设计的功能和性能要是按事先设计的功能和性能要是按事先设计的功能和性能要是按事先设计的功能和性能要 求执行的指令序列求执行的指令序列求执行的指令序列求执行的指令序列 ? ? 数据数据数据数据是使程序能正常操纵信息的数是使程序能正常操纵信息的数是使程序能正常操纵信息的数是使程序能正常操纵信息的数 据结构据结构据结构据结构 ? ? 文档文档文档文档是与程序开发,维护和使用有是与程序开发,维护和使用有是与程序开发,维护和使用有是与程序开发,维护和使用有 关的图文材料关的图文材料关的图文材料关的图文材料 什么是软件?什么是软件?什么是软件?什么是软件? 软件的特点软件的特点 ? ? 软件是一种软件是一种软件是一种软件是一种逻辑实体逻辑实体逻辑实体逻辑实体,而不是具体,而不是具体,而不是具体,而不是具体 的物理实体。因而它具有抽象性的物理实体。因而它具有抽象性的物理实体。因而它具有抽象性的物理实体。因而它具有抽象性 ? ? 软件的生产与硬件不同,在它的开软件的生产与硬件不同,在它的开软件的生产与硬件不同,在它的开软件的生产与硬件不同,在它的开 发过程中发过程中发过程中发过程中没有明显的制造过程没有明显的制造过程没有明显的制造过程没有明显的制造过程 ? ? 在软件的运行和使用期间,在软件的运行和使用期间,在软件的运行和使用期间,在软件的运行和使用期间,没有硬没有硬没有硬没有硬 件那样的机械磨损,老化问题件那样的机械磨损,老化问题件那样的机械磨损,老化问题件那样的机械磨损,老化问题 ? ? 软件的开发和运行常受到计算机系统软件的开发和运行常受到计算机系统软件的开发和运行常受到计算机系统软件的开发和运行常受到计算机系统 的限制,对计算机系统有着不同程度的限制,对计算机系统有着不同程度的限制,对计算机系统有着不同程度的限制,对计算机系统有着不同程度 的依赖性的依赖性的依赖性的依赖性 ? ? 软件的开发至今软件的开发至今软件的开发至今软件的开发至今尚未完全摆脱手工艺尚未完全摆脱手工艺尚未完全摆脱手工艺尚未完全摆脱手工艺 的开发方式的开发方式的开发方式的开发方式 ? ? 软件本身是复杂的软件本身是复杂的软件本身是复杂的软件本身是复杂的 ? ? 实际问题的复杂性实际问题的复杂性实际问题的复杂性实际问题的复杂性 ? ? 程序逻辑结构的复杂性程序逻辑结构的复杂性程序逻辑结构的复杂性程序逻辑结构的复杂性 ? ? 软件成本相当昂贵软件成本相当昂贵软件成本相当昂贵软件成本相当昂贵 ? ? 相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素 ? ? 按软件规模进行划分:按软件规模进行划分:按软件规模进行划分:按软件规模进行划分: 类别类别类别类别参加人员数参加人员数参加人员数参加人员数研制期限研制期限研制期限研制期限 源程序行数源程序行数源程序行数源程序行数 微型微型微型微型 1 1 1 14 4周周周周0.5k 0.5k 小型小型小型小型 1 1 1 16 6月月月月1k1k2k2k 中型中型中型中型2 25 51 12 2年年年年5k5k50k50k 大型大型大型大型5 520202 23 3年年年年50k50k100k100k 甚大型甚大型甚大型甚大型 1001001000 41000 45 5年年年年1m(=1000k)1m(=1000k) 极大型极大型极大型极大型 200020005000 55000 51010年年年年1m1m10m10m 软件工程的发展过程 ?主要是针对主要是针对20世纪世纪60年代年代“软件危机软件危机”而提出的。它首 次出现在 而提出的。它首 次出现在1968年年nato(北大西洋公约组织)会议上。(北大西洋公约组织)会议上。 ?自这一概念提出以来,围绕软件项目,开展了有关开 发模型、方法以及支持工具的研究。 自这一概念提出以来,围绕软件项目,开展了有关开 发模型、方法以及支持工具的研究。 ?其主要成果有:提出了其主要成果有:提出了瀑布模型瀑布模型,开发了,开发了结构化程序 设计语言、结构化方法 结构化程序 设计语言、结构化方法等。并且围绕项目管理提出了 费用估算、文档复审等方法和工具。 等。并且围绕项目管理提出了 费用估算、文档复审等方法和工具。 ?60年代末至年代末至80年代初,前期着重研究系统实现技术, 后期开始强调开发管理和软件质量 年代初,前期着重研究系统实现技术, 后期开始强调开发管理和软件质量。 软件工程的发展过程 ?70年代初,自年代初,自“软件工厂软件工厂”这一概念提出以来,主 要围绕软件过程以及软件复用,开展了有关软件生 产技术和软件生产管理的研究与实践。 这一概念提出以来,主 要围绕软件过程以及软件复用,开展了有关软件生 产技术和软件生产管理的研究与实践。 ?其主要成果有:提出了其主要成果有:提出了面向对象语言以及相关的面 向对象方法 面向对象语言以及相关的面 向对象方法,开展了计算机辅助软件工程的研究与 实践。 ,开展了计算机辅助软件工程的研究与 实践。 ?尤其是近几年来,针对软件复用及软件生产,软件 构件技术以及软件质量控制技术、质量保证技术得 到了广泛的应用。 尤其是近几年来,针对软件复用及软件生产,软件 构件技术以及软件质量控制技术、质量保证技术得 到了广泛的应用。 软件工程过程软件工程过程 ? ? 软件规格说明:软件规格说明:软件规格说明:软件规格说明:规定软件的功能及规定软件的功能及规定软件的功能及规定软件的功能及 其运行的限制其运行的限制其运行的限制其运行的限制 ? ? 软件开发:软件开发:软件开发:软件开发:产生满足规格说明的软产生满足规格说明的软产生满足规格说明的软产生满足规格说明的软 件件件件 ? ? 软件确认:软件确认:软件确认:软件确认:确认软件能够完成客户确认软件能够完成客户确认软件能够完成客户确认软件能够完成客户 提出的要求提出的要求提出的要求提出的要求 ? ? 软件演进:软件演进:软件演进:软件演进:为满足客户的变更要为满足客户的变更要为满足客户的变更要为满足客户的变更要 求,软件必须在使用的过程中演进求,软件必须在使用的过程中演进求,软件必须在使用的过程中演进求,软件必须在使用的过程中演进 软件工程过程的特性软件工程过程的特性 ? ? 易理解性易理解性易理解性易理解性 ? ? 可见性可见性可见性可见性 ? ? 可支持性可支持性可支持性可支持性 ? ? 可接受性可接受性可接受性可接受性 ? ? 可靠性可靠性可靠性可靠性 ? ? 健壮性健壮性健壮性健壮性 ? ? 可维护性可维护性可维护性可维护性 ? ? 速度速度速度速度 软件生存期软件生存期 life cyclelife cycle ? ? 软件有一个孕育、诞生、成长、成软件有一个孕育、诞生、成长、成软件有一个孕育、诞生、成长、成软件有一个孕育、诞生、成长、成 熟、衰亡的生存过程。这个过程即熟、衰亡的生存过程。这个过程即熟、衰亡的生存过程。这个过程即熟、衰亡的生存过程。这个过程即 为计算机软件的生存期为计算机软件的生存期为计算机软件的生存期为计算机软件的生存期 ? ? 软件生存期的六个步骤,即软件生存期的六个步骤,即软件生存期的六个步骤,即软件生存期的六个步骤,即制定计制定计制定计制定计 划划划划、需求分析需求分析需求分析需求分析、设计设计设计设计、程序编码程序编码程序编码程序编码、 测试测试测试测试及及及及运行维护运行维护运行维护运行维护 瀑布模型瀑布模型瀑布模型瀑布模型 制定计划制定计划 ? ? 确定要开发软件系统的确定要开发软件系统的确定要开发软件系统的确定要开发软件系统的总目标总目标总目标总目标 ? ? 给出给出给出给出功能功能功能功能、性能性能性能性能、可靠性可靠性可靠性可靠性以及以及以及以及接口接口接口接口等方等方等方等方 面的要求面的要求面的要求面的要求 ? ? 完成该软件任务的完成该软件任务的完成该软件任务的完成该软件任务的可行性研究可行性研究可行性研究可行性研究 ? ? 估计可利用的估计可利用的估计可利用的估计可利用的资源资源资源资源 ( (硬件,软件,人力硬件,软件,人力硬件,软件,人力硬件,软件,人力 等等等等) )、成本成本成本成本、效益效益效益效益、开发进度开发进度开发进度开发进度 ? ? 制定出完成开发任务的制定出完成开发任务的制定出完成开发任务的制定出完成开发任务的实施计划实施计划实施计划实施计划,连同,连同,连同,连同 可行性研究报告,提交管理部门审查可行性研究报告,提交管理部门审查可行性研究报告,提交管理部门审查可行性研究报告,提交管理部门审查 需求分析和定义需求分析和定义 ? ? 对用户提出的要求进行对用户提出的要求进行对用户提出的要求进行分析对用户提出的要求进行分析分析分析并给并给并给并给 出出出详细的定义出详细的定义详细的定义详细的定义 ? ? 编写编写编写软件需求说明书编写软件需求说明书软件需求说明书软件需求说明书或或或系统功能或系统功能系统功能系统功能 说明书说明书说明书说明书及及及初步的系统用户手册及初步的系统用户手册初步的系统用户手册初步的系统用户手册 ? ? 提交管理机构提交管理机构提交管理机构评审提交管理机构评审评审评审 软件设计软件设计 ? ? 概要设计概要设计概要设计概要设计 把各项需求转换成把各项需求转换成把各项需求转换成软件的体把各项需求转换成软件的体软件的体软件的体 系结构系结构系结构系结构。结构中每一组成部分都是意义。结构中每一组成部分都是意义。结构中每一组成部分都是意义。结构中每一组成部分都是意义 明确的模块,每个模块都和某些需求相明确的模块,每个模块都和某些需求相明确的模块,每个模块都和某些需求相明确的模块,每个模块都和某些需求相 对应对应对应对应 ? ? 详细设计详细设计详细设计详细设计 对每个模块要完成的工作进对每个模块要完成的工作进对每个模块要完成的工作进对每个模块要完成的工作进 行具体的描述,为源程序编写打下基础行具体的描述,为源程序编写打下基础行具体的描述,为源程序编写打下基础行具体的描述,为源程序编写打下基础 ? ? 编写编写编写设计说明书编写设计说明书设计说明书设计说明书,提交,提交,提交评审,提交评审评审评审。 程序编写程序编写 ? ? 把软件设计转换成计算机可以接受把软件设计转换成计算机可以接受把软件设计转换成计算机可以接受把软件设计转换成计算机可以接受 的程序代码的程序代码的程序代码,即写成以某一种特定的程序代码,即写成以某一种特定,即写成以某一种特定,即写成以某一种特定 程序设计语言表示的程序设计语言表示的程序设计语言表示的程序设计语言表示的“ “源程序清单源程序清单源程序清单源程序清单” ” ? ? 写出的程序应当是结构良好、清晰写出的程序应当是结构良好、清晰写出的程序应当是结构良好、清晰写出的程序应当是结构良好、清晰 易读的,且与设计相一致的易读的,且与设计相一致的易读的,且与设计相一致的易读的,且与设计相一致的 软件测试软件测试 ? ? 单元测试单元测试单元测试单元测试,查找各模块在功能和结,查找各模块在功能和结,查找各模块在功能和结,查找各模块在功能和结 构上存在的问题并加以纠正构上存在的问题并加以纠正构上存在的问题并加以纠正构上存在的问题并加以纠正 ? ? 组装测试组装测试组装测试组装测试,将已测试过的模块按一,将已测试过的模块按一,将已测试过的模块按一,将已测试过的模块按一 定顺序组装起来定顺序组装起来定顺序组装起来定顺序组装起来 ? ? 按规定的各项需求,逐项进行按规定的各项需求,逐项进行按规定的各项需求,逐项进行按规定的各项需求,逐项进行有效有效有效有效 性测试性测试性测试性测试,决定已开发的软件是否合,决定已开发的软件是否合,决定已开发的软件是否合,决定已开发的软件是否合 格,能否交付用户使用格,能否交付用户使用格,能否交付用户使用格,能否交付用户使用 运行维护运行维护 ? ? 改正性维护改正性维护改正性维护改正性维护 运行中发现了软件中运行中发现了软件中运行中发现了软件中运行中发现了软件中 的错误需要修正的错误需要修正的错误需要修正的错误需要修正 ? ? 适应性维护适应性维护适应性维护适应性维护 为了适应变化了的软为了适应变化了的软为了适应变化了的软为了适应变化了的软 件工作环境,需做适当变更件工作环境,需做适当变更件工作环境,需做适当变更件工作环境,需做适当变更 ? ? 完善性维护完善性维护完善性维护完善性维护 为了增强软件的功能为了增强软件的功能为了增强软件的功能为了增强软件的功能 需做变更需做变更需做变更需做变更 软件工程的定义软件工程的定义 ? ? boehmboehm:运用现代科学技术知识来设计运用现代科学技术知识来设计运用现代科学技术知识来设计运用现代科学技术知识来设计 并构造计算机程序及为开发、运行和维并构造计算机程序及为开发、运行和维并构造计算机程序及为开发、运行和维并构造计算机程序及为开发、运行和维 护这些程序所必需的相关文件资料护这些程序所必需的相关文件资料护这些程序所必需的相关文件资料护这些程序所必需的相关文件资料 ? ? ieeeieee: 软件工程是开发、运行、维护软件工程是开发、运行、维护软件工程是开发、运行、维护软件工程是开发、运行、维护 和修复软件的系统方法和修复软件的系统方法和修复软件的系统方法和修复软件的系统方法 ? ? fritz bauerfritz bauer:建立并使用完善的工程化建立并使用完善的工程化建立并使用完善的工程化建立并使用完善的工程化 原则,以较经济的手段获得能在实际机原则,以较经济的手段获得能在实际机原则,以较经济的手段获得能在实际机原则,以较经济的手段获得能在实际机 器上有效运行的可靠软件的一系列方法器上有效运行的可靠软件的一系列方法器上有效运行的可靠软件的一系列方法器上有效运行的可靠软件的一系列方法 软件工程三要素:软件工程三要素: 方法、工具和过程方法、工具和过程 ? ? 软件工程方法为软件开发提供了软件工程方法为软件开发提供了软件工程方法为软件开发提供了软件工程方法为软件开发提供了 “ “如何做如何做如何做如何做” ” 的技术的技术的技术的技术 ? ? 软件工具为软件工程方法提供了软件工具为软件工程方法提供了软件工具为软件工程方法提供了软件工具为软件工程方法提供了 自动的或半自动的软件支撑环境自动的或半自动的软件支撑环境自动的或半自动的软件支撑环境自动的或半自动的软件支撑环境 ? ? 软件工程过程定义了软件工程过程定义了软件工程过程定义了软件工程过程定义了: : ? ? 方法使用的顺序方法使用的顺序方法使用的顺序方法使用的顺序 ? ? 要求交付的文档资料要求交付的文档资料要求交付的文档资料要求交付的文档资料 ? ? 为保证质量和适应变化所需要的为保证质量和适应变化所需要的为保证质量和适应变化所需要的为保证质量和适应变化所需要的 管理管理管理管理 ? ? 软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑 软件工程项目的基本目标软件工程项目的基本目标 ? ? 付出较低的开发成本付出较低的开发成本付出较低的开发成本付出较低的开发成本 ? ? 达到要求的软件功能达到要求的软件功能达到要求的软件功能达到要求的软件功能 ? ? 取得较好的软件性能取得较好的软件性能取得较好的软件性能取得较好的软件性能 ? ? 开发的软件易于移植开发的软件易于移植开发的软件易于移植开发的软件易于移植 ? ? 需要较低的维护费用需要较低的维护费用需要较低的维护费用需要较低的维护费用 ? ? 能按时完成开发工作,及时交付使用能按时完成开发工作,及时交付使用能按时完成开发工作,及时交付使用能按时完成开发工作,及时交付使用 ? ? 软件需求分析的任务软件需求分析的任务软件需求分析的任务软件需求分析的任务 ? ? 结构化分析方法结构化分析方法结构化分析方法结构化分析方法 1.2.11.2.1软件需求分析软件需求分析软件需求分析软件需求分析 软件需求分析的任务软件需求分析的任务 ? ? 深入描述软件的功能和性能深入描述软件的功能和性能深入描述软件的功能和性能深入描述软件的功能和性能 ? ? 确定软件设计的约束和软件同确定软件设计的约束和软件同确定软件设计的约束和软件同确定软件设计的约束和软件同 其它系统元素的接口细节其它系统元素的接口细节其它系统元素的接口细节其它系统元素的接口细节 ? ? 定义软件的其它有效性需求定义软件的其它有效性需求定义软件的其它有效性需求定义软件的其它有效性需求 ? ? 需求分析研究的对象是软件项目的需求分析研究的对象是软件项目的需求分析研究的对象是软件项目的需求分析研究的对象是软件项目的 用户要求用户要求用户要求用户要求 ? ? 准确地表达被接受的用户要求准确地表达被接受的用户要求准确地表达被接受的用户要求准确地表达被接受的用户要求 ? ? 确定被开发软件系统的系统元素确定被开发软件系统的系统元素确定被开发软件系统的系统元素确定被开发软件系统的系统元素 ? ? 将功能和信息结构分配到这些系统将功能和信息结构分配到这些系统将功能和信息结构分配到这些系统将功能和信息结构分配到这些系统 元素中元素中元素中元素中 ? ? 需求分析的任务需求分析的任务需求分析的任务需求分析的任务就是借助于当前系统就是借助于当前系统就是借助于当前系统就是借助于当前系统 的逻辑模型导出目标系统的逻辑模的逻辑模型导出目标系统的逻辑模的逻辑模型导出目标系统的逻辑模的逻辑模型导出目标系统的逻辑模 型,解决目标系统的型,解决目标系统的型,解决目标系统的型,解决目标系统的 “ “做什么做什么做什么做什么” ” 的问的问的问的问 题。题。题。题。 ? ? 通常软件开发项目是要实现目标系统通常软件开发项目是要实现目标系统通常软件开发项目是要实现目标系统通常软件开发项目是要实现目标系统 的物理模型的物理模型的物理模型的物理模型 ? ? 目标系统的具体物理模型是由它的逻目标系统的具体物理模型是由它的逻目标系统的具体物理模型是由它的逻目标系统的具体物理模型是由它的逻 辑模型经实例化,即具体到某个业务辑模型经实例化,即具体到某个业务辑模型经实例化,即具体到某个业务辑模型经实例化,即具体到某个业务 领域而得到的领域而得到的领域而得到的领域而得到的 需求分析的过程需求分析的过程 (1) (1) 问题识别问题识别问题识别问题识别 ? ? 从系统的角度来理解软件并评审软从系统的角度来理解软件并评审软从系统的角度来理解软件并评审软从系统的角度来理解软件并评审软 件范围是否恰当件范围是否恰当件范围是否恰当件范围是否恰当 ? ? 确定对目标系统的综合要求,即软确定对目标系统的综合要求,即软确定对目标系统的综合要求,即软确定对目标系统的综合要求,即软 件的需求件的需求件的需求件的需求 ? ? 提出这些需求实现条件,以及需求提出这些需求实现条件,以及需求提出这些需求实现条件,以及需求提出这些需求实现条件,以及需求 应达到的标准应达到的标准应达到的标准应达到的标准 软件的需求包括:软件的需求包括: ? ? 功能需求功能需求功能需求功能需求 ? ? 性能需求性能需求性能需求性能需求 ? ? 环境需求环境需求环境需求环境需求 ? ? 可靠性需求可靠性需求可靠性需求可靠性需求 ? ? 安全保密要求安全保密要求安全保密要求安全保密要求 ? ? 用户界面需求用户界面需求用户界面需求用户界面需求 ? ? 资源使用需求资源使用需求资源使用需求资源使用需求 ? ? 成本消耗需求成本消耗需求成本消耗需求成本消耗需求 ? ? 开发进度需求开发进度需求开发进度需求开发进度需求 ? ? 预先估计以后预先估计以后预先估计以后预先估计以后 系统可能达到系统可能达到系统可能达到系统可能达到 的目标的目标的目标的目标 问题识别的另一项工作是建立分析所需要的通问题识别的另一项工作是建立分析所需要的通 信途径,以保证能顺利地对问题进行分析。信途径,以保证能顺利地对问题进行分析。 (2) (2) 分析与综合分析与综合分析与综合分析与综合 ? ? 从从从从信息流信息流信息流信息流和和和和信息结构信息结构信息结构信息结构出发,出发,出发,出发,逐步细逐步细逐步细逐步细 化所有的软件功能化所有的软件功能化所有的软件功能化所有的软件功能,找出,找出,找出,找出系统各元系统各元系统各元系统各元 素之间的联系素之间的联系素之间的联系素之间的联系、接口特性接口特性接口特性接口特性和和和和设计上设计上设计上设计上 的约束的约束的约束的约束,分析它们是否满足功能要,分析它们是否满足功能要,分析它们是否满足功能要,分析它们是否满足功能要 求,是否合理。剔除其不合理的部求,是否合理。剔除其不合理的部求,是否合理。剔除其不合理的部求,是否合理。剔除其不合理的部 分,增加其需要部分。最终综合成分,增加其需要部分。最终综合成分,增加其需要部分。最终综合成分,增加其需要部分。最终综合成 系统的解决方案,给出系统的解决方案,给出系统的解决方案,给出系统的解决方案,给出目标系统的目标系统的目标系统的目标系统的 详细逻辑模型详细逻辑模型详细逻辑模型。详细逻辑模型。 常用的分析方法常用的分析方法 ? ? 面向数据流面向数据流面向数据流面向数据流的结构化分析方法的结构化分析方法的结构化分析方法的结构化分析方法 (sa)(sa) ? ? 面向数据结构面向数据结构面向数据结构面向数据结构的的的的jacksonjackson方法方法方法方法 (jsd)(jsd) ? ? 面向数据结构面向数据结构面向数据结构面向数据结构的结构化数据系统开的结构化数据系统开的结构化数据系统开的结构化数据系统开 发方法发方法发方法发方法 (dssd)(dssd) ? ? 面向对象面向对象面向对象面向对象的分析方法的分析方法的分析方法的分析方法 (ooa) (ooa) 等等等等 (3) (3) 编制需求分析阶段的文档编制需求分析阶段的文档编制需求分析阶段的文档编制需求分析阶段的文档 ? ? 软件需求说明书软件需求说明书软件需求说明书软件需求说明书 ? ? 数据要求说明书数据要求说明书数据要求说明书数据要求说明书 ? ? 初步的用户手册初步的用户手册初步的用户手册初步的用户手册 ? ? 修改、完善与确定软件开发实施计修改、完善与确定软件开发实施计修改、完善与确定软件开发实施计修改、完善与确定软件开发实施计 划划划划 (4) (4) 需求分析评审需求分析评审 ? ? 系统定义的目标是否与用户的要求一系统定义的目标是否与用户的要求一系统定义的目标是否与用户的要求一系统定义的目标是否与用户的要求一 致致致致; ; ? ? 系统需求分析阶段提供的文档资料是系统需求分析阶段提供的文档资料是系统需求分析阶段提供的文档资料是系统需求分析阶段提供的文档资料是 否齐全否齐全否齐全否齐全; ; ? ? 文档中的所有描述是否完整、清晰、文档中的所有描述是否完整、清晰、文档中的所有描述是否完整、清晰、文档中的所有描述是否完整、清晰、 准确反映用户要求准确反映用户要求准确反映用户要求准确反映用户要求; ; ? ? 与所有其它系统成分的重要接口是否与所有其它系统成分的重要接口是否与所有其它系统成分的重要接口是否与所有其它系统成分的重要接口是否 都已经描述都已经描述都已经描述都已经描述 ; ; ? ? 被开发项目的数据流与数据结构是被开发项目的数据流与数据结构是被开发项目的数据流与数据结构是被开发项目的数据流与数据结构是 否足够,确定否足够,确定否足够,确定否足够,确定; ; ? ? 所有图表是否清楚,在不补充说明所有图表是否清楚,在不补充说明所有图表是否清楚,在不补充说明所有图表是否清楚,在不补充说明 时能否理解时能否理解时能否理解时能否理解; ; ? ? 主要功能是否已包括在规定的软件主要功能是否已包括在规定的软件主要功能是否已包括在规定的软件主要功能是否已包括在规定的软件 范围之内,是否都已充分说明范围之内,是否都已充分说明范围之内,是否都已充分说明范围之内,是否都已充分说明; ; ? ? 设计的约束条件或限制条件是否符设计的约束条件或限制条件是否符设计的约束条件或限制条件是否符设计的约束条件或限制条件是否符 合实际合实际合实际合实际; ; ? ? 开发的技术风险是什么开发的技术风险是什么开发的技术风险是什么开发的技术风险是什么; ; ? ? 是否考虑过软件需求的其它方案是否考虑过软件需求的其它方案是否考虑过软件需求的其它方案是否考虑过软件需求的其它方案; ; ? ? 是否考虑过将来可能会提出的软件需是否考虑过将来可能会提出的软件需是否考虑过将来可能会提出的软件需是否考虑过将来可能会提出的软件需 求求求求; ; ? ? 是否详细制定了检验标准,它们能否是否详细制定了检验标准,它们能否是否详细制定了检验标准,它们能否是否详细制定了检验标准,它们能否 对系统定义是否成功进行确认对系统定义是否成功进行确认对系统定义是否成功进行确认对系统定义是否成功进行确认; ; 需求分析流程需求分析流程 软件需求分析的原则软件需求分析的原则 ? ? 需要能够表达和理解问题的信息域需要能够表达和理解问题的信息域需要能够表达和理解问题的信息域需要能够表达和理解问题的信息域 和和和和功能域功能域功能域功能域 ? ? 要能以层次化的方式对问题进行要能以层次化的方式对问题进行要能以层次化的方式对问题进行要能以层次化的方式对问题进行分分分分 解解解解和不断和不断和不断和不断细化细化细化细化 ? ? 要给出系统的要给出系统的要给出系统的要给出系统的逻辑视图逻辑视图逻辑视图逻辑视图和和和和物理视图物理视图物理视图物理视图 软件需求规格说明的原则软件需求规格说明的原则 ? ? 从现实中分离功能,即描述要从现实中分离功能,即描述要从现实中分离功能,即描述要从现实中分离功能,即描述要“ “做什做什做什做什 么么么么” ”而不是而不是而不是而不是“ “怎样实现怎样实现怎样实现怎样实现” ” ? ? 要求使用要求使用要求使用要求使用面向处理面向处理面向处理面向处理的规格说明语言的规格说明语言的规格说明语言的规格说明语言 (或称系统定义语言)(或称系统定义语言)(或称系统定义语言)(或称系统定义语言) ? ? 如果被开发软件只是一个大系统中如果被开发软件只是一个大系统中如果被开发软件只是一个大系统中如果被开发软件只是一个大系统中 的一个元素,那么整个大系统也包的一个元素,那么整个大系统也包的一个元素,那么整个大系统也包的一个元素,那么整个大系统也包 括在规格说明的描述之中括在规格说明的描述之中括在规格说明的描述之中括在规格说明的描述之中 ? ? 规格说明必须包括系统运行环境规格说明必须包括系统运行环境规格说明必须包括系统运行环境规格说明必须包括系统运行环境 ? ? 规格说明必须是一个认识模型规格说明必须是一个认识模型规格说明必须是一个认识模型规格说明必须是一个认识模型 ? ? 规格说明必须是可操作的规格说明必须是可操作的规格说明必须是可操作的规格说明必须是可操作的 ? ? 规格说明必须容许不完备性并允许规格说明必须容许不完备性并允许规格说明必须容许不完备性并允许规格说明必须容许不完备性并允许 扩充扩充扩充扩充 ? ? 规格说明必须局部化和松散耦合规格说明必须局部化和松散耦合规格说明必须局部化和松散耦合规格说明必须局部化和松散耦合 软件需求方法软件需求方法 ? ? 需求分析方法由对软件问题的需求分析方法由对软件问题的需求分析方法由对软件问题的需求分析方法由对软件问题的信息信息信息信息 域域域域和和和和功能域功能域功能域功能域的系统分析过程及其表的系统分析过程及其表的系统分析过程及其表的系统分析过程及其表 示方法组成示方法组成示方法组成示方法组成 ? ? 大多数的需求分析方法是由大多数的需求分析方法是由大多数的需求分析方法是由大多数的需求分析方法是由信息驱信息驱信息驱信息驱 动动动动的的的的 ? ? 信息域具有三种属性信息域具有三种属性信息域具有三种属性信息域具有三种属性: : 信息流信息流信息流信息流、信信信信 息内容息内容息内容息内容和和和和信息结构信息结构信息结构信息结构。 结构化分析方法结构化分析方法 ? ? 面向数据流进行需求分析的方法面向数据流进行需求分析的方法面向数据流进行需求分析的方法面向数据流进行需求分析的方法 ? ? 结构化分析方法适合于数据处理类结构化分析方法适合于数据处理类结构化分析方法适合于数据处理类结构化分析方法适合于数据处理类 型软件的需求分析型软件的需求分析型软件的需求分析型软件的需求分析 ? ? 具体来说,结构化分析方法就是用具体来说,结构化分析方法就是用具体来说,结构化分析方法就是用具体来说,结构化分析方法就是用 抽象模型抽象模型抽象模型抽象模型的概念,按照软件内部的概念,按照软件内部的概念,按照软件内部的概念,按照软件内部数数数数 据传递据传递据传递据传递、变换变换变换变换的关系,的关系,的关系,的关系,自顶向下逐自顶向下逐自顶向下逐自顶向下逐 层分解层分解层分解层分解,直到找到满足功能要求的,直到找到满足功能要求的,直到找到满足功能要求的,直到找到满足功能要求的 所有可实现的软件为止所有可实现的软件为止所有可实现的软件为止所有可实现的软件为止 ? ? 结构化分析方法使用工具:结构化分析方法使用工具:结构化分析方法使用工具:结构化分析方法使用工具: ? ? 数据流图数据流图数据流图数据流图 ? ? 数据词典数据词典数据词典数据词典 ? ? 结构化英语结构化英语结构化英语结构化英语 ? ? 判定表与判定树判定表与判定树判定表与判定树判定表与判定树 数据流图数据流图 ? ? 数据流图中的主要图形元素数据流图中的主要图形元素数据流图中的主要图形元素数据流图中的主要图形元素 数据加工数据加工数据加工数据加工 ( (数据变换数据变换数据变换数据变换) ) 数据源点或终点数据源点或终点数据源点或终点数据源点或终点 ( (外部实体外部实体外部实体外部实体) ) 数据流数据流数据流数据流 数据存储文件数据存储文件数据存储文件数据存储文件 描述银行取款过程的数据流图描述银行取款过程的数据流图描述银行取款过程的数据流图描述银行取款过程的数据流图 数据流与数据加工之间的关系数据流与数据加工之间的关系 数据流图的层次结构数据流图的层次结构 ? ? 为了表达数据处理过程的数据加工为了表达数据处理过程的数据加工为了表达数据处理过程的数据加工为了表达数据处理过程的数据加工 情况,需要采用情况,需要采用情况,需要采用情况,需要采用层次结构层次结构层次结构层次结构的数据流的数据流的数据流的数据流 图。按照系统的层次结构进行图。按照系统的层次结构进行图。按照系统的层次结构进行图。按照系统的层次结构进行逐步逐步逐步逐步 分解分解分解分解,并以分层的数据流图反映这,并以分层的数据流图反映这,并以分层的数据流图反映这,并以分层的数据流图反映这 种结构关系,能清楚地表达和容易种结构关系,能清楚地表达和容易种结构关系,能清楚地表达和容易种结构关系,能清楚地表达和容易 理解整个系统理解整个系统理解整个系统理解整个系统 分层的数据流图分层的数据流图分层的数据流图分层的数据流图 ? ? 在多层数据流图中,在多层数据流图中,在多层数据流图中,顶层流图在多层数据流图中,顶层流图顶层流图顶层流图仅包含仅包含仅包含 一个加工 仅包含 一个加工一个加工一个加工,它代表被开发系统。它的,它代表被开发系统。它的,它代表被开发系统。它的,它代表被开发系统。它的 输入流是该系统的输入数据,输出流输入流是该系统的输入数据,输出流输入流是该系统的输入数据,输出流输入流是该系统的输入数据,输出流 是系统所输出数据是系统所输出数据是系统所输出数据是系统所输出数据 ? ? 底层流图底层流图底层流图底层流图是指其是指其是指其加工不需再做分解是指其加工不需再做分解加工不需再做分解加工不需再做分解的的的的 数据流图,它处在最底层数据流图,它处在最底层数据流图,它处在最底层数据流图,它处在最底层 ? ? 中间层流图中间层流图中间层流图中间层流图则表示则表示则表示对其上层父图的细则表示对其上层父图的细对其上层父图的细对其上层父图的细 化化化化。它的每一加工可能继续细化,形。它的每一加工可能继续细化,形。它的每一加工可能继续细化,形。它的每一加工可能继续细化,形 成子图。成子图。成子图。成子图。 结构化分析方法步骤示例结构化分析方法步骤示例 商店业务处理系统商店业务处理系统 ? ? 这个数据流图只是一个高层的系统逻这个数据流图只是一个高层的系统逻这个数据流图只是一个高层的系统逻这个数据流图只是一个高层的系统逻 辑模型,它反映了目标系统要实现的辑模型,它反映了目标系统要实现的辑模型,它反映了目标系统要实现的辑模型,它反映了目标系统要实现的 功能功能功能功能 ? ? 数据流图绘制步骤数据流图绘制步骤数据流图绘制步骤数据流图绘制步骤 ?首先确定系统的输入和输出首先确定系统的输入和输出首先确定系统的输入和输出首先确定系统的输入和输出 ?根据商店业务,画出顶层数据流根据商店业务,画出顶层数据流根据商店业务,画出顶层数据流根据商店业务,画出顶层数据流 图,以反映最主要业务处理流程图,以反映最主要业务处理流程图,以反映最主要业务处理流程图,以反映最主要业务处理流程 ?经过分析,商店业务处理的经过分析,商店业务处理的经过分析,商店业务处理的经过分析,商店业务处理的主要主要主要主要 功能功能功能功能应当有应当有应当有应当有销售销售销售销售、采购采购采购采购、会计会计会计会计三三三三 大项。大项。大项。大项。主要数据流输入的源点主要数据流输入的源点主要数据流输入的源点主要数据流输入的源点和和和和 输出终点输出终点输出终点输出终点是是是是顾客顾客顾客顾客和和和和供应商供应商供应商供应商。 ?然后从输入端开始,根据商店业然后从输入端开始,根据商店业然后从输入端开始,根据商店业然后从输入端开始,根据商店业 务工作流程,画出数据流流经的务工作流程,画出数据流流经的务工作流程,画出数据流流经的务工作流程,画出数据流流经的 各加工框,逐步画到输出端,得各加工框,逐步画到输出端,得各加工框,逐步画到输出端,得各加工框,逐步画到输出端,得 到第一层数据流图到第一层数据流图到第一层数据流图到第一层数据流图 第一层数据流图第一层数据流图 加细每一个加工框加细每一个加工框销售细化销售细化 采购细化采购细化 检查和修改数据流图的原则检查和修改数据流图的原则 ? ? 数据流图上所有图形符号数据流图上所有图形符号数据流图上所有图形符号数据流图上所有图形符号只限于只限于只限于只限于前前前前 述四种基本图形元素述四种基本图形元素述四种基本图形元素述四种基本图形元素 ? ? 数据流图的数据流图的数据流图的数据流图的主图必须包括前述四种主图必须包括前述四种主图必须包括前述四种主图必须包括前述四种 基本元素基本元素基本元素基本元素,缺一不可,缺一不可,缺一不可,缺一不可 ? ? 数据流图的主图上的数据流必须封数据流图的主图上的数据流必须封数据流图的主图上的数据流必须封数据流图的主图上的数据流必须封 闭在外部实体之间闭在外部实体之间闭在外部实体之间闭在外部实体之间 ? ? 每个加工每个加工每个加工每个加工至少有一个输入数据流和至少有一个输入数据流和至少有一个输入数据流和至少有一个输入数据流和 一个输出数据流一个输出数据流一个输出数据流一个输出数据流 ? ? 在数据流图中,需在数据流图中,需在数据流图中,需在数据流图中,需按层给加工框编按层给加工框编按层给加工框编按层给加工框编 号号号号。编号表明该加工所处层次及上。编号表明该加工所处层次及上。编号表明该加工所处层次及上。编号表明该加工所处层次及上 下层的亲子关系下层的亲子关系下层的亲子关系下层的亲子关系 ? ? 规定任何一个数据流子图必须与它规定任何一个数据流子图必须与它规定任何一个数据流子图必须与它规定任何一个数据流子图必须与它 上一层的一个加工对应,两者的输上一层的一个加工对应,两者的输上一层的一个加工对应,两者的输上一层的一个加工对应,两者的输 入数据流和输出数据流必须一致。入数据流和输出数据流必须一致。入数据流和输出数据流必须一致。入数据流和输出数据流必须一致。 此即此即此即此即父图与子图的平衡父图与子图的平衡父图与子图的平衡父图与子图的平衡 ? ? 可以在数据流图中加入物质流,帮可以在数据流图中加入物质流,帮可以在数据流图中加入物质流,帮可以在数据流图中加入物质流,帮 助用户理解数据流图助用户理解数据流图助用户理解数据流图助用户理解数据流图 ? ? 图上每个元素都必须有名字图上每个元素都必须有名字图上每个元素都必须有名字图上每个元素都必须有名字 ? ? 数据流图中不可夹带控制流数据流图中不可夹带控制流数据流图中不可夹带控制流数据流图中不可夹带控制流 ? ? 初画时可以忽略琐碎的细节,以集中初画时可以忽略琐碎的细节,以集中初画时可以忽略琐碎的细节,以集中初画时可以忽略琐碎的细节,以集中 精力于主要数据流精力于主要数据流精力于主要数据流精力于主要数据流 数据词典数据词典 ? ? 数据词典与数据流图配合,能清楚地数据词典与数据流图配合,能清楚地数据词典与数据流图配合,能清楚地数据词典与数据流图配合,能清楚地 表达数据处理的要求表达数据处理的要求表达数据处理的要求表达数据处理的要求 ? ? 词条描述词条描述词条描述词条描述 对于在数据流图中每对于在数据流图中每对于在数据流图中每对于在数据流图中每 一个被命名的图形元素,均加以定一个被命名的图形元素,均加以定一个被命名的图形元素,均加以定一个被命名的图形元素,均加以定 义,其内容有义,其内容有义,其内容有义,其内容有: : 名字名字名字名字,别名或编别名或编别名或编别名或编 号号号号,分类分类分类分类,描述描述描述描述,定义定义定义定义,位置位置位置位置,其其其其 它它它它,等等等等 (1 1)数据流词条描述)数据流词条描述 ? ? 数据流名:数据流名:数据流名:数据流名: ? ? 说明:简要介绍作用即它产生的原因说明:简要介绍作用即它产生的原因说明:简要介绍作用即它产生的原因说明:简要介绍作用即它产生的原因 和结果和结果和结果和结果 ? ? 数据流来源:来自何方数据流来源:来自何方数据流来源:来自何方数据流来源:来自何方 ? ? 数据流去向:去向何处数据流去向:去向何处数据流去向:去向何处数据流去向:去向何处 ? ? 数据流组成:数据结构数据流组成:数据结构数据流组成:数据结构数据流组成:数据结构 ? ? 数据量流通量:数据量,流通量数据量流通量:数据量,流通量数据量流通量:数据量,流通量数据量流通量:数据量,流通量 (2 2)数据元素词条描述)数据元素词条描述 ? ? 数据元素名:数据元素名:数据元素名:数据元素名: ? ? 类型:数字(离散值,连续值),类型:数字(离散值,连续值),类型:数字(离散值,连续值),类型:数字(离散值,连续值), 文字(编码类型)文字(编码类型)文字(编码类型)文字(编码类型) ? ? 长度:长度:长度:长度: ? ? 取值范围:取值范围:取值范围:取值范围: ? ? 相关的数据元素及数据结构:相关的数据元素及数据结构:相关的数据元素及数据结构:相关的数据元素及数据结构: (3 3)数据文件词条描述)数据文件词条描述 ? ? 数据文件名:数据文件名:数据文件名:数据文件名: ? ? 简述:存放的是什么数据简述:存放的是什么数据简述:存放的是什么数据简述:存放的是什么数据 ? ? 输入数据:输入数据:输入数据:输入数据: ? ? 输出数据:输出数据:输出数据:输出数据: ? ? 数据文件组成:数据结构数据文件组成:数据结构数据文件组成:数据结构数据文件组成:数据结构 ? ? 存储方式:顺序,直接,关键码存储方式:顺序,直接,关键码存储方式:顺序,直接,关键码存储方式:顺序,直接,关键码 ? ? 存取频率:存取频率:存取频率:存取频率: (4 4)加工逻辑词条描述)加工逻辑词条描述 ? ? 加工名:加工名:加工名:加工名: ? ? 加工编号:反映该加工的层次加工编号:反映该加工的层次加工编号:反映该加工的层次加工编号:反映该加工的层次 ? ? 简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述 ? ? 输入数据流:输入数据流:输入数据流:输入数据流: ? ? 输出数据流:输出数据流:输出数据流:输出数据流: ? ? 加工逻辑:简述加工程序,加工顺加工逻辑:简述加工程序,加工顺加工逻辑:简述加工程序,加工顺加工逻辑:简述加工程序,加工顺 序序序序 (5 5)源点及汇)源点及汇( (终终) )点词条描述点词条描述 ? ? 名称:外部实体名名称:外部实体名名称:外部实体名名称:外部实体名 ? ? 简要描述:什么外部实体简要描述:什么外部实体简要描述:什么外部实体简要描述:什么外部实体 ? ? 有关数据流:有关数据流:有关数据流:有关数据流: ? ? 数目:数目:数目:数目: 数据结构的描述数据结构的描述 符符符符 号号号号含含含含 义义义义举举举举例例例例 被定义为被定义为被定义为被定义为 与与与与x x = = a ab b .,. .,. 或或或或 .|. .|. 或或或或x x = = a a , , b b ,x x = = a a | | b b . . 或或或或 m.n m.n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训沟通能力课程
- 危险的工地课件
- 科学技术试题库及答案
- 交通银行2025白山市秋招笔试价值观测评题专练及答案
- 农业银行2025海南藏族自治州秋招无领导小组面试案例题库
- 2025年3D打印技术的个性化医疗器械
- 农业银行2025九江市秋招半结构化面试题库及参考答案
- 邮储银行2025长沙市笔试英文行测高频题含答案
- 邮储银行2025达州市秋招无领导小组面试案例题库
- 2025行业未来十年发展趋势预测
- 食为天:2024中国食品饮料行业白皮书
- 慢性肾脏病的用药指导
- 2024版《立体构成》全套课件完整版
- 九年级初中语文阅读理解专项训练及答案带解析
- 海外医疗旅游咨询与服务合同
- 智慧监狱大数据信息化系统建设方案
- 电子商务平台用户服务手册
- 家长进课堂-小学生建筑知识课件002230
- 儿童拍背排痰法课件
- 中国石油联营协议合同范本
- T-CNLIC 0113-2023 母婴洗碗机技术要求和试验方法
评论
0/150
提交评论