您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 总结/报告 > 软件工程__第3章_可行性分析与软件开发计划
第三讲可行性分析与软件开发计划衡水学院数学与计算机科学系李琳第3章可行性分析与软件开发计划3.1可行性研究的任务3.3可行性研究过程3.3系统流程图3.4成本/效益分析3.5小结2019/8/29当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为计划时期。问题的定义与可性行研究开始问题定义可性行研究可行否?项目实施计划终止项目的建议结束YN问题的定义与可性行研究计划时期的工作流程图Who为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题有用的软件3WWinCE1.0问题的定义与可性行研究项目来源合同:为别人做;立项:为自己做;失败:无盈利-》赔钱-》声誉影响-》官司失败:尽赔钱-》公司倒闭-》东山再起难!学到的远比失去的多!什么是可行性研究?任何工程项目均应进行可行性研究。软件工程项目可行性研究实质是一次大大压缩和简化了的分析和设计过程,主要在较高层次上以较抽象的方式进行,其目的是在尽可能短的时间内以最小的代价确定该项目是否能够开发,是否值得开发。3.1现状调查和问题的定义目的:弄清楚用户要求计算机解决什么问题任务:编写系统目标与规范说明书系统目标与规范说明书1、项目:教材销售系统2、问题:人工销售教材手续繁琐,容易出错3、项目目标:建立一个高效率、无差错的计算机教材销售系统4、项目范围:利用现有的计算机,软件开发费用不得超过2000元5、初步想法:建议在系统中增加对缺书的统计与采购功能6、可性行研究:建议进行大约10天的可性行研究,且研究费用不超过500元可行性研究目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。不是解决问题,而是确定问题是否值得去解决。说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。GB8567-88《计算机软件产品开发文件编制指南》3.1可行性研究的任务可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”GB8566-88《计算机软件开发规范》可行性研究的最根本任务对软件开发以后的行动方针提出建议。3.2可行性研究的内容(1)技术可行性:风险分析,资源分析,技术分析(3)经济可行性:费用估计,效益估计(3)操作可行性:用户使用可能性,时间进度可行性,组织和文化上的可行性(4)社会可行性(法律可行性)(5)抉择技术可行性度量一个特定技术信息系统解决方案的实用性及技术资源的可用性考虑的问题(1)开发风险分析(3)资源分析(3)相关技术的发展(现有技术能否实现新系统,技术难点、建议采用技术的先进性)经济可行性度量系统解决方案的性能价格比。考虑的问题成本/效益分析(开发、运行的成本/效益)有形成本、效益无形成本、效益价值和成本的关系质量与价值、成本的关系价值/成本的均衡举例盈亏平衡点操作可行性•用户使用可能性•时间进度可行性•组织和文化上的可行性3.3可行性研究过程1.复查系统规模和目标3.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查可行性研究的具体步骤1、确定项目规模和目标,明确限制和约束。我们认为用户要的用户要的?2、研究老系统解决老系统问题老系统功能新增功能注:注意了解与其它系统的接口。?新系统效益老系统效益可行性研究的具体步骤3、导出高层逻辑模型(conceptualdesign)…………抽象实现改进老系统模型新模型新系统应该告诉用户“What”而不是“How”可行性研究的具体步骤4、复查和重新定义1)复查定义2)导出逻辑模型3)从新定义。注:此时合同未签,应考虑成本,不宜反复太多次。可行性研究的具体步骤5、导出和评价多种解法目标:根据前面定义的系统逻辑模型,导出若干个较高层次的物理解法供选择考察角度①技术可行性:初步排除一些不现实的系统②操作可行性:分析员应该根据使用部门处理事务的原则和习惯检查技术上可行的那些方案。③经济可行性:开发成本和运行费用,并且估计相对于现有的系统而言这个系统可以节省的开支或可以增加的收入。在这些估计数字的基础上,对每个可能的系统进行成本/效益分析。为每个在技术、操作和经济等方面都可行的系统制定实现进度表,这个进度表不需要(也不可能)制定得很详细,通常只需要估计生命周期每个阶段的工作量。可行性研究的具体步骤5、导出和评价多种解法进度表经济上合算技术上可行操作上可行技术上不可行用户不可能操作不合算可行性研究的具体步骤6、推荐行动方针YesorNo?NoYesWhy?Whichoneisthebest?Why?(cost/benefit)8、审查、存档7、编写可行性报告(开发计划)任务分解,确定负责人大致进度规划财务预算风险分析及对策粗略可行性研究的具体步骤系统目标和范围的定义-要解决的根本问题、达到目标所需的资源和经费;对现行系统进行分析研究-现有系统的物理模型和逻辑模型;(入口:现有系统的组织结构)导出新系统的逻辑模型;(解决了有关问题)设计新系统的物理方案;(最先进的方案、实用、基本方案)推荐可行的方案;(包括推荐理由)编写可行性研究报告。(结论:继续、延期和拒绝)可行性研究的具体步骤草拟开发计划工程进度表开发人员资源估计系统生命周期每个阶段的成本给出需求分析的详细进度表和成本估计注意事项标书:我国对软件成本认识不足困难:就是缺乏数据估计,导致估计不科学;应根据项目复杂度、熟悉程度、规模等科学计划。尤其在时间计划上,要牢牢记住,人数与工作日不能简单互换。因为人员的增加与流动必然要增加培训、交流所占用的时间和资源,也就会影响项目的进度,所以计划时必须考虑。要留有缓冲时间,将缓冲时间用到不确定的事情上。可行性研究报告的编写1引言1.1编写目的1.2背景1.3定义1.4参考资料2可行性研究的前提2.1要求2.2目标2.3条件、假定和限制2.4进行可行性研究的方法2.5评价尺度可行性研究报告的编写3对现有系统的分析3.1数据流程和处理流程3.2工作负荷3.3费用开支3.4人员3.5设备3.6局限性4所建议的系统4.1对所建议系统的说明4.2数据流程和处理流程4.3改进之处4.4影响4.5局限性4.6技术条件方面的可行性可行性研究报告的编写5可选择的其它系统方案5.1可选择的其它系统15.2可选择的其它系统2......6投资及收益分析6.1支出6.2收益6.3收益/投资比6.4投资回收周期6.5敏感性分析7社会条件方面的可行性7.1法律方面的可行性7.2使用方面的可行性3.3系统流程图系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。不关心内部细节3.3系统流程图系统流程图:信息在各部件之间流动的情况;程序流程图:程序对信息进行加工的控制过程。基本符号--以概括的方式抽象地描绘一个实际系统所用符号系统符号---具体地描绘一个物理系统所用符号3.3系统流程图绘图工具:MicrosoftVisio1.某工厂的库存管理流程某装配厂有一个存放零件的仓库,仓库中现有许多种零件及零件的数量等项数据。其需要加工的数据是每当仓库中的零件数量发生变化时,就应该及时修改库存清单,如果那种零件的库存量少于它的库存临界值,则应该报告个采购部门以便定货,规定每天向采购部门送一次定货报告。该装配厂使用一台小型计算机处理更新库存清单库和产生定货报告的任务,请用系统流程图描述该过程。二.示例图3.3库存清单系统的系统流程图2.装配厂零件库存业务1)系统描述2)系统基本流程零件库存量的每一次变化称为一个事务。由放在仓库中的CRT的终端输入到计算机中。3)系统流程图信息流动方向:从上到下、从左到右;分层描述:从简单到详细;数据状态变化:一种数据必然通过至少一次处理转变为另一种数据/文件。2、成绩管理系统1)系统描述2)系统基本流程3)系统流程图练习人工销售教材某学校规定学生领取教材过程如下,请画出在此过程的系统流程图。1.每班推代表一人,填写集体购书单,申请购书。2.由各系教学秘书审购书单,去掉不属该班本学期使用的教材,并确认数量与学生人数,之后发给学生购书证明。3.再由教材科确认购书单中没有已经买过的教材后,为学生开购书发票并同时开领书单4.学生凭购书单到书库领书人工销售教材流程图结束学生申请购书购书证明检索教材帐本是否有该教材购书单开购书发票和购书单购书发票到书库领书练习计算机售书某学校使用计算机处理图书订购任务,具体流程如下,请画出在此过程的系统流程图。1.每班推代表一人,填写集体购书单,申请购书;2.由计算机终端审购书单,去掉不属该班本学期使用的教材,并确认数量与学生人数,之后发给学生购书证明;3.再由计算机确认购书单中没有已经买过的教材后,为学生开购书发票并同时开领书单;4.学生凭购书单到书库领书。计算机售书系统流程图结束学生购书发票到书库领书购书单终端审查并开发票11---学生各学期用书数据库购书单22---教材存量数据库2019/8/29练习请画出由下列文字描述的系统流程图设某城市招干考试成绩统计系统。考生分三个专业,不同专业考试科目不同:法律专业---考政治、语文、法律行政专业---考政治、语文、行政财经专业---考政治、语文、财经学每个考生在报名时登记姓名、地址、年龄和报考专业。报名后招干办公室根据专业考生专业及地址在市区或郊区来编排准考证号码和考场。考生参加考试后,输入每个考生的各门课程的成绩,并统计出每个考生三门课程的总成绩。按准考证号的顺序打印出考生考试成绩单,分发给每个考生。各专业分别将考生按成绩总分从高到低的次序排序,以便决定录取名单。软件开发计划是对开发项目的费用、时间、进度、人员组织、硬件设备的配置、软件开发环境和运行环境的配置等进行说明和规划。是项目管理人员对项目进行管理的依据,据此对项目的费用、进度和资源进行控制和管理。工具:ProjectMicrosoftProject(或MSP)是由微软开发销售的项目管理软件程序。软件设计目的在于协助项目经理发展计划、为任务分配资源、跟踪进度、管理预算和分析工作量。3.6成本/效益分析成本/效益分析的目的:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。3.6成本/效益分析一.成本估计软件开发成本主要是人力消耗。(乘以平均工资则得到开发费用)成本估计不是精确的科学。成本估计的三种方法代码行技术:代码行数×行平均成本任务分解技术:人力(人月)×月平均工资自动估计成本技术:软件工具取决于软件的复杂程度与工资水平代码行技术根据经验和历史数据估计实现一个功能需要的源程序行数,用每行代码的平均成本乘以行数就可以确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和工资水平。代码行技术是比较简单的定量估算方法。当有以往开发类似工程的历史数据可供参考时,这个方法是非常有效的。任务分解技术首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。自动估计成本技术采用自动估计成本的软件工具可
本文标题:软件工程__第3章_可行性分析与软件开发计划
链接地址:https://www.777doc.com/doc-614384 .html