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

    一種基于模型和模板融合的自動代碼生成方法

    2019-11-20 08:37華慶一舒新峰
    現(xiàn)代電子技術 2019年22期
    關鍵詞:代碼生成引擎代碼

    王 博 ,華慶一,舒新峰

    (1.西安郵電大學 計算機學院,陜西 西安 710121;2.西安郵電大學 陜西省網(wǎng)絡數(shù)據(jù)智能處理重點實驗室,陜西 西安 710121;3.西北大學 信息科學與技術學院,陜西 西安 710127)

    0 引 言

    隨著信息產(chǎn)業(yè)的不斷深入發(fā)展,應用軟件需求和開發(fā)環(huán)境變得越來越復雜。傳統(tǒng)軟件開發(fā)方法開發(fā)周期漫長且工作重復較大,為系統(tǒng)演進和維護造成較大困難[1]。與此同時,新軟件開發(fā)方法和思想以及工具,導致軟件工程方法論發(fā)生深刻變化,尤其是以對象管理組織(Object Management Group,OMG)提出的模型驅(qū)動構架(Model Driven Architecture,MDA)為代表的方法論。在David S.Frankel 的《應用MDA》一書中指出:“把寶貴的時間浪費在‘紙上談兵’上是一種罪惡?!盵2]如果能夠把設計直接轉(zhuǎn)換成代碼,亦即把設計和實現(xiàn)對應起來,那么無論對于代碼質(zhì)量和效率都會有較高提升。

    自動代碼生成,即根據(jù)用戶任務需求建模而自動生成源代碼的程序或軟件。本文所特指自動代碼生成技術是在軟件開發(fā)過程中由經(jīng)驗而形成的一種軟件工程技術,通過自動生成工具或者程序半自動/全自動的生成應用系統(tǒng)所用到的原始框架和代碼,一般生成文本形式的源代碼[3]。自動代碼生成主要的優(yōu)點和意義在于:減少重復的編碼工作,生成代碼風格一致良好,系統(tǒng)設計成為開發(fā)的主導,易于修改和升級,設計和實現(xiàn)具有連貫性。

    本文提出一種采用模型驅(qū)動構架的設計思想,靈活配置的、融合模板和模型驅(qū)動的自動代碼生成方案,稱之為混合自動代碼生成(Hybrid Automatic Code Generation,HACG)。HACG 自動代碼生成方法的創(chuàng)新點如下:

    1)HACG 融合基于模板和模型驅(qū)動的代碼生成的優(yōu)點,可以簡單高效地構建自動代碼生成引擎;

    2)HACG 提出針對不同語言、不同框架的統(tǒng)一的自動代碼生成解決方案;

    3)HACG 針對元模型的不同實體關系模型的自動代碼生成方案和策略;

    4)HACG 具有較高的靈活性、通用性、完整性和可擴充的特點;

    5)HACG 對自動代碼生成提出一種新的劃分,分為基礎功能容器、全自動代碼生成、代碼框架生成和定制代碼。

    1 基于模板和模型的自動代碼生成

    當前主要的代碼生成主要有基于模板、基于模型驅(qū)動、基于對象關系映射、基于文檔注釋和基于代理的自動代碼生成[4]。與HACG 較為相關的是基于模板和基于模型驅(qū)動的自動代碼生成,下面主要從上述兩種方法展開。

    1.1 基于模板的自動代碼生成技術

    基于模板的代碼生成(Template-Based Code Generation,TBCG)起源于 20世紀 90年代中期,模板的重用是基于“編寫一次,生成多次(Write Once,Produce Many)”的理念[3]?;谀0宓拇a生成是利用系統(tǒng)共性的需求(模板)和個性的需求(特定的外部輸入),通過代碼生成引擎來生成系統(tǒng)源代碼的方法?;谀0宓拇a生成較為困難的問題是明確區(qū)分輸入和轉(zhuǎn)化邏輯,亦即將元數(shù)據(jù)和具體業(yè)務規(guī)則進行分離,通過使用模板引擎技術,可將業(yè)務規(guī)則抽象到模板文件中,將元數(shù)據(jù)作為動態(tài)插入數(shù)據(jù)[5]。分層技術是基于模板的自動代碼生成核心技術之一。

    分層技術在當前的軟件開發(fā)中被廣泛的使用。在軟件開發(fā)過程當中,把具有不同過程的解決方案放置到不同的概念層,隨后整個層次形成不夠封閉的系統(tǒng),其中每個層次在級別上具有平等性[6]。 層與層之間通過層接口進行數(shù)據(jù)交互。分層的優(yōu)點在于提高系統(tǒng)的靈活性和可復用性,能夠提高軟件開發(fā)的效率。

    定義1(分層結(jié)構) 約定n層構架的各層編號為1,2,…,n,其中,層的編號越大,則越處于系統(tǒng)的高層。那么分層構架應該滿足如下規(guī)則:

    1)第k層(1<k≤n)層智能依賴于k-1 層,而不能依賴于其他低層;

    2)如果p層依賴于q層,則p的編號大于q。

    該原則保證層依賴的單向性,減少和降低系統(tǒng)邏輯的復雜性,使得系統(tǒng)在提高功能和可復用性前提下易于控制。

    定義2(分層對象模型) 將基于分層體系的對象模型分成數(shù)據(jù)實體對象、持久層對象和業(yè)務邏輯層對象,每層的對象可以表示為一個n元組。

    1)數(shù)據(jù)實體對象 MO=(mo_id,mo_name,attr_set,op_attr)。其中:mo_id,mo_name 分別對應模型實體對象MO 的唯一的標識和名稱;attr_set 代表該實體的屬性集;op_attr 代表對該屬性的操作,一般對應該實體的可讀和可寫算子。

    2)持久層對象 PO=(po_id,po_name,mo,dll_set)。其中:po_id,po_name 分別對應持久層對象PO 的唯一的標識和名稱;mo 為持久層關聯(lián)的模型層實體對象和實體對象集合;dll_set 為持久層對應的操作集合,如添加、刪除、修改、查詢、分頁和排序等操作。

    3) 業(yè) 務 邏 輯 層 對 象 BO=(bo_id,bo_name,mo,bll_set)。其中:bo_id,bo_name 分別對應業(yè)務邏輯層 BO的唯一的標識和名稱;mo 為持久層關聯(lián)的模型層實體對象和實體對象集合;bll_set 為業(yè)務邏輯層對應的操作集合,如登錄、注冊、審核等業(yè)務邏輯層的功能。

    由于模板文件基于文本易于定制和調(diào)整,結(jié)合成熟的模板語言可使代碼生成過程更具靈活性,故其在中小企業(yè)中應用較為廣泛[7]。在自動代碼生成方案中,模板、元數(shù)據(jù)和業(yè)務規(guī)則三個元素是必要的[8]?;谀0宓拇a生成過程見圖1,圖1a)描述基于模板的自動代碼生成過程,圖1b)說明基于模板的自動代碼生成的各個組成部分。

    基于模板的自動代碼生成的過程如下:首先對用戶需求進行分析,進行初步的分析和設計,在實現(xiàn)階段制定要采用的框架和何種分層結(jié)構,根據(jù)功能需求,設計相應的模板文件,并根據(jù)設計模型或元數(shù)據(jù)模型,使用代碼生成引擎去生成程序的源代碼。對生成的基礎源代碼進行代碼調(diào)整和特定代碼的添加,調(diào)試之后將代碼部署到基礎平臺和框架中。

    1.2 基于模型驅(qū)動的自動代碼生成

    模型驅(qū)動構架的出現(xiàn)使得解決傳統(tǒng)軟件的開發(fā)問題并且以工廠化開發(fā)軟件成為可能。模型驅(qū)動構架支持基于可視化模型驅(qū)動的軟件設計、內(nèi)容存儲與交換,是一種基于模型的軟件開發(fā)構架[2]。其最終目標是把針對特定計算平臺的編碼工作交由機器完成,從此將業(yè)務邏輯與實現(xiàn)技術結(jié)合,很大程度地提升軟件開發(fā)效率和質(zhì)量,降低開發(fā)成本,延長軟件壽命,并實現(xiàn)工廠化開發(fā)軟件。

    圖1 基于模板的代碼生成過程Fig.1 Process of code generation based on template

    1.2.1 模型層次結(jié)構

    模型驅(qū)動構架中的模型組織分成四層結(jié)構[2],依次為 M0,M1,M2,M3。M3 是元-元模型,元對象機制(Meta Object Facility,MOF)位于該層。MOF 提供定義 M2層元模型所需要的更抽象一級的建模支持。MOF 是M2層所有元模型的元模型,同時它也是自描述的,即MOF可以描述MOF 元模型本身。在MDA 框架中,M3 層只有MOF 這一個模型,它是MDA 中基礎和核心的標準,為MDA 框架中的所有模型/元模型提供統(tǒng)一的語言基礎,為模型語言(元模型)定義提供公共標準。M2 層為元模型,代表建議MOF 之上的各種模型語言,提供對應不同領域的領域建模語言,為M1 層的建模提供建模符號。M1 層為模型層,是建模人員通常面對的模型,即采用模型語言為企業(yè)應用建立的模型描述。MDA 的CIM,PIM和PSM 模型都位于該層,M0 層為實例層,是M1 層模型的實例化,對應模型的具體應用程序,是模型描述的最終目標。MDA 四層元模型體系結(jié)構如圖2所示。

    1.2.2 MDA 應用模型

    MDA 應用模型包括計算無關模型(Computation Independent Model,CIM),平臺無關模型(Platform Independent Model,PIM)和平臺特定模型(Platform Specific Model,PSM)。它們與實例模型中的實現(xiàn)特定模型(Implementation Specific Model,ISM)關系如圖3所示。

    圖2 MDA 四層元模型體系Fig.2 Architecture of meta-model of MDA four tier

    圖3 應用模型之間的轉(zhuǎn)換Fig.3 Transformation relation among applied models

    CIM 計算無關模型用于描述系統(tǒng)需求、功能、行為和運行環(huán)境,也稱為業(yè)務模型。PIM 平臺無關模型是抽出的業(yè)務邏輯,不包括與實現(xiàn)平臺的技術相關的特定信息。PSM 平臺特定模型,從相應的PIM 轉(zhuǎn)換而來。 ISM 實現(xiàn)特定模型是PSM 的實例化,包括PSM 用于構建一個系統(tǒng)并使之運行的所有信息,如程序代碼、裝載規(guī)格、部署說明以及配置規(guī)范等,是一個可以實際運行的軟件系統(tǒng)[2]。

    1.2.3 基于模型驅(qū)動的自動代碼生成過程

    基于模型驅(qū)動的自動代碼生成的過程如下:首先根據(jù)用戶的需求編寫PIM,再根據(jù)PIM 和目標平臺編寫轉(zhuǎn)換規(guī)則,MDA 代碼生成引擎根據(jù)轉(zhuǎn)換規(guī)則自動將PIM轉(zhuǎn)化成PSM,最后將PSM 轉(zhuǎn)換成代碼[9]。MDA 通過兩次模型轉(zhuǎn)換和代碼生成技術提高軟件開發(fā)的效率,并使得系統(tǒng)具有較好的可一致性和可復用性?;谀P万?qū)動的代碼生成過程見圖4。圖4a)是模型驅(qū)動工程(Model Driven Engineering,MDE)的總體說明,圖4b)是源模型到目標模型的模型轉(zhuǎn)換過程,圖4c)描述基于模型驅(qū)動的自動代碼生成過程。

    2 混合自動代碼生成HACG

    2.1 混合自動代碼生成的基本思想

    基于模板的自動代碼生成具有較高的靈活性,定制和開發(fā)較為容易,可提高軟件開發(fā)的可復用度;但也有其缺點,模板化的程序可讀性差,生成的代碼依賴于某種語言和框架,移植性差。在其他類似項目中使用,如果不同框架或語言,需要重新構建自動代碼生成引擎。

    圖4 基于模型驅(qū)動的代碼生成過程Fig.4 Process of code generation driven by model

    MDA 相比于傳統(tǒng)的軟件開發(fā)方式和基于模板的自動代碼生成方式,具有開發(fā)效率高、可維護性、可擴展性強的特點,系統(tǒng)具有良好的可移植性[10]。MDA 也存在一些缺點:雖然MDA 的目標遠大,但實現(xiàn)MDA 的技術模糊,基礎規(guī)范MOF 和UML 都存在著語義不精確、語言不可執(zhí)行的問題;PIM 到PSM 的轉(zhuǎn)換同樣也存在不精確的問題。

    基于模板的自動代碼生成和基于模型的自動代碼生成兩者各有其優(yōu)點和缺點,前者更注重于時效性,后者更注重于通用性,兩者之間有一道鴻溝。基于模板的代碼生成可以認為更關注類似PSM 到代碼的生成,基于模型的自動代碼生成更關注于模型的轉(zhuǎn)換和平臺無關模型到平臺相關模型之間的轉(zhuǎn)化。因此,可以在兩者之間架起一座橋梁,融合現(xiàn)有的基于模板的技術和基于模型的代碼生成基礎。因此產(chǎn)生本文提出的基于模型驅(qū)動和模板的混合自動代碼生成方法。

    前面對兩種自動代碼生成的優(yōu)缺點進行分析,綜合基于模型和模板的自動代碼生成的方式,本文提出一種基于模板和模型的混合自動代碼生成方案。該方法可以根據(jù)現(xiàn)有的設計模型或者遺產(chǎn)系統(tǒng),生成不同框架和語言下的軟件系統(tǒng)代碼。該方案從不同的設計模型開始,如統(tǒng)一建模語言(Unified Modeling Language,UML)、概念數(shù)據(jù)模型(Concept Data Model,CDM)和 XML 等設計模型,將這些設計模型轉(zhuǎn)化成統(tǒng)一的平臺無關的設計模型,通過模型轉(zhuǎn)換變成平臺相關模型。結(jié)合通過模板編輯器生成的基礎模板、界面模板和擴展模板,通過代碼和引擎生成選定目標語言下的源代碼,最終將生成的源碼部署到不同容器和系統(tǒng)基礎框架中。在模板編輯器中的界面生成器,可以根據(jù)用戶要求,快速可視化地生成視圖層代碼,云代碼倉庫存儲大量的子模板和工具。可用性測試用來評估反饋生成代碼的優(yōu)劣,對自動代碼生成引擎進行評估,以期發(fā)現(xiàn)代碼生成引擎的缺陷。在框圖中的底端是底層的技術框架支持,HACG 的代碼生成方案適合于不同的底層框架,如工作流、Web服務、面向服務構架(Service Oriented Architecture,SOA)等技術框架??傮w框圖如圖5所示。

    圖5 基于模型和模板融合的自動代碼生成方法Fig.5 Method of automatic code generation based on fusion of model and template

    2.2 HACG的分析與設計

    根據(jù)混合自動代碼生成的基本思想,下面給出一種混合自動代碼設計和實現(xiàn)過程,最后給出采用該方案的自動代碼生成器實現(xiàn)的原型系統(tǒng)。該原型系統(tǒng)的主要功能如下:

    1)代碼生成。代碼生成是整個軟件的核心,負責將元數(shù)據(jù)與模板文件結(jié)合進行代碼生成,主要包含代碼生成、模型保存等功能。

    2)元數(shù)據(jù)管理。文件模板主要包含對MetaModel、UML 文件、CDM 文件或者其他格式的數(shù)據(jù)的解析和存儲功能。

    3)逆向生成。主要功能是將數(shù)據(jù)庫中的表信息映射為元數(shù)據(jù)信息,然后進行代碼生成,包含兩個功能:建立連接以及逆向生成。

    4)代碼彈性部署。此功能為將生成的代碼部署到容器和基礎框架中,主要功能有執(zhí)行SQL、部署單表、部署樹形表、部署主表和明細表以及備份原有代碼。

    5)模板管理。主要功能是創(chuàng)建或者編輯模板文件。

    混合自動代碼生成引擎通過對生成系統(tǒng)中的基本元數(shù)據(jù)進行解析,并結(jié)合特定語言和框架的模板文件,生成框架和平臺相關的代碼。其中,模板文件是目標代碼的原型,元數(shù)據(jù)的通信和邏輯基本框架都在模板文件中體現(xiàn)。模板文件可通過模板編輯器以及用戶定義規(guī)則來生成平臺相關模板。系統(tǒng)總體功能結(jié)構圖見圖6。

    圖6 HACG 功能結(jié)構圖Fig.6 Function structure diagram of HACG

    2.3 HACG引擎和代碼生成

    HACG 自動代碼生成和配置部署過程包含任務分析和需求建模、模板建立、元數(shù)據(jù)創(chuàng)建、代碼生成和彈性部署。首先,用戶在進行詳細的任務分析和需求建模之后,產(chǎn)生平臺無關的元模型數(shù)據(jù),根據(jù)實際項目需要,將該元數(shù)據(jù)模型轉(zhuǎn)化成平臺相關的數(shù)據(jù)模型,比如相關于語言和框架等,然后使用自動代碼生成引擎生成對應不同實體關系模型的基礎源代碼,選擇對生成的源代碼進行部署,可以采用一鍵部署、手工部署和局部部署等方案。如果需要對生成代碼做局部修改,可以進行完善和修改,不過生成代碼已經(jīng)完全可以滿足基礎框架運行的條件。經(jīng)過調(diào)試部署以及配置,即可實施運行。圖7是HACG 自動代碼生成詳細的流程。

    代碼生成引擎的工作過程如下:

    輸入:靜態(tài)設計模型半形式化描述;

    輸出:系統(tǒng)可部署源碼;

    程序:

    Begin:

    1)初始化代碼生成引擎CodeGenerator、MetaData 讀寫器和模板讀寫器;

    2)選擇靜態(tài)設計視圖半形式化描述模型或遺產(chǎn)系統(tǒng)數(shù)據(jù)庫;使用ModelTransformer 轉(zhuǎn)化成統(tǒng)一標準的平臺無關語言MetaModel;

    3)將生成的MetaModel 轉(zhuǎn)換成平臺相關模型SpecificModel;

    4)根據(jù)選定的語言和框架讀取相應的模板;

    5)使用自動代碼生成引擎CodeGenerator 對SpecificModel 實體和模板進行代碼生成,生成的文件包含實體層、持久層、業(yè)務邏輯層和展示層;

    6)根據(jù)選定的關系數(shù)據(jù)庫類型生成相應的SQL 文件;

    7)將生成的SQL 文件再進行生成,并根據(jù)用戶需求將生成的代碼彈性部署到基礎框架中。

    圖7 HACG 代碼生成流程Fig.7 Flow chart of code generation of HACG

    2.4 生成部署配置

    將通過代碼生成引擎生成的代碼部署到基礎框架中,這個基礎框架是獨立的、可運行的Web 框架,主要包含必要的基礎功能,如用戶管理、權限管理、功能管理、數(shù)據(jù)字典等[11]。如圖8所示,配置生成功能所在的上級菜單、名稱、序號和鏈接位置,就可以在后臺系統(tǒng)中通過菜單進行訪問管理。圖8a)是基于JavaFX 胖客戶端CS 結(jié)構的HACG 自動代碼生成主界面;圖8b)是基礎功能中的角色權限管理的功能展示;圖8c)是對生成代碼快速部署之后的配置界面。

    3 結(jié) 語

    本文對兩種主流自動代碼生成技術進行分析,綜合基于模板和模型驅(qū)動的代碼生成的優(yōu)點,提出一種融合兩種自動代碼生成技術的通用的針對不同語言和不同框架的自動代碼生成方法——HACG。從實際使用效果來看(軟件著作權:基于模型驅(qū)動的彈性自動代碼生成系統(tǒng)(02646104),登記號:2018SR402480),該方法結(jié)構清晰,易于構建自動代碼生成引擎,提高了代碼的生成率,減少了代碼出錯率,較大地縮短項目開發(fā)工期。

    圖8 HACG 代碼生成器主界面及其基礎功能管理界面、功能部署和配置Fig.8 Main interface of the HACG code generator and its basic function management,function deployment and configuration

    本文所提供的原型對有效性和生成系統(tǒng)的可用性測試尚不充分,對于特定需求的以用戶為中心的高可用性的界面生成考慮不足,在后續(xù)的研究中將繼續(xù)加強生成系統(tǒng)的評估反饋。自動代碼生成技術尚在不斷發(fā)展中,隨著人工智能的發(fā)展和對程序邏輯的機器學習能力加強,將能夠自動生成更加復雜安全的系統(tǒng)代碼。

    猜你喜歡
    代碼生成引擎代碼
    Lustre語言可信代碼生成器研究進展
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    藍谷: “涉藍”新引擎
    代碼生成技術在軟件開發(fā)中的應用
    基于XML的代碼自動生成工具
    無形的引擎
    基于Cocos2d引擎的PuzzleGame開發(fā)
    亚洲五月天丁香| 久久久久九九精品影院| x7x7x7水蜜桃| 两个人看的免费小视频| 国产免费男女视频| 99久久久亚洲精品蜜臀av| 亚洲第一av免费看| 久久香蕉国产精品| 又大又爽又粗| 自拍欧美九色日韩亚洲蝌蚪91| 久久午夜综合久久蜜桃| 曰老女人黄片| 亚洲精品一区av在线观看| 日本 av在线| 亚洲av日韩精品久久久久久密| 人成视频在线观看免费观看| av片东京热男人的天堂| 一级毛片精品| 身体一侧抽搐| 黄片小视频在线播放| 日本免费a在线| 一区在线观看完整版| 校园春色视频在线观看| 免费在线观看视频国产中文字幕亚洲| 亚洲av成人不卡在线观看播放网| 亚洲第一青青草原| 亚洲五月天丁香| 在线av久久热| netflix在线观看网站| 日韩中文字幕欧美一区二区| 国产av一区二区精品久久| 午夜福利在线免费观看网站| 欧美日韩一级在线毛片| 午夜免费鲁丝| 一边摸一边抽搐一进一出视频| 天天躁夜夜躁狠狠躁躁| 欧美日本中文国产一区发布| 久久九九热精品免费| 色综合欧美亚洲国产小说| 久久 成人 亚洲| 女同久久另类99精品国产91| 国产av一区二区精品久久| 免费观看人在逋| 欧美日韩福利视频一区二区| 久久影院123| 欧美人与性动交α欧美软件| 韩国精品一区二区三区| 一进一出好大好爽视频| а√天堂www在线а√下载| 免费在线观看黄色视频的| 老司机午夜十八禁免费视频| 免费在线观看日本一区| 欧美成人午夜精品| 日本 av在线| 国产亚洲精品久久久久5区| 欧美人与性动交α欧美精品济南到| www.精华液| 午夜福利影视在线免费观看| 韩国精品一区二区三区| 国产成人精品在线电影| 国产国语露脸激情在线看| 91大片在线观看| 亚洲国产精品合色在线| 亚洲第一av免费看| 高清黄色对白视频在线免费看| 久久这里只有精品19| 久久人人爽av亚洲精品天堂| 天堂俺去俺来也www色官网| 国产又色又爽无遮挡免费看| 交换朋友夫妻互换小说| 成人国语在线视频| 香蕉久久夜色| 99国产极品粉嫩在线观看| 国产精品一区二区三区四区久久 | 久久久国产欧美日韩av| 国产一区二区激情短视频| 亚洲人成电影观看| 最新美女视频免费是黄的| 欧美激情久久久久久爽电影 | 欧美激情 高清一区二区三区| 69av精品久久久久久| 久久久久久亚洲精品国产蜜桃av| 免费观看精品视频网站| 一区二区三区激情视频| 亚洲成av片中文字幕在线观看| 麻豆av在线久日| 国产成人啪精品午夜网站| 91九色精品人成在线观看| 一二三四在线观看免费中文在| 搡老岳熟女国产| 大陆偷拍与自拍| 免费在线观看黄色视频的| 日韩大尺度精品在线看网址 | 久久天堂一区二区三区四区| 麻豆av在线久日| 午夜成年电影在线免费观看| 欧美日韩av久久| 美女大奶头视频| 色综合站精品国产| 日本wwww免费看| 国产99久久九九免费精品| 色哟哟哟哟哟哟| 精品乱码久久久久久99久播| 视频在线观看一区二区三区| 最新美女视频免费是黄的| 国产亚洲精品久久久久久毛片| 国产高清激情床上av| 狠狠狠狠99中文字幕| 桃色一区二区三区在线观看| 欧美激情久久久久久爽电影 | 夜夜爽天天搞| 中文字幕最新亚洲高清| 妹子高潮喷水视频| 在线免费观看的www视频| 麻豆av在线久日| 伦理电影免费视频| 欧美日韩黄片免| 国产成年人精品一区二区 | 黑人巨大精品欧美一区二区蜜桃| 黄色视频,在线免费观看| 无人区码免费观看不卡| 无限看片的www在线观看| 日本五十路高清| 淫秽高清视频在线观看| 99热国产这里只有精品6| 看免费av毛片| 99久久人妻综合| 成人免费观看视频高清| www国产在线视频色| 热99国产精品久久久久久7| 亚洲成人精品中文字幕电影 | 国产激情欧美一区二区| 伊人久久大香线蕉亚洲五| 五月开心婷婷网| 国产极品粉嫩免费观看在线| 一本综合久久免费| 一区福利在线观看| 久久精品成人免费网站| 我的亚洲天堂| 97碰自拍视频| 亚洲aⅴ乱码一区二区在线播放 | 亚洲人成77777在线视频| 美女 人体艺术 gogo| 一级毛片高清免费大全| 亚洲自拍偷在线| 亚洲av电影在线进入| 精品无人区乱码1区二区| 色播在线永久视频| 丁香欧美五月| a在线观看视频网站| 中文字幕最新亚洲高清| 亚洲精品国产区一区二| 国产成人精品在线电影| 精品久久久久久成人av| 激情视频va一区二区三区| 99精品欧美一区二区三区四区| 久久性视频一级片| 91精品国产国语对白视频| 成人国产一区最新在线观看| 精品国产乱码久久久久久男人| 国产97色在线日韩免费| 一本大道久久a久久精品| 欧美av亚洲av综合av国产av| 1024视频免费在线观看| 国产99久久九九免费精品| 亚洲全国av大片| 国产成人精品在线电影| www.精华液| 亚洲中文字幕日韩| 亚洲中文av在线| 久久这里只有精品19| 午夜福利影视在线免费观看| 久久天堂一区二区三区四区| 午夜精品久久久久久毛片777| 日日摸夜夜添夜夜添小说| 成人国产一区最新在线观看| 国产精品国产高清国产av| 一区二区日韩欧美中文字幕| 丝袜人妻中文字幕| 日日摸夜夜添夜夜添小说| 国产精品综合久久久久久久免费 | 亚洲av日韩精品久久久久久密| 国产区一区二久久| 久久国产精品影院| 精品国产美女av久久久久小说| 亚洲五月婷婷丁香| 日日摸夜夜添夜夜添小说| 国产男靠女视频免费网站| 午夜亚洲福利在线播放| 久久影院123| ponron亚洲| 国产一区二区三区在线臀色熟女 | 在线观看免费视频网站a站| 中国美女看黄片| 亚洲精品久久午夜乱码| 精品久久久久久,| 日韩人妻精品一区2区三区| 老司机福利观看| 久热爱精品视频在线9| 亚洲av美国av| 99久久精品国产亚洲精品| 国产精品乱码一区二三区的特点 | 中国美女看黄片| 一级毛片女人18水好多| 日韩成人在线观看一区二区三区| 久久午夜亚洲精品久久| 两性午夜刺激爽爽歪歪视频在线观看 | 午夜免费激情av| 久久青草综合色| 99国产极品粉嫩在线观看| 满18在线观看网站| 日韩大尺度精品在线看网址 | 欧美激情高清一区二区三区| 久久国产精品人妻蜜桃| 最好的美女福利视频网| 这个男人来自地球电影免费观看| 国产精品电影一区二区三区| 国产真人三级小视频在线观看| 午夜福利在线观看吧| 淫妇啪啪啪对白视频| 成人国产一区最新在线观看| 免费人成视频x8x8入口观看| 成人精品一区二区免费| 国产高清激情床上av| 欧美人与性动交α欧美精品济南到| 国产熟女xx| 精品人妻在线不人妻| 欧美乱妇无乱码| 热re99久久国产66热| 天天影视国产精品| 国产欧美日韩一区二区精品| 手机成人av网站| 亚洲av美国av| 精品日产1卡2卡| 国产视频一区二区在线看| 久久久久久久午夜电影 | a级片在线免费高清观看视频| 别揉我奶头~嗯~啊~动态视频| 亚洲欧美一区二区三区久久| 99热只有精品国产| 首页视频小说图片口味搜索| 999久久久精品免费观看国产| 精品久久久久久久毛片微露脸| 欧洲精品卡2卡3卡4卡5卡区| 亚洲精品一区av在线观看| 久久精品91无色码中文字幕| 精品卡一卡二卡四卡免费| 一a级毛片在线观看| 男人的好看免费观看在线视频 | 交换朋友夫妻互换小说| 免费观看精品视频网站| 婷婷六月久久综合丁香| 国产麻豆69| 美女国产高潮福利片在线看| 国产一区二区激情短视频| 欧美日韩亚洲国产一区二区在线观看| 纯流量卡能插随身wifi吗| 大型av网站在线播放| 中文字幕最新亚洲高清| 日本欧美视频一区| 国产成人一区二区三区免费视频网站| 夜夜看夜夜爽夜夜摸 | 国产成人av激情在线播放| 91成人精品电影| 日韩高清综合在线| 国产亚洲精品综合一区在线观看 | 看片在线看免费视频| 男人舔女人下体高潮全视频| 精品久久久久久电影网| 变态另类成人亚洲欧美熟女 | 一级作爱视频免费观看| 麻豆成人av在线观看| 欧美日韩中文字幕国产精品一区二区三区 | 亚洲五月婷婷丁香| 女性被躁到高潮视频| 中文字幕人妻丝袜一区二区| 女人被狂操c到高潮| 国产99白浆流出| 51午夜福利影视在线观看| 精品国产乱子伦一区二区三区| 一级a爱片免费观看的视频| 国产黄色免费在线视频| 99国产精品一区二区三区| 99热只有精品国产| 美女扒开内裤让男人捅视频| 97碰自拍视频| 两性夫妻黄色片| 亚洲va日本ⅴa欧美va伊人久久| 国产91精品成人一区二区三区| 国产区一区二久久| 久久久久久人人人人人| 久久天躁狠狠躁夜夜2o2o| 国产成人免费无遮挡视频| 男人舔女人下体高潮全视频| e午夜精品久久久久久久| 九色亚洲精品在线播放| 99国产综合亚洲精品| 国产精品一区二区免费欧美| 国产真人三级小视频在线观看| 久99久视频精品免费| 亚洲午夜精品一区,二区,三区| 国产成年人精品一区二区 | 国产成年人精品一区二区 | 亚洲成av片中文字幕在线观看| 亚洲第一欧美日韩一区二区三区| 大型黄色视频在线免费观看| 一区二区三区精品91| 午夜福利影视在线免费观看| 成人免费观看视频高清| 黄色怎么调成土黄色| 一级a爱片免费观看的视频| 亚洲人成电影免费在线| 国产亚洲精品久久久久久毛片| 免费观看人在逋| 免费在线观看日本一区| 精品乱码久久久久久99久播| 国产精品秋霞免费鲁丝片| 在线观看免费视频日本深夜| 亚洲七黄色美女视频| 久久青草综合色| 久久精品aⅴ一区二区三区四区| 黄色片一级片一级黄色片| a级毛片黄视频| 精品久久久久久久毛片微露脸| 久久热在线av| 村上凉子中文字幕在线| 欧美日韩一级在线毛片| 久久精品亚洲熟妇少妇任你| 久久久精品欧美日韩精品| 最近最新中文字幕大全电影3 | 曰老女人黄片| 日本a在线网址| 一区二区三区国产精品乱码| 美女午夜性视频免费| 久99久视频精品免费| 国产精品亚洲一级av第二区| 老鸭窝网址在线观看| 热re99久久国产66热| 日本精品一区二区三区蜜桃| 国内久久婷婷六月综合欲色啪| 精品久久久久久,| 欧美日韩福利视频一区二区| 身体一侧抽搐| 麻豆av在线久日| 免费日韩欧美在线观看| 大陆偷拍与自拍| 欧美最黄视频在线播放免费 | 亚洲欧美精品综合久久99| 亚洲 国产 在线| a在线观看视频网站| a级毛片黄视频| 叶爱在线成人免费视频播放| 亚洲av片天天在线观看| 视频区欧美日本亚洲| 搡老乐熟女国产| 一级a爱片免费观看的视频| 很黄的视频免费| 欧美日韩亚洲高清精品| 波多野结衣一区麻豆| 欧美精品亚洲一区二区| 在线看a的网站| 美女福利国产在线| 女生性感内裤真人,穿戴方法视频| 久久人妻av系列| 国产又色又爽无遮挡免费看| 99久久综合精品五月天人人| 国产男靠女视频免费网站| 在线观看免费午夜福利视频| 国产99白浆流出| 午夜福利在线观看吧| 亚洲国产精品合色在线| 亚洲av第一区精品v没综合| 久久精品国产综合久久久| 女生性感内裤真人,穿戴方法视频| xxx96com| 精品乱码久久久久久99久播| 91大片在线观看| 久久精品国产亚洲av香蕉五月| 国产精品亚洲av一区麻豆| 日韩精品青青久久久久久| 欧美乱妇无乱码| 亚洲五月色婷婷综合| 免费人成视频x8x8入口观看| 一边摸一边抽搐一进一出视频| 精品国产乱码久久久久久男人| 亚洲中文日韩欧美视频| www.999成人在线观看| 国产av一区在线观看免费| 国产xxxxx性猛交| 日韩一卡2卡3卡4卡2021年| 黄色 视频免费看| 一边摸一边抽搐一进一小说| 97人妻天天添夜夜摸| 国内毛片毛片毛片毛片毛片| 久久久久久久久中文| 一区福利在线观看| 国产成人一区二区三区免费视频网站| 亚洲国产欧美日韩在线播放| 中文字幕人妻熟女乱码| 麻豆久久精品国产亚洲av | 婷婷精品国产亚洲av在线| 99精品久久久久人妻精品| 动漫黄色视频在线观看| 黄片大片在线免费观看| 久久精品91蜜桃| 久久久久九九精品影院| 丰满饥渴人妻一区二区三| a在线观看视频网站| 亚洲欧美日韩另类电影网站| 国产精品久久视频播放| 国产亚洲精品久久久久久毛片| 午夜福利在线观看吧| 国产精品一区二区精品视频观看| av网站免费在线观看视频| 两性午夜刺激爽爽歪歪视频在线观看 | 50天的宝宝边吃奶边哭怎么回事| 亚洲av成人av| 中文字幕av电影在线播放| 黄色视频不卡| 中文字幕av电影在线播放| 国产黄a三级三级三级人| 黄片播放在线免费| 男女床上黄色一级片免费看| 一级毛片女人18水好多| 亚洲中文av在线| 久久 成人 亚洲| av有码第一页| 午夜91福利影院| 国产成人精品在线电影| 好看av亚洲va欧美ⅴa在| 午夜福利在线免费观看网站| 香蕉久久夜色| 久久精品国产亚洲av高清一级| 超碰成人久久| 亚洲国产精品一区二区三区在线| 9热在线视频观看99| 国产成人精品无人区| 欧美国产精品va在线观看不卡| 香蕉丝袜av| 日韩国内少妇激情av| 欧美成人性av电影在线观看| 日韩精品中文字幕看吧| 三级毛片av免费| 亚洲三区欧美一区| 久久性视频一级片| 亚洲精品中文字幕在线视频| 69精品国产乱码久久久| 999久久久国产精品视频| 精品熟女少妇八av免费久了| 神马国产精品三级电影在线观看 | 国产av一区二区精品久久| 黑人猛操日本美女一级片| 他把我摸到了高潮在线观看| 久久午夜综合久久蜜桃| 久久精品影院6| 国产1区2区3区精品| 露出奶头的视频| 色播在线永久视频| 欧美日韩乱码在线| 亚洲国产精品合色在线| 1024视频免费在线观看| 超碰97精品在线观看| 在线观看日韩欧美| 日韩欧美国产一区二区入口| 99久久精品国产亚洲精品| 亚洲自拍偷在线| 色综合欧美亚洲国产小说| 欧美黑人精品巨大| 久久热在线av| 久久香蕉国产精品| 精品久久久精品久久久| 久久久久久久精品吃奶| 亚洲熟女毛片儿| 青草久久国产| 每晚都被弄得嗷嗷叫到高潮| 免费在线观看亚洲国产| 日本欧美视频一区| 亚洲精品国产色婷婷电影| 亚洲精品一二三| 黄色a级毛片大全视频| 一二三四社区在线视频社区8| 久久 成人 亚洲| 99精国产麻豆久久婷婷| 99国产精品一区二区三区| 一个人观看的视频www高清免费观看 | 日韩精品中文字幕看吧| 国产99白浆流出| 在线观看免费午夜福利视频| 婷婷精品国产亚洲av在线| 可以免费在线观看a视频的电影网站| 巨乳人妻的诱惑在线观看| 欧美日韩亚洲国产一区二区在线观看| 亚洲精品一二三| 久久青草综合色| 国产一区二区三区在线臀色熟女 | 夜夜爽天天搞| 久久久久久免费高清国产稀缺| 久99久视频精品免费| 男女午夜视频在线观看| 精品久久久久久成人av| 人人妻人人爽人人添夜夜欢视频| 一级毛片高清免费大全| 亚洲av第一区精品v没综合| 亚洲精品一卡2卡三卡4卡5卡| 日韩高清综合在线| 欧美一区二区精品小视频在线| 免费不卡黄色视频| 一区福利在线观看| 50天的宝宝边吃奶边哭怎么回事| 黄色视频不卡| 午夜91福利影院| 亚洲一码二码三码区别大吗| 精品少妇一区二区三区视频日本电影| 别揉我奶头~嗯~啊~动态视频| 免费看a级黄色片| 亚洲精品国产一区二区精华液| 国产免费av片在线观看野外av| 精品国产乱子伦一区二区三区| 午夜福利在线免费观看网站| 激情在线观看视频在线高清| 欧美精品一区二区免费开放| 99国产极品粉嫩在线观看| 国产亚洲欧美精品永久| 18禁国产床啪视频网站| 窝窝影院91人妻| 精品国产乱码久久久久久男人| 国产精品99久久99久久久不卡| 超色免费av| 久久人人97超碰香蕉20202| 极品人妻少妇av视频| 成人三级黄色视频| 国产精品永久免费网站| 岛国视频午夜一区免费看| 看黄色毛片网站| 男女之事视频高清在线观看| 变态另类成人亚洲欧美熟女 | 男男h啪啪无遮挡| 欧美激情高清一区二区三区| 精品少妇一区二区三区视频日本电影| 欧美日韩一级在线毛片| 一级a爱片免费观看的视频| 国产高清国产精品国产三级| 久久香蕉国产精品| 免费日韩欧美在线观看| 久久九九热精品免费| 人人妻,人人澡人人爽秒播| 免费久久久久久久精品成人欧美视频| 中文字幕人妻丝袜一区二区| 9191精品国产免费久久| 狠狠狠狠99中文字幕| 日本黄色视频三级网站网址| 老司机午夜十八禁免费视频| 午夜福利一区二区在线看| 精品国产乱子伦一区二区三区| 久久中文字幕一级| 在线观看免费视频日本深夜| 精品一区二区三区四区五区乱码| 99re在线观看精品视频| 我的亚洲天堂| 免费观看人在逋| 国产视频一区二区在线看| 热99re8久久精品国产| 91成人精品电影| 91麻豆av在线| 两个人免费观看高清视频| 亚洲精品av麻豆狂野| 国产亚洲精品久久久久5区| 亚洲欧美激情在线| 午夜老司机福利片| 精品国产一区二区三区四区第35| 高潮久久久久久久久久久不卡| 欧美激情高清一区二区三区| 亚洲中文字幕日韩| 97超级碰碰碰精品色视频在线观看| av视频免费观看在线观看| 国产1区2区3区精品| 国产一区二区三区在线臀色熟女 | 制服诱惑二区| 亚洲国产精品sss在线观看 | 日韩精品免费视频一区二区三区| 国产精品一区二区免费欧美| 91av网站免费观看| 精品国产亚洲在线| 性欧美人与动物交配| 免费在线观看完整版高清| 亚洲av成人一区二区三| 午夜福利在线观看吧| 成人国产一区最新在线观看| 亚洲第一欧美日韩一区二区三区| 成人三级黄色视频| 正在播放国产对白刺激| 久久久精品欧美日韩精品| 亚洲欧美日韩另类电影网站| 免费在线观看亚洲国产| 久久天堂一区二区三区四区| 午夜91福利影院| 亚洲人成电影观看| 欧美日本亚洲视频在线播放| 亚洲精品国产色婷婷电影| 午夜福利在线免费观看网站| 女同久久另类99精品国产91| 免费不卡黄色视频| 亚洲,欧美精品.| 欧美乱色亚洲激情| 久久午夜亚洲精品久久| 免费少妇av软件| 欧美最黄视频在线播放免费 | 午夜福利影视在线免费观看| 大香蕉久久成人网| 在线视频色国产色| 黄片播放在线免费| 久久精品国产亚洲av高清一级| 悠悠久久av| 老司机福利观看| 五月开心婷婷网|