软件工程03需求分析.ppt

上传人:本田雅阁 文档编号:2618454 上传时间:2019-04-20 格式:PPT 页数:110 大小:2.15MB
返回 下载 相关 举报
软件工程03需求分析.ppt_第1页
第1页 / 共110页
软件工程03需求分析.ppt_第2页
第2页 / 共110页
软件工程03需求分析.ppt_第3页
第3页 / 共110页
亲,该文档总共110页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件工程03需求分析.ppt》由会员分享,可在线阅读,更多相关《软件工程03需求分析.ppt(110页珍藏版)》请在三一文库上搜索。

1、个人成果,妥善保存,请勿传播,软件工程,张康立 Email:,个人成果,妥善保存,请勿传播,课程内容提纲,第3章:“需求分析” 需求分析的任务 获得需求的方法 分析建模与规格说明 结构化分析简介 数据模型:实体-关系图 功能模型:数据流图 行为模型:状态转换图 其他图形工具,个人成果,妥善保存,请勿传播,可行性研究,需求分析,概要设计,详细设计,实 现,集成测试,确认测试,使用与维护,退役,软件定义,软件开发,软件使用与维护,软件生命周期,个人成果,妥善保存,请勿传播,需求分析概述,开发软件系统前的“问题定义”过程 了解用户的期望和要求软件需求 需求分析过程 需求分析的重要性 软件开发的基础和

2、前提 最终目标软件系统验收的标准 避免或者尽早剔除早期的错误,个人成果,妥善保存,请勿传播,需求分析与其他过程的关系,软件需求,设计过程,变更控制 过程,系统测试 过程,编制文档 过程,项目计划 过程,项目跟踪 和控制过程,基线确定前 缩小范围,作为 输入,请求范围 变更,跟踪状态,变更,基线,作为参考,验证实现 的正确性,作为基础,成果可追溯,作为基础,个人成果,妥善保存,请勿传播,需求分析概述,与可行性分析的区别 可行性分析只是粗略了解用户需求 很多细节被忽略了 用户在需求分析中的作用 需求分析的任务 准确的回答“系统必须做什么?” 仍然回答“What”,而不是“How”, 但更细致、精确

3、(合同的拟定) 需求规格说明工作的艰巨性,个人成果,妥善保存,请勿传播,需求分析概述,需求分析的困难 片面性, 不完全 模糊性, 不准确 不一致性, 歧义等等 应用系统复杂,庞大 因此必须使用系统的方法、借助于一系列行之有效的技术和工具进行需求分析,需求分析概述,导致项目失控的两个常见原因之一 需求分析不足/不稳定的需求 它是”理想化估算”邪恶的孪生兄弟! 最近的统计情况 2006年软件项目成功率不足30% 超过60%的失败项目是由于需求不足造成的,个人成果,妥善保存,请勿传播,一副关于软件项目需求的漫画,个人成果,妥善保存,请勿传播,一副关于软件项目的漫画,个人成果,妥善保存,请勿传播,个人

4、成果,妥善保存,请勿传播,需求分析概述,在需求分析阶段结束之前,系统分析员应该写出软件规格说明书,所有分析方法都应遵守下述准则: 1 必须理解并描述问题的信息域,建立数据模型 2 必须定义软件应完成的功能,建立功能模型 3 必须描述作为外部事件的软件行为,建立行为模型 4 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节,个人成果,妥善保存,请勿传播,课程内容提纲,第3章:“需求分析” 需求分析的任务 获得需求的方法 分析建模与规格说明 结构化分析简介 数据模型:实体-关系图 功能模型:数据流图 行为模型:状态转换图 其他图形工具,需求分析的任务,需求分析任务综述 深入描述软件的

5、功能和性能 确定软件设计的约束 确定软件同其它系统元素的接口细节 定义软件的其它有效性需求,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,需求分析的任务,确定系统的综合要求 1 功能要求:系统必须做什么? 划分出系统必须完成的所有功能 2 性能要求:做得怎样? 系统必须满足的定时约束或容量约束 - 例如:速度(系统的响应时间)、信息速率、主存容量、磁盘容量、安全性 3 运行要求:运行环境、软硬件配置等可靠性和可用性需求 可用性需求:量化了用户可以使用系统的程度,个人成果,妥善保存,请勿传播,需求分析的任务,确定系统的综合要求 4 出错处理需求 说明系统对环境错误应该怎样响应,对应

