《软件工程02可行性分析.ppt》由会员分享,可在线阅读,更多相关《软件工程02可行性分析.ppt(47页珍藏版)》请在三一办公上搜索。
1、软件工程Software Engineering可行性分析,济南大学信息科学与工程学院,2.1 可行性研究的任务2.2 可行性研究过程2.3 数据流图2.4 数据字典2.5 成本/效益分析,提纲,2,2.1 可行性研究的任务2.2 可行性研究过程2.3 数据流图2.4 数据字典2.5 成本/效益分析,3,可行性研究是在较高层次上以较抽象的方式进行设计的过程不是解决问题,而是确定问题是否有解或值得解最根本的任务是对以后的行动路线提出建议如果问题没有可行的解,应该停止这项工程的开发;如果问题值得解,应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。不要花过多精力,占总成本的 5-10%,可
2、行性研究的任务,4,可行性研究的目的用最小的代价,在尽可能短的时间内确定问题是否能够解决可行性研究的实质就是要进行一次压缩,简化了的系统分析和设计的过程可行性研究的路线分析和澄清问题导出系统逻辑模型探索若干种可供选择的主要解法(系统实现方案)对每种解法进行可行性研究为每种可行的解法制定一个粗略的实现进度,5,可行性研究应着重考虑的三个方面(1):1.技术可行性:使用现有的技术能实现这个系统根据系统功能、性能及实现系统的各项约束条件,从技术角度研究实现系统的可行性(1)风险分析:在给定的约束条件下,判断能否设计并实现系统所需的功能、性能(2)资源分析:论证是否具备系统开发所需的管理人员和各类专业
3、技术人员,必要的培训,是否具备必须的软件、硬件资源和工作环境(3)技术分析:当前技术是否支持系统开发的全过程,6,可行性研究应着重考虑的三个方面(2):经济可行性:系统的经济效益能否超过开发成本进行成本/效益分析,进行费用估计和效益估计费用估计:包括设备、人力、材料和管理费用效益估计:新软件提供哪些以前没有的功能新软件提供信息的速度、精度、质量有没有提高使用人员查询和使用信息的能力有没有提高新软件节省的人力,7,可行性研究应着重考虑的三个方面(3):操作可行性:系统的操作方式在这个用户组织内是否行得通对目标系统所规定的运行方式能否达到系统运行方式用户组织是否行的通现有的管理制度、人员素质、操作
4、方式是否可行是否存在任何侵犯、妨碍等责任问题补充说明:必要时还应该从法律和社会效益等方面研究每种解法的可行性可行性研究需要的时间长短取决于系统的规模,可行性研究的成本只是预期工程总成本的5-10%,8,2.1 可行性研究的任务2.2 可行性研究过程2.3 数据流图2.4 数据字典2.5 成本/效益分析,9,可行性研究过程,1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查,10,1.复查系统规模和目标确保分析员提交的报告确实是用户要求解决的问题我们认为用户要的 用户要的,1
5、1,2.研究目前正在使用的系统研究老系统的观点现有系统要完成的工作,就是新系统所必须具备的功能现有系统存在的缺点,新系统必须加以改进现有系统所不具备的功能,又是用户必须的,则新系统一定要预以增加现有系统所需要的费用是新系统的一个重要的投资依据,老系统功能,新增功能,新系统效益,老系统效益,12,3.导出新系统的高层逻辑模型优秀的设计应该是从现有的物理系统出发,导出现有物理系统的逻辑模型再以现有物理系统的逻辑模型为基础,设想目标系统的逻辑模型最后根据目标系统的逻辑模型建造新的物理系统使用数据流图和数据字典定义模型,老系统,模型,新模型,新系统,13,4.进一步定义问题定义系统目标复查系统目标和规
6、模研究现有系统设计新系统再定义系统目标重复这个过程,直到提出的新系统逻辑模型复合系统目标,14,5 导出和评价供选择的解法分析员从系统的逻辑模型出发,以系统要求为目标,利用在数据流图上划分自动化边界的方法,可以导出若干种较高层次的物理解法供用户比较和选择针对多种方案,用户应从如下三个方面进行筛选:从技术角度排除那些不现实的方案从操作角度去掉那些操作方式或操作过程用户不能接受的方案从经济角度估算每个可能系统的成本/效益最后为每个在技术、操作和经济等方面都可行的系统制定实现进度表,15,6.推荐行动方针向用户提出推荐方案,在推荐方案中应清楚地表明本项目的开发价值,成本/效益分析,推荐这个方案的理由
7、7.草拟开发计划分析员为推荐的方案草拟一份开发计划含:工程进度表估计各类开发人员、各种资源需要情况和使用时间估计系统生命周期每个阶段的成本给出需求分析的详细进度表和成本估计8.书写文档提交审查,16,2.1 可行性研究的任务2.2 可行性研究过程2.3 数据流图2.4 数据字典2.5 成本/效益分析,17,数据流图:简称DFD-Data Flow Diagram图,它是描绘信息和数据从输入移动到输出的过程中所经受的变换,反映了数据在软件中流动和被处理的逻辑过程数据流图是系统逻辑功能的图形表示,是一种极好的通信工具,数据流图,18,符号表示-四种基本符号1.数据的源点/终点2.变换数据的处理一个
8、程序,一系列程序,单个程序或者程序的一个模块,也可以代表某个人工处理过程3.数据存储可以表示一个文件,文件的一部分,数据库的元素或记录的一部 分存储:把一个数据存入数据存储用一个数据去修改数据存储中的数据从数据存储中读出一个数据从数据存储中检索出一批数据,19,符号表示-四种基本符号 cont.4.数据流表示数据在系统中的流动方向,一般分单向数据流和双向数据流两种数据流图有六种附加符号:附加符号中的星号(*)表示数据流之间是“与”关系;加号(+)表示数据流之间是“或”关系;符号表示只能从数据流中选一个(互斥关系),T,T,*+,*+,20,问题描述:一家工厂的采购部每天需要一张定货报表,报表按
9、零件编号排序,列出所有需要再次定货的零件。对于需要订货的零件列出其零件编号、零件名称、定货数量、目前价格、主要供应者、次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于临界值时就应该再次定货,数据流图案例分析,21,Step1:提取数据流图的4种成分确定系统的源点和终点仓库管理员是数据的源点采购员是数据的终点加工(处理)本题应该完成定货系统这样一个功能数据流事务需从仓库送到系统中,显然事务是一个数据流系统要把定货报表送给采购部,定货报表也是一个数据流,22,23,Step2:确定基本系统模型定货系统基本数据流图,24,Step3:确定功能
10、级数据流图将加工(处理)-定货系统进行功能分解,变成事务处理和产生报表两部分考虑有关数据存储问题,涉及到存储的信息有:库存清单、定货信息定货系统功能级数据流图,25,Step4:细化数据流图将事务处理进一步分解为:接收事务,更新库存清单、处理定货三部分。画出定货系统功能分解后的数据流图,26,画数据流图的原则:1.确定系统的源点和终点2.确定系统的输入和输出数据流的关系3.保持分解前后输入/输出数据流必须相同(父子平衡)4.尽量简化加工之间的联系,27,画数据流图的原则 cont.5.用“自顶向下”方法,逐层画出数据流图,每张数据流图中加工(处理)的个数不能超过9个(7加减2)为了表达数据处理
11、过程的数据加工情况,需要采用层次结构的数据流图按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图,28,画数据流图的原则 cont.6.注意分解速度(一般每分解一层增加2-7个加工)7.在画数据流图时应避免线条交叉,必要时可使用重复的外部项(源点或终点)或数据存储符号8.适当的命名,加工处理要编号名字应代表数据流(
12、或数据存储)的内容不要使用空洞的、缺乏具体含义的名字如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应试试重新分解,29,1 作为交流信息的工具2 作为分析和设计的工具3 数据流图可以辅助物理系统的设计(图)4 数据流图对详细设计也有帮助,数据流图的用途,30,31,2.1 可行性研究的任务2.2 可行性研究过程2.3 数据流图2.4 数据字典2.5 成本/效益分析,32,定义:是关于数据的信息集合,是对数据流图中包含的所有元素定义的集合数据流图和数据字典共同构成系统的逻辑模型数据流图描述了系统的“分解”,它表明系统由哪些部分组成数据字典则为数据流
13、图中出现的每一部分都给出“严格定义”,二者有机配合,完整地描述了系统没有数据字典数据流图就不严密,没有数据流图数据字典也难于发挥作用,数据字典,33,数据字典的内容数据字典的组成数据流数据流分量(即数据元素)数据存储处理数据字典中记录数据元素的下列信息一般信息(名字、别名、描述)定义(数据类型、长度、结构)使用特点(指的范围、使用频率、使用方式)控制信息(来源、用户、程序的改变和使用权)分组信息(父结构、从属结构、物理位置),34,定义数据的方法数据字典中的定义就是对数据自顶向下的分解,一般来说应分解到每个和工程有关的人都清楚其含义的元素为止。数据的基本类型顺序选择重复 可选 符号=+(),3
14、5,36,数据字典的用途1 作为分析阶段的工具2 用于开发小组之间的通信3 可控制程序和模块的改变4 是开发数据库的基础,37,数据字典的实现开发小系统时可建立卡片每个要定义的名字准备一张卡片在卡片上注明名字、别名、描述、定义、位置、控制信息、使用特点将所有卡片按一定方式排序,如英文字母顺序或汉字笔画多少等,38,39,2.1 可行性研究的任务2.2 可行性研究过程2.3 数据流图2.4 数据字典2.5 成本/效益分析,40,成本估计1.代码行技术是一种比较简单定量的估算方法,把开发每个软件功能的成本和实现这个功能需要用的源程序代码行数联系起来若有历史数据作参考的话,这种方法还是有效的设 T-
15、软件成本 N-软件源代码行数 A-每行源代码的平均成本T=AN其中A取决于软件的复杂程度和工资水平,成本/效益分析,41,成本估计 cont.2.任务分解技术把软件开发工程分解为若干个相对独立的任务,然后再分别估计每个单独开发任务的成本,最后累加起来得到软件工程的总成本,42,成本估计 cont.2.任务分解技术 cont.设 T-软件总成本 B-每个单独开发任务的成本-系数T=B B=CD C-完成每个单独任务所需的人力(月)D-每人每月的平均工资T=CD3.自动估计成本技术要有长期搜集的大量历史数据和数据库系统的支持,43,效益分析四个重要概念货币的时间价值投资回收期纯收入投资回收率一般设
16、生命周期为5年,44,货币的时间价值通常使用“利率”的形式表示货币的时间价值i:年利率、P:现在存入的钱、n:年;n年后可以获得的钱数为:F=P(1+i)n这些钱的现在价值为:P=F/(1+i)n举例:库存清单系统投入:5000元效益:2500元,45,纯收入是指在整个生存周期之内系统的累计经济效益(折合成现在值)与投资之差投资回收期是使累计的经济效益等于最初投资所需要的时间。显然投资回收期越短,就能越快地获得利润,因此这项工程也就越值得投资。投资回收率类似于把资金存入银行或贷给其他企业能够获得利息,通常用年利率衡量利息多少,这就叫投资回收率。如果投资回收率等于银行的年利率,则此系统没有必要开发,因为它不能增加收入。所以只有投资回收率大于年利率时,才考虑开发问题。P=F1/(1+j)+F2/(1+j)2+Fn/(1+j)n,46,Q&A,47,