第2章可行性研究.ppt

上传人:夺命阿水 文档编号:734921 上传时间:2023-11-01 格式:PPT 页数:95 大小:2.32MB
返回 下载 相关 举报
第2章可行性研究.ppt_第1页
第1页 / 共95页
第2章可行性研究.ppt_第2页
第2页 / 共95页
第2章可行性研究.ppt_第3页
第3页 / 共95页
第2章可行性研究.ppt_第4页
第4页 / 共95页
第2章可行性研究.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《第2章可行性研究.ppt》由会员分享,可在线阅读,更多相关《第2章可行性研究.ppt(95页珍藏版)》请在课桌文档上搜索。

1、,第1章 软件工程学概述第2章 可行性研究第3章 需求分析第4章 形式化说明技术第5章 总体设计第6章 详细设计第7章 实现第8章 维护第9章 面向对象方法学引论第10章 面向对象分析第11章 面向对象设计第12章 面向对象实现第13章 软件项目管理,教学内容 2.1 可行性研究的任务 2.2 可行性研究过程 2.3 系统流程图 2.4 数据流图 2.5 数据字典 2.6 成本/效益分析,第2章 可行性研究,2.1 可行性研究的任务,可行性研究的目的:用最小的代价,在尽可能短的时间内确定问题是否能够解决。可行性研究的实质:进行一次大大压缩简化了的系统分析和设计的过程。可行性研究,首先需要进一步

2、分析和澄清问题定义;在澄清了问题定义之后,系统分析员应该导出系统的逻辑模型;然后从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案);之后再对每种解法仔细研究它的可行性。,可行性研究的任务,技术可行性 使用现有的技术能实现这个系统吗?经济可行性 这个系统的经济效益能超过它的开发成本吗?操作可行性 系统的操作方式在这个用户组织内行得通吗?,技术可行性:使用现有的技术能否实现这个系统。开发风险:在限制条件范围内能否达到必需的功能与性能;资源配置:现有的技术人员能否胜任,软硬件资源是否能如期得到;技术:现有的技术是否能够支持系统的研制。,经济可行性:这个系统的经济效益能否超过它的开发成

3、本。经济效益评价的合理性长期的总体的经营策略对其他获利中心或产品的影响开发工作需用资源的购置费用成本/效益分析潜在的市场权衡支出的费用和收到的利益正确估计开发费用以及最终从所开发的系统中获得的利益能否超过开发成本,操作可行性:系统的操作方式在这个用户组织内是否行得通。,可行性研究的步骤,复查系统规模和目标研究目前正在使用的系统导出新系统的高层逻辑模型重新定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查,复查定义,明确限制的约束研究老系统 解决老系统问题,老系统功能,新增 功能,注意:新系统效益 老系统效益?,导出高层逻辑模型 报告应该告诉用户做什么而不是怎么做,老系统,抽

4、象,改进,实现,新系统,模型,新模型,重新定义问题,草拟开发计划 任务分解(确定负责人)大致进度规划(大致什么时间做什么)财务预算(大概会花多少钱,那些事情会花多少钱)风险分析及对策(会出现哪些风险,出现风险怎么应对),书写文档提交审查,可行性研究实施,问题识别 市场调查分析准备 环境分析物理分析功能分析,信息分析动态分析确立系统方案,做出 各种估算模型评审,问题的初步认识,了解系统应解决的问题,这些问题是如何提出的设想这些问题如何解决才能满足要求了解问题的结构,市场调查,了解市场对待开发软件的需求情况调查市场上已有的类似软件系统的功能性能价格情况,分析准备,确立分析计划规定由谁参加分析作业,

5、任务分配对参加分析的人员进行必要的培训,环境分析,明确系统的目标和限制条件使用单位的状况,经营方针和组织机构使用单位的计算机利用情况相关的硬件,软件及其它接口部分用户的操作环境及操作要求习惯,法律,制度上对软件的制约开发能具备的基数条件和设备条件,物理分析,了解实际业务活动状况,特别对一些活动要点进行分析明确在这些要点之间什么东西在流动,如何进行流动对物理流量进行分析对其模型化,得到实际业务系统(当前系统)的物理模型,功能分析,决定系统应具备的功能(工作域)分析功能的结构:功能展开和功能分配分析各功能之间的关系,整理它们之间传递的信息利用数据流图,描述信息在系统流动与处理的情况,信息分析,调查

