软件参考资料需求分析图形表示与形式描述Word文档格式.docx

上传人:b****5 文档编号:21189509 上传时间:2023-01-28 格式:DOCX 页数:29 大小:796.33KB
下载 相关 举报
软件参考资料需求分析图形表示与形式描述Word文档格式.docx_第1页
第1页 / 共29页
软件参考资料需求分析图形表示与形式描述Word文档格式.docx_第2页
第2页 / 共29页
软件参考资料需求分析图形表示与形式描述Word文档格式.docx_第3页
第3页 / 共29页
软件参考资料需求分析图形表示与形式描述Word文档格式.docx_第4页
第4页 / 共29页
软件参考资料需求分析图形表示与形式描述Word文档格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

软件参考资料需求分析图形表示与形式描述Word文档格式.docx

《软件参考资料需求分析图形表示与形式描述Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件参考资料需求分析图形表示与形式描述Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。

软件参考资料需求分析图形表示与形式描述Word文档格式.docx

数据是如何进入系统或从系统离开;

(2)数据处理站点:

在哪里数据是怎样处理的;

(3)存储单元:

数据是在哪里存储的。

2.定义(DFD符号)

数据(信息)的源点/终点

数据(信息)加工或逻辑处理

数据(信息)存储

数据(信息)流

3.实例研究:

汽车租赁数据流图

(1)一个汽车租赁数据流图EuRentDFD见图2-2。

图2-2:

EuRentDFD

(摘自Haggenmueller,Wirsing:

MethodenderSoftware-Entwicklung,P29)

图中

Kunde:

用户或汽车租赁者

MakeBookings:

租车登记

ObtainPayment:

得到支付

VehicleDepartures&

Returns:

汽车出发及返回

EuRentDB:

汽车租赁数据库

Bookings:

登记

Invoice:

出具发票(货单)

Costs:

费用

(2)“MakeBookings”数据处理单元的定义

设Bookings=(c,b)

其中c为用户,包括用户自然信息,

b为登记信息,包括信用卡、租赁汽车等信息;

Db为EuRent数据库类型,db为一EuRent数据库;

put为数据添加函数(操作);

establishCB为EuRent数据库创建函数(操作)。

则MakeBookings(MB)形式规约定义为:

Bookings⨯Db→Bookings⨯Bookings⨯Db

MB:

(c,b,db)→(c,b),(c,b),establishCB(c,b,put(b,put(c,db)))

(3)“MakeBookings”数据处理单元的语义规约(PSPEC)

DataType:

--定义数据类型

C={c};

--用户Customers

B={b};

--登记信息

Bookings={(c,b)}=C⨯B;

--登记

Db={db}=SetC⨯SetB⨯Set(C⨯B);

--db为数据库DB的任一状态,Setα为α的全集(powerset)

Operations:

put:

α⨯Db→Db;

--添加数据,α为数据类型B或C,或C⨯B

establishCB:

Bookings⨯Db→Db;

--数据库创建

MB:

Bookings⨯Db→Bookings⨯Bookings⨯Db;

--MakeBookings(MB)登记处理

Axioms:

MB((c,b),db)⇒(c,b),(c,b),establishCB(c,b,put(b,put(c,db)))

(3)数据流图处理单元抽象模型及语义

InformationProcessing(IP)

DataInDataOut

DB

图2-3:

DFD处理单元抽象模型

形式语义:

IP:

DataIn⨯Db→DataOut⨯Db

(4)DFD应用

●适用于数据丰富系统(data-richsystems)

●实现上通常采用关系数据库(relationaldatabase)

2.3.2实体关系图ERD及语义

1、基本概念

定义1(ERD):

一个实体关系图ERD描述一个信息系统的逻辑数据结构(LogicDataStructure),其中包括

(1)那些信息将被存储;

(2)那些关系将被包括在所存储的信息之间。

定义2(实体):

实体是客观存在且相互区分的事物。

实体通常由记录来表示,记录域称为属性。