6、用系统本身错误的检测应该仅限于系统的关键部分,而且应该尽量少 5 接口需求 用户接口需求、 硬件接口需求、 软件接口需求、 通信接口需求,个人成果,妥善保存,请勿传播,需求分析的任务,确定系统的综合要求 6 约束 用户和环境强加给项目的限制条件含:精度、工具和语言约束、设计约束、使用标准、使用硬件平台 7 逆向需求 说明软件系统不应该做什么 8 将来可能提出来的需求 是将来有可能提出的要求,目的是使在现有的设计中为将来的扩充和修改预做准备,个人成果,妥善保存,请勿传播,需求分析的任务,分析系统的数据要求 建立概念模型 E-R Diagram 形象描绘数据结构 Data Hierarchy, W

7、arnier Diagram, IPO 数据结构规范化,个人成果,妥善保存,请勿传播,需求分析的任务,导出系统的逻辑模型 数据流图(DFD),数据字典(DD) 实体-关系图(ERD) 状态转换图(STD) 主要的处理算法描述逻辑模型(IPO) 修正系统开发计划 准确地估计系统的成本及进度,修正以前我们所制定的开发计划,个人成果,妥善保存,请勿传播,课程内容提纲,第3章:“需求分析” 需求分析的任务 获得需求的方法 分析建模与规格说明 结构化分析简介 数据模型:实体-关系图 功能模型:数据流图 行为模型:状态转换图 其他图形工具,需求分析的方法,目标 需求分析研究的对象是软件项目的用户要求 准确

8、地表达被接受的用户要求 确定被开发软件系统的系统元素 将功能和信息结构分配到这些系统元素中,个人成果,妥善保存,请勿传播,需求分析的方法,借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题,个人成果,妥善保存,请勿传播,通常软件开发项目是要实现目标系统的物理模型,目标系统的物理模型是由它的逻辑模型经实例化(即具体到某个业务领域)而得到的,需求分析的方法,常用的需求分析方法 面向数据流的结构化分析方法 (SA) 面向数据结构的Jackson方法 (JSD) 面向对象的分析方法 (OOA) 等 现代的需求分析方法 用例分析技术(Use Case):RUP 用户故事、用户素

9、材(User Story):XP 特征驱动(Feature):FDD,个人成果,妥善保存,请勿传播,获得需求的方法,问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,获得需求的方法,访谈 正式访谈 系统分析员将提出一些事先准备好的具体问题 非正式访谈 系统分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法 向被调查人员发调查表 情景分析技术 对用户将来使用目标系统解决某个具体问题的方法和结果进行分析,个人成果,妥善保存,请勿传播,获得需求的方法,访谈 情景分析技术 情景分析技术主要

10、体现在两个方面 它能在某种程度上演示目标系统的行为 保证用户在需求分析过程中始终扮演积极主动的角色 情景分析技术的主要过程 情景分析技术与OO方法中的“用例”技术 用例技术:Use Case,个人成果,妥善保存,请勿传播,获得需求的方法,面向数据流自顶向下求精 基本思想:“自顶向下,逐步求精” 抽象和分解 沿数据流图从输出端向输入端回溯 数据流图的输出端是系统的最终目的; 向回确定每个数据元素的来源,可加细数据流图及数据字典,并将相关算法记录在IPO图中; 用户复查 从输入端开始解释输入数据如何变换成输出 验证已知元素,补充未知元素,个人成果,妥善保存,请勿传播,获得需求的方法,面向数据流自顶

11、向下求精 分析与综合 (1)问题的具体分析:细化数据流图 加细前后的I/O须相同 分解到须考虑具体实现的代码时即可仃止 (2)方案的综合,个人成果,妥善保存,请勿传播,获得需求的方法,简易的应用规格说明技术 分析需求的典型过程 进行初步访谈,初步确定待解决的问题的范围和解决方案 开发者和用户分别写出“产品需求” 选定会议的时间和地点,选举协调人 邀请开发者和用户双方组织的代表出席会议 列出系统环境组成部分的对象、系统将产生的对象、系统为完成自己的功能将使用的对象,列出操作这些对象或与这些对象交互的服务,列出约束条件和性能标准 共同创建一张组合列表 起草完整的软件需求规格说明书,获得需求的方法,

