2019/9/51软件工程软件工程刘迎春软件工程2019/9/52第二章项目计划问题定义可行性研究可行否?否是终止项目......计划时期开发时期主要内容2.1问题定义2.2可行性研究2.3系统流程图2019/9/532.1问题定义【目的】明确用户要计算机解决的问题是什么。【任务】确定问题的背景、待开发系统的目标和范围。【方式】⑴口头形式了解用户的要求;⑵阅读用户提供的相关资料;⑶形成调查提纲,要求用户填写。【成果】《软件开发任务书》系统分析员要抓住问题的本质2019/9/542.1问题定义《软件开发任务书》内容:⑴项目名称⑵开发背景⑶项目目标用户对新系统的主要目标;⑷项目范围功能、性能、输入/输出;与本系统相连的其他系统;费用,时间……⑸初步想法在用户提出的需求的基础上,分析人员考虑可以实现的其他功能⑹提出可行性研究的计划人力与设备费用的减少;处理速度的提高;控制精度或生产能力的提高;管理信息服务的改进;自动决策系统的改进;人员利用率的改进。2019/9/552.1问题定义【例1】教材科开发一个教材销售系统。⑴项目名称:教材销售系统⑵开发背景:人工发售教材手续繁琐,且易出错。⑶项目目标:建立一个高效率、无差错的微机教材销售系统。⑷项目范围利用现有PC软件开发费用不超过......,完成时间……⑸初步想法:建议在系统中增加采购功能、对缺书的统计……⑹提出可行性研究的计划建议进行大约2天的可行性研究是否需要购置服务器?单机?C/S?B/S?2019/9/562.1问题定义【例2】开发一个传送带分类系统的软件(CLSS)问题描述:16ID121ID110ID111ID1002345传送带移动方向(2米/秒)条形码分类站分流器2019/9/572.1问题定义【例2】开发一个传送带分类系统的软件(CLSS)⑷项目范围——软件功能⒈读取条形码输入CLSS软件以和传送带速度一致的时间间隔接受来自条形码阅读器的信息。⒉解码零件数据条形码数据被解码成盒子的标识格式。⒊检索数据库软件可在最多可容纳1000个条目的零件号数据库中进行检索,以确定当前在分类站位置的盒子应该放到哪个箱子中。2019/9/582.1问题定义【例2】开发一个传送带分类系统的软件(CLSS)⑷项目范围——软件功能⒈读取条形码输入⒉解码零件数据⒊检索数据库⒋确定合适的箱子箱子的信息被送到分流器,以把盒子放进合适的箱子中。⒌维护盒子目的地的记录每一个盒子所放进的箱子的记录均被保存起来一供以后提取及报告。2019/9/592.1问题定义【例2】开发一个传送带分类系统的软件(CLSS)⑷项目范围——软件性能每个盒子的处理必须在下一个盒子到达条形码阅读器之前完成。前提:传送带的速度=2m/s,且盒子等间距连接零件号数据库的网络必须畅通⑷项目范围——外部接口⒈运行软件的设备、由软件控制的设备PC、条形码阅读器、分流器⒉已存在、且必须与新软件连接的软件销售软件和分类软件配合,制作已经发货的列表⒊通过键盘或其他I/O设备使用软件的人2019/9/5102.2可行性研究一个项目并非一定可行足够了,别再研究了,开始吧!失败!?几年后......2019/9/5112.2可行性研究遇到挑战(完成了,但超时或超支)成功失败28%46%26%基于23,000多个项目统计一个项目并非一定可行2019/9/5122.2可行性研究【目的】在最短的时间内,花费最小的代价,确定定义的项目是不是可能实现和值得开发。【任务】⒈经济可行性⒉技术可行性⒊运行可行性⒋法律可行性可能实现值得开发2019/9/5132.2可行性研究⒈经济可行性【任务】市场需求;市场盈利模式,多长时间可以回收成本?评估项目的开发成本;项目成功后,用户能得到什么好处?【方法】①费用估计②效益估计③成本效益分析产品软件项目软件2019/9/5142.2可行性研究⒈经济可行性——【①费用估计】⑴设备计算机硬件、空调、电源、机房及其它设施;系统软件,DBMS,各种应用软件(包括软件包)的估算;⑵人力管理人员、研制人员、数据录人员、维护人员的工资、奖金以及他们的培训费用;差旅费用。⑶日常开销水、电、打印纸等易耗物品及设备的维修费用。⑷评审费用2019/9/5152.2可行性研究⒈经济可行性——【①费用估计】软件开发价格=开发工作量×开发费用/人·月开发工作量=A×σ×τ估算工作量经验值A人·月风险系数σ:1-1.5软件企业对项目的业务领域不熟悉或不太熟悉用户又无法或不能完整明白地表达他们真实的需求,从而造成软件企业需要不断地完善需求获取,修改设计等各项工作复用系数τ:0.25-1软件企业建立起能够复用的构件库(核心资产库);已有一些软件产品,仅作二次开发;从而使软件开发工作量减少;2019/9/5162.2可行性研究⒈经济可行性——【①费用估计】软件开发价格=开发工作量×开发费用/人·月开发费用/人·月=(P+Q+R)×S×TP(人头费)员工工资、奖金和国家规定的各项按人计算的费用国家规定的公积金7%,医疗保险金12%,养老金22%,失业金2%工伤保证金0.5%,生育保证金0.5%,残疾基金1.6%,工会基金2%P=B×1.476B:平均工资2019/9/5172.2可行性研究⒈经济可行性——【①费用估计】软件开发价格=开发工作量×开发费用/人·月B:平均工资开发费用/人·月=(P+Q+R)×S×TQ(办公费)办公房屋租赁费和物业管理费、通信费、办公消耗品、水电空调费、设备折旧、差旅费;企业对员工的在职培训所支付的费用Q=B/3R(国家税收和企业利润)国家实施发展软件产业的优惠政策R=B/32019/9/5182.2可行性研究⒈经济可行性——【①费用估计】软件开发价格=开发工作量×开发费用/人·月B:平均工资发费用/人·月=(P+Q+R)×S×TS(管理系数)按每十个软件人员配备两个管理人员即管理成本1≤S≤1.2T(优质系数)提高软件质量,必然有所开支,即质量成本ISO9000质量体系认证、CMMI的认证来确定取值1.05、1.1、1.15、1.2可行性研究⒈经济可行性——【②效益估计】⑴新软件提供哪些以前不能做或难以做到的工作;提供信息的速度、精度、质量有什么提高;⑵使用新系统增加的收入、节省的运行费。如:本系统可以高速、准确地处理和提供管理工作所需的各类统计报表和分析报告,避免工作过程中可能出现的文件丢失、计算失误、文件流程多、审阅慢、报表报告格式不规整、存档管理复杂等情况......可以减轻基层工作人员大量繁琐的书写、计算工作,节约管理成本,提供有关工程的准确全面细致的决策信息,促使管理人员决策科学化,管理水平上新台阶.....估计每年可以节省管理费用…万元......2019/9/5202.2可行性研究⒈经济可行性——【③成本效益分析】资金的时间价值计算公式:F=P×(1+i)N其中:F:投资的将来值;P:投资的现在值;i:利率;N:年数;把5000元存入银行3年(利率0.12),3年后的价值为F=5000(1+0.12)3=7024.64要在3年底获得5000元的收入,现在要投资为P=F/(1+i)N=5000/(1+0.12)3=3558.902019/9/5212.2可行性研究⒈经济可行性——【③成本效益分析】【例3】某系统投入使用后,5年内每年节约人民币1000元,其投资3000元,试计算其效益。[年利率12%]年效益利率当前值累计当前值110001.12892.86892.86210001.25800.001692.86310001.40714.292407.15410001.57636.943044.09510001.76568.183612.27投资回收率=(3612.27-3000)/3000=20%2019/9/5222.2可行性研究⒉技术可行性【任务】根据客户提出的系统功能、性能及实现系统的各约束条件,从技术角度研究实现系统的可行性。【方法】①资源分析⒈管理人员和各类专业技术人员;⒉是否具备必需的软件、硬件资源和工作环境等。⒊开发人员是否对术语、缩写、开发模式有一致的理解;⒋人员是否进行了必要的培训;②技术分析现有的技术能否实现这一新系统?有哪些技术难点?建议采用的技术先进程度怎样?2019/9/5232.2可行性研究⒊运行可行性新系统的运行方式用户可以接受吗?体制的改变;人员的变动;......2019/9/5242.2可行性研究⒋法律可行性确定由于开发软件项目是否会侵犯他人、集体或国家的利益,是否会违反国家的法律。法律方面的问题类型多样:1、操作系统、开发工具侵犯版权2、软件所使用的技术侵犯技术专利3、造成生产安全问题典型软件:灰鸽子、熊猫烧香;ATM软件造成银行客户损失;08年4月4日,美国圣地亚哥地区法院陪审团做出一项裁决,命令微软因侵犯两项技术专利向阿尔卡特-朗讯支付3.674亿美元损失费。微软表示要对这个裁决提出上诉。1、微软平板电脑操作系统中的手写识别技术侵犯了阿尔卡特-朗讯的字体识别技术专利;2、微软的Outlook电子邮件程序和WindowsMobile操作系统软件等一些软件在用户从菜单中选择日历日期方面也侵犯了阿尔卡特-朗讯的技术专利。2019/9/5252.2可行性研究【目的】在最短的时间内,花费最小的代价,确定定义的项目是不是可能实现和值得开发。【任务】⒈经济可行性⒉技术可行性⒊运行可行性⒋法律可行性【名词解释】当前系统——用户正在使用的系统;目标系统——最终实现的系统;【工具】系统流程图2019/9/5262.2可行性研究【步骤】⑴复查问题定义⑵建立当前系统的系统流程图⑶设想目标系统的系统流程图问题定义⑷导出几种方案,进行可行性论证解决方案1......解决方案n可行性研究报告项目计划⒈经济可行性⒉技术可行性⒊运行可行性⒋法律可行性2019/9/5272.3系统流程图处理连接线文档磁盘人工输入人工操作磁带终端、PC判断2019/9/5282.3系统流程图【作用】描述系统物理模型【基本思想】图形符号以黑盒子的形式描绘系统里面的每个部件2019/9/5292.3系统流程图【例4】教材销售系统。售书过程:学生找系办公室的张秘书开一个购书单;凭购书单找教材科的王会计开购书发票;向李出纳员交书费开领书单;学生拿着领书单到书库找赵保管员领书。2019/9/5302.3系统流程图【作用】表达信息在系统各部件之间的流动情况。【基本思想】图形符号以黑盒子的形式描绘系统里面的每个部件如:钱、书、成绩单、发票…….收款、发放教材(人工处理)……程序、数据库……【注意】系统流程图不是对信息进行加工处理的控制过程。2019/9/5312.3系统流程图【例4】教材销售系统。售书过程:学生找系办公室的张秘书开一个购书单;凭购书单找教材科的王会计开购书发票;向李出纳员交书费开领书单;学生拿着领书单到书库找赵保管员领书。开购书证明购书单开购书发票发票收书费领书单发书当前系统流程图书2019/9/5322.3系统流程图【例4】教材销售系统。目标系统流程图购书单输入购书单审查并开发票各班学生用书表教材存量表发票收书费领书单开领书单售出登记发票收讫2019/9/5332.3系统流程图【小结】1、每个符号用黑盒子的形式定义了组成系统的每一个部件。没有指明每个部件的具体工作过程。2、系统流程图表达的是信息在系统各部件之间的流动情况,不是对信息进行