实体是通过域名及域值加以区分的。

一个或多个属性构成实体的关键字。

一个实体是通过其关键字加以标识的。

定义3(属性):

属性是实体或关系所具有的性质。

定义4(关系):

客观世界中的事物(实体)彼此之间的联系称为关系。

2、实体关系图图形表示

参考《实用软件工程》,第二版,郑人杰等,P70。

3、实例研究

例1:

汽车租赁公司ERD

(1)实体关系图见图2-4。

汽车

Auto

图中:

11俗称乌鸦脚(CrowFoot)

nn表示一对多关系

图2-4:

汽车租赁实体关系图

(2)实体及其属性定义

CustomerAutoBooking

CustomerNoAutoLicenseNoBookingsNo

CustomerAddressOfficeAddressAutoLicenseNo

CreditLimitAutoCategoryCustomerNo

其中带下划线的属性为关键字。

(3)实体E及属性形式语义(代数规约)

设实体为E且具有属性A1、A2、A3,其中属性A1为E的关键字,则实体E的形式规约如下:

DataType:

E

Operations:

--定义操作(函数)符

CreateE:

A1⨯A2⨯A3→E;

attri:

E→Ai;

--求属性,i=1,2,3

setattri:

E⨯Ai→E;

--定义属性,i=1,2,3

keyE:

E→A1;

--定义关键字

Axioms:

∀a1:

A1,a2:

A2,a3:

A3,e:

E--定义操作(函数)

Attri(CreateE(a1,a2,a3))=ai,i=1,2,3;

keyE(CreateE(a1,a2,a3))=a1;

setattr2(e,a2)=CreateE(keyE(e),a2,attr3(e));

setattr3(e,a3)=CreateE(keyE(e),attr2(e),a3);

(4)数据库DB定义及形式语义

A={a};

--汽车Autos

--登记Bookings

CB={(c,b)}=C⨯B;

--关系CB

AB={(a,b)}=A⨯B;

--关系AB

Db={db}--db为数据库DB的任一状态

=SetC⨯SetB⨯SetA⨯Set(C⨯B)⨯Set(A⨯B);

--SetC为C的全集(powerset)

entityC:

Db→SetC;

entityB:

Db→SetB;

entityA:

Db→SetA;

relationCB:

Db→Set(C⨯B);

relationAB:

Db→Set(A⨯B);

putC:

C⨯Db→Db;

putB:

B⨯Db→Db;

putA:

A⨯Db→Db;

delC:

delB:

delA:

Db⨯C⨯B→Db;

establishAB:

Db⨯A⨯B→Db;

releaseCB:

releaseAB:

emptydb={Φ,Φ,Φ,Φ,Φ};

--theinitialstateofDb

--“一对多”关系(乌鸭脚)应满足的条件(限制constrains)

∀db:

Db,∀c,c1:

C,∀b:

B:

relationCBdb(c,b)∧relationCBdb(c1,b)⇒c=c1;

Db,∀a,a1:

A,∀b:

relationABdb(a,b)∧relationABdb(a1,b)⇒a=a1;

(5)“一对多”关系的一般表达式及应用

Booking

1:

n

(a,b),(a1,b)∈relationABdb⇒a=a1;

应用举例:

●房屋销售不能一房同时卖给多个客户;

●一间教室不能同时安排多个班上课等。

2.3.3状态转换图STD及语义

状态转换图STD描述了限定性状态转换系统DSTS(DeterministicStateTransitionSystem)的状态变化过程。

1、基本概念

定义1(限定性状态转换系统DSTS):

一个限定性状态转换系统DSTS是一个五维数组DSTS=(Q,I,q0,δ,O),其中Q是一个非空有限状态集合,I是一个非空有限输入符号(也称事件)集合,q0是DSTS的初始状态且q0∈Q,O是非空的输出符号(也称输出)集合,δ是DSTS的状态转换函数且定义为δ:

Q⨯I→Q⨯O。

定义2(状态转换图STD):