12、快速建立软件原型 快速建立软件原型的特性 快速 容易修改 软件原型的分类 在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性 探索型:目的是要弄清对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性 实验型:这种原型用于大规模开发和实现之前,考核方案是否合适,规格说明是否可靠 进化型:这种原型的目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统,个人成果,妥善保存,请勿传播,获得需求的方法,快速建立软件原型 原型的使用策略 废弃策略(探索型、实验型) 先构造一个功能简单且质量要求不高的模型系统,针对这个模型反复进行分析

13、修改,形成比较好的设计 据此设计出更加完整、准确、一致、可靠的最终系统 系统构造完成后,原来的模型系统就被废弃不用 追加策略(进化型) 先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心 通过不断地扩充修改,逐步追加新要求,最后发展成为最终系统,个人成果,妥善保存,请勿传播,获得需求的方法,快速建立软件原型 原型生存期 原型的开发和使用过程叫做原型生存期 原型生存期模型如下 图(a):原型生存期的模型 图(b):是模型的细化,个人成果,妥善保存,请勿传播,获得需求的方法,个人成果,妥善保存,请勿传播,获得需求的方法,个人成果,妥善保存,请勿传播,获得需求的方法,快速建立软件原型

14、快速构建和修改原型的3种方法和工具 第四代技术 数据查询和报表语言、程序和应用系统生成器、高级的非过程语言 可重用的软件构件 使用一组已有的软件构件来装配原型。软件构件可以是数据结构、数据库、软件体系结构构件(程序)、过程构件(模块) 形式化规格说明和原型环境,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,课程内容提纲,第3章:“需求分析” 需求分析的任务 获得需求的方法 分析建模与规格说明 结构化分析简介 数据模型:实体-关系图 功能模型:数据流图 行为模型:状态转换图 其他图形工具,个人成果,妥善保存,请勿传播,分析建模与规格说明,分析建模 建模 是为了理解事物而对事物做出的

15、一种抽象,是对事物的一种无歧义的书面描述 模型由一组图形符号和组织这些符号的规则组成 模型与工具 数据模型实体-关系图 功能模型数据流图 行为模型状态转换图,分析建模与规格说明,分析建模的原则 需要能够表达和理解问题的信息域和功能域 要能以层次化的方式对问题进行分解和不断细化,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,需求分析流程,个人成果,妥善保存,请勿传播,分析建模与规格说明,软件需求规格说明 用自然语言完整、准确、具体描述系统的数据需求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求、将来可能提出来的需求,个人成果,妥善保存,请勿传播,个

16、人成果,妥善保存,请勿传播,分析建模与规格说明,需求规格说明的内容 系统规格说明 系统概貌 功能要求 性能要求 运行要求 可能增加的要求 DFD IPO 数据要求 DD Hierarchy 或 Warnier Diagram 用户系统描述 初步用户手册:从用户的观点考虑系统 系统功能、性能 使用与步骤 等 修正的开发计划 成本估计 资源使用计划 进度计划,个人成果,妥善保存,请勿传播,分析建模与规格说明,软件需求规格说明的简略大纲 .引言 A .系统参考文献 B .整体描述 C .软件项目约束 .信息描述 A .信息内容 B .信息流: 1 .数据流、2 .控制流 .功能描述 A .功能分解

17、B .功能描述:1 .处理说明、2 .限制、3 .性能需求、4 .设计约束、5 .支撑图,个人成果,妥善保存,请勿传播,分析建模与规格说明,软件需求规格说明的简略大纲 .功能描述 C .控制描述:1 .控制规格说明、2 .设计约束 .行为描述 A .系统状态 B .事件和动作 .确认标准 A .性能范围 B .测试种类 C .预期的软件响应 D .特殊考虑 .参考书目 .附录,个人成果,妥善保存,请勿传播,课程内容提纲,第3章:“需求分析” 需求分析的任务 获得需求的方法 分析建模与规格说明 结构化分析简介 数据模型:实体-关系图 功能模型:数据流图 行为模型:状态转换图 其他图形工具,结构化

