软件工程导论 02章可行性研究

1、可行性研究的目的不是解决问题,而是确定问题是否值得去解决
需要从四个方面去考虑:技术可行性、经济可行性、操作可行性及法律可行性
实施过程中,首先进一步分析澄清问题定义,之后由分析员导出系统的逻辑模型,最后探索若干种可供选择的主要解决方法

2、可行性研究过程为:
复查系统规模和目标:查阅资料访问关键人员,精确不确切的叙述,确保分析员在解决的问题是他想解决的问题。
研究目前正在使用的系统:应该仔细阅读分析现有系统的文档资料和使用手册,也要实地考察现有的系统。但是不能在这个阶段花费过多时间。
导出新系统的高层逻辑模型:从现有系统出发,结合目标系统的逻辑模型,设计出最符合目标系统的逻辑模型。
进一步定义问题:可行性研究的前4个步骤实质上构成一个循环。分析员定义问题,分析问题,导出一个试探性的解;在此基础上再次定义问题,再一次分析这个问题,修改这个解;继续这个循环,直到提出的逻辑模型完全符合系统目标。
导出和评价供选择的解法:综合评估建议的系统逻辑模型,分析各个可行性,最后制定系统实现进度表。
推荐行动方针:由分析员表明他对这个关键性决定的建议,如果分析员认为可行,则选择一种最合适的解决方法。
草拟开发计划:拟定开发计划,包括工程进度表、人员及资源分配、时间分配、各阶段成本和下一个阶段的详细进度表和成本估计。
书写文档提交审查:交由客户、组织负责人及评审组审查。
检查旧的,准备新的,交付用户

3、系统流程图是概括地描绘物理系统的传统工具,用图形符号以黑盒形式描绘组成的各个部件。表达的是数据在系统各部件之间流动的情况,而不是对数据加工的控制过程。因此尽管符号和程序流程图很多是相同的,但系统流程图属于物理数据流图而不是程序流程图。
进行可行性分析时,通常用系统流程图来描述所要开发的系统。用于 描述项目的处理流程、范围、功能等。基本的符号如下:
软件工程导论 02章可行性研究
绘制系统流程图时,用图形符号描述每个部件。绘制好的系统流程图,不仅用于可行性研究,还用于需求分析阶段。
当系统比较复杂时,可以分层地描述这个系统。首先使用高层次的系统流程图描绘系统的总体概貌,之后把每个关键功能扩展到适当的程度,单独画出。这样做更方便阅读者从抽象到具体地深入了解一个复杂的系统。

4、系统流程图的几种结构:
①顺序结构:最基础的结构,表示处理程序顺序进行。本结构适用于具有循序发生特性之处理程序,而绘制图形上下顺序就是处理程序进行顺序。
软件工程导论 02章可行性研究
②选择结构:又分为二元选择结构和多重选择结构,理解时可以参考C语言中的IF-ELSE语句和SWITCH-CASE语句。
软件工程导论 02章可行性研究软件工程导论 02章可行性研究
③循环结构:又分为REPEAT-UNTIL结构和DO-WHILE结构。理解时可以参考C语言中的WHILE语句和DO-WHILE语句。两种结构区别在于判断前是否先进行一次操作。
软件工程导论 02章可行性研究软件工程导论 02章可行性研究
5、流程图绘制原则:
①流程图分中心主轴及旁支说明,主轴内各流程图文字请键入KEY WORD, 各细部流程若需补充说明,精简条列以虚线旁支说明,每点以不超过二行为原则。
②各项细部流程如有办理期程者应注明。
③各项步骤有选择或决策结果,如可否、通过不通过或其它相对文字时,请回馈校正流程是否有遗漏,以避免悬而未决状况。
④注意各流程图动线勾稽的合理性、并考虑是否需建置分表或合成简要总表, 分表与总表应以符号、颜色或字段等区隔,使人一目了然。
⑤流程图符号绘制排列顺序,为由上而下,由左而右。相同流程图符号宜大小一致。路径符号宜避免互相交叉。同一路径符号之指示箭头应只有一个。路径符号宜避免互相交叉。同一路径符号之指示箭头应只有一个。选择结构及重复结构之选择或决策条件,文字叙述应简明清晰,路径并加注「是」及「否」或其它相对性文字指示说明。
⑥处理程序请以阿拉伯数字,由1开始,依处理程序排列顺序编号,并以文 字依处理程序功能命名。文字命名部份,以「动词+受词」及简明扼要叙述为原 则。若须表示处理程序之单位,则在编号之后,加上单位名称。处理程序若属并行操作关系,其编号请多加一码(如8.1,8.2等依序编号), 并宜排列在流程图同一高度,而下一个处理程序编号,则自动增加1(如9)。
软件工程导论 02章可行性研究软件工程导论 02章可行性研究
⑦处理程序必须单一入口单一出口。这一点要求注意绘图的细节,箭头指向位置应该画仔细。
软件工程导论 02章可行性研究
⑧流程图一页放不下时,可使用连接符号连接下一页流程图。同一页流程图中,若流程较复杂,亦可使用连接符号来述明流程连接性。连接符号内请以文数字标示,以资区别。同时也可以使用阶层性分页绘制方式,在处理编号上表示其阶层性。
软件工程导论 02章可行性研究
⑨ 流程图中若有参考到其它已定义流程,可使用已定义处理程序符号, 不必重复绘制。

6、成本估计
软件开发成本主要表现为人力消耗。一般使用三种估算技术:任务分解技术(按开发阶段划分任务)、代码行技术、自动估计成本技术
成本/效益分析方法主要从四个方面考虑:
a.货币的时间价值
b.投资回收期:累计的经济效益等于最初投资所需要的时间,也就是达到估计开发总成本加上运行维护费用所需要的时间。
c.纯收入=累计经济效益(折合成现在值)- 投资额
d.投资回收率=年经营净现金流量或年均经营净现金流量/原始投资额