传统图形描述技术建模及语义
中国谚语:Ein Bild Zeigt ueber Tausend Saetze.
(A picture shows more than 1000 sentences.)
1、三种主要传统图形描述技术
(1)数据流图技术DFD(Data Flow Diagram) 描述一个信息系统的数据(信息)流。
(2)实体关系图技术ERD(Entity Relationship Diagram) 描述一个信息系统的逻辑数据结构。
(3)状态转换图技术STD(State Transition Diagram)
描述一个信息系统的状态转换过程。
2、基于图形描述技术的需求分析模型
(1)需求分析模型的基本功能
● 描述用户需求
● 建立创建软件设计的基础
● 定义软件开发后的验证条件集合
(2) 需求分析模型结构
图2-1给出了基于图形描述技术的需求分析模型结构。
图2-1:需求分析模型结构
(摘自保密工作杂志Pressman,Software Engineering,P300)
其中
(1)核心部分
Data Dictionary(DD,数据字典):
-- 存储所有软件使用或产生的对象数据的描述。
(2)中间层
● Data Flow Diagram(DFD,数据流图)
-- 描述数据在经过系统时的转换过程
-- 图示数据流函数
● Entity Relationship Diagram(ERD,实体关系图)
-- 图示数据之间的关系
● State Transition Diagram(STD,状态转换图)
-- 描述系统接收外部事件后的状态变化
(3)外部层
● Process Specification(PSPEC,过程规约)
-- 描述DFD中定义的每个函数
● Data Object Description(数据对象描述)
-- 描述ERD中每个数据对象的属性
● Control Specification(CSPEC,控制规约)
-- 描述软件控制外观的附加信息
2.3.1 数据流图DFD及语义
1.定义(DFD)
数据流图DFD技术描述流经一个信息系统的数据(信息)流,主要包括:
(1) 数据的输入与输出:数据是如何进入系统或从系统离开;
(2) 数据处理站点:在哪里数据是怎样处理的;
(3) 存储单元:数据是在哪里存储的。
2.定义(DFD符号)
:数据(信息)的源点/终点
:数据(信息)加工或逻辑处理
:数据(信息)存储
:数据(信息)流
(1)一个汽车租赁数据流图EuRent DFD见图2-2。
图2-2:EuRent DFD
(摘自Haggenmueller, Wirsing: Methoden der Software-Entwicklung, P29)
图中
Kunde:用户或汽车租赁者
Make Bookings:租车登记
Obtain Payment:得到支付
Vehicle Departures & Returns:汽车出发及返回
EuRent DB:汽车租赁数据库
Bookings:登记
Invoice:出具发票(货单)
Costs:费用
(2)“Make Bookings”数据处理单元的定义
设Bookings = (c,b)
其中c为用户,包括用户自然信息,
b为登记信息,包括信用卡、租赁汽车等信息;
Db 为EuRent数据库类型,db为一EuRent数据库;
put为数据添加函数(操作);
establishCB为EuRent数据库创建函数(操作)。
则Make Bookings(MB)形式规约定义为:
Bookings Db Bookings Bookings Db
即
MB:(c, b, db) (c,b), (c, b), establishCB(c, b, put(b, put(c, db)))
(3)“Make Bookings”数据处理单元的语义规约(PSPEC)
Data Type: -- 定义数据类型
C = {c}; -- 用户Customers
B = {b}; -- 登记信息
Bookings = {(c,b)} = CB; -- 登记
Db = { db } = Set C Set B Set(CB);
-- db为数据库DB的任一状态,Set α为α的全集(power set)
Operations:吴英案始末
put:α Db Db; -- 添加数据,α为数据类型B或C,或CB
establish CB: Bookings Db Db; -- 数据库创建
MB:Bookings Db Bookings Bookings Db;
-- Make Bookings(MB)登记处理
学亦有道 Axioms:
MB ((c, b), db) (c,b), (c, b), establishCB(c, b, put(b, put(c, db)))
(3)数据流图处理单元抽象模型及语义
Information Processing(IP)
DataIn DataOut
DB
图2-3:DFD处理单元抽象模型
形式语义:
IP: DataIn Db DataOut Db
(4)DFD应用
● 适用于数据丰富系统(data-rich systems)
退火温度
● 实现上通常采用关系数据库(relational database)
2.3.2 实体关系图ERD及语义
1、基本概念
鸟类的语言定义1(ERD):一个实体关系图ERD描述一个信息系统的逻辑数据结构(Logic Data Structure),其中包括
(1) 那些信息将被存储;
(2) 那些关系将被包括在所存储的信息之间。
定义2(实体):实体是客观存在且相互区分的事物。实体通常由记录来表示,记录域称为属性。实体是通过域名及域值加以区分的。一个或多个属性构成实体的关键字。一个实体是通过其关键字加以标识的。
定义3(属性):属性是实体或关系所具有的性质。
定义4(关系):客观世界中的事物(实体)彼此之间的联系称为关系。
2、实体关系图图形表示
参考《实用软件工程》,第二版,郑人杰等,P70。
3、实例研究
例1:汽车租赁公司ERD
(1)实体关系图见图2-4。
图中:
1 1 俗称乌鸦脚(CrowFoot)
n n 表示一对多关系
图2-4:汽车租赁实体关系图
(2)实体及其属性定义
Customer Auto Booking
Customer No Auto License No Bookings No
CustomerAddress Office Address AutoLicenseNo
CreditLimit AutoCategory CustomerNo
其中带下划线的属性为关键字。
(3)实体E及属性形式语义(代数规约)
设实体为E且具有属性A1、A2、A3,其中属性A1为E的关键字,则实体E的形式规约如下:
Data Type: -- 定义数据类型
E
Operations: -- 定义操作(函数)符
Create E:A1 pes2008补丁A2A3 E ;
attr i:E Ai ; -- 求属性,i = 1,2,3
setattr i:E Ai E ; -- 定义属性,i = 1,2,3
keyE:E A1; -- 定义关键字
Axioms:a1:A1,a2:A2,a3:A3,e:E -- 定义操作(函数)
Attr i(Create E(a1,a2,a3))= ai,i =1,2,3;
keyE(Create E(a1,a2,a3))= a1;
setattr2(e,a2)= Create E(keyE(e),a2,attr3(e));
setattr3(e,a3)= Create E(keyE(e),attr2(e),a3);
(4)数据库DB定义及形式语义
Data Type: -- 定义数据类型
C = {c}; -- 用户Customers
A = {a} ; -- 汽车Autos
B = {b}; -- 登记Bookings