软件工程第二章课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第2章可行性研究2.1可行性研究的任务2.2可行性研究过程2.3系统流程图2.4数据流图2.5数据字典2.6成本/效益分析2.7小结22.1可行性研究的任务目的:确定问题是否值得去解决。实质:在较高层次上以较抽象的方式进行的系统分析和设计的过程。从三方面进行分析:技术可行性经济可行性操作可行性任务:对以后的行动方针提出建议。32.2可行性研究过程复查系统规模和目标研究目前正在使用的系统导出新系统的高层逻辑模型进一步定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查42.3系统流程图概括地描绘物理系统的传统工具。用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。表达的是数据在系统各部件之间流动的情况(物理数据流图),而不是对数据进行加工处理的控制过程(程序流程图)。52.3.1符号基本符号6库存清单系统的系统流程图72.4数据流图数据流图(DFD)是是系统逻辑功能的图形表示,描绘信息流和数据从输入移动到输出的变换过程。不涉及具体的物理部件,只描绘数据在软件中流动和被处理的逻辑过程。不需要考虑怎样具体地实现这些功能是分析员与用户之间极好的通信工具82.4.1DFD符号92.4.1符号102.4.1符号箭头表示数据流的流动方向程序流程图箭头表示控制流应该描绘所有可能的数据流向不能描绘出现某个数据流的条件忽略出错处理,打开或关闭文件之类的内务处理。是描绘“做什么”而不考虑“怎样做”。11分层的数据流图12在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。132.4.3命名为数据流(或数据存储)命名(1)是名词或名词短语,画数据流而不是控制流,一般不画物质流(人民币)。(2)名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。(3)不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。数据流命名1142.4.3命名为数据流(或数据存储)命名(4)如果命名有困难,则很可能是因为对数据流图分解不恰当,试试重新分解。(5)每个加工至少有一个输入数据流和一个输出数据流。数据流命名215为处理命名(1)通常先为数据流命名,然后再为与之相关联的处理命名。(2)名字应该反映整个处理的功能,而不是它的一部分功能。(3)名字最好是“及物动词+宾语”结构。应该尽量避免使用“加工”、“处理”等。2.4.3命名处理的命名116(4)如果必须用两个动词才能描述整个处理的功能,则可能需要再分解。(5)如果某个处理不好命名,应考虑重新分解。(6)分层的数据流图7+/-2个加工编号要一致(7)父图与子图的平衡:保证数据流图的一致性2.4.3命名处理的命名217父图与子图的平衡数据流命名32.12.22.3edcab2.1.3a2aa12.1.12.1.2bc图2图2.118父图与子图的平衡数据流命名34订货单提货单父图子图44.14.2提货单客户帐号4.3数量19(1)数据源点/终点是目标系统的外部项(人员、外设、传感器)。(2)局部数据存储只有当它作为某些加工的数据接口或某个加工特定的输入或输出时,就把它画出来(信息隐蔽)局部数据存储:不是父图中相应加工的外部接口,只是本图中某些加工之间的数据接口。(3)提高可理解性:加工功能相对独立,减少数据流的数目。2.4.3命名其它元素20储蓄系统数据流图一个储蓄系统,完成以下功能:储户存款根据存款单检查帐户信息,如果是新开户,则添加此储户信息,并更新帐户;否则更新储户的帐户信息储户取款检查取款单,如果是合法用户,更新帐户信息。DFD案例210层DFD储蓄系统储户储户存款/取款单存款/取款信息1层DFD存款信息存款/取款单接收并分类取款信息存款取款打印p1p2p3p4存款/取款信息存款信息取款信息取款信息验证身份帐户信息P3.1验证帐户P3.2更新帐户P3.3取款信息取款信息取款信息2层DFD22定货系统基本系统模型DFD案例23定货系统的功能级数据流图24进一步分解后的数据流图252.4.4用途分析员与用户交流信息的工具直观易理解避免自然语言歧义性分析和设计的工具根据系统的逻辑模型考虑系统的物理实现26自动化边界——批量方式更新库存清单27自动化边界——联机方式更新库存清单282.5数据字典定义数据流图中包含的所有元素与数据流图共同构成系统的逻辑模型分别对DFD中元素的定义:(1)数据流(2)数据流分量(即数据元素)名字、别名、描述、数据类型、长度、结构、值的范围、使用方式、控制信息、分组信息等(3)数据存储(4)处理(结合IPO图或PDL)292.5.2定义数据的方法对数据自顶向下的分解,分解到不需再分解。由数据元素组成数据三种基本类型:顺序、选择、重复符号:=:等价于(或定义为);+:和(即,连接两个分量);[]:或(即,从方括弧内列出的若干个分量中选择一个),通常用“|”号隔开供选择的分量;{}:重复(即,重复花括弧内的分量);():可选(即,圆括弧里的分量可有可无)。30标识符的定义定义式方法标识符=字母字符+字母数字串字母数字串=0{字母或数字}7字母或数字=[字母字符|数字字符]含义很明确,分解到此为止。31存折格式DD案例32存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}50户名=2{字母}24所号=“001”..“999”帐号=“00000001”..“99999999”开户日=年+月+日性质=“1”..“6”注:“1”表示普通户,“5”表示工资户等印密=“0”注:印密在存折上不显示存取行=日期+(摘要)+支出+存入+余额+操作+复核332.5.3数据字典的用途用途:是作为分析阶段的工具定义严谨,改进分析员和用户之间的通信包含的每个数据元素的控制信息(判断作用范围)是开发数据库的第一步(基础关键)342.5.4数据字典的实现CASE“结构化分析与设计工具”实现采用卡片形式书写名字:定货报表别名:定货信息描述:每天一次送检采购员的需要定货的零件表定义:定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者位置:输出到打印机}数据结构struct定货报表{char零件编号[8];char零件名称[20];int定货数量;float目前价格;structsupplier主要供应者;structsupplier次要供应者;};35若修改“零件编号”的定义,则受到影响的数据均列于此名字:零件编号别名:无描述:唯一地标识库存清单中一个特定零件的关键域定义:零件编号=8{字符}8位置:定货报告定货信息库存清单362.6成本/效益分析开发软件目的:期望更大的经济效益。风险:系统的开发成本可能比预计的高,效益可能比预期的低。效益分析目的:从经济角度分析开发一个特定的新系统是否划算,支持决策。372.6.1成本估计软件开发成本:人力消耗(乘以平均工资则得到开发费用)估算技术1.代码行技术根据经验和历史数据估计实现一个功能需要的源程序行数每行代码的平均成本主要取决于软件的复杂程度和工资水平38估算技术2.任务分解技术工程分解为若干个相对独立的任务按阶段划分按子系统划分分别估计每个单独的开发任务的成本每个任务的成本=耗费人力(人月)*人月平均工资累加得到工程的总成本39估算技术40估算技术3.自动估计成本技术采用自动估计成本的软件工具长期搜集的大量历史数据为基础有良好的数据库系统支持412.6.2成本/效益分析的方法估计开发成本、运行费用和新系统将带来的经济效益运行费用取决于系统的操作费用(人员数、工作时间、损耗等)和维护费用系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。总的效益和估计的软件寿命有关。42货币的时间价值比较新系统的开发成本(当前)和经济效益(未来)用利率的形式表示货币的时间价值。假设年利率为i,若现在存入P元,则n年后可以得到的钱数为:F=P(1+i)nP元钱在n年后的价值是F=P(1+i)n反之,n年后收入F元钱的现在价值是P=F/(1+i)n43货币的时间价值例:修改一个已有的库存清单系统,使它能在每天送给采购员一份定货报表。修改已有的库存清单程序并且编写产生报表的程序,估计共需5000元;系统修改后能及时定货将消除零件短缺问题,估计因此每年可以节省2500元,5年共可节省12500元。假定年利率为12%,利用上面计算货币现在价值的公式可以算出修改库存清单系统后每年预计节省的钱的现在价值,如表2.3(见书51页)所示。44货币的时间价值45投资回收期用来衡量一项开发工程的价值是使累计的经济效益等于最初投资所需要的时间投资回收期越短就能越快获得利润是一项经济指标46纯收入在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。9011.94-5000=4011.94投资回收率衡量投资效益的大小通常和年利率相比较,衡量经济效益47作业&思考题教材P53习题2思考题:第3题作业题:第5题

1 / 47
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功