③共京宽大学 BEDING UNIVERSITY OF POSTS AND TELECOMMUNICATIONS 软件工程模型与方法 TSEG Models methods of sE Telecommunications Software Engineering Grou 第三章系统需求分析与可行性分析 肖丁diao(@bupt.edu.cn 通软件中心 ⊙2008 BUPTTSEC三
© 2008 BUPT TSEG 软件工程模型与方法 Models & Methods of SE 第三章 系统需求分析与可行性分析 肖丁 dxiao@bupt.edu.cn
共京部電大学 计算机系统的定义和组成 Webster定义的计算机系统是:元素的集合或排列,这些元 素被组织在一起,以便通过处理外部信息完成某些预定的 目标。这些系统元素是 软件:指程序、数据结构和相关文档 硬件:指提供计算能力的电子设备和提供外部功能的机电设备。 人员:指使用硬件和软件的用户和其他人员。 文档:指手册、表格和其他表示系统使用和操作的描述性信息。 数据库:指系统所具有的信息模型,是系统中对信息具有存取功 能的一个主要部分。 过程:指定义每一种系统元素的特定使用步骤或使用环境。 过程 硬件 输入 输 (数据库 软件 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 2 计算机系统的定义和组成 ◆ Webster定义的计算机系统是:元素的集合或排列,这些元 素被组织在一起,以便通过处理外部信息完成某些预定的 目标 。这些系统元素是: ➢ 软件:指程序、数据结构和相关文档。 ➢ 硬件:指提供计算能力的电子设备和提供外部功能的机电设备。 ➢ 人员:指使用硬件和软件的用户和其他人员。 ➢ 文档:指手册、表格和其他表示系统使用和操作的描述性信息。 ➢ 数据库:指系统所具有的信息模型,是系统中对信息具有存取功 能的一个主要部分。 ➢ 过程:指定义每一种系统元素的特定使用步骤或使用环境
共京部電大学 计算机的系统工程 ◆计算机系统工程是一个问题求解活动,目 的是揭示、分析所期望的功能、性能、接 口和约束条件,并把它们分配到各个系统 元素中去。 ◆计算机的系统工程包括:硬件工程、软件 工程、人机工程和数据库工程,每一项工 程的作用就是明确和细化系统的功能和性 能的范围和内容,产生一个能与其他系统 元素适当集成的可操作的系统元素。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 3 计算机的系统工程 ◆ 计算机系统工程是一个问题求解活动,目 的是揭示、分析所期望的功能、性能、接 口和约束条件,并把它们分配到各个系统 元素中去。 ◆ 计算机的系统工程包括:硬件工程、软件 工程、人机工程和数据库工程,每一项工 程的作用就是明确和细化系统的功能和性 能的范围和内容,产生一个能与其他系统 元素适当集成的可操作的系统元素
共京部電大学 系统需求识别 系统分析目标 识别用户要求 进行技术分析并进行评价; 把功能分配给系统元素; 建立成本和进度限制; 生成系统规格说明。 可通过回答以下问题协助完成系统分析过程 系统的总体目标是什么? 系统所期望的功能和性能是什么? 系统的可靠性和质量要求是什么? 成本与进度限制如何? 有无软硬件制造和购买的需求? 有效的技术方案有哪些? 将来系统可能有哪些扩充? ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 4 系统需求识别 ◆ 系统分析目标 ➢ 识别用户要求; ➢ 进行技术分析并进行评价; ➢ 把功能分配给系统元素; ➢ 建立成本和进度限制; ➢ 生成系统规格说明。 ◆ 可通过回答以下问题协助完成系统分析过程 ➢ 系统的总体目标是什么? ➢ 系统所期望的功能和性能是什么? ➢ 系统的可靠性和质量要求是什么? ➢ 成本与进度限制如何? ➢ 有无软硬件制造和购买的需求? ➢ 有效的技术方案有哪些? ➢ 将来系统可能有哪些扩充?
共京部電大学 可行性分析 ◆为什么在系统开发之前要进行可行性分析? 屡毁奮是入蹇雪韁之遵授發尖价论 援引柳传志的一段话:“没钱赚的事我们不千;有钱 赚但投不起钱的事不千;有钱赚也投得起钱但没有可 靠的人选,这样的事也不干。 影响系统开发的因素有哪些? 时间因素 资源因素 成本和利润的因素 技术条件和能力的因素 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 5
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 5 可行性分析 ◆ 为什么在系统开发之前要进行可行性分析? ➢ 其目的在于项目进入实际的开发之前用最小的代价论 证该项目是否能做,是否值得做?避免投资损失。 ➢ 援引柳传志的一段话:“没钱赚的事我们不干;有钱 赚但投不起钱的事不干;有钱赚也投得起钱但没有可 靠的人选,这样的事也不干。” ◆ 影响系统开发的因素有哪些? ➢ 时间因素 ➢ 资源因素 ➢ 成本和利润的因素 ➢ 技术条件和能力的因素
共京部電大学 可行性分析的任务和步骤 ◆首先,针对项目确定问题域并对问题域进行概要 的分析和研究,初步确定项自的规模、约束和限 制条件 ◆其次,针对问题域中的关键和核心问题进行简要 的需求分析,抽象出问题域的逻辑结构,并构建 逻辑模型。 ◆最后从逻辑模型出发,通过小规模的设计和技术 实现论证,探索出若无种可供选择的解决方案, 并对每种方案进行可行性方面的论证 ◆可行性分析主要集中在以下四个方面: 经济可行性分析 技术可行分析 法律可行性分析 实施方案的选择 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 6 可行性分析的任务和步骤 ◆ 首先,针对项目确定问题域并对问题域进行概要 的分析和研究,初步确定项目的规模、约束和限 制条件。 ◆ 其次,针对问题域中的关键和核心问题进行简要 的需求分析,抽象出问题域的逻辑结构,并构建 逻辑模型。 ◆ 最后从逻辑模型出发,通过小规模的设计和技术 实现论证,探索出若干种可供选择的解决方案, 并对每种方案进行可行性方面的论证。 ◆ 可行性分析主要集中在以下四个方面: ➢ 经济可行性分析 技术可行分析 ➢ 法律可行性分析 实施方案的选择
共京部電大学 经济可行性分析 ◆软件开发为何要进行经济方面的分析? 软件开发需要有投资,有投资就需要有收益 且的是从经济角度评价一个新项目是否可行 是否划算,从而帮助投资人或者用戶正确地做 出是否投资于这个项目的开发决策。 ◆如何进行经济可行性的分析? 成本效益分析是对软件的开发成本和可能取 得的效益进行权衡比较。 短期长远利益分析而是从另一种角度来评价 成本和效益之间的关系。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 7 经济可行性分析 ◆ 软件开发为何要进行经济方面的分析? ➢ 软件开发需要有投资,有投资就需要有收益。 ➢ 目的是从经济角度评价一个新项目是否可行、 是否划算,从而帮助投资人或者用户正确地做 出是否投资于这个项目的开发决策。 ◆ 如何进行经济可行性的分析? ➢ 成本/效益分析是对软件的开发成本和可能取 得的效益进行权衡比较。 ➢ 短期/长远利益分析而是从另一种角度来评价 成本和效益之间的关系
共京部電大学 软件成本的估算方法 软件开发体现为最终可运行的软件系统以及相应 的开发过程,为此有以下估算软件成本的方法: >代码行技术 功能点技术 任务分解技术 经验估算模型 > COCOMO模型 软件方程式 软件的其他成本估算 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 8 软件成本的估算方法 ◆ 软件开发体现为最终可运行的软件系统以及相应 的开发过程,为此有以下估算软件成本的方法: ➢ 代码行技术 ➢ 功能点技术 ➢ 任务分解技术 ➢ 经验估算模型 ➢ COCOMO模型 ➢ 软件方程式 ➢ 软件的其他成本估算
共京部電大学 软件开发的效益度量 ◆货币的时间价值:由于任何软件项目大都 是投资在前,取得效益在后,因此要考虑 到货币的时间价值。 >设年利率为i,现存入P元,若不计复利则n年 后货币价值为F=P(1+)y 反之,若n年能收入F元,那么这些钱的现值是 F P (1+i) ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 9
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 9 软件开发的效益度量 ◆ 货币的时间价值:由于任何软件项目大都 是投资在前,取得效益在后,因此要考虑 到货币的时间价值。 ➢ 设年利率为i,现存入P元,若不计复利则 n年 后货币价值为 ➢ 反之,若n年能收入F元,那么这些钱的现值是 n F = P(1+ i) n i F P (1+ ) =
共京部電大学 软件开发的效益度量 操窒回收期:葚晏使罴计的经济效五蠡褶的资费用 时间 纯收入:就是在整个生存期之内系统的累计经济效益(折合 成现在值)与投资之差。 纯收入>0说明值得投资 纯收入=0等于把资金存入银行 纯收入<0说明不值得投资 投瓷回收率;设想把数量等子投瓷额的瓷金存入银行、每 年 年 底 从银 行回收 的 钱 等 系统 母 年 预期 可以获 得的 效益 在时间等王系统寿命时,正好把在银行中的存款全部取 完。这个想的军利率就等芋投资回收率。 P=F1/(1+j)+F2/(1+j)2+…,+Fn/(1+) 其中,P是现在的投资额;F是第年年底的效益(i=1,2,n); n是统的使用寿命,是投资面收率。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 10
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 10 软件开发的效益度量 ◆ 投资回收期:就是使累计的经济效益等于最初的投资费用 所需的时间。投资回收期越短,就能越快获得利润。 ◆ 纯收入:就是在整个生存期之内系统的累计经济效益(折合 成现在值)与投资之差。 ➢ 纯收入 > 0 说明值得投资 ➢ 纯收入 = 0 等于把资金存入银行 ➢ 纯收入 < 0 说明不值得投资 ◆ 投资回收率:设想把数量等于投资额的资金存入银行,每 年年底从银行回收的钱等于系统每年预期可以获得的效益 ,在时间等于系统寿命时,正好把在银行中的存款全部取 完。这个假想的年利率就等于投资回收率。 ➢ P = F1/(1+j) + F2/(1+j)2 + … +Fn/(1+J)n ➢ 其中,P是现在的投资额;Fi是第i年年底的效益(i=1,2,…,n); n是系统的使用寿命,j是投资回收率