《一步步教你如何写需求分析.ppt》由会员分享,可在线阅读,更多相关《一步步教你如何写需求分析.ppt(119页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章 需求分析,第三章 需求分析,3.1 需求分析的任务及需求分析的过程 3.2 与用户沟通获取需求的方法 3.3 数据流图 3.4 实体-联系图 3.5 状态转换图 3.6 其他图形工具 3.7 验证软件需求,为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提和关键,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会给用户带来失望,给开发者带来烦恼。,需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。对目标系统提出完整、准确、清晰、具体的要求。 在需求分析阶段结束之前,系
2、统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求。,在需求分析的过程中,分析员和用户都起着关键的、必不可少的作用。 要建立分析所需要的通信途径,以保证能顺利地对问题进行分析。,用于需求分析的结构话分析方法必须遵守的准则: 理解并描述问题的信息域,建立数据模型 定义软件必须完成的功能,建立功能模型 描述作为外部事件结果的软件行为,建立行为模型 对三个模型进行分解,用层次的方法展示细节,3.1 需求分析的任务:,确定对系统的综合要求: 1.功能需求:必须完成的所有功能。 2. 性能需求:必须满足的定时约束或容量约束,通常包括速度(响应时间)、磁盘容量、安全性等方面的需求。 3. 可
3、靠性和可用性需求:量化了用户可以使用系统的程度。 4. 出错处理需求:这类需求说明系统对环境错误应该怎样响应。,确定对系统的综合要求: 5. 接口需求:接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。 6. 约束:说明用户或环境强加给项目的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。 7. 逆向需求:逆向需求说明软件系统不应该做什么。 8. 将来可能提出的要求:列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。,分析系统的数据要求 软件系统本质上都是信息处理
4、系统,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立数据模型的方法:实体联系图( E-R图)。 复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系。利用数据字典全面的定义数据。利用图形工具辅助描绘数据结构。,从数据流和数据结构出发,逐步细化软件功能,找出各元素之间的联系,接口特性和设计上的限制,给出目标系统的详细逻辑模型。,导出系统的逻辑模型: 数据流图 实体-联系图 状态转换图 数据字典 加工处理说明书等 修正系统开发计划 开发原型系统:使用户对目标系统有一个更直接、更具体的概念,从而能更准确提出用户需求。(关键的困难在于成本
5、),编制需求分析文档:需求规格说明书 任务概述:系统目标,运行环境,条件与限制 数据描述: 概念模型:E-R图 逻辑模型:数据流图 数据定义:数据字典,加工说明 数据库描述:名称和类型 功能描述:软件功能要求 性能描述:软件性能要求(处理速度、响应时间、安全限制等)。,编制需求分析文档:需求规格说明书(续) 运行描述:用户界面、硬件接口、软件接口、故障处理等。 质量保证:阐明软件在交付使用前需要进行的功能测试和性能测试,并且规定源程序和文档遵守的各种标准。,技术审查和管理复审 管理复审:在软件生命周期的每个重要的里程碑(一般是每个阶段计划、需求分析、设计、编码、维护)对工程项目的成本、实际花费
6、、投资回报的前景等从管理的角度进行审查。 技术审查:在软件生命周期的每个阶段进行正式而严格的技术审查,尽量发现隐藏的错误。正式技术评审是软件工程实践者实施的一项软件质量保证活动。,评审的主要内容,系统定义的目标是否与用户的要求一致; 系统需求分析阶段提供的文档资料是否齐全; 文档中的所有描述是否完整、清晰、准确反映用户要求; 与所有其它系统成分的重要接口是否都已经描述; 被开发项目的数据流与数据结构是否足够,确定; 所有图表是否清楚,在不补充说明时能否理解; 主要功能是否已包括在规定的软件范围之内,是否都已充分说明; 软件的行为和它必须处理的信息、必须完成的功能是否一致; 设计的约束条件或限制
7、条件是否符合实际; 是否考虑了开发的技术风险; 是否考虑过软件需求的其它方案; 是否考虑过将来可能会提出的软件需求; 是否详细制定了检验标准,它们能否对系统定义是否成功进行确认; 有没有遗漏,重复或不一致的地方; 用户是否审查了初步的用户手册或原型; 软件开发计划中的估算是否受到了影响。,需求分析的原则,必须能够表达和理解问题的数据域和功能域 数据域:数据流,数据内容和数据结构。 功能域:加工变换。 必须按自顶向下,逐层分解的方式对问题进行分解和不断细化。 要给出系统的逻辑视图和物理视图。 逻辑视图:给出软件要达到的功能和要处理的数据之间的关系。 物理视图:给出处理功能和数据结构的实际表示形式
8、。,3.2 与用户沟通获取需求的方法1 访谈,访谈有两种基本形式,分别是正式的和非正式的访谈。 当需要调查大量人员的意见时,向被调查人分发调查表是一个十分有效的做法。 在访问用户的过程中使用情景分析技术往往非常有效。,某出版社系统调查表,2 面向数据流自顶向下求精,软件系统本质上是信息处理系统,而任何信息处理系统的基本功能都是把输入数据转变成需要的输出信息。数据决定了需要的处理和算法,看来数据显然是需求分析的出发点。,结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级。为了达到这个
9、目标,通常从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出,输出数据决定了系统必须具有的最基本的组成元素。 沿数据流图从输出端往输入端回溯,应该能够确定每个数据元素的来源,与此同时也就初步定义了有关的算法。,为了得到某个目前还没有的数据元素,或者得出这个数据元素需要用的算法尚不完全清楚。往往需要向用户和其他有关人员请教,他们的回答使分析员对目标系统的认识更深入更具体了,系统中更多的数据元素被划分出来了,更多的算法被搞清楚了。通常把分析过程中得到的有关数据元素的信息记录在数据字典中,把对算法的简明描述记录在IPO图(见3.7节)中。通过分析而补充的数据流、数据存储和处理,应该添加
10、到数据流图的适当位置上。,图3.1 面向数据流自顶向下求精过程,数据流图是帮助复查的极好工具。 反复进行上述分析过程,把数据流图扩展到更低的层次。通过功能分解可以完成数据流图的细化。 经过问题和解答的反复循环,分析员越来越深入具体地定义了目标系统,最终得到对系统数据和功能要求的满意了解。,3 简易的应用规格说明技术,进行初步的访谈,初步确定待解决的问题的范围和解决方案。 开发者和用户分别写出“产品需求” 会议前准备 开会讨论 起草完整的软件需求规格说明书,4 快速建立软件原型,快速原型应该具备的第一个特性是“快速”。 快速原型应该具备的第二个特性是“容易修改”。 为了快速地构建和修改原型,通常
11、使用下述3种方法和工具: (1) 第四代技术 (2) 可重用的软件构件 (3) 形式化规格说明,3.3 分析建模,结构化分析实质上是一种创建模型的活动。需求分析过程应该建立3种模型,它们分别是数据模型、功能模型和行为模型。 实体关系图(ERD) 描述数据对象及数据对象之间的关系;是用于建立数据模型的图形。 数据流图(DFD) 描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能);因此,数据流图是建立功能模型的基础。 状态迁移图(STD)描述系统对外部事件如何响应,如何动作。为此,状态转换图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式。状态转换图是行
12、为建模的基础。,结构化分析的分析模型,分析建模,通过需求分析而建立的模型必须达到下述的三个基本目标。 描述用户的需求。 为软件设计工作奠定基础。 定义一组需求,一旦开发出软件产品之后,就可以用这组需求为标准来验收该产品。 为了达到上述这些目标,在结构化分析过程中导出的分析模型的形式。,3.3 数据流图(DFD),是软件系统逻辑模型的一种图形表示,是从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程的工具。,3.3.1 符号,数据流图中的主要图形元素,数据流与加工之间的关系,数据流与加工之间的关系,- 系统逻辑模型,分层的数据流图,数据流图的层次结构,分层的数据流图2,第
13、2 层,画数据流图的指导原则:,所有图形符号只限于前面四种基本符号。 第一层DFD应当是基本系统模型 每个加工至少有一个输入数据流和一个输出数据流。 在数据流图中,按层给加工框编号。 注意父图和子图的平衡,维护信息的连续性 图中每个元素必须有名字。 数据流图中不可以夹带控制流。,3.3.2 例子,假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存
14、量临界值时就应该再次定货。,图2.5 定货系统的基本系统模型,图2.6 定货系统的功能级数据流图,图2.7 把处理事务的功能进一步分解后的数据流图,例子2,在教材的销售过程中,首先学生拿着购书申请到会计处审查并开具购书发票,然后到出纳处交款,并开具领书单,学生拿着领书单到书库领书;在开具购书发票的过程中,若教材存量不够,则需要进行缺书统计,然后书库根据缺书情况去采购缺书,并通知学生补购教材。,学 生,教材 购销 系统,保 管员,外部实体,外部实体,教材销售子系统,1.3 登记并开 领书单,1.2 开发票,1.1 审查 有效性,1.4 登记 缺书,1.5 补售 教材,采 购,学 生,学 生,缺书
15、信息,补售 书单,第 3 层,外部 项,采购 子系统,第 2 层,缺书单,2.3 修改教材库 存和待 购量,销 售,2.1 按书号汇 总缺书,2.2 按出版社统 计缺书,保 管员,3.3.3 命名,1. 为数据流(或数据存储)命名 (1) 名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。 (2) 不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。 (3) 如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。,2. 为处理命名,(1) 通常先为数据流命名,然后再为与之相
16、关联的处理命名。这样命名比较容易,而且体现了人类习惯的“由表及里”的思考过程。 (2) 名字应该反映整个处理的功能,而不是它的一部分功能。 (3) 名字最好由一个具体的及物动词加上一个具体的宾语组成。应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字。 (4) 通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些。 (5) 如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。,3.3.4 用途,画数据流图的基本目的是利用它作为交流信息的工具。 数据流图的另一个主要用途是作为分析和设计的工具。 当用数据流图
17、辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统,因此可以根据系统的逻辑模型考虑系统的物理实现。,图2.8 这种划分自动化边界的方法暗示以批量方式更新库存清单,图2.9 另一种划分自动化边界的方法建议以联机方式更新库存清单,3.3.5 数据字典,数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。 数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,
18、然而没有数据流图数据字典也难于发挥作用。 只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。,数据字典的内容,一般说来,数据字典应该由对下列4类元素的定义组成: (1) 数据流 (2) 数据流分量(即数据元素) (3) 数据存储 (4) 处理(IPO) (5) 外部实体 内容:名称,别名,编号,分类,描述,定义,位置等,1、数据字典的定义,数据流名: 说明:简要介绍作用即它产生的原因和结果。 数据流来源:即该数据流来自何方。 数据流去向:去向何处。 数据流组成:数据结构。 每个数据量流通量:数据量、流通量。,(1) 数据流词条的描述,举例:,数据流名:发票 说明
19、:用作学生付书款的依据 数据流来源:来自加工“审查并开发票” 数据流去向:流向加工“开领书单”。 数据流组成: 学号+姓名+书号+单价总价+书费合计,数据流条目举例:,数据元素名: 类型:数值(离散、连续),文字(编码类型), 长度: 取值范围: 相关的数据元素及数据结构,(2) 数据元素词条的描述,数据项名:货物编号 别名:G-No,G-num 简述:本公司的所有货物的编号 类型:字符串 长度:10 取值范围及含义: 第1位:JG (进口/国产) 第24位:L01. L29 (类别) 第57位:“A00”.“A99” (规格) 第810位:“001”.“999”(品名编号),数据元素条目举例
20、:,(3) 数据文件词条的描述,数据文件名: 简述:存放的是什么数据。 数据文件组成:数据结构。 存储方式:顺序,直接,关键码。 存取频率:,数据文件条目举例:,文件名:库存记录 别名: 无 简述:存放库存所有可供货物的信息 组成:货物名称编号生产厂家 单价库存量 组织方式:索引文件,以货物编号为关键字 查询要求:要求能够立即查询,加工名: 加工编号:反映该加工的层次 简要描述:加工逻辑及功能简述 加工逻辑:简述加工程序,加工顺序 执行频率:,(4) 加工逻辑词条的描述,加工逻辑条目举例:,加工逻辑名:登记报名单 编号:1 激活条件:收到报名单 加工逻辑:1.1 检查报名单 + 1.2 编准考
21、证号 + 1.3 登记考生 执行频率:2000次/日,名称:外部实体名 简要描述:什么外部实体 有关数据流: 数目:,(5) 外部实体词条描述(源点及终点词条描述),数据字典定义符号,例子:,某程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。,标识符=字母字符+字母数字串 字母数字串=0字母或数字7 字母或数字=字母字符数字字符,存折格式,存折户名所号帐号开户日期性质(印密) 1存取行50 户名2字母24 所号“001”.“999” (注:储蓄所编码,规定三位数字) 帐号“00000001”.“99999
22、999” (注:帐号规定由八位数字组成) 开户日期年月日 性质“1”.“6” (注:“1”表示普通户,“5”表示工资户等) 印密“0” (注:印密在存折上不显示) 存取行日期(摘要)支出存入余额 操作复核,年20032004200520062007 月“01”.“12” 日“01”.“31” 摘要1字母4 (注:表明该存取是存?是取?还是换?) 支出金额 (注:金额规定不超过9999999.99元) 金额“0000000.01”.“9999999.99” 操作“00001”.“99999” 复核“00001”.“99999”,加工逻辑说明,对数据流图的每一个基本加工,必须有一个基本加工逻辑说明
23、 阐明把输入数据转换为输出数据的策略,是加工说明的主体,在需求分析阶段,仅需要指出要加工“做什么”。而不是“怎样去做”, 加工逻辑说明的工具:结构化英语,判定表,判定树。,结构化英语(PDL),又称过程设计语言,伪码;它是一种介于自然语言与程序设计语言之间的语言。 语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示 其基本控制结构有三种: 简单陈述句结构:避免复合语句; 重复结构:while_do 或 repeat_until 结构。 判定结构:if_then_else 或 case_of 结构;,商店业务处理系统中“检查发货单”,if 发货单金额超过$500 then if
24、欠款超过了60天 then 在偿还欠款前不予批准 else (欠款未超期) 发批准书,发货单 else (发货单金额未超过$500) if 欠款超过60天 then 发批准书,发货单及赊欠报告 else (欠款未超期) 发批准书,发货单,(2)判定表,如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适,以“检查发货单”为例,(3)判定树,判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。,3.4数据模型的表示方法:实体-联系图,在数据处理中用数据模型描述客观世界中的事物及其联系。,数据模型中包含3种相互关联的信息:数据对象(实体),数据对象的属性,数据对象间相
25、互连接的关系。,数据对象(实体) :是需被目标系统所理解的复合信息的表示。所谓复合信息是具有若干不同特征或属性的信息。 数据对象可以是外部实体(如显示器),事物(如报表或显示),角色(如教师或学生),行为(如一个电话呼叫)或事件(如单击鼠标左键),组织单位(如研究生院),地点(如注册室)或结构(如文件)。 数据对象只封装了数据,没有包含作用于这些数据上的操作。这与面向对象范型中的类和对象不同。具有相同特征的数据对象组成的集合仍然称为数据对象,其中的某一个对象叫做该数据对象的一个实例。,属性 :定义了数据对象的特征。它可用来: 为数据对象的实例命名; 描述这个实例; 建立对另一个数据对象的另一个
26、实例的引用。 如学生数据对象的属性可以有学号、姓名、性别、出生年月、籍贯等。为了唯一地标识数据对象的某一个实例,定义数据对象中的一个属性或几个属性为关键码(key),书写为_id,例如在“学生”数据对象中用“学号”做关键码,它可唯一地标识一个“学生”数据对象中的实例。,关系 :各个数据对象的实例之间有关联。 如一个学生“张鹏”选修两门课程“软件工程”与“计算机网络”,学生与课程的实例通过“选修”关联起来。 实例的关联有三种: 一对一(1:1); 一对多(1:m); 多对多(n:m)。,3.4.4 实体联系类型符号表示,用长方形表示实体型,在框内写上实体名。 用椭圆形表示实体的属性,并用无向边把
27、实体与其属性连接起来。 用菱形表示实体间的联系,菱形框内写上联系名。 用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。若实体之间的联系也具有属性,则把属性和菱形也用无向边连接上。,3.4.4 实体联系类型符号表示,图3.2 某校教学管理ER图,举例:用E-R图表示某个工厂的物资管理,涉及的实体: 仓库:仓库号,仓库面积,电话号码 零件:零件号,名称,规格,单价,描述 职工:职工号,姓名,年龄,职称 实体间的联系: 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中 一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作 职工之间具有领导和被领导关系,即仓库主任领导若干保管
28、员,E-R图表示,3.5 数据规范化,软件系统经常使用的信息,通常按一定方式组织并存放在数据库或文件中。 通常用“范式(normal form)”定义消除数据冗余的程度。 常用的范式分为第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。,判断规范化程度的条件是: 1、关系中所有属性都是“单纯域”,即不出现“表中有表” 2、非主属性完全函数依赖于关键字 3、非主属性相互独立,即任何非主属性间不存在函数依赖。 如果一个关系连条件 1 都不满足,则这个关系是非规范化的。,如果一个关系仅满足条件 1,则这个关系满足第一范式 (1NF)。 如果一个关系满足条件 1、2,但不满足 3,则这个关系
29、满足第二范式 (2NF)。 如果一个关系同时满足条件 1、2和 3 ,则这个关系表满足第三范式(3NF)。 当数据模型达到 3NF,一般情况下就能满足数据库应用的需要。,3.6 状态转换图,状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。因此,状态图提供了行为建模机制。,1 状态,系统行为模式。状态规定了系统对事件的响应方式。 在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。 状态图既可以表示系统循环运行过程,也可以表示系统单程生命期。 事件 事件就是
30、引起系统做动作或(和)转换状态的控制信息。,3 符号,图3.3 状态图中使用的主要符号,活动表的语法格式如下:,事件名(参数表)/动作表达式 “事件名”可以是任何事件的名称。在活动表中经常使用下述3种标准事件:entry,exit和do。 活动表中的动作表达式描述应做的具体动作。,事件表达式的语法如下:,事件说明守卫条件动作表达式 事件说明的语法为:事件名(参数表)。 守卫条件是一个布尔表达式。 动作表达式是一个过程表达式,当状态转换开始时执行该表达式。,例子:电话系统的状态图,图3.4 电话系统的状态图,3.7 其他图形工具1 层次方框图,层次方框图的顶层是一个单独的矩形框,它代表完整的数据
31、结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。,图3.5 层次方框图的一个例子,2 Warnier图,图3.6 Warnier图的一个例子,3 IPO图,IPO图是输入、处理、输出图的简称,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。,图3.8 改进的IPO图的形式,3.8 验证软件需求1 从哪些方面验证软件需求的正确性,一般说来,应该从下述4个方面进行验证: 一致性 完整性 现实性 有效性,2 验证软件需求的方法,1. 验证需求的一致性 用形式化的需求陈述语言书写 2. 验证需求的现实性 分析用现有的软、硬件技术实现
32、目标系统的可能性。 3. 验证需求的完整性和有效性 开发原型系统,3 用于需求分析的软件工具,这类软件工具应该满足下列要求: (1) 必须有形式化的语法(或表),因此可以用计算机自动处理使用这种语法说明的内容; (2) 使用这个软件工具能够导出详细的文档; (3) 必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果; (4) 使用这个软件工具之后,应该能够改进通信状况。,3.8 小结,需求分析是发现、求精、建模、规格说明和复审的过程。 与用户通信的几种方法(访谈、数据流自顶向下逐步求精、应用规格说明技术、快速建立软件原型) 结构化分析实质上就
33、是一种建模活动(数据模型、功能模型和行为模型)。 需求规格说明书主要从一致性、完整性、现实性和有效性等4个方面进行复审。,第三章 习题,试题1,某校学籍管理的升留级处理规则如下:如果本学期总分大于等于620分,并且单科全部及格,发布升级通知;如果本学期总分大于等于620分,但单科有不及各,发布升级通知和重修课程通知;如果考试总分小于620分,单科有及格的,发布留级通知和单科免修通知;如果考试总分小于620分,单科全不及格,发布留级通知。根据已知条件画判断树。,试题2,某高校选课系统要求如下:选课系统对每个学生的选课单进行处理。根据教学计划检查该生是否存在尚未取得学分的必修课程。如果存在,则要求
34、重选。如果课程上课时间不发生冲突,则可以选修,否则根据重修、必修、限选、任选的优先级、删除已选课程,最后产生每个学生的个人课表和每门课程的成绩单。 画数据流图和数据字典,学生选课系统顶层数据流图,学生选课系统第1层数据流图,学生选课系统第2层数据流图,学生选课系统数据字典1. 数据流条目,A:选课单 选课单学生学号+课程编码 B:学生学号 学生学号:由8位数字组成,其中15位为班级号,68位为班内序号,从001开始。 C:合法记录 合法记录学生学号+课程编码,D:成绩单 成绩单课程编码+课程名+任课教师+学生学号+姓名+成绩 E:选课结果 别名:学生课表 选课结果学生学号+课程时间表 课程时间
35、表课程编码+起始周+终止周+星期+节+教室 F:重修课程 重修课程学生学号+课程编码,(2)文件条目,A:开课清单 开课记录课程编码+课程类别+课程名+任课教师+起始周+终止周+星期+节+教室 组织:以课程编码为记录关键字升序排列 B:课程注册表 注册记录学生学号+课程编码+课程类别+课程名+任课教师+起始周+终止周+星期+节+教室 组织:以学号为记录关键字升序排列 C:学生成绩库 成绩记录学生学号+课程编码+课程名称+课程类别+成绩,(3)数据项条目,A:课程编码:例:100123; 注释:第一位:所在系编号;第23位:教研室编号;第46位:课程序号 B:起始周,终止周:1.16 C:星期:
36、1.5 D:节:1.8 E:教研室:00.99 F:课程名:0字符30 G:任课教师:0字符8 H:成绩:0.100,(4)加工说明,加工1.1 合法检查 BEGIN 读取选课单 WHILE课程编码不空 DO 在开课清单中查找课程 IF找到 THEN 输出合法选课记录 取该生下一选修课程编码 END DO END,加工1.2查已修课程成绩 BEGIN 根据学号在学生成绩库中查找该生的重修课程 输出学号和重修课程编码 END,加工1.3计算课程冲突 BEGIN 接收合法选课记录和重修课程记录 BEGIN 根据课程号在开课清单中查找所选课程时间 检查当前所选课程与已暂被通过的课程是否时 间冲突 I
37、F 不冲突 THEN 该门课程选课暂时被通过 ELSE BEGIN 根据课程类别优先序列删除冲突课程 / 优先序:重修,必修,限选,任选 END END END,加工1.4课程注册 BEGIN 根据选课结果写课程注册表 END 加工2表格打印 BEGIN 根据课程注册表中的学生学号打印成绩单, 根据课程注册表中的课程编码打印成绩单, END,(5)外部实体,A:学生 描述:在学生选课系统中,提供选课单的人员 B:教师 描述:在学生选课系统中,提交课程成绩单的人员,1、数据字典的定义,数据流名: 说明:简要介绍作用即它产生的原因和结果。 数据流来源:即该数据流来自何方。 数据流去向:去向何处。 数据流组成:数据结构。 每个数据量流通量:数据量、流通量。,(1) 数据流词条的描述,数据元素名: 类型: 长度: 取值范围: 相关的数据元素及数据结构,(2) 数据元素词条的描述,(3) 数据文件词条的描述,数据文件名: 简述:存放的是什么数据。 数据文件组成:数据结构。 存储方式:顺序,直接,关键码。 存取频率:,加工名: 加工编号:反映该加工的层次 简要描述:加工逻辑及功能简述 加工逻辑:简述加工程序,加工顺序 执行频率:,(4) 加工逻辑词条的描述,名称:外部实体名 简要描述:什么外部实体 有关数据流: 数目:,(5) 外部实体词条描述,