2.5成本/效益分析(1)成本估计1)代码行技术2)任务分解技术3)自动估计成本技术(2)成本/效益分析方法1)货币时间价值F=P(1+i)n次方2)投资回收期3)纯收入4)投资回收率
2.5 成本/效益分析 (1) 成本估计 1) 代码行技术 2) 任务分解技术 3) 自动估计成本技术 (2) 成本/效益分析方法 1) 货币时间价值 F=P(1+i)n 次方 2) 投资回收期 3) 纯收入 4) 投资回收率
第三章需求分析3.1需求分析3.1.1需求分析目的可行性分析研究阶段已经粗略的描述了用户的需求,甚至还提出了一些可行的方案,但是,许多细节被忽略了,在最终目标系统中是不能忽略、遗漏任何一个微小细节的,所以,可行性研究不能代替需求分析。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标提出完整、准确、清晰、具体的要求。通过需求分析,明确用户对目标软件系统在功能、性能、行为、设计约束等方面的期望,回答软件系统“必须做什么”。开发人员准确的理解用户的要求,进行细致的调查分析,讲用户形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。3.1.2需求分析的方法需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成,它定义了表示系统逻辑视图和物理视图的方式,大多数的需求分析方法是由数据驱动的,也就是说,这些方法提供了一种表示数据域的机制,分析员根据这种表示,确定软件功能及其特性,最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。3.1.3需求分析的任务问题识别、分析与综合导出软件逻辑模型、编写文档。基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是深入描述软件的共能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。其实现步骤如下图所示:
第三章 需求分析 3.1 需求分析 3.1.1 需求分析目的 可行性分析研究阶段已经粗略的描述了用户的需求,甚至还提出了一些可行的方案,但 是,许多细节被忽略了,在最终目标系统中是不能忽略、遗漏任何一个微小细节的,所以, 可行性研究不能代替需求分析。 需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工 作,也就是对目标提出完整、准确、清晰、具体的要求。 通过需求分析,明确用户对目标软件系统在功能、性能、行为、设计约束等方面的期望, 回答软件系统“必须做什么”。 开发人员准确的理解用户的要求,进行细致的调查分析,讲用户形式的需求陈述转化为 完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。 3.1.2 需求分析的方法 需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成,它定义了 表示系统逻辑视图和物理视图的方式,大多数的需求分析方法是由数据驱动的,也就是说, 这些方法提供了一种表示数据域的机制,分析员根据这种表示,确定软件功能及其特性,最 终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。 3.1.3 需求分析的任务 问题识别、分析与综合导出软件逻辑模型、编写文档。基本任务是准确地回答“系统必 须做什么?”这个问题。需求分析所要做的工作是深入描述软件的共能和性能,确定软件设 计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。需求分析的任务 不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出 完整、准确、清晰、具体的要求。其实现步骤如下图所示:
当逻当前物前辑模型化抽象化理解需求系模模统型统型怎么做做什么广当逻日标剪辑具体化实例化A模型表达需求统图1需求分析任务图(1)确定对系统的综合要求系统功能需求:系统性能需求:可靠性和可用性需求:错处理需求:接口需求;约束:逆向需求;将来可能提出的需求(2)分析系统的数据需求就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质,明确目标系统要“做什么”,可以导出系统的详细的逻辑模型。具体做法:首先确定目标系统与当前系统的逻辑差别:然后将变化部分看作是新的处理步骤,对功能图(一般为数据流图)及对象图进行调整;最后有外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。通常用数据流图、数字字典和主要的处理算法描述这个逻辑模型。分析系统数据要求通常采用建立数据模型的方法,利用图形工具辅助描绘数据结构。(3)导出系统的逻辑模型(4)修正系统开发计划3.2与用户沟通获取需求的方法3.2.1访谈正式和非正式访谈、发调查表、情景分析。3.2.2面向数据流自顶向下求精结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。结构化分析法就是面向数据流自顶向下逐步求精进行需求分析的方法,把数据流和数据存储定义到元素级。3.3分析建模与规格说明3.3.1分析建模数据模型(ER图)、功能模型(数据流图,描绘当数据在软件系统中移动时被变换的逻
图 1 需求分析任务图 (1) 确定对系统的综合要求 系统功能需求;系统性能需求;可靠性和可用性需求;错处理需求;接口需求;约束; 逆向需求;将来可能提出的需求 (2) 分析系统的数据需求 就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质,明确目标系统 要“做什么”,可以导出系统的详细的逻辑模型。具体做法:首先确定目标系统与当前系统 的逻辑差别;然后将变化部分看作是新的处理步骤,对功能图(一般为数据流图)及对象图 进行调整;最后有外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。 通常用数据流图、数字字典和主要的处理算法描述这个逻辑模型。 分析系统数据要求通常采用建立数据模型的方法,利用图形工具辅助描绘数据结构。 (3)导出系统的逻辑模型 (4)修正系统开发计划 3.2 与用户沟通获取需求的方法 3.2.1 访谈 正式和非正式访谈、发调查表、情景分析。 3.2.2 面向数据流自顶向下求精 结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立 一 种新的、称为结构化说明书的目标文档-需求规格说明书。 结构化分析法就是面向数据流自顶向下逐步求精进行需求分析的方法,把数据流和数据 存储定义到元素级。 3.3 分析建模与规格说明 3.3.1 分析建模 数据模型(ER 图)、功能模型(数据流图,描绘当数据在软件系统中移动时被变换的逻
辑过程,指明系统具有的变换数据的功能)、行为模型(状态图,指明了作为外部事件结果的系统行为)3.3.2软件需求规格说明书为了消除用自然语言书写的软件需求规格说明书中可能存在的不一致、歧义、含糊、不完整及抽象层次混乱等问题,用形式化方法描述用户对软件系统的需求。3.4实体一联系图(数据对象及数据对象之间的关系)(1)数据对象一系列不同性质或属性的事务(2)属性数据对象的性质(3)联系数据对象彼此之间相互连接的方式称为联系,也称为关系3.5状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。状态图还指明了作为特定事件的结果系统将做哪些动作。(1):状态(2)事件(3)符号3.6其他图(1)层次方框图:用树形结构的一系列多层次的矩形描绘数据的层次结构。(2)IPO图:输入、处理、输出图的简称。3.7软件需求的验证需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求。为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。(1)应该从下述4个方面进行验证:1)一致性所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。2)完整性需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。3)现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术
辑过程,指明系统具有的变换数据的功能)、行为模型(状态图,指明了作为外部事件结果 的系统行为) 3.3.2 软件需求规格说明书 为了消除用自然语言书写的软件需求规格说明书中可能存在的不一致、歧义、含糊、不 完整及抽象层次混乱等问题,用形式化方法描述用户对软件系统的需求。 3.4 实体—联系图(数据对象及数据对象之间的关系) (1)数据对象 一系列不同性质或属性的事务 (2) 属性 数据对象的性质 (3) 联系 数据对象彼此之间相互连接的方式称为联系,也称为关系 3.5 状态转换图 通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。状态图还指明了作 为特定事件的结果系统将做哪些动作。 (1) 状态 (2) 事件 (3) 符号 3.6 其他图 (1)层次方框图:用树形结构的一系列多层次的矩形描绘数据的层次结构。 (2)IPO 图:输入、处理、输出图的简称。 3.7 软件需求的验证 需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中 15%的错误起源于错误的需求。为了提高软件质量,确保软件开发成功,降低软件开发成本, 一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。 (1) 应该从下述 4 个方面进行验证: 1)一致性所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。 2)完整性需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。 3)现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬 件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术
水平出发判断需求的现实性。4)有效性必须证明需求是正确有效的,确实能解决用户面对的问题。(2)验证软件需求的方法(3)用于需求分析的软件工具RSL(需求陈述语言)PSL/PSA(问题陈述语言/问题陈述分析程序)
水平出发判断需求的现实性。 4)有效性必须证明需求是正确有效的,确实能解决用户面对的问题。 (2) 验证软件需求的方法 (3) 用于需求分析的软件工具 RSL(需求陈述语言) PSL/PSA(问题陈述语言/问题陈述分析程序)