




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章软件计划与可行性研究 有这样一个笑话 一个旅客走进硅谷的一家宠物店 浏览展示的宠物 这时 走进一个顾客 对店主说 我要买一只C猴 店主点了点头 走到商店一头的兽笼边 抓出一只猴 递给顾客说 总共5000美元 顾客付完款 然后带走了他的猴子 这位旅客非常惊讶 走到店主跟前说 那只猴子也太贵了 店主说 那只猴子能用C编程 非常快 代码紧凑高效 所以值那么多钱 这时 旅客看到了笼子中的另一只猴子 它标价10000美元 于是又问 那只更贵了 它能做什么 店主回答 哦 那是一只C 猴 它会面向对象的编程 会用VisualC 还懂得一点Java 是非常有用的 旅客又逛了一会儿 发现了第三只猴子 它独占一个笼子 脖子上的标价是50000美元 旅客倒抽一口气 问道 那只猴子比其他所有猴子加起来都贵 它究竟能做什么 店主说 我们也不知道它究竟能做什么 不过它是做项目顾问出身的 第二章软件计划与可行性研究 在组织管理工作中 为了掌握工作的主动权 人们针对不同的工作目的要制定不同的工作计划 同样 为了成功的开发软件 也要制定软件开发计划 经验告诉我们 在项目开始以前 要精确地估计软件的工作量是很困难的 一些大型软件项目在总结经验教训时 常常提到计划不周造成的不良影响 例如 对项目所需投入的人力 资金 设备作出错误的估计 而在工程期限临近时不得不仓促增加 造成系统的一致性差或培训费用的增加 甚至在完工后才发现系统功能上存在着重大问题 软件计划中的错误可能导致软件开发后期问题的急剧膨胀 因此 要对软件项目有一个初步计划 对要解决的主要问题有相应的对策 是软件开发工作必不可少的一步 第一节软件计划与系统目标的描述 1 软件计划作为软件开发阶段的第一步 就是要明确软件项目的性质 目标 开发软件涉及的工作范围 所需资源 经费和应完成的时间进度等内容 以此来制定软件项目的开发计划 即首先经过系统目标的描述 进行可行性研究 然后进入项目的实施开发阶段 1 1软件计划的任务 软件计划阶段有以下任务 1 确定要开发软件的总体要求与适用范围 2 描述所开发的软件与外部资源 人员操作与数据的工作关系 3 确定所需的软硬件支持 4 对开发的进度 风险 效益与成本作初步估计 5 进行系统的可行性分析 6 确定所开发软件的性能 与原有软硬件的关系及其它关系 7 列出资源的初步分配计划和系统构成 以上各项常常要考虑多种可能的方案 并从中进行权衡与选择 1 2软件计划的内容 软件计划确定软件开发的工作范围 使用的资源 花费的工作量以及应遵循的进度 软件计划以可行性研究报告为基础 由软件人员和用户共同确立软件的功能与限制 提出软件计划任务书 它是一份简洁的文档资料 是用管理人员 技术人员 用户都能理解的术语来描述的 典型的软件计划任务书应包括如下四个方面 1 2软件计划的内容 软件范围 包括软件的功能 性能 可靠性和与其它系统的接口等问题的描述 功能说明给出整个软件的功能的简短描述 在可能的情况下作进一步分解 提供更多的子功能描述 性能描述包括处理时间的限制 存储容量及与物理特性相关的特点描述 对功能和性能要同时考虑才能做出正确的估计 不同的性质的软件对可靠性有不同的要求 有些要求采取特殊的技术措施才可能实现 软件要与计算机系统的其他部分进行交互作用 有可能是更大系统的一部分 软件计划应该考虑每一接口界面的性质和复杂程度 确定对开发资源 成本及进度表的影响 1 2软件计划的内容 环境资源 包括软件 硬件和人 每种资源均应从资源的描述 对资源的要求的日程 时间 以及使用资源的持续时间三方面来说明 硬件资源包括开发系统 目标机器和新系统的其他部件 软件资源包括系统软件 支撑软件工具和实用软件 系统软件是必不可少的 支撑软件工具在软件开发中起辅助作用 实用软件有时可成为新软件系统的一部分 人是主要的软件开发资源 对于相当小的软件项目 一个人就可以完成 而对于大型软件工程项目 在软件的整个生命周期中 人员的组成情况是变动的 一个典型的软件项目 在软件生命周期的开发阶段对各类人员有不同的要求 如图2 1所示 软件生命期各个阶段人员分配 1 2软件计划的内容 制定进度表 软件交付日期常常预先确定 关键是软件开发组织如何在指定的期限内分配资源和力量 分析员要协调可用资源与项目的工作量 考虑各项任务之间的相互依赖 在可能的情况下并行地安排工作 预见潜在的瓶口问题 提供意外事故的处理等 复审也要作为一个实施任务考虑在计划内 1 2软件计划的内容 软件成本 现在软件价格已是构成计算机系统价格的重要组成部分 开发软件的价格不可能精确计算 许多可变的因素都可能影响软件的最终价格 我们可以采取一些方法 使得软件价格的估算结果基本上是可以接受的 如 源程序代码行估算法 任务工作量分解法 模型分析法等 软件成本估算方法 源程序代码行估算法是比较简单的估算方法 它把开发软件的每个功能的成本与实现这个功能所需的源程序代码行联系起来 根据经验和历史数据去估计一个功能需要的源程序行数 将每行代码的平均成本乘以行数就可以确定软件的成本 每行代码的平均成本主要取决于软件的复杂程度和平均工资水平 当以往有开发类似工程的历史数据可供参考时 这种方法非常有效 软件成本估算方法 任务工作量分解法是将开发的软件项目分解为若干个相对独立的任务 可将软件项目分解为若干个子系统 再将子系统按开发阶段划分成更小的任务 分别估计单独开发每个任务的成本 最后累加起来得到软件开发项目的总成本 估计每个任务的成本时 通常先估计完成该项任务所需的人力时间 以人月为单位 再乘以每人每月的平均工资而得出每个任务的成本 最终得到整个系统的成本 软件成本估算方法 模型分析法是以长期收集的大量历史数据为基础 建立各种性质的开发软件的成本估算模型和提供相应的数据库支持 利用软件计算工具输入相关的估算参数 估算软件的开发成本 这种自动估计软件成本的方法可以减轻脑力劳动 使估计的结果更加客观 但并不容易得到准确的软件成本估算模型 2 系统目标描述与步骤 2 1系统目标描述 进行系统目标的描述 就是描述项目的背景 了解开发系统的现状 开发的理由与条件 存在的主要问题 要解决的主要问题 确定开发系统的要求与总体目标 总体规模 实现目标的初步方案 环境要求 写出系统目标与问题的描述报告 供可行性分析使用 应该请应用项目的用户负责人 用户方的技术人员与开发项目的系统分析员 甚至软 硬件技术专家一道 共同讨论与项目有关的问题 用户根据实际工作的情况 提出希望解决的主要问题 并以项目任务书的形式对问题的性质 目标和规模进行描述 例如 某企业提出开发一套仓库管理系统的要求 经过系统分析员与企业技术人员的调查 写出初步的系统目标的描述 说明系统的目标范围和开发限制的时间 1 项目 仓库管理系统 2 背景 人工管理效率低 物品种类繁多 易出差错 3 项目目标 建立一个高效率 无差错的仓库管理系统 4 项目范围 硬件利用现有微机系统 软件委托开发 费用 5000元 5 初步设想 建议增加缺货统计报告与库存月报功能 并可随时查询 6 可行性研究 建议进行一周分析 费用 450元 一般为5 10 7 项目开发时间 四个月内完成 1 2系统目标描述的工作步骤 进行系统目标的描述 初步定义 的工作步骤如下 1 了解项目中实际问题的建议和要求 2 了解现场状况 调查开发项目的原因与背景 3 查阅用户的书面报告 用较短的时间加工整理 4 反复讨论 澄清对有关问题的模糊认识 确定软硬件功能的范围 5 写出实现目标的系统描述文档 6 进一步确定双方是否可进行深入的的可行性研究意向 第二节可行性研究 可行性研究的重要内容是以尽量少的投入 在最短的时间内 对将要开发的系统进行技术可行性 经济可行性 社会 法律 可行性 人员 操作 资源的可行性研究 并得出项目是否现实可行和值得开发的结论 如果可行 确定实施方案和计划 否则 可能取消一个所建议的不合适的项目 1 可行性研究的目的 一般的项目开发 都要进行可行性研究 可行性研究的目的不是研究如何解决问题 而是确定问题是否能够解决和是否值得解决 如果软件项目不值得开发 则终止进行 不值得开发的项目 做任何时间上 人力上 经费上的开发活动都是无谓的浪费 有些项目值得开发是不言而喻的 有些项目需要经过可行性论证才能知道是否值得开发 如果仅仅根据系统目标的初步描述就开始寻找项目的承包单位去签定合同 这是很冒险的 因为并不是所有问题都能在规定的时间和经费内得到解决 中途终止项目的开发 对于双方都是很大的损失 因此 进行可行性分析研究是不可忽视的 2 可行性研究的内容 1 项目背景 问题描述 实现环境 限制条件 2 管理概要与劝告 重要的研究结果 说明 劝告 影响 3 候选方案 候选系统的配置 选择最终方案的准则 4 系统描述 简略的系统范围的描述 分配系统元素的可行性 5 经济可行性 成本 效益分析 经费概算 预期的经济效益 运行成本 6 技术可行性 技术风险评价评价 技术实力 已有工作基础 设备条件 7 法律可行性 系统开发应避免侵权 违法和责任 8 用户使用可行性 用户单位的行政管理 工作制度 使用人员素质 9 其他与项目有关的问题 未来可能的变化 3 可行性研究的主要方面 可行性研究与风险分析密切相关 如果项目的风险很大 就会降低产生高质量软件的可行性 因此 可行性研究主要集中于与风险相关的因素上 体现在以下四个方面 经济 社会效益可行性 技术可行性 法律可行性 用户操作可行性 技术可行性常常最难决断 因为系统的目标 功能 性能比较模糊 一般与系统评估 分析和定义过程并行进行 应考虑如下因素 开发的风险 资源的有效性 技术方面 4 可行性研究的步骤 可行性研究典型的研究步骤如下 复查系统规模和目标研究目前正在使用的系统导出新系统的高层逻辑模型重新定义系统的问题和目标导出和评价供选择的多个高层解决方案做出可行性研究判断草拟开发计划书写文档 提交检查 第三节成本 效益分析 一般来说 人们投资于一项事业的目的是为了在将来获得更大的好处 开发一个新系统也是一种投资 期望将来获得更大的经济效益 经济效益通常表现为减少运行费用或增加收入 但是 投资开发新系统往往要冒一定风险 系统的开发成本有可能比预计的高 运行效益有可能比预计的差 那么 在什么情况下投资开发新系统更划算 成本 效益分析的目的正是从经济的角度分析开发一个特定的新系统是否划算 是否值得投资 是可行性分析中的经济可行性分析的重要组成部分 1 成本估计 一般来说 基于计算机系统的成本由四个部分组成 1 购置并安装软硬件及有关设备的费用2 系统开发费用3 系统安装 运行和维护费用4 人员培训费用对于我们来讲 最关心的是第二项 开发费用 软件开发成本主要表现为人力的消耗 乘以平均工资则得到开发费用 但是人力又分等级 工作也难于准确衡量 因此 成本估算一般不是很准确 只是粗略估算 1 成本估计 一 成本估计有两种基本的估算方法 estimation 自顶向下和自底向上 1 自顶向下成本估计估计总的开发成本 内部成本分配 专家判断缺点 对于某些局部的问题和特殊困难容易低估 全凭经验来衡量 否则 误差很大 2 自底向上成本估计各个任务单元成本 汇总 总体成本缺点 工作人员只注意自己的工作 容易忽视对综合测试 质量管理 项目管理等花费 因此估计量偏低 3 算法模型估计算法模型就是资源模型 由于资源模型是根据历史数据导出的 故可重复性好 关键在于选择好的模型 二 费用估计 1 代码行技术代码行技术是比较简单的定量估算方法 也是一种自底向上的估算方法 它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来 通常根据经验和历史数据估计实现一个功能需要的源程序行数 一旦估计出源代码行数以后 用每行代码的平均成本乘以行数即可确定软件的成本 每行代码的平均成本主要取决于软件的复杂程度和开发小组的工资水平 一般计算办法软件成本 代码行数 每行代码平均成本每行代码平均成本取决于软件复杂程度和工资水平代码行数取决于工作的历史与经验 二 费用估计 1 代码行技术大致分如下两步 a 对要求设计的系统进行功能分解 直到可以对为实现该功能所要求的源代码行数做出可靠的估算为止 根据经验和历史数据 对每个功能块估计一个最有利的 最可能的和最不利的值 设最有利的值为a 最可能的值为m 最不利的值为b 则代码行的期望 平均 值lc和对期望值偏离的方差ld为 二 费用估计 1 代码行技术b 再根据历史数据和经验 选择每个软件功能块的价格 计算每个功能块的价格及工作量 并确定该软件项目总的估算价格和工作量 举例 CAD软件 项目范围确定了其主要功能 用户接口控制 UIC 二维几何图形分析 2DGA 三维几何图形分析 3DGA 数据结构管理 DSM 图形显示 CGD 外围设备控制 PC 设计分析 DA 二 费用估计 1 代码行技术 二 费用估计 1 代码行技术 人月 期望值 行 人月 价格 行 期望值 可以看出 开发估算的范围 考察前三列数据 估算者完全确信外围设备控制 PC 功能块所要求的 因为它最有利的和最不利的估算只差450 另外 对于三维几何图形分析这个功能块 是比较心中无数的 差了4000 二 费用估计 2 任务分解技术首先把软件开发工程分解为若干个相对独立的任务 再分别估计每个单独的开发任务的成本 最后累加起来就得出软件开发工程的总成本 估计每个任务的成本时 通常先估计完成该项任务需要用的人力 以人月为单位 再乘以每人每月的平均工资而得出每个任务的成本 最常用的方法是按开发阶段划分任务 如果软件系统很复杂 由若干个子系统组成 则可以把每个子系统再按开发阶段进一步划分为更小的任务 软件成本 各个相对独立的功能模块的开发成本之和每个模块的开发成本 开发人力 平均工资 二 费用估计 2 任务分解技术 二 费用估计 2 任务分解技术1 确定任务 每个功能都必须经过需求分析 设计 编码和测试工作 2 确定每项任务的工作量 对每项任务要估算它们所需要的人月数 3 找出与各项任务的对应的劳务费数据 即每个单位工作量成本 元 人月 因为各阶段的劳务费用不同 需求分析和概要设计阶段需要较多的高级技术人员 而详细设计 编码和早期测试则要求较多的初级技术人员 而他们的工资是不同的 4 计算 计算各个工作各个阶段的成本和工作量 然后计算总成本和总工作量 5 分析比较 在整个开发工作量中 需求分析和设计用去了75人月 约占全部任务工作量的50 说明了这项工作的重要性 劳务费反映了劳动者的成本 其中包括管理费 需求分析的劳务费 5200元 人月 比设计 编码和测试都高 这也说明了这项工作的重要性 二 费用估计 2 任务分解技术用这种方法估算 CAD软件成本和工作量总计为708075元和152 5人月 将这些数据与代码行的成本估算比较 分别为656680元和144 5人月 前者相差7 后者相差5 结果非常接近 可以接受 若相差较大 应该分析原因 很多情况下是由于估算人员对任务没有完全理解或有误解 或使用的劳务费数据不够恰当 计划人员必须找出原因后再重新估算 结果应基本一致 典型环境下各个开发阶段需要使用的人力的百分比 3 自动估计成本技术采用自动估计成本的软件工具可以减轻人的劳动 并且使得估计的结果更客观 但是 采用这种技术必须有长期收集的大量历史数据为基础 并且需要有良好的数据库系统支持 2 成本 效益分析的方法 成本 效益分析的第一步是估计开发成本 运行费用和新系统将带来的经济效益 前面已经介绍了几种成本的估算方法 说到效益 因为涉及到回收时间的限制 不可能说花几百年的时间收回软件开发的成本 我们规定以后软件的正常生命期默认为5年 同时 我们投资是现在的钱 效益时间来的钱 我们不能将其直接比较 还必须考虑货币的时间价值 1 货币的时间价值 通常用利率的形式表示货币的时间价值 假定年利率为i 如果现在存入P元 则n年后可以得到的钱数为 这也就是P元钱在n年后的价值 反之 如果n年后能收入F元钱 那么这些钱的现在价值是 例如 修改一个已有的库存清单系统 使它能在每天送给采购员一份定货报表 修改已有的库存清单程序并且编写产生报表的程序 估计共需5000元 系统修改后能及时定货将消除零件短缺问题 估计因此每年可以节省2500元 五年共可节省12500元 但是 不能简单地把5000元和12500元相比较 因为前者是现在投资的钱 后者是若干年以后节省的钱 假定年利率为12 利用上面计算货币现在价值的公式可以算出修改库存清单系统后每年预计节省的钱的现在价值 如表所示 2 投资回收期 通常用投资回收期衡量一项开发工程的价值 所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间 显然 投资回收期越短就能越快获得利润 因此这项工程也就越值得投资 例如 修改库存清单系统两年以后可以节省4225 12元 比最初的投资 5000元 还少774 88元 第三年以后将再节省1779 45元 774 88 1779 45 0 44 因此 投资回收期是2 44年 投资回收期仅仅是一项经济指标 为了衡量一项开发工程的价值 还应该考虑其他经济指标 3 纯收入 衡量工程价值的另一项经济指标是工程的纯收入 也就是在整个生命周期之内系统的累计经济效益 折合成现在值 与投资之差 这相当于比较投资开发一个软件系统和把钱存在银行中 或贷给其他企业 这两种方案的优劣 如果纯收入为零 则工程的预期效益和在银行存款一样 但是开发一个系统要冒风险 因此从经济观点看这项工程可能是不值得投资的 如果纯收入小于零 那么这项工程显然不值得投资 例如 上述修改库存清单系统 工程的纯收入预计是9011 94 5000 4011 94 元 4 投资回收率 把资金存入银行或贷给其他企业能够获得利息 通常用年利率衡量利息多少 类似地也可以计算投资回收率 用它衡量投资效益的大小 并且可以把它和年利率相比较 在衡量工程的经济效益时 它是最重要的参考数据 已知现在的投资额 并且已经估计出将来每年可以获得的经济效益 那么 给定软件的使用寿命之后 怎样计算投资回收率呢 设想把数量等于投资额的资金存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省2025中国科大先研院招聘若干人笔试历年参考题库附带答案详解
- 大庆市2025黑龙江大庆市机关事务服务中心所属事业单位选调工作人员10人笔试历年参考题库附带答案详解
- 研发中心租赁合同转让与知识产权保护协议范本
- 私人宅基地房屋租赁及乡村文化传承发展合同
- 离婚子女抚养权变更及赡养费调整补充协议
- 私有商铺买卖合同含租赁权归属及转租条件约定
- 行政审批行政合同中的程序正义与权利保护
- 专业汽车美容店租赁合同(含品牌使用权)
- 行政合同在环境保护领域的实践与法律问题探讨
- 离婚协议书起草与离婚程序法律咨询合同
- 痛风性关节炎鉴别
- 《老年冠心病慢病管理指南(2024版)》解读
- 会计信息系统应用 课件 项目三 总账管理系统
- 2025年河北大学版(2024)小学信息科技三年级(全一册)教学设计(附目录 P179)
- 2025至2030全球及中国工业I和和O模块行业发展趋势分析与未来投资战略咨询研究报告
- 过敏性紫癜的护理
- 瑶族少数民族文化介绍
- 团队士气提升培训课件
- 自来水厂药品管理制度
- 瑞幸咖啡公司员工管理制度
- 2025至2030年中国电动场地车行业竞争战略分析及市场需求预测报告
评论
0/150
提交评论