• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    UML類圖的形式規(guī)約與精化研究

    2017-02-27 10:58:40王博文楊宗源
    計算機應用與軟件 2017年2期
    關鍵詞:類圖精化規(guī)約

    王博文 盛 楓 竇 亮 楊宗源

    (華東師范大學信息科學技術學院 上海 200241)

    UML類圖的形式規(guī)約與精化研究

    王博文 盛 楓 竇 亮 楊宗源

    (華東師范大學信息科學技術學院 上海 200241)

    UML由于其廣泛的應用和直觀的圖形化符號,成為了模型驅動工程的重要組成部分。但UML本身缺乏精確的形式語義定義,缺少對其模型精化關系的形式化規(guī)范定義,對UML模型進行形式驗證變得尤為困難。UML類圖作為描述系統(tǒng)結構的靜態(tài)模型,不具備完整的形式語義。從UML類圖的機械語義中抽取出形式規(guī)約,將UML類圖中的結構和形式規(guī)約轉換成定理證明器Coq中的機械語義定義。此外,還提出了類圖的結構精化操作,將模型間的精化關系在Coq中進行形式化定義,并且對精化操作的原子操作進行機械驗證,保證其精化前后系統(tǒng)的結構和語義保持一致。將UML和形式化方法相結合,為可驗證的軟件設計精化框架提供了理論依據(jù)。

    UML類圖 模型精化 Coq 機械語意

    0 引 言

    統(tǒng)一建模語言UML是一種通用的圖形化建模語言,具備直觀易懂特性,并且具有較好的可視化工具提供支持如Rational Rose、 Argo UML等,在模型驅動工程中得到了廣泛的應用,成為面向對象分析和設計的工業(yè)標準。UML提供不同類型的圖,從不同方面和不同視角對系統(tǒng)進行建模。然而,當前的UML2.0使用半形式化的圖、約束和非形式化的自然語言文本進行描述,缺乏精確的語義定義,會導致以下問題:(1)對模型理解的不一致性,即不同的人員對同一模型會有不同的理解;(2)難以實現(xiàn)迭代精化的開發(fā)過程;(3)難以對模型進行分析以保證其正確性。

    在之前的工作中[4],我們使用定理證明器Coq[3]對UML序列圖和狀態(tài)圖的機械語義與精化操作進行形式化描述和機械驗證,并使用Kermeta[14]實現(xiàn)了序列圖和狀態(tài)圖的形式語義到Coq定義的自動轉換。然而,由于序列圖和狀態(tài)圖是UML動態(tài)圖,具有完整的指稱語義或操作語義,可在Coq中描述并實現(xiàn)機械驗證。UML類圖作為描述系統(tǒng)結構的靜態(tài)模型,不具備完整的形式語義,因此本文首先從UML類圖的形式語義中抽取出形式規(guī)約,即形式規(guī)約是UML類圖形式語義的具體體現(xiàn)。然后使用Coq對UML類圖的形式規(guī)約和結構精化的原子操作進行形式化描述與定義?;谏鲜龅男问矫枋?,將UML類圖的重要屬性與精化關系轉換為數(shù)學定理,在Coq中進行形式化定義與驗證。本文將半形式化的UML類圖與形式化方法相結合,彌補了半形式化UML的不足,通過對類圖及其精化操作的形式化描述與驗證,保證UML模型及其精化的一致性和正確性,為可驗證軟件設計模型精化框架提供了理論基礎。

    1 定理證明器Coq

    Coq是當前被廣泛用于機械語義研究的交互式定理證明器,其內置語言(Gallina)基于歸納構造演算,且提供交互式的證明環(huán)境。歸納構造演算是一種形式系統(tǒng),結合了構造邏輯和依賴類型的最新進展。Coq中的歸納類型擴展了傳統(tǒng)程序設計語言中有關類型定義的概念,融合遞歸類型和依賴積,具有更強的表達能力。與其他證明工具相比,Coq尤為適合對形式語法和語義進行精確的表示。如Isabelle/HOL也可用于機械語義驗證,但由于Isabelle/HOL[13]缺乏依賴類型,因此對一些正確性屬性的證明代碼量相對較多。Coq中常用的類型包括歸納類型和歸納謂詞。歸納類型適合對數(shù)據(jù)類型進行建模,它可以表示無限集合,且每個元素都是在有限步驟內構造的。歸納謂詞可以對各種屬性進行公式化,并可表示各種歸納數(shù)據(jù)類型之間的關系,適合描述系統(tǒng)之間的重要屬性。

    Coq使用歸納類型來定義類型。例如,自然數(shù)的歸納類型可定義為:

    Inductive nat :Set :=

    | O : nat | S : nat -> nat.

    其中nat是歸納定義類型,屬于Set(類型的全域)中的值。類型nat包括兩個構造子,第一個構造子聲明O屬于自然數(shù),第二個構造子表示任意給定一個自然數(shù)n,S n仍然是個自然數(shù),即任何自然數(shù)的后繼也是自然數(shù)。Coq還可以表示歸納定義的謂詞,表示數(shù)據(jù)類型的屬性或關系。基于類型nat的定義,可以定義偶數(shù)的概念:

    Inductive even : nat -> Prop :=

    | O_even: even O

    | Plus2_even: forall n:nat, even n -> even (S (S n)).

    謂詞even的類型是nat->Prop,表示關于nat的命題。even n是n是偶數(shù)的一個證明。O_even表示 O 是偶數(shù),Plus2_even表示對于任意的自然數(shù)n,如果n是偶數(shù),則n+2也是偶數(shù)。關鍵字Definition用來定義新的數(shù)據(jù)類型,如Definition string_pair : Set := string * string定義了類型(string,string)。

    2 類圖形式規(guī)約

    UML的類圖是由多個類,類之間的關系以及這些關系的約束組成,是描述系統(tǒng)結構的一種靜態(tài)模型,是構建UML其他圖的基礎。類圖所包含的內容有:類、關聯(lián)、關聯(lián)類和泛化等。本節(jié)將介紹UML類圖中各個元素的形式規(guī)約,并且在定理證明器Coq中形式化描述。

    2.1 類

    類是描述具有相同特征、約束和語義的一組對象的集合,是構成類圖的基礎。在語法上,一個類是由類名、屬性和操作組成的,其中屬性由屬性名和屬性類型組成,操作由操作名和操作參數(shù)組成,每個操作參數(shù)具有參數(shù)名和參數(shù)類型。根據(jù)Evans[1]的UML類圖語法,本文定義ClassName和Name來表示類名與屬性、操作名集合:ClassName表示所有類的名字的集合,Name表示所有屬性、操作以及操作參數(shù)名的集合。使用ClassDec =(P,O,attrtype, opsigs)來形式定義類,其中P表示屬性的集合,O表示操作集合,attrtype函數(shù)將類中的屬性映射到屬性類型,具有Name -> Type類型,opsigs函數(shù)將類中的操作映射到相應的操作參數(shù),并且將參數(shù)映射到參數(shù)類型,具有Name -> (Name -> Type)類型。在Coq中,使用歸納類型定義包括類名(Class),屬性(Property),操作(Operation)和參數(shù)(Parameter_)等基本類型,關鍵字 Definition定義類型ClassDec:

    Inductive Class : Set := class : string -> Class.

    Inductive Operation : Set := operation : string -> Operation.

    Inductive Property : Set := property : string -> Property.

    Inductive Parameter_ : Set :=parameter : string ->

    Parameter_.Definition ClassDec : Type :=

    list Property * list Operation * (Name -> Type) * (Name -> (Name -> Type)).其中dom(attrtype) = P, dom(opsigs) = O.

    對于屬性、操作等類型,不同的類可能具有相同的屬性名或操作名,而對于類名來說,不同類的類名必須是不同的。因此,UML類圖中的類可定義為類名Class到四元組ClassDec的歸納類型:

    Inductive UMLClass := class2dec : Class -> ClassDec -> UMLClass.

    2.2 關 聯(lián)

    在UML中,關聯(lián)關系表示類與類之間的關系,關聯(lián)可分為三類:一般關聯(lián)、聚合以及組合。聚合是一種特殊的關聯(lián)關系,表示類間的關系是整體和部分的關系。組合則是更強形式的關聯(lián),整體有管理部分特有的職責并且具有一致的生命周期。在大部分情況下,類圖中的關聯(lián)指的是二元關聯(lián),因此,本文僅僅考慮二元關聯(lián)。

    在語法上,二元關聯(lián)用連接兩個類的實線表示,由關聯(lián)名和一對關聯(lián)端點(association end)組成。每個關聯(lián)端點具有角色名(role name)、多重性約束(multiplicity constraint)、附加類(attached class)和關聯(lián)類型(assockind)等元素。擴展集合Name的定義域,使其包括所有可能的關聯(lián)名和角色名。關聯(lián)端點由四元組AssociationEnd = (rolename, multiplicity, attachedclass, aggregation)表示。UML類圖的多重性約束表示一個類與相關聯(lián)的類的單個實例可能相關的實例個數(shù),即多重性約束了相關對象的數(shù)目。因此,本文使用自然數(shù)域(nat)來表示多重性的上界。附加類表示其與該關聯(lián)端點相連接的類,具有Class類型。aggregation表示關聯(lián)類型,具有一般關聯(lián)(none),聚合(aggregate)和組合(composite)三種類型。在Coq中使用歸納類型Indutive來定義關聯(lián)類型:

    Inductive assockind := none | aggregate | composite.

    Definition AssociationEnd : Type := string * nat * Class * assockind.Definition associations:= string * (AssociationEnd * AssociationEnd).

    其中nat表示自然數(shù)集合。對于關聯(lián)關系來說,具有以下約束條件:

    定義1 對于一組關聯(lián)關系(n, (e1,e2)),關聯(lián)名n與角色名e1.rolename、e2.rolename不能相同。

    Definition asso_post1 (assoc : set associations):=

    forall (n : string) (e1 e2 : AssociationEnd), set_In (n, (e1, e2)) assoc -> (rolename e1) <> (rolename e2) ∧ n <> (rolename e1) ∧ n <> (rolename e2).

    其中set_In函數(shù)是Coq內置函數(shù),用于判定某個元素是否屬于某個集合。

    定義2 對于聚類關系,兩個關聯(lián)端點的關聯(lián)類型分別為aggregate和none;對于組合關系,兩個關聯(lián)端點的關聯(lián)類型分別為composite和none;對于組合關系,關聯(lián)端點的關聯(lián)類型為composite的端點,其多重性約束的值為1。

    Definition asso_post2 (assoc : set associations):=

    forall (n : string) (e1 e2 : AssociationEnd), set_In (n, (e1, e2)) assoc -> (or (aggregation e1 = composite) (aggregation e1 = aggregate) -> aggregation e2 = none) ∧(aggregation e1 = composite -> multiplicity e1 = 1).

    函數(shù)or表示Coq內置的邏輯或操作。

    定義3 對于所有的關聯(lián)關系,其關聯(lián)名必須是唯一的,即如果 (n1,(e1,e2))和(n2,(e3,e4))均屬于集合associations,e1 ≠ e3,e2 ≠ e4,e1對應的附加類與e3相同且e2對應的附加類與e4相同,那么n1≠n2。

    Definition asso_post3 (assoc : set associations):= forall (n1 n2 : string) (e1 e2 e3 e4 : AssociationEnd) ,

    e1 <> e3 ∧ e2 <> e4 ∧ set_In (n1, (e1, e2)) assoc ∧ set_In (n2, (e3, e4)) assoc ∧attechedclass e1 = attechedclass e3 ∧ attechedclass e2 = attechedclass e4 -> n1 <> n2.

    如果類圖中的關聯(lián)關系符合上述語法和約束,則認為其符合UML類圖的形式規(guī)范。使用Coq中的子集類型來表示符合上述約束的數(shù)據(jù)類型,即將數(shù)據(jù)類型和該類型上的約束謂詞相結合,從而得到滿足該謂詞的數(shù)據(jù)類型:

    Definition umlassociations :=

    {assoc : set associations | asso_post1 assoc ∧ asso_post2 assoc ∧ asso_post3 assoc }.

    2.3 關聯(lián)類

    關聯(lián)類是一個擁有關聯(lián)關系和類特性的模型元素。一個關聯(lián)類可以看作是一組擁有類特性的關聯(lián)關系,或者是一個擁有關聯(lián)特性的類。它不僅僅用于連接一些分類器(classifier),還定義了屬于關聯(lián)關系本身的特征,這些特征是只屬于關聯(lián)關系本身而不屬于任何關聯(lián)分類器的。關聯(lián)類由類和一對關聯(lián)端點組成,由二元組AssocClassDec = (assoc, (assoEnd1, assoEnd2))表示,其中assoc表示類,是集合umlclass的元素,assoEnd1和assoEnd2是類型AssociationEnd的關聯(lián)端點:

    Definition AssocClassDec: Type := umlclass* (AssociationEnd * AssociationEnd).

    對于關聯(lián)類來說,具有以下約束條件:

    定義4 對于任意關聯(lián)類(umlclass,(e1,e2)),e1.rolename ≠ e2.roolename,并且關聯(lián)類型的值必須是none。

    Definition assocClass_post1 (asscl : UMLAssocClass) := forall (e1 e2 : AssociationEnd),

    asslink1 asscl = e1 ∧ asslink2 asscl = e2 -> rolename e1 <> rolename e2 ∧aggregation e1 = none ∧ aggregation e2 = none.

    其中函數(shù)asslink1和asslink2表示關聯(lián)類中的一組關聯(lián)端點,函數(shù)rolename表示關聯(lián)端點中的角色名。

    定義5 對于任意關聯(lián)類(umlclass,(e1,e2)),附加類中的角色名不屬于關聯(lián)類中類的屬性名集合。

    Definition assocClass_post2 (asscl :set AssocClassDec) :=

    forall (u : umlclass) (e1 e2 : AssociationEnd), set_In (u, (e1, e2)) asscl ->set_In (rolename e1) (makeattr_name (class_pro u)) ∧

    ~ set_In (rolename e2) (makeattr_name (class_pro u)).

    其中函數(shù)class_pro返回類u中的屬性集合,函數(shù)makeattr_name將屬性集合中的元素類型由Property轉換為string類型。

    定義6 對于任意關聯(lián)類(umlclass,(e1,e2)),關聯(lián)端點中的附加類不是關聯(lián)類中的類,即e1.attachedclass ≠ umlclass.classname并且e2.attachedclass ≠ umlclass.classname。

    Definition assocClass_post3 (asscl : set AssocClassDec) :=

    forall (u : umlclass) (e1 e2 : AssociationEnd), set_In (u, (e1, e2)) asscl ->class_eq (attechedclass e1) (class_name u) = false /〗~class_eq (attechedclass e2) (class_name u) = false.

    其中函數(shù)class_eq判定兩個類型為Class的元素是否相等。

    UML類圖的關聯(lián)類的形式化表示是滿足上述約束的類型為AssocClassDec的數(shù)據(jù)類型:

    Definition UMLAssocClass :=

    { assocClass : AssocClassDec | assocClass_post1 assocClass ∧ assocClass_post2 assocClass ∧ assocClass_post3 assocClass }.

    2.4 泛 化

    泛化關系是父類與子類之間的關系,子類繼承父類的屬性和操作,并且添加新的屬性和操作,或者修改父類的某些操作[2],是實現(xiàn)多態(tài)的基礎。本文使用集合superclasses和subclasses表示泛化關系中的父類和子類。superclasses表示類名Class中的父類的有限集合,subclasseses表示類名Class的每個父類的子類集合的集合。使用二元組(class, subclasees)表示一組泛化關系,其中class表示父類,subclasses表示該父類下的子類集合,列表類型list來定義泛化關系的集合:

    Definition UMLGeneralizetion: Type := list (Class * set Class).

    Fixpoint subclasses (gen : UMLGeneralizetion) (c : Class): Cl :=

    match gen with

    | nil => nil

    | x :: A => if class_dec (fst x) c then (snd x) else subclasses A c

    end.

    Fixpoint superclasses (gen : GenDec) : Cl =

    match gen with

    | nil => nil

    | x :: A => (fst x) :: superclasses A

    end.

    其中fst函數(shù)返回多元組中的第一個元素,snd函數(shù)是返回多元組中的第二個元素,subclasses函數(shù)是對于給定的父類,從泛化關系集合中返回其對應的子類集合; superclasses函數(shù)的功能是返回泛化關系集合中的所有父類集合,中綴::表示連接一個元素(fst x)與集合(superclasses A),將元素置入列表的首位。

    對于泛化關系而言,具有以下約束:

    定義7 對于任意泛化關系,父類與子類均不具備自反繼承性(reflexive inheritance),即每一個類不可能是該類的父類,也不是該類的子類,父類集合與子類集合不相交。

    Definition Gen_post1 (gen : GenDec) :=

    forall (cl : Class), set_In cl (superclasses gen) ->

    forall (s : Class), set_In s (superclasses gen) -> ~ set_In cl (subclasses gen s).

    Definition Gen_post2 (gen : GenDec) :=

    forall (cl s : Class), set_In s (superclasses gen) ∧ set_In cl (subclasses gen s) ->

    ~ set_In cl (superclasses gen).

    UML類圖中的泛化關系的形式化表示是滿足上述約束的類型為GenDec的數(shù)據(jù)類型:

    Definition umlgenalizations := {gen : GenDec | Gen_post1 gen ∧ Gen_post2 gen }.

    2.5 類 圖

    UML類圖是包括類、關聯(lián)類、關聯(lián)關系和泛化關系等類型的集合,由四元組UMLClassDiagram= (UMLClass, UMLAssociation, UMLAssocClass, UMLGeneralizetion)表示:

    Definition UMLClassDiagram := (list UMLClass * UMLAssociation * UMLAssocClass * UMLGeneralizetion).

    對于類圖而言,具有以下約束:

    定義8 類圖中的UMLClass集合的類名集合與關聯(lián)類UMLAssocClass的類名集合不相交。

    Definition UMLCD_post1 (umlcd : UMLClassDiagram) : Prop := forall (c : Class), set_In c (makeclass_name (uml_class umlcd)) -> set_In c (assoc_classname (uml_assocclass umlcd)).

    其中函數(shù)uml_assocclass從類圖中取出關聯(lián)類UMLAssocClass的集合,函數(shù)assoc_classname返回關聯(lián)類UMLAssocClass中的類名集合,函數(shù)makeclass_name返回UMLClass集合中的類名集合。

    定義9 類圖中的關聯(lián)關系UMLAssociation中的附加類名屬于集合UMLClass的類名集合。

    Definition UMLCD_post2 (umlcd : UMLClassDiagram) : Prop := forall (c : Class), set_In c (assoc_attachclasses (uml_assoc umlcd)) -> set_In c (makeclass_name (uml_class umlcd)).

    其中函數(shù)assoc_attachclasses計算類圖中的關聯(lián)類的類名集合,函數(shù)uml_assoc返回類圖中的關聯(lián)關系集合,函數(shù)uml_class返回類圖中的類的類名集合。

    定義10 類圖的泛化關系UMLGeneralizetion中的父類和子類名均屬于集合UMLClass的類名集合。

    Definition UMLCD_post3 (umlcd : UMLClassDiagram) : Prop := forall (c : Class), set_In c (allclasses (uml_gen umlcd)) -> set_In c (makeclass_name (uml_class umlcd)).

    函數(shù)allclasses計算泛化關系中的父類名和子類名的集合,函數(shù)uml_gen返回類圖中的泛化關系的集合。

    UML類圖的形式化定義是滿足上述約束的類型為UMLClassDiagram的數(shù)據(jù)類型:

    Definition UMLClassDiagrams := { umlcd : UMLClassDiagram | UMLCD_post1 umlcd ∧ UMLCD_post2 umlcd ∧ UMLCD_post3 umlcd }.

    3 精化操作

    類圖是由所有類、類之間的關系和關系的約束組成的集合,主要體現(xiàn)了需求工程中系統(tǒng)的靜態(tài)結構。對于類圖的精化操作研究,本文主要側重于系統(tǒng)結構方面的精化操作,即添加、刪除或修改類、關聯(lián)類、關聯(lián)關系以及泛化關系。類圖的精化操作往往是一種迭代過程:給出一個抽象的類圖模型,通過一系列復雜的精化操作,最終得到一個具體的類圖模型。每個中間模型都必須與其精化后的模型保持一致,即精化前后系統(tǒng)的結構和語義保持一致。本節(jié)給出四種類圖精化的原子操作,復雜的精化操作可通過有限次的調用原子操作實現(xiàn):

    3.1 添 加

    向已有的類圖中添加新的類或關聯(lián)類,函數(shù)addumlclass是向給定的類圖(UMLClassDiagrams)中添加新的類(umlclass),其核心是將添加的類定義成umlclass類型并添加到list umlclass的集合中:

    Definition addumlclass (u : umlclass) (UCD : UMLClassDiagrams) := match UCD with

    | (s, ass, assocclass, gen) => (u :: s, ass, assocclass, gen)

    end.

    3.2 刪 除

    從已有的類圖中刪除指定的類或關聯(lián)類,分為以下兩種情況:

    1) 如果刪除的對象是關聯(lián)類c,那么直接刪除集合UMLAssocClass中的關聯(lián)類名為c的元素,包括其關聯(lián)類和關聯(lián)端點;

    2) 如果刪除的對象是集合UMLClass中的一般類,首先搜索關聯(lián)關系集合、關聯(lián)類集合和泛化關系集合,如果關聯(lián)端點或泛化關系中存在該類名,那么先執(zhí)行拆分操作,刪除其關聯(lián)關系或泛化關系。然后調用函數(shù)re_class,通過搜索集合umlclass中是否存在c,如果存在則將其從umlclass中刪除。函數(shù)removeclass是從給定的類圖(UMLClassDiagrams)刪除指定的類u。

    Fixpoint re_class (c : Class) (u : list umlclass) :=

    match u with

    | nil => nil

    | x :: A => if class_dec c (class_name x) then A else x :: re_class c A

    end.

    Definition removeclass (u : umlclass) (UCD : UMLClassDiagram) :=

    match UCD with

    | (s, asso, assocclass, gen) => (re_class (class_name u) s, asso, assocclass, gen)

    end.

    3.3 鏈 接

    向已有的類圖中添加新的關聯(lián)關系或泛化關系,其Coq定義與添加操作類似。

    3.4 拆 分

    從已有的類圖中刪除指定的關聯(lián)關系或泛化關系,其Coq定義與刪除操作類似。

    定理1 設u:umlclass, UCD:UMLClassDiagram,如果u不屬于集合ClassName并且UCD滿足上述類圖的形式規(guī)約UML_post UCD,那么執(zhí)行添加操作后得到的類圖也滿足形式規(guī)約UMLCD_post (addClass u UMLCD):

    Theorem add_UML_pre :

    forall (u : umlclass) (UCD : UMLClassDiagram),

    set_In u (uml_class UCD) ∧ UMLCD_post UCD ->

    UMLCD_post (addumlclass u UCD).

    定理2 設a:associations, UCD:UMLClassDiagram,如果a不屬于類圖UCD的關聯(lián)關系,并且UCD中的所有關聯(lián)關系a均符合上述形式規(guī)約,那么執(zhí)行鏈接操作后得到的類圖也滿足形式規(guī)約UMLCD_post (addlink u UMLCD):

    Theorem addlink_UML_pre :

    forall (al : associations) (UCD : UMLClassDiagram),

    ~ set_In u (uml_assoc UCD) ∧ UMLCD_post UCD ->

    UMLCD_post (addlink al UCD).

    其中函數(shù)uml_assoc是返回類圖UMLClassDiagram中的關聯(lián)關系的集合。

    上述定理表明:如果類圖滿足上述的形式規(guī)約,那么它執(zhí)行上述四種精化操作后得到的類圖也滿足上述形式規(guī)約。復雜的類圖精化操作可以通過有限次的原子精化操作得到,如添加一個類,首先在UMLClass集合中添加該類的具體信息,然后在執(zhí)行鏈接操作將其與該類圖中的其他類相關聯(lián)。對精化操作的原子操作的機械驗證,保證了其復雜的精化操作的正確性,從而驗證了UML類圖精化操作前后的結構和語義的一致性。

    4 實例驗證

    本節(jié)給出一個圖書館系統(tǒng)的類圖,如圖1所示,我們將其轉換成上述由定理證明器Coq所描述的形式規(guī)約,并且驗證該類圖符合UML類圖的形式化規(guī)約。圖1包括三個實體類Reader,Copy和Publication。類Publication可以泛化成兩個子類Periodical和Book。關聯(lián)類Loan表示類Reader和類Copy之間的關系,并且具有類Loan。關聯(lián)關系catalogue將類Copy和類Publication相關聯(lián)。

    根據(jù)上述的定義,由于篇幅有限,本文只給出上述類圖的部分形式化規(guī)約定義:

    首先,定義各個類的名字,其類型為Class如class “Loan”表示類名為Loan的類,其次定義每個類的屬性與操作集合如property “l(fā)oaddate”表示屬性loaddate,operation “CheckOverdue”表示操作CheckOverdue,類的屬性的類型為Property,Loanproperty和Loanoperation分別是類圖Loan的屬性和操作的集合,LoanClass是將類名Loan到其具體參數(shù)LoanDec的映射,BookSysClass表示類的集合。

    (* An example of ClassDec *)

    Definition Loan := class ″Loan″.

    Definition Reader := class ″Reader″.

    (* class Loan *)

    Definition loaddate := property ″loaddate″.

    Definition CheckOverdue := operation ″CheckOverdue″.

    Definition Loanproperty : list Property := loaddate :: duedate :: nil.

    Definition Loanoperation : list Operation := CheckOverdue :: nil.

    Definition BookDec : ClassDec := (Bookproperty, Peroperation, attrstate, sigos).

    (* uml2class *)

    Definition LoanClass : umlclass := class2dec Loan LoanDec.

    Definition BookSysClass : list umlclass := ReaderClass :: CopyClass :: PubClass :: PerClass :: BookClass :: nil.

    圖1 UML類圖的實例

    接著,定義類圖的關聯(lián)關系:圖1中類Copy與Publication具有關聯(lián)關系,asscollection表示與類Copy相連接的關聯(lián)端點,角色名為collection,多重性是0...*,由于Coq的自然數(shù)域只是表示有限的數(shù),因此設多重性的最大值為100,附加類是Copy,關聯(lián)類型為none。coll2detail表示上述關聯(lián)關系,其關聯(lián)名為catalogue,關聯(lián)端點為asscollection和assdetail。關聯(lián)類與泛化關系與上述類似,不再贅述。

    (* assoc *)

    Definition asscollection : AssociationEnd := (″collection″, 100, Copy, none).

    Definition assdetail : AssociationEnd := (″detail″, 1, Publication, none).

    Definition coll2detail : associations := (″catalogue″, (asscollection, assdetail)).

    (*assocclass*)

    Definition assborrower : AssociationEnd := (″borrower″, 1, Reader, none).

    Definition assloanedcopy : AssociationEnd := (″loanedcopy″, 5, Copy, none).

    Definition assclassborrowloaned : AssocClassDec := (LoanClass, (assborrower, assloanedcopy)).

    (*genalizations*)

    Definition subPublish : set Class := Periodical :: Book :: nil.

    Definition BookGen : GenDec := (Publication, subPublish) :: nil.

    Definition BookClassDiagram : UMLClassDiagrams := (BookSysClass, BookAsso, BookAssoClass, BookGen)

    為了說明上述類圖是符合類圖的形式規(guī)約,本文通過驗證上述形式化定義滿足形式規(guī)約命題,由于篇幅有限,只給出定義7的Coq證明過程:

    Example UML_post2 :

    UMLCD_post2 BookClassDiagram.

    Proof.

    unfold UMLCD_post2, BookClassDiagram.

    simpl; intros. inversion H.

    subst. right. left. reflexivity.

    inversion H0. subst. right. right.

    left. reflexivity.

    inversion H1.

    Qed.

    5 相關工作

    將UML和形式化方法相結合是國內外廣大學者和科研組織的一個研究熱點,目的是彌補半形式化的UML缺乏精確語義定義的不足。目前UML形式化方法有兩種思路:一是對UML核心語法進行形式化,使得UML成為符合形式化規(guī)范的語言,如英國PUML 工作組在元模型層次(UMLMeta-model)對UML進行形式化,保證在此基礎上建立的UML 模型層和用戶對象層有可靠的數(shù)學模型基礎,可對構造、操縱和精化模型提供一種通用的方法。另一種是轉換法,利用形式化語言在不丟失或者少丟失信息的前提下對UML進行形式化,如Kim等[5-6]將UML類圖轉換為Z形式規(guī)格說明,然而Kim僅考慮類、類屬性、類操作、關聯(lián)以及泛化的轉換,沒有考慮模型中的約束條件。

    Tanuan[7]、Lano[8]基于Meyer等[9]的部分工作,提出了從UML結構概念到B形式規(guī)約的派生方案,將每個類屬性、關聯(lián)和狀態(tài)模型轉換成B變量,類之間的關系形式化為代表類的變量的謂詞不變式。Cali[10]使用描述邏輯(Description Logics)對UML類圖進行形式化描述。Szlenk[11]定義了類圖的形式語義,并且介紹了類圖中的一致性問題。Anastasakis[12]將帶OCL約束的UML自動轉換到Alloy代碼。黃春榮等[15]給出了UML模型到COOZ規(guī)約的一種系統(tǒng)轉換方法,用COOZ類形式化描述類圖中的元素語法和語義。楊敬中等[16]提出了用XYZ/E來描述UML類圖的形式化語言,XYZ/E是一種面向軟件開發(fā)全過程的時序邏輯語言,既能表示軟件系統(tǒng)的規(guī)范與性質,又能表示軟件系統(tǒng)的數(shù)學模型與程序實現(xiàn)。

    6 結 語

    本文從類圖的形式語義中抽取出形式規(guī)約,使用定理證明器Coq描述UML類圖的形式規(guī)約,提出了UML類圖的結構精化操作,并且在Coq中對其進行形式化描述?;谏鲜龅男问揭?guī)約,UML類圖和精化操作的重要屬性轉換為數(shù)學定理,在Coq中形式描述并機械驗證。此外,本文通過一個小型的類圖實例表明了上述形式規(guī)約的可行性與正確性。與之前的UML序列圖和狀態(tài)圖的機械驗證相結合,為提出可驗證的軟件設計模型精化框架提供理論基礎。

    基于現(xiàn)有工作,我們將從以下方面做進一步研究:(1)添加UML類圖的OCL約束的形式化定義,使得帶OCL約束的UML類圖能夠形式化描述;(2)使用Kermeta轉換工具,實現(xiàn)從UML類圖轉換到Coq定義的形式化描述的自動化轉換工具;(3)實現(xiàn)包括類圖、序列圖和狀態(tài)圖的可驗證軟件設計模型精化框架。

    [1] Evans A S.Reasoning with UML class diagrams[C]//Proceedings of the 2nd IEEE Workshop on Industrial Strength Formal Specification Techniques.IEEE Press,1998:102-113.

    [2] Rational Software Corporation.UML Notation Guide Version 1.1[OL].http://www.rational.com.

    [3] The Coq System[OL].http://coq.inria.fr/.

    [4] Dou L,Lu L,Yang Z,et al.Towards mechanized semantics of UML sequence diagrams and refinement relation[C]//Proceedings of the 24th IASTED International Conference on Modelling and Simulation,2013:262-269.

    [5] Kim S K,Carrington D.An integrated framework with UML and Object-Z for developing a precise and understandable specification: the light control case study[C]//Proceedings of the 7th Asia-Pacific Software Engineering Conference,2000:240-248.

    [6] Kim S K,Carrington D.Formalizing the UML class diagram using Object-Z[C]//Proceedings of the 2nd International Conference on The Unified Modeling Language:Beyond the Standard,Fort Collins,CO,USA,1999:83-98.

    [7]TanuanMC.Automatedanalysisofunifiedmodelinglanguage(UML)specifications[D].Waterloo,Ontario,Canada:UniversityofWaterloo,2001.

    [8]LanoK,ClackD,AndroutsopoulosK.UMLtoB:formalverificationofobject-orientedmodels[C]//Proceedingsofthe4thInternationalConferenceonIntegratedFormalMethod,2004:187-206.

    [9]MeyerE,SouquièresJ.AsystematicapproachtotransformOMTdiagramstoaBspecification[C]//ProceedingsoftheWorldCongressonFormalMethodsintheDevelopmentofComputingSystems.Springer,1999:875-895.

    [10]CalìA,CalvaneseD,GiacomoGD,etal.AformalframeworkforreasoningonUMLclassdiagrams[C]//Proceedingsofthe13thInternationalSymposiumonFoundationsofIntelligentSystems.Springer,2002:503-513.

    [11]SzlenkM.FormalsemanticsandreasoningaboutUMLclassdiagram[C]//DependabilityofComputerSystems,2006InternationalConferenceon.IEEE,2006:51-59.

    [12]AnastasakisK,BordbarB,GeorgG,etal.UML2Alloy:achallengingmodeltransformation[C]//Proceedingsofthe10thinternationalconferenceonModelDrivenEngineeringLanguagesandSystems.Springer,2007:436-450.

    [13]UniversityofCambridge.Isabelle[OL].http://isabelle.in.tum.de.

    [14]Wikipedia.Kermeta[DB/OL].https://en.wikipedia.org/wiki/Kermeta.

    [15] 黃春榮,李宣東,鄭國梁.UML模型到COOZ規(guī)約的形式化轉換[J].計算機工程與應用,2003,39(20):89-91.

    [16] 楊敬中,張廣泉,戎玫.UML2.0類圖的一種形式化描述方法[J].計算機科學,2007,34(2):277-279,288.

    FORMAL SPECIFICATION AND REFINEMENT FOR UML CLASS DIAGRAM

    Wang Bowen Sheng Feng Dou Liang Yang Zongyuan

    (SchoolofInformationScienceandTechnology,EastChinaNormalUniversity,Shanghai200241,China)

    The Unified Modeling Language (UML) is an important part of Modeling-driven engineering (MDE) because of its variety of well-known and intuitive graphical notations. However, the semantics of UML is not precisely defined and the correctness of refinements cannot be verified, which makes it difficult to verify in formal of the UML model. As the static model of describing system structure, UML class diagram has no complete formal semantics. Thus, using the theorem proof assistant Coq to formalize and mechanize the semantics of the UML class diagram and the refinements between the models. The syntactic structure and the semantics of the UML class diagram can be transformed to the rigorous definitions in Coq, which is called mechanized semantics. Besides, the structural refinement operations of the class diagram are also provided. The refinement relations between models can be formally defined in Coq, and the desired properties of the refinement relations can be proven to verify the correctness of the refinements, ensuring the consistency of structure and semantics before and after refining. Combining the UML and formal method, the theoretical foundation in the software developing process is provided.

    UML class diagram Model refinement Coq Mechanized semantics

    2016-01-15。國家自然科學基金項目(61070226)。王博文,碩士生,主研領域:UML和軟件形式化驗證。盛楓,博士生。竇亮,講師。楊宗源,教授。

    TP301.2

    A

    10.3969/j.issn.1000-386x.2017.02.001

    猜你喜歡
    類圖精化規(guī)約
    基于語義和結構的UML類圖的檢索
    電力系統(tǒng)通信規(guī)約庫抽象設計與實現(xiàn)
    測控技術(2018年7期)2018-12-09 08:58:34
    一種在復雜環(huán)境中支持容錯的高性能規(guī)約框架
    n-精化與n-互模擬之間相關問題的研究
    一種改進的LLL模糊度規(guī)約算法
    n-精化關系及其相關研究
    電子世界(2017年2期)2017-02-17 00:54:00
    UML類圖元模型基于描述邏輯的表示及驗證
    UML類圖的一種表示方法
    關于0類圖的一個注記
    修辭的敞開與遮蔽*——對公共話語規(guī)約意義的批判性解讀
    一本久久中文字幕| 午夜亚洲福利在线播放| 国产伦在线观看视频一区| 国产三级中文精品| 久久精品夜夜夜夜夜久久蜜豆 | 国产精品精品国产色婷婷| 一个人观看的视频www高清免费观看 | 亚洲精品国产精品久久久不卡| 99国产精品一区二区三区| 美女 人体艺术 gogo| 久久久久免费精品人妻一区二区| 亚洲av中文字字幕乱码综合| 女人爽到高潮嗷嗷叫在线视频| 变态另类成人亚洲欧美熟女| 在线观看66精品国产| 亚洲国产高清在线一区二区三| 亚洲色图av天堂| 久久草成人影院| av片东京热男人的天堂| 亚洲免费av在线视频| 欧美色欧美亚洲另类二区| 99久久综合精品五月天人人| 一本精品99久久精品77| 窝窝影院91人妻| 99国产精品一区二区三区| 动漫黄色视频在线观看| 日韩成人在线观看一区二区三区| 免费av毛片视频| 亚洲精品粉嫩美女一区| av视频在线观看入口| 床上黄色一级片| av有码第一页| 中文字幕人妻丝袜一区二区| 亚洲七黄色美女视频| 日本a在线网址| 欧美性猛交╳xxx乱大交人| 90打野战视频偷拍视频| 天堂动漫精品| 不卡一级毛片| 亚洲自偷自拍图片 自拍| 超碰成人久久| 777久久人妻少妇嫩草av网站| 国产乱人伦免费视频| 日本成人三级电影网站| 国产黄片美女视频| 757午夜福利合集在线观看| 亚洲精品美女久久久久99蜜臀| 一本精品99久久精品77| 免费看日本二区| 九色国产91popny在线| 成人精品一区二区免费| 欧美性长视频在线观看| 精品不卡国产一区二区三区| 99re在线观看精品视频| 久久中文字幕一级| 18禁裸乳无遮挡免费网站照片| 99久久综合精品五月天人人| 又黄又爽又免费观看的视频| 成人三级黄色视频| 日韩欧美免费精品| 国产69精品久久久久777片 | 国产1区2区3区精品| 国产午夜福利久久久久久| 国产精品久久久久久精品电影| 丝袜美腿诱惑在线| 亚洲人成伊人成综合网2020| 亚洲成av人片在线播放无| 久久精品人妻少妇| av有码第一页| 免费在线观看成人毛片| 在线播放国产精品三级| 97超级碰碰碰精品色视频在线观看| 两个人看的免费小视频| 一区二区三区国产精品乱码| 国产69精品久久久久777片 | 丝袜美腿诱惑在线| av有码第一页| 国产高清有码在线观看视频 | 淫妇啪啪啪对白视频| 国产精品 欧美亚洲| 法律面前人人平等表现在哪些方面| 少妇熟女aⅴ在线视频| 国内少妇人妻偷人精品xxx网站 | 狂野欧美白嫩少妇大欣赏| 99热这里只有精品一区 | 成人特级黄色片久久久久久久| 国产免费av片在线观看野外av| 久久久久久大精品| 99久久精品国产亚洲精品| 精品高清国产在线一区| 看片在线看免费视频| 在线观看舔阴道视频| 免费一级毛片在线播放高清视频| 夜夜看夜夜爽夜夜摸| www日本黄色视频网| 色综合站精品国产| 久久人妻福利社区极品人妻图片| av福利片在线| 中文字幕高清在线视频| 嫩草影视91久久| 女生性感内裤真人,穿戴方法视频| 后天国语完整版免费观看| 高清在线国产一区| 国产精品免费视频内射| 日韩欧美一区二区三区在线观看| 久久精品成人免费网站| 亚洲人与动物交配视频| 99国产精品99久久久久| 久久精品91蜜桃| 国产精品一区二区精品视频观看| 久久婷婷人人爽人人干人人爱| 欧美在线一区亚洲| 日本三级黄在线观看| 亚洲成人免费电影在线观看| 99精品欧美一区二区三区四区| 日本免费a在线| 热99re8久久精品国产| 国产1区2区3区精品| 久久精品人妻少妇| 国产一区二区三区在线臀色熟女| 久9热在线精品视频| 国产精品野战在线观看| 婷婷精品国产亚洲av在线| 嫩草影院精品99| 日本一二三区视频观看| 国产激情欧美一区二区| 少妇粗大呻吟视频| 亚洲av日韩精品久久久久久密| 母亲3免费完整高清在线观看| 美女扒开内裤让男人捅视频| 欧美日本视频| av国产免费在线观看| 国产欧美日韩精品亚洲av| 一边摸一边抽搐一进一小说| 欧美中文综合在线视频| 全区人妻精品视频| 宅男免费午夜| 91国产中文字幕| 欧美一级a爱片免费观看看 | 女人被狂操c到高潮| 欧美性长视频在线观看| 亚洲片人在线观看| 1024手机看黄色片| 日韩欧美在线乱码| 日本 av在线| 丰满的人妻完整版| 亚洲男人天堂网一区| 久久精品aⅴ一区二区三区四区| 国产麻豆成人av免费视频| 成人三级做爰电影| 日本在线视频免费播放| 国产熟女xx| 黄色成人免费大全| 国产伦在线观看视频一区| 动漫黄色视频在线观看| 天天躁狠狠躁夜夜躁狠狠躁| 97碰自拍视频| 熟女电影av网| 国产男靠女视频免费网站| 国产爱豆传媒在线观看 | 不卡av一区二区三区| 老熟妇乱子伦视频在线观看| 国产一级毛片七仙女欲春2| 欧美日本亚洲视频在线播放| 国产精品一及| 国产高清视频在线观看网站| av视频在线观看入口| 国产成人影院久久av| 国产亚洲欧美98| 久久午夜综合久久蜜桃| 国产探花在线观看一区二区| 夜夜看夜夜爽夜夜摸| 久久久久久久午夜电影| 国产单亲对白刺激| 午夜激情av网站| 欧美午夜高清在线| 精品熟女少妇八av免费久了| 黑人操中国人逼视频| www日本黄色视频网| 高清毛片免费观看视频网站| 真人一进一出gif抽搐免费| 婷婷丁香在线五月| 狂野欧美激情性xxxx| 不卡av一区二区三区| 无遮挡黄片免费观看| 男女床上黄色一级片免费看| 久久精品91无色码中文字幕| 很黄的视频免费| 亚洲av中文字字幕乱码综合| 成人欧美大片| 欧美精品亚洲一区二区| 午夜影院日韩av| 视频区欧美日本亚洲| 国产成人精品久久二区二区91| 国产av又大| 成年免费大片在线观看| 两人在一起打扑克的视频| 亚洲国产欧美网| 久久精品91蜜桃| 国产蜜桃级精品一区二区三区| 99国产综合亚洲精品| 99在线视频只有这里精品首页| 亚洲人成电影免费在线| 青草久久国产| 亚洲一区高清亚洲精品| 亚洲欧洲精品一区二区精品久久久| 天堂av国产一区二区熟女人妻 | 亚洲片人在线观看| 天堂动漫精品| 给我免费播放毛片高清在线观看| 久久久国产成人精品二区| 美女扒开内裤让男人捅视频| 午夜日韩欧美国产| 午夜福利18| 黄色视频,在线免费观看| 国产成人欧美在线观看| 久久这里只有精品19| 欧美高清成人免费视频www| 欧美黑人精品巨大| 在线观看日韩欧美| 超碰成人久久| 变态另类丝袜制服| 婷婷丁香在线五月| 精品电影一区二区在线| 母亲3免费完整高清在线观看| 亚洲人成网站高清观看| 嫩草影视91久久| 国产精品 国内视频| 午夜久久久久精精品| 国内少妇人妻偷人精品xxx网站 | 法律面前人人平等表现在哪些方面| 亚洲va日本ⅴa欧美va伊人久久| 精品乱码久久久久久99久播| 老司机午夜福利在线观看视频| 777久久人妻少妇嫩草av网站| 久久久久久国产a免费观看| 欧美另类亚洲清纯唯美| 国产精品久久久久久亚洲av鲁大| 91字幕亚洲| 琪琪午夜伦伦电影理论片6080| 成人国语在线视频| 香蕉久久夜色| 日韩 欧美 亚洲 中文字幕| 男插女下体视频免费在线播放| 亚洲欧美日韩高清在线视频| 不卡一级毛片| 18美女黄网站色大片免费观看| 搡老熟女国产l中国老女人| 欧美午夜高清在线| 婷婷丁香在线五月| av中文乱码字幕在线| 一本久久中文字幕| 白带黄色成豆腐渣| 国产精品精品国产色婷婷| 久久久久久久久免费视频了| 日本 av在线| 97超级碰碰碰精品色视频在线观看| 久久久久久免费高清国产稀缺| 国产精品精品国产色婷婷| 亚洲av成人精品一区久久| 色噜噜av男人的天堂激情| 麻豆国产av国片精品| 老熟妇乱子伦视频在线观看| 少妇裸体淫交视频免费看高清 | 精品久久久久久,| 麻豆国产av国片精品| 亚洲欧美精品综合一区二区三区| 欧美日韩乱码在线| 真人做人爱边吃奶动态| 免费在线观看完整版高清| 校园春色视频在线观看| www.自偷自拍.com| 禁无遮挡网站| 三级男女做爰猛烈吃奶摸视频| 制服丝袜大香蕉在线| 91麻豆av在线| 最好的美女福利视频网| 日韩有码中文字幕| 身体一侧抽搐| 国产精品 国内视频| 夜夜躁狠狠躁天天躁| 久久精品aⅴ一区二区三区四区| 成年免费大片在线观看| 国产精品久久久久久亚洲av鲁大| 在线观看免费午夜福利视频| 一级黄色大片毛片| 国产伦人伦偷精品视频| 国产熟女xx| 国产三级黄色录像| 国内精品久久久久精免费| 亚洲美女视频黄频| 国产单亲对白刺激| 2021天堂中文幕一二区在线观| 在线观看日韩欧美| 我的老师免费观看完整版| 亚洲精品久久国产高清桃花| 欧美激情久久久久久爽电影| а√天堂www在线а√下载| netflix在线观看网站| 变态另类丝袜制服| 亚洲欧美日韩高清在线视频| 亚洲av美国av| 中文在线观看免费www的网站 | 亚洲人成网站高清观看| 18禁国产床啪视频网站| 国产久久久一区二区三区| 久久国产乱子伦精品免费另类| 无人区码免费观看不卡| 久久久久久九九精品二区国产 | 人人妻,人人澡人人爽秒播| 禁无遮挡网站| 久久精品91蜜桃| 精品久久久久久久末码| 国产精品一区二区精品视频观看| 国产精品久久久久久人妻精品电影| 欧美乱码精品一区二区三区| 一进一出好大好爽视频| 99热这里只有精品一区 | 在线免费观看的www视频| 性欧美人与动物交配| av福利片在线观看| 搡老妇女老女人老熟妇| 黑人欧美特级aaaaaa片| 午夜福利在线在线| 亚洲成人久久爱视频| 又黄又爽又免费观看的视频| svipshipincom国产片| 丁香六月欧美| 啦啦啦韩国在线观看视频| 国产私拍福利视频在线观看| 久久午夜综合久久蜜桃| 99久久精品热视频| 99热这里只有精品一区 | 国产精品爽爽va在线观看网站| 50天的宝宝边吃奶边哭怎么回事| 波多野结衣高清作品| 亚洲国产欧美一区二区综合| 国产精品免费视频内射| 又大又爽又粗| 中文在线观看免费www的网站 | 欧美国产日韩亚洲一区| 91字幕亚洲| 精品熟女少妇八av免费久了| 成人av一区二区三区在线看| 亚洲国产精品成人综合色| 91在线观看av| av在线播放免费不卡| 最新在线观看一区二区三区| 变态另类成人亚洲欧美熟女| 久久精品国产亚洲av高清一级| 亚洲av中文字字幕乱码综合| 波多野结衣高清作品| 色综合欧美亚洲国产小说| 午夜影院日韩av| av片东京热男人的天堂| 天天躁狠狠躁夜夜躁狠狠躁| 欧美3d第一页| 日本熟妇午夜| 欧美在线一区亚洲| 三级男女做爰猛烈吃奶摸视频| av有码第一页| 波多野结衣巨乳人妻| 九色成人免费人妻av| 免费在线观看黄色视频的| 麻豆久久精品国产亚洲av| 亚洲国产精品sss在线观看| 嫁个100分男人电影在线观看| 又紧又爽又黄一区二区| 日韩欧美一区二区三区在线观看| 国产又黄又爽又无遮挡在线| 性色av乱码一区二区三区2| 黑人操中国人逼视频| 色综合亚洲欧美另类图片| aaaaa片日本免费| 久久精品人妻少妇| 夜夜夜夜夜久久久久| 手机成人av网站| 亚洲黑人精品在线| 亚洲人成网站在线播放欧美日韩| 亚洲成人国产一区在线观看| 亚洲av成人精品一区久久| 国产av一区二区精品久久| 在线观看免费午夜福利视频| 精品人妻1区二区| 少妇人妻一区二区三区视频| 欧美中文日本在线观看视频| 无遮挡黄片免费观看| 国产高清有码在线观看视频 | 日本撒尿小便嘘嘘汇集6| 动漫黄色视频在线观看| 最近最新中文字幕大全免费视频| 国产精品一区二区精品视频观看| 亚洲黑人精品在线| 亚洲精品av麻豆狂野| videosex国产| 99国产精品99久久久久| 久久人人精品亚洲av| 国产97色在线日韩免费| 久久久久久免费高清国产稀缺| 国产欧美日韩一区二区精品| 12—13女人毛片做爰片一| 岛国在线免费视频观看| 久久久久国产精品人妻aⅴ院| 欧美黄色片欧美黄色片| 黄色毛片三级朝国网站| www.999成人在线观看| 女人被狂操c到高潮| 啦啦啦免费观看视频1| 亚洲人与动物交配视频| 中文亚洲av片在线观看爽| 久久天堂一区二区三区四区| 在线观看免费日韩欧美大片| 亚洲人成伊人成综合网2020| 亚洲精品美女久久久久99蜜臀| 亚洲五月婷婷丁香| 9191精品国产免费久久| 两个人免费观看高清视频| 欧美成人一区二区免费高清观看 | 69av精品久久久久久| 桃红色精品国产亚洲av| 在线观看66精品国产| 十八禁网站免费在线| 欧美成人性av电影在线观看| 亚洲精品美女久久久久99蜜臀| 亚洲精品粉嫩美女一区| 欧美3d第一页| 国产精品亚洲美女久久久| 美女大奶头视频| 亚洲五月天丁香| 欧美成狂野欧美在线观看| 欧美日本视频| 亚洲美女视频黄频| 级片在线观看| 成人永久免费在线观看视频| 亚洲国产看品久久| 久99久视频精品免费| av福利片在线观看| 精品久久久久久久毛片微露脸| 日韩高清综合在线| 熟女少妇亚洲综合色aaa.| 国产精品亚洲一级av第二区| 90打野战视频偷拍视频| 国产成人欧美在线观看| av免费在线观看网站| 老鸭窝网址在线观看| 黑人欧美特级aaaaaa片| 国产成人系列免费观看| 色综合站精品国产| 欧美久久黑人一区二区| 国产精品日韩av在线免费观看| 中文资源天堂在线| 欧美日本视频| 女人爽到高潮嗷嗷叫在线视频| 日韩三级视频一区二区三区| 日本三级黄在线观看| 美女大奶头视频| 在线播放国产精品三级| 亚洲国产欧洲综合997久久,| 亚洲av电影不卡..在线观看| 岛国视频午夜一区免费看| 99精品在免费线老司机午夜| 美女高潮喷水抽搐中文字幕| 成人精品一区二区免费| 日韩欧美精品v在线| 亚洲avbb在线观看| 日韩欧美三级三区| 久久午夜综合久久蜜桃| 欧美性猛交黑人性爽| 天天一区二区日本电影三级| 国产亚洲精品久久久久5区| 手机成人av网站| 俄罗斯特黄特色一大片| 三级男女做爰猛烈吃奶摸视频| 欧美人与性动交α欧美精品济南到| 久热爱精品视频在线9| 欧美色视频一区免费| 色老头精品视频在线观看| 狠狠狠狠99中文字幕| 国产视频一区二区在线看| 国产成人精品久久二区二区91| 全区人妻精品视频| 非洲黑人性xxxx精品又粗又长| 国产99白浆流出| 国产日本99.免费观看| 午夜福利欧美成人| 亚洲人成伊人成综合网2020| 国产精品av视频在线免费观看| 亚洲av成人精品一区久久| 欧美在线黄色| xxx96com| 欧美性猛交╳xxx乱大交人| 一级毛片精品| 亚洲aⅴ乱码一区二区在线播放 | 搡老岳熟女国产| 久久久久精品国产欧美久久久| 亚洲自拍偷在线| 国内久久婷婷六月综合欲色啪| 19禁男女啪啪无遮挡网站| 成人国语在线视频| 丰满人妻一区二区三区视频av | 欧美又色又爽又黄视频| 亚洲av电影不卡..在线观看| 老汉色av国产亚洲站长工具| 99国产精品一区二区三区| 国产真人三级小视频在线观看| 男女那种视频在线观看| 欧美日韩中文字幕国产精品一区二区三区| 欧美中文综合在线视频| АⅤ资源中文在线天堂| 欧美绝顶高潮抽搐喷水| 美女高潮喷水抽搐中文字幕| 搞女人的毛片| 51午夜福利影视在线观看| 亚洲精品一卡2卡三卡4卡5卡| 久99久视频精品免费| 免费无遮挡裸体视频| 国产av又大| 国产野战对白在线观看| 两人在一起打扑克的视频| 久久天堂一区二区三区四区| 久久精品国产99精品国产亚洲性色| 亚洲自拍偷在线| xxx96com| 宅男免费午夜| 国产伦一二天堂av在线观看| 久久天躁狠狠躁夜夜2o2o| 免费在线观看视频国产中文字幕亚洲| 亚洲成av人片免费观看| 一级a爱片免费观看的视频| x7x7x7水蜜桃| 久久天堂一区二区三区四区| 国产熟女xx| 精品国产乱码久久久久久男人| 成人特级黄色片久久久久久久| 亚洲欧美激情综合另类| 亚洲美女黄片视频| 高清在线国产一区| 91麻豆精品激情在线观看国产| 中文字幕最新亚洲高清| av有码第一页| 久久午夜综合久久蜜桃| 免费观看人在逋| 国产一级毛片七仙女欲春2| 日韩av在线大香蕉| 国产精品亚洲一级av第二区| 久久久久久亚洲精品国产蜜桃av| 久久精品国产亚洲av香蕉五月| www.熟女人妻精品国产| 亚洲性夜色夜夜综合| 在线观看66精品国产| 高清毛片免费观看视频网站| 色在线成人网| 久久久久久久久免费视频了| 国产欧美日韩一区二区三| 搡老熟女国产l中国老女人| 午夜福利视频1000在线观看| 久久精品91蜜桃| 久久草成人影院| 日韩三级视频一区二区三区| 日日夜夜操网爽| 欧美zozozo另类| 日本免费一区二区三区高清不卡| 免费在线观看黄色视频的| 全区人妻精品视频| 99在线视频只有这里精品首页| 两个人看的免费小视频| 国产区一区二久久| 麻豆成人av在线观看| 久久久精品欧美日韩精品| 亚洲专区字幕在线| 亚洲国产欧洲综合997久久,| 在线国产一区二区在线| 听说在线观看完整版免费高清| 观看免费一级毛片| 久久久久久九九精品二区国产 | 69av精品久久久久久| 午夜两性在线视频| 久久久久国内视频| 99久久久亚洲精品蜜臀av| 国产精品av久久久久免费| 女人爽到高潮嗷嗷叫在线视频| 国产精品久久久av美女十八| 国产精品久久电影中文字幕| 久久久久久久久中文| 亚洲黑人精品在线| av福利片在线观看| 亚洲国产精品成人综合色| 亚洲中文字幕日韩| 色播亚洲综合网| 亚洲中文字幕一区二区三区有码在线看 | 一本精品99久久精品77| 亚洲18禁久久av| 国产区一区二久久| 国内揄拍国产精品人妻在线| xxxwww97欧美| 精品久久久久久,| 日韩欧美在线二视频| 国产又色又爽无遮挡免费看| 欧美久久黑人一区二区| 欧美日韩中文字幕国产精品一区二区三区| 观看免费一级毛片| 久久精品影院6| 观看免费一级毛片| 亚洲男人天堂网一区| 欧美色视频一区免费| av天堂在线播放| 老司机福利观看| 日韩欧美国产一区二区入口| 两人在一起打扑克的视频| 国产亚洲精品久久久久久毛片| 亚洲五月婷婷丁香| 成人高潮视频无遮挡免费网站| 亚洲九九香蕉| 国内久久婷婷六月综合欲色啪| 国产高清视频在线观看网站|