18、分析方法(SA),结构化方法的发展 首先是“结构化程序设计”Structured Programming,SP方法的提出 其次是“结构化设计”Structured Design,SD方法的出现 逐渐是“结构化分析”Structured Analysis,SA方法的形成 因此,结构化方法由三部分组成,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,结构化分析方法(SA),结构化分析方法最初由Douglas Ross提出,由DeMarco推广,由Ward和Mellor以及后来的Hatley和Pirbhai扩充,形成了今天的结构化分析方法的框架 结构化分析方法是一种建模技术。它建立的分析

19、模型如图,结构化分析方法(SA),结构化分析 指导思想:“自顶而下,逐步求精” 基本原理:“抽象”与“分解” 使用工具 数据流图、数据字典、E-R图、状态转换图 分析步骤 建立现行系统物理模型-抽象现行系统逻辑模型-建立新系统逻辑模型-补充和优化(分解),个人成果,妥善保存,请勿传播,结构化分析方法(SA),结构化分析模型 在模型的核心是数据词典,它描述了所有的在目标系统中使用的和生成的数据对象 围绕着这个核心的有三种图 实体-关系图(ERD):描述数据对象及数据对象之间的关系 数据流图(DFD):描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能) 状态转换图(ST

20、D):描述系统对外部事件如何响应,如何动作 因此,ERD用于数据建模,DFD用于功能建模,STD用于行为建模,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,课程内容提纲,第3章:“需求分析” 需求分析的任务 获得需求的方法 分析建模与规格说明 结构化分析简介 数据模型:实体-关系图 功能模型:数据流图 行为模型:状态转换图 其他图形工具,数据模型:实体联系图,数据建模 建立三种相互关联的信息模型 数据对象、描述数据对象的属性及数据对象彼此间相互连接的关系 数据对象 是需被目标系统所理解的复合信息的表示 所谓复合信息是具有若干不同特征或属性的信息 数据对象可以是外部实体(如显示器)

21、,事物(如报表或显示),角色(如教师或学生),行为(如一个电话呼叫)或事件(如单击鼠标左键),组织单位(如研究生院),地点(如传达室)或结构(如文件),个人成果,妥善保存,请勿传播,数据模型:实体联系图,数据对象 数据对象和OO中的对象 数据对象只封装了数据,没有包含作用于这些数据上的操作,这与面向对象中的类和对象不同 具有相同特征的数据对象组成的集合仍然称为数据对象,其中的某一个对象叫做该数据对象的一个实例,个人成果,妥善保存,请勿传播,数据模型:实体联系图,属性 定义了数据对象的特征 作用 为数据对象的实例命名; 描述这个实例; 建立对另一个数据对象的另一个实例的引用 举例 数据对象“学生

22、”的属性 学号、姓名、性别、出生年月、籍贯,个人成果,妥善保存,请勿传播,数据模型:实体联系图,属性 关键码(key) 为了唯一地标识数据对象的某一个实例,定义数据对象中的一个属性或几个属性为关键码(key),书写为_id 例如在“学生”数据对象中用“学号”做关键码,它可唯一地标识一个“学生”数据对象中的实例,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,数据模型:实体联系图,关系 各个数据对象的实例之间相互连接的方式称为关系(也称为关联) 举例 一个学生“张珊”选修两门课程“软件工程”与“计算机网络”,学生与课程的实例通过“选修”关联起来,个人成果,妥善保存,请勿传播,数据模型

23、:实体联系图,关系 数据对象的实例之间关系有三种 (1) 一对一联系(11) (2) 一对多联系(1N) (3) 多对多联系(MN) 这种实例的关联称为“基数”,基数表明了参与关联的实例间的“重复性” 实例关联有“可选”和“必须”之分,它表明了关系的“参与性” 用圆圈“”表示关系是可选的,用竖线“”表示关系必须出现1次,个人成果,妥善保存,请勿传播,数据模型:实体联系图,关系 举例 如1位教师带学生的30位同学,就是1:n的关系 但也有1位教师带0位同学的情形,个人成果,妥善保存,请勿传播,数据模型:实体联系图,实体联系图 数据对象及其关系可用E-R图表示 举例 学生选修课程的E-R图及学生属

