软件工程课件:第2章 可行性研究_第1页
软件工程课件:第2章 可行性研究_第2页
软件工程课件:第2章 可行性研究_第3页
软件工程课件:第2章 可行性研究_第4页
软件工程课件:第2章 可行性研究_第5页
已阅读5页,还剩76页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 可行性研究软件工程柳传志:没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投得起钱但没有可靠的人选,这样的事也不干。”提纲可行性研究的任务可行性研究过程系统流程图数据流图数据字典成本/效益分析2.1 可行性研究的任务目的用最小的代价,在尽可能短的时间内确定问题是否能够解决实质一次大大压缩简化了的系统分析和设计过程路线分析和澄清问题导出系统逻辑模型探索若干种可供选择的主要解法(系统实现方案)对每种解法进行可行性研究为每种可行的解法制定一个粗略的实现进度2.1 可行性研究的任务技术可行性使用现有的技术能实现这个系统经济可行性系统的经济效益能否超过开发成本操作可行性系统的操作方式在这个

2、用户组织内是否行得通2.1 可行性研究的任务技术可行性根据系统功能、性能及实现系统的各项约束条件,从技术角度研究实现系统的可行性风险分析:在给定的约束条件下,判断能否设计并实现系统所需的功能、性能资源分析:论证是否具备系统开发所需的管理人员和各类专业技术人员,必要的培训,是否具备必须的软件、硬件资源和工作环境技术分析:当前技术是否支持系统开发的全过程2.1 可行性研究的任务经济可行性进行成本/效益分析,进行费用估计和效益估计费用估计:设备、人力、材料和管理费用效益估计:新软件提供哪些以前没有的功能;新软件提供信息的速度、精度、质量有没有提高;使用人员查询和使用信息的能力有没有提高;新软件节省的

3、人力。2.1 可行性研究的任务系统运行方式用户组织是否行的通现有的管理制度、人员素质、操作方式是否可行是否存在任何侵犯、妨碍等责任问题操作可行性对目标系统所规定的运行方式能否达到2.1 可行性研究的任务规律时间长短取决于工程的规模,成本只是预期的工程总成本的5%10%问题值得解问题没有可行的解推荐一个较好的解决方案,并且为工程制定一个初步的计划建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费提纲可行性研究过程系统流程图数据流图数据字典成本/效益分析2.2 可行性研究过程1234复查系统规模和目标研究目前正在使用的系统导出新系统的高层逻辑模型进一步定义问题导出和评价供选择的解法推荐行动方

4、针草拟开发计划书写文档提交审查56782.2 可行性研究过程复查确认规模和目标改正含糊或不确切的叙述清晰描述一切限制和约束(1)复查系统规模和目标确保分析员提交的报告确实是用户要求解决的问题2.2 可行性研究过程(2)研究目前正在使用的系统现有系统要完成的工作,就是新系统所必须具备的功能现有系统存在的缺点,新系统必须加以改进现有系统所不具备的功能,又是用户必须的,则新系统一定要预以增加现有系统所需要的费用是新系统的一个重要的投资依据2.2 可行性研究过程(2)研究目前正在使用的系统不要花太多时间于实现细节,注意了解并记录现有系统和其他系统之间的接口情况分析现有系统的文档资料和使用手册实地考察现

5、有系统访问关键人员了解原有系统可以做什么,为什么这么做,代价2.2 可行性研究过程(3)导出新系统的高层逻辑模型原有系统新系统逻辑模型逻辑模型物理系统物理系统系统流程图数据流图数据字典2.2 可行性研究过程(4)进一步定义问题讨论基础:数据流图、数据字典复查问题定义、工程规模和目标分析员用户21估计余下的每个可能的系统的开发成本和运行费用,并且估计相对于现有的系统而言这个系统可以节省的开支或可以增加的收入。根据使用部门处理事务的原则和习惯去掉其中从操作方式或操作过程的角度看用户不能接受的方案根据技术可行性的考虑初步排除一些不现实的系统2.2 可行性研究过程(5)导出和评价供选择的解法End t

6、o End Mapping1从建议的系统逻辑模型出发,导出若干个较高层次的物理解法供比较和选择数据流图上划分不同边界组合的方法2.2 可行性研究过程(6)推荐行动方针向用户提出推荐方案,在推荐方案中应清楚地表明本项目的开发价值,成本/效益分析,推荐这个方案的理由(7)草拟开发计划分析员为推荐的方案草拟一份开发计划含:工程进度表估计各类开发人员、各种资源需要情况和使用时间估计系统生命周期每个阶段的成本给出需求分析的详细进度表和成本估计(8)书写文档提交审查1 复查定义,明确限制的约束。 我们认为用户要的 用户要的2 研究老系统 解决老系统问题老系统功能新增功能 新系统效益注:只了解老系统做什么,

