• <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
    一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 乱人视频在线观看| 天天躁日日操中文字幕| 日韩制服骚丝袜av| 久久6这里有精品| 97热精品久久久久久| 国产亚洲精品久久久com| 97精品久久久久久久久久精品| 狂野欧美白嫩少妇大欣赏| 成人亚洲精品av一区二区| 老女人水多毛片| 免费观看精品视频网站| 少妇高潮的动态图| 亚洲激情五月婷婷啪啪| 亚洲欧洲国产日韩| 一级a做视频免费观看| 婷婷色综合大香蕉| 2018国产大陆天天弄谢| 大片免费播放器 马上看| 亚洲欧美清纯卡通| 女的被弄到高潮叫床怎么办| 日韩电影二区| 色综合色国产| 午夜福利在线在线| 婷婷色综合大香蕉| 一级a做视频免费观看| 女人十人毛片免费观看3o分钟| 高清欧美精品videossex| av线在线观看网站| 男人狂女人下面高潮的视频| 亚洲美女搞黄在线观看| 免费无遮挡裸体视频| 日本与韩国留学比较| 激情五月婷婷亚洲| 麻豆精品久久久久久蜜桃| 午夜视频国产福利| 成人毛片60女人毛片免费| 97超视频在线观看视频| 成年人午夜在线观看视频 | 欧美精品一区二区大全| a级毛片免费高清观看在线播放| 好男人在线观看高清免费视频| 国产大屁股一区二区在线视频| 成人亚洲精品一区在线观看 | 国产精品一区二区三区四区免费观看| 日韩精品有码人妻一区| 嫩草影院入口| 十八禁国产超污无遮挡网站| 一级毛片黄色毛片免费观看视频| 国产一区亚洲一区在线观看| 成人性生交大片免费视频hd| 赤兔流量卡办理| 免费观看av网站的网址| 国产成人91sexporn| 性插视频无遮挡在线免费观看| 亚洲av电影不卡..在线观看| 在线a可以看的网站| 男女下面进入的视频免费午夜| 一夜夜www| 又爽又黄无遮挡网站| 91狼人影院| 亚洲真实伦在线观看| 久久久久久国产a免费观看| 久久久久网色| 午夜免费男女啪啪视频观看| 免费观看a级毛片全部| 国产高清有码在线观看视频| 99久久人妻综合| 亚洲av二区三区四区| 又大又黄又爽视频免费| 能在线免费看毛片的网站| 亚洲av在线观看美女高潮| 亚洲成色77777| 久久这里只有精品中国| 美女cb高潮喷水在线观看| 国产 一区 欧美 日韩| 大陆偷拍与自拍| 亚洲国产精品专区欧美| 97热精品久久久久久| 老女人水多毛片| 午夜福利在线观看免费完整高清在| 99久久中文字幕三级久久日本| 日韩欧美精品免费久久| 国产综合懂色| 午夜福利高清视频| 国产精品精品国产色婷婷| 99热这里只有是精品在线观看| 久久亚洲国产成人精品v| 大话2 男鬼变身卡| 久久久久久久午夜电影| 国产精品伦人一区二区| 波野结衣二区三区在线| 国产精品一区二区三区四区久久| 亚洲欧美一区二区三区国产| 国产伦理片在线播放av一区| 黄片wwwwww| 69av精品久久久久久| 国产中年淑女户外野战色| 国产在线男女| 亚洲成人中文字幕在线播放| 欧美日韩国产mv在线观看视频 | 又爽又黄无遮挡网站| 黄色配什么色好看| 免费不卡的大黄色大毛片视频在线观看 | 亚洲天堂国产精品一区在线| 91久久精品电影网| 色哟哟·www| 国产麻豆成人av免费视频| 亚洲人成网站在线观看播放| 亚洲成人中文字幕在线播放| 六月丁香七月| videos熟女内射| 国产午夜福利久久久久久| 又粗又硬又长又爽又黄的视频| 亚洲欧美中文字幕日韩二区| 久久久久久久久久成人| 亚洲综合色惰| 最近的中文字幕免费完整| 看黄色毛片网站| 久久99蜜桃精品久久| 国产黄片视频在线免费观看| 观看免费一级毛片| 日日啪夜夜撸| 国产精品久久久久久av不卡| 午夜免费观看性视频| av在线观看视频网站免费| 超碰av人人做人人爽久久| 婷婷色av中文字幕| 国产av码专区亚洲av| 国产精品一区二区三区四区久久| 久久久久性生活片| 国产精品一区二区在线观看99 | 久久精品夜色国产| 岛国毛片在线播放| 日韩大片免费观看网站| 国产麻豆成人av免费视频| 国产精品99久久久久久久久| 国产精品一及| 少妇熟女欧美另类| 色综合色国产| 久久精品综合一区二区三区| 超碰97精品在线观看| 国产成人精品福利久久| 又粗又硬又长又爽又黄的视频| 秋霞在线观看毛片| 国产精品1区2区在线观看.| 丰满人妻一区二区三区视频av| 亚洲精品日本国产第一区| 尾随美女入室| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 91精品国产九色| av福利片在线观看| 夫妻午夜视频| 亚洲美女搞黄在线观看| 日日啪夜夜撸| 欧美日韩国产mv在线观看视频 | 国产高清三级在线| 2021天堂中文幕一二区在线观| 国产av国产精品国产| 又爽又黄a免费视频| 久久久久久九九精品二区国产| 一个人免费在线观看电影| 国产久久久一区二区三区| 免费观看av网站的网址| 啦啦啦中文免费视频观看日本| 日日啪夜夜爽| 蜜臀久久99精品久久宅男| 久久97久久精品| 老女人水多毛片| freevideosex欧美| 插阴视频在线观看视频| 亚洲无线观看免费| 久久久久久久久久黄片| 欧美成人精品欧美一级黄| 人体艺术视频欧美日本| 床上黄色一级片| 成人鲁丝片一二三区免费| 亚洲av二区三区四区| 精品久久久久久久久av| 高清毛片免费看| 身体一侧抽搐| 六月丁香七月| 国产伦一二天堂av在线观看| 国产精品人妻久久久影院| 免费在线观看成人毛片| 国内精品一区二区在线观看| av一本久久久久| 中文字幕制服av| 永久网站在线| 久久6这里有精品| 夜夜爽夜夜爽视频| 街头女战士在线观看网站| 国产精品久久久久久av不卡| av在线亚洲专区| 又大又黄又爽视频免费| 午夜爱爱视频在线播放| 欧美最新免费一区二区三区| av在线天堂中文字幕| 亚洲人成网站在线播| 身体一侧抽搐| 国产免费视频播放在线视频 | 在线观看美女被高潮喷水网站| 直男gayav资源| 91久久精品电影网| 国语对白做爰xxxⅹ性视频网站| 看黄色毛片网站| 久久久成人免费电影| 日本一二三区视频观看| 国产伦一二天堂av在线观看| 亚洲内射少妇av| 欧美成人精品欧美一级黄| 国产免费一级a男人的天堂| 91在线精品国自产拍蜜月| 又黄又爽又刺激的免费视频.| 日韩一本色道免费dvd| 久久精品久久精品一区二区三区| 啦啦啦韩国在线观看视频| 中文欧美无线码| 亚洲va在线va天堂va国产| 中文字幕av在线有码专区| 看非洲黑人一级黄片| 成人av在线播放网站| 日本熟妇午夜| 淫秽高清视频在线观看| 国产日韩欧美在线精品| 黄片wwwwww| 水蜜桃什么品种好| 高清午夜精品一区二区三区| 国产黄片视频在线免费观看| 亚洲精华国产精华液的使用体验| 国产一区亚洲一区在线观看| 久久精品国产鲁丝片午夜精品| freevideosex欧美| 六月丁香七月| 人人妻人人看人人澡| 免费av毛片视频| 99热全是精品| 天堂中文最新版在线下载 | 天天躁日日操中文字幕| 国产探花极品一区二区| 夫妻午夜视频| 国产色婷婷99| 亚洲伊人久久精品综合| 麻豆av噜噜一区二区三区| 日本黄大片高清| 69av精品久久久久久| 亚洲人成网站在线观看播放| 国产国拍精品亚洲av在线观看| 晚上一个人看的免费电影| 国产女主播在线喷水免费视频网站 | av专区在线播放| 九九久久精品国产亚洲av麻豆| 麻豆乱淫一区二区| 寂寞人妻少妇视频99o| 亚洲aⅴ乱码一区二区在线播放| 国产伦精品一区二区三区四那| 久久久久精品久久久久真实原创| 国产精品国产三级国产专区5o| 永久网站在线| 久久久久九九精品影院| 少妇高潮的动态图| 国产黄片视频在线免费观看| 亚洲性久久影院| xxx大片免费视频| 欧美极品一区二区三区四区| 亚洲成人精品中文字幕电影| 大片免费播放器 马上看| 亚洲在线自拍视频| 三级经典国产精品| 亚洲国产高清在线一区二区三| 亚洲欧美一区二区三区黑人 | 久久精品人妻少妇| 嫩草影院新地址| 精品亚洲乱码少妇综合久久| 纵有疾风起免费观看全集完整版 | 国产视频内射| 99re6热这里在线精品视频| 哪个播放器可以免费观看大片| 卡戴珊不雅视频在线播放| 精品人妻一区二区三区麻豆| 国产高潮美女av| 国产视频首页在线观看| 亚洲成人一二三区av| 夫妻性生交免费视频一级片| 国产精品一区二区三区四区久久| 男插女下体视频免费在线播放| 女人被狂操c到高潮| www.av在线官网国产| 天天躁夜夜躁狠狠久久av| 亚洲内射少妇av| 女人被狂操c到高潮| 久久久久久久久久人人人人人人| 国产男人的电影天堂91| 久久久久精品性色| 大又大粗又爽又黄少妇毛片口| 亚洲精品aⅴ在线观看| 一级a做视频免费观看| 国产亚洲一区二区精品| 白带黄色成豆腐渣| 丰满人妻一区二区三区视频av| 免费黄色在线免费观看| 日韩,欧美,国产一区二区三区| 男女下面进入的视频免费午夜| 一个人免费在线观看电影| 久久久久性生活片| 九草在线视频观看| 99热网站在线观看| 亚洲四区av| 国产午夜精品一二区理论片| av免费观看日本| 我要看日韩黄色一级片| 欧美极品一区二区三区四区| 欧美区成人在线视频| 久久久久久久久久黄片| 听说在线观看完整版免费高清| 特大巨黑吊av在线直播| 亚洲色图av天堂| 亚洲怡红院男人天堂| 午夜福利视频精品| 尤物成人国产欧美一区二区三区| 国产成人freesex在线| 亚洲欧洲国产日韩| 一级毛片我不卡| 午夜久久久久精精品| 国产熟女欧美一区二区| 777米奇影视久久| 日韩 亚洲 欧美在线| 91精品一卡2卡3卡4卡| 日本与韩国留学比较| 一区二区三区免费毛片| 国产高清三级在线| 亚洲欧美精品自产自拍| 久久精品久久久久久噜噜老黄| 日本爱情动作片www.在线观看| 免费黄色在线免费观看| 99re6热这里在线精品视频| 又大又黄又爽视频免费| 春色校园在线视频观看| 久久久久免费精品人妻一区二区| 最新中文字幕久久久久| 国产在视频线精品| 国产激情偷乱视频一区二区| 精华霜和精华液先用哪个| 日本欧美国产在线视频| 中文字幕亚洲精品专区| 国产午夜福利久久久久久| 亚洲精品国产成人久久av| 九九爱精品视频在线观看| 91久久精品电影网| 两个人视频免费观看高清| 老师上课跳d突然被开到最大视频| 久久热精品热| 国产精品久久视频播放| 亚洲av中文字字幕乱码综合| 精品久久久久久久久亚洲| 好男人在线观看高清免费视频| 日本熟妇午夜| 一边亲一边摸免费视频| 亚洲国产成人一精品久久久| 国产免费福利视频在线观看| 国产精品女同一区二区软件| 国产精品伦人一区二区| 美女脱内裤让男人舔精品视频| 2018国产大陆天天弄谢| 成人亚洲精品av一区二区| 1000部很黄的大片| 亚洲精品久久午夜乱码| 联通29元200g的流量卡| 黄片wwwwww| 日韩 亚洲 欧美在线| 国产精品一区二区在线观看99 | 国产淫片久久久久久久久| 看十八女毛片水多多多| 国产精品av视频在线免费观看| 最近手机中文字幕大全| 国产精品99久久久久久久久| 亚洲18禁久久av| 国产成人精品一,二区| xxx大片免费视频| 国产综合懂色| 亚洲国产精品sss在线观看| 久久午夜福利片| 国产成人午夜福利电影在线观看| 婷婷六月久久综合丁香| 亚洲精品成人av观看孕妇| 国产av码专区亚洲av| 嫩草影院新地址| 午夜免费观看性视频| 免费电影在线观看免费观看| 美女高潮的动态| 熟女电影av网| 少妇裸体淫交视频免费看高清| 乱码一卡2卡4卡精品| 美女大奶头视频| 国产精品美女特级片免费视频播放器| 欧美最新免费一区二区三区| 18禁在线播放成人免费| 国产免费又黄又爽又色| 免费播放大片免费观看视频在线观看| 麻豆成人午夜福利视频| 成人亚洲精品一区在线观看 | 啦啦啦韩国在线观看视频| 国产伦精品一区二区三区视频9| 色视频www国产| 麻豆久久精品国产亚洲av| 国精品久久久久久国模美| 亚洲在线自拍视频| 3wmmmm亚洲av在线观看| 男人爽女人下面视频在线观看| 久久久久免费精品人妻一区二区| 久久久久久久久大av| 建设人人有责人人尽责人人享有的 | 成人亚洲欧美一区二区av| 国产精品三级大全| 日本三级黄在线观看| 日产精品乱码卡一卡2卡三| 久久久久九九精品影院| 日韩一区二区视频免费看| 免费播放大片免费观看视频在线观看| 简卡轻食公司| 国产精品一区二区三区四区免费观看| 黑人高潮一二区| 天堂俺去俺来也www色官网 | 哪个播放器可以免费观看大片| 久久久久精品性色| 亚洲av二区三区四区| 久久综合国产亚洲精品| 黄色欧美视频在线观看| 精品国产三级普通话版| 国产单亲对白刺激| 汤姆久久久久久久影院中文字幕 | 精品国内亚洲2022精品成人| 国产伦精品一区二区三区视频9| 又爽又黄无遮挡网站| 亚洲精品日韩在线中文字幕| 亚洲精品国产av成人精品| 久久久久久久久久成人| 亚洲国产欧美在线一区| 亚洲不卡免费看| 免费看a级黄色片| 国产淫片久久久久久久久| 美女脱内裤让男人舔精品视频| 中文字幕久久专区| 亚洲美女视频黄频| 极品少妇高潮喷水抽搐| 国产国拍精品亚洲av在线观看| kizo精华| 国产免费视频播放在线视频 | 一级黄片播放器| 街头女战士在线观看网站| 狠狠精品人妻久久久久久综合| 七月丁香在线播放| 日韩欧美一区视频在线观看 | 成人亚洲欧美一区二区av| 午夜精品在线福利| 欧美日韩一区二区视频在线观看视频在线 | 成人高潮视频无遮挡免费网站| 日韩三级伦理在线观看| 日本三级黄在线观看| 黄片wwwwww| 男人狂女人下面高潮的视频| 国产精品国产三级专区第一集| 乱系列少妇在线播放| 欧美日韩一区二区视频在线观看视频在线 | 天堂中文最新版在线下载 | 亚洲最大成人av| 大又大粗又爽又黄少妇毛片口| 美女黄网站色视频| 亚洲精品一区蜜桃| eeuss影院久久| 男人狂女人下面高潮的视频| 汤姆久久久久久久影院中文字幕 | 午夜视频国产福利| 免费观看性生交大片5| 最近中文字幕2019免费版| 人妻少妇偷人精品九色| 日本午夜av视频| 国产亚洲av片在线观看秒播厂 | 99热这里只有是精品50| 我要看日韩黄色一级片| .国产精品久久| 国产精品久久久久久精品电影小说 | 尾随美女入室| 欧美成人一区二区免费高清观看| 人妻夜夜爽99麻豆av| 美女高潮的动态| 精品一区二区免费观看| 欧美潮喷喷水| 成人午夜高清在线视频| 欧美三级亚洲精品| 亚洲国产精品成人久久小说| 麻豆久久精品国产亚洲av| 国产精品嫩草影院av在线观看| 免费无遮挡裸体视频| 两个人视频免费观看高清| 欧美人与善性xxx| 久久久精品欧美日韩精品| 中文字幕av在线有码专区| 床上黄色一级片| 美女被艹到高潮喷水动态| 国产男人的电影天堂91| 黄色欧美视频在线观看| 国产精品人妻久久久影院| 亚洲在线自拍视频| 亚州av有码| 亚洲在线自拍视频| 五月玫瑰六月丁香| 国产色婷婷99| 国产av不卡久久| 欧美潮喷喷水| 麻豆国产97在线/欧美| 免费观看精品视频网站| 国产国拍精品亚洲av在线观看| 日韩电影二区| 国产高清有码在线观看视频| av在线蜜桃| 91精品国产九色| 色综合亚洲欧美另类图片| 国产亚洲av片在线观看秒播厂 | 性色avwww在线观看| 欧美三级亚洲精品| 久久国内精品自在自线图片| 大香蕉97超碰在线| 亚洲成色77777| 欧美成人一区二区免费高清观看| av在线亚洲专区| 亚洲精品乱久久久久久| 十八禁国产超污无遮挡网站| 亚洲怡红院男人天堂| 国产精品一二三区在线看| av在线蜜桃| 人妻少妇偷人精品九色| ponron亚洲| 亚洲欧美中文字幕日韩二区| 永久免费av网站大全| 国产人妻一区二区三区在| 边亲边吃奶的免费视频| 能在线免费观看的黄片| 亚洲欧美一区二区三区黑人 | 综合色丁香网| 午夜免费男女啪啪视频观看| 搡老乐熟女国产| 午夜免费男女啪啪视频观看| 最近视频中文字幕2019在线8| av在线亚洲专区| 最近中文字幕高清免费大全6| 色综合色国产| 国模一区二区三区四区视频| 日本免费在线观看一区| 在线 av 中文字幕| 日韩欧美 国产精品| 简卡轻食公司| 日日啪夜夜撸| 国产精品伦人一区二区| 久久精品久久久久久噜噜老黄| 亚洲精品乱码久久久v下载方式| 菩萨蛮人人尽说江南好唐韦庄| 午夜久久久久精精品| 五月玫瑰六月丁香| 欧美激情国产日韩精品一区| 99久久精品国产国产毛片| 哪个播放器可以免费观看大片| 日韩电影二区| 亚洲高清免费不卡视频| 亚洲精品视频女| 国产在线一区二区三区精| 激情 狠狠 欧美| 国产有黄有色有爽视频| 男人狂女人下面高潮的视频| 日韩av免费高清视频| 国产黄片美女视频| a级毛色黄片| 亚州av有码| 国内精品一区二区在线观看| 亚洲欧美一区二区三区国产| 成人国产麻豆网| 亚洲人成网站高清观看| 精品久久国产蜜桃| 中文资源天堂在线| 最近中文字幕高清免费大全6| 网址你懂的国产日韩在线| 春色校园在线视频观看| 久久久久久九九精品二区国产| 免费在线观看成人毛片| 精华霜和精华液先用哪个| 国产乱人偷精品视频| 欧美精品国产亚洲| 小蜜桃在线观看免费完整版高清| 观看美女的网站| 三级男女做爰猛烈吃奶摸视频| 老司机影院成人| 日产精品乱码卡一卡2卡三| 亚洲av不卡在线观看| 亚洲国产精品专区欧美| 国产淫语在线视频| 最近视频中文字幕2019在线8| 黄色一级大片看看| 毛片女人毛片| 亚洲精品,欧美精品| 夜夜爽夜夜爽视频| 天天躁日日操中文字幕| av播播在线观看一区| 啦啦啦韩国在线观看视频| 欧美成人一区二区免费高清观看| 91aial.com中文字幕在线观看| 啦啦啦韩国在线观看视频| 成人无遮挡网站| 91aial.com中文字幕在线观看| 可以在线观看毛片的网站| 亚洲婷婷狠狠爱综合网| 深夜a级毛片| 亚洲丝袜综合中文字幕| 18禁裸乳无遮挡免费网站照片| 五月伊人婷婷丁香| 亚洲av中文字字幕乱码综合|