24、性的实体对象表,个人成果,妥善保存,请勿传播,数据模型:实体联系图,数据及数据库需求,数据 在数据词典中,强调对数据存储结构的逻辑设计,并用数据结构表达数据项之间的逻辑关系 数据库 任何一个软件系统都可能有成千上万个数据项 仅仅描述这些数据项是不够的 重要的是如何把它们以最优的方式组织起来,以满足系统对数据的要求,有关数据库的基本概念,数据处理“域” 在软件系统中需要处理的数据是现实世界中存在的事物及其联系的反映 与数据处理有关的的领域分为三个世界 现实世界 信息世界 数据世界,有关数据库的基本概念,现实世界 是存在于人们头脑之外的客观世界 现实世界中的事物可分成对象和性质两大类 对象可以是人

25、、是物,还可以是实际的东西或概念的东西,例如,大学、城市等。对象还可以指事物与事物间的联系。 性质则是指事物的性质或特征,有关数据库的基本概念,信息世界 也叫做观念世界,是现实世界在人们头脑中的反映 客观世界中的事物在信息世界中叫做实体,反映事物之间联系的叫做实体模型 实体是由若干属性的属性值组成 属性是实体某一方面的特征,相应于事物的性质 例如,一个学生实体是如下的一个5元组 (051139,张珊,女,19,软件),有关数据库的基本概念,信息世界 5元组中每一元素是学生的某一属性的属性值。他们对应的属性集合是: (学号, 姓名, 性别, 年龄, 专业) 这些属性集合表征了“学生”实体的类型,

26、叫做实体型,同一类型的实体的集合叫做实体集,有关数据库的基本概念,数据世界 是信息世界中信息的数据化,现实世界中的事物及其联系在数据世界中用数据模型描述 描述每一实体的数据称为记录,描述属性的数据叫做数据项或字段 与实体集相对应的称为文件 举例 学生文件就由多个记录组成,这些记录放在一起构成一个二维表 表中每一横排叫做一个记录或元组,每一纵列叫做一个属性,有关数据库的基本概念,数据世界,有关数据库的基本概念,数据世界 记录、数据项和文件 记录由数据项组成,正如实体由若干属性的属性值组成一样 一般数据项沿用属性名。用做属性名时表示观念信息,用做数据项名时表示数据信息 每个数据项包括两个特征:数据

27、类型和数据长度 若干同类型的记录构成文件 为了对文件中的记录有效组织和存取,通常指定一个数据项进行区别,这个数据项叫做关键字,E-R方法和实体模型,E-R方法( Entity-Relationship Approach) 在需求分析阶段进行数据库逻辑设计过程中使用E-R图,可定义一个实体模型 实体模型是现实世界的纯表示,它不涉及数据世界的数据结构、存取路径、存取效率等问题 因此,它可以转换成数据库中的数据模型 数据可以按相应数据模型进行组织,E-R方法和实体模型,E-R图中表示实体联系的符号如下,E-R方法和实体模型,E-R图 E-R图中,每个方框表示实体型或属性,方框之间的连线表示实体之间,

28、或实体与属性之间的联系 出现在连线上的短竖线可以看成是“1”,而圆圈隐含表示“0”,表示关联的重复性 举例 在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程,E-R方法和实体模型,E-R图 用E-R图描述它们之间的联系,得下图 其中,学生与课程是多对多的联系,而教师与课程的联系是零、一对多。,E-R方法和实体模型,E-R图 进一步,要确定属性 例如,学生具有学号、姓名、性别、年龄、专业(其它略)等属性; 课程有课程号、课程名、学分、学时数等属性; 教师具有职工号、姓名、年龄、职称等属性。 此外,学生通过学号、