6、系统的输入,输出,保存信息明确信息的结构及各信息之间的关系调查各信息的信息量调查各种报表和文件的格式建立粗略的数据词典,定义系统中使用的数据,动态分析,系统内每一部分有几种状态各种状态转换的条件同步产生的条件与同步后状态的变化,确立系统方案,进行各种估算,粗略地估算成本估算可能取得的效益提出可能需要的资源,包括人员,硬件,软件等提出大概的进度安排,2.3 系统流程图,系统流程图:系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等),它表达的是数据在系统各部件之间流动的情况。2.3.1 符号 2.3.2 例子 2.

7、3.3 分层,2.3.1 符号,基本符号,系统符号,例:某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果哪种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。,2.3.2 例子,该装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务;零件库存量的每一次变化称为一个事务,由放在仓库中的CRT终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的定货信息写在磁带上;每天

8、由报告生成程序读一次磁带,并且打印出定货报告。,库存清单系统的系统流程图,面对复杂的系统时,一个比较好的方法是分层次地描绘这个系统。首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。,2.3.3 分层,2.4、数据流图,数据流图(Data Flow Diagram,DFD)是描述系统中数据流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输出所需的加工处理过程。,2.4.1 符号,基本符号,附加符号,数据流图的画法(一),由外向里:不分

9、层,一次性画出完整的数据流图)先确定系统边界,再确定总的输入和输出)画系统内部,即画加工用若干个加工把输入和输出联系起来在数据流每次发生改变的地方画上一个加工,在数据要存储的地方画上一个文件)加工如果还有新的数据流产生,则加工还需要进一步分解成更细的加工,叫基本加工,数据流图实例,现有一图书预定系统,接收由顾客发来的订单,并对订单进行验证,验证过程是根据图书目录检查订单的正确性,同时根据顾客档案确定是新顾客还是老顾客,是否有信誉经过验证的正确订单,暂存在待处理的订单文件中对订单进行批处理,根据出版社档案,将订单按照出版社进行分类汇总,并保存订单存根,然后将汇总订单发往各出版社,例一 图书预定系

10、统(顶层DFD图),出版社,顾客,验证订单,汇总订单,订单,出版社 订单,图书目录文件,待处理订单文件,正确订单,一批订单,出版社档案文件,画图步骤:1、确定外部实体及输入、输出数据流。2、确定分解顶层的加工。3、确定使用的文件。4、用数据流将各部分连接起来,形成数据封闭。,注意:标注各加工框及数据流名称。,数据流图的画法(二),分层数据流图:自顶向下画,对系统进行逐层分解,可以控制每一层的复杂度顶层:实体输入一个加工输出中间层:加工子加工子加工底层:由基本加工组成,顶层,中 间 层,底 层,先全局后局部,先整体后细节,先抽象后具体.,0图,1图,2图,1.1图,2.1图,2.2图,分层DFD

11、 图,分层数据流图的作图步骤:,先画出顶层的DFD图,即确定实体和输入输出逐层分解顶层DFD图,获得若干中间层DFD图画出底层的DFD图,例1:假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,2.4.2 例子,第一步:从问题描述中提取数据流图的4种成分。系统的源点和终点仓库管理员是数据源点采购员是数据终点处理定货系统

12、数据流定货报表事务数据存储,分析:,定货系统的基本系统模型,第二步:把基本系统模型细化,描绘系统的主要功能。将处理“定货系统”进行功能分解,分解为“产生报表”和“处理事务”两部分;考虑有关数据存储的问题,例中涉及到的两个数据存储:处理事务需要的“库存清单”数据、产生报表和处理事务在不同时间,因此需要存储“定货信息”;,定货系统功能级数据流图,第三步:对功能及数据流图中描绘的系统主要功能进一步细化。将“事务处理”进一步分解为“接受事务”、“更新库存清单”和“处理定货”三部分;,定货系统功能进一步分解后的数据流图,案例二 医院病房监护系统,一、问题的描述在医院ICU病房里,将病症监视器安置在每个病