一个限定性状态转换系统DSTS=(Q,I,q0,δ,O)的状态转换图G是一个带符号和方向的图,定义如下:

·

G的结点是Q的元素;

q0(初始状态)是图G的起点;

图G中连线的标号是映射I→O的元素;

·

从结点p到结点q连接一个标号为a→b的箭头连线当且仅当(q,b)=δ(p,a),显然,(a→b)∈(I→O)。

2、实例研究:

图形用户界面(GUI)设计中的开关Button

(1)定义

Button是一个限定性状态转换系统,且定义为

Button=(Q,I,q0,δ,O),

其中

Q={Off,On}

q0=Off,且q0∈Q

I={MouseDown,MouseUp}

O={r0,r1,r2,r3}

(2)Button的状态转换图

图2-5:

Button的状态转换图

见黑板。

(3)状态转换函数δ的定义

状态/输入

MouseDown

MouseUp

Off

(On,r0)

(Off,r1)

On

(On,r2)

(Off,r3)

图2-6:

Button的状态转换函数δ

(4)Button形式规约(形式语义)

State={Off,On};

--定义状态集合Q

Event={MouseDown,MouseUp};

--定义输入集合I

Report={r0,r1,r2,r3}--定义输出集合O

q0:

→State;

δ:

State⨯Event→State⨯Report;

q0=Off;

δ(Off,MouseDown)=(On,r0);

δ(Off,MouseUp)=(Off,r1);

δ(On,MouseDown)=(On,r2);

δ(On,MouseUp)=(Off,r3)。

2.3.4关于图形描述技术的几点说明

●一个图只是一个可实现模块;

●复杂图的表示很困难;

●尚无有效的图形集成技术;

●尚缺少有效的图形正确性证明技术。

第三章形式规约理论与方法

3.1理论提出

(1)Guttag(1975-78):

首次在程序中引入等式规约

代表作1:

Guttag,J.V

Thespecificationandapplicationtoprogrammingofabstract

dadatypes

Ph.DThesis,Univ.ofToronto,1975

代表作2:

Guttag,J.V,HorningJ.J

Thealgebraicspecificationofdatatypes

ActaInf.Vol.10,PP27-52,1978

(2)ADJ-Group(Goguen,Thatcher,Wagner,Wright,1975):

Initialsemantics(初始语义),many-sortedgeneralalgebra

代表作:

GoguenJ.A,ThatcherJ.W,WagnerE.G,WrightJ.B

Abstractdatatypesasinitialalgebraandthecorrectnessof

datarepresentations

Proc.Conf.onComputerGraphics,PatternRecognitionand

DataStructure,1975,PP89-93

(3)Gimona,Giarratana,Montanan,Wand(1976):

Terminalsemantics(终结语义)

(4)CIP-Group(Bauer,Broy,Dosch,Partsch,Pepper,Wirsing,1978):

Loosesemantic(松散语义)

3.2简单规约设计

3.2.1规约的一般形式

1.SPECTRUM语言规约设计

SP={--定义标记Σ

SortS;

FunctF;

PredP;

SgeneratedbyC;

--定义公理

axioms

E

endaxioms}

其中,

S:

规约中包括的所有数据类型的集合

F:

所有函数符号的集合

P:

所有谓词符号的集合

C:

S的构造操作符集合,且C⊆F

E:

公理集合,表示所有的特性(CharacteristicProperties)

上述规约可书写成如下:

规约SP=〈标记Σ,公理E〉

2.BoolthValue的规约设计

(1)公理规约(AxiomaticSpecification)

BOOL0={

--signature

--sort

SortBool;

--functionssymbol

Functtrue∈Bool;

false∈Bool;

--predicatesymbols

Prednot∈Bool→Bool;

--axioms

Axioms,∀x:

Bool

not(true)=false;

not(not(x))=x

endaxioms;

}

(2)Prolog规约 (PrologSpecification)

 Remark:

n个变量的函数将通过n+1变量的关系定义,函数的值变量置于n+1个关系的最后一位.