29、分数与课程发生联系 如此可得教学实体模型,E-R方法和实体模型,教学实体模型,数据结构的规范化,规范化技术 信息域分析需要确定数据的内容,每个数据项要用表格列出,最后组织成文件的逻辑结构,即面向应用而不是面向存储的结构 为了便于数据库的设计,常常要对这种结构做一些简化,其中最常见的一种方法就是规范化技术,数据结构的规范化,数据结构“规范化” 是将数据的逻辑结构归结为满足一定条件的二维表(关系) 表格中每个信息项必须是一个不可分割的数据项,不可是组项 表格中每一列(列表示属性)中所有信息项必须是同一类型,各列的名字(属性名)互异,列的次序任意 表格中各行(行表示元组)互不相同,行的次序任意,数据

30、结构的规范化,数据结构“规范化” 不满足上述要求的二维表或关系,叫非规范化关系 对于非规范化的关系,必须将它规范化,即利用更单纯、更规则的关系代替原来的关系 规范化的目的 举例: 借书(书名,读者姓名,读者部门,借书日期) 数据冗余、更新异常、插入异常、删除异常,数据结构的规范化,规范化的目的 消除数据冗余:即消除表格中数据的重复 消除多义性:使关系中属性含义清楚、单一 使关系的“概念”单一化:让每个数据项只是一个简单的数或字符串,而不是一个结构 方便操作:使数据的插入、删除与修改操作可行并方便 使关系模式更灵活:易于实现接近自然语言的查询方式,个人成果,妥善保存,请勿传播,数据结构的规范化,

31、数据结构规范化“程度” 为了减少数据冗余,避免出现插入或删除异常,简化修改数据过程,通常需要把数据规范化 通常用“范式(NF-Normal Forms)”定义消除数据冗余的程度,它表示属性之间的依赖程度 第一范式(1NF)数据冗余程度最大,第五范式(5NF)数据冗余程度最小 范式级别越高,存储同样数据就需要分解成更多张表,因此,“存储自身”的过程也就越复杂,个人成果,妥善保存,请勿传播,数据结构的规范化,1NF-5NF范式的定义 第一范式(1NF) 每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构 第二范式(2NF) 满足第一范式条件,而且每个非关键宇屑性都由整个关键字决定(而不是由

32、关键字的一部分来决定)。 第三范式(3NF) 符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字局性的进一步描述(即一个非关镑字属性值不依赖于另一个非关键字属性值)。,个人成果,妥善保存,请勿传播,数据结构的规范化,1NF-5NF范式的定义 第四范式(4NF) 满足第三范式条件,并且在关系模式中没有超过一个的多值事实。 即:某个属性有若干个值,这些值由另一个属性的一个值确定 例如:职工-孩子-孩子选修课程 第五范式(5NF) 符合第四范式的条件,每个关系不能进一步分解成两个或多个表,而且不丢失信息。,个人成果,妥善保存,请勿传播,数据结构的规范

