1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,目录,1,需求分析是软件项目的立足之本,2,需求分析阶段的团队组织,3,需求管理,4,需求分析阶段的项目管理,1,为什么要做需求管理?,一天,一家爱斯基摩人来找你帮忙做一个杯子。,要求:这个杯子在使用时要能适应北极的环境。,这家人承诺:杯子做好后会有高额的酬谢。,你心里想:所谓适应北极环境。北极的地面很硬。那应该做一个结实的杯子。于是你历经千辛万苦做出了:,爱斯基摩人不断摇头,决定一分钱也不付给你。,最后你才知道,
2、他们需要一个拿着不冻手的杯子。他们的真实需求是这样的:,2,为什么要做需求管理?,客户不知道自己要什么,客户:,塑料杯,、,木头杯,、还是,橡胶杯,,我也不知道!,客户知道自己要什么,但表达不清,客户提要求:使用时要能,适应北极,的环境。,我们经常会对客户的要求产生错误的理解,我们的理解:他一定要一个,结实,的杯子!,我们不能知其然,而不知其所以然。要做好需求管理。,3,什么是,需求规格说明书,?,需求规格说明书,概念,软件开发项目中用于,明确定义系统需求,的文档。,需求规格说明书的作用,开发者与用户间事实上的技术合同书,开发者下一步设计和编码的基础,测试验收目标系统的依据,4,功能性需求:,
3、用来描述系统所应提供的功能和服务,系统功能,输入输出,异常,非功能性需求:不直接与系统的具体功能相关的一类需求,安全性,可扩展性,响应时间,需求规格说明书,的构成,5,用例详细描述,-,格式,前置条件,用例开始时会发生什么,事件流,用例执行的各个步骤,后置条件,用例结束时会发生什么,6,用例详细描述,示例,前置条件:,系统管理员登录系统,事件流:,1,、系统管理员在系统菜单中选择“用户管理”时用例开始,2,、系统管理员可以增加一个系统用户,3,、系统管理员可以根据用户名查询系统用户,4,、对于每一个用户,a,)系统管理员可以查看该用户的详细信息,b,)系统管理员可以为该用户分配角色,c,)系统
4、管理员可以删除该用户,循环结束。,后置条件:,系统管理员执行的用户管理动作生效,7,为什么要用静态原型法?,遇到下面的问题,你该怎么办?,耗时耗力地完成了系统,用户却说这根本不是他想要的?,系统完成了,可用户突然说,能不能换套系统界面?,项目开发完一半了。用户说,你说,开发完一半了,给我演示看看?,静态原型法,可以帮助我们,避免,这些问题。,8,什么是静态原型法?,以少量代价快速地构造一个可执行的软件系统模型,使用户和开发人员可以,较快地确定需求,9,静态原型法的实施,快速建立一套用户界面原型,体现主要的功能(操作命令的使用),提供基本的界面风格(菜单格式、输出格式),原型的表现工具,HTML
5、MS Visio,MS PowerPoint,.,10,需求管理小结,用例详细描述中的前置条件、后置条件和事件流分别是什么含义?,在项目开发过程中使用静态原型法有什么好处?,什么是,需求规格说明书,?,11,为什么要做设计?,一天,上帝来到小王的家里,请他帮忙制作两个人!,小王理解了上帝的需求,没有做设计,直接开始动手。,做到一半之后,小王发现越做越不对,然后,反复的修改,疲惫不堪,最后期限到来,上帝来向小王要人。小王面带羞涩的,将他的工作成果拿给上帝,想象一下此时上帝的表情!,12,什么是软件设计?,软件需求:系统“做什么?”,上帝要求:我要做两个人(软件系统)!,软件设计:系统“怎么做?
6、人的骨架(系统框架)应该怎么做,.,人的大脑(系统数据库)应该怎么做,.,人的皮肤(系统界面)应该怎么做,.,人的性格(系统性能)应该怎么做,.,设计的目标就是使所设计的系统能够被开发方,顺利地实现,并且恰如其分地满足用户的需求,13,概要设计,描绘出软件的概貌,详细设计,在概要设计的基础上再将其细化,得到一个非常接近于源代码的设计表达形式,软件设计的两个阶段,软件设计,详细设计,概要设计,14,软件概要设计,概要设计,系统设计:系统具体的技术方案,与其他系统的接口方式,系统设计需要考虑到:,硬件环境、软件环境、网络环境,用户操作水平,团队技术能力,开发时间限制,结构设计:,确定程序是由哪
7、些模块组成的,各模块分别完成什么样的功能,它们之间存在着什么样的关系,概要设计的核心是系统框架设计,15,软件详细设计,(1),详细设计的核心是,将业务模型映射到技术模型,业务模型,技术模型,执行,select book_name from sys_book where book_no=,书籍编号,and book_status=,已预订,and book_subscribe_stu_no ,学生借书卡编号,。如果查询到,1,条记录,则抛出异常,异常信息为:“图书,图书名称,已经被预订,不能借出。”;否则,继续处理。,学生到图书馆申请借书,图书管理员登录图书管理系统。首先,,检查这本书是否已经
8、被预订了,如果已被预订则不能借出。,16,软件详细设计,(2),详细设计还包括,实现某一功能时,具体包含哪些类、方法、类。以及类之间的关系和调用顺序,对应的界面如何展示,如何交互,界面间如何切换,核心算法的伪代码,数据库设计的工作,17,5.1,需求分析是软件项目的立足之本,需求分析是整个软件项目开展工作的基础,需求分析质量的好坏,直接关系到软件项目交付成果的客户满意度,甚至整个项目的成败。,如果需求分析工作做的不扎实,无论设计阶段工作完成得如何出色、软件编码质量如何高,其结果将只会给用户带来失望,给开发者带来失败的苦恼,。,18,1.,软件需求在软件项目中的作用:,19,2.,需求分析主要工
9、作内容,刻画出软件系统的功能和性能、指明软件和其他系统元素的接口、并建立软件必须满足的约束条件;,建造软件体系结构,分解软件系统模块,建造软件处理的数据、界面和处理流程的设计模型;,提交,需求分析说明书,,形成软件项目管理过程的第一个里程碑成果。,20,3.,需求分析阶段的主要任务,问题分析(即如何获取需求?),需求描述(即如何定义需求?),需求的验证,21,这一阶段,系统分析人员应该将自己对客户需求及问题的理解与自己所拥有的软件开发经验结合起来,以便发现哪些需求是由于用户的片面理解和短期行为所提出的不合理的要求,哪些要求是由于尚未提出但拥有真正价值的潜在要求。,(,1,)问题分析,22,以需
10、求模型为基础,考虑问题的软件可解性,生成需求规格说明书和初步的用户手册。,需求规格说明书,包含对目标系统外部行为的完整描述、需求验证标准以及用户对系统在性能、质量、对维护性等方面的要求。,用户手册,则包括用户界面描述以及有关目标系统使用方法的初步构想。,(,2,)需求描述,23,(,3,)需求验证,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明书进行复核,以确保软件需求的,全面性,、,精确性,、,一致性,、,可行性,以及用户的认同,并使用户和软件设计人员对需求规格说明及用户手册的理解达成共识,达成对目标系统理解的一致性。一旦发现遗漏和模糊点,必须进行检查,尽快更正。,24,4,
11、软件需求的抽象层次,25,一组完整的软件需求包含,5,项内容:,(,1,)系统的输入,(,2,)系统的输出,(,3,)系统的功能,(,4,)系统的属性,(,5,)系统环境的属性,26,系统需求的描述语言,结构化语言,是对自然语言格式化,依赖于定义标准格式或模板来表达需求描述,表现能力强,易于理解,一致性约束,控制结构,图形化显示,仍然有一定 程度的二义性;细致程度欠缺,名称,说明,优点,缺点,过程设计语言,PDL,源于像,Java,或,Ada,这样的程序设计语言,包含附加的、更抽象的构造来提高其表达能力,通过软件工具进行语法和语义检查,表达系统功能的能力不足,使用的符号只有具有程序设计背景的人
12、才能理解,27,系统需求的分类,(1),功能需求,(,2,)非功能需求,(,3,)领域需求,28,非,功,能,需,求,产品需求,可用性需求,效率需求,性能需求,空间需求,可靠性需求,可移植性需求,机构需求,交付需求,实现需求,标准需求,外部需求,互操作需求,道德需求,立法需求,隐私需求,安全性需求,29,5.,需求分析一般包含,4,个过程,(,1,)系统分析员和用户开展面对面的交流,记录用户提供的信息,即开展获取活动;,(,2,)需求分析员处理从用户那里获取的信息并理解它们,把他们分成不同的类别,并将客户需求同可能的软件需求相联系,即开展分析活动;,(,3,)系统分析人员将客户需求信息结构化,
13、编写成文档和示意图,形成需求规格说明书;,(,4,)组织用户代表评审文档并纠正存在的错误,完成需求的验证工作。,30,6.,需求分析的工作模式,需求三步法:,第一步:,“,访谈式,”,第二步,:,“,诱导式,”,第三步,:,“,确认式,”,31,第一步,:,“,访谈式,”,和具体用户方的领导层、业务层人员进行访谈式沟通,主要目的从宏观上把握用户的具体需求方向和趋势,了解现有的组织架构、业务流程、硬件环境、软件环境、现有系统等具体情况,建立起良好的沟通渠道和方式。,针对具体的职能部门,最好能制定本次项目的接洽人。,32,图 需求分析第一阶段角色及工作流程,用户方,分析人员,项目经理,支持,确认,
14、执行,反馈,协调,协同,监督,输出结果,访谈备忘录,调查结果,业务流程报告,配合,请求,/,计划,需求,分析,第一,阶段,组织构架,业务流程,软硬件环境,现有的运行系统,用户的需求描述,访谈、发放调查表格,33,第二步,:,“,诱导式,”,是在分析人员已经了解了具体用户方的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等信息的基础上,结合现有的硬件、软件实现方案,做出简单的用户流程和操作界面,同时结合以往的项目经验对用户采用诱导式、启发式的调研方法和手段,和用户一起探讨业务流程设计的合理性、准确性、方便性、习惯性和操作性。,34,配合,审查,执行,反馈,协调,协同,监督,输出结果,访谈
15、备忘录,调查分析报告,业务流程反馈报告,确认,请求,/,计划,需求,分析,第二,阶段,用户方,分析人员,项目经理,诱导、演示、模拟,组织构架,业务流程,软硬件环境,现有的运行系统,用户的需求描述,图,需求分析第二阶段角色及工作流程,35,在前两个阶段成果的基础上,进行具体的流程细化,数据项的确认阶段。,这个阶段的分析人员需要完成明确的业务流程报告、数据项描述,最好能够提供修改后的,DEMO,系统,并能清晰地向用户描述系统的业务流程设计目标。,用户可以通过审查业务流程报告、数据项描述以及通过操作开发方提供的,DEMO,系统,提出反馈意见,并对已经完成并可接受的报告、文档签字确认。,第三步:“确认
16、式”,36,配合,确认,执行,提交,协调,协同,审查,输出结果,原始演示系统,调查分析报告,提议,请求,/,计划,需求,分析,第三,阶段,用户方,分析人员,项目经理,诱导、演示、模拟,业务流程报告,软件环境报告,现行系统接口报告,用户的需求描述,图,需求分析第三阶段角色及工作流程,37,7.,软件需求文档,软件项目客户,了解软件项目能够提供的软件产品,检查软件需求是否满足需要,项目管理人员,根据需求文档制定项目的开发计划和软件过程,初步预测资源的使用,软件开发人员,理解要开发的产品及具体要开发的内容,软件测试人员,验证软件系统是否满足了预期的要求,软件维护人员,使用需求文档帮助理解软件系统内在
17、的逻辑关系,软件发布人员,在需求文档的基础上编写用户文档,如用户手册,使用对象,需求文档的作用,软件培训人员,在需求文档的基础上编写培训材料,38,8.,需求分析阶段性成果,需求分析的重要阶段性成果有,:,(1),用户需求说明书,(2),需求分析模型文档,(3),需求规格说明书,39,用户需求说明书,与,需求规格说明书,的主要区别,1,)前者主要采用自然语言来表达用户需求,其内容相对于后者而言比较粗略,不够详细。,2,)后者是前者的细化,更多地采用计算机语言和图形符号来刻画需求,即将开发的软件产品的需求,产品需求是软件系统设计的直接依据。,40,软件需求规格,SRS,说明书,作用:,内容:,大
18、纲:,41,5.2,需求分析阶段的团队组织,由于需求分析是需要开发方与用户方密切协作的一个工作阶段,所以,本阶段的团队管理包含项目参与双方团队的管理工作。,42,项目管理,委员会,项目经理,软件开发方,项目经理,用户方,软件开发,质量检测,配置管理,系统分析,业务职能部,技术部,质量部,需求分析团队组织模型,43,1.,在需求分析阶段参与项目的人员及工作职责如下,(1),项目经理,:,负责需求分析阶段项目进度的安排和控制,;,参与项目的各种资源调度,;,(2),系统分析人员,:,完成软件需求说明书的编制任务。,(3),程序员,:,完成原型系统的开发工作,.,(4),质量管理人员,:,负责组织有
19、关人员完成对需求分析工作的质量审核需求说明书的评审工作。,44,(5),配置管理人员,:,对于通过评审的需求说明书纳入软件的配置管理项,;,(6),用户方的技术人员,:,用户方参与项目的技术负责人员,通过与系统分析人员的沟通,确定系统的技术实现方案。要求该人员具有对需求说明书中系统技术方案的最终签字认可权,;,(7),用户方的业务人员,:,用户方参与项目的业务负责人员,经过与系统分析人员的沟通,确定未来软件系统实现的具体功能和业务模型。要求该类人员对需求说明说中的业务需求具有最终签字认可的权利,.,1.,在需求分析阶段参与项目的人员及工作职责如下,45,把所有与需求直接相关的活动统称为,“,需
20、求工程,”,。,需求工程的活动分为两大类:,一类属于,需求开发,;,需求开发的,目的是:通过调查与分析,获取用户需求并定义产品需求。,另一类属于,需求管理,:,需求管理的目的是:在用户与开发人员方对需求有着共同理解的基础上,维护需求的完整性和一致性,并控制需求的变更,5.3,需求管理,46,需求开发,需求获取,需求分析,需求定义,需求验证,需求管理,需求跟踪,需求变更控制,版本管理,需求复用,需求工程,需求工程结构图,需求工程,47,5.3.1,需求开发,需求开发的过程有,4,个主要活动:,需求获取,需求分析,需求定义,(,规格说明),需求验证,48,1.,需求获取的主要方法,需求获取是需求工
21、程的主体。,对于所建议的软件产品,获取需求是一个从了解、理解到确定不同用户需要和限制的过程。,需求获取的困难有:,(1),分析人员知识领域的缺乏,(2),用户对需求描述不清,(3),对需求理解上的偏差,(4),需求变更,49,(1),基于,调查,的需求获取方法,(2),基于,用例,的需求获取方法,(3),基于,原型法,的需求获取方法,需求获取的方法,50,(,1,),需求调查准备,。一般围绕以下,3,个中心进行,:,首先,要确定需求调查的,内容,;,其次,应当确定需求调查的,方式,;,最后,确定调查的,时间、地点,和,人员,等,(,2,),进行需求调查并记录,。,(,3,),分析用户的需求信息
22、并撰写,用户需求说明书,(,4,),进行需求确认工作,。,需求调查工作流程,51,案例研究,学生管理系统,我系准备设计学生管理系统的软件,以解决日益复杂的学生管理的复杂度问题。本案例目的是实施数据库的规划设计;按照事实发现的步骤,应该如何进行呢?,52,案例说明,事实的发现与收集,1,、,明确组织结构和组织工作的基本流程。,方法:,查阅组织的发展历程和历史;查阅组织的具体结构。,根据对于现在学生管理的基本情况,我们大致可以得到如下的组织结构图:,53,案例说明,事实的发现与收集,2,、确认组织的目的和软件的目标,方法:,与组织首席领导进行正式谈话,目的:,取得组织领导的信任,明确软件的边界,谈
23、话对象:,系总支书记,具体内容:,n,您现在设立这个软件项目的主要目的是什么?,n,有哪些数据让您特别头疼?或者最占用你的日常工作时间呢?,n,你希望软件可以帮助你解决哪些方面的问题?,54,案例说明,事实的发现与收集,定义任务目标:,收集、存储和控制本系学生在管理过程中产生的相关数据,支持面向不同用户的学生数据查询和数据操作工作。,软件基本边界:,单机;学生个体以及学生组织管理,55,案例说明,事实的发现与收集,3,、,确定软件信息系统的任务目标,方法:,这个阶段重要的任务是,与软件系统中所可能涉及到的人员进行引导性的对话,,自由提问是这个阶段的方式。,目的:,这个阶段的目的和任务就是确定,
24、软件的操作角色和视图,56,案例说明,事实的发现与收集,具体内容:,(,1,)总支书记,通常一天里面你会做那些学生工作呢?,您需要软件系统迅速告诉您哪些事情呢?,一些日常的基本数据您是怎样获得的呢?谁来完成这些具体的事情?,57,案例说明,事实的发现与收集,(,2,)辅导员,请描述您每天的具体工作?,你经常和哪些数据打交道?需要使用哪些类型的报告?格式我可以复印一下吗?,系里面给你的任务主要是什么?你是如何完成的?,58,案例说明,事实的发现与收集,维护(录入、更新和删除)学生基本情况,维护(录入、更新和删除)宿舍卫生检查基本情况,维护(录入、更新和删除)学生第二课堂情况,维护(录入、更新和删
25、除)学生上课情况信息,维护(录入、更新和删除)成绩信息,维护(录入、更新和删除)组织发展信息,维护(录入、更新和删除)班级活动情况信息,维护(录入、更新和删除)学会综合量化信息,实现对以下的学生信息的查询:,学生基本信息、班级基本情况、学生违纪情况、学生成绩情况、组织发展情况、学生上课情况、学生综合量化情况,得到对于软件系统的基本任务目标:,59,案例说明,事实的发现与收集,4,、系统的边界定义,目的:,确定软件系统的应用范围和边界以及它的主要用户的视图。(一个特定类型的软件应用视图必须支持一个特定的工作角色或者是业务范围),方法:,在软件系统开发生命周期的这个阶段,开发人员应当和用户交流以澄
26、清前一个阶段所获得的数据,60,案例说明,事实的发现与收集,学生管理数据库的系统边界:,61,案例说明,事实的发现与收集,收集数据库系统的用户视图更多的信息:,在询问中你需要密切关注以下的问题:,n,数据库中具体的表应该有哪些具体类型的信息?,n,特定用户经常进行什么样的操作?,n,什么事务对于当前的业务操作非常重要?,n,什么时候应该进行严格的事务运行机制?,n,数据库的高峰期、正常期和低谷期一般是何时?,n,数据库需要哪种类型的安全机制和数据库存储机制?,n,是否存在只有某些用户的敏感数据?,n,哪些数据需要经常做备份?需要保存哪些历史数据?,n,对于数据库的网络和共享有哪些要求?,62,
27、案例说明,事实的发现与收集,经过调研,得到以下的数据库用户的视图:,总支书记:,l,查询所有的班级信息,,l,查询所有的学生个人信息,,l,查询所有的成绩信息,,l,查询所有的考勤、宿舍卫生、奖励和惩罚,,l,查询所有的学生组织培养信息,l,查询各种统计数据和量化考核数据,63,案例说明,事实的发现与收集,辅导员:,l,检索、维护(录入、更新和删除)给定班级的数据,l,检索、维护(录入、更新和删除)给定班级的学生数据,l,检索、维护(录入、更新和删除)给定班级的学生考勤数据,l,检索、维护(录入、更新和删除)给定班级的学生宿舍卫生、奖励和惩罚数据,学生:,检索个人考试、考勤、宿舍卫生、组织培养
28、情况、,个人量化考核、,维护个人的登陆信息、检索班级信息以及相关的统计信息,普通用户:,l,检索班级信息以及相关的统计信息,64,案例说明,事实的发现与收集,5,、软件系统的事实调查说明书,作为软件信息系统的说明书,应该详细描述以下的具体内容(仅仅涉及到事实调查的情况,不应该涉及到软件的理论设计):,数据库初始化大小,数据库增长速度及日志文件增长,记录查找的类型和主要使用,系统表,网络和数据共享需求,性能,安全性,备份和恢复,用户界面,合法问题,65,案例说明,事实的发现与收集,一、软件系统的大小,u,我系在校学生,1800,人,分布于,52,个自然班级中;每个班级平均学生,35,45,人;,
29、u,现在有辅导员,8,人;,u,平均每班级有学生干部,12,人;,二、软件用户的增长速度,u,一般而言,每个学期将会有,5,名学生退学或者休学;每月的注册人数不会超过学生人数的上限,66,案例说明,事实的发现与收集,三、,软件信息使用频度,u,查询班级情况,每天,25,次;,u,查询学生基本情况,每天,800,次,u,查询学生相关情况,每天,1200,次,四、网络和共享访问需求,u,辅导员办公室必须安全的与总支书记办公室的软件应用服务器相连;,u,系统必须支持同时,100,人在线访问;,67,案例说明,事实的发现与收集,五、性能,u,每天上班时间要求单个记录查询时间在,1,秒;,高峰期为,5,
30、秒;,六、安全性,u,数据库必须有口令保护,u,每个用户必须根据身份分配到一个特定的用户视图的,数据库访问权限,主要包括:总支书记、辅导员、,学生、普通用户,七、备份和恢复,数据库设定在每周六半夜,12,点进行自动备份,68,5.3.2,结构化的分析方法,数据流与数,据字典,主要学习结构化程序设计的基本设计思路:,数据流,数据字典,69,一、数据流图,1,、定义,(DFD,,,Data Flow Diagram),描述逻辑模型的图形工具,表示,数据,在系统内的变化,描绘信息在系统中流动和处理的情况。,2,、作用:,分析,MIS,在运行过程中数据的流动变化以及软件应该处理的方式。,70,3.DF
31、D,的主要符号表示,区别:,数据存储是处于静态的数据,包括基本表、视图和存储过程。数据流是处理动态中的数据。,注意:,通常数据流图中忽略出错的处理,通常也不包括具体的内部数据处理。数据流图的绘制基本思想就是描画,“,做什么,”,,而千万不要考虑,“,怎么做,”,。,71,4.DFD,的主要处理步骤,第四步:,最后考虑数据流和数据的存储。,第一步:,从问题描述中提取数据流图的四种成分。,第二步:,首先考虑数据的起点和终点;,第三步:,接下来考虑数据的处理;,72,5.,功能建模和信息流,基于,计算机,的系统,输入信息,信息流模型,输出信息,外部实体,外部实体,外部实体,输入信息,外部实体,外部实
32、体,输出信息,输出信息,73,人事工资管理系统的顶层,DFD(,概图,),范例,人,事,部,门,人事工资,管理系统,会,计,部,门,职工出缺勤报表,职工出缺勤信息,职工工资信息,职工工资报表,职,工,职工基本信息,职工工资单,74,职工基本,信息管理,子系统,1.0,人,事,部,门,会,计,部,门,职,工,职工出缺勤信息,职工基本信息,职工工资信息,3.0,职工出缺,勤管理,子系统,2.0,职工工资管理子系统,职工出缺勤报表,职工出缺勤信息,职工工资信息,职工工资报表,职工基本信息,职工工资单,人事工资管理系统,0,层,DFD,范例,75,建立职工,出缺勤信息,3.1,职工出缺勤信息,职工基本
33、信息,职工,出缺勤报表,职工,出缺勤信息,人事工资管理系统,1,层,DFD,:加工,3.0,的分解图,3.2,制作职工出缺勤信息,统计表,76,外部实体,数据流,过程,(,加工,),数据存储,条目查,询请求,查询可用条目,1,客户,目录,产品条目,库存条目,可用条目查询结果,目的地,响应,来源,触发器,动作,DFD,的主要元素,77,二、数据流图定义及基本组成分析,(一)数据流图定义:,就是组织中信息运动的抽象,是管理信息系统模型的主要形式。它与对系统的物理描述无关,只是用一种图形及与此相关的注释来表示系统的逻辑功能,即所开发的系统在管理信息处理方面要做什么。,78,(,4,),数据流,:,与
34、所描述系统信息处理功能有关的各类信息的载体,是各加工环节进行处理和输出的数据集合。,(二)数据流图由四种基本成分组成,(,1,),外部项(外部实体),:,外部项在数据流图中表示所描述系统的数据来源和去处的各种实体或工作环节。这些实体或环节向所开发的系统发出或接收信息。系统开发不能改变这些外部项本身的结构和固有属性。,(,2,),加工(数据加工),:,又称数据处理逻辑,描述系统对信息进行处理的逻辑功能。,(,3,),数据存储,:,逻辑意义上的数据存储环节,即系统信息处理功能需要的,不考虑存储物理介质和技术手段的数据存储环节。,二、数据流图定义及基本组成分析,79,三绘制数据流图的主要原则,(,5
35、数据流图绘制过程,就是系统的逻辑模型的形成过程,必须始终与用户密切接触。,(,1,),明确系统界面,,一张数据流图表示某个子系统或某个系统的逻辑模型。,(,2,),自顶向下逐层扩展,。在调查研究的基础上,明确所描述的系统与各部实体的信息联系。绘出最高层的数据流图,关联图。在关联图中,所描述的系统当作一个数据加工项,着重描述系统与外部实体的联系。然后确定系统的几个主要的综合性的逻辑功能,绘制顶层数据流图。其中每个逻辑功能由一个数据加工符号描述。顶图可进一步分解,其中某些或者所有的数据加工项可分解为数个数据加工项,这样就形成第一层数据流图。依次逐层向下扩展,直到最底层的数据流图表示了所有具体
36、的数据加工功能和输入输出关系。,(,3,),合理布局,。数据流图各种符号买布局合理,分布均匀、整齐、清晰,使读者一目了然。,(,4,),数据流图只反映数据流向,,数据加工和逻辑意义上的数据存储。,80,四绘制数据流图的主要步骤,(,5,)重复步骤(,4,),直到逐层分解结束。,分解结束的标志是:,对于每一个最底层的加工,即各层数据流图中不做进一步分解的加工,其逻辑功能已足够简单、明确和具体。,(,1,)确定所开发系统的外部项(外部实体),即系统的数据来源和去处。,(,2,)确定整个系统的输出数据流和输入数据流,把系统作为一个加工环节,画出关联图。一般应把数据来源置于图的左侧,数据去处置于国的右
37、侧。,(,3,)确定系统的主要信息处理功能,按此将整个系统分解成几个加工环节(子系统)。,(,4,)根据自须向下,逐层分解的原则,对上层图中全部或加工环节进行分解。,81,四绘制数据流图的主要步骤,(,9,)将正规的数据流图提交系统分析负责人复审。,(,6,)对某图进行检查和合理布局,主要检查分解是否恰当、彻底,,DFD,中各成分是否有遗漏、重复、冲突之处,各层,DFD,及同层,DFD,之间关系是否正确及命名、编号是否确切、合理等。对错误与不当之处进行修改。,(,7,)和用户进行交流,在用户完全理解数据图内容的基础上征求用户的意见。,(,8,)用计算机或其它制图,编辑工具画出正规的数据流图。,
38、82,五绘制数据流图的几点注释,(,4,)命名。数据流图上的成分一般都要命名,命名的原则为:,(,l,),关于自顶向下,逐层分解。,数据流图的绘制过程,是系统分析过程的重要组成部分,这一过程自顶向下,逐层分解,就是由系统外部至系统内部,由总体到局部、由抽象到具体的系统逻辑模型建立过程。在数据流图分解中,要保持各层成分的完整性与一致性。,(,2,)数据流必须通过加工,即送去加工或从加工环节发出。不通过加工环节的数据流不在数据流图上表示。,(,3,)数据存储环节一般作为数据库与软件结合的界面来安排。,名称要反映被命名成分的真实和全部的意义;,名称要意义明确,易理解,无歧义,不会造成错觉和混乱;,加
39、工的名称一般以(动词十宾语)或(名词性定语十动名词)为宜,以明确反映信息处理的逻辑功能;,避免使用不反映实际内容的空洞词汇;,进出数据存储环节的数据流如内容和存储者的数据相同,可采用同一名称。,83,五绘制数据流图的几点注释,同样,下层图上的数据流或数据存储是由上层图的某个成分的分解而得,则父项与子项的编号要体现数据流图分解的完整性与一致性的原则。,(,5,)编号,每个数据加工环节和每张数据流图都要编号。按逐层分解的原则,父图与子图的编号要有一致性,一般子图的图号是父图上对应加工的编号。如顶层图的图号为,0,,其中各加工环节按,1,,,2,,,3,编号,顺序编号,,1,号加工环节分解后的子加工
40、技,1,l,,,1,2,,,1,3,,编号,依次类推。,数据流与数据存储环节也要进行编号以便于编写,分析与维护。编号方法原则上与加工环节的编号方法相同。为避免混淆,可在数据流与数据存储编号的第一位数字前冠以不同的字符以示区别。如数据流符号冠以,F,,数据存储符号冠以,D,。,84,五绘制数据流图的几点注释,(,7,)数据流图的局限性,数据流图从总体上描述系统的逻辑功能,系统内各部分的信息联系及与系统外各有关事物的联系,反映系统中信息运动的规律,是系统逻辑模型的主要描述形式。数据流图清晰,明了,容易理解,使人对描述系统的逻辑功能和各部分的数据联系有一目了然的感觉,便于交流。但数据流图在描述系统逻
41、辑功能和有关信息内容的细节方面仍存在较大的局限性。如:,难以在数据流图上标志出数据流,数据存储和加工以及外部项的具体内容;不能反映系统中的决策与控制过程;难以对系统中人机交互过程以及信息的反馈与循环处理进行描述。,(,6,)只画所描述的系统,稳定工作情况下,的数据流图。数据流图,不描述系统启动时,或,结束工作时功能和数据流运动规律处于变动状态的情况,。,85,分层,DFD,实例,(1),对考生送来的报名单进行检查,;,(2),对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站,;,(3),对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者,;,(4)
42、制作考生通知单,(,含成绩及合格,/,不合格标志,),送给考生,;,(5),按地区进行成绩分类统计和试题难度分析,产生统计分析表。,一个简单的考务处理系统功能描述:,86,顶层数据流图,考,生,考务,处理系统,考,试,中,心,阅卷站,不合格报名单,报名单,准考证,考生通知单,成,绩,清,单,合格标准,错误成绩,清单,考生名,单,统计分析表,87,报名单,考生通知单,0,层,数据流,图,考生名册,准考证,不合格,报名单,考生名,单,成,统计分析表,绩,清,单,合,格,标,准,成,绩,清,单,错,误,登记,报名单,1,统计成绩,2,88,一层数据流图,(a),报名单,考生名册,考生名单,不合格,
43、报名单,合格,报名单,准考证,检查,报名单,1.1,编准考证号,1.2,登记,考生,1.3,89,一层数据流图,(b),检查,成绩清单,2.1,审定,合格者,2.2,正确,成绩清单,制作,通知单,2.3,分析,试题难度,2.5,考生,通知单,合格,标准,难度,分析表,分类,统计表,考生名册,分析,统计成绩,2.4,成绩清单,错误,成绩清单,试题得分清单,经审定的,成绩清单,90,S,2,1,3,2.2,2.1,2.3,3.1,3.2,顶层,(不编号),0,层,1,层,91,案例,2,:图书馆在线系统,顶层数据流图,查询,注册信息,图书分类标准,新书入库,查 询,图书馆在线系统,管理员,读,者,
44、下载,图书分类标准,92,一层数据流图,分类信息,下载请求,注册信息,在馆图书数据库,查询读者信息请求,图书分类,2,下 载,3,查 询,查询在馆图书信息请求,查询新书请求,读者信息库,4,读者注册,返回信息,图书分类标准,新购图书,93,二层数据流图,图书信息,图书信息,按入库时间查询,按作者查询请求,按书名查询请求,按类别查询请求,查询请求,3.,查询子图,3.1,查询方式检验,3.2,在馆图书查询,3.3,新品图书查询,3.4,读者信息查询,按作者名查询请求,读者信息查询请求,读者信息库,读者信息,在馆图书数据库,94,二层数据流图,读者库,修改的读者信息,删除的读者编号,读者信息录入,
45、修改读者信息请求,删除读者信息请求,编辑读者信息请求,4.,读者注册子图,4.1,编辑类型检验,4.2,添加读者信息,4.3,删除读者信息,4.4,修改读者信息,95,三,层数据流图,图书信息,图书信息,图书信息,书 名,作者名,按作者,按书名,图书类别,按类别,3.2.1,查询方式检验,3.2.2,按类别查询,3.2.3,按书名查询,3.2.4,按作者查询,3.2,在馆图书查询子图,查询请求,在馆图书数据库,96,DFD,可以用来表示一个系统或软件在任何层次上的抽象。较大型软件系统,DFD,分成多层,(,子图、父图概念,),可以表示数据流和功能的进一步的细节。,小结:,97,二,.,数据字典
46、DD,,,DataDictionary),DD,是对所有与系统相关的数据元素的一个有组织的列表,以及,精确的、严格的定义,,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解。,98,数据字典的作用,DFD,中的数据流、数据存储表示某个有组织的数据集合,它们要由,SA,的其他描述工具,-,需求字典,(,数据字典,),来描述,,包括:,词条描述,数据流描述,加工逻辑说明,99,数据字典的主要内容和基本要求,1,数据词典描述的主要内容有:,数据结构、数据流、数据元素、数据存储、加工外部项,,其中数据元素组成和数据流的解释是基本成分。,2,编写数据词典的基本要求,(,l,)对数
47、据流图上各种成分的定义必须明确,易理解、唯一。,(,2,)命令、编号与数据流图一致,必要时可增加编码,方便查询检索,维护和统计报表。,(,3,)符合一致性与完整性的要求,对数据流图上的成分定义与说明无遗漏项。,(,4,)格式规范,风格统一,文字精炼,数字与符号正确。,注意数据字典中数据结构、数据流、数据存储可以直接抽象出来话,ER,图,100,第一部分:词条描述中使用的符号,操作符 含义描述,定义为,与,(,顺序结构,),.,重复,(,循环结构,),.,.,或,(,选择结构,),.,.,(.),任选,m.n,界域,.,注释符,101,限制重复次数举例,:,3,5,或,5,3,表示允许重复,3-
48、5,次,3,3,或,3,3,表示恰好重复,3,次,1,表示至少出现,1,次,表示允许重复,0,至任意,次,102,F1:,航班信息文件,航空公司名称航班号,起点终点日期 起飞时间降落时间,航空公司名称,2,字母,4,航班号,3,十进制数字,3,字母,“,A,”“,Z,”,十进制数字,“,0,”“,9,”,起点终点,1,汉字,10,起飞时间降落时间时分,时,“,00,”“,23,”,分,“,00,”“,59,”,日期年月日,年,2000,2001,2002,2004,月,“,01,”“,12,”,日,“,01,”“,31,”,103,重复项:,起点终点,1,汉字,10,航空公司名称,2,字母,4
49、航班号,3,十进制数字,3,组合项:,日期年月日,起飞时间降落时间时分,选择项:,年,2000,2001,2002,2004,原数据项:,字母,“,A,”“,Z,”,十进制数字,“,0,”“,9,”,时,“,00,”“,23,”,分,“,00,”“,59,”,月,“,01,”“,12,”,日,“,01,”“,31,”,104,存折,户名所号帐号开户日期性质,(印密),1,存取行,50,户名,2,字母,24,所号,“,001,”,.,“,999,”,(,注:储蓄所编码,规定三位数字,),帐号,“,00000001,”,.,“,99999999,”,(,注:帐号规定由八位数字组成,),开户日期年
50、月日,性质,“,1,”,.,“,6,”,(,注:,“,1,”,表示普通户,,“,5,”,表示工资户等,),印密,“,0,”,(,注:印密在存折上不显示,),存取行日期(摘要)指出存入余额,操作复核,105,年,2001,2002,2003,2004,月,“,01,”,.,“,12,”,日,“,01,”,.,“,31,”,摘要,1,字母,4(,注:表明该存取是存?是取?,还是换?,),支出金额,(,注,:,金额规定不超过,9999999.99,元,),存入金额,余额金额,金额,“,0000000.01,”,.,“,9999999.99,”,操作,“,00001,”,.,“,99999,”,复核,