7、而不管怎样做注意了解与其它系统的接口 老系统效益 过程和步骤总结3 导出高层逻辑模型(conceptual design)抽象实现改进 报告应该告诉用户“What”而不是“How” 逻辑模型由数据流图来描述,不需细化 物理模型用系统流程图表示过程和步骤总结 3 逻辑模型4 重新定义 1 复查定义注:此时合同未签,应考虑成本,不宜反复太多次。5 导出多种解法进度表经济上合算技术上可行操作上可行技术上不可行不可能操作不合算过程和步骤总结6 推荐行动方针Yes or No?NoYesWhy?Which one is the best?Why? (cost / benefit)7 开发计划(粗略) 任

8、务分解,确定负责人 大致进度规划 财务预算 风险分析及对策8 编写可行性报告9 提交审查过程和步骤总结提纲系统流程图数据流图数据字典成本/效益分析2.3 系统流程图描绘物理系统的传统工具基本思想:用图形符号以黑盒子形式描绘组成系统的每个部件。包括程序、文档、数据库和人工过程等表达了数据在系统各部件之间的流动情况控制、处理信息(不同于程序流程图)2.3 系统流程图系统流程图的作用系统分析员作进一步分析的依据系统分析员、管理人员、业务操作人员相互交流的工具系统分析员可直接在系统流程图上拟出可以实现计算机处理的部分可利用系统流程图来分析业务流程的合理性2.3 系统流程图基本符号符号名称说明处理如:程

9、序,处理机,人工加工输入/输出连接换页连接数据流表示输入或输出同一页上图的连接不同页上图的连接指明数据流动方向系统符号符号名称说明穿孔卡片文档磁带联机存储磁盘磁鼓显示人工输入人工操作辅助操作通信链路穿孔卡片输入/输出,或穿孔卡片文件打印输出,或打印终端输入数据磁带输入/输出,或表示磁带文件任何种类磁盘存储,如磁盘、磁鼓等磁盘输入/输出,或磁盘上文件、数据库磁鼓输入/输出,或磁鼓上文件、数据库显示器部件人工输入数据,如填写表格人工完成的处理使用辅助设备进行的脱机操作通过远程通信线路传送数据1.把一个广义的输入输出操作具体化为读写存储在特殊设备上的文件(或数据库);2.把抽象处理具体化为特定的程序

10、或手工操作等。2.3 系统流程图系统流程图例1 库存管理某装配厂有一座零件仓库,仓库中现有各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。如果哪种零件的库存量少于它的临界值时,则应报告给采购部门以便定货。规定每天向采购部门送一次定货报告。2.3 系统流程图装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。仓库中的每一项业务都通过CRT终端输入到计算机中系统中的库存清单程序负责对事务进行处理,更新存储在磁盘上的库存清单主文件必要的定货信息写在磁带上每天由报告生成程序读一次磁带,生成并打印出定货报告库存清单程序报告生成程序事务库存清单程序库存清单主文件订货信

11、息报告生成程序订货报表提纲系统流程图数据流图数据字典成本/效益分析2.4 数据流图简称DFD-Data Flow Diagram图描绘信息流和数据从输入移动到输出的过程中所经受的变换,反映了数据在软件中流动和被处理的逻辑过程数据流图是系统逻辑功能的表示图形化技术,是一种极好的通信工具在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件2.4 数据流图符号表示数据流图有四种基本符号: 数据的源点/终点 变换数据的处理并不一定是一个程序,可以是一系列程序,单个程序或者程序的一个模块,也可以代表用穿孔机穿孔或目视检查数据正确性等人工处理过程。2.4 数据流图一个数据存储也并不等同

12、于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等;数据可以存储在磁盘、磁带、磁鼓、主存、微缩胶片、穿孔卡片及其他任何介质上(包括人脑)。存储:把一个数据存入数据存储;用一个数据去修改数据存储中的数据;从数据存储中读出一个数据;从数据存储中检索出一批数据。数据存储2.4 数据流图数据流表示数据在系统中的流动方向,一般分单向数据流和双向数据流两种。数据流图有六种附加符号:附加符号中的星号(*)表示数据流之间是“与”关系;加号(+)表示数据流之间是“或”关系;符号表示只能从数据流中选一个(互斥关系)。T*+ T*+ 数据流2.4 数据流图数据存储是处于静止状态的数据数据流是

13、处于运动中的数据忽略出错处理,也不包括诸如打开或关闭文件之类的内务处理。数据流图的基本要点是描绘“做什么”而不考虑“怎样做”数据的源点和终点相同,如果只用一个符号代表数据的源点和终点,则至少将有两个箭头和这个符号相连,或者再重复画一个同样的符号数据存储vs数据流处理要点绘图清晰度2.4 数据流图数据流图案例分析一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,列出所有需要再次定货的零件。对于需要订货的零件列出其零件编号、零件名称、定货数量、目前价格、主要供应者、次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于临界值时就应该再次定