13、床,对病人进行监护。监视器将病人的组合病症信号实时地传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。根据护士的要求随时打印病人的病情报告,系统还定期自动更新病历。,案 例 二 医院病房监护系统,经过初步的需求分析,得到系统功能要求:1、监视病员的病症(血压、体温、脉搏等)。2、定时更新病历。3、病情出现异常情况时报警。4、随机地产生某一病员的病情报告。,例2:医院病房监护系统,监视病情,更新病历,2.2.3 实例:医院病房监护

14、系统,请分析软件系统需求!,1、监视病员的病症 采集病症信号(血压、体温、脉搏等)。组合病症信号。将模拟病症信号转换为数字信号(A-D转换)。2、定时更新病历 将病症信号进行格式化并加入更新日期、时间。更新病历库中病人的信息。可人工设定更新病历的时间间隔。3、病情出现异常情况时报警 根据标准病症信号库中的值,判断是否报警。将报警信号转换为各种模拟信号(D-A转换)。实时打印病情报告,立即更新病历。4、随机地产生某一病员的病情报告,二、系统功能需求,局部监视,更新日志,产生病情报告,顶 层DFD图,医院病房监护系统分层DFD图,顶层确定了系统的范围,其外部实体为病员和护士,护士,病员,护士,第一

15、层:,医院病房监护系统顶层DFD图,第二层:加工“中央监视”分解,医院病房监护系统二层DFD图,医院病房监护系统分层DFD图,紧急报告,习题:银行计算机储蓄系统的工作过程大致如下:1)储户填写的存款单或取款单由业务员键入系统,2)如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;3)如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。,顶层DFD图,储户,储户,储蓄系统,存款

16、单,取款单,存单,利息清单,存款信息,密码,四、画分层DFD图的基本原则,数据守恒与数据封闭原则 数据守恒是指加工的输入/出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。数据封闭是对整个系统而言。,子图与父图的“平衡”父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡”。,合理使用文件 当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么他同其他成份之间的联系也应同时表达出来。,四、画分层DFD图的基本原则,加工分解的原则自然性:概念上合理、清晰;均匀性:理想的分解是将一

17、个问题分解成大小均匀的几个部分;分解度:一般每一个加工每次分解最多不要超过个子加工,分解应分解到基本加工为止。,DFD图=流程图?,注意,DFD图不是流程图,不表示软件的控制流程。,五、分层DFD图的改进,DFD图须经过反复修改,才能获得最终的目标系统的DFD图。从以下方面改进DFD图:1、检查数据流的正确性 数据守恒 子图、父图的平衡 文件使用是否合理。特别注意输入/出文件的数据流。,2、改进DFD图的易理解性 简化加工之间的联系(联系越少,独立性越强,易理解性越好)。改进分解的均匀性。适当命名(各成分名称无二义性,准确、具体),五、分层DFD图的改进,3、重新分解1)将需要重新分解的图的所

18、有子图拼起来2)分解这张拼图使各部分的联系最少,得到重新分解的子图3)将上面得到的每一部分画成一个分工,就得到重新分解后的父图4)为各张图重新编号命名.,例1,1,3,2,2.1,2.3,2.2,A,B,C,N,H,T,N,P,S,Q,T,父图,子图,提问:父图与子图是否符合DFD图的原则?,例2,1,2,3,4,5,6,3.1,3.2,3.3,定货单,提货单,客户,帐号,数量,提货单,父图,子图,数据字典:订货单=客户+帐号+数量,在对数据流图中各个成分命名时应注意的问题:为数据源点/终点命名时采用它们在问题域中习惯使用的名字。为数据流(或数据存储)命名名字应代表整个数据流(或数据存储)的内

19、容,而不是仅仅反映它的某些成分;不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类);如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难,2.4.3 命名,为处理命名通常先为数据流命名,然后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程;名字应该反映整个处理的功能,而不是它的一部分功能;名字最好由一个具体的及物动词加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字;通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理

