软件工程PPT课件_第1页
软件工程PPT课件_第2页
软件工程PPT课件_第3页
软件工程PPT课件_第4页
软件工程PPT课件_第5页
已阅读5页,还剩153页未读 继续免费阅读

下载本文档

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

文档简介

SoftwareEngineering,软件工程,第2章可行性研究FEASIBILITYSTUDY,软件生命周期,当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为计划时期,问题的定义与可性行研究,Who,What,Why,有用的软件,3W,问题定义阶段,目的:弄清用户需要计算机解决的问题根本所在,以及项目所需的资源和经费。任务:在向用户调查的基础上,编写关于系统规模和目标的报告书。例:教材销售系统学生购买学校教材的手续可能是:先找系办公室开购书申请(用于确定学生可购买的书),凭申请找教材科开购书证明(确定是否卖完),向出纳员交付书款获得领书单,然后到书库找保管员领书。,可行性研究的时机,可行性研究FEASIBILITYSTUDY,可行性研究的目标可行性研究的任务概念可行性研究的过程过程系统流程图工具数据流图工具数据字典工具成本/效益分析方法,主要内容,在最短的时间内花最小的代价确定问题:是否有解?(能不能)是否可解?(行不行)是否值得解?(值不值),避免资源无谓的浪费,可行性研究的目标,可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。不是解决问题,而是确定问题是否值得去解决。可行性研究的实质:进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。,不是解决问题,是确定问题是否值得解是压缩简化的系统分析和系统设计过程在高层次上以抽象方式进行成本占预期总成本的5%10%,高层次:忽略细节抽象:抓住本质,2.1可行性研究的任务,可行性研究:压缩的分析与设计过程,2.1可行性研究的任务,可行性研究阶段任务(示意图),1.进一步分析和澄清问题定义规模和目标:肯定or改正约束与限制:清楚列举2.导出系统逻辑模型可选的系统实现方案每个方案可行性研究(经济、技术、操作、法律、社会)每个方案的进度计划3.项目建议(不可行:停止,可行:推荐方案+计划),2.1可行性研究的任务,可行性研究的任务:(1)技术可行性(有无?掌握?应用?)(2)经济可行性(有钱?找到钱?赚钱?赚多少)(3)操作可行性(行得通?)(4)法律可行性(违背相关法律?)(5)社会可行性(效益?接受?),2.1可行性研究的任务,(1)经济可行性:这个系统的经济效益能超过他的开发成本吗?经济可行性研究主要进行成本效益分析,包括估计项目的开发成本,估算开发成本是否高于项目预期的全部利润。分析系统开发对其他产品或利润所带来的影响。,2.1可行性研究的任务,(2)技术可行性:使用现有的技术能实现这个系统吗?根据系统功能、性能及实现系统的各项约束条件,从技术的角度研究系统实现的可行性。是难度最大的、最重要的工作。系统目标、功能和性能的不确定性会给技术可行性论证带来许多困难。包括:(1)风险分析:在给出的限制范围内,能否设计出系统,并实现必要的功能和性能。(2)资源分析:研究开发系统的人员是否存在问题?可用于建立系统的其他资源,如硬件、软件等是否具备?(3)技术分析:相关技术的发展是否支持这个系统。,2.1可行性研究的任务,(3)操作可行性系统的操作方式在这个用户组织内行得通吗?操作可行性能为新系统规定的运行方式是否可行?如果新系统是建立在原来已担负其他任务的计算机系统上的,就不能要求它在实时在线状态下运行,以免与原有的任务相矛盾。,2.1可行性研究的任务,(4)法律可行性法律可行性是指研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。,2.1可行性研究的任务,(5)社会可行性是否会给社会带来效益社会是否接受?,2.1可行性研究的任务,2.1可行性研究的任务,“没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投得起钱但没有可靠的人选,这样的事也不干。”联想控股有限公司总裁、董事局主席柳传志,可行性研究最根本的任务是对以后的行动路线提出建议:如果问题没有可行的解,应该建议停止这项软件项目的开发;如果问题值得解,应该推荐一个较好的解决方案,并且为项目制定一个初步的计划。,可行性研究的根本任务,2.1可行性研究的任务,(1).复查系统规模和目标(2).研究目前正在使用的系统(3).提出新系统的高层逻辑模型(4).重新定义问题(5).导出和评价供选择的方案(6).推荐行动方针(7).草拟开发计划(8).书写文档提交审查,2.2可行性研究的过程,(1).复查系统规模和目标访问关键人物阅读分析有关资料确认项目报告改正模糊叙述清晰限制和约束描述使分析员正在要解决的问题是用户所提出的问题。,2.2可行性研究的过程,(2).研究目前正在使用的系统现有的系统是构造新系统的基础、是信息的重要来源。现有系统的文档资料的阅读、分析和研究,实地考察。总结出现有系统的优点和不足,进而得出新系统的雏形。与其他系统的联系。画出系统的高层系统流程图。了解现有系统能做什么而不是怎么做!,2.2可行性研究的过程,(3).提出新系统的高层逻辑模型导出现有系统的高层逻辑模型:数据流图。设想目标系统逻辑模型:数据流图。形成目标系统的数据字典。逻辑模型=数据流图+数据字典,2.2可行性研究的过程,(4).进一步定义问题分析员和用户以新系统的逻辑模型为基础复查问题定义、工程规模、目标和约束条件修改已发现的错误形成对新系统一致的意见,2.2可行性研究的过程,前四个步骤是一个循环,定义问题,导出试探解,分析问题,完全符合系统目标,2.2可行性研究的过程,(5).提出和评价供选择的方案提出若干高层次、抽象的供比较和选择的解决方案从技术、经济、操作等方面进行分析比较,研究可行性估算开发成本、运行费用和纯收入对每个可能的系统进行成本/效益分析。,2.2可行性研究的过程,(6)推荐行动方针关键性决定:是否继续开发?(1)本项目的开发价值(2)推荐这个方案的理由(3)详细的成本效益/分析,2.2可行性研究的过程,时间进度人员组织物资需求成本分析,(7)草拟开发计划,2.2可行性研究的过程,书写文档开会论证得出结论是否继续,(8)书写文档提交审查,2.2可行性研究的过程,项目实施计划1.系统概述包括项目目标,主要功能,系统特点,以及关于开发工作的安排2.系统资源包括开发和运行该系统所需要的各种资源如硬件、软件、人员和组织机构等3.费用预算:分阶段的人员费用、机时费用及其他费用4.进度安排:各阶段起始时间、完成文档及验证方式5.要交付的产品清单,可行性研究报告的内容1.引言:说明编写本文档的目的,项目的名称、背景,本文档用到的专门术语和参考资料。2.可行性研究前提:说明开发项目的功能、性能和基本要求,达到的目标,各种限制条件,可行性研究方法和决定可行性的主要因素。3.对现有系统的分析:说明现有系统的处理流程和数据流程,工作负荷,各项费用支出,所需各类专业技术人员和数量,所需各种设备,现有系统存在什么问题。4.所建议系统的技术可行性分析:对所建议系统的简要说明,处理流程和数据流程,与现有系统比较的优越性,采用所建议系统对用户的影响,对各种设备、现有软件、开发环境和运行环境的影响,对经费支出的影响,对技术可行性的评价。,2.2可行性研究的过程,可行性研究报告的内容5.所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益,收益投资比,投资回收周期。6.社会因素可行性分析:说明法律因素对合同责任、侵犯专利权和侵犯版权等问题的分析,说明用户使用可行性是否满足用户行政管理、工作制度和人员素质的要求。7.其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。8.结论意见:说明项目是否能开发,还需什么条件才能开发,对项目目标有何变动等。,2.2可行性研究的过程,2.3系统流程图,1.系统流程图的作用系统流程图是描述物理系统的工具。所谓物理系统,就是一个具体实现的系统,也就是描述一个单位、组织的信息处理的具体实现的系统。在可行性研究中,可以通过画出系统流程图来了解要开发的项目的大概处理流程、范围和功能等。系统流程图不仅能用于可行性研究,还能用于需求分析阶段。系统流程图可用图形符号来表示系统中的各个元素,例如,人工处理、数据处理、数据库、文件和设备等。它表达了系统中各个元素之间的信息流动的情况。,系统流程图作用,系统流程图是描述物理系统的工具。物理系统:就是一个具体实现的系统,也就是描述一个单位、组织的信息处理的具体实现的系统。系统流程图可用图形符号(黑盒子)来表示系统中的各个部件,例如,人工处理、数据处理、数据库、文件和设备等。系统流程图表达了系统中各个元素之间的信息流动的情况。,2.3系统流程图,系统流程图符号,2.3系统流程图,系统流程图符号,2.3系统流程图,系统流程图案例1,2.3系统流程图,例1:某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件上。当仓库零件数量发生变化时,应该及时修改库存清单主文件。如果哪种零件的库存量少于它的库存临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。该装配厂使用一台小型计算机,处理更新库存清单主文件和产生定货报告。零件库存量的每一次变化称为一个事务,由放在仓库中CRT终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的订货信息写在磁带上。最后,每天由报告生成程序读一次磁带,并且打印出订货报告。,部件:包括程序、文档、数据库、人工过程等程序:更新库存清单程序产生定货报告程序文档:定货报告数据:磁盘上的库存清单主文件磁带上的定货信息CRT终端输入事务人工过程:无,订货信息,订货报告,库存清单程序,库存清单主文件,事务,报告生成程序,系统流程图案例1,2.3系统流程图,2.3.3分层,首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能;然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。,第一层:描绘系统关键功能(仅用基本符号),第二层:扩展系统关键功能,第三层:合成后的系统流程图,例2:教材销售系统人工教材销售系统:先找系办公室开购书申请,凭申请找教材科开购书证明,向出纳员交付书款获得领书单,然后到书库找保管员领书。,人工教材销售的系统流程图,计算机教材销售系统:由计算机实现有效性审查(不该购买或已卖完的教材),收书款和发书仍由人工完成。开购书申请和购书证明可一步完成,增加缺书统计和采购功能。,计算机教材销售的系统流程图,数据流图(DataFlowDiagram),是描述数据处理过程的工具。以图形的方式描绘数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能,是一种功能模型。数据流图强调的是数据流和处理过程,只关心系统“做什么”,而不关心系统“怎么做”;一般不考虑时序问题,即不表示过程的序列;只有数据流,没有控制流;既不反映判断和控制条件,也不反映循环过程。,2.4数据流图(DFD),它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。是分析员与用户之间极好的通信工具,也是分析和设计的工具。,2.4数据流图(DFD),数据流图的基本图形元素有4种,有时为了使数据流图便于在计算机上输入和输出,免去画曲线、斜线和圆的困难,常使用对应的另一套符号,这两套符号完全等价。,数据流图(DFD)符号,2.4数据流图,2.4数据流图,例:下图是一个简单的数据流图,它表示数据X从源S流出,经P加工转换成Y,接着经P加工转换为Z,在加工过程中从F中读取数据。,S,p1,P2,F,x,Y,Z,实例,假设采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件,应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于库存量的临界值时,就应该再次定货。,实例,1.数据流数据流是数据在系统内传播的路径,由一组成分固定的数据项组成。如订票单由旅客姓名、年龄、单位、身份证号、日期及目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向即在加工之间、加工与源点终点之间、加工与数据存储之间流动。除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。同一数据流图上不能有同名的数据流。多个数据流可以指向同一个加工,也可以从一个加工发出许多数据流。如:事务、库存信息、订货信息、订货报表,2.4数据流图,2.加工加工也称为数据处理,是以数据结构或数据内容作为加工对象,它对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应编号。例:接收事务、更新库存清单、处理事务、产生报表,2.4数据流图,3.数据存储数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。例:库存清单注:一个数据存储也并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等;数据可以存储在磁盘、磁带、磁鼓、主存、微缩胶片、穿孔卡片及其它任何介质上(包括人脑),2.4数据流图,3.数据存储数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。通常在数据流图中忽略出错处理,也不包括诸如打开或关闭文件之类的内务处理。数据流图的基本要点是描绘“做什么”,而不考虑“怎么做”,2.4数据流图,4.数据源点和终点数据源点和终点是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称外部实体。它们是为了帮助理解系统界面而引入的,一般只出现在数据流图的顶层图中,表示了系统中数据的来源和去处。例:仓库管理员、采购员有时为了增加数据流图的清晰性,防止数据流的箭头线太长,在一张图上可重复画同名的源终点(如某个外部实体既是源点也是终点的情况),在方框的右下角加斜线则表示是一个实体。有时数据存储也需重复标识。,2.4数据流图,5.数据流图的几种附加符号在数据流图中,如果有两个以上数据流指向一个加工,或从一个加工中引出两个以上的数据流,这些数据流之间存在一定的关系。在图2-3中给出描述这些关系所用符号及其含义。其中:*表示相邻两个数据流之间是“与”的关系(同时出现);+表示相邻两个数据流之间是“或”的关系;+表示相邻两个数据流只能选取其中一个(互斥关系)。,2.4数据流图,*和+或和+或图2-3数据流图附加符号使用示例,2.4数据流图,注释(a)数据A和数据B同时输入时才能转换成数据C(b)数据A转换成数据B和数据C(c)数据A或数据B,也可以是数据A和数据B两者转换成数据C(d)数据A转换成数据B或数据C,也可是数据B和数据C两者(e)只有数据A或只有数据B转换成数据C(f)数据A转换成数据B或数据C两者之一,2.4数据流图,(1)抽象性:在数据流图中,具体的组织机构、工作场所、物质流等都去掉,仅剩下信息和数据存储、流动、使用以及加工的情况。这有助于抽象地总结出信息处理的内部规律。(2)概括性:数据流图把系统对各种业务的处理过程联系起来考虑,形成一个总体,具有概括性。数据流图描述的主体是抽象出来的数据。(3)层次性:数据流图具有层次性,一个系统将用多层次的数据流图描述。,数据流图的特性,2.4数据流图,设计数据流图的步骤,2.4数据流图,例1:假设采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件,应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于库存量的临界值时,就应该再次定货。,2.4数据流图,画数据流图的步骤:1.从问题描述中提取数据流图的4种成分数据的源点/终点“通过放在仓库中的CRT终端把事务报告给定货系统”仓库管理员是数据源点;“采购部每天需要一张定货报表”采购员是数据终点。处理“采购部需要报表”,产生报表;事务的后果是改变零件库存量,因此对事务进行的加工是另一个处理处理事务。,2.4数据流图,数据流:“系统把定货报表送给采购部”定货报表;“事务需要从仓库送到系统中”事务。数据存储:处理事务和产生报表这两个处理在时间上明显不匹配,用来产生定货报表的定货信息必须存放一段时间定货信息;零件库存量和库存量临界值需要存储库存清单。,2.4数据流图,2.4数据流图,2.画基本系统模型由若干个数据源点/终点和一个处理组成。,定货系统的基本系统模型,2.4数据流图,3.细化,描绘系统的主要功能(功能级数据流图),定货系统的功能级数据流图,2.4数据流图,4.对系统主要功能进一步细化,把处理事务的功能进一步分解后的数据流图,2.4数据流图,细化时注意:当进一步分解涉及如何具体的实现一个功能时就不应该再分解了。当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入输出数据流必须相同。注意对处理进行编号的方法。,画数据流图的目的是让用户明确系统中数据流动和处理的情况,即系统的基本逻辑功能。对于一个大型系统来说,数据流图的表示方法不是唯一的。较好的方法是分层次地描述系统。顶层数据流图描述系统总体概貌,表明系统关键功能,然后分别把每个关键功能适当地详细描述。这样分层次描述,便于用户逐步深入地了解一个复杂的系统。,2.4数据流图,2.4数据流图,2.4数据流图,例2:高考录取统分子系统功能如下:(1)计算标准分根据考生原始分计算标准分,存入考生分数文件;(2)计算录取线分根据标准分和招生计划文件中的招生人数,计算录取线分,存入录取线文件。,2.4数据流图,1.提取数据流图的四种成分数据源点和终点:考生处理:(1)计算标准分(2)计算录取线分数据存储:(1)考生分数文件(2)招生计划文件(3)录取线文件数据流:原始分;标准分;招生人数;录取线分,2.4数据流图,2.画基本数据流图,2.4数据流图,3.画功能级数据流图,例3:教材销售系统人工:先找系办公室开购书申请,凭申请找教材科开购书证明,向出纳员交付书款获得领书单,然后到书库找保管员领书。计算机:包括销售和采购两大功能。销售时,根据学生用书表和教材库存清单对购书单进行有效性审查,通过审查后得到有效购书单,并将缺书信息写入缺书表。交完款后开领书单,根据领书单更新教材库存清单。采购时,将缺书表中的信息汇总生成采购单,新书进库时更新教材库存清单。,人工教材销售系统的数据流图,基本数据流图,基本数据流图,功能级数据流图,销售功能细化的数据流图,采购功能细化的数据流图,数据流图的用途画数据流图目的是利用它作为交流信息的工具,数据流图的作用主要有以下几条:1.系统分析员用这种工具可以自顶向下分析系统信息流程。2.可在图上画出需要计算机处理的部分。3.根据数据存贮,进一步作数据分析,向数据库设计过渡。,2.4数据流图,4.根据数据流向,定出存取方式。5.对应一个处理过程,用相应的语言、判定表等工具表达处理方法。利用数据流图把对现有系统的认识或目标系统的设想描绘出来,供有关人员审查确认。由于在数据流图中通常仅使用四种基本符号,而且不包含任何有关物理实现的细节,因此,绝大多数用户都可以理解和评价它。,2.4数据流图,需要注意的问题画数据流图需要注意的问题有以下几点:1.命名:不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。(1)数据流的命名:为每一个数据流命名。数据流的命名与数据流图的可理解性密切相关。命名时应避免使用空洞的名字,例如“数据”、“信息”、“输出”等等,因为这些名字并没有反映出任何实质性的内容。如果发现难以命名,不妨考虑重新分解数据流或处理过程,很可能原来的组成不合适。名字要反映整个数据流的含义,而不是其中某一部分。,2.4数据流图,(2)加工的命名:为加工命名时,先命名数据流,再命名加工,这样的次序反映了自上而下方法的特性。例如图2-7(a)中,当数据流已经命名后,加工的命名可以自然地给予“检查成绩单的合格性”;而图2-7(b)中处理过程已命名,但无法为几个数据流命名。为加工命名时,名字要反映整个处理过程,而不是它的一部分;名字应当是一种“动词+宾语”的形式;遇到不能适当命名的加工时,要考虑重新分解。名字中只需用一个动词,如果必须用两个以上的动词,则应该将它分解成几个加工。,图2-7处理过程的命名,2.4数据流图,2.画数据流不是控制流;数据流图反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。3.一般不画物质流:数据流反映的是能用计算机处理的数据,并不是实物,因此系统的数据流图上一般不要画物质流,如图书馆借书系统中,图书也在流动,但不需要画书,因为取书是“人工”行为。4.每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。,2.4数据流图,5.编号:适当地给出编号,有利于系统的理解。对加工的编号,随着逐层展开,也应反映出它的层次关系。如果一张数据流图中的某个加工分解成另一张数据流图,则上层图为父图,直接下层图为子图。子图应编号,子图上的所有加工也应编号,子图的编号是父图中相应加工的编号,加工的编号由子图号、小数点及局部号组成。如图2-8所示:,图2-8父图和子图的编号,2.4数据流图,分层的数据流图,6.父图与子图的平衡:父图中某个加工的输入输出数据流应该与相应子图的输入输出数据流相同,层次数据流图的这种特点称为“平衡”。平衡是指子图的所有输入数据流必须是父图中相应处理的输入,子图的所有输出数据流必须是父图中相应处理的输出。图2-8中子图与父图中加工2.1的输入、输出数据流的数目、名称完成相同,即一个输入流a,两个输出流b和c。父图与子图的平衡,是分层数据流图中的重要性质,保证了数据流图的一致性,便于分析人员的阅读与理解。图2-9的父图和子图是不平衡的,因为子图中没有输入数据流与父图中加工2的输入流m相对应。另外,子图的输出数据流s在父图中也没有出现。,2.4数据流图,图2-9父图和子图的不平衡,2.4数据流图,7.局部数据存储:当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,称这些数据存储为局部数据存储。画出一个局部数据存储可参考如下原则:当数据存储被用做数据流图中某个加工之间的界面时,该数据存储就必须画出来,一旦数据存储作为数据流图中的一个独立成分画出来时,它与其他成分之间的联系也应同时表达出来,即应画出每个加工是读还是写该数据存储。在图2-10中,当加工3被分解成3.1、3.2和3.3三个子加工时,“成绩表”是加工3.1和3.3的界面,应该画出来。,2.4数据流图,图2-10局部数据存储,2.4数据流图,8.提高数据流图的易理解性:经验表明,人们能有效地同时处理7个或7个以下的问题。一般是一次“最多不要超过7个”。当然,并不能机械地套用这个经验,而应该根据实际情况来定,关键是要使DFD易于理解。一般应做到分解自然,概念合理、清晰,在不影响易理解性的基础上适当地多分解,以减少层次数据流图的层数。一般来说,因为上层是一些综合性描述,分解要快些,而在下层易理解性相对重要则分解慢些。分解时要注意子加工的独立性,还应注意均匀性,特别是画上层数据流时,要注意将一个问题划分成几个大小接近的组成部分,这样便于理解。不要在一张数据流图中出现某些加工已是基本加工,某些加工还要分解好几层。,2.4数据流图,9.随时准备重画:人的思考过程是一种迭代的过程,不可能一次成功,需要不断完善,直到满意为止。对于复杂的系统,很难保证一次就能将数据流图绘制成功。因此应随时准备改进数据流图而用更好的版本来代替。在分析阶段重画几张图是很小的代价,只要能表现出正确的需求,便可以在以后的设计、编程等阶段节省大量的时间,这样做是完全值得和必要的。通常画数据流图需要多次的反复。数据流图只描述了系统的分解,没有表达出每个数据流、数据存储和加工的具体含义。这些信息需要在数据字典表达出来。,2.4数据流图,数据字典(DataDictionary,简称DD)就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同构成了系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难以发挥作用。只有把数据流图及对数据流图中每个元素精确定义的数据字典放在一起,才能共同构成系统的规格说明,它们也是“需求规格说明书”的主要组成部分。,2.5数据字典,数据字典的内容及格式数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。数据字典有以下4类条目:数据流、数据项、数据存储及基本加工。数据项是组成数据流和数据存储的最小元素。源点、终点不在系统之内,一般不在字典中说明。1.数据流条目数据流条目给出了数据流图中数据流的定义,通常列出该数据流的各组成数据项。由数据项组成数据流或数据存储的方式由3种类型构成:,2.5数据字典,(1)顺序:按确定次序连接两个或多个分量。(2)选择:从两个或多个分量中选择一个。(3)重复:将指定的分量重复0次或多次。在定义数据流或数据存储组成时,使用表2-2给出的符号。,2.5数据字典,表2-2数据字典定义中使用的符号,2.5数据字典,2.5数据字典,例1:标识符=字母字符+字母数字串字母数字串=0字母或数字7字母或数字=字母字符数字字符,2.5数据字典,例2:购书单=学号+姓名+书号+数量+单价+总价+书费合计学生用书表=学院编号+专业编号+年级+书号年级=1|2|3|4学号=10数字10,例如,使用表2-2中给出的符号,定义图2-6审核借书数据流图中借书数据流(后面数据字典举例也以图2-6为准)。借书=借书证编号+借阅日期十书名+借阅方式+密码+借阅人+操作员编号密码=字母86操作员编号=“GLY001”“GLY100”借阅方式=教师|学生,2.5数据字典,实例分析,【例2-1】某高校内部用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为市内电话和长途电话,拨校外电话需先拨0,如果是市内电话再接着拨8位电话号码(第1位不是0),如果是长途电话则先拨3位区码,再拨8位电话号码(第1位不是0)。请用数据字典中介绍的符号,定义上述电话号码。,2.5数据字典,解析:电话号码=校内电话号码|校外电话号码校内电话号码=非零数字+3位数字校外电话号码=市内号码|长途号码市内号码=数字零+8位数字长途号码=数字零+3位数字+8位数字数字零=0非零数字=1|2|3|4|5|6|7|8|93位数字=3数字38位数字=非零数字+7位数字7位数字=7数字7数字=0|1|2|3|4|5|6|7|8|9,2.5数据字典,实例分析,数据流条目主要内容及举例如下:数据流名称:购书单别名:购书单据简述:学生购书时填写的单据来源:学生去向:加工1“销售”数据流量:根据事务的需要,一般很频繁组成:学号+姓名+书籍名称+书籍编号+书籍出版社+购书单位个人、集体+单价+数量其中数据流量指单位时间内(每小时或每天或每周或每月)的传输次数。,2.5数据字典,数据流条目主要内容及举例如下:数据流名称:借书别名:借书单简述:读者借书时填写的单据来源:读者去向:加工1“审核借书”数据流量:500份天组成:借书证编号+借阅日期十书名+借阅方式+密码+借阅人+操作员编号其中数据流量指单位时间内(每小时或每天或每周或每月)的传输次数。,2.5数据字典,2.数据存储条目数据存储条目是对数据存储的定义,主要内容及举例如下:数据存储名称:教材库存清单别名:教材信息简述:存放教材信息组成:书号+书名+出版社+数量+出版时间+书籍信息+是否特殊用途教学用、零售组织方式:数据文件,以书号为关键字进行索引查询要求:要求能立即查询并修改,2.5数据字典,2.数据存储条目数据存储条目是对数据存储的定义,主要内容及举例如下:数据存储名称:借书文件别名:无简述:存放读者借书信息组成:借书证编号+借阅日期+书名+借阅方式+密码+借阅人+操作员编号组织方式:数据文件,以借书证编号为关键字进行索引查询要求:要求能立即查询并修改,2.5数据字典,3.数据项条目数据项条目是不可再分解的数据单位,其定义格式及举例如下:数据项名称:书号别名:书籍ISBN简述:本系统中书籍的编号类型:字符串长度:10取值范围及含义:,2.5数据字典,3.数据项条目数据项条目是不可再分解的数据单位,其定义格式及举例如下:数据项名称:借书证编号别名:无简述:本系统中所有读者的借书证编号类型:字符串长度:10取值范围及含义:第1位:教师学生第23位:部门或系别第47位:科室或班级第810位:顺序编号,2.5数据字典,4.加工条目加工条目是用来说明DFD中基本加工的处理逻辑的,由于上层的加工是由下层的基本加工分解而来,只要有了基本加工的说明,就可理解其他加工。加工条目的主要内容及举例如下,2.5数据字典,4.加工条目加工名:审查有效性编号:1.1激发条件:接收到学生的购书单时优先级:普通输入:购书单输出:有效购书单加工逻辑:根据购书单和教材库存清单、学生用书表IF学生所购图书是学生所用的图书AND学生购书单中的数量$500,金额$500,欠款60天,不发出批准书,欠款60天,发出批准书、发货单,欠款60天,发出批准书、发货单及赊欠报告,欠款60天,发出批准书、发货单,(3)判定树,判断树,数据字典中的加工逻辑主要描述该加工“做什么”,即实现加工的策略,而不是实现加工的细节,它描述如何把输入数据流变换为输出数据流的加工规则。为了使加工逻辑直观易读,易被用户理解,有几种常用的描述方法,它们是结构化语言、判定表及判定树。2.5.2数据字典的用途数据流图只描述了系统的“分解”,系统由哪几部分组成,各部分之间的联系,并没有对各个数据流、加工及数据存储进行详细说明。如数据流、数据存储的名字并不能反映其中的数据成分、数据项目内容和数据特性,在加工中不能反映处理过程等。分析人员仅靠“图”来完整地理解一个系统的逻辑功能是不可能的。,2.5数据字典,数据字典是分析阶段重要的工具。在数据字典中建立的定义有助于改进分析员和用户之间的通信,对数据的严密的定义有助于改进在不同的开发人员或不同的开发小组之间的通信。如果要求所有开发人员都根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题。,2.5数据字典,2.5.3数据字典的实现,2.5数据字典,数据字典的实现,通过名字能方便地查阅数据的定义;没有冗余;尽量不重复在规格说明的其他组成部分中已经出现的信息;容易更新和修改;能单独处理描述每个数据元素的信息;定义的书写方法简单方便而且严格。随着软件规模的不断增加,数据字典的规模和复杂程序也在迅速增加,全人工过程维护数据字典几乎是不可能的。目前,数据字典基本是上作用CASE分析与设计工具的一部分实现的。,2.5数据字典,如果暂时还没有自动的数据字典处理程序并且开发的是小型软件,建议采用卡片形式书写数据字典,每张卡片上保存描述一个数据元素的信息。每张卡片上主要应该包含下述信息:名字、别名、描述、定义、位置。手工建立数据字典的内容用卡片形式存放,其步骤如下:(1)按4类条目规范的格式印制卡片。(2)在卡片上分别填写各类条目的内容。(3)先按图号顺序排列,同一图号的所有条目按数据流、数据项、数据存储和加工的顺序排列。,2.5数据字典,(4)同一图号中的同一类条目(如数据流卡片)可按名字的字典顺序存放;加工一般按编号顺序存放。(5)同一成分在父图和子图都出现时,则只在父图上定义。(6)建立索引目录。这种做法较好地实现数据字典的管理要求,特别是更新和修改起来很方便,能够单独处理每个数据元素的信息。当开发过程进展到能够知道数据元素的控制信息和使用特点时,把这些信息记录在卡片的背面。,2.5数据字典,数据字典,名字:定货报表别名:定货信息描述:每天一次送给采购员的需要定货的零件表定义:定货报表=零件编号+零件名称+定货数量+目前价格+主要供应者+次要供应者位置:输出到打印机,名字:零件编号别名:描述:惟一地标识库存清单中一个特定零件的关键域定义:零件编号=8字符8位置:定货报表定货信息库存清单,名字:定货数量别名:描述:某个零件一次定货的数量定义:定货数量=1数字5位置:定货报表定货信息,投资利益最大化(1)降低成本(2)增加收入投资软件OR收取利息?(1)成本估计(2)成本/效益分析,2.6成本/效益分析,2.6成本/效益分析,成本/效益分析的目的正是要从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。,2.6成本/效益分析,2.6.1成本估计(1)代码行(LOC)技术(2)任务分解技术(3)自动估计成本技术,2.6成本/效益分析,2.6.1成本估计,1.代码行技术方法

温馨提示

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

评论

0/150

提交评论