版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河北工业大学廊坊分院计算机系可行性研究可行性研究需求分析需求分析概要设计概要设计详细设计详细设计实实 现现 测测 试试使用与维护使用与维护退役退役软件定义软件定义软件开发软件开发软件使用软件使用与维护与维护复习:软件生存周期复习:软件生存周期第三章第三章 需求分析需求分析3.1 需求分析概述需求分析概述软件需求软件需求是指用户对目标软件系统在功能、性能、行是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。为、设计约束等方面的期望。需求分析就是通过对需求分析就是通过对应用问题及其环境应用问题及其环境的分析与理解,的分析与理解,采用一系列的分析方法和技术,将采用一系列的分析方法和技术
2、,将用户的需求用户的需求逐步精逐步精确化、完全化、一致化,最终形成需求规格说明文档确化、完全化、一致化,最终形成需求规格说明文档的过程。的过程。系统分析阶段产生的系统规格说明和项目规划是软件系统分析阶段产生的系统规格说明和项目规划是软件需求分析的基础,分析人员需从软件的角度对其进行需求分析的基础,分析人员需从软件的角度对其进行检查和调整,并在此基础上展开需求分析。检查和调整,并在此基础上展开需求分析。需求分析阶段的需求分析阶段的成果成果主要是主要是需求规格说明,需求规格说明,该成该成果又是软件设计、编码、测试直至维护的主要基果又是软件设计、编码、测试直至维护的主要基础。础。需求分析是需求分析是
3、系统分析和软件设计的重要桥梁,系统分析和软件设计的重要桥梁,是是软件生存周期的关键性阶段。良好的分析活动能软件生存周期的关键性阶段。良好的分析活动能够减少错误和遗漏,从而可提高软件生产率和产够减少错误和遗漏,从而可提高软件生产率和产品质量、降低开发与维护成本。品质量、降低开发与维护成本。需求分析需求分析F 需求分析的任务:需求分析的任务: 准确的回答准确的回答“系统必须做什么?系统必须做什么?”FF仍然回答仍然回答“What”,而不是而不是“How”, 但更细致、精确(合同的拟定)但更细致、精确(合同的拟定)v需求分析是发现、求精、建模、规格说明需求分析是发现、求精、建模、规格说明和复审的过程
4、;和复审的过程;v需求分析是系统设计的基础,关系到程的需求分析是系统设计的基础,关系到程的成败和软件产品的质量。成败和软件产品的质量。重要性重要性需求获取需求获取困难困难原因有三原因有三一是用户需求的动态性一是用户需求的动态性( (不稳定性不稳定性) ) 二是需求的模糊性二是需求的模糊性( (不准确性不准确性) ) 三是需求必须得到用户的确认,否则毫无三是需求必须得到用户的确认,否则毫无意义意义 4.1 需求分析基础需求分析基础-需求分析的重要性需求分析的重要性 需求工程需求工程需求开发需求开发需求管理需求管理综合分析综合分析问题获取问题获取需求描述需求描述需求确认需求确认版本控制版本控制变更
5、控制变更控制需求跟踪需求跟踪状态跟踪状态跟踪人们把创建和维护系统需求所必须的一切活动称之为需人们把创建和维护系统需求所必须的一切活动称之为需求工程求工程v3.2 需求分析的任务与原则需求分析的任务与原则v3.2.1 需求分析的任务需求分析的任务需求分析就是为了深入理解软件的功能和性能,并用规需求分析就是为了深入理解软件的功能和性能,并用规格说明书的方式表达出来。包括两个层面:格说明书的方式表达出来。包括两个层面:(1)理解。理解用户的用意。)理解。理解用户的用意。(2)表达。产生规格说明书。)表达。产生规格说明书。软件开发是为了实现目标系统的物理模型,即确定软软件开发是为了实现目标系统的物理模
6、型,即确定软件系统的元素极其这些元素是功能和结构,这些是软件件系统的元素极其这些元素是功能和结构,这些是软件实现的基础。而物理模型是由逻辑模型实例化而来,逻实现的基础。而物理模型是由逻辑模型实例化而来,逻辑模型忽略实现机制和细节,只描述系统的功能和需要辑模型忽略实现机制和细节,只描述系统的功能和需要处理的数据。所以分析人员首先要获得目标系统的逻辑处理的数据。所以分析人员首先要获得目标系统的逻辑模型。模型。目标系统的逻辑模型可分目标系统的逻辑模型可分3步来实现:步来实现:(1 1)获得当前系统的物理模型)获得当前系统的物理模型了解当前系统的组织机构、输入输出、资源利用情况和日了解当前系统的组织机
7、构、输入输出、资源利用情况和日常数据处理过程,分析理解当前系统的运行(也即理解当常数据处理过程,分析理解当前系统的运行(也即理解当前系统怎么做),并用一个具体的能反映现实的模型来表前系统怎么做),并用一个具体的能反映现实的模型来表示。示。(2 2)抽象出当前系统的逻辑模型)抽象出当前系统的逻辑模型从上个步骤的从上个步骤的“怎么做怎么做”抽取系统抽取系统“做什么做什么”的本质,舍的本质,舍弃非本质的东西,即可抽象出当前系统的逻辑模型。弃非本质的东西,即可抽象出当前系统的逻辑模型。(3 3)建立目标系统的逻辑模型)建立目标系统的逻辑模型需明确目标系统是做什么,一般先比较目标系统和当前系需明确目标系
8、统是做什么,一般先比较目标系统和当前系统的差别,对功能图(数据流图)及对象图变化的部分做统的差别,对功能图(数据流图)及对象图变化的部分做相应的调整,获得目标系统的逻辑模型。相应的调整,获得目标系统的逻辑模型。当前系统当前系统物理模型物理模型逻辑模型逻辑模型逻辑模型逻辑模型物理模型物理模型目标系统目标系统模型化模型化抽象化抽象化实例化实例化具体化具体化怎么做怎么做做什么做什么理解需求理解需求表达需求表达需求导出导出v(1)获得当前系统的物理模型 v采购员购货物理模型 采购员采购员 采购员采购员会计室会计室 陈陈出纳员出纳员 江江供货商供货商 王王采购申请采购申请购货单购货单采购单采购单发票发票
9、货物货物主管主管 李李v(2)抽象出当前系统的逻辑模型: v采购员购货逻辑模型 采购员采购员 采购员采购员开发开发票票开购开购货单货单供货供货采购申请采购申请购货单购货单采购单采购单发票发票货物货物审查审查有效有效v(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。v目标系统的逻辑模型 采购员采购员 采购员采购员审查审查开发开发供货供货购货购货采购单采购单发票发票v3.2.2 需求分析的原则需求分析的原则v1 必须能够表达和理解问题的数据域和功必须能够表达和理解问题的数据域和功能域能域v2 按自顶向下、逐层分解的方式对问题进按自顶向下、逐层分解的方式对问题进行分解和不断细化行分解和不
10、断细化v3 要给出系统的逻辑视图和物理视图要给出系统的逻辑视图和物理视图v3.3 需求分析的过程及方法需求分析的过程及方法v3.3.1 需求分析的过程需求分析的过程v需求分析阶段可分成需求分析阶段可分成4个步骤:个步骤:v问题识别问题识别v需求分析需求分析v制定规格说明书制定规格说明书v评审评审v1 问题识别问题识别v1)功能需求:是最主要的需求,即说明软件应做什么,)功能需求:是最主要的需求,即说明软件应做什么,它列出了软件在功能上必须完成的它列出了软件在功能上必须完成的v2)性能需求:软件的技术性能指标,如存储容量、运行)性能需求:软件的技术性能指标,如存储容量、运行时间、安全保密等。时间
11、、安全保密等。v3)环境需求:对软件可能运行的环境的描述,比如必须)环境需求:对软件可能运行的环境的描述,比如必须采用什么支持系统运行的系统软件,采用什么支持系统运行的系统软件,v4)安全保密要求:软件运行在不同的环境中,对安全保)安全保密要求:软件运行在不同的环境中,对安全保密的要求是不同的,对那些保密性密的要求是不同的,对那些保密性v5)用户界面需求:以人为本的思想在现代社会中越来越)用户界面需求:以人为本的思想在现代社会中越来越受到人们的重视。在软件开发行业受到人们的重视。在软件开发行业v6)资源使用需求:软件运行时必须使用的一定资源,如)资源使用需求:软件运行时必须使用的一定资源,如数
12、据、内存空间等资源,资源使用数据、内存空间等资源,资源使用v7)软件成本消耗与开发进度需求:根据合同对软件开发)软件成本消耗与开发进度需求:根据合同对软件开发的进度,及各步骤的费用的要求,的进度,及各步骤的费用的要求,v8)预先估计以后系统可能达到的目标:这是对系统的未)预先估计以后系统可能达到的目标:这是对系统的未来可能出现的情况(修改)的准备来可能出现的情况(修改)的准备.v考察质量因素的主要属性有:考察质量因素的主要属性有:(1)操作:)操作:正确性:系统中的错误数目。正确性:系统中的错误数目。可用性:学习系统的容易程度,执行日常任务的有效可用性:学习系统的容易程度,执行日常任务的有效程
13、度等。程度等。有效性:也称为性能,它指系统响应的速度,使用资有效性:也称为性能,它指系统响应的速度,使用资源的多少等。源的多少等。完整性:系统处理物理干扰、非法操作的好坏。完整性:系统处理物理干扰、非法操作的好坏。可靠性:系统故障的频度。可靠性:系统故障的频度。(2)修改:)修改:可维护性:定位错误、修复的难易度。可维护性:定位错误、修复的难易度。灵活性:扩充新特性的难易度。灵活性:扩充新特性的难易度。可测试性:测试系统的容易程度。可测试性:测试系统的容易程度。(3)转移:)转移:互操作性:系统与其他系统协同工作的难易度。互操作性:系统与其他系统协同工作的难易度。可移植性:移植系统到新硬件平台
14、或新软件的难易度。可移植性:移植系统到新硬件平台或新软件的难易度。可重用性:把部分软件用于其他系统的难易度。可重用性:把部分软件用于其他系统的难易度。v2。需求分析。需求分析v这个阶段对已收集的需求进行提炼、分析和审查,即对问这个阶段对已收集的需求进行提炼、分析和审查,即对问题的分析和方案的综合,确保所有的需求含义都被理解,题的分析和方案的综合,确保所有的需求含义都被理解,并找出可能错误,遗漏或不足的地方。并找出可能错误,遗漏或不足的地方。v分析人员在这一步骤中的任务是根据对问题及其环境的理分析人员在这一步骤中的任务是根据对问题及其环境的理解与软件开发经验,改正用户需求的模糊性、歧义性和不解与
15、软件开发经验,改正用户需求的模糊性、歧义性和不一致性,排除由于用户的片面性和短期行为所导致的不合一致性,排除由于用户的片面性和短期行为所导致的不合理要求、挖掘用户尚未提出但具有价值的潜在需求,并在理要求、挖掘用户尚未提出但具有价值的潜在需求,并在用户的帮助下对相互冲突的要求进行折衷,使用户需求逐用户的帮助下对相互冲突的要求进行折衷,使用户需求逐步精确化、一致化和完全化。步精确化、一致化和完全化。v需求分析的困难性:需求分析的困难性:v1)问题的复杂性。这是由用户需求所涉及的因素繁多引)问题的复杂性。这是由用户需求所涉及的因素繁多引起的,如运行环境和系统功能等。起的,如运行环境和系统功能等。v2
16、)交流障碍。需求分析涉及人员较多,有用户,工程师,)交流障碍。需求分析涉及人员较多,有用户,工程师,管理员等,这些人具有不同的背景知识,扮演不同的角色,管理员等,这些人具有不同的背景知识,扮演不同的角色,他们难于陈述他们的需求,造成彼此交流的困难。他们难于陈述他们的需求,造成彼此交流的困难。v3)不完备和不一致性。用户对问题的描述一般不完备,)不完备和不一致性。用户对问题的描述一般不完备,甚至可能是矛盾的,需求分析必须要消除矛盾。甚至可能是矛盾的,需求分析必须要消除矛盾。v4)需求易变性。用户的需求变动,影响到需求分析的全)需求易变性。用户的需求变动,影响到需求分析的全部。比如当用户在某处看到
17、一个更好的系统时,他也可能部。比如当用户在某处看到一个更好的系统时,他也可能会意识到他自己需要类似的系统。会意识到他自己需要类似的系统。v5)产品是全新的,还没有用户,也没有人将)产品是全新的,还没有用户,也没有人将IT用于这类用于这类应用。应用。在这一过程中,需要用某种方法为原始问题及其软件在这一过程中,需要用某种方法为原始问题及其软件解建立模型,以便精确地记录用户从各个视点、在不解建立模型,以便精确地记录用户从各个视点、在不同抽象级别上对原始问题的描述,并包含了问题及其同抽象级别上对原始问题的描述,并包含了问题及其环境所涉及的信息流、处理功能、用户界面、行为及环境所涉及的信息流、处理功能、
18、用户界面、行为及设计约束等各方面内容。设计约束等各方面内容。于是可通过对模型的精确化来达到需求分析的目标。于是可通过对模型的精确化来达到需求分析的目标。比如,可以采用面向数据流的分析方法,利用数据流比如,可以采用面向数据流的分析方法,利用数据流图和数据字典等工具来建立模型。图和数据字典等工具来建立模型。该模型是形成需求规格说明、进行软件设计的基础。该模型是形成需求规格说明、进行软件设计的基础。3 。制定规格说明书制定规格说明书该步骤的主要任务是以需求模型为基础,生成该步骤的主要任务是以需求模型为基础,生成需求规格说明和初步的用户手册,并制定软件需求规格说明和初步的用户手册,并制定软件产品验收测
19、试计划。产品验收测试计划。需求规格说明是软件项目的一个关键性文档。需求规格说明是软件项目的一个关键性文档。其中应包含对目标软件系统的功能、外部行为、其中应包含对目标软件系统的功能、外部行为、性能、质量、可靠性、可维护性、约束条件和性能、质量、可靠性、可维护性、约束条件和需求验证标准等的完整的描述。需求验证标准等的完整的描述。初步用户手册应包括目标软件系统的用户界面初步用户手册应包括目标软件系统的用户界面的描述和使用方法的初步构想。的描述和使用方法的初步构想。验收测试计划是进行软件产品验收测试的依据。验收测试计划是进行软件产品验收测试的依据。4 4 。评审。评审需求评审是软件开发过程中的一个重要
20、的里程碑。需求评审是软件开发过程中的一个重要的里程碑。需求评审的主要任务是分析人员在用户(客户)和软件需求评审的主要任务是分析人员在用户(客户)和软件设计人员的配合下对需求规格说明和初步用户手册进行设计人员的配合下对需求规格说明和初步用户手册进行审核,检验软件需求的精确性、完全性和一致性,并使审核,检验软件需求的精确性、完全性和一致性,并使用户(客户)和软件设计人员对规格说明和用户手册达用户(客户)和软件设计人员对规格说明和用户手册达成一致的理解。成一致的理解。经过评审确认的需求规格说明将成为客户方与开发方的经过评审确认的需求规格说明将成为客户方与开发方的合同。如果评审未通过,比如发现了遗漏或
21、错误,则必合同。如果评审未通过,比如发现了遗漏或错误,则必须进行迭代,直至通过评审为止。须进行迭代,直至通过评审为止。1 1、确定对系统的综合要求、确定对系统的综合要求2 2、分析系统的数据要求、分析系统的数据要求3 3、异出系统的逻辑模型、异出系统的逻辑模型4 4、修正项目开发划、修正项目开发划5 5、开发原型系统、开发原型系统 与软件实际运行相关的需求分析任务与软件实际运行相关的需求分析任务需求分析的任务需求分析的任务3.3.2 需求分析的一般性技术需求分析的一般性技术3.3.2.1 初步需求获取技术初步需求获取技术在分析阶段的初期,由于分析人员和用户的共在分析阶段的初期,由于分析人员和用
22、户的共同知识领域可能不多,致使分析人员对问题往同知识领域可能不多,致使分析人员对问题往往知之不多,而用户对目标软件的要求及对要往知之不多,而用户对目标软件的要求及对要求的描述常常是零乱而模糊的,从而会造成相求的描述常常是零乱而模糊的,从而会造成相互交流和相互理解上的困难。为了克服困难,互交流和相互理解上的困难。为了克服困难,获取初步需求,可以采用如下的技术手段:获取初步需求,可以采用如下的技术手段: 访谈与会议;访谈与会议; 观察用户工作流程;观察用户工作流程; 分析人员和用户组成联合小组。分析人员和用户组成联合小组。1访谈与会议访谈与会议分析人员采用个别访谈或小组会议的形式与用户进行初步分析
23、人员采用个别访谈或小组会议的形式与用户进行初步交流。在访谈和会议之前,分析人员根据对问题的初步描交流。在访谈和会议之前,分析人员根据对问题的初步描述精心准备一系列问题,通过用户对问题的回答或互相商述精心准备一系列问题,通过用户对问题的回答或互相商讨来逐步理解用户的需求。讨来逐步理解用户的需求。准备问题的原则有:准备问题的原则有:首先应搞清一般性、整体性问题,然后再涉及细节问题。首先应搞清一般性、整体性问题,然后再涉及细节问题。在组织问题时要尽量做到客观、公证,不应限制用户的自由在组织问题时要尽量做到客观、公证,不应限制用户的自由发挥。发挥。所提问题汇总后应能反映应用问题及其子问题的全貌、并且所
24、提问题汇总后应能反映应用问题及其子问题的全貌、并且不要过分详细。不要过分详细。2观察用户工作流程观察用户工作流程如果可能,可通过实际观察用户的手工操作过如果可能,可通过实际观察用户的手工操作过程来提取新系统的初步用户需求。程来提取新系统的初步用户需求。观察手工操作过程不是为了模拟手工操作过程,观察手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价而是为了获取第一手资料,并从中提取出有价值的需求。分析人员有了第一手资料,再结合值的需求。分析人员有了第一手资料,再结合自己的软件开发和应用的经验,就能够发现不自己的软件开发和应用的经验,就能够发现不合理的用户需求、提出用户
25、还没有意识到的潜合理的用户需求、提出用户还没有意识到的潜在的但却很有价值的用户需求,并能够从软件在的但却很有价值的用户需求,并能够从软件的角度改进操作流程和操作规范,从而可获得的角度改进操作流程和操作规范,从而可获得用户满意的分析结果。用户满意的分析结果。3用户和开发人员共同组成联合小组用户和开发人员共同组成联合小组为加强信息沟通、减少误解和避免产生遗漏、为加强信息沟通、减少误解和避免产生遗漏、充分调动用户的积极性,在可能的条件下,可充分调动用户的积极性,在可能的条件下,可以建立由开发方和用户方共同组成的联合小组。以建立由开发方和用户方共同组成的联合小组。联合小组除了双方的分析人员外,应设专门
26、的联合小组除了双方的分析人员外,应设专门的记录员、负责会议议程的人员和资料员等,并记录员、负责会议议程的人员和资料员等,并制定小组的规章制度和计划,选定一种易于理制定小组的规章制度和计划,选定一种易于理解、简洁、精确的表示机制作为双方的共同语解、简洁、精确的表示机制作为双方的共同语言,比如采用带文字说明的流程图等。言,比如采用带文字说明的流程图等。3.3.2.2 需求建模技术需求建模技术为了使用户需求逐步精细化、完全化、一致化,通常为了使用户需求逐步精细化、完全化、一致化,通常采用需求建模技术,即用建立目标软件系统模型的方采用需求建模技术,即用建立目标软件系统模型的方法来刻画软件系统中的信息、
27、处理功能和外部行为。法来刻画软件系统中的信息、处理功能和外部行为。通常,分析人员选定一种分析方法,并用该方法中的通常,分析人员选定一种分析方法,并用该方法中的一些图形记号分别表示信息流、处理功能和系统行为,一些图形记号分别表示信息流、处理功能和系统行为,并利用受限制的自然语言给出用户需求的描述。这种并利用受限制的自然语言给出用户需求的描述。这种模型的表示机制还应具有良好的结构化能力,以便处模型的表示机制还应具有良好的结构化能力,以便处理大型问题的按层次分解的问题。理大型问题的按层次分解的问题。软件需求分析的过程,实际上是软件模型的建造和不软件需求分析的过程,实际上是软件模型的建造和不断完善的过
28、程。断完善的过程。需求建模的步骤需求建模的步骤通过访谈、会议、实际观察、分析现有系统等方法获取初步的通过访谈、会议、实际观察、分析现有系统等方法获取初步的用户需求。用户需求。在初步用户需求的基础上构筑初步的模型作为开发方和用户相在初步用户需求的基础上构筑初步的模型作为开发方和用户相互沟通的表示机制。互沟通的表示机制。在用户的密切配合下,利用选定的分析方法不断地对模型进行在用户的密切配合下,利用选定的分析方法不断地对模型进行精细化、一致化、完全化,直至获得满意的用户需求为止。精细化、一致化、完全化,直至获得满意的用户需求为止。在分析阶段构筑的模型不应涉及软件实现的细节,以免分散分在分析阶段构筑的
29、模型不应涉及软件实现的细节,以免分散分析人员的注意力、限制软件设计人员为提高软件质量和效率而析人员的注意力、限制软件设计人员为提高软件质量和效率而选择实现方法的自由度。选择实现方法的自由度。需求分析结束时确立的软件模型是生成需求规格说明的依据,需求分析结束时确立的软件模型是生成需求规格说明的依据,也是软件设计和实现的基础。也是软件设计和实现的基础。3.3.2.3 快速原型技术快速原型技术 如果按照传统的软件开发方法,需要经过漫长的开如果按照传统的软件开发方法,需要经过漫长的开发时间之后用户才能看到目标软件的最初版本。此发时间之后用户才能看到目标软件的最初版本。此时用户常常会提出许多修改意见,有
30、时甚至全盘否时用户常常会提出许多修改意见,有时甚至全盘否定,导致开发失败。为了降低开发风险,在需求分定,导致开发失败。为了降低开发风险,在需求分析阶段常常采用快速原型技术。析阶段常常采用快速原型技术。 1快速原型技术的基本思想快速原型技术的基本思想 在软件开发的早期,快速开发一个目标软件系统的在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。当原型开发人员根据用户的意见对原型进行改进。当原型几经改进最终确认后,它将直接进化成软件产品,几经改进最终确认后,它将直接进化成软件产品
31、,或者由软件设计、编码人员按照模型所确立的外部或者由软件设计、编码人员按照模型所确立的外部特征去实现软件产品。特征去实现软件产品。2采用快速原型技术的具体步骤采用快速原型技术的具体步骤采用一种分析方法生成一个软件系统或其中所关心部采用一种分析方法生成一个软件系统或其中所关心部分的简化需求规格说明。分的简化需求规格说明。对该规格说明进行评审通过后,立即生成设计规格说对该规格说明进行评审通过后,立即生成设计规格说明。为了快速生成原型,这种设计仅注重所关心的问明。为了快速生成原型,这种设计仅注重所关心的问题,如软件的总体结构、用户界面和数据设计、或者题,如软件的总体结构、用户界面和数据设计、或者某个
32、复杂的算法等等,不注重过程内部的控制流设计。某个复杂的算法等等,不注重过程内部的控制流设计。使用可重用软部件、用户界面自动生成器等工具快速使用可重用软部件、用户界面自动生成器等工具快速生成可运行的软件原型并通过测试。生成可运行的软件原型并通过测试。将原型提交给用户进行评价,以便征求改进意见。将原型提交给用户进行评价,以便征求改进意见。上述过程反复迭代,直至用户完全满意。此时的原型上述过程反复迭代,直至用户完全满意。此时的原型已完全、准确地反映了目标软件在所关心方面的需求,已完全、准确地反映了目标软件在所关心方面的需求,可作为需求规格说明的一部分而成为软件设计的基础。可作为需求规格说明的一部分而
33、成为软件设计的基础。3快速原型技术的适用场合快速原型技术的适用场合该技术特别适合于软件产品要求大量的用该技术特别适合于软件产品要求大量的用户交互、或产生大量的可视输出、或设计户交互、或产生大量的可视输出、或设计一些复杂的算法等场合,目前的绝大多数一些复杂的算法等场合,目前的绝大多数软件都适合于快速原型技术。软件都适合于快速原型技术。除非由于问题相当复杂,致使开发快速原除非由于问题相当复杂,致使开发快速原型可以获得的支持太少、所冒的风险太大型可以获得的支持太少、所冒的风险太大时,就不易采用。但对于其中的某些子问时,就不易采用。但对于其中的某些子问题,尤其是用户界面,还可采用快速原型题,尤其是用户
34、界面,还可采用快速原型技术进行部分分析。技术进行部分分析。3.3.2.4 问题分解与抽象、多视点分析技术问题分解与抽象、多视点分析技术问题分解技术问题分解技术 分析人员常常采用一种问题分解的技术。即将一个大型复杂的问题分析人员常常采用一种问题分解的技术。即将一个大型复杂的问题分解为若干个子问题,然后对每一个子问题逐个进行分析,再自底向分解为若干个子问题,然后对每一个子问题逐个进行分析,再自底向上综合成整个问题的分析结果。这种分解可以逐级进行,直至子问题上综合成整个问题的分析结果。这种分解可以逐级进行,直至子问题的规模降到合适的程度。的规模降到合适的程度。问题抽象技术问题抽象技术 分析人员在分析
35、过程中要善于从诸多的特殊问题中抽象出一般的问分析人员在分析过程中要善于从诸多的特殊问题中抽象出一般的问题,首先关注一般问题的解决途径,再用其指导特殊问题的求解。在题,首先关注一般问题的解决途径,再用其指导特殊问题的求解。在抽象的过程中,还要注意用户的描述所处的抽象级别的不同,以便建抽象的过程中,还要注意用户的描述所处的抽象级别的不同,以便建立清晰的思路。立清晰的思路。多视点分析技术:多视点分析技术: 为了获得全面的需求分析结果,防止遗漏,有必要从各个视点分别对为了获得全面的需求分析结果,防止遗漏,有必要从各个视点分别对问题进行理解与分析,然后综合成全面的理解。分析人员可以就系统问题进行理解与分
36、析,然后综合成全面的理解。分析人员可以就系统视点与用户视点、信息视点、功能视点与行为视点等多个视点分别进视点与用户视点、信息视点、功能视点与行为视点等多个视点分别进行分析,以确保需求分析的完全性。行分析,以确保需求分析的完全性。v软件需求建模软件需求建模在软件的需求过程中,经常采用分析建模的方法。在软件的需求过程中,经常采用分析建模的方法。v1 软件建模软件建模在软件工程中,模型就是表在软件工程中,模型就是表达分析结果的一种图形。需达分析结果的一种图形。需求模型有以下图几种。求模型有以下图几种。行为模型功能模型数据模型状态图数据流图实体关系图数据字典v2 2 数据模型数据模型v数据模型是描述数
37、据对象之间的关系数据模型是描述数据对象之间的关系v1 1)数据对象:几乎所有必须被软件理解的复合信息都可)数据对象:几乎所有必须被软件理解的复合信息都可称为数据对象。复合信息是指具有不同特性或属性的事物。称为数据对象。复合信息是指具有不同特性或属性的事物。v数据对象:是现实世界中实体的数据表现;是省略了功能数据对象:是现实世界中实体的数据表现;是省略了功能和行为的实体。和行为的实体。v2 2)数据对象由其属性刻画。通常属性包括:)数据对象由其属性刻画。通常属性包括:v(1 1)对数据对象实例命名)对数据对象实例命名v(2 2)描述实例)描述实例v(3 3)引用另一个实例)引用另一个实例v一般而
38、言,现实世界中任何给定实体都具有许多属性,分一般而言,现实世界中任何给定实体都具有许多属性,分析人员应当并且只能考虑与应用问题有关的属性。例如,析人员应当并且只能考虑与应用问题有关的属性。例如,在汽车销售管理问题中,汽车的属性可能有:制造商、型在汽车销售管理问题中,汽车的属性可能有:制造商、型号、标识码、车体类型、颜色和买主。号、标识码、车体类型、颜色和买主。v3 3)关系:数据对象之间的关联,如顾客与商品是)关系:数据对象之间的关联,如顾客与商品是“买买”关系,商品与店主是关系,商品与店主是“卖卖”关系。关系。v这种关联有这种关联有3 3种形态:种形态:v(1 1)1 1:1. 1. 一对一
39、关系,如:一个部门有一个主任一对一关系,如:一个部门有一个主任v(2 2)1 1:N N 一对多关系,如:一个公司有多个职员一对多关系,如:一个公司有多个职员v(3 3)M M:N N 多对多关系,如:一个职员有多个任务,多对多关系,如:一个职员有多个任务,一个任务可以由多个职员来完成一个任务可以由多个职员来完成v4 4)E ER R图图实体实体- -关系(关系(Entity-RelationEntity-Relation)图简称)图简称E-RE-R图,是表示数图,是表示数据对象及其之间关系的图形语言机制。据对象及其之间关系的图形语言机制。数据对象(实体)用长方形、关系用菱形、属性用椭圆表数据
40、对象(实体)用长方形、关系用菱形、属性用椭圆表示。示。v3 3 功能模型功能模型v功能模型可以用数据流图描述,所以也称数据流模型。数据流模型描功能模型可以用数据流图描述,所以也称数据流模型。数据流模型描绘信息流和数据从输入到输出,以及被加工处理(变换)的过程,人绘信息流和数据从输入到输出,以及被加工处理(变换)的过程,人们常用数据模型和数据流模型来描述系统的信息结构。们常用数据模型和数据流模型来描述系统的信息结构。v4 4 行为模型行为模型v在分析模型中,有些数据加工并非是数据来触发的,而是由实时发生在分析模型中,有些数据加工并非是数据来触发的,而是由实时发生的事件来触发的,传统的数据流图已经
41、无法表示,因为实时控制系统的事件来触发的,传统的数据流图已经无法表示,因为实时控制系统很少有数据输入,主要是事件驱动的。因此用由状态图表示的行为模很少有数据输入,主要是事件驱动的。因此用由状态图表示的行为模型是最有效的描述方式,行为模型在实时系统的分析及设计中,发挥型是最有效的描述方式,行为模型在实时系统的分析及设计中,发挥了很大的优势。了很大的优势。v状态图(状态转换图)用来描述行为模型,行为模型也称状态机模型,状态图(状态转换图)用来描述行为模型,行为模型也称状态机模型,通过描述系统的状态以及引起状态转换的事件来表示系统的行为。通过描述系统的状态以及引起状态转换的事件来表示系统的行为。v状
42、态图有事件、状态、行为等基本元素。事件是引起状态转换的控制状态图有事件、状态、行为等基本元素。事件是引起状态转换的控制信息,它发生在某个特定的时刻,引起系统从一个状态转换到另一个信息,它发生在某个特定的时刻,引起系统从一个状态转换到另一个状态。状态。 v3.3.3 需求分析方法需求分析方法v1 概述概述v(1)结构化分析:结构化分析是面向数据流进)结构化分析:结构化分析是面向数据流进行需求分析的方法,适合于数据处理类型软件的行需求分析的方法,适合于数据处理类型软件的需求分析。需求分析。v(2)结构化设计:结构化设计包括结构化概要)结构化设计:结构化设计包括结构化概要设计和结构化详细设计两个方面
43、,以模块化技术设计和结构化详细设计两个方面,以模块化技术为基础。它是在结构化需求分析的基础上,建立为基础。它是在结构化需求分析的基础上,建立软件的系统结构,设计一般的数据结构和软件模软件的系统结构,设计一般的数据结构和软件模块结构。块结构。v(3)结构化程序设计:这阶段的工作是把软件)结构化程序设计:这阶段的工作是把软件设计转换成计算机可以接受的源程序。设计转换成计算机可以接受的源程序。面向数据流的分析方法面向数据流的分析方法面向数据流的分析方法(面向数据流的分析方法(dataflow-oriented analysis method)与面向数据、面向对象的分析方法,都是需求建模与面向数据、面
44、向对象的分析方法,都是需求建模方法。它们均有一组规范的语言表达机制,用于需求分析人方法。它们均有一组规范的语言表达机制,用于需求分析人员表达用户需求、构造软件系统模型。此外,它们还含有一员表达用户需求、构造软件系统模型。此外,它们还含有一些规则和经验知识,指导分析人员提取需求信息,促进用户些规则和经验知识,指导分析人员提取需求信息,促进用户需求精确化、全面化和一致化。需求精确化、全面化和一致化。面向数据流的分析方法是结构化分析方法系列中的一支,具面向数据流的分析方法是结构化分析方法系列中的一支,具有明显的结构化特征。结构化分析方法的雏形出现于有明显的结构化特征。结构化分析方法的雏形出现于20世
45、纪世纪60年代后期。但是,直到年代后期。但是,直到1979年才由年才由DeMarco将其作为一种将其作为一种需求分析方法正式提出。由此,结构化分析方法得到了迅速需求分析方法正式提出。由此,结构化分析方法得到了迅速发展和广泛应用。发展和广泛应用。 面向数据流的分析方法(面向数据流的分析方法(dataflow-oriented analysis method)与面向数据、面向对象的分析方法,都是需求建模与面向数据、面向对象的分析方法,都是需求建模方法。它们均有一组规范的语言表达机制,用于需求分析人方法。它们均有一组规范的语言表达机制,用于需求分析人员表达用户需求、构造软件系统模型。此外,它们还含有
46、一员表达用户需求、构造软件系统模型。此外,它们还含有一些规则和经验知识,指导分析人员提取需求信息,促进用户些规则和经验知识,指导分析人员提取需求信息,促进用户需求精确化、全面化和一致化。需求精确化、全面化和一致化。面向数据流的分析方法是结构化分析方法系列中的一支,具面向数据流的分析方法是结构化分析方法系列中的一支,具有明显的结构化特征。结构化分析方法的雏形出现于有明显的结构化特征。结构化分析方法的雏形出现于20世纪世纪60年代后期。但是,直到年代后期。但是,直到1979年才由年才由DeMarco将其作为一种将其作为一种需求分析方法正式提出。由此,结构化分析方法得到了迅速需求分析方法正式提出。由
47、此,结构化分析方法得到了迅速发展和广泛应用。发展和广泛应用。结构化分析使用数据流图、数据字典、结构化语言、判定树结构化分析使用数据流图、数据字典、结构化语言、判定树和判定表来描述结构化分析和判定表来描述结构化分析结构化分析结构化分析=数据流数据流+数据处理(加工)数据处理(加工)+数据存储数据存储+端点端点+处理处理说明说明+数据字典数据字典 面向数据流的分析方法面向数据流的分析方法一、一、 数据流图与数据字典数据流图与数据字典一个基于计算机的信息处理系统由数据流和一个基于计算机的信息处理系统由数据流和一系列的转换构成,而这些转换将输入数据一系列的转换构成,而这些转换将输入数据流变换为输出数据
48、流。流变换为输出数据流。数据流图数据流图(DFD) ,又称数据流程图,是结构,又称数据流程图,是结构化分析的主要描述工具。数据流图就是用来化分析的主要描述工具。数据流图就是用来刻画数据流和转换的信息系统建模技术。刻画数据流和转换的信息系统建模技术。 它是以图形的方式来表达数据处理系统中它是以图形的方式来表达数据处理系统中信息的逻辑流向、逻辑功能和逻辑变换,而不信息的逻辑流向、逻辑功能和逻辑变换,而不依赖于硬件、软件、数据结构或者文件组织,依赖于硬件、软件、数据结构或者文件组织,因此,数据流图是软件人员与用户之间非常好因此,数据流图是软件人员与用户之间非常好的交流工具,也是进一步系统设计的出发点
49、的交流工具,也是进一步系统设计的出发点。数据流图用简单的图形记号分别表示数据数据流图用简单的图形记号分别表示数据流、转换、数据源以及外部实体,如下图所流、转换、数据源以及外部实体,如下图所示。示。1. 数据流图的图形记号外部实体外部实体外部实体(源点和终点):是系统之外的实外部实体(源点和终点):是系统之外的实体,可以是人、物或其他软件系统。它是为体,可以是人、物或其他软件系统。它是为了帮助理解系统接口而引入的,不需进一步了帮助理解系统接口而引入的,不需进一步描述。用描述。用“”表示。提供输入数据流的外表示。提供输入数据流的外部实体和接受输出数据流的外部实体分别称部实体和接受输出数据流的外部实
50、体分别称为数据源点和数据终点。源点和终点可以是为数据源点和数据终点。源点和终点可以是同一实体。同一实体。转换转换数据处理(加工处理):也称数据变换或加工数据处理(加工处理):也称数据变换或加工或功能模块,是对输入数据处理的单元,一个或功能模块,是对输入数据处理的单元,一个转换可以有多个输入或输出数据流,但至少要转换可以有多个输入或输出数据流,但至少要有一个数据流和一个输出数据流。有一个数据流和一个输出数据流。 。用圆形符。用圆形符号号“”表示加工是一个广义的概念,可以是表示加工是一个广义的概念,可以是一个简单的数值运算,也可以是一个复杂的分一个简单的数值运算,也可以是一个复杂的分类统计。对于加
51、加工。加工名称写在圆中。在类统计。对于加加工。加工名称写在圆中。在对数据流图分层时,要对加工进行编号以便管对数据流图分层时,要对加工进行编号以便管理。理。数据流数据流数据源数据源数据存储(文件):是由若干数据元素组成数据存储(文件):是由若干数据元素组成的,是暂时保存数据的处所,统称为文件。的,是暂时保存数据的处所,统称为文件。用符号用符号“”表示,文件名写于直线之间。表示,文件名写于直线之间。通常,文件出现在中间和底层的数据流图中通常,文件出现在中间和底层的数据流图中。当被用于数据流中某一些加工之间的界面。当被用于数据流中某一些加工之间的界面接口时,需要画出。接口时,需要画出。数据流:表示含
52、有固定成分的动态数据,用箭数据流:表示含有固定成分的动态数据,用箭头表示数据流,箭头方向表示数据流向,数据头表示数据流,箭头方向表示数据流向,数据流名标在数据流线上。两个加工之间可以有多流名标在数据流线上。两个加工之间可以有多个数据流,但彼此之间没有什么联系,也不必个数据流,但彼此之间没有什么联系,也不必表明它们的先后顺序。表明它们的先后顺序。v数据流图的符号1、外部实体、外部实体2、加工、加工3、数据流、数据流4、数据存储(、数据存储(N为文件编号)为文件编号)N1数据流图有时也用附加符号:数据流图有时也用附加符号: * “与与”,即同时输入,即同时输入/出;出; + “或或”,即至少一项输
53、入,即至少一项输入/出;出; “异或异或”,即非同时输入,即非同时输入/出出v4 画数据流图的注意事项画数据流图的注意事项v1)给数据流命名的方法和注意事项:)给数据流命名的方法和注意事项:命名名字用名词或名词词组命名名字用名词或名词词组命名时,尽量使用现实系统中已有的名字命名时,尽量使用现实系统中已有的名字避免使用空洞的名词诸如避免使用空洞的名词诸如“数据数据”、“信息信息”等。等。v2)给加工命名的原则:)给加工命名的原则:顶层加工名是软件项目名字顶层加工名是软件项目名字加工的名字最好使用动宾词组如加工的名字最好使用动宾词组如“产生成绩单产生成绩单”等等加工的命名同样避免使用空洞的词组,如
54、加工的命名同样避免使用空洞的词组,如“计算计算”、“处理处理”v3)数据流图画法的基本步骤:)数据流图画法的基本步骤:首先画系统的输入首先画系统的输入/输出,只要确定系统从外界接受什么数据、系输出,只要确定系统从外界接受什么数据、系统向外界送出什么数据,确定系统的范围和边界统向外界送出什么数据,确定系统的范围和边界其次画系统的内部,将系统的输入和输出流用一连串加工连接起其次画系统的内部,将系统的输入和输出流用一连串加工连接起来。可以从输入端画到输出端,也可反过来画。在数据流的组成来。可以从输入端画到输出端,也可反过来画。在数据流的组成或值发生变化的地方添加一个或值发生变化的地方添加一个“加工加
55、工”,需要暂时存放数据的地,需要暂时存放数据的地方加上一个方加上一个“文件文件”。最后画加工的内部,最后画加工的内部,“由外向里由外向里”分析每个加工的内部。复杂的分析每个加工的内部。复杂的加工可用几个子加工代替。加工可用几个子加工代替。2. 绘制数据流图绘制数据流图 (1)顶级)顶级DFD(确定系统的范围和边界)(确定系统的范围和边界) 任何软件系统,都是对数据进行加工和变换的工任何软件系统,都是对数据进行加工和变换的工具。初始时,整个信息处理系统都可以高度的抽具。初始时,整个信息处理系统都可以高度的抽象成下图所示的顶级(第象成下图所示的顶级(第0级)数据流图。顶级级)数据流图。顶级数据流图
56、只有一个转换,代表整个软件系统,主数据流图只有一个转换,代表整个软件系统,主要描述软件系统与外界(外部实体)之间的数据要描述软件系统与外界(外部实体)之间的数据流。流。加工或变换输入输出“家庭保安系统家庭保安系统”顶级数据流图顶级数据流图警报类别警报类别显示信息显示信息电话拨号音频电话拨号音频传感数据传感数据用户命令用户命令家庭保家庭保安系统安系统控制面板控制面板传感器传感器显示器显示器电话机电话机警报器警报器 “家庭保安系统家庭保安系统”顶级数据流图顶级数据流图比如,对家庭保安系统,初始时,整个信息处理系统可比如,对家庭保安系统,初始时,整个信息处理系统可以用下图表示。以用下图表示。(2 2
57、)逐层分解(画加工的内部)逐层分解(画加工的内部) 数据流图提供了层次结构,让分析人员能够数据流图提供了层次结构,让分析人员能够方便地表示任意抽象级别上的信息系统或其方便地表示任意抽象级别上的信息系统或其子系统,并支持问题分解、逐步求精的分析子系统,并支持问题分解、逐步求精的分析方法。方法。比如,对家庭保安系统,一级分解如下图比如,对家庭保安系统,一级分解如下图“家庭保安系统家庭保安系统”的第一级的第一级DFD 电话拨号音频电话拨号音频配置数据配置数据配置配置 数据数据配置数据配置数据用户命用户命令处理令处理显示信息显示信息和状态和状态传感器传感器监测监测系统系统配置配置控制面板控制面板显示器
58、显示器警报器警报器电话线电话线传感器传感器配置信息配置信息配置配置 命令命令启动启动/ 停止命令停止命令原口令原口令有效口令有效口令传感器信息传感器信息报警类别报警类别传感数据传感数据显示显示 信息信息用户命令用户命令口令口令启动启动/停止停止系统和状态系统和状态启动或启动或停止消息停止消息口令口令核对核对用用户户交交互互子子系系统统 随着需求分析活动的逐渐深入,较高抽象级别上的复随着需求分析活动的逐渐深入,较高抽象级别上的复杂转换可以精化为一系列相互关联的数据流和子转换,杂转换可以精化为一系列相互关联的数据流和子转换,如图所示。在数据流方法中,对数据(数据流)的精如图所示。在数据流方法中,对
59、数据(数据流)的精化是伴随着对转换的逐步精化而同步进行的。化是伴随着对转换的逐步精化而同步进行的。Z2Y2X2N1M1D1D1C1C1E1E1B0A0A0F1F3FF2F4F5F41F42F43F44B0第第0级级第第1级级第第2级级数据流图的精化与层间平衡数据流图的精化与层间平衡x12341.11.21.32.22.12.33.13.23.34.14.24.3顶顶层层0层层1层层建立数据流模型要遵循以下的原则1每个加工至少应有一个输入数据流(反映被处理数据的来源)每个加工至少应有一个输入数据流(反映被处理数据的来源)和一个输出数据流(反映加工的结果)。和一个输出数据流(反映加工的结果)。2数
60、据流图中各构成元素的名称必须具有明确的含义且能够代数据流图中各构成元素的名称必须具有明确的含义且能够代表对应元素的内容或功能。表对应元素的内容或功能。3应按照层次给每个加工编号,用于表明该加工所处的层次及应按照层次给每个加工编号,用于表明该加工所处的层次及上、下层的父图与子图的关系。编号的规则为:顶层加工不上、下层的父图与子图的关系。编号的规则为:顶层加工不用编号;第一层加工的编号为用编号;第一层加工的编号为1,2,n。第二层加工的编号为。第二层加工的编号为11,12,21,22,n1,n2,等,以此类推。等,以此类推。4对某个加工进行细化生成的下层数据流图,称为其上层图的对某个加工进行细化生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外出创业租房合同范例
- 快递代收合同范例
- 公司产权商铺出售合同模板
- 中药饮片行业探析
- 家居装修公司合同范例
- 建设工程合同范例共几版
- 个人茶庄转让合同范例
- 工程施工正式合同范例
- 剧组法律顾问合同范例
- 产房租赁合同范例
- 大数据专业职业规划
- 任务驱动启发学生自学-任务驱动下的小学语文教学研究 论文
- 吸入麻醉联合神阻滞在骨科手术中应用
- 人教版九年级上学期期中考试数学试卷及答案解析(共5套)
- 逆境中的积极心态与成就
- 山东省2023年高考物理模拟(一模、二模)试题知识点训练:电磁学解答题
- 门诊健康宣教 课件
- 学生戏剧表演
- 人工智能基础及应用(微课版) 课件 第6章 人工神经网络
- 计量器具管理课件
- 2022年《系统集成项目管理工程师》案例分析真题
评论
0/150
提交评论