20、的功能,则把这个处理再分解成两个处理可能更恰当些;如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。,2.4.4 用途,作为交流信息的工具作为分析和设计的工具辅助物理系统的设计对更详细的设计步骤也有帮助,2.5 数据字典,数据字典:是对数据流图中包含的所有元素的定义的集合,即对数据流图中出现的所有名字(数据流、数据元素、数据存储、处理)进行定义。数据流图和数据字典共同构成了系统的逻辑模型。2.5.1 数据字典的内容2.5.2 定义数据的方法2.5.3 数据字典的用途2.5.4 数据字典的实现,2.5.1 数据字典的内容,一般说来,数据字典应该由对下列4类元素的定义

21、组成:(1)数据流(2)数据流分量(即数据元素)(3)数据存储(4)处理,在数据字典中记录数据元素的下列信息:一般信息:名字,别名,描述等使用特点:值的范围,使用频率,使用方式(输入、输出、本地,条件值等)控制信息:来源,用户,使用它的程序,改变权,使用权等分组信息:父结构,从属结构,物理位置(记录、文件和数据库等),数据元素的别名就是该元素的其他等价的名字,出现别名的主要原因:对于同样的数据,不同的用户使用了不同的名字;一个分析员在不同时期对同一个数据使用了不同的名字;两个分析员分别分析同一个数据流时,使用了不同的名字。,数据字典中的定义就是对数据自顶向下的分解,一般说来,当分解到不需要进一

22、步定义,每个和工程有关的人也都清楚其含义的元素时,这种分解过程就完成了。由数据元素组成数据的方式只有下述三种基本类型:(1)顺序 即以确定次序连接两个或多个分量;(2)选择 即从两个或多个可能的元素中选取一个;(3)重复 即把指定的分量重复零次或多次;(4)可选 即一个分量是可有可无的(重复零次或一次)。,2.5.2 定义数据的方法,为了更加清晰简洁,建议采用下列符号来描述由数据元素组成数据的关系:=意思是等价于(或定义为);+意思是和(即,连接两个分量);意思是或(即,从方括弧内列出的若干个分量中选择一 个),通常用“|”号隔开供选择的分量;意思是重复(即,重复花括弧内的分量);常常使用上限

23、和下限进一步注释表示重复的花括弧。在开括弧的左边用上角标和下角标分别表明重复的上限和下限在开括弧左侧标明重复的下限,在闭括弧的右侧标明重复的上限 例如:51A和1A5()意思是可选(即,圆括弧里的分量可有可无)。,举例:某程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。标识符=字母字符+字母数字串字母数字串=0字母或数字7字母或数字=字母字符数字字符,A、数据流条目给出某个数据流的定义,通常是列出该 数据流的各组成数据项。例如:报名单姓名单位名年龄性别课程名 常用符号:、()、,C、数据项条目 数据项条目

24、给出某个数据单项的定义,通常是数据项的值类型,允许的取值范围。例:帐号:0000_9999,B、文件条目给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流。例如:订单文件订单编号顾客名称产品名称订货数量交货日期,D、加工条目 加工类条目就是“加工小说明”。一般应该单独列出。,例3:发票=货名+数量+单价+总价|金额数据词典实例:基本型-像表格扩充型-像卡片,数据字典最重要的用途是作为分析阶段的工具;对数据严密一致的定义有助于改进分析员和用户之间、不同开发人员或开发小组之间的通信;根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题。数据字典中包含的每个数据元素的控制信息是

25、很有价值的;数据字典是开发数据库的第一步。,2.5.3 数据字典的用途,目前,数据字典几乎总是作为CASE“结构化分析与设计工具”的一部分实现的。如果在开发小型软件系统时暂时没有数据字典处理程序,建议采用卡片形式书写数据字典,每张卡片上保存描述一个数据的信息。每张卡片上主要应该包含下述这样一些信息:名字、别名、描述、定义、位置。当开发过程进展到能够知道数据元素的控制信息和使用特点时,再把这些信息记录在卡片的背面。,2.5.4 数据字典的实现,名字:定货报表别名:定货信息描述:每天一次送给采购员的需要定货的零件表定义:定货报表=零件编号+零件名+定货数量+目前价格+主要供应者+次要供应者位置:输

