《可行性报告-第2章可行性研究.ppt》由会员分享,可在线阅读,更多相关《可行性报告-第2章可行性研究.ppt(77页珍藏版)》请在第一文库网上搜索。
1、1软件工程第一章课程回顾第一章课程回顾v知识点回顾知识点回顾 软件计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及相关文档的完整集合 程序按事先设计的功能和性能要求编写的指令序列;程序是完成指定功能的一段特定语言代码 数据使程序能正常操纵信息的数据结构 文档与程序开发、维护和使用有关的图文资料 软件危机软件开发和维护过程中遇到的一系列严重问题2第一章课程回顾第一章课程回顾v知识点回顾:知识点回顾: 软件工程指研究软件生产的一门学科,也就是将完整的工程原理应用于经济地生产既可靠又能在实际机器上有效运行的软件 软件工程开发、运行、维护和修复软件的系统方法 软件工程将系统化的、规范的、可度
2、量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中3第一章课程回顾第一章课程回顾v软件工程为了经济地获得可靠的和能在实际机软件工程为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用健全的工程原器上高效运行的软件而确立和使用健全的工程原理(方法)理(方法)v软件工程方法学通常指在软件生命周期全过程软件工程方法学通常指在软件生命周期全过程中使用的一整套技术的集合。软件工程方法学包中使用的一整套技术的集合。软件工程方法学包括三个要素:方法、工具和过程括三个要素:方法、工具和过程v软件生存期软件产品或软件系统从设计软件生存期软件产品或软件系统从设计、投入投入使用到被淘汰的全
3、过程。一般说来,软件生存期使用到被淘汰的全过程。一般说来,软件生存期由软件定义、软件开发和软件维护三个时期组成,由软件定义、软件开发和软件维护三个时期组成,每个时期又可进一步划分成若干个阶段每个时期又可进一步划分成若干个阶段4第一章课程回顾第一章课程回顾v软件危机的典型表现软件危机的典型表现1. 对软件开发成本和进度的估计常常不很准确2. 用户对“已完成的”软件系统不满意的现象经常发生3. 软件产品的质量往往靠不住4. 软件常常是不可维护的5. 软件通常没有适当的文档资料6. 软件成本在计算机系统中的比例逐年增加7. 软件开发生产率提高的速度远远跟不上计算机应用普及速度5第一章课程回顾第一章课
4、程回顾v软件工程的本质特性软件工程的本质特性1. 软件工程关注于大型程序的构造2. 软件工程的中心课题是控制复杂性3. 软件经常变化4. 开发软件的效率非常重要5. 和谐地合作是开发软件的关键6. 软件必须有效地支持它的用户7. 在软件工程领域中是由具有一种文化背景的人替有另一种文化背景的人创造产品6第一章课程回顾第一章课程回顾v软件工程中的软件工程中的7条基本原理条基本原理1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能够清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性7第一章课程回顾第一
5、章课程回顾v常用的过程模型常用的过程模型 生命周期模型规定了把生命周期划分成几个阶段及各阶段的执行顺序,因此,也称过程模型 常用的过程模型有瀑布模型、快速原型模型、增量模型和螺旋模型等8第第2章可行性研究章可行性研究v2.1 可行性研究的任务可行性研究的任务v2.2 可行性研究过程可行性研究过程v2.3 系统流程图系统流程图v2.4 数据流图数据流图v2.5 数据字典数据字典v2.6 成本效益分析成本效益分析v2.7 可行性研究报告书写可行性研究报告书写92.1 可行性研究的任务可行性研究的任务v可行性研究的可行性研究的任务任务是用最小的是用最小的代价代价,在尽可能,在尽可能短短的时间的时间内
6、确定问题内确定问题是否能够解决是否能够解决 首先进一步分析和澄清问题意义 分析员应该导出系统的逻辑模型 从逻辑模型出发,探索出若干种可供选择的主要解法(即系统实现方案) 最后仔细研究每种解法的可行性 可行性研究的实质是一次大大压缩简化的系统分析和设计过程102.1 可行性研究的任务可行性研究的任务v实例讲评实例讲评:两个整数乘法:两个整数乘法11解法解法1unsigned a, b, c;c=a*b;可能会存在溢出问可能会存在溢出问题!题!解法解法2unsigned a, b;int c;c=a*b;不会存在溢出问题!不会存在溢出问题!解法解法3unsigned a, b;long int c
7、;c=a*b;不会存在溢出问题!不会存在溢出问题!但不合理但不合理2.1 可行性研究的任务可行性研究的任务v可行性应该从下述几方面进行:可行性应该从下述几方面进行: (1)技术可行性:指使用现有的技术能否完成这个项目,度量一个特定技术信息系统解决方案的实用性及技术资源的可用性 开发风险分析:最新技术成熟度等 资源分析:人力消耗、财力消耗、时间消耗等 相关技术的发展(现有技术能否实现新系统,技术难点、建议采用技术的先进性)122.1 可行性研究的任务可行性研究的任务 (2)经济可行性:指通过对软件开发项目进行成本效益估计,以确定软件系统可能带来的经济效益能否超过研制和维护此系统所需的费用。度量系
8、统解决方案的性能价格比。 成本效益分析 有形成本、效益 无形成本、效益 价值和成本的关系 质量与价值、成本的关系 价值成本的均衡132.1 可行性研究的任务可行性研究的任务 (3)操作可行性 用户使用可行性:公共汽车非接触式感应卡用输入密码或指纹来代替 时间进度可行性 组织和文化上的可行性 (4)社会因素的考虑:软件开发是否会侵犯他人、集体或国家利益v实质:实质:一次简化的、高层次的、抽象的分析和设一次简化的、高层次的、抽象的分析和设计过程!计过程!142.1 可行性研究的任务可行性研究的任务v实例讲评实例讲评:“求一元二次方程的解求一元二次方程的解”可行性可行性 问题定义:这是一个简单的数学
9、问题(什么问题),系统要求不高,整系数方程(怎样要求),用于初中教学(哪里应用),解法简单(结论如何) 技术上分析:能,简单 此方程可以根据判别是b2-4ac的值来确定方程根的情况,即b2-4ac0时又两个不等实根,b2-4ac=0时有两个相等的实根,b2-4ac现有系统的逻辑模型目标系统的逻辑模型新的物理系统242.2 可行性研究过程可行性研究过程v(4)重新定义问题)重新定义问题 1以数据流图、数据字典为基础 2需要得到用户的认可,避免疏漏、误解 3这是一个循环过程,直到完全符合系统要求v(5)导出和评价供选择的方案)导出和评价供选择的方案 1从技术角度解决的不同方案:eg1:控件和程序:
10、eg2:中断与查询252.2 可行性研究过程可行性研究过程 2从操作方面的可行性:管理习惯、行为习惯、人员素质等; 3从经济方面的可行性:开发成本运行成本开支变化等 4确定进度表v(6)推荐方案和行动方针)推荐方案和行动方针 分析员给出结论给出理由262.2 可行性研究过程可行性研究过程v(7)草拟开发计划)草拟开发计划 1进度表 2人力资源:系统分析员、程序员、资料员等; 3设备资源等v(8)书写文档、提交审查)书写文档、提交审查272.3 系统流程图系统流程图v系统流程图系统流程图是描绘是描绘物理系统的传统工具物理系统的传统工具,它的基,它的基本思想是用图形符号以黑盒子的形式描述系统里本思
11、想是用图形符号以黑盒子的形式描述系统里面的每一个面的每一个部件部件(程序、文件、数据库、表格、(程序、文件、数据库、表格、人工过程等)人工过程等) 尽管系统流程图使用的某些符号和程序流程图所用的符号相同,但系统流程图表达的信息再系统中各个部件之间流动的情况,而不是对信息进行加工处理的控制过程282.3 系统流程图系统流程图29v实例讲评实例讲评程序流程图实例程序流程图实例2.3 系统流程图系统流程图302.3 系统流程图系统流程图312.3 系统流程图系统流程图322.3 系统流程图系统流程图33实例讲评:仓库订货管理系统之系统流程图实例讲评:仓库订货管理系统之系统流程图2.3 系统流程图系统
12、流程图v实例讲评实例讲评7:口算高手口算高手之系统流程图之系统流程图342.4 数据流图数据流图v数据流图英文数据流图英文Data Flow Diagram,简称,简称DFDvDFD是一种描述是一种描述逻辑模型逻辑模型的图形工具,表示数据的图形工具,表示数据再系统内的变化再系统内的变化v图中没有任何具体的物理元素,只是描绘信息再图中没有任何具体的物理元素,只是描绘信息再系统中流动和处理的情况系统中流动和处理的情况vDFD从从数据传递数据传递和和加工加工的角度,以图形的方式刻的角度,以图形的方式刻画数据流从输入到输出的画数据流从输入到输出的移动变换移动变换过程过程352.4 数据流图数据流图v数
13、据流图数据流图中的中的符号图形元素符号图形元素 正方形:源点或终点 圆角矩形:处理 开口矩形:数据存储 箭头:流动方向362.4 数据流图数据流图v数据流图的基本图形元素数据流图的基本图形元素 (1)数据流:是一组数据。再数据流图中数据流用带箭头的线表示,在其线旁标注数据流名 (2)加工:是对数据流执行的某种操作或变换。在数据流图中加工用圆圈表示,在圆圈内写上加工名。 (3)文件:是按照某种规则组织起来的、长度不限的数据。在数据流图中文件用一直线表示,在线段旁注上文件名 (4)数据流的源点和终点:在数据流图中用方框表示,在框内写上相应的名称372.4 数据流图数据流图v由外向里由外向里画数据流
14、图画数据流图的步骤画法的步骤画法 (1)确定系统的输入输出 由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。 应该想用户了解“系统从外界接受什么数据”,“系统向外界送出什么数据”等信息 根据用户的答复画出数据流图的外围382.4 数据流图数据流图v(2)由外向里画系统的)由外向里画系统的顶层数据流图顶层数据流图 首先,将系统的输入数据和输出数据用一连串的加工连接起来 在数据流的值发生变化的地方就是一个加工 给各个加工命名 然后,给加工之间的数据命名 最后,给文件命名392.4 数据流图数据流图 (3)自顶向下逐层分解,绘出分层数据流图 对于大型的系
15、统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示vDFD可以用来表示一个系统或软可以用来表示一个系统或软件在任何层次件在任何层次上上的抽象。的抽象。较大型软件系统较大型软件系统DFD分成分成多层多层(子图,(子图,父图概念),可以表示数据流和功能的进一步的父图概念),可以表示数据流和功能的进一步的细节细节402.4 数据流图数据流图v实例讲评:仓库订货系统数据流图实例实例讲评:仓库订货系统数据流图实例412.4 数据流图数据流图422.4 数据流图数据流图432.4 数据流图数据流图442.4 数据流图数据流图452.4
16、 数据流图数据流图v实例讲评:实例讲评:口算高手口算高手的输入输出的输入输出462.4 数据流图数据流图v实例讲评:实例讲评:口算高手口算高手顶层数据流图顶层数据流图472.4 数据流图数据流图v实例讲评:实例讲评:客房管理客房管理输入输出输入输出482.4 数据流图数据流图v实例讲评:实例讲评:客房管理系统客房管理系统局部局部DFD492.4 数据流图数据流图v绘制数据流图的注意事项绘制数据流图的注意事项1. 合理细化2. 分层细化时必须保持信息的连续性3. 注意处理的编号和适当地命名4. 画数据流而不是控制流5. 先考虑稳定状态6. 忽略琐碎的枝节502.4 数据流图数据流图7. 随时准备重画8. 注意程序流程图与数据流图的区别。数据流图描绘所有可能,而不应该描绘出现某个数据流的条件9. 数据流图基本要点是要回答“作什么”,而不是“怎样作”512.4 数据流图数据流图10.命名:直接影响到数据流图的可理解性 1为数据流数据存储命名:代表整个数据流内容切忌空洞必要时考虑重新分解 2为处理命名:先数据流,后处理代表整个功能及物动词宾语一般只包含一个动词必要时考虑重新分解522.5 数据