您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程(张海藩)第2章
第2章可行性研究2.1可行性研究的任务2.2可行性研究过程2.3系统流程图2.4数据流图2.5数据字典2.6成本/效益分析2.7小结12.1可行性研究的任务1.目的用最小的代价在尽可能短的时间内确定问题是否能够解决。2.实质进行一次压缩,简化了的系统分析和设计的过程。23.可行性研究应着重考虑如下五个方面:(1)技术可行性使用现有的技术能实现这个系统吗?(2)经济可行性新系统的经济效益能否超过开发成本,(3)运行可行性为新系统规定的运行方式是否可行。(4)操作可行性系统的操作方式在这个用户组织内是否行得通。(5)法律可行性新系统的开发是否会侵犯他人、集体或国家的利益,是否违反了国家的法律,并由此而承担法律责任。32.2可行性研究的过程1.可行性实施步骤开始问题定义可行性研究可行否?NY终止项目的建议项目实施的计划停止转开发期4计划时期的工作流程图5Who为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题?3W有用的软件2.典型的可行性研究的步骤(1)复查系统规模和目标确保分析员提交的报告书确实是用户要求解决的。(2)研究目前正在使用的系统现有系统要完成的工作就是新系统所具备的功能;现有系统存在的缺点,新系统必须加以改进;现有系统所不具备的功能,又是用户必须的,则新系统一定要预以增加;现有系统所需要的费用是新系统的一个重要的投资依据。67(3)导出新系统的高层逻辑模型从现有的物理系统出发,导出现有物理系统的逻辑模型;再以现有物理系统的逻辑模型为基础,设计出新系统的高层逻辑模型;最后根据高层逻辑模型建造新的物理系统。(4)重新定义问题定义系统目标→复查系统目标和规模→研究现有系统→设计新系统→再定义系统目标。重复这个过程,直到提出的新系统逻辑模型复合系统目标。(5)导出和评价供选择的方案从系统的逻辑模型出发,以系统要求为目标,利用在数据流图上划分自动化边界的方法,我们可以提出若干种较高层次的物理解法供用户选择。针对多种供选方案,用户应从如下三个方面进行筛选:从技术角度排除那些不现实的方案;从操作角度去掉那些操作方式或操作过程用户不能接受的方案;从经济角度估算每个可能系统的成本/效益。89(6)推荐方案和行动方针向用户提出推荐的方案,在推荐方案中应清楚地表明:本项目的开发价值;推荐这个方案的理由;制订实现项目的进度表。(7)决策使用部门的负责人根据经济实力及分析员在可行性研究阶段对开发此项工程成本/效益分析情况的分析结论,决定是否继续这项开发工程。(8)草拟开发计划工程的进度;人才资源的需求及使用;设备资源的需求及使用(软、硬件工具)、估算生存周期每个阶段的成本;给出下一阶段(需求分析)的详细进度表和成本估计。(9)书写文档提交审查102.3系统流程图系统流程图是描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每一个部件。包括程序、文件、数据库、表格、人工过程等。它表达了信息在系统各部件之间的流动情况。11文本输入/输出页连接换页连接数据流系统流程图基本符号121.符号132.应用例:某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果哪种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。装配厂使用一台微机处理更新库存清单主文件和产生定货报告的任务。仓库中的每一项业务都通过CRT终端输入到计算机中;系统中的库存清单程序负责对事务进行处理,更新存储在磁盘上的库存清单主文件;必要的定货信息写在磁带上;每天由报告生成程序读一次磁带,生成并打印出定货报告;库存清单程序;报告生成程序。14152.4数据流图1.定义一种描述“分解”的图示工具描述系统的逻辑模型没有任何具体的物理元素表示信息在系统中流动和处理的情况16--DFD2.符号基本符号数据源点或终点变换数据的处理数据存储数据流或或或17附加符号183.如何画数据流图在数据流图的外围画系统的输入和输出集中精力找出数据流,并与外围的输入输出数据流连接起来给每个数据流命名为加工命名注意:在画数据流图时,应忽视琐碎细节,对一些异常处理,先不要考虑。同时,人类的思维是一种迭代的过程,所以,画数据流图时,应不断反复,逐步完善,直到满意为止。194.例子【问题陈述】某家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。通过CRT终端把事务报告给定货系统。某种零件的库存量少于库存量临界值时就要再次定货。请给出该系统定货情况的数据流图。20【分析】1)根据问题的陈述,把整个数据处理过程看作一个加工,它的输入数据和输出数据实际上反映了本系统与外界环境的接口。系统的顶层数据流图如下所示:212)对问题进行细化。如果缺货,则提供定货信息,同时,还要验证库存中是否有所购货的零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。经过分析后的数据流图如图所示:223)根据需要,对处理功能进行分解,进一步数据流图:235.优点DFD用一种直接而又直观的方法来描述数据的流动和信息系统中的操作。首先,它使用客观图像描述了用户的需求,不带有任何个人或组织的说法或观点。其次,数据流图形象真实,便于用户理解和接受,同时也便于系统分析员之间交流信息。最后,数据流图采用自顶向下分解的多层次图形具有一定的抽象性,而且数据流图不强调控制流,突出数据流,便于找到主要矛盾,省略次要细节,从而减少系统的复杂性。246.缺点DFD图形符号也存在着一定的缺点。首先,数据流图对时间、界面等方面的内容无法表达。其次,DFD只能做出粗略的模型,而如果需要更精确、更详细的说明时,DFD无法做到。257.用途作为信息交流的工具;作为分析和设计的工具;数据流图可以辅助物理系统的设计(图);数据流图对详细设计也有帮助。262.5数据字典1.定义数据字典是关于数据信息的集合。数据字典是数据流图中所有元素(包括数据流、数据流的组成、文件及其它应进入数据字典的一切数据)严格定义的场所。272.与数据流图的联系数据流图描述了系统由哪几部分组成,各部分之间有什么联系等等,没有说明系统中每个成分是什么含义。因此,仅仅一套数据流图并不能构成系统说明书,只有为图中出现的每一个成分都给出定义后,才较完整地描述了一个系统。数据字典中所有名字的定义就够成了一本字典28数据流图+字典需求说明书数据流图中出现的每一个数据流名、每一个文件名和每一个加工名在字典中都应有一个条目给出这个名字的定义。293.数据字典的内容数据流数据流分量(即数据元素)数据存储处理304.定义数据的方法组成数据的方式1)顺序——以确定次序连接两个或多个分量2)选择——从两个或多个可能的元素中选取一个3)重复——把指定的分量重复零次或多次4)可选——一个分量是可有可无的31数据字典的符号定义符号含义解释=定义为…由……组成+与即以确定的关系连接两个或多个成分[…,…]或即从两个或多个成分中选择一个。[…|…]或例如,x=[a|b],表示x由a或b组成{…}重复把特定的成分重复一次或多次m{…}n重复例如,x=3{a}8,表示a出现的次数3到8次**注释对相应条目加以说明325.实现卡片信息⑴名称:数据元素(数据对象或控制项、数据存储或外部实体)的名字。⑵别名或编号:数据元素的别名是同一元素的其他等价名字,对于同一数据元素,由于不同用户使用了不同的名字,或者由于系统分析员在不同时期、不同场合对同一数据元素使用了不同的名字,导致别名现象的产生。但是应该注意,系统分析员应尽量避免使用别名。⑶分类:数据流、加工、数据存储、数据对象、外部实体、控制项。⑷描述:描述内容或数据结构等。⑸位置:使用该词条的加工。33卡片建立1)为每一个要定义的名字准备一张卡片2)在卡片上写上这个名字和基本元素3)写上这个名字的定义4)写上这个名字的其他特性及种种限制5)将所有卡片按名字的字典次序排列起来34名字:定货报表别名:定货信息描述:每天一次送给采购员的需要定货的零件表定义:定货报表=零件编号+零件名称+定货数量位置:输出到打印机+目前价格+主要供应者+次要供应者6.实例35文件名:职工描述:包括了专职职工的所有信息别名:无组成:姓名+工号+开始工作日期+工资+部门+1{项目号+项目负责人}3数量:5000组织:按工号递增排列注释:………367.用途作为分析阶段的工具能单独处理描述每个数据元素的信息开发数据库的起点372.6成本/效益分析1.成本估计:(1)代码行技术(LOC技术)代码行技术是比较简单的定量估算方法,它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。通常先根据经验和历史数据来估计实现一个功能所需要的源程序行数,然后用每行代码的平均成本乘以行数就可以确定软件的成本。38估计步骤1)确定功能:把项目功能反复分解到足够细,直到可以对为实现该功能所需要的源代码行数作出可靠的估算为止。2)算出各子功能代码行数的平均值:首先根据经验和历史数据对每个子功能估计其程序规模的大小,即最小规模a,最大规模b和最可能的规模m,然后用下式计算该子功能的源代码行数的平均值Le:46ambLe393)确定各子功能的代码行成本和生产率:代码行成本指生产一条有效代码需要的花费(用元/行表示),生产率指每个人一个月所能生产的有效源代码行数(用行/人月表示),根据历史提供数据和开发人员工资率就可以估算出每行代码的成本。同样,凭经验和开发人员的技术水平、软件复杂程度等因素可以估算出软件生产率。404)计算各子功能的成本和人力(工作量):每个子功能的成本等于其代码行的平均值乘以其代码行成本。每个子功能的人力等于其代码行平均值除以其生产率。5)计算该项目的总代码行数、总成本和总工作量。41(2)任务分解技术把软件系统分解为若干个独立的任务,然后再分别估计每个单独开发任务的成本,最后累加起来得到软件系统的总成本。设:T-软件总成本B-每个单独开发任务的成本-系数T=∑BC-完成每个单独任务所需的人力(月)D-每人每月的平均工资B=C·DT=∑·C·D42(3)自动估计成本技术减轻人的劳动但要有大量的经验数据作基础,要有良好数据库系统支持。432.成本/效益分析的方法:四个重要的概念:货币的时间价值投资回收期纯收入投资回收率44(一)货币的时间价值i-年利率P-现在存入的钱n-年n年后可以获得的钱数为F=P×(1+i)n这些钱现在的价值为P=F/(1+i)n(二)纯收入是指在整个生存周期之内系统的累计经济效益(折合成现在值)与投资之差。45(三)投资回收期是工程累计的经济效益等于最初投资所需要的时间。显然,投资回收期越短,就能越快地获得利润,因此这项工程也就越值得投资。(四)投资回收率类似于把资金存入银行或贷给其它企业能够获得利息,通常用年利率衡量利息多少,这就叫投资回收率。如果投资回收率等于银行的年利率,则此系统没有必要开发,因为它不能增加收入,所以只有投资回收率大于年利率时,才考虑开发问题。46例:一个应用软件系统的开发成本需5000元,系统投入运行后每年可节约2500元,当年利率为12%时,计算该软件系统的投资回收期、纯收入和投资回收率。年将来值(1+i)现在值累计现在值125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.949011.94-5000=4011.94(元)2+(5000-4225.12)/1779.45=2.44(年)本题的投资回收率为41%-42%。47n
本文标题:软件工程(张海藩)第2章
链接地址:https://www.777doc.com/doc-1371806 .html