26、出到打印机,名字:零件编号别名:描述:唯一地标识库存清单中一个特定零件的关键域定义:零件编号=8字符8位置:定货报表 定货信息 库存清单 事务,名字:定货数量别名:描述:某个零件一次定货的数量定义:定货数量=1数字5位置:定货报表 定货信息,七、加工说明,结构化语言判定表判定树,对DFD图中每一个基本加工都必须有一个小说明给出该加工的精确描述。小说明中应精确地描述加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,指用户对这个加工的逻辑要求。对基本加工说明有三种描述方式:,成本/效益分析的目的是要从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责

27、人正确地作出是否投资于这项开发工程的决定。2.6.1 成本估计2.6.2 成本/效益分析的方法,2.6 成本/效益分析,2.6.1 成本估计,软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。成本估计不是精确的科学,因此应该使用几种不同的估计技术以便相互校验。代码行技术任务分解技术自动估计成本技术,代码行技术 代码行技术是比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。通常根据经验和历史数据估计实现一个功能需要的源程序行数。当有以往开发类似工程的历史数据可供参考时,这个方法是非常有效的。设 T 软件成本 N 软件源代码行数 A 每行代码的

28、平均成本 T=A N 其中,A主要取决于软件的复杂程度和工资水平。,任务分解技术 这种方法首先把软件开发工程分解为若干个相对独立的任务。再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。设 T 软件总成本 Bi 开发任务i的成本(i1,2,n)Ci 完成每个单独任务i所需的人力(月)D 每人每月的平均工资 B=Ci D,自动估计成本技术 采用自动估计成本的软件工具可以减轻人的劳动,并且使得估计的结果更客观。但是,采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。,2.6.2 成本/效益分析的方法,成本/效益分析的第一步是估计开发成本、运行费

29、用和新系统将带来的经济效益:软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用);运行费用取决于系统的操作费用(操作员人数,工作时间,消耗的物资等等)和维护费用;系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。应该比较新系统的开发成本和经济效益,以便从经济角度判断这个系统是否值得投资。,货币的时间价值 假设年利率为i,如果现在存入P元,则n年后可以得到的钱数为:F=P(1+i)n;反之,如果n年后能收入F元钱,那么这些钱的现在价值是:P=F/(1+i)n。投资回收期 投资回收期就是使累计的经济效益等于最初投资所需要的时间。显然,投资回收期越短就能越快获得利润

30、,因此这项工程也就越值得投资。纯收入 纯收入指在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。,投资回收率 把资金存入银行或贷给其他企业能够获得利息,通常用年利率衡量利息多少,类似地也可以计算投资回收率,用它衡量投资效益的大小,并且可以把它和年利率相比较,在衡量工程的经济效益时,它是最重要的参考数据。设P是现在的投资额,Fi是第i年年底的效益,n是系统使用寿命,j是投资回收率,则 P=F1/(1+j)+F2/(1+j)2+Fn/(1+j)n,例:改进一个已有的应用软件系统估计共需5000元,新系统投入运行后估计每年可比原系统节约2500元,假定年利率为12%,计算该系统的投资回

31、收期、纯收入和投资回收率。,纯收入:9011.94 5000=4011.94(元)投资回收期:2+(5000 4225.12)/1779.45=2.44(年)解高阶代数方程,得投资回报率为41%42%,例:假设某软件生命周期为5年,现在投资20万,平均年利率3%,从第一年起,每年年底收入4.2万,问该项目是否值得投资?P=20万 4.2万 4.2万 4.2万 4.2万 4.2万 0 1 2 3 4 5,到第5年底结算时:投资额=200000*(1+3%)5231855元收入=42000*(1+3%)4+(1+3%)3+(1+3%)2+(1+3%)+1 222984元不合算,衡量工程价值的经济指标有:(1)纯收入=折合现价的总收入-当前投资额,(2)投资回收期例:第6年底可收回 42000*=35174元 7652/351740.22年推出 回收期0.22年,(3)投资回收率:设为j,j1.65%年利率 3%,2.7 小结,2.1 可行性研究的任务可行性研究的目的、可行性研究的实质2.2 可行性研究过程8个步骤2.3 系统流程图表达的是数据在系统各物理部件之间流动的情况2.4 数据流图描绘数据在软件中流动和被处理的逻辑过程2.5 数据字典对数据流图中包含的所有元素进行定义2.6 成本/效益分析从经济角度分析开发一个特定的新系统是否划算,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号