软件工程第四章形式化说明技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实体联系图:建立数据模型,描述数据对象及数据对象之间的 关系;
数据流图:建立功能模型的基础; 状态转换图:描绘系统的状态和状态间转换的方式。
2019/12/23
19
3.3.2 软件需求规格说明
为了把用户的数据要求清楚、准确的描述出来, 系统分析员通常建立一个概念性的数据模型。包含三 种相互关联的信息:数据对象、数据对象的属性及数 据对象彼此间相互连接的关系。
性别 姓名 教工号
职称 职务
教师
1

N
姓名 学号
性别 系
学生
N
M

年级 成绩
课程号
课程
课名
学时
学分
图3.2 某校教学管理ER图
2019/12/23
22
3.5 数据规范化
通常用范式定义消除数据冗余的程度。第一范式(1 NF)数据冗余度 最大,第五范式(5 NF)数据冗余度最小。但范式级别越高,(1)存 储同样多数据需要分解成更多张表,“存储自身”的过程越复杂;(2) 数据存储结构与基于问题域的结构间的匹配程度也随之下降,需求变 化时数据稳定性下降;(3)需要访问的表增多,性能下降。(第三范式) 第一范式:每个属性都是原子值 第二范式:满足第一范式条件,每个关键字属性都仅有关键字决定 第三范式:符合第二范式条件,每个非关键字属性都仅有关键字决 定,并且一个非关键字属性值不依赖于另一个非关键字属性值
较易为用户所理解,能保证用户在需求分析过程中始终扮演一个积极主动的 角色。
2019/12/23
12
观察用户工作流程或者实践
2019/12/23
13
用户和开发人员共同组成联合小组
加强联系 促进交流 增进合作
2019/12/23
14
3.2.2 面向数据流自顶向下求精
借助数据流图、数据字典、IPO图等,细化、完善详 细的数据流图,等到各处理环节对应的功能。
2019/12/23
20
3.4 实体-联系图
数据对象可以是外部实体、事物、行为、事件、角色、单位、地
点、结构等。
数据对象
属性定义了数据对象的性质。
属性
联系是数据对象之间相互连接的方式。
(1)一对一联系(1:1);
(2)一对多联系(1:N);
联系
(3)多对多联系(M:N)。
2019/12/23
21
实体-联系图
需要分解
有补充修正
分析追踪数 据流图
用户复查
无补充 修正
细化 数据流图
不需分解
图3.1 需求分析基本过程
2019/12/23
15
3.2.3 简易的应用规格说明技术
面向团队的需求收集法: (用户与开发者配合)
初步访谈; 开发者和用户分别写出“产品需求”; 开会讨论,各自展示需求列表; 得出一致意见,为需求列表制定小型规格说明; 根据会议成果,起草完整的软件需求规格说明。
软件工程
3.3 分析建模与规格说明
中南大学 Central South University
2019/12/23
3.3.1 分析建模
所谓模型,就是为了理解事物而对事物做出的一种抽 象,是对事物的一种无歧义的书面描述。简单地说,模型 就是某一事物的抽象表示方式。
为了开发复杂的系统,应从不同角度(模型)抽象出 目标系统的特性(数据模型、功能模型、行为模型)。
2
软件工程
4.1 概述
中南大学 Central South University
2019/12/23
4.1.1 非形式化方法的缺点
自然语言书写的系统规格说明书可能存在: 1)矛盾; 2)二义性;
如:“操作员标识由操作员姓名和密码组成,密码由6位数字 构成,当操作员登陆系统时它被存储在注册文件中。”
3)含糊性; 4)不完整性; 5)抽象层次混乱。
2019/12/23
4
4.1.2 形式化方法的优点
(1)数学是理想的建模工具,适合于表示系统状态和描述系 统需求; (2)用数学表达的需求可在不同开发阶段平滑过渡。
2019/12/23
5
4.1.3 应用形式化方法的准则
(1)选择合适的形式化方法;适用于当前项目 (2)需要形式化,但不能过渡形式化,不能放弃传统的需求 表达方法; (3)应该估算成本; (4)应该有形式化方法的专家提供指导; (5)不应该放弃传统的开发方法;
软件工程
第四章 形式化说明技术
1.非形式化方法:自然语言描述 2.半形式化方法:数据流图或实体-联系图 3.形式化方法:基于数学技术描述
中南大学 Central South University
2019/12/23
本讲内容
1. 概述 2. 有穷状态机 3. Petri网 4. Z语言 5. 小结
2019/12/23
2019/12/23
6
3.1.1确定对系统的综合要求(2)
5. 接口需求 用户接口、硬件接口、软件接口、通信接口、等。
6. 约束 精度、工具和语言、设计约束、硬件约束、标准,等。
7. 逆向需求 8. 将来可能提出的要求
2019/12/23
7
3.1.2 分析系统的数据要求
任何一个软件系统都是信息处理系统,系统必须处理 的信息和系统应该产生的信息在很大程度上决定了系统的 面貌,对软件设计有深远影响,因此,必须分析系统的数 据要求,这是软件需求的一个重要任务。
修订前期制定的开发进度计划、等。
2019/12/23
10
软件工程
3.2 与用户沟通获取需求的方法
问题域
中南大学 Central South University
用户
交流
需求分析员
2019/12/23
3.2.1 访谈
1.正式访谈 2.非正式访谈 当需要调查大量人 员时,分发调查表
情景分析技术
能在某种程度上演示目标系统的行为,从而便于用户理解,而且还能进一步 揭示出一些分析员目前不知道的需求。
2019/12/23
16
3.2.4 快速建立软件原型
快速原型就是快速建立起来的旨在演示目标系统主要功 能的可运行的程序。
第一个特性是快பைடு நூலகம்; 第二个特性是容易修改。
快速建立能演示目标系统主要功能的程序。
第四代技术 可重用的软件构件 形式化规格说明和原型环境
2019/12/23
17
通过建立数据模型来分析,如数据字典、层次方框图、 Warnier图,并将数据结构规范化。
2019/12/23
8
3.1.3 导出系统的逻辑模型
导出系统的详细的逻辑模型,通常包括数据流图、实
体-联系图、状态转换图、数据字典、主要的处理算法( IPO图)等。
2019/12/23
9
3.1.4 修正系统开发计划
相关文档
最新文档