1、1系统需求分析与定义一、计算机系统分析一、计算机系统分析二、软件需求分析二、软件需求分析三、结构化分析方法三、结构化分析方法四、快速原型化方法四、快速原型化方法五、面向对象分析方法五、面向对象分析方法六、需求分析文档的原则和评审六、需求分析文档的原则和评审2一、计算机系统分析一、计算机系统分析1. 1. 基于计算机的系统基于计算机的系统v基于计算机的系统的系统元素包括硬件、基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。软件、人、数据库、文档和过程。 软件软件 计算机程序、数据结构、相关文档;计算机程序、数据结构、相关文档; 硬件硬件 电子计算设备(如电子计算设备(如CPU,
2、存储器),存储器)和外部机电设备(如传感器、马达等);和外部机电设备(如传感器、马达等); 人人 硬件和软件的用户;硬件和软件的用户; 数据库数据库 一个大型的有组织的信息集合;一个大型的有组织的信息集合;3基于计算机系统的系统元素基于计算机系统的系统元素输入系统系统过程过程硬件硬件软件软件文档文档人人数据库数据库输出4 文档文档 手册、表格和其它用以描述系统使手册、表格和其它用以描述系统使用和操作的信息;用和操作的信息; 过程过程 定义每一种系统元素的特定使用步定义每一种系统元素的特定使用步骤,或系统驻留的过程性环境。骤,或系统驻留的过程性环境。系统的层次结构系统的层次结构基于计算机的系统本
3、身可以成为一个基于计算机的系统本身可以成为一个更大的基更大的基于计算机系统中的一个元素于计算机系统中的一个元素,并称为那个更大,并称为那个更大系统的系统的宏元素宏元素。5工厂自动化系统工厂自动化系统工厂自动化系统工厂自动化系统库存系统库存系统制造系统制造系统信息系统信息系统材料传输系统材料传输系统制造单元制造单元机器人机器人数据输入设备数据输入设备数控机床数控机床62. 2. 系统分析系统分析系统分析是一个问题求解活动,目的是系统分析是一个问题求解活动,目的是揭示揭示、分析所期望的功能分析所期望的功能,并把它们分配到各个单独并把它们分配到各个单独的系统元素中去的系统元素中去。1) 与用户合作确
4、认用户的目标和约束;与用户合作确认用户的目标和约束;2) 导出导出功能功能、性能性能、接口接口、设计约束设计约束和和信息信息结构的表示结构的表示;3) 将它们分配到每一个系统元素中。将它们分配到每一个系统元素中。7系统分析的任务系统分析的任务1)识别用户要求识别用户要求2)评价系统的可行性评价系统的可行性3)进行经济分析和技术分析进行经济分析和技术分析4)把功能分配给硬件、软件、人、数据库和其把功能分配给硬件、软件、人、数据库和其他系统元素他系统元素5)建立成本和进度限制建立成本和进度限制6)生成系统规格说明,形成所有后续工程生成系统规格说明,形成所有后续工程81)识别用户要求)识别用户要求分
5、析员必须考虑以下问题:分析员必须考虑以下问题:识别希望的功能和性能范围识别希望的功能和性能范围; 确定系统的功能、性能、约束和接口确定系统的功能、性能、约束和接口;92) 2) 可行性研究可行性研究可行性研究可行性研究 经济可行性经济可行性 技术可行性技术可行性 法律可行性法律可行性 用户操作可行性用户操作可行性可行性研究的步骤可行性研究的步骤1) 确定项目的确定项目的规模规模和和目标目标2) 研究研究当前正在运行的系统当前正在运行的系统3) 建立建立新系统的高层逻辑模型新系统的高层逻辑模型104) 导出和评价导出和评价各种方案各种方案5) 推荐推荐可行的方案可行的方案6) 编写编写可行性研究
6、可行性研究报告报告经济可行性经济可行性 成本成本效益分析效益分析成本估算成本估算 专家估算技术(专家估算技术(Delphi技术)技术) 成本估算模型(成本估算模型(COCOMO)效益估算效益估算 投资回收期投资回收期11 纯收入纯收入 投资回收率投资回收率技术可行性技术可行性 技术风险分析技术风险分析技术解决方案的实用性技术解决方案的实用性 使用的技术实用化程度使用的技术实用化程度 技术解决方案合理程度技术解决方案合理程度技术资源的可用性技术资源的可用性 参与人员的工作基础参与人员的工作基础 基础硬件基础硬件/软件的可用性软件的可用性 软件工具实用性软件工具实用性12法律可行性法律可行性 侵权
7、和责任问题侵权和责任问题专利法专利法著作权法著作权法软件保护条例软件保护条例用户操作可行性用户操作可行性用户类型:用户类型:外行型熟练型专家型外行型熟练型专家型操作习惯操作习惯使用单位的计算机使用情况使用单位的计算机使用情况使用单位的规章制度使用单位的规章制度133 3)功能分配给系统元素的原则)功能分配给系统元素的原则对同一功能,可以分配不同的系统元素。对同一功能,可以分配不同的系统元素。为选取最有效的分配方案,使用一组权衡准则为选取最有效的分配方案,使用一组权衡准则进行评价进行评价a. a. 项目考虑项目考虑 在预估的成本与进度范围内所选的系统在预估的成本与进度范围内所选的系统配置能否实现
8、?配置能否实现? 与成本与进度估算相关的风险有哪些?与成本与进度估算相关的风险有哪些?b.b. 商业考虑商业考虑 所选的系统配置是最可能有效益的解决所选的系统配置是最可能有效益的解决方案吗?方案吗?14 能否成功地占领市场?能否成功地占领市场? 最终的报偿是否能表明所冒的开发风险最终的报偿是否能表明所冒的开发风险是值得的?是值得的?c. c. 技术分析技术分析 是否具备开发所有系统元素的技术实力?是否具备开发所有系统元素的技术实力? 能否确保功能和性能得到满足?能否确保功能和性能得到满足? 能否对系统配置进行充分的维护?能否对系统配置进行充分的维护? 是否具备技术资源?是否具备技术资源? 与技
9、术相关的风险有哪些?与技术相关的风险有哪些?d.d. 生产评估生产评估15 生产工具与设备是否有效?生产工具与设备是否有效? 必需的过程是否短缺?必需的过程是否短缺? 是否充分地实施了质量保证?是否充分地实施了质量保证?e. e. 人员问题人员问题 开发人员是否得到培训?开发人员是否得到培训? 用户是否了解这个系统将要做什么?用户是否了解这个系统将要做什么?f. f. 环境接口环境接口 所提交的系统配置与系统的外部环境的所提交的系统配置与系统的外部环境的接口是否合适?接口是否合适?16 机器与机器、人与机器之间的通信是否机器与机器、人与机器之间的通信是否以智能方式处理?以智能方式处理?g. g
10、. 法律考虑法律考虑 这种配置是否会引入违法的责任风险?这种配置是否会引入违法的责任风险? 对责任问题是否给予了足够的保护?对责任问题是否给予了足够的保护? 是否存在潜在的破坏是否存在潜在的破坏问题?问题?17二、软件需求分析二、软件需求分析需求分析是一项软件工程活动,其目的是:需求分析是一项软件工程活动,其目的是: 清楚地理解所要解决的问题,完整地获取用清楚地理解所要解决的问题,完整地获取用户要求;户要求; 刻划出软件的功能和性能;刻划出软件的功能和性能; 指明软件与其他系统元素的接口;指明软件与其他系统元素的接口; 建立软件必须满足的约束。建立软件必须满足的约束。1. 1. 软件需求分析的
11、目的软件需求分析的目的 18需求分析是一项软件工程活动,它包括:需求分析是一项软件工程活动,它包括:1) 需求获取需求获取刻划出软件的刻划出软件的功能功能和和性能性能;指明软件与其他系统元素的指明软件与其他系统元素的接口接口;建立软件必须满足的建立软件必须满足的约束约束。2) 需求建模需求建模需求分析建立起来的模型为日后软件设计需求分析建立起来的模型为日后软件设计人员提供了可被翻译成人员提供了可被翻译成数据数据、体系结构体系结构、接口接口和和处理过程处理过程设计的模型。设计的模型。2.2. 需求分析的任务需求分析的任务193) 需求规格说明需求规格说明需求规格说明为开发人员和用户提供软件需求规
12、格说明为开发人员和用户提供软件开发完成时质量评价的依据。开发完成时质量评价的依据。4) 需求评审需求评审 需求分析研究的对象是需求分析研究的对象是用户的要求用户的要求。 必须必须全面理解全面理解用户的各项要求,用户的各项要求,准确表准确表达达被接受的用户要求。被接受的用户要求。 只有经过确切描述的软件需求才能成为只有经过确切描述的软件需求才能成为软件设计的基础。软件设计的基础。 20软件开发是要实现软件开发是要实现目标系统的物理模型目标系统的物理模型。需求。需求分析的任务就是借助于分析的任务就是借助于当前系统的逻辑模型导当前系统的逻辑模型导出目标系统的逻辑模型出目标系统的逻辑模型,解决目标系统
13、,解决目标系统 “做做什么什么” 的问题。的问题。目标系统目标系统当前系统当前系统物理模型物理模型逻辑模型逻辑模型模型化模型化抽象化抽象化物理模型物理模型逻辑模型逻辑模型具体化具体化实例化实例化理理解解需需求求导导出出怎么做怎么做做什么做什么21物理模型物理模型( (实施模型、实施模型、 技术模型技术模型) )逻辑模型逻辑模型( (本质模型、本质模型、 概念模型概念模型) )当前当前系统系统描述现实系统是如何描述现实系统是如何在物理上实现的。在物理上实现的。描述重要的业务功能,不描述重要的业务功能,不考虑系统是如何实施的。考虑系统是如何实施的。目标目标系统系统描述新系统是如何实描述新系统是如何
14、实施的(包括技术)。施的(包括技术)。描述新系统的主要业务功描述新系统的主要业务功能和用户新的需求,不考能和用户新的需求,不考虑系统应如何实施。虑系统应如何实施。22n需求分析的过程可以分成四个阶段:需求分析的过程可以分成四个阶段:1) 需求获取需求获取 研究系统的研究系统的可行性分析报告可行性分析报告和和软件项目软件项目实施计划实施计划。 从系统角度来理解软件并评审用于产生从系统角度来理解软件并评审用于产生计划估算的计划估算的软件范围是否恰当软件范围是否恰当; 通过调研确定通过调研确定对目标系统的需求对目标系统的需求; 提出这些提出这些需求实现条件需求实现条件,以及,以及需求应达需求应达到的
15、标准到的标准。3. 需求分析的过程23 建立分析所需要的建立分析所需要的沟通途径沟通途径,以保证能,以保证能顺利地对问题进行分析。顺利地对问题进行分析。管理人员管理人员用户用户分析人员分析人员软件开发组软件开发组软件需求说明软件需求说明软件实施计划软件实施计划原型原型软件实施计划软件实施计划软件实施计划软件实施计划软件需求说明软件需求说明软件需求说明软件需求说明原型原型原型原型242) 需求建模需求建模 进行各种要求的进行各种要求的一致性一致性检查;检查; 逐步细化所有的逐步细化所有的软件功能软件功能; 分解分解数据域数据域,分配给各个子功能;,分配给各个子功能; 找出系统各成分之间的找出系统
16、各成分之间的联系联系、接口特接口特性性和和设计限制设计限制。 判断是否存在不合理的用户要求或用判断是否存在不合理的用户要求或用户尚未提出的潜在要求。户尚未提出的潜在要求。 综合成系统的综合成系统的解决方案解决方案,给出目标系,给出目标系统的详细逻辑模型。统的详细逻辑模型。25常用的分析方法常用的分析方法面向数据流的结构化分析方法面向数据流的结构化分析方法 (SA)面向数据结构的面向数据结构的Jackson方法方法 (JSD)面向数据结构的结构化数据系统开发方法面向数据结构的结构化数据系统开发方法 (DSSD)面向对象的分析方法面向对象的分析方法 (OOA) 等等263) 编制需求分析阶段的文档
17、编制需求分析阶段的文档 软件需求规格说明;软件需求规格说明; 初步的用户手册;初步的用户手册; 确认测试计划;确认测试计划; 修改和完善软件开发计划。修改和完善软件开发计划。4) 需求评审(确认)需求评审(确认) 作为需求分析阶段工作的复查手段,作为需求分析阶段工作的复查手段,应该对应该对功能的正确性功能的正确性、文档的一致性文档的一致性、完备性完备性、准确性准确性和和清晰性清晰性,以及其他,以及其他需求给予评价。需求给予评价。271) 1) 需要能够表达和理解问题的信息域和功需要能够表达和理解问题的信息域和功能域能域v信息流信息流:数据和控制通过一个系统时的变:数据和控制通过一个系统时的变化
18、方式。两个功能之间的数据化方式。两个功能之间的数据/控制传递就控制传递就确定了功能间的接口。确定了功能间的接口。 v信息内容信息内容:单个数据或控制对象,它们构:单个数据或控制对象,它们构成了某个更大的由软件变换生成的信息的成了某个更大的由软件变换生成的信息的集合。集合。v信息结构信息结构:各种数据和控制项的内部组织。:各种数据和控制项的内部组织。4.4. 需求分析的原则需求分析的原则282)2) 以层次化的方式对问题进行分解和不以层次化的方式对问题进行分解和不断细化断细化纵纵向向分分解解横向分解横向分解293)3) 给出系统的逻辑视图和物理视图给出系统的逻辑视图和物理视图v软件需求的逻辑视图
19、给出的是软件要达到软件需求的逻辑视图给出的是软件要达到的功能和要处理的数据之间的关系,而不的功能和要处理的数据之间的关系,而不是实现的细节。是实现的细节。v软件需求的逻辑描述是软件设计的基础。软件需求的逻辑描述是软件设计的基础。v软件需求的物理视图给出的是处理功能和软件需求的物理视图给出的是处理功能和数据结构的实际表现形式,这往往是由设数据结构的实际表现形式,这往往是由设备本身决定的,因此推迟到设计阶段考虑。备本身决定的,因此推迟到设计阶段考虑。305.5. 需求获取需求获取需求获取是在需求获取是在问题问题及其及其最终解决方案最终解决方案之间架之间架设桥梁的第一步。设桥梁的第一步。获取需求的一
20、个必不可少的结果是对项目中获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需描述的客户需求的普遍理解。一旦理解了需求,分析人员、开发人员和客户就能探索出求,分析人员、开发人员和客户就能探索出描述这些需求的多种解决方案。描述这些需求的多种解决方案。311 1)软件需求的层次软件需求的层次a.业务需求业务需求反映了组织或客户开展相关业务的工作流和反映了组织或客户开展相关业务的工作流和业务规则,是对系统、产品高层次的目标要业务规则,是对系统、产品高层次的目标要求,与该组织或客户的业务领域有关。求,与该组织或客户的业务领域有关。b.用户需求用户需求 描述用户使用软件需要完成哪
21、些任务,可通描述用户使用软件需要完成哪些任务,可通过用例过用例 (use case) 图或场景说明加以阐明。图或场景说明加以阐明。c.功能功能非功能需求非功能需求 定义了开发人员必须实现的软件功能,而非定义了开发人员必须实现的软件功能,而非功能需求如表所示功能需求如表所示:32 性能要求性能要求 实时性实时性; 其他时间要求, 如响应时间、 处理时其他时间要求, 如响应时间、 处理时间、包传送时间等间、包传送时间等; 资源配置要求资源配置要求; 精确度、精确度、处理量等要求处理量等要求 可靠性要求可靠性要求 有效性有效性; 数据完整性数据完整性 安全保密要求安全保密要求 安全性安全性; 保密性
22、保密性 运行要求运行要求 使用频度、 运行期限使用频度、 运行期限; 控制方式控制方式; 对操作员要对操作员要求求 产产品品要要求求 物理要求物理要求 系统的规模等系统的规模等 开发类型开发类型 实用性开发或试验性开发实用性开发或试验性开发 项目估算项目估算 开发工作量估计开发工作量估计 开发方法开发方法 质量控制标准质量控制标准; 里程碑和评审里程碑和评审; 验收标准验收标准 优先顺序优先顺序 权衡各种质量目标要求,排定优先实现次序权衡各种质量目标要求,排定优先实现次序 过过程程要要求求 可维护性可维护性 可理解性、可测试性、可可理解性、可测试性、可修改性、可移植性修改性、可移植性 332
23、2)需求获取技术的基本特征)需求获取技术的基本特征一种好的需求获取技术,对于规范需求获取一种好的需求获取技术,对于规范需求获取活动,高效准确地获取需求定义,是十分重活动,高效准确地获取需求定义,是十分重要的。要的。好的需求获取技术,应具有如下基本特征:好的需求获取技术,应具有如下基本特征:a. 提供便于沟通的工具,如易于理解的语言;提供便于沟通的工具,如易于理解的语言;b. 提供定义系统边界的方法;提供定义系统边界的方法;c.提供支持抽象的机制,如提供支持抽象的机制,如“分解分解”、“映映射射”等;等;34d. 鼓励分析员使用面向问题的术语思考问题,鼓励分析员使用面向问题的术语思考问题,编写文
24、档;编写文档;e.为分析员提供多种可供选择的解决方案;为分析员提供多种可供选择的解决方案;f.适应需求的变化。适应需求的变化。适于以上特征的需求获取方法:适于以上特征的需求获取方法:v基于数据流图的结构化分析方法;基于数据流图的结构化分析方法;v基于用例(基于用例(use case)的建模方法。)的建模方法。需求获取技术的关键点在于:需求获取技术的关键点在于:a. 深入浅出深入浅出 需求获取要尽可能全面、细致。需求获取要尽可能全面、细致。35获取的需求是个全集,系统真正实现的是获取的需求是个全集,系统真正实现的是个子集。细致地调研并不表明在分析时将个子集。细致地调研并不表明在分析时将调研内容都
25、纳入到新系统中调研内容都纳入到新系统中, 但有利于以但有利于以后的扩充。后的扩充。b. 以流程为主线以流程为主线 在与用户交流的过程中,应该用流程将所在与用户交流的过程中,应该用流程将所有的内容串起来。如信息、组织结构、处有的内容串起来。如信息、组织结构、处理规则等。这样便于交流沟通。理规则等。这样便于交流沟通。流程的描述既要有宏观,又要有微观。即流程的描述既要有宏观,又要有微观。即要强调总体的业务流程、全生存期的业务要强调总体的业务流程、全生存期的业务流程,又要对流程细化,有分支的业务流流程,又要对流程细化,有分支的业务流程。程。363 3)需求获取应遵循的原则)需求获取应遵循的原则抽象和分
26、解是在人们认识世界和改造世界的抽象和分解是在人们认识世界和改造世界的长期实践中总结出来的行之有效的原则,在长期实践中总结出来的行之有效的原则,在需求获取的过程中需遵循的三个原则:需求获取的过程中需遵循的三个原则:a. 分解分解:捕获问题空间的整体:捕获问题空间的整体部分关系。部分关系。如问题子问题分解;如问题子问题分解;b. 抽象抽象:捕获问题空间的一般化:捕获问题空间的一般化特殊化关特殊化关系。如问题的不同变型;系。如问题的不同变型;c.投影投影:捕获问题空间的多维视图。即从不:捕获问题空间的多维视图。即从不同角度考察。同角度考察。374 4)需求获取的步骤)需求获取的步骤软件开发项目和组织
27、文化的不同,对于需求软件开发项目和组织文化的不同,对于需求开发没有一个简单的、公式化的途径。开发没有一个简单的、公式化的途径。下面列出下面列出9个步骤,用以指导需求获取活动。个步骤,用以指导需求获取活动。1)定义项目的视图和范围定义项目的视图和范围 包括组织结构图、包括组织结构图、各部门的岗位各部门的岗位/角色列表。角色列表。2)确定用户类确定用户类 包括人员包括人员/责任矩阵。责任矩阵。3)确定目标系统的业务工作流确定目标系统的业务工作流 包括物流、包括物流、资金流、信息流,建立业务工作流模型。资金流、信息流,建立业务工作流模型。384)运用需求获取技术开发用例(或数据流图)运用需求获取技术
28、开发用例(或数据流图)并设置优先级并设置优先级 用以掌握主要业务规则。用以掌握主要业务规则。 5)收集来自用户的质量特性信息和其他非功收集来自用户的质量特性信息和其他非功能需求能需求 将性能、安全性、可靠性等需求将性能、安全性、可靠性等需求和其他设计约束结合业务规则,形成功能和其他设计约束结合业务规则,形成功能需求。需求。6)分类在用例(或数据流图)中涉及的数据分类在用例(或数据流图)中涉及的数据 包括数据的组成和数据之间的关系。包括数据的组成和数据之间的关系。7)详细拟订用例(或数据流图)详细拟订用例(或数据流图) 建立功能建立功能模型,并进行审查,用以澄清需求获取的模型,并进行审查,用以澄
29、清需求获取的参与者对需求的理解。参与者对需求的理解。398) 开发并评估界面原型开发并评估界面原型 设想输入设备、输设想输入设备、输出设备、显示风格、显示方式、输出格式出设备、显示风格、显示方式、输出格式等,建立接口规范和信息流传输规则。等,建立接口规范和信息流传输规则。9) 从功能描述中开发概念测试用例从功能描述中开发概念测试用例 用测试用测试用例来验证用例(或数据流图)、功能需用例来验证用例(或数据流图)、功能需求和原型。求和原型。40需求获取可能是软件开发中最困难、最关键、需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。表现在:最易出错及最需要交流的方面。表现在:v需
30、求的不稳定性需求的不稳定性:在整个软件生存周期内:在整个软件生存周期内软件需求会随着时间的推移发生变化;软件需求会随着时间的推移发生变化;v需求的不准确性需求的不准确性:用户和开发人员的认识:用户和开发人员的认识会随着使用系统实现业务流程的实践逐步会随着使用系统实现业务流程的实践逐步提高,一开始不可能设想得面面俱到。提高,一开始不可能设想得面面俱到。需求获取只有通过有效的客户需求获取只有通过有效的客户/开发者的合作开发者的合作才能成功。才能成功。 415 5)针对信息系统的需求调研方法)针对信息系统的需求调研方法a. 调研用户的组织结构、岗位设置、职责定调研用户的组织结构、岗位设置、职责定义,
31、从功能上区分有多少个子系统,划分义,从功能上区分有多少个子系统,划分系统的大致范围,明确系统的目标。系统的大致范围,明确系统的目标。b. 调研每个子系统的工作流程、功能与处理调研每个子系统的工作流程、功能与处理规则,收集原始信息资料,用数据流来表规则,收集原始信息资料,用数据流来表示物流、资金流、信息流三者的关系。示物流、资金流、信息流三者的关系。c. 对调研内容事先准备,针对不同管理层次对调研内容事先准备,针对不同管理层次的用户询问不同的问题,列出问题清单。的用户询问不同的问题,列出问题清单。将操作层、管理层、决策层的需求既联系将操作层、管理层、决策层的需求既联系又区分开来,形成一个需求的层
32、次。又区分开来,形成一个需求的层次。42d. 对与用户沟通的情况及时总结归纳,整理调对与用户沟通的情况及时总结归纳,整理调研结果,初步构成需求基线。若基线符合要研结果,初步构成需求基线。若基线符合要求,则需求获取完成。求,则需求获取完成。需求调研的主要手段:需求调研的主要手段:v发调查表;发调查表;v召开调查会;召开调查会;v向用户领域的专家个别咨询;向用户领域的专家个别咨询;v实地考察,实地考察,v跟踪现场业务流程;跟踪现场业务流程;v查阅与待开发系统有关的资料;查阅与待开发系统有关的资料;v使用各种调查工具等。使用各种调查工具等。436 6)需求整理与表达的方法)需求整理与表达的方法 采用
33、采用穷举方法穷举方法可以避免遗漏。可以避免遗漏。 采用采用归纳方法归纳方法,通过对各种情况进行综合分类,通过对各种情况进行综合分类可以使问题条理化。可以使问题条理化。 采用采用抽象方法抽象方法,可以发现问题的实质,抓住问,可以发现问题的实质,抓住问题的主要矛盾,忽略其次要矛盾。题的主要矛盾,忽略其次要矛盾。 需求整理可以多种手段共用,如组织结构图、需求整理可以多种手段共用,如组织结构图、业务流程图、多叉树、关系矩阵、文字叙述、业务流程图、多叉树、关系矩阵、文字叙述、表格、图形等。需求描述包括组织结构与岗位表格、图形等。需求描述包括组织结构与岗位定义、业务流程、处理规则、数据项、功能以定义、业务
34、流程、处理规则、数据项、功能以及上述及上述 5 个方面的关系。个方面的关系。44n结构化分析方法最初只是着眼于数据流,自顶结构化分析方法最初只是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以向下,逐层分解,建立系统的处理流程,以数数据流图据流图和和数据字典数据字典为主要工具,建立系统的逻为主要工具,建立系统的逻辑模型。辑模型。n扩充后,将建模技术扩展到数据建模、功能建扩充后,将建模技术扩展到数据建模、功能建模和行为建模,模和行为建模,以实体以实体-关系图关系图、数据流图数据流图和和控制流图控制流图、状态状态-迁移图迁移图为工具,为工具,数据字典数据字典为为核心,从不同视点建立系统的分
35、析模型。核心,从不同视点建立系统的分析模型。三、结构化分析方法三、结构化分析方法45结构化分析的分析模型结构化分析的分析模型实体实体关系图关系图状态状态迁移图迁移图数据流数据流图图数据对象描述数据对象描述加工规格说明加工规格说明数据数据字典字典控制规格说明控制规格说明461. 1. 数据建模数据建模n数据模型包括三种互相关联的信息:数据模型包括三种互相关联的信息:数据对象数据对象,描述对象的描述对象的属性属性,描述对象间相互连接的,描述对象间相互连接的关系关系。n在需求分析阶段描述数据对象和它们之间的关在需求分析阶段描述数据对象和它们之间的关系,使用了系,使用了E- -R图图。n例如,在教学管
36、理中,一个教师可以教授零门、例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)程。因此,教学管理中涉及的对象(实体型)有有学生学生、教师教师和和课程课程。47教学数据模型教学数据模型学号学号 姓名姓名 专业专业 性别性别学生学生职工号职工号姓名姓名专业专业职称职称年龄年龄教师教师课程号课程号 课程名课程名 学分学分 学时学时 课程课程选课选课48 实例的关联有三种:一对一实例的关联有三种:一对一 (1:1); 一对多一对多(1:m);多对多;多对多(n:m)。 这种实例的关联称为这种
37、实例的关联称为“基数基数”。基数表明了。基数表明了“重复性重复性”。教师教师学生学生教授教授基数基数:一位教师一位教师 基数基数:多位学生多位学生参与度参与度: :必须必须 参与度参与度: :可选可选49E-RE-R图中表示实体关联的符号如下:图中表示实体关联的符号如下:XY一个一个X与一个与一个Y相关联相关联一个一个X与一个或多个与一个或多个Y相关联相关联XY一个一个X与零个或一个与零个或一个Y相关联相关联XY一个一个X与零个与零个, 一个或多个一个或多个Y相关联相关联XY一个一个X与一个与一个Y或或Z相关联相关联XYZ一个一个X与一个与一个Y与与Z相关联相关联XYZ502. 2. 功能建模
38、和数据流图功能建模和数据流图n最初最初, , 结构化分析方法仅讨论数据流建模。结构化分析方法仅讨论数据流建模。目标系统被表示成如图所示的数据变换流程目标系统被表示成如图所示的数据变换流程图。系统的功能体现在核心的数据变换中。图。系统的功能体现在核心的数据变换中。外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体目标目标系统系统输入信息输入信息输入信息输入信息输出信息输出信息输出信息输出信息511 1)功能建模的思想)功能建模的思想n功能建模就是用抽象模型的概念,按照软件功能建模就是用抽象模型的概念,按照软件内部内部数据传递数据传递、变换变换的关系,的关系,自顶向下逐层自顶向下逐层
39、分解分解,直到找到满足功能要求的所有可实现,直到找到满足功能要求的所有可实现的软件为止。的软件为止。n根据根据DeMarco的论述,功能模型使用了的论述,功能模型使用了数据数据流图流图来表达系统内数据的运动情况,而数据来表达系统内数据的运动情况,而数据流的变换则用结构化英语、判定表与判定树流的变换则用结构化英语、判定表与判定树来描述。来描述。522 2)数据流图中的主要图形元素)数据流图中的主要图形元素数据加工数据加工 (数据变换数据变换)数据源或数据潭数据源或数据潭 (外部实体外部实体)数据流数据流数据存储文件数据存储文件或或或或53543 3)数据流图的层次结构)数据流图的层次结构为了表达
40、数据处理过程,需要采用为了表达数据处理过程,需要采用层次结构层次结构的的数据流图。按照系统的层次结构进行数据流图。按照系统的层次结构进行逐步分解逐步分解,并以分层的数据流图反映这种结构关系。并以分层的数据流图反映这种结构关系。顶层流图顶层流图仅包含仅包含一个加工一个加工,它代表被开发系统。,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系它的输入流是该系统的输入数据,输出流是系统所输出数据统所输出数据底层流图底层流图是指其是指其加工不需再做分解加工不需再做分解的数据流图,的数据流图,它处在最底层它处在最底层中间层流图中间层流图则表示则表示对其上层父图的细化对其上层父图的细化。它的。它
41、的每一加工可能继续细化,形成子图。每一加工可能继续细化,形成子图。554 4)功能建模的步骤功能建模的步骤对考生送来的报名单进行检查对考生送来的报名单进行检查;对合格的报名单编好准考证号后将准考证送给对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站考生,并将汇总后的考生名单送给阅卷站;对阅卷站送来的成绩单进行检查,并根据考试对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者中心制定的合格标准审定合格者;制作考生通知单(含成绩及合格制作考生通知单(含成绩及合格/不合格标志)不合格标志)送给考生送给考生;按地区进行成绩分类统计和试题难度分析,产按地区进
42、行成绩分类统计和试题难度分析,产生统计分析表。生统计分析表。实例实例 考务处理系统的功能考务处理系统的功能56顶层数据流图顶层数据流图考生考务处理系统考试中心阅卷站不合格报名表报名表准考证考生通知单成绩单合格标准错误成绩单考生名单统计分析表顶层图封闭在外部顶层图封闭在外部实体之间,反映系实体之间,反映系统与外部的交互。统与外部的交互。57这个数据流图只是一个高层的这个数据流图只是一个高层的系统逻辑模型系统逻辑模型,它反映了目标系统要实现的功能以及系统与外它反映了目标系统要实现的功能以及系统与外界的关系。界的关系。该图或称为上下文环境图或语境图(该图或称为上下文环境图或语境图(Context D
43、iagram)数据流图绘制步骤数据流图绘制步骤1) 首先确定系统的首先确定系统的输入输入和和输出输出2) 根据考务处理业务,画出根据考务处理业务,画出顶层数据流图顶层数据流图,以反映最主要业务处理流程以反映最主要业务处理流程3) 经过分析,考务业务处理的经过分析,考务业务处理的主要功能主要功能应当应当58有有登记报名单登记报名单、统计成绩统计成绩两大项。两大项。主要数据主要数据流输入的源点流输入的源点和和输出终点输出终点是是考生考生、考试中心考试中心和和阅卷站阅卷站。4) 然后从输入端开始,根据考务业务工作流,然后从输入端开始,根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出画出数据
44、流流经的各加工框,逐步画到输出端,得到第端,得到第1层数据流图。层数据流图。5) 画加工的内部:用画第画加工的内部:用画第1层图同样的方法画出每层图同样的方法画出每个加工的个加工的DFD子图。子图。6) 重复重复第第 5 步步,直至图中的尚未分解的加工都足,直至图中的尚未分解的加工都足够简单。至此得到够简单。至此得到分层数据流图分层数据流图。59报名表准考证1登记报名表2统计成绩不合格报名表考生通知单成绩单统计分析表第第1 1层数据流图层数据流图考生名册合格标准考生名单错误成绩单60第第2 2层数据流图层数据流图 ( (a)a)1.1 检查报名表报名表准考证1.2编准考证号码不合格报名表考生名
45、册考生名单合格报名表1.3登记考生合格报名表61第第2 2层数据流图层数据流图 ( (b)b)2.1检查成绩单2.2审定合格者考生名册正确成绩单2.3制作通知单2.4分析统计成绩2.5分析试题难度试题得分表考生通知单难度分析表合格标准分类统计表成绩单错误成绩单经审定的成绩单625 5)绘制数据流图的原则)绘制数据流图的原则n数据流图上所有图形符号数据流图上所有图形符号只限于只限于前述四种基本前述四种基本图形元素,它们图形元素,它们的命名应反映其实际含义的命名应反映其实际含义; ;n数据流图的顶层图上的数据流必须封闭在外部数据流图的顶层图上的数据流必须封闭在外部实体之间;实体之间;n每个加工每个
46、加工至少有一个输入数据流和一个输出数至少有一个输入数据流和一个输出数据流据流; 允许一个加工有多条数据流流向另一个加工,允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出数据流流向也允许一个加工有两个相同的输出数据流流向两个不同的加工。两个不同的加工。63 在数据流图中,需在数据流图中,需按层给加工框编号按层给加工框编号。编号表。编号表明该加工所处层次及上下层的亲子关系;明该加工所处层次及上下层的亲子关系;n规定任何一个数据流子图必须与它上一层的一规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流个加工对应,两者的输入数据流和输出数据流必须一致
47、。此即必须一致。此即父图与子图的平衡父图与子图的平衡;n如果一个数据文件仅在展开的数据流子图中使如果一个数据文件仅在展开的数据流子图中使用,可以在父图中不画出;用,可以在父图中不画出;n可以在数据流图中加入物质流,帮助用户理解可以在数据流图中加入物质流,帮助用户理解数据流图;数据流图;n数据流图中不可夹带控制流,但针对实时系统数据流图中不可夹带控制流,但针对实时系统可以加入控制流,成为数据流图的扩展形式。可以加入控制流,成为数据流图的扩展形式。64 数据流和控制流举例数据流和控制流举例 (使用(使用WardWard和和mellormellor符号)符号)监控固监控固件和操件和操作接口作接口每个
48、固件状态每个固件状态动作动作警告警告机器人机器人初始化初始化控制控制操作命令操作命令部件状态缓冲器部件状态缓冲器位置位置命令命令开始开始/停止停止处理处理机器人机器人命令命令机器人命令文件机器人命令文件操作设置操作设置处理活动处理活动记录机器记录机器人动作人动作位串位串65数据和控制模型的关系数据和控制模型的关系 DFD加工规格说明加工规格说明加工模型加工模型DFD控制规格说明控制规格说明控制模型控制模型数据输出数据输出数据条件数据条件数据输入数据输入控制输入控制输入控制输出控制输出加工加工激活者激活者663. 3. 行为建模行为建模n行为建模给出需求分析方法的所有操作原则,行为建模给出需求分
49、析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种但只有结构化分析方法的扩充版本才提供这种建模的符号。建模的符号。1) 状态迁移图状态迁移图2) Petri网网671 1)状态迁移图)状态迁移图例如例如, 有关有关CPU分配的进程的状态迁移。分配的进程的状态迁移。t2t3t4t1运行运行就绪就绪等待等待68状态迁移图是描述系统的状态如何响应外部的状态迁移图是描述系统的状态如何响应外部的事件进行推移的一种图形表示。事件进行推移的一种图形表示。v “”表示可得到的系统表示可得到的系统状态状态v “”表示从一种状态向另一种状态的表示从一种状态向另一种状态的迁移迁移。S2S1S3t1t2t
50、3t4t4t3t2t1事件事件状态状态S1 S2 S3S3S2S3S1692 2)PetriPetri网网 Petri网已广泛地应用于硬件与软件系统的开发网已广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。的处理系统,也就是并发执行的处理系统。 Petri网简称网简称PNG (Petri Net Graph),它有两种,它有两种结点:结点: 位置位置:符号:符号“”,表示系统,表示系统状态状态。 转移转移:符号:符号 “|”, 表示系统中的表示系统中的事件事件。 有向边有向边“”表示表示向转移