14、货。2.4 数据流图数据流图案例分析第一步 提取数据流图的4种成分采购部每天需要一张定货报表通过放在仓库中的CRT终端把事务报告给定货系统数据终点:采购员数据源点:仓库管理员采购部每天需要一张定货报表处理:产生报表零件入库或出库称为事务处理:处理事务当某种零件的库存量少于临界值时就应该再次定货数据存储:库存清单2.4 数据流图2.4 数据流图数据流图案例分析第二步 确定“基本系统模型”定货系统基本数据流图仓库管理员定货系统采购员事务定货报表2.4 数据流图数据流图案例分析第三步 确定“功能级数据流图”将加工(处理)定货系统进行功能分解,变成事务处理和产生报表两部分;考虑有关数据存储问题,涉及到

15、存储的信息有:库存清单、定货信息;定货系统功能级数据流图2.4 数据流图数据流图案例分析第四步 细化数据流图将事务处理进一步分解为接收事务,更新库存清单、处理定货三部分。画出定货系统功能分解后的数据流图2.4 数据流图画数据流图的原则1 确定系统的源点和终点2 确定系统的输入和输出数据流的关系3 保持分解前后输入/输出数据流必须相同(父子平衡)4 尽量简化加工之间的联系5 用“自顶向下”方法,逐层画出数据流图,每张数据流图中加工(处理)的个数不能超过9个(7加减2)6 注意分解速度(一般每分解一层增加2-7个加工)7 在画数据流图时应避免线条交叉,必要时可使用重复的外部项(源点或终点)或数据存

16、储符号8 适当的命名,加工处理要编号2.4 数据流图原则2 确定系统的输入和输出数据流的关系输入数据流学生信息学号姓名预定教材教材ISBN教材价格输出数据流订书单教材ISBN教材价格教材数量“教材数量”数据流被遗漏了2.4 数据流图原则4尽量简化加工之间的联系2.4 数据流图原则5:用“自顶向下”方法,逐层画出数据流图,每张数据流图中加工(处理)的个数不能超过9个(7加减2)为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它

17、的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图2.4 数据流图原则8:适当的命名,加工处理要编号1 为数据流(或数据存储)命名名字应代表数据流(或数据存储)的内容不要使用空洞的、缺乏具体含义的名字如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应试试重新分解2.4 数据流图原则8:适当的命名,加工处理要编号2 为“处理”命名先为数据流命名,再为与之相关联的处理命名名字应反映处理的功能,而不是它的部分功能名字最好由一个具体的

18、及物动词加上一个具体的宾语组成通常名字中仅包含一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更加恰当如果在为某处理命名时遇到了困难,则很可能是发现了分解不恰当的迹象,应考虑重新分解2.4 数据流图数据流图的用途 1 作为交流信息的工具2 作为分析和设计的工具3 数据流图可以辅助物理系统的设计(图)4 数据流图对详细设计也有帮助2.4 数据流图暗示以批量方式更新库存清单2.4 数据流图以联机方式更新库存清单2.4 数据流图检查和修改数据流图的原则数据流图上所有图形符号只限于前述四种基本图形元素数据流图的主图(0层)必须包括前述四种基本元素,缺一不可每个加工至

19、少有一个输入数据流和一个输出数据流在数据流图中,需按层给加工框编号,编号表明该加工所处层次及上下层的亲子关系2.4 数据流图检查和修改数据流图的原则规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡图上每个元素都必须有名字数据流图中不可夹带控制流初画时可以忽略琐碎的细节,以集中精力于主要数据流提纲系统流程图数据字典成本/效益分析2.5数据字典数据流图 & 数据字典数据字典:是关于数据的信息集合,是对数据流图中包含的所有元素定义的集合数据流图描述了系统的“分解”,它表明系统由哪些部分组成数据字典则为数据流图中出现的每一部分都给出“严格定

20、义”,二者有机配合,完整地描述了系统没有数据字典数据流图就不严密,没有数据流图数据字典也难于发挥作用2.5.1 数据字典的内容典型情况记录的信息:一般信息(名字、别名、描述)定义(数据类型、长度、结构)使用特点(值的范围、使用频率、使用方式)控制信息(来源、用户、程序的改变和使用权)分组信息(父结构、从属结构、物理位置)由对下列4类元素的定义组成:(1) 数据流; (2) 数据流分量(即数据元素);(3) 数据存储; (4) 处理2.5.2 定义数据字典的方法数据字典中的定义就是对数据自顶向下的分解,一般来说应分解到每个和工程有关的人都清楚其含义的元素为止。数据的基本类型顺序选择重复 可选 符