33、化,举例 第一范式(1NF) 每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构 关系: 工资(姓名,部门,工资(基本工资、津贴) 上述关系不符合1NF,个人成果,妥善保存,请勿传播,数据结构的规范化,举例 第二范式(2NF) 满足第一范式条件,而且每个非关键宇屑性都由整个关键字决定(而不是由关键字的一部分来决定)。 关系: 借书(书名,读者姓名,读者部门,借书日期) 读者部门只依赖于读者姓名 分解: 借书(书名,读者姓名,借书日期) 读者(姓名,所在部门),个人成果,妥善保存,请勿传播,数据结构的规范化,举例 第三范式(3NF) 符合第二范式的条件,每个非关键字属性都仅由关键字决定,

34、而且一个非关键字属性不能仅仅是对另一个非关键字局性的进一步描述(即一个非关镑字属性值不依赖于另一个非关键字属性值)。 关系: 职员工资(姓名,工资级别,基本工资) 分解: 职员工资(姓名,工资级别) 工资级别对照(工资级别,基本工资) 关系: 库存零件(零件编号,名称,单价,数量,金额)?,数据结构的规范化,如何进行数据规范化 举例:教学管理 有三个实体型,即课程、学生和教师,用三个关系保存它们的信息: 学生(学号,姓名,性别,年龄,专业,籍贯) 教师(职工号,姓名,年龄,职称,工资级别,工资) 课程(课程号,课程名,学分,学时,课程类型),数据结构的规范化,如何进行数据规范化 举例:教学管理

35、 为表示实体型之间的联系,又建立两个关系: 选课 (学号,课程号,听课出勤率,作业完成率,分数) 教课 (职工号,课程号) 这五个关系,组成了数据库的模型 在每个关系中,属性名下加下划线指明关键字,并规定关键字能唯一地标识一个元组,数据结构的规范化,数据结构规范化“程度” 常用的范式分为第一范式(1NF)、第二范式(2NF)和第三范式(3NF) 设是一个关系,和是中的两个属性,若对于的任一个值,仅有一个值与之对应,则称的属性函数依赖于属性,称为“X决定Y”,记为X-Y,教师 (职工号, 姓名, 年龄, ) 其中,属性“姓名”,“年龄”等都函数依赖于属性“职工号” 属性可以是复合属性,如: 选课

36、 (学号, 课程号, 听课出勤率, ),数据结构的规范化,数据结构规范化“程度” 如果属性函数依赖于复合属性,而不与的任何真子集函数依赖,则称属性完全函数依赖于复合属性。 例如在“选课”关系中,属性“听课出勤率”、“作业完成率”和“分数”等表示某个学生学习某门课程时的学习情况,只有同时指定“学号”和“课程号”,才能准确地说明是哪位学生学习哪门课程时的学习情况 因此,“分数”等属性完全函数依赖于“学号,课程号”,数据结构的规范化,判断规范化程度的条件是: 条件1:关系中所有属性都是“单纯域”,即不出现“表中有表” 条件2:非主属性完全函数依赖于关键字 条件3:非主属性相互独立,即任何非主属性间不

37、存在函数依赖 如果一个关系连条件1都不满足,则这个关系是非规范化的,数据结构的规范化,如果一个关系仅满足条件1,则这个关系满足第一范式 (1NF) 如果一个关系满足条件1、2,但不满足条件3,则这个关系满足第二范式 (2NF) 如果一个关系同时满足条件1、2和3,则这个关系表满足第三范式(3NF) 当数据模型达到3NF,一般情况下就能满足数据库应用的需要,在需求分析阶段进行数据库分析的流程,数据库分析的过程,数据库分析的过程,数据库分析的过程 为开发一个系统所使用的数据库,在开始分析数据库的需求前,分析员必须了解该系统的总目标和范围,然后建立一个完整并高度细化的信息模型 此信息模型应包括一个综

38、合的数据词典,定义所有在开发数据库时用到的数据项 接着数据库分析定义数据库的逻辑特性和物理特性,数据库分析的过程,以信息模型和系统规格说明为指导,定义数据库的逻辑数据结构 这种逻辑结构必须适应数据存取、修改、关联性及其它相关需求 一旦逻辑数据结构建立起来,就可以研制数据库的物理结构 物理数据库结构定义文件结构、记录格式、与硬件相关的处理方式以及数据库管理系统的特性,数据库分析的过程,最后,要对模式和物理特性进行完全的评审 在数据库分析过程中所考虑的因素间存在着复杂的相互联系。改变其中的任何一个因素都会(潜在地)影响其它的因素,所以必须在各个因素之间进行折衷 这种折衷包括专用性和通用性的折衷,信

39、息关联程度、扩充潜力及操作特性等方面的折衷,数据库分析的过程,考虑信息关联程度和扩充潜力(包括信息规模和信息内容两方面)主要基于需求分析和设计阶段分派给数据库的专用性程度。 专用的数据库要为系统特定的信息需求服务,因此信息结构要设计得能适应要求的关联性和预计的扩充。 通用的数据库可以适应更为广泛的各种信息需求,但是为了获得通用性要付出代价。,数据库分析的过程,操作特性根据折衷的结果而定 数据库的结构、规模和逻辑设计都会对它的物理组织、硬件、存取方式以及性能产生重要的影响,个人成果,妥善保存,请勿传播,课程内容提纲,第3章:“需求分析” 需求分析的任务 获得需求的方法 分析建模与规格说明 结构化

40、分析简介 数据模型:实体-关系图 功能模型:数据流图 行为模型:状态转换图 其他图形工具,个人成果,妥善保存,请勿传播,行为模型状态转换图,状态 系统对事件的响应 做一个或一系列动作 仅仅改变系统本身的状态 即改变状态又做动作 状态 初态:一个 终态:0支多个 中间状态 状态图可以表示系统循环运行过程,也可以表示系统单程生命期,个人成果,妥善保存,请勿传播,行为模型状态转换图,事件 事件是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换的另一个状态的外界事件的抽象 符号,个人成果,妥善保存,请勿传播,行为模型状态转换图,终态,中间状态,状态名称,状态变量名字和值,活动表,事件名(

41、enter,exit,do)(参数表)/动作表达式,箭头上标出触发转换的事件表达式,未标明表示自动触发转换。 事件表达式:事件说明守卫条件/动作 表达式 事件说明:事件名(参数表) 守卫条件:布尔表达式 动作表达式:一个过程表达式,状态转换,初态,个人成果,妥善保存,请勿传播,个人成果,妥善保存,请勿传播,课程内容提纲,第3章:“需求分析” 需求分析的任务 获得需求的方法 分析建模与规格说明 结构化分析简介 数据模型:实体-关系图 功能模型:数据流图 行为模型:状态转换图 其他图形工具,个人成果,妥善保存,请勿传播,其他图形工具,层次方框图 层次方框图是用树形结构的一系列多层次的矩形框描绘数据

42、的层次结构 树形结构的顶层是一个单独的矩形框,它代表完整的数据结构 下面各层的矩形框代表这个数据的子集,最低层的各个框代表组成这个数据的实际数据元素(不可再分割),个人成果,妥善保存,请勿传播,产品,软件,硬件,服务,系统软件,应用软件,处理机,存储器,外部设备,软件服务,硬件服务,培训,操作系统,编译程序,软件工具,个人成果,妥善保存,请勿传播,其他图形工具,Warnier图 Warnier图是由法国科学家J.D.Warnier提出的表示信息层次结构的另外一种图形工具 在Warnier图中花括号用来区分数据结构的层次 在一个花括号内的所有名字都属于同一类信息 符号表示在其上、下方的名字中的一

43、个名字 名字右边圆括号中的符号表示这个名字在信息类中重复出现的次数,个人成果,妥善保存,请勿传播,软件产品,系统软件 应用软件,操作系统(P1) 编译程序(P2),软件工具,编译程序(P3) 图形生成程序(P4),个人成果,妥善保存,请勿传播,其他图形工具,IPO图 IPO图是输入/ 处理/输出图的简称, 它是由美国IBM公司 发展完善起来的一种 图形工具,可以方便 地表示输入数据、数 据处理和输出数据三 者之间的关系。,系统: 模块: 编号:,作者: 日期:,IPO图,被调用:,输 入:,调 用:,输 出:,处 理:,局部数据元素:,注 释:,个人成果,妥善保存,请勿传播,验证软件需求,验证

44、软件需求的途径与方法 一致性:在所有需求中,任何一条需求不能和其他需求互相矛盾。(形式化描述) 完整性:软件规格说明书必须包括用户需求的每一个功能或性能。(原型) 现实性:指定的需求应是用现有的硬件技术和软件技术可以实现的。(仿真和模拟) 有效性:软件需求确实能解决用户所面对的问题。(原型),个人成果,妥善保存,请勿传播,验证软件需求,用于需求分析的软件工具 PSLPSA系统用描述符从系统信息流、系统结构、数据结构、数据导出、系统规模、系统动态、系统性质和项目管理等八个方面描述信息系统。 一旦用PSL对系统做了完整描述,就可以调用PSA产生一组分析报告,其中包括所有修改规格说明数据库的记录,用各种形式描述数据库信息的参照报告(包括图形形式的描述),关于项目管理信息的总结报告,以及评价数据库持性的分析报告。,个人成果,妥善保存,请勿传播,本章结束, 下一章节导读:“形式化说明技术” (课外自学内容),个人成果,妥善保存,请勿传播,课外作业,自学内容 形式化说明技术 课外作业 第1章 概述 第3、6、7小题 第2章 可行性分析 第1、4小题 第3章 需求分析 第1、5小题,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1