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

    基于敏捷開發(fā)增量UML模型的研究

    2018-02-05 09:16:54惠子青劉曉燕朱匯龍
    軟件 2018年1期
    關(guān)鍵詞:子目標(biāo)后置開發(fā)人員

    惠子青,劉曉燕,朱匯龍

    (昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650500)

    0 引言

    敏捷開發(fā)方法是目前非常流行也是非常成功的開發(fā)方式[1]。敏捷開發(fā)方法要求“在全面的文檔中使用文件”.綜合的uml圖認(rèn)為代碼是次要的,uml的維護(hù)成本似乎也說明了代碼是次要的。uml圖與代碼是分開的它只能在文檔中體現(xiàn),當(dāng)uml圖用于增量模型設(shè)計時它與源代碼之間的協(xié)調(diào)是非常困難的,增量模型因此也變得非常的復(fù)雜,由于uml的類模型很少允許遞歸,因此幾乎沒有伸縮性(相反,數(shù)據(jù)流圖允許遞歸,因為流程就是一個數(shù)據(jù)流圖).另一方面,uml提供了很好的可視化效果,它的好處我們不應(yīng)該丟棄[6]。一般來說,uml除了成本因素,是非常有利于開發(fā)的。

    本文描述了一種在代碼注釋中逐步嵌入圖形化UML類模型的嚴(yán)格方法。它是和快速開發(fā)的代碼一起進(jìn)行的,最后的結(jié)果由簡單易懂的類模塊組成。該方法從確定我們所需調(diào)用的函數(shù)開始,每個函數(shù)對應(yīng)一個需求。例如:如果用戶需要訪問一個購物網(wǎng)站所需的函數(shù)可能包括display_product_image()、verify_password()和process_payment(),當(dāng)一個函數(shù)被識別并且驅(qū)動非平凡的main(),我們可以稱它為-跟設(shè)計函數(shù)。跟設(shè)計函數(shù)存在的前提條件是所需要的功能函數(shù)存在,而它的后置條件是將跟設(shè)計函數(shù)需放在開發(fā)人員所創(chuàng)建的類中,(后置條件也有可能包括設(shè)計約束)。跟設(shè)計函數(shù)的高階規(guī)范是這篇文章主要討論的問題。

    1 敏捷UML建模研究現(xiàn)狀

    一般來說,除了成本之外,UML已經(jīng)被發(fā)現(xiàn)對軟件開發(fā)有利。例如,Vargas發(fā)現(xiàn)[3],“在系統(tǒng)層面上,使用類圖建模的代碼的變化傾向性低于根本沒有建模的代碼的變化傾向性”

    UML在敏捷開發(fā)中的應(yīng)用已經(jīng)讓研究人員關(guān)注了一段時間(例如Wei等人[2]),但是還沒有出現(xiàn)廣泛使用的方法。模型驅(qū)動分析指定了用 XML描述 UML模型和元模型的廣泛方法,但是這些對于僅僅處理代碼的開發(fā)者來說并不是立即可見的。Pitk?nen和Selonen[10]對增量建模的研究就是一個例子。Marovac在[1]中也將 UML表示為“被標(biāo)記的句子”而不是數(shù)字。Ambler[7]在敏捷建模方面做了非常有用的工作,但是他并沒有像在這里展示的那樣討論嵌入UML。他在[8]中指出:“在AM(敏捷建模)的范圍內(nèi),它(源代碼)不會被認(rèn)為是一個模型,因為我想?yún)^(qū)分這兩個概念?!币恍┟艚萁9ぷ鞯男问剑ɡ鏡umpe[5])。一個具體的例子是Karagiannis[4],它描述了敏捷建模方法工程(AMME)。

    Weiser顯示,開發(fā)人員在調(diào)試相關(guān)的代碼片段時使用片段,而這些片段不一定是連續(xù)的。在不同的上下文中,本文描述的技術(shù)使用切片[11]。

    2 方法

    2.1 分析在uml中嵌入類的前提

    首先,我們現(xiàn)在假設(shè)需求是給定的,沒有執(zhí)行已經(jīng)設(shè)計的uml可視化,并且注釋源代碼是我們唯一了解軟件結(jié)構(gòu)的途徑。其次,假設(shè)代碼設(shè)計的功能是可用的。在這里我們不假設(shè)uml必須以完整的形式顯示,如:顯示所有類或全部類關(guān)系或類的所有方法。

    2.2 uml嵌入類所需要的功能

    快速開發(fā)規(guī)范從需求開始當(dāng)前的輸出。在示例中,“用戶”可以指定廚房的裝修風(fēng)格,以及收到相應(yīng)的反饋。例如,這就要求存在一個將櫥柜置于某個位置的功能,如place_s_wall cabinet(a_position)。這種功能的識別取決于開發(fā)者,在這種情況下,我們將把它們稱為“需求”。

    2.3 設(shè)計功能

    根設(shè)計功能是執(zhí)行滿足當(dāng)前所有要求(即通過授權(quán))的功能。所需功能的存在是明確的前置條件。根設(shè)計功能依靠這些功能來完成其后置條件,其中包括明確的創(chuàng)建適用于所需功能的類,并將這些類關(guān)聯(lián)起來。這是 UML可視化變得有用的地方。對于快速開發(fā)來說,我們所描述的技術(shù)就是創(chuàng)建這些UML片段-不需要放置所需的功能。由于這些片段通常只有 1-4個類的組合,所以它們及其相互關(guān)系可以作為簡單的ASCII數(shù)字在評論內(nèi)提供。 就像每個代碼塊依賴于前面的代碼一樣,每個新的 UML片段都應(yīng)該和已經(jīng)給出的代碼相關(guān)聯(lián)。換句話說,一個連接類可以使模型變得簡單。在本質(zhì)上,根設(shè)計函數(shù)所要求的功能可以是設(shè)計功能遞歸地重復(fù)本文描述的過程。

    2.4 規(guī)則與符號

    在本文中,每個函數(shù)被分解組織成一個有序的積累的子目標(biāo)。它們的連接必須滿足所有的后置條件。在最簡單的情況下,一個子目標(biāo)可能與后置條件相同?!胺e累”屬性意味著一旦子目標(biāo)被實現(xiàn),就通過功能代碼的其余部分來維護(hù)。這種漸進(jìn)方式與快速開發(fā)是一致的。子目標(biāo)在代碼中用“-”表示。為了方便起見,對于不是必需子目標(biāo)的邏輯充分性的推理用方括號表示。

    2.5 開發(fā)人員的角色

    開發(fā)人員需要確定滿足后置條件的子目標(biāo),并且選擇執(zhí)行子目標(biāo)的順序。另一個是將所需的功能放在合適的位置。

    3 實例研究

    我們選擇本文的例子的目標(biāo)是:它們應(yīng)該足夠小,足以被充分描述和實施,足夠復(fù)雜以說明技術(shù),并且足夠熟悉,以便讀者可以將結(jié)果與傳統(tǒng)起草的UML文檔進(jìn)行比較。因此,我們選擇了設(shè)計模式的應(yīng)用程序:抽象工廠和調(diào)解器,一般在Gamma等[9]中描述。

    例1:廚房的可視化

    第一個例子取自[6],使得用戶能夠以“古董”或“現(xiàn)代”等各種風(fēng)格可視化給定的廚房布局(在下面的代碼中基本上是櫥柜布局)。布局由5乘以 5格的櫥柜(“f”)和墻柜(“w”),如下例所示:

    arrange_kitchen_with(“ANTIQUE”)的執(zhí)行

    產(chǎn)生以下內(nèi)容:

    執(zhí)行 arrange_kitchen_wit(“MODERN”)

    相同的布局產(chǎn)生以下內(nèi)容:

    設(shè)計和實施必須很容易適應(yīng)新的櫥柜和新的風(fēng)格。

    (1)選擇根設(shè)計功能

    這個過程是由根設(shè)計功能驅(qū)動的,執(zhí)行產(chǎn)生所需的應(yīng)用程序,并依賴于它在附屬(“必需”)功能。根設(shè)計函數(shù)的如下。

    def arrange_kitchen_with(a_style):

    前置條件明確地引用了所需的功能——實際繪制或放置各種櫥柜的方法風(fēng)格各異,如下:

    Preconditions

    1. a_style = 'MODERN' or 'ANTIQUE'

    2. place_y_x_cabinet(a_position) are defined,each placing an x cabinet in style y at a_position on the console, where x = floor or wall and y = modern or antique

    3. arrange_kitchen() is defined, using place_x_cabinet() with x = floor or wall, to produce a picture of a kitchen on the console.

    4. cabinet_arrangement specifies where the flooror wall cabinets should be located on a two-dimensional grid

    Postconditions

    1.arrange_kitchen()and place_x_cabinet() are allocated

    2. place_y_x_cabinet() are allocated for x =floor/wall and y = modern/antique

    3. (place_x_cabinet() delegates):

    Kitchen.place_x_cabinet() delegates to

    place_y_x_cabinet()where y corresponds to a_style

    4. A kitchen is displayed on the console as per

    cabinet_arrangement and a_style

    這些規(guī)范依賴于 place_y_x_cabinet()等詳細(xì)規(guī)范的存在。

    (2)分解

    根設(shè)計函數(shù)被分解成一系列代碼塊,每個代碼塊實現(xiàn)一個子目標(biāo)(在代碼中用“ - ”表示)。 總體來說,子目標(biāo)聲明暗示了整個設(shè)計功能的后置條件。當(dāng)一個子目標(biāo)標(biāo)簽是有用的,它顯示在括號內(nèi)。

    第一個子目標(biāo)放置函數(shù) arrange_kitchen(),place_floor_cabinet()和 place_wall_cabinet()。 這個子目標(biāo)的實現(xiàn)由這里描述的UML和Kitchen的代碼組成(通常在一個單獨的文件中)。

    --(Postcondition 1): arrange_kitchen() and

    place_x_cabinet()with x = floor or wall are allocated AND

    the_kitchen is Kitchen instance with cabinet_arrangement

    |_______Kitchen_______|

    | arrange_kitchen() |

    |place_floor_cabinet()|

    | place_wall_cabinet()|

    from … import Kitchen

    the_kitchen = Kitchen()

    the_kitchen.set_arrangement(cabinet_arrangement)

    我們接下來找到place_y_x_cabinet(),注意將新的UML片段連接到已經(jīng)引入的UML。

    --(Postcondition 2): place_y_x_cabinet() allocated with x

    = floor or wall and y = antique or modern

    Kitchen<>---->|_XCabinet_|

    _________________________ ^

    |____AntiqueXCabinet______|

    |____ModernXCabinet______|

    |place_antique_x_cabinet()|

    |place_modern_x_cabinet()|

    現(xiàn)在可以使用place_x_cabinet()函數(shù)實施

    --(Postcondition 3): place_x_cabinet() delegates

    Kitchen<>-x_cabinet---> XCabinet|place()_|

    Kitchen.place_x_cabinet() delegates to x_cabinet.place(),

    and YXCabinet.place() delegates to place_y_x_cabinet()

    where x = floor or wall and y = antique or modern

    接下來,開發(fā)者可以將Style引入為對象。 方括號表示一個子目標(biāo),雖然需要執(zhí)行,但是在檢查子目標(biāo)的意味著聯(lián)合后置條件時是不需要的。

    --[Style]: the_kitchen.the_style is a Style instance

    corresponding to a_style

    Kitchen<>-the_style--->|_Style_|

    _____________________ ^

    |_AntiqueKitchenStyle_||_ModernKitchenStyle_|

    ’’’

    from … import AntiqueKitchenStyle, ModernKitchenStyle

    if a_style == "ANTIQUE":

    the_style = AntiqueKitchenStyle()

    else:

    the_style = ModernKitchenStyle()

    the_kitchen.set_kitchen_style(the_style)

    下一個子目標(biāo)確保the_kitchen.x_cabinet是設(shè)置為適當(dāng)樣式的對象。

    --[x_cabinet set]: the_kitchen.x_cabinet is an YXCabinet,

    where x/X = wall or floor, and Y corresponds to a_style

    Style ---->XCabinet

    |get_cabinets()|

    YKitchenStyle.get_cabinet() sets the_kitchen.x_cabinet

    to a YXCabinet instance

    現(xiàn)在的設(shè)計足以實現(xiàn)后置條件4,如下所示:

    # --(Postcondition 4): A kitchen is displayed

    # on the console as per a_style and arrange_kitchen()

    the_kitchen.arrange_kitchen()

    例2:對接模擬

    第二個例子模擬了一艘船的對接,并附有一艘拖船。一個簡單的5×5網(wǎng)格就足以證明該方法。我們將指定船舶傾向于1空間的對角線運動,拖船最多可以移動2個空間,但只能垂直和水平移動。例如,下面顯示了初始條件,其中d是船的目的地,“0”和s分別表示拖船和船的初始位置。

    輸出顯示如下,每當(dāng)有重疊時,拖輪位置(數(shù)字)占主導(dǎo)地位:

    讀者將認(rèn)識到中介設(shè)計模式的出現(xiàn)。

    (1)選擇根設(shè)計功能

    由于對接是主要的用戶故事,因此以下是一個合適的根設(shè)計功能:

    def dock(a_ship_position, a_tugboat_position,

    a_dock_position):

    dock()的規(guī)范主要涉及所需函數(shù)的位置,但是它們也包含一個設(shè)計約束(后置條件1)。

    Intent: Simulate docking of a ship with tugboat support

    Preconditions

    1: The parameters are instances of Position

    2: a_ship_position is the ship's initial position

    3: a_tugboat_position is the tugboat's initial position

    4: a_dock_position is the ship's destination

    5: move_ship() is defined--the effects of a single move

    with specified constraints

    6: move_tugboat() is defined–the effects single move with

    specified constraints

    Postconditions

    1. (Independence): The code defining ship and tugboat is

    independent of each other

    2. move_ship() is allocated

    3. move_tugboat() is allocated

    4. (Trajectories shown): The ship and tugboat's

    trajectories are on the console for the ship traveling in

    a minimal path from a_ship_position to a_dock_position

    and the tugboat staying as close as possible but out of

    the way.

    (2)分解

    前兩個子目標(biāo)與前兩個后置條件相同,并且以避免獨立所禁止的相互引用的方式分配所需函數(shù)move_ship()和 move_tugboat()。這意味著船舶和拖船之間不應(yīng)存在隨后的依賴關(guān)系。

    # --(Postconditions 1 & 2): "Independence" observed

    # AND move_ship() is allocated

    # _________ ___________

    # |_Docking_|<>-ship--->|___Ship____|

    # |move_ship()|

    # --(Postcondition 3): move_tugboat() allocated

    # ______________

    # Docking<>-tugboat--->|____Tugboat___|

    # |move_tugboat()|

    下一個子目標(biāo)履行滿足超過相應(yīng)的后置條件。

    # --[Vessel instances have position and heading]

    # ________

    # |_Vessel_|

    # |position|

    # |_heading|

    # ^

    # Ship Tugboat

    下一個子目標(biāo)可以協(xié)調(diào)。

    # --[Each Vessel is aware of its peer]

    # ____________________

    #

    |_VesselCoordination_|<---coordination-<>Vessel

    # |_____get_peer()_____|

    # ^

    # Docking

    一旦滿足其主要需求,根設(shè)計函數(shù)通常會通過控制來構(gòu)建應(yīng)用程序的設(shè)計。

    # --(Postcondition 4): Trajectories shown

    #

    # This is executed by Docking.execute()

    from mediator.docking_class import Docking

    Docking().execute(a_ship_position,a_tugboat_position,

    a_dock_position)

    4 結(jié)論

    UML的可視化屬性可以在敏捷項目中通過建立放置所需函數(shù)的設(shè)計函數(shù)以及將 UML嵌入到有意義的片段中來利用。這不僅僅是一個權(quán)宜之計:它減輕了復(fù)雜和龐大的UML類模型的不可讀性。

    這項研究已經(jīng)預(yù)見到了實驗和規(guī)模的使用,在不斷的發(fā)展。實際上,大小適中的應(yīng)用程序需要封裝,同樣的設(shè)計功能驅(qū)動的過程應(yīng)該能夠驅(qū)動創(chuàng)建包及其使用關(guān)系,就像驅(qū)動創(chuàng)建類及其關(guān)系一樣。

    不斷發(fā)展的應(yīng)用程序開發(fā)的主要障礙是可能存在不一致,效率低下以及難以看清整體。本文描述的所需 UML片段允許驗證已建立的系統(tǒng)符合嵌入式 UML規(guī)范。工具支持是必需的。一個工具將檢查一個程序的 UML片段的一致性,并產(chǎn)生一個XML UML描述(以及圖)。至少有兩種一致性要檢查。第一個驗證片段集內(nèi)的自我一致性(例如,使得類A未被顯示為從B繼承,反之亦然)。第二個檢查代碼是與 UML片段一致(例如,使得承諾的類A實際上被構(gòu)造)。

    檢查一個已建立的系統(tǒng)是否符合其公布的UML的能力并不是特定于本文描述的零碎方法;然而,在持續(xù)進(jìn)化的背景下,開發(fā)人員實際上更容易表達(dá)“這里是我需要實現(xiàn)當(dāng)前沖刺的額外的UML”,而不是通過一個大的 UML類模型尋找合適的地方來編輯。

    未來的工作將涉及規(guī)模項目的設(shè)計功能樹和碎片化UML的影響。根設(shè)計函數(shù)假定存在一組函數(shù),其中一些函數(shù)本身就是設(shè)計函數(shù)等等。由此產(chǎn)生的設(shè)計函數(shù)層次結(jié)構(gòu)可以改善在簡介中提到的 UML類模型中遞歸“伸縮”的缺乏。

    [1] N. Marovac. “UML based embedded documentation for semiautomatic software development,” SIGSOFT Softw. Eng.Notes 32.5 (2007), pages 1–3, doi: 10.1145/1290993.1290997.

    [2] Q. Wei, G. Danwei, X. Yaohong, F. Jingtao, H. Cheng, and J.Zhengang. “Research on software development process conjunction of scrum and UML modeling,” Proceedings - 2014 4th International Conference on Instrumentation and Measurement, Computer, Communication and Control (IMCCC 2014), 2014, pages 978–982, doi: 10.1109/IMCCC. 2014.206.

    [3] R. Vargas, A. Nugroho, M. Chaudron, and J. Visser. “The use of UML class diagrams and its effect on code changeproneness,” Proceedings of the Second Edition of the International Workshop on Experiences and Empirical Studies in Software Modelling (EESSMod '12), Article No. 2, 2012, doi:10.1145/2424563.2424566.

    [4] D. Karagiannis. Agile modeling method engineering. 2015,doi: 10.1145/ 2801948.2802040.

    [5] B. Rumpe. “Agile Modeling with the UML,” Rissef (2002),pages 297– 309, doi: 10.1007/978-3-540-24626-8_21.

    [6] E. Braude. Software design: from programming to architecture.Hoboken, NJ: J. Wiley, 2003, pp133-135.

    [7] S. Ambler. Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process. 2002, page 400, doi:10.1017/CBO9780511817533.018.

    [8] S. Ambler. Agile/Lean Documentation: Strategies for Agile Software Development. url: http://agilemodeling.com/essays/agileDocumentation.htm# ModelsDocumentsSourceCode.

    [9] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Reading,Mass.: Addison-Wesley, 1995.

    [10] R. Pitk?nen and P. Selonen “A UML Profile for Executable and Incremental Specification-Level Modeling,” ?UML?2004 — The Unified Modeling Language. Modeling Languages and Applications Vol 3273, Lecture Notes in Computer Science, pages 158-172, doi 10.1007/978-3-540-30187-5_12.

    [11] M. Weiser, "Programmers use slices when debugging,"Communications of the ACM (1982), pages 446-452, doi 10.1145/358557.358577.

    猜你喜歡
    子目標(biāo)后置開發(fā)人員
    圖層網(wǎng)格法對混合目標(biāo)群的毀傷評估
    稀疏獎勵環(huán)境中的分層強(qiáng)化學(xué)習(xí)①
    非正交五軸聯(lián)動數(shù)控機(jī)床后置處理算法開發(fā)
    Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
    雷達(dá)群目標(biāo)跟蹤條件下的彈道預(yù)報方法
    沉淀后置生物處理組合工藝的工程應(yīng)用
    基于子目標(biāo)進(jìn)化算法的要地防空武器系統(tǒng)優(yōu)化部署
    Review of Research on the Prevention of HPV Infection and Cervical Cancer
    讓W(xué)indows 10進(jìn)入開發(fā)者模式
    電腦迷(2015年12期)2015-04-29 23:22:51
    后悔了?教你隱藏開發(fā)人員選項
    電腦愛好者(2015年6期)2015-04-03 01:20:56
    亚洲怡红院男人天堂| 一级毛片电影观看| 日本爱情动作片www.在线观看| 国产视频首页在线观看| 国产老妇伦熟女老妇高清| 青春草国产在线视频| 啦啦啦韩国在线观看视频| 国产成人freesex在线| 国内精品美女久久久久久| 少妇丰满av| 成人漫画全彩无遮挡| 久久久久精品性色| 亚洲av成人精品一区久久| 成年版毛片免费区| 最新中文字幕久久久久| 卡戴珊不雅视频在线播放| 女人被狂操c到高潮| 国产探花在线观看一区二区| 国产成人精品久久久久久| 看非洲黑人一级黄片| 成人漫画全彩无遮挡| 午夜激情福利司机影院| 18+在线观看网站| 我的老师免费观看完整版| 色综合亚洲欧美另类图片| 观看美女的网站| 精品人妻熟女av久视频| 精品久久久噜噜| 亚洲成人av在线免费| 久久久久精品久久久久真实原创| 日日摸夜夜添夜夜爱| 麻豆乱淫一区二区| 91狼人影院| 国产高潮美女av| 亚洲av免费在线观看| 欧美xxxx黑人xx丫x性爽| 中文字幕亚洲精品专区| 伦理电影大哥的女人| 久久国产乱子免费精品| 欧美zozozo另类| 国产单亲对白刺激| 亚洲欧美日韩东京热| 国产真实伦视频高清在线观看| 亚洲av电影在线观看一区二区三区 | 国产伦精品一区二区三区四那| 人人妻人人澡人人爽人人夜夜 | 日韩 亚洲 欧美在线| 美女被艹到高潮喷水动态| 午夜福利在线观看免费完整高清在| 欧美bdsm另类| 精品久久久久久久末码| videos熟女内射| av天堂中文字幕网| 国产精品久久久久久精品电影| 六月丁香七月| 天堂影院成人在线观看| 国产精品一区二区在线观看99 | 久久精品国产亚洲网站| 亚洲在久久综合| 少妇人妻一区二区三区视频| 久久6这里有精品| 国产v大片淫在线免费观看| 高清视频免费观看一区二区 | 高清毛片免费看| 久久精品国产亚洲av涩爱| 亚洲国产精品sss在线观看| 综合色丁香网| 亚洲不卡免费看| 国产精品.久久久| 26uuu在线亚洲综合色| 久久99热这里只频精品6学生| 免费看日本二区| 99re6热这里在线精品视频| 国产精品福利在线免费观看| 视频中文字幕在线观看| 内地一区二区视频在线| 肉色欧美久久久久久久蜜桃 | 中文乱码字字幕精品一区二区三区 | 国产午夜精品久久久久久一区二区三区| 嫩草影院精品99| 免费在线观看成人毛片| 九草在线视频观看| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 国产精品一区www在线观看| 中文字幕久久专区| 国产黄色免费在线视频| 嫩草影院新地址| 女的被弄到高潮叫床怎么办| 一个人看的www免费观看视频| 日本午夜av视频| 丝袜美腿在线中文| 中文在线观看免费www的网站| 美女脱内裤让男人舔精品视频| 亚洲av.av天堂| 欧美激情在线99| 国产片特级美女逼逼视频| 国产欧美日韩精品一区二区| 国产精品综合久久久久久久免费| 国产一区二区亚洲精品在线观看| 午夜激情欧美在线| 99久久九九国产精品国产免费| 亚洲av成人精品一二三区| 亚洲国产最新在线播放| 亚洲三级黄色毛片| 国产亚洲5aaaaa淫片| 免费看美女性在线毛片视频| 亚洲精品中文字幕在线视频 | 搡老乐熟女国产| 成年免费大片在线观看| 国产白丝娇喘喷水9色精品| 婷婷六月久久综合丁香| 在线 av 中文字幕| 一级毛片aaaaaa免费看小| 国产乱人视频| av在线播放精品| 中文字幕免费在线视频6| 国产白丝娇喘喷水9色精品| 高清日韩中文字幕在线| 国产美女午夜福利| 伊人久久精品亚洲午夜| 亚洲欧美日韩无卡精品| 综合色av麻豆| 亚洲高清免费不卡视频| 1000部很黄的大片| 26uuu在线亚洲综合色| 日本av手机在线免费观看| 亚洲最大成人手机在线| 国产色爽女视频免费观看| 黄色日韩在线| 日韩中字成人| 欧美另类一区| 国产免费视频播放在线视频 | 国产黄片美女视频| 国产免费一级a男人的天堂| 亚洲熟女精品中文字幕| 亚洲伊人久久精品综合| 亚洲美女视频黄频| 日韩不卡一区二区三区视频在线| 国产一区二区在线观看日韩| 国产精品一区二区三区四区久久| 女人十人毛片免费观看3o分钟| 精品久久久久久久末码| 97在线视频观看| 男女视频在线观看网站免费| 久久人人爽人人片av| 亚洲图色成人| 国产又色又爽无遮挡免| 成人高潮视频无遮挡免费网站| 夜夜看夜夜爽夜夜摸| 久久久久精品久久久久真实原创| 欧美zozozo另类| 成人av在线播放网站| 亚洲精品国产av蜜桃| 人体艺术视频欧美日本| 噜噜噜噜噜久久久久久91| 韩国高清视频一区二区三区| 插逼视频在线观看| 一级二级三级毛片免费看| 99热这里只有精品一区| 欧美精品一区二区大全| 两个人视频免费观看高清| 精品亚洲乱码少妇综合久久| 午夜福利高清视频| 色播亚洲综合网| 国产一区有黄有色的免费视频 | 亚洲va在线va天堂va国产| 日韩视频在线欧美| 久久精品久久久久久噜噜老黄| 嫩草影院入口| 欧美潮喷喷水| 街头女战士在线观看网站| av在线播放精品| 日韩欧美国产在线观看| 亚洲精品久久久久久婷婷小说| 免费大片18禁| 99热这里只有是精品50| 亚洲熟女精品中文字幕| 亚洲精品日本国产第一区| 国产伦精品一区二区三区四那| 国产三级在线视频| 性色avwww在线观看| 成人一区二区视频在线观看| 久久久久精品久久久久真实原创| 非洲黑人性xxxx精品又粗又长| 国产伦一二天堂av在线观看| 亚洲美女视频黄频| 久久久久性生活片| 国产精品久久久久久久电影| 美女xxoo啪啪120秒动态图| 亚洲av不卡在线观看| 插逼视频在线观看| 欧美一区二区亚洲| 十八禁国产超污无遮挡网站| 国产精品无大码| 女人十人毛片免费观看3o分钟| 亚洲在线观看片| 黄片无遮挡物在线观看| 大香蕉97超碰在线| 日日摸夜夜添夜夜添av毛片| 日韩制服骚丝袜av| 久久人人爽人人片av| 亚洲av二区三区四区| 亚洲18禁久久av| 日韩一区二区三区影片| 亚洲av二区三区四区| 亚洲精品色激情综合| 人妻系列 视频| 看十八女毛片水多多多| 日韩av免费高清视频| 成人鲁丝片一二三区免费| 国产精品一区二区三区四区免费观看| 一级片'在线观看视频| 三级国产精品片| 成年版毛片免费区| 青春草亚洲视频在线观看| 蜜桃久久精品国产亚洲av| 午夜福利高清视频| 久久久久九九精品影院| 内射极品少妇av片p| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 中文字幕制服av| 亚洲欧美一区二区三区黑人 | 成人亚洲精品一区在线观看 | 日韩一区二区视频免费看| 久久久久久九九精品二区国产| 日本爱情动作片www.在线观看| 精品久久久噜噜| 五月伊人婷婷丁香| 春色校园在线视频观看| 免费大片黄手机在线观看| 777米奇影视久久| 欧美成人精品欧美一级黄| 日韩欧美 国产精品| 欧美zozozo另类| 国产激情偷乱视频一区二区| 七月丁香在线播放| 狠狠精品人妻久久久久久综合| 国产爱豆传媒在线观看| 欧美xxxx黑人xx丫x性爽| 国产精品不卡视频一区二区| 联通29元200g的流量卡| 欧美日韩精品成人综合77777| 久久久色成人| 色网站视频免费| 美女xxoo啪啪120秒动态图| 国产一区有黄有色的免费视频 | 在线 av 中文字幕| 国产午夜精品一二区理论片| 国产精品国产三级专区第一集| 欧美一区二区亚洲| 美女cb高潮喷水在线观看| 99久久精品一区二区三区| 黄片无遮挡物在线观看| 亚洲内射少妇av| 午夜精品在线福利| 日本一本二区三区精品| 亚洲成人av在线免费| 亚洲熟女精品中文字幕| 淫秽高清视频在线观看| 国内精品宾馆在线| 国产色爽女视频免费观看| 欧美日韩一区二区视频在线观看视频在线 | 亚洲av电影在线观看一区二区三区 | 亚洲aⅴ乱码一区二区在线播放| 韩国高清视频一区二区三区| 91精品一卡2卡3卡4卡| 亚洲精品久久久久久婷婷小说| 日日干狠狠操夜夜爽| 高清在线视频一区二区三区| 波多野结衣巨乳人妻| 国产精品嫩草影院av在线观看| 非洲黑人性xxxx精品又粗又长| 六月丁香七月| 色尼玛亚洲综合影院| av网站免费在线观看视频 | 一本久久精品| 国产色爽女视频免费观看| 国产伦一二天堂av在线观看| 成人高潮视频无遮挡免费网站| 亚洲色图av天堂| 亚洲欧美日韩无卡精品| 高清视频免费观看一区二区 | 特大巨黑吊av在线直播| 亚洲,欧美,日韩| 精品人妻视频免费看| 久久6这里有精品| 婷婷色av中文字幕| 欧美+日韩+精品| 两个人的视频大全免费| 亚洲国产欧美人成| 非洲黑人性xxxx精品又粗又长| 日韩电影二区| 国产免费一级a男人的天堂| 久久久精品94久久精品| 欧美成人精品欧美一级黄| 亚洲经典国产精华液单| 有码 亚洲区| 亚洲成人一二三区av| 欧美97在线视频| 美女主播在线视频| 97热精品久久久久久| 国产在视频线在精品| 中文字幕av成人在线电影| 亚洲精品影视一区二区三区av| 久久久精品免费免费高清| 亚洲欧美成人综合另类久久久| 熟女人妻精品中文字幕| 日日摸夜夜添夜夜添av毛片| 日本午夜av视频| av国产久精品久网站免费入址| 亚洲图色成人| 国产熟女欧美一区二区| 亚洲av男天堂| 国产精品久久久久久av不卡| 午夜久久久久精精品| 国产成人精品久久久久久| xxx大片免费视频| 18禁裸乳无遮挡免费网站照片| 午夜福利成人在线免费观看| 麻豆成人av视频| 日韩中字成人| 97热精品久久久久久| 亚洲av电影不卡..在线观看| 伊人久久精品亚洲午夜| 我的女老师完整版在线观看| 国产淫片久久久久久久久| 天天一区二区日本电影三级| 久久久久久久久大av| 女的被弄到高潮叫床怎么办| 26uuu在线亚洲综合色| 超碰97精品在线观看| 汤姆久久久久久久影院中文字幕 | 波野结衣二区三区在线| 国产成人a∨麻豆精品| 国内精品一区二区在线观看| 91在线精品国自产拍蜜月| 伦精品一区二区三区| 91久久精品国产一区二区三区| 日韩一区二区视频免费看| 国产亚洲91精品色在线| 精品国内亚洲2022精品成人| 日本猛色少妇xxxxx猛交久久| 夜夜爽夜夜爽视频| 国产黄a三级三级三级人| 日韩视频在线欧美| 麻豆国产97在线/欧美| 大又大粗又爽又黄少妇毛片口| 亚洲伊人久久精品综合| 在线观看人妻少妇| xxx大片免费视频| 久久久久久久亚洲中文字幕| 又粗又硬又长又爽又黄的视频| 国产大屁股一区二区在线视频| 婷婷六月久久综合丁香| 中文字幕人妻熟人妻熟丝袜美| 久久久久精品久久久久真实原创| 99久久人妻综合| 最新中文字幕久久久久| 亚洲美女搞黄在线观看| 国产精品久久久久久精品电影| 亚洲av在线观看美女高潮| 日本午夜av视频| 99久国产av精品| 亚洲自拍偷在线| 国产91av在线免费观看| 久久99热这里只有精品18| 99热这里只有精品一区| 99热网站在线观看| 国产成人a区在线观看| 国产 亚洲一区二区三区 | 午夜激情欧美在线| av在线观看视频网站免费| 国产乱来视频区| 人人妻人人澡欧美一区二区| 如何舔出高潮| 日韩中字成人| 久久久久久久久久久丰满| 国内揄拍国产精品人妻在线| 色尼玛亚洲综合影院| 亚洲综合色惰| 男女那种视频在线观看| 有码 亚洲区| 午夜视频国产福利| 中国国产av一级| 国产亚洲精品av在线| 美女xxoo啪啪120秒动态图| 欧美+日韩+精品| 最近中文字幕高清免费大全6| 亚洲最大成人中文| 性插视频无遮挡在线免费观看| 一个人看的www免费观看视频| 18禁在线无遮挡免费观看视频| 欧美日韩综合久久久久久| 午夜免费激情av| 国产熟女欧美一区二区| 在线免费十八禁| 91午夜精品亚洲一区二区三区| 免费黄色在线免费观看| 亚洲成人精品中文字幕电影| 国产91av在线免费观看| 高清日韩中文字幕在线| 日韩视频在线欧美| 狂野欧美激情性xxxx在线观看| 亚洲国产日韩欧美精品在线观看| 天美传媒精品一区二区| 人妻一区二区av| 日日干狠狠操夜夜爽| 国产白丝娇喘喷水9色精品| 69av精品久久久久久| 看免费成人av毛片| 最后的刺客免费高清国语| 最近中文字幕2019免费版| 午夜免费激情av| 日本黄大片高清| 成年人午夜在线观看视频 | 亚洲精品国产av成人精品| 国产午夜福利久久久久久| 国产精品久久久久久精品电影小说 | av线在线观看网站| 国产精品一及| 一级毛片aaaaaa免费看小| 淫秽高清视频在线观看| 日韩,欧美,国产一区二区三区| 色播亚洲综合网| 国产av码专区亚洲av| 亚洲精品日本国产第一区| 亚洲精品自拍成人| 欧美丝袜亚洲另类| 免费观看a级毛片全部| 成年av动漫网址| 免费电影在线观看免费观看| 久久久久久久亚洲中文字幕| 91久久精品国产一区二区三区| 伦精品一区二区三区| 亚洲国产精品成人综合色| 大陆偷拍与自拍| 久久久色成人| 免费看a级黄色片| 久久久久久久大尺度免费视频| 久久久成人免费电影| 精品久久久噜噜| 91久久精品国产一区二区三区| 婷婷色综合www| 可以在线观看毛片的网站| av一本久久久久| 欧美激情国产日韩精品一区| 一区二区三区免费毛片| 两个人的视频大全免费| 欧美丝袜亚洲另类| 婷婷六月久久综合丁香| 国产淫语在线视频| 亚洲av电影在线观看一区二区三区 | 女人久久www免费人成看片| 插阴视频在线观看视频| 在线观看av片永久免费下载| 91精品国产九色| 日日撸夜夜添| 久久久精品免费免费高清| 一个人免费在线观看电影| av福利片在线观看| 久久久久网色| 91aial.com中文字幕在线观看| 高清毛片免费看| 亚洲国产欧美在线一区| 欧美高清成人免费视频www| 一区二区三区四区激情视频| 肉色欧美久久久久久久蜜桃 | 亚洲欧美成人精品一区二区| 日韩成人av中文字幕在线观看| 伦理电影大哥的女人| 毛片女人毛片| 国产精品福利在线免费观看| 尤物成人国产欧美一区二区三区| 亚洲国产欧美人成| 岛国毛片在线播放| 在线 av 中文字幕| 精品人妻视频免费看| 精品久久久久久久久久久久久| 日本猛色少妇xxxxx猛交久久| 国产午夜精品论理片| 美女内射精品一级片tv| 午夜福利网站1000一区二区三区| 成人二区视频| 免费不卡的大黄色大毛片视频在线观看 | 亚洲欧洲国产日韩| 国产一区有黄有色的免费视频 | 欧美97在线视频| 美女xxoo啪啪120秒动态图| .国产精品久久| 成人性生交大片免费视频hd| 国产 一区精品| 中文字幕人妻熟人妻熟丝袜美| 男女边吃奶边做爰视频| 国产成人精品福利久久| 在现免费观看毛片| 亚洲欧美日韩无卡精品| 日本一本二区三区精品| 一级毛片久久久久久久久女| 国产精品久久久久久久电影| 国产精品一二三区在线看| 日本wwww免费看| 国产欧美日韩精品一区二区| 女人十人毛片免费观看3o分钟| 寂寞人妻少妇视频99o| 美女高潮的动态| 日本wwww免费看| 日韩一区二区视频免费看| 国产黄片视频在线免费观看| 高清午夜精品一区二区三区| 亚洲精品第二区| 亚洲av成人精品一二三区| 可以在线观看毛片的网站| 免费观看性生交大片5| 国产熟女欧美一区二区| 久久99热6这里只有精品| 美女国产视频在线观看| 波多野结衣巨乳人妻| 少妇猛男粗大的猛烈进出视频 | 九色成人免费人妻av| 亚洲欧美日韩东京热| 亚洲最大成人手机在线| 国产真实伦视频高清在线观看| 乱码一卡2卡4卡精品| 我要看日韩黄色一级片| 最近中文字幕2019免费版| 少妇熟女欧美另类| 国产一区二区在线观看日韩| 啦啦啦韩国在线观看视频| 国产av国产精品国产| 边亲边吃奶的免费视频| 欧美成人精品欧美一级黄| 中文精品一卡2卡3卡4更新| 熟妇人妻久久中文字幕3abv| 亚洲欧美清纯卡通| 亚洲精品,欧美精品| 高清在线视频一区二区三区| 我要看日韩黄色一级片| 插逼视频在线观看| 啦啦啦啦在线视频资源| av又黄又爽大尺度在线免费看| 亚洲在久久综合| 日韩亚洲欧美综合| 少妇被粗大猛烈的视频| 日韩欧美一区视频在线观看 | 国产成人精品久久久久久| 成人二区视频| 天堂√8在线中文| 国产一区二区三区综合在线观看 | 亚洲图色成人| 国产高清国产精品国产三级 | 国产成人精品福利久久| 熟女人妻精品中文字幕| 精品久久久久久电影网| 久久久欧美国产精品| 午夜老司机福利剧场| 日本与韩国留学比较| 国产色爽女视频免费观看| 天美传媒精品一区二区| 日韩欧美 国产精品| 亚洲久久久久久中文字幕| 床上黄色一级片| 99久久九九国产精品国产免费| 亚洲欧美一区二区三区国产| 免费av毛片视频| 亚洲性久久影院| 国产精品嫩草影院av在线观看| 精品久久久久久久久亚洲| 99久久精品一区二区三区| 午夜福利在线观看吧| 只有这里有精品99| 免费黄频网站在线观看国产| 亚洲av一区综合| 永久网站在线| 亚洲精品国产av蜜桃| 精品一区在线观看国产| 三级男女做爰猛烈吃奶摸视频| 国产亚洲一区二区精品| 美女国产视频在线观看| 高清视频免费观看一区二区 | 精品人妻视频免费看| 日韩电影二区| 国产精品久久视频播放| 亚洲精品,欧美精品| 午夜精品一区二区三区免费看| 丝袜美腿在线中文| 午夜福利在线在线| 亚洲av成人精品一区久久| 69av精品久久久久久| 婷婷色麻豆天堂久久| 乱码一卡2卡4卡精品| 国产黄片视频在线免费观看| 国产永久视频网站| 中文在线观看免费www的网站| 国产黄色小视频在线观看| 午夜福利高清视频| 天堂影院成人在线观看| 搡老妇女老女人老熟妇| 久久久亚洲精品成人影院| 国产综合懂色| 免费观看性生交大片5| 亚洲精品自拍成人| 国产精品麻豆人妻色哟哟久久 | 午夜福利网站1000一区二区三区| 日本三级黄在线观看| 亚洲av电影在线观看一区二区三区 | 婷婷色麻豆天堂久久| 亚洲人成网站高清观看| 少妇猛男粗大的猛烈进出视频 | 观看美女的网站| 成人毛片a级毛片在线播放| av黄色大香蕉| 91在线精品国自产拍蜜月| 婷婷色麻豆天堂久久| 黄色欧美视频在线观看| 国产精品久久视频播放|