21、号= + ( ) 2.5.2 定义数据字典的方法符号含义说明举例=被定义为订书单教材ISBN价格数量+与X=a+b 表示X由a和b组成|或X=a|b 表示X由a或b组成重复X=a 表示X由0个或多个a组成Mn重复X=2a5 表示X中最少出现2次a,最多出现5次a。 5,2为重复次数的上、下限()可选X=(a) 表示a可在X中出现,也可不出现“”基本数据元素X=“a”,表示X是取值为字符a的数据元素.连接符X=1.9,表示X可取1到9中任意一个值在数据字典的定义中出现的符号含义2.5.2 定义数据字典的方法某程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母

22、字符,随后的字符既可以是字母字符也可以是数字字符。使用上面讲过的符号,我们可以像下面那样定义标识符:标识符=字母字符+字母数字串字母数字串=0字母或数字7字母或数字=字母字符数字字符2.5.3 数据字典的用途作为分析阶段的工具用于开发小组之间的通信可控制程序和模块的改变是开发数据库的基础 2.5.4 定义数据字典的实现数据字典的实现开发小系统时可建立卡片每个要定义的名字准备一张卡片在卡片上注明名字、别名、描述、定义、位置、控制信息、使用特点将所有卡片按一定方式排序,如英文字母顺序或汉字笔画多少等名字:定货报表别名:定货信息描述:每一天送给采购员的需要 定货的零件表定义:定货报表=零件编号+零件

23、 名称+定货数量+目前价格 +主要供应者+次要供应者位置:输出到打印机名字:零件编号别名:描述:惟一地标识库存清单中 一个特定零件的关键域定义:零件编号=8字符8位置:定货报表 定货信息 库存清单 事务名字:定货数量别名:描述:某个零件一次定货的数量定义:定货数量=1数字5位置:定货报表 定货信息 2.5.4 定义数据字典的实现案例:存折2.5.4 定义数据字典的实现案例:存折,数据字典定义存折户名所号帐号开户日性质(印密)1存取行50户名2字母24所号“001”.“999” 帐号“00000001”.“99999999”开户日年月日性质“1”.“6” 注:”1”表示普通户,”5”表示工资户等

24、印密“0” 注:印密在存折上不显示存取行日期(摘要)支出存入余额操作复核提纲系统流程图成本/效益分析2.6.1 成本分析软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。成本估计不是精确的科学,因此应该使用几种不同的估计技术以便相互校验。自动估计成本技术任务分解技术代码行技术2.6.1 成本分析1 代码行技术是一种比较简单定量的估算方法,把开发每个软件功能的成本和实现这个功能需要用的源程序代码行数联系起来,若有历史数据作参考的话,这种方法还是有效的。设 T软件成本 N软件源代码行数 A每行源代码的平均成本 T=AN 其中A取决于软件的复杂程度和工资水平2.6.1 成本分析2 任务分

25、解技术把软件开发工程分解为若干个相对独立的任务,然后再分别估计每个单独开发任务的成本,最后累加起来得到软件工程的总成本。估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。2.6.1 成本分析设 T-软件总成本 B-每个单独开发任务的成本 -系数T=B C-完成每个单独任务所需的人力(月)D-每人每月的平均工资 B=CD T=CD2.6.1 成本分析3 自动估计成本技术采用自动估计成本的软件工具可以减轻人的劳动,并且使得估计的结果更客观。但是,采用这种技术必须有长期搜集的大量历史数据为基础,并且需要有良好的数据库系统支持。2.

26、6.2 成本/效益分析的方法成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。运行费用取决于系统的操作费用(操作员人数,工作时间,消耗的物资等等)和维护费用。系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。因为运行费用和经济效益两者在软件的整个生命周期内都存在,总的效益和生命周期的长度有关,所以应该合理地估计软件的寿命。一般设生命周期为5年 。2.6.2 成本/效益分析的方法效益分析的四个重要概念货币的时间价值投资回收期纯收入投资回收率2.6.2 成本/效益分析的方法(1) 货币的时间价值通常使用“利率”的形式表示货币的时间价值i: 年利率P:现在存入的钱n:年n年后可以获得的钱数为F=P(1+i)n这些钱的现在价值为P=F/(1+i)n2.6.2 成本/效益分析的方法修改一个已有的库存清单系统,使它能在每天送给采购员一份定货报表。修改已有的库存清单程序并且编写产生报表的程序,估计共需5000元;系统修改后能及时定货将消除零件短缺问题,估计因此每年可以节省2500元,5年共可节省12500元。但是,不能简单地把5000元和1250

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论