BOOL_PL={

PredNot⊆Bool⨯Bool;

axioms∀x,y∈Bool

Not(true,false);

Not(x,y)=Not(y,x)

endaxioms;

(3)逻辑规约(LogicSpecification)

一个自变量的布尔函数将通过一个变量的关系表达.

BOOL_L={

PredNot⊆Bool;

axioms

Not(false);

⌝Not(true)

(4)带构造操作符的公理规约(SpecificationwithConstructor)

BOOLT={

--constructoraxiom:

Inductionprinciplefortruthvalue

Boolgeneratedbytrue,false;

--Non-constructorsymbol

Functnot∈Bool→Bool;

axioms∀x∈Bool

not(not(x))=x

3.2.2标记Signature

1.定义(Signature):

一个标记∑是一个三元组∑=(S,F,P),其中

S是一个类集(SetofSorts),

F是一个定义在S*⨯S上的函数符号集,其中

<

s1,s2,…,sn>

∈S*为定义域,

s∈S为函数F<

<

s1,s2,…,sn>

s>

的值域,

P是一个定义在S*上的谓词符号集。

Remark:

(1)标记描述规约的语法(SyntaxofSpecification)

(2)f∈F<

可写成f∈s1⨯s2⨯…,⨯sn→s

(3)p∈P<

可写成P⊆s1⨯s2⨯…,⨯sn

(4)规约SP的标记∑可写成sig(SP):

SP→∑

2.案例研究

上述逻辑规约(LogicSpecification)BOOL_L的标记

sig(BOOL_L):

S={Bool}

F=(F<

ω,Bool>

)ω∈{Booln|n≥0}且

F<

ε,Bool>

={true,false}--常量

=Φotherwise--空集

P=(Pω)ω∈{Booln|n≥0}且

P<

Bool,Bool>

={Not,=}--其中=为布尔运算

Pω=Φotherwise

例2:

公理规约BOOL0及BOOLT的标记

sig(BOOL0)=sig(BOOLT)

S={Bool};

Bool,Bool>

={not}--函数

F<

=Φotherwise;

--空集

={=}--其中=为布尔运算

思考:

(1)找出程序中所有类型与运算符号有利于程序理解;

(2)可用于程序测试、项目管理、程序度量等;

(3)可用于研究程序体系结构等;

(4)语法、语义匹配,语义查询等;

(5)基于语义的web服务应用等。

3.定义:

标记∑被称为是代数的,只有当等式“=”是其中唯一的关系运算符。

例:

上述规约BOOL0和BOOLT的标记是代数的;

规约BOOL_L不是代数的,因为存在关系运算符“not”。

3.2.3项(Term)

每个标记∑=(S,F,P)定义了一个表达式的集合,称为项集,其中项元素是由自由变量x和∑中的函数符号构成。

x:

S

所有程序中的表达式都是由∑和X构成的。

1.定义(项的归纳定义):

(1)设∑为标记,X=(Xs)s∈S为标识符(identificator)的集合,则

对每个s∈S,T(∑,X)s为最小项集并满足下列特性:

a)对每个x∈Xs满足x∈T(∑,X)s,则x是一个∑项;

b)若f∈F<

ε,s>

并满足f∈T(∑,X)s,则f是一个常量,同时

f也是一个∑项;

c)若f∈F<

且ti∈T(∑,X)si,i=1,…,n,则

f(t1,…,tn)∈T(∑,X);

(2)不含变量的项称为基项(groundterm),即当X=Φ时,所有的

t∈T(∑,Φ)s是基项;

(3)标记∑被称为是敏感的(sensitive),如果每个类s∈S都存在一个

基项t∈T(∑,Φ)s,即∀s∈S.T(∑,Φ)s≠Φ成立;

(4)项t∈T(∑,X)s的类型为s;

(5)T(∑,X)=def(T(∑,X)s)s∈S

2.举例:

数学表达式中的项

表达式:

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

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1