您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 总结/报告 > 软件工程--第3章-问题定义与可行性研究
2020/3/11Chapter3ProblemdefinitionandFeasibilitystudies问题定义与可行性研究2020/3/12如何防止热气球超重坠毁在一个充气不足的热气球上,载着3位科学家:环保专家可拯救世人不受环境污染而面临死亡;核子专家有能力防止全球性核子战争,使地球免于灭亡;粮食专家能在不毛之地种植食物,使几千万人脱离饥荒。热气球即将坠毁,必须丢出一人以减轻载重,使其余两人得以活存,请问该丢下哪位科学家?问题见报后,很多热心读者回复报社,答案多在讨论哪位科学家比较重要,争吵不休。最后结果出来了,答对的居然是一位小男孩,他的答案再简单不过——丢下那个最胖的人!2020/3/13题目问的是“如何防止热气球超重坠毁”,所以答案自然是“减重活命”;至于“谁对人类贡献比较大”,根本与问题无关。这只是个趣味益智问答,但是从人们思考解答的过程即可看出,多数人之所以做错决策,主因就在于对问题辨识不清和界定错误。而当方向与目标设定错误,就算接下来的活动执行得再完美,也不过是徒劳。2020/3/14Who为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题有用的软件3W2020/3/15问题定义TheimportanceoftheproblemdefinitionProblemDescriptionThetaskdefinitionoftheproblem实例:电子储蓄系统营业员将储户填写的存款单或取款单键入系统,如果是存款,系统记录存款人的姓名、地址、存款类型、存款日期、利率等信息,并打印出存款单给用户;如果是取款,系统计算利息并打印利息清单给用户。2020/3/16问题描述请比较下面的两句话:(1)“若采取信用贷款方式,销售员就将顾客信用编号及总金额交给信用部门的信用审核人员。”(2)“若顾客采取信用贷款方式,销售员就请求信用部门的审核人员查核顾客的信用,此时审核人员会向销售员取得顾客信用编号和销货总金额。”用自然的语言去描述你的问题,这是写出好的软件的第一步。2020/3/17Feasibilitystudies目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。确定能否解决问题,同时确定问题是否值得去解决。2020/3/18Feasibilitystudies前提假设问题定义已经清晰。并不是所有问题都有解法,因此对于无解(无解决的价值,或者在目前不能解决)的问题则不应该投入时间,人力和经费。目标用最小的代价在尽可能短的时间内确定问题是否可解,或者确定问题是否值得去解。2020/3/19FeasibilitystudiesAfeasibilityisashort,focusedstudythataimstoansweranumberofquestions:Doesthesystemcontributetotheoverallobjectivesoftheorganization.CanthesystembeimplementedusingcurrenttechnologyAndwithingivencostandscheduleconstrains.Canthesystembeintegratedwithothersystemswhicharealreadyinplace?aimtodeterminewhethertheproblemissolvable,orwhetheritisworthwhiletosolve.2020/3/110TaskInsteadofsolvingproblems,Justdetermineswhethertheproblemissolvable/worthwhiletosolve.Fouraspects:TechnicalfeasibilityEconomicfeasibilityOperatingfeasibilitySocialfeasibility510%intotalcost2020/3/111Workflow1、checkdefinitionWhatwethinkuserwant=userwant2、researcholdsystemresolveproblemsofoldsystemBenefitofnewsystemoldsystem?老系统功能新增功能2020/3/112WorkflowJustunderstandwhatthefunctionofoldsystem.Donotspendtoomuchtimeonit.Payattentiontotheinterfaceswithothersystems.2020/3/113Workflow3、导出高层逻辑模型(conceptualdesign)报告应该告诉用户“What”而不是“How”Itiswritteninthecustomer’slanguageItcontainsnotechnicaljargonItdescribesthefunctionsofthesystemItisindependentofimplementationItislinkedtotherequirementsdocuments…………抽象实现改进老系统物理模型模型逻辑模型新模型逻辑模型新系统物理模型2020/3/114可行性研究的步骤分析员应和用户一起再次复查问题定义、工程规模和目标前四个步骤构成一个循环。注:此时合同未签,应考虑成本,不宜反复太多次。4、重新定义1、复查定义3、逻辑模型2020/3/115FeasibilityStudysteps5.Findsomepossiblesolutions.Analyzeitfromtechnicalfeasibilityeconomicfeasibilityandoperatingfeasibility.进度表经济上合算技术上可行操作上可行技术上不可行用户不可能操作不合算2020/3/116FeasibilityStudysteps6、RecommendadevelopmentplanYesorNo?NoYesWhy?Whichoneisthebest?Why?(cost/benefit)什么都不做永远是一个值得考虑的方案综合评估:目的是最后确定是否实施该项目;因此我们要将这些评估加以综合考虑;如何综合考虑?2020/3/117FeasibilityStudysteps7、DraftDevelopmentPlan(Rough)草拟开发计划(粗略)任务分解,确定负责人大致进度规划财务预算风险分析及对策8、编写可行性研究报告、审查、存档2020/3/118TechnicalfeasibilityConstraintsRequirement需求制约Resources资源制约Environment环境制约principlesEconomy经济性原则Development发展原则Compatibility兼容性原则Relevantresults相关效果原则ChoicePerspectiveTechnicallevel技术先进性Technicalapplicability技术适用性技术可行性分析可以简单地表述为:做得了吗?做得好吗?做得快吗?2020/3/119TechnicalfeasibilityCanwebuildthesystemwithcurrenttechnology?IssuestobeconsideredRiskanalysis开发风险分析ResourceAnalysis资源分析Thedevelopmentofrelatedtechnologies相关技术的发展2020/3/120DataFlowDiagramData-flowmodelsareanintuitivewayofhowdataisprocessedbyasystem.Data-flowmodelsareusedtoshowhowdataflowsthroughasequenceofprocessingsteps.2020/3/121Economicfeasibility度量系统解决方案的性能价格比。考虑的问题成本/效益分析有形成本、效益无形成本、效益价值和成本的关系质量与价值、成本的关系价值/成本的均衡2020/3/122经济可行性考虑的问题成本和效益的估算开发成本的估算开发效益的估算运行成本的估算运行效益的估算2020/3/123Economicfeasibility1.货币的时间价值:货币的时间价值是指同样数量的货币随时间的不同具有不同的价值。货币的时间价值一般用利率形式表示,因为一定数量的货币如果不做其他投资,存放在银行中是可以获得利息的。假设年利率为i,现在存入P元钱,n年后的价值为F,则有,F=P(1+i);反之,如果n年能收入F元钱,这些钱在现在的价值就是F=P(1+i),称为折现。-nn2020/3/124Economicfeasibility2.纯收入:纯收入表示在整个生存周期内系统的累积经济效益与成本之差,一般计算它的折现值。纯收入的计算公式为:纯收入=总收入折现值-总成本折现值需要考虑以下因素:1)货币的时间价值;2)投资回收期;3)纯收入;4)投资回收率。2020/3/125Economicfeasibility3.估计开发成本(人工费估计):(1)代码行技术软件成本=每行代码的平均成本X代码行数(2)任务分解技术首先将软件开发工程分解为若干相对独立的任务,再分别估计每个单独开发任务的成本,最后累加起来就得出软件开发工程的总成本。而每个单独任务的成本用下式计算:成本/单独任务=完成该项任务所需人力(人月)X每人每月平均工资(3)自动估计成本技术采用自动估计成本的软件工具,以大量历史数据为基础,估计出比较客观的结果。2020/3/126Cost-benefitanalysis1、成本估计(CostEstimation)⑴代码行技术:每行代码的平均成本源代码行数⑵任务分解技术:人力工资⑶经验公式及软件:.multiplieradjustmentfactors,CostCostantsystemtheofSizem)x,,x,(xx,cb,a,,S)xm()bS(aCostTn21c其中常见公式形如软件:Boehm’sConstructiveCostModel(COCOMO)v1.0in1970s,v2.0in19952020/3/127Cost-benefitanalysis2、效益估计(BenefitEstimation)例:假设某软件生命周期为5年。现在投资20万元,平均年利率3%。从第一年起,每年年底收入4.2万元,问该项目是否值得投资?的值年底为第为年利率为初始投资其中PnFiPPFn,,)1(iP=20万4.2万4.2万4.2万4.2万4.2万0123452020/3/128Cost-benefitanalysis到第5年底结算时:投资额=200000(1+3%)5231855(元)收入=42000[(1+3%)4+(1+3%)3+(1+3%)2+(1+3%)+1]222984(元)不合算!2020/3/129Cost-benefitanalysis衡量工程价值的经济指标有:⑴纯收入=折合现价的总收入-当前投资额=⑵投资回收期例:第6年底可收回)(3517403.11420006元年回收期年5.22)(22.0351747652)(765220000003.1103.1103.1103.1103.11420002345元2020/3/130Cost-benefitanalysis⑶投资回收率:设为j3%%65.1)1(1)1(1)1(1)1(111420002000005432年利率jj
本文标题:软件工程--第3章-问题定义与可行性研究
链接地址:https://www.777doc.com/doc-4080125 .html