SlideShare a Scribd company logo
Thi t k hư ng ñ i
     tư ng - S d ng
     UML (7)
     Nguy n Thanh Bình
     Khoa Công ngh Thông tin
     Trư ng ð i h c Bách khoa
     ð i h c ðà N ng




N i dung

    Khái ni m cơ b n hư ng ñ i tư ng
    Bi u ñ ca s d ng
    Thi t k c u trúc tĩnh
    Thi t k c u trúc ñ ng
    Sinh mã




2




                                       1
Hư ng ch c năng

      D a vào các ch c năng c a h th ng
        H th ng là t p h p các ch c năng

      Chia nh các ch c năng và làm m n d n
        H th ng g m các h th ng con
        Làm ch ñ ph c t p

      Các ch c năng trao ñ i v i nhau b ng
      truy n tham s ho c d li u (ch ng h n
      bi n toàn c c) dùng chung
  3




  Hư ng ch c năng

      Phân c p ch c năng

                         H th ng


         Ch c năng 1                    Ch c năng 2


Ch c năng 1.1   Ch c năng 1.2      Ch c năng 2.1      Ch c năng 2.2




  4




                                                                      2
Hư ng ch c năng

    Ưu ñi m
      Phân tích ñư c các ch c năng c a h th ng
      ðưa l i k t qu mong ñ i


    Như c ñi m
      Ch c năng     c u trúc
      Thay ñ i v ch c năng khó khăn thay ñ i c u trúc
      Tính m c a h th ng th p
      Khó tái s d ng
      Chi phí s a ch a l i l n


5




Hư ng ñ i tư ng

    L y ñ i tư ng làm trung tâm
    H th ng = t p h p các ñ i tư ng + quan
    h gi a các ñ i tư ng
    Các ñ i tư ng trao ñ i b ng thông ñi p
    (message)
      Không s d ng bi n toàn c c
    ðóng gói
    Th a k



6




                                                        3
Hư ng ñ i tư ng

    Phân bi t
      L p trình c u trúc
       • Thu t toán + c u trúc d li u = chương
         trình
      L p trình HðT
       • Σñ i tư ng = chương trình
       • ñ i tư ng = thu t toán + c u trúc d li u



7




Hư ng ñ i tư ng

    Ưu ñi m chính
      G n gũi v i th gi i th c
      Tái s d ng d dàng
      ðóng gói, che d u thông tin làm cho
      h th ng tin c y hơn
      Th a k làm gi m chi phí, h th ng có
      tính m cao hơn
      Xây d ng h th ng l n và ph c t p

8




                                                    4
ð i tư ng

     ð i tư ng (object) là khái ni m cho
     phép mô t các s v t/th c th trong
     th gi i th c
     Các ñ i tư ng duy trì các quan h
     gi a chúng
     Nguy n Văn A là m t ñ i tư ng



9




ð i tư ng

     Các tính ch t c a ñ i tư ng
       ð i tư ng = tr ng thái + hành vi +
       ñ nh danh
        • Tr ng thái là các ñ c tính c a ñ i tư ng
          t i m t th i ñi m
        • Hành vi th hi n các ch c năng c a ñ i
          tư ng
        • ð nh danh th hi n s t n t i duy nh t
          c a ñ i tư ng

10




                                                     5
ð i tư ng : tr ng thái

     Tr ng thái = t p h p các thu c tính
       M i thu c tính mô t m t ñ c tính
       T i m t th i ñi m c th , các thu c
       tính mang các giá tr trong mi n xác
       ñ nh
       Ví d
        • M t chi c xe máy: màu xanh, 110 cm3,
          dream, 12000km, ñ ng yên, …


11




ð i tư ng : hành vi

     Hành vi = t p h p các phương th c
       Phương th c: là m t thao tác ho c
       ñư c th c hi n b i chính nó, ho c
       th c hi n khi có yêu c u t môi
       trư ng (thông ñi p t ñ i tư ng khác)
       Hành vi ph thu c vào tr ng thái
       Ví d :
        • m t xe máy có các hành vi: kh i ñ ng,
          ch y, …
12




                                                  6
Giao ti p gi a các ñ i tư ng

     Các ñ i tư ng giao ti p v i nhau
       G i thông ñi p (message) cho nhau
                      Thông ñi p
       ð i tư ng A                    ð i tư ng B

       Các lo i thông ñi p
         •   hàm d ng (constructor)
         •   hàm h y (destructor)
         •   hàm ch n l a (get)
         •   hàm s a ñ i (set)
         •   các hàm ch c năng khác

13




ð i tư ng

     Gi a các ñ i tư ng có m i liên k t
     (link) v i nhau
     Ví d

     Nguy n Văn A      H c         ð i h c ðà N ng




14




                                                     7
L p

     L p là khái ni m dùng ñ mô t m t
     t p h p các ñ i tư ng có cùng m t
     c u trúc, cùng hành vi và có cùng
     nh ng m i quan h v i các ñ i tư ng
     khác
     L p = các thu c tính + các phương
     th c


15




L p
     L p là m t bư c tr u tư ng hóa
       Tìm ki m các ñi m gi ng nhau, b qua các
       ñi m khác nhau c a ñ i tư ng


                                            Person

                                            Name
                                             Age

                                         changeAge
       Tr u tư ng hóa làm gi m ñ ph c t p

16




                                                     8
L p

     Quan h gi a các l p: k t h p
     M t k t h p là m t t p h p các m i
     liên k t gi a các ñ i tư ng

                       h c
       Sinh viên                ð ih c




17




L p & ð i tư ng

     ð i tư ng là th hi n (instance) c a l p
     Giá tr là th hi n c a thu c tính
     Liên k t là th hi n c a k t h p
     L p                          ð i tư ng
     Thu c tính                   Giá tr
     K th p                       Liên k t




18




                                               9
Các tính ch t c a HðT

     Tính ñóng gói (encapsulation)
       d li u + x lý d li u = ñ i tư ng
       thu c tính + phương th c = l p
     Ưu ñi m
       H n ch nh hư ng khi có s thay ñ i c p
       nh t
       Ngăn c n s truy c p thông tin t bên ngoài
       Che d u thông tin


19




Các tính ch t c a HðT

     Tính th a k (inheritance)
       M t l p ñư c xây d ng t m t ho c nhi u
       l p khác b ng vi c chia s các thu c tính và
       phương th c
       L p con th a k các thu c tính và phương
       th c t l p cha
       T ng quát hóa/chuyên bi t hóa
        • T ng quát hóa (generalization): ñ t các tính ch t
          chung c a các l p khác nhau vào m t l p cha
        • Chuyên bi t hóa (specialization): t o ra m t l p
          con có các tính ch t riêng t l p cha
20




                                                              10
Các tính ch t c a HðT
     ðơn th a k : m t l p con ch th a k t m t l p cha duy
     nh t
                            XeÔtô




                                                Chuyên bi t hóa

                                                                  T ng quát hóa
                  XeKhách            XeT i
     L p tr u tư ng hay l p chung: XeÔtô
     L p c th hay l p chuyên bi t: XeKhách
     L p chuyên bi t có th thay th l p chung trong t t c
     các ng d ng. Ví d : Ôtô t i là m t ôtô.



21




Các tính ch t c a HðT

     ða th a k : m t l p con th a k t
     nhi u l p cha khác nhau

                            Person


           Personnel                     Student


      Reseacher         Teacher


                                      Phd candidate
22




                                                                                  11
Các tính ch t c a HðT

     ða th a k
       ð ng ñ tên các thu c tính
                 X                 Y
                 a                 a


                       Z
                     ac aX
                     ac aY
       ða th a k không ñư c ch p nh n b i m t
       s ngôn ng : Java

23




Các tính ch t c a HðT

     Ưu ñi m c a th a k
       Phân lo i các l p: các l p ñư c phân
       lo i, s p x p theo m t th b c ñ d
       qu n lí
       Xây d ng các l p: các l p con ñư c
       xây d ng t các l p cha
       Ti t ki m th i gian xây d ng, tránh
       l p l i thông tin

24




                                                12
Các tính ch t c a HðT
     Tính ña hình (polymorphism): c a phương th c, t c
     là kh năng các phương th c khác nhau ñư c th c
     hi n ñ tr l i cùng m t yêu c u

     M i l p con th a k ñ c t các phương th c t l p
     cha, và các phương th c này có th ñư c s a ñ i
     trong l p con ñ th c hi n các ch c năng riêng
     trong l p ñó

     M t phương th c (cùng m t tên phương th c) có
     nhi u d ng (ñ nh nghĩa) khác nhau trong các l p
     khác nhau

25




Các tính ch t c a HðT

     Ví d tính ña hình
                       ðaGiác


                      dienTich()




        HìnhVuông                  HìnhTamGiác


         dienTich()                 dienTich()



26




                                                         13
N i dung

     Khái ni m cơ b n hư ng ñ i tư ng
     Bi u ñ ca s d ng
     Thi t k c u trúc tĩnh
     Thi t k c u trúc ñ ng
     Sinh mã




27




Ca s d ng (Use case)

     Bư c ñ u tiên c a phân tích yêu c u
     là xác ñ nh các ca s d ng c a h
     th ng
     M t ca s d ng là m t tương tác
     gi a h th ng và môi trư ng
     T p h p các ca s d ng là mô t toàn
     b h th ng c n xây d ng


28




                                           14
Ca s d ng

     Ví d : phát tri n m t ph n m m th o
     văn b n
     Các ca s d ng có th :
       Nh p văn b n m i
       S a văn b n ñã t n t i
       T om cl c
       Chép ño n văn b n
       …

29




Ca s d ng

     M t ca s d ng tương ng v i m t ch c
     năng c a h th ng dư i góc nhìn c a
     ngư i s d ng
     M t ca s d ng có th l n ho c nh
     M t ca s d ng ch ra làm th nào m t m c
     tiêu c a ngư i s d ng ñư c th a mãn
     b i h th ng




30




                                              15
Ca s d ng
     C n phân bi t các m c tiêu c a ngư i s d ng và
     các tương tác c a h v i h th ng
        M c tiêu: cái mà ngư i s d ng mong ñ i
        Tương tác: k thu t cho phép ñáp ng m c tiêu
     Ví d
        M c tiêu: có ñư c m t văn b n trình bày ñ p
        Tương tác: ch n ñ nh d ng trang, ch n font ch , ñ nh
        nghĩa các ki u tiêu ñ (heading), …
     Th c t , chúng ta xác ñ nh các m c tiêu trư c, sau
     ñó ch n t p h p các tương tác ñáp ng các m c
     tiêu ñó


31




Ca s d ng
     Ví d : c n xây d ng m t h th ng ATM cho phép rút
     ti n
     Có th có vài tương tác chung trong m t k ch b n sau:
        ðưa th vào
        Nh p mã PIN
        Ch n s ti n rút
        Kh ng ñ nh s ti n rút
        L y th ra
        L y ti n
        L y phi u rút ti n
     Các tương tác trên có là các ca s d ng không ?

32




                                                               16
Ca s d ng
     Câu tr l i: không.
     T i sao ?
     Vì ch ng h n “Nh p mã PIN” không ñáp ng m t m c
     tiêu nào c a ngư i s d ng.
     M c tiêu c a ngư i s d ng là “Rút ti n”, v y ñó nên
     là m t ca s d ng.




33




Tác nhân (Actor)
     Tác nhân ñóng vai trò m t ngư i s d ng ho c m t
     th c th bên ngoài tương tác v i h th ng
     Ví d : C n phát tri n h th ng tính ti n siêu th
        Các tác nhân có th là: Khách hàng, Ngư i bán hàng,
        Ngư i qu n lý, Kho hàng
     C n phân bi t: tác nhân (actor) và ngư i s d ng
     (user)
        Nhi u ngư i s d ng có th tương ng m t tác nhân:
        nhi u ngư i bán hàng khác nhau ñóng cùng vai trò
        ñ i v i h th ng
        M t ngư i s d ng có th tương ng v i nhi u tác
        nhân khác nhau: cùng m t ngư i có th ñ ng th i
        ñóng hai vai trò là ngư i bán hàng và ngư i qu n lý
34




                                                              17
Tác nhân

     Tác nhân không nh t thi t luôn luôn là
     con ngư i
     Tác nhân có th là môi trư ng, h
     th ng khác, th c th bên ngoài tương
     tác v i h th ng
     Ví d
        Kho hàng là có th m t cơ s d li u


35




ð c t ca s d ng
     ð c t ñi n hình c a m t ca s d ng:
        Ca s d ng: tên ca s d ng thư ng b t ñ u b i m t
        ñ ng t
        Các tác nhân: danh sách các tác nhân liên quan
        Mô t : tóm t t các x lý c n th c hi n
     Ví d
        Ca s d ng: Mua hàng
        Các tác nhân: Khách hàng, Ngư i bán hàng
        Mô t : M t khách hàng sau khi ñã ch n các m t hàng,
        mang gi hàng ñ n qu y thu ti n. Ngư i bán hàng ghi nh n
        các m t hàng, thông báo t ng s ti n, thu ti n và tr ti n
        còn l i cho khách hàng. Khách hàng mang hàng ñi.



36




                                                                   18
ð c t ca s d ng
     ð c t ca s d ng có th thêm:
        Tham chi u (reference) ñ n m c liên quan trong ñ c t yêu c u
        ði u ki n trư c và ñi u ki n sau khi th c hi n ca s d ng
     Ví d
        Ca s d ng: Mua hàng
        Các tác nhân: Khách hàng, Ngư i bán hàng
        Tham chi u: R1.2, R2.3
        ði u ki n trư c: Ngư i bán hàng ñã ñăng nh p thành công.
        ði u ki n sau: Các m t hàng bán ñã ñư c ghi nh n và ñã ghi
        nh n thanh toán ti n.
        Mô t : M t khách hàng sau khi ñã ch n các m t hàng, mang gi
        hàng ñ n qu y thu ti n. Ngư i bán hàng ghi nh n các m t hàng,
        thông báo t ng s ti n, thu ti n và tr ti n còn l i cho khách hàng.
        Khách hàng mang hàng ñi.



37




ð c t ca s d ng

     Ngoài ra, ñ i v i m i ca s d ng ta có th xây d ng
     m t k ch b n (scenario) hành ñ ng mô t các s
     ki n x y ra
     K ch b n: g m các s ki n chính và các s ki n
     ngo i l
     Các s ki n chia làm hai lu ng
        Lu ng tương ng v i các tác nhân
        Lu ng tương ng v i h th ng




38




                                                                             19
ð c t ca s d ng

     Các s ki n chính
 Hành ñ ng c a tác nhân         Hành ñ ng c a h th ng
1. M t khách hàng ñưa
hàng ñã ch n mua ñ n qu y
tính ti n.
2. Ngư i bán hàng ghi nh n    3. Xác ñ nh m t hàng, hi n th
t ng m t hàng.                các thông tin và giá m t hàng.

N u m t m t hàng có s         S này ñư c hi n th .
lư ng nhi u hơn m t thì
ngư i bán hàng có th nh p
vào m t s .
39




ð c t ca s d ng

     Các s ki n chính (ti p)
 Hành ñ ng c a tác nhân         Hành ñ ng c a h th ng

4. Sau khi ñã ghi nh n t t    5. Tính và hi n th t ng s
c các m t hàng, ngư i bán     ti n.
hàng báo hi u k t thúc vi c
ghi nh n hàng.
6. Ngư i bán hàng thông
báo t ng s ti n ph i tr cho
khách hàng.
7. Khách hàng tr ti n cho
ngư i bán hàng.
40




                                                               20
ð c t ca s d ng

      Các s ki n chính (ti p)
  Hành ñ ng c a tác nhân         Hành ñ ng c a h th ng
 8. Ngư i bán hàng nh p s      9. Hi n th ti n dư và in phi u
 ti n khách hàng tr .          bán hàng

 10. Ngư i bán hàng xác        11. Ghi nh n phiên bán hàng.
 nh n s tr ti n, l y ti n dư
 tr cho khách hàng và ñưa
 cho khách hàng phi u bán
 hàng.
 12. Khách hàng r i qu y
 thu ti n v i túi hàng
 41




 ð c t ca s d ng

      Các s ki n ph

  Hành ñ ng c a tác nhân         Hành ñ ng c a h th ng
                               3. S xác nh n m t hàng
                               không ñúng. Hi n th l i.

 7. Khách hàng không có ñ
 ti n. Ngư i bán hàng h y
 b vi c bán.

Lưu ý: ñ nh d ng ñ c t các ca s d ng không c n
thi t ph i ch t ch .
 42




                                                                21
Ca s d ng                       giai ño n
     Elaboration
           Xác ñ nh càng nhi u ca s d ng m t cách có th
           Không ñi vào quá chi ti t, nh m gi m ñ ph c t p
           M t mô t ng n g n v m i ca s d ng là ñ , có
           th b qua ph n k ch b n, tham chi u ñ n ñ c t
           yêu c u, ñi u ki n trư c và ñi u ki n sau.
           B o ñ m r ng các ca s d ng bao quát h t các yêu
           c u c a h th ng




     43




     Bi u ñ ca s d ng

           Bi u ñ ca s d ng mô t quan h gi a các
           tác nhân và các ca s d ng c a m t h
           th ng.
           Kí hi u

                                                        Use case


Tác nhân        K t h p ch s
                tham gia c a tác
                nhân vào ca s d ng       Gi i h n c a
                                         h th ng
     44




                                                                   22
Bi u ñ ca s d ng

       Ví d
                         Ghi nh n


                         Mua hàng
Ngư i bán hàng


                         Tr hàng
                                               Khách hàng

Ngư i qu n lý            Kh i ñ ng

  45




  Bi u ñ ca s d ng

       Các tác nhân có th có quan h th a
       k
       Ví d
                     Khách hàng




           Cá nhân                   Công ty
  46




                                                            23
Quan h m r ng

     Có th x y ra trư ng h p: m t ca s d ng
     tương t v i m t ca s d ng khác, tuy
     nhiên nó g m thêm m t s hành ñ ng
     Ví d
       Ca s d ng: Mua hàng b ng th tín d ng
       Các tác nhân: Khách hàng, Ngư i bán hàng
       Mô t : M t khách hàng sau khi ñã ch n các m t
       hàng, mang gi hàng ñ n qu y thu ti n. Ngư i bán
       hàng ghi nh n các m t hàng, thông báo t ng s ti n.
       Khách hàng ñưa th vào máy và nh p mã PIN. Khách
       hàng nh n phi u bán hàng và mang hàng ñi.

47




Quan h m r ng

     Ca s d ng này là m t bi n th c a ca s
     d ng “mua hàng”, tuy nhiên thêm vào các
     hành ñ ng liên quan ñ n tr ti n b ng th
     Ca s d ng “mua hàng b ng th tín d ng”
     là m t s m r ng c a ca s d ng “mua
     hàng”




48




                                                            24
Quan h m r ng
     Kí hi u


       Mua hàng      << extends >> Mua hàng b ng th



                      Quan h m
                         r ng

     N u m t ca s d ng k t h p v i m t tác
     nhân, thì t t c các ca s d ng m r ng
     ñ u k t h p v i tác nhân ñó

49




Quan h s d ng
     Trư ng h p nhi u ca s d ng chia s cùng m t dãy
     các hành ñ ng. N u ph n chung là quan tr ng và
     hư ng t i m t m c tiêu rõ ràng, như th ta có th xây
     d ng m t ca s d ng riêng
     Ví d : chúng ta mu n ch p nh n mua hàng tr ti n
     m t l n và mua hàng tr góp
     Hai ca s d ng “mua hàng tr ti n m t l n” và “mua
     hàng tr góp” th c hi n m t dãy các hành ñ ng mà có
     th ñư c mô t b i ca s d ng “ghi nh n các m t
     hàng”



50




                                                           25
Quan h s d ng

       ð c t c a ca s d ng “ghi nh n các m t
       hàng”
          Ca s d ng: ghi nh n các m t hàng
          Các tác nhân: ngư i bán hàng, khách hàng
          Mô t : Khách hàng mang các m t hàng ñ n
          qu y tính ti n. Ngư i bán hàng ghi nh n các
          m t hàng và thông báo t ng s ti n ph i tr .




  51




  Quan h s d ng

       Kí hi u
       Mua hàng tr
                       << use >>
         m tl n
                                      Ghi nh n
                       << use >>     các m t hàng


   Mua hàng tr góp

                        Quan h s
                          d ng

Ngư c v i quan h m r ng, các ca s d ng trong quan h s d ng không
nh t thi t k t h p v i cùng tác nhân.
  52




                                                                   26
Cách xác ñ nh các ca s
d ng
     Phương pháp ph ng v n
       Khó khăn, vì hai ngư i khác nhau ñư c
       ph ng v n có th ñưa ra ý ki n khác nhau


     Phương pháp h i th o (workshop)
       T p h p t t c nh ng ai liên quan ñ n h
       th ng ñ th o lu n: các nhà tin h c và khách
       hàng (ngư i s d ng)
       M i ngư i ñ u ñưa ra ý ki n

53




Cách xác ñ nh các ca s
d ng
     Cách ti n hành h i th o
       Li t kê t t c các tác nhân có th
       Li t kê t t c các ca s d ng có th
       Phân tích, bi n ch ng m i ca s d ng
       b ng cách vi t ra m t mô t ñơn gi n
       Mô hình hóa các ca s d ng và tác
       nhân


54




                                                     27
Cách xác ñ nh các ca s
d ng
     Khuy n khích
       Không nên c g ng tìm m i ca s
       d ng,
        • Trong quá trình phát tri n các ca s d ng
          s l di n d n
       N u không th bi n ch ng cho m t ca
       s d ng
        • Có th ñó không ph i là ca s d ng


55




S p x p các ca s d ng

     Khi t t c các ca s d ng ñã ñư c xác ñ nh
     Ti n trình phát tri n g m nhi u bư c l p
     M i bư c l p th c hi n thi t k , mã hóa và
     ki m th ch m t vài ca s d ng
     Làm sao chia các ca s d ng vào các bư c
     l p?




56




                                                     28
S p x p các ca s d ng


       L p1          L p2    L p3     …


         A            B       D

                      C


     Các ca s d ng



57




S p x p các ca s d ng

     Các ca s d ng nên ñư c th c hi n trư c
        Các ca s     d ng ch a các r i ro/nguy cơ
        Các ca s     d ng ki n trúc chính
        Các ca s     d ng ñòi h i nghiên c u m i,
        công ngh     m i
        Các ca s     d ng mà khách hàng quan tâm
        hơn




58




                                                    29
Bài t p 1
     Máy rút ti n ATM có các ch c năng chính như sau:
         C p phát ti n cho nh ng ai có th ngân hàng (cho
         phép rút m t s lư ng ti n b i h th ng thông tin c a
         ngân hàng) và nh ng ai có th VISA (cho phép t xa
         b i h th ng VISA)
         Cho xem ki m tra s ti n tài kho n và b ti n vào tài
         kho n b ng ti n m t ho c ngân phi u ñ i v i nh ng
         ai có th ngân hàng
     T t c các giao tác ñ u ñư c ki m tra an toàn
         Ki m tra mã PIN
         Mã PIN nh p sai 3 l n thì th s b “nu t”
     C n ph i thư ng xuyên n p ti n vào máy, l y ngân phi u và
     các th b nu t ra
     Xác ñ nh các tác nhân, các ca s d ng và v bi u ñ ca s
59
     d ng




Bài t p 1
     Các tác nhân
        Ngư i có th ngân hàng (bankcard)
        Ngư i có th VISA (VISAcard)
        Ngư i v n hành máy (operator)
        H th ng VISA (VISA)
        H th ng thông tin ngân hàng (bank)




60




                                                                 30
Bài t p 1
       Các ca s d ng
           Rút ti n v i th ngân hàng (withdraw by bankcard)
           Rút ti n v i th VISA (withdraw by VISAcard)
           Ki m tra mã PIN (identify)
           Xem s ti n còn trong tài kho n (balance)
           B ti n vào tài kho n b ng ngân phi u ho c ti n m t
           (deposit)
           N p ti n vào máy (put money)
           L y th b nu t trong máy (get cards)
           L y ngân phi u trong máy (get cheques)



  61




  Bài t p 1

                withdraw with VISA card

VISAcard                                             VISA
                 withdraw with bank card

                       balance

bankcard                                                bank
                       deposit
                                       <<include>>
                     <<extend>>                        identify
        deposit by cheque        deposit by cash


  62




                                                                  31
Bài t p 1


                               put cash


                              get cards
operator

                             get cheques




63




Bài t p 2
     Qu n lý ñào t o nhân viên: M t công ty mu n mô t b ng UML
     vi c ñào t o nhân viên ñ tin h c hóa m t s công vi c. Vi c ñào
     t o ñư c b t ñ u khi ngư i qu n lý ñào t o nh n ñư c yêu c u
     ñào t o c a m t nhân viên. Nhân viên này có th xem danh m c
     các chuyên ñ ñào t o c a các ñơn v ñào t o ký k t v i công ty.
     Yêu c u c a nhân viên ñư c xem xét b i ngư i qu n lý ñào t o và
     ngư i qu n lý s tr l i là ch p nh n hay t ch i ñ ngh ñó. Trong
     trư ng h p ch p nh n, ngư i qu n lý s xác ñ nh chuyên ñ phù
     h p trong danh m c các chuyên ñ , sau ñó g i cho nhân viên n i
     dung c a chuyên ñ và danh sách các khóa ñào t o. Nhân viên s
     ch n khóa ñào t o và ngư i qu n lý s ñăng ký khóa h c v i ñơn
     v ñào t o cho nhân viên. Trong trư ng h p mu n h y b ñăng ký
     khóa ñào t o, nhân viên ph i thông báo s m cho ngư i qu n lý
     bi t ñ ngư i qu n lý th c hi n h y b . Cu i khóa ñào t o, nhân
     viên chuy n phi u ñánh giá k t qu h c v cho công ty. Ngư i
     qu n lý s ki m tra hóa ñơn thanh toán ti n c a ñơn v ñào t o.
     Xây d ng bi u ñ ca s d ng.

64




                                                                       32
N i dung

     Khái ni m cơ b n hư ng ñ i tư ng
     Bi u ñ ca s d ng
     Thi t k c u trúc tĩnh
     Thi t k c u trúc ñ ng
     Sinh mã




65




C u trúc tĩnh

     Mô hình khái ni m
     Bi u ñ l p
     Bi u ñ ñ i tư ng




66




                                        33
Mô hình khái ni m
     Xác ñ nh các “khái ni m” quan tr ng trong h th ng
     Mô hình khái ni m (conceptual model) mô t các khái
     ni m trong các quan h c a chúng
     UML không cung c p mô hình khái ni m, tuy nhiên
     cung c p kí hi u và cú pháp ñ bi u di n mô hình ñó
     chính là bi u ñ l p
        giai ño n này, mô hình khái ni m còn ñư c g i bi u
     ñ l p phân tích (analysis class diagram) – lưu ý, khác
     v i bi u ñ l p thi t k (design class diagram)
     Ngoài ra, mô hình khái ni m cũng còn ñư c g i là mô
     hình lĩnh v c (domain model)



67




Mô hình khái ni m

     Mô hình khái ni m g m:
        Các khái ni m c a lĩnh v c nghiên c u
        Các thu c tính và các thao tác c a các
        khái ni m này
        Các quan h c a các khái ni m này
     M t khái ni m là bi u di n m c cao (tr u
     tư ng) v m t s v t
     M t khái ni m là m t ph n t c a lĩnh v c
     nghiên c u, ch không ph i m t ph n t
     c a ph n m m hay h th ng

68




                                                              34
Mô hình khái ni m
     Trong mô hình khái ni m, chúng ta s n m b t các khái
     ni m nh n bi t b i khách hàng
     Ví d các khái ni m ñúng: khái ni m g n li n v i v n ñ
        Thang máy trong h th ng ñi u khi n thang máy
        Vé máy bay trong h th ng ñ t vé máy may
        ð t hàng trong h th ng mua bán hàng qua m ng
     Ví d t i v khái ni m: khái ni m g n li n v i gi i pháp
        DanhSachKhachHang – b ng các khách hàng
        EventTrigger – ti n trình th c hi n duy t h th ng 10 phút
        m tl n




69




Mô hình khái ni m

     Làm sao bi t ñư c m t khái ni m là ñúng
     hay không?
     Nguyên t c: “N u khách hàng không hi u
     khái ni m, r t có th ñó không ph i là
     khái ni m”

     Mô hình khái ni m s ñư c chuy n d n
     sang bi u ñ l p thi t k trong giai ño n
     xây d ng

70




                                                                    35
Xác ñ nh các khái ni m

     ð xác ñ nh các khái ni m, d a vào
     ñ c t yêu c u, mà c th hơn là d a
     vào các ca s d ng
     Ví d : ca s d ng “mua hàng”
       Các khái ni m có th : KháchHàng,
       Ngư iBánHàng, TínhTi n, MuaHàng,
       M tHàng, …


71




Xác ñ nh các khái ni m

     M ts    ng c viên c a khái ni m t ñ c t
     ho c ca s d ng:
       Các ñ i tư ng v t lý (xe ôtô)
       Các v trí, ñ a ñi m (nhà ga)
       Các giao tác (thanh toán)
       Các vai trò c a con ngư i (ngư i bán)
       Các h th ng khác bên ngoài (cơ s d li u t xa)
       Danh t tr u tư ng (s khát, ăn u ng)
       Các t ch c (ñ i h c)
       Các s ki n (c p c u)
       Nguyên t c/chính sách


72




                                                       36
Xác ñ nh các khái ni m

     Cách khác ñ xác ñ nh các khái ni m
       Các danh t và c m danh t trong ñ c t yêu c u
       ho c ñ c t ca s d ng có th là các khái ni m
       D a vào hi u bi t và kinh nghi m lo i b các danh t
       và c m danh t không là các khái ni m

     Ví d : d a vào k ch b n ca s d ng “mua hàng”
       G ch chân các danh t và c m danh t




73




Xác ñ nh các khái ni m

     Ví d
 Hành ñ ng c a tác nhân       Hành ñ ng c a h th ng
1. M t khách hàng ñưa
hàng ñã ch n mua ñ n qu y
tính ti n.
2. Ngư i bán hàng ghi nh n   3. Xác ñ nh m t hàng, hi n th
t ng m t hàng.               các thông tin và giá m t hàng.

N u m t m t hàng có s        S này ñư c hi n th .
lư ng nhi u hơn m t thì
ngư i bán hàng có th nh p
vào m t s .
74




                                                              37
Xác ñ nh các khái ni m

     Ví d
 Hành ñ ng c a tác nhân         Hành ñ ng c a h th ng

4. Sau khi ñã ghi nh n t t    5. Tính và hi n th t ng s
c các m t hàng, ngư i bán     ti n.
hàng báo hi u k t thúc vi c
ghi nh n hàng.
6. Ngư i bán hàng thông
báo t ng s ti n ph i tr cho
khách hàng.
7. Khách hàng tr ti n cho
ngư i bán hàng.
75




Xác ñ nh các khái ni m

  Ví d
 Hành ñ ng c a tác nhân         Hành ñ ng c a h th ng
8. Ngư i bán hàng nh p s      9. Hi n th ti n dư và in phi u
ti n khách hàng tr .          bán hàng

10. Ngư i bán hàng xác        11. Ghi nh n phiên bán hàng.
nh n s tr ti n, l y ti n dư
tr cho khách hàng và ñưa
cho khách hàng phi u bán
hàng.
12. Khách hàng r i qu y
thu ti n v i túi hàng
76




                                                               38
Xác ñ nh các khái ni m

 Phân bi t gi a khái ni m (concept) và thu c tính (attribut)
      N u m t ph n t c a lĩnh v c nghiên c u không là m t con
      s ho c m t chu i kí t thì có th ñó là m t khái ni m
      Ví d : C n xây d ng ph n m m qu n lý các chuy n bay.
      ðích c a m t chuy n bay là thu c tính c a m t chuy n bay
      hay là m t khái ni m khác ?
      Tr l i: ñích m t chuy n bay là m t sân bay, không ph i là
      m t con s hay văn b n, ñó là m t khái ni m




77




Xác ñ nh các khái ni m

     L p “MôT ”
       L p MôT là l p ch a thông tin mô t các
       ñ i tư ng khác
        • Ví d : L p M tHàng ch a các thông tin v M t
          Hàng
                 M tHàng
                   mãMH
                   tênMH: text
                   giá
                   s Xêri
                   màuS c

             Phương án 1 (chưa t t)
78




                                                                  39
Xác ñ nh các khái ni m

     L p “MôT ”

     M tHàng                             MôT M tHàng
                         ðư c mô t   1
                   *                       mãMH
     s Xêri                                tênMH: text
     màuS c                                giá



                 Phương án 2 (t t hơn)




79




Xác ñ nh các khái ni m

     L p “MôT ”
        Khi nào s d ng l p “MôT ”
          • Khi c n gi m b t s dư th a, trùng l p thông tin
          • Khi c n mô t v ñ i tư ng ñ c l p v i các ñ i
            tư ng c th
          • Khi c n c n duy trì thông tin v ñ i tư ng cho dù
            các ñ i tư ng c th b xóa




80




                                                               40
Xác ñ nh các khái ni m

     L p “MôT ”
        Ví d : trong lĩnh v c hàng không, c n mô t
        quan h gi a các chuy n bay và các sân
        bay

      Chuy nBay                              SânBay
                         Bay ñ n       1
       ngày          *                       tên
       gi
       s Hi u


                         Phương án 1

81




Xác ñ nh các khái ni m

     L p “MôT ”

     MôT Chuy nBay                           SânBay
                         Bay ñ n       1
                     *                       tên
       s Hi u

                1


                *
       Chuy nBay               Phương án 2
       ngày
       gi
82




                                                      41
Bi u di n khái ni m

      S d ng kí hi u c a bi u ñ l p

                          Môt M tHàng               Khái ni m

   Các thu c tính

   Các thao tác
   (chưa xét ñ n
   giai ño n này)




 83




 Thu c tính
      Các thu c tính (attribut) c a m t khái ni m bi u di n
      d li u c n thi t cho các th hi n (instance) c a khái
      ni m
      Ví d

                       Môt M tHàng              Khái ni m

                         mã
Các thu c tính
                         tên: text
                                            Ki u (không b t bu c)




 84




                                                                    42
Thu c tính
     M t thu c tính ch ñ i di n cho các d li u liên quan
     ñ n khái ni m s h u thu c tính ñó
     Ví d
                                  Ngư iBánHàng

                                      tên
                 Sai                  s Qu y



                       Ngư iBánHàng                Qu y

     ðúng                 tên                       s
85




Thu c tính

     Cách xác ñ nh các thu c tính
            Các con s và chu i kí t là các thu c tính
            N u m t tính ch t c a m t khái ni m không
            th làm ñư c ñi u gì thì r t có th ñó là
            thu c tính
            N u nghi ng m t thu c tính là khái ni m, thì
            ñơn gi n hãy coi ñó là khái ni m
             • Ví d : lương là thu c tính hay khái ni m so v i
               khái ni m công nhân ?
             • N u nghi ng ñó là khái ni m thì coi như lương và
               công nhân là hai khái ni m tách r i
86




                                                                  43
Thao tác

      Khái ni m có th có các thao tác (operation)
      Thao tác c a khái ni m chính là kh năng
      th c hi n c a m t th hi n c a khái ni m
      Ví d

                    M tHàngBán          Khái ni m

                  ngày
Các thu c tính
                  gi B tð u: Time

                  t ngTi n(): Integer    Thao tác


 87




 Thao tác

         giai ño n elaboration, mô hình khái ni m
      có th không nh t thi t ph i mô t các
      thao tác c a khái ni m
      Giai ño n construction s th c hi n công
      vi c này m t cách chi ti t và ñ y ñ




 88




                                                    44
K th p
     K t h p (association) bi u di n quan h gi a các th
     hi n c a các khái ni m
     Ví d : k t h p ch a gi a khái ni m c a hàng và khái
     ni m m t hàng
     Kí hi u



           C aHàng       Ch a >        M tHàng



                         K th p


89




K th p
     Có th t n t i k t h p c a nhi u hơn hai khái ni m
     Ví d


                      Profession
                            function



      Person   work                employ   Company




90




                                                           45
K th p
     B i s (multiplicity) c a vai trò ch ra s th hi n có
     th c a quan h tham gia vào quan h
     Các b i s có th
        1: ch ñúng m t
        1..*: t m t ñ n nhi u
        *: t 0 ñ n nhi u
        m..n: t m ñ n n
     Ví d

                           1    Ch a > *
              C aHàng                           M tHàng


91




H n ch k t h p
(qualificator)
     Gi m s th hi n tham gia vào m t k t h p
     Kí hi u

              A      key                        B

                                 qualificator

     M i th hi n A v i giá tr key xác ñ nh m t t p con các
     th hi n B tham gia vào k t h p




92




                                                             46
H n ch k t h p
(qualificator)
     Ví d
        Phân bi t các sinh viên h c t i m t ñ i h c d a vào
        mã s sinh viên

       ð iH c      No sinh viên        SinhViên

        Phân bi t các m t hàng thu c vào m t danh m c m t
        hàng d a vào mã s m t hàng


      DanhM cM tHàng              ID              M tHàng


93




Chuyên bi t hóa
     M t khái ni m có th v cơ b n gi ng v i m t khái
     ni m khác, ch có m t vài s khác nhau trên m t s
     tính ch t (thu c tính, thao tác, các k t h p)
     Khái ni m th nh t ñư c g i là chuyên bi t hóa
     (specialization) c a khái ni m th hai
     Khái ni m th nh t ñư c g i là khái ni m chuyên bi t
     hóa (specialized concept), khái ni m th hai ñư c g i
     là khái ni m chung (general concept)




94




                                                              47
Chuyên bi t hóa
     Kí hi u


                   general concept




 specialized concept                 specialized concept




95




Th a k
     Khái ni m chuyên bi t hóa th a k (inheritance) t t c
     các tính ch t c a c a khái ni m chung. Các tính ch t
     này bao g m:
        Các thu c tính
        Các thao tác
        Các k t h p v i khái ni m khác




96




                                                            48
Th a k
           Ví d
                          ThanhToán       1   thanh toán >   1 PhiênBánHàng

                          t ng: Integer



   ThanhToánB ngTi nM t                       ThanhToánB ngTh

           Các khái ni m “ThanhToánB ngTi nM t” và
           “ThanhToánB ngTh ” ñ u có thu c tính “t ng” và k t
           h p “thanh toán” v i khái ni m “PhiênBánHàng”



      97




      Khái ni m tr u tư ng
           Tương t như l p, khái ni m tr u tư ng không có các
           th hi n

                              ThanhToán       1   thanh toán >   1 PhiênBánHàng
Khái ni m tr u tư ng
ñư c vi t in nghiêng          t ng: Integer



       ThanhToánB ngTi nM t                       ThanhToánB ngTh


           Lưu ý, trong tài li u vi t tay có th vi t {abstract} dư i
           tên khái ni m tr u tư ng


      98




                                                                                  49
Quan h h p thành và quan
h k tt p
      Quan h h p thành (composition) và quan h k t
      t p (agregation) là hai k t h p ñ c bi t ch s s
      h u
         Quan h h p thành: m t khái ni m thành ph n ch
         thu c vào m t khái ni m toàn ph n

              ToànPh n                     M tPh n


         Quan h k t t p: m t khái ni m thành ph n có th
         thu c vào nhi u khái ni m toàn ph n

              ToànPh n                     M tPh n

99




Quan h h p thành và quan
h k tt p
                          3            1
                              Point
      Ví d

             Triangle                                Circle

                         1     Style       1         radius

                                color
                              isFilled
      M t th hi n c a “Point” không th ñ ng th i thu c
      vào m t th hi n c a “Triangle” và m t th hi n c a
      “Circle”


100




                                                              50
Quan h h p thành và quan
h k tt p
      Quan h h p thành nh n m nh s s h u: n u khái
      ni m toàn ph n b h y b thì khái ni m thành ph n
      cũng b h y b theo
      Trong trư ng h p, th t c a các khái ni m thành
      ph n là quan tr ng, thì thêm vào k t h p ñi u ki n
      {ordered}
      Ví d
                                 {ordered}
               Polygon                 3..*
                                              Point




101




Khái ni m k t h p

      Có th mô t các tính ch t c a m t k t h p
      gi a hai khái ni m b i m t khái ni m k t
      h p (association concept)
      Ví d

                work                  employ
         Person 1..*                       * Company


                        Employment
                                                      Khái ni m k t h p

                       begin, end: Date

102




                                                                          51
Bài t p 1

               Xây d ng mô hình khái ni m c a h
               th ng/ph n m m bán hàng t i siêu th
                    Ph n m m bán hàng s d ng t i siêu th
                    nh m giúp ghi nh n ho t ñ ng bán hàng, x
                    lý các thanh toán v i khách hàng. Ph n
                    m m ñư c s d ng b i ngư i bán hàng và
                    ñư c qu n lý b i ngư i qu n lý siêu th .
                    Ph n m m nh m t ñ ng hóa công vi c c a
                    ngư i bán hàng t i qu y thu ti n.



         103




         Bài t p 1

                                                                 1
                      DongHang *                MatHang *                MoTaMatHang
                                           1
                      1..*                        *                            *

                         1                        1                            1
                                 1..*      1               *         1
                    PhienBanHang                 CuaHang                  DanhMucMatHang
                1        1                          1    1..*
                              *                                               1

                                           1     1..*           HeThongBanHang
     1                  1                                             1
                                        QuayTinhTien
ThanhToan             KháchHàng                                           1
                                           1
                                                    1
                                                                     NguoiQuanLy
                                               Ngư iBán



                                                            NhânViên
         104




                                                                                           52
Bài t p 2
      Qu n lý ñào t o trung tâm tin h c: M t công ty mu n mô t
      b ng UML vi c ñào t o nhân viên ñ tin h c hóa m t s công vi c.
      Vi c ñào t o ñư c b t ñ u khi ngư i qu n lý ñào t o nh n ñư c
      yêu c u ñào t o c a m t nhân viên. Nhân viên này có th xem
      danh m c các chuyên ñ ñào t o c a các ñơn v ñào t o ký k t v i
      công ty. Yêu c u c a nhân viên ñư c xem xét b i ngư i qu n lý
      ñào t o và ngư i qu n lý s tr l i là ch p nh n hay t ch i ñ
      ngh ñó. Trong trư ng h p ch p nh n, ngư i qu n lý s xác ñ nh
      chuyên ñ phù h p trong danh m c các chuyên ñ , sau ñó g i cho
      nhân viên n i dung c a chuyên ñ và danh sách các khóa ñào t o.
      Nhân viên s ch n khóa ñào t o và ngư i qu n lý s ñăng ký khóa
      h c v i ñơn v ñào t o cho nhân viên. Trong trư ng h p mu n h y
      b ñăng ký khóa ñào t o, nhân viên ph i thông báo s m cho ngư i
      qu n lý bi t ñ ngư i qu n lý th c hi n h y b . Cu i khóa ñào t o,
      nhân viên chuy n phi u ñánh giá k t qu h c v cho công ty.
      Ngư i qu n lý s ki m tra hóa ñơn thanh toán ti n c a ñơn v ñào
      t o.
      Xây d ng bi u mô hình khái ni m.
105




Bi u ñ l p

      Bi u ñ l p ñ nh nghĩa:
          Các l p (class)
           • Các thu c tính (attribut) c a l p: các
             bi n và ki u c a chúng
           • Các thao tác (operation) c a l p: các
             phương th c (method), các tham ñ i và
             có th giá tr tr v
          Các quan h gi a các l p


106




                                                                          53
Bi u ñ l p
      Bi u ñ l p có cùng quy t c cú pháp v i mô hình khái
      ni m
         Th c ra, mô hình khái ni m s d ng các cú pháp c a
         bi u ñ l p trong UML
         T t c các kí hi u và quy t c (ñã trình bày) ñ i v i
         mô hình khái ni m ñ u ñư c s d ng ñ xây
         d ng bi u ñ l p
      Bi u ñ l p ñư c xây d ng d a trên mô hình khái
      ni m
      Các l p có th ch y u là các khái ni m ho c các
      thành ph n khác
      Bi u ñ l p s là n n t ng cho bư c mã hóa
107




Bi u ñ l p
      ð i v i bi u ñ l p, m i thu c tính hay m i phương
      th c có th có thêm m c kh ki n – kh năng nhìn
      th y (visibility)
      Kí hi u
         “–” m c riêng (priviate), thu c tính hay phương th c
         ch ñư c nhìn th y b i ñ i tư ng c a l p ñó
         “#” m c b o v (protected), thu c tính hay phương
         th c ch ñư c nhìn th y b i ñ i tư ng c a l p ñó và
         ñ i tư ng c a các l p th a k l p ñó
         “+” m c chung (public), thu c tính hay phương th c
         ch ñư c nhìn th y b i ñ i tư ng c a t t c các l p



108




                                                                54
Bi u ñ l p

       Ví d                                                 Tên l p

                                     Shape
                                                                Thu c tính

                      – origin : Point

                      + setOrigin(p : Point)                     Phương th c
                      + getOrigin() : Point)
                      + move(p : Point)
                      + resize(s : Scale)
                      + display()
                      # pointInShape(p : Point) : Boolean


 109




 Bi u ñ l p
       Thu c tính d n xu t (derived attribut) là các thu c tính
       c a bi u ñ l p mà có th suy ra t các thu c tính
       khác.
       Kí hi u: thu c tính d n xu t b t ñ u b i “/”, m t ràng
       bu c có th ñi kèm ñ gi i thích s d n xu t
       Ví d
                                           Person
          Ràng bu c
                                         name               Thu c tính d n xu t
                                         birthDate
{age = CurrentDate – birthDate}          / age



 110




                                                                                  55
Bi u ñ l p

      Các quan h gi a các l p
         Quan h k t h p (association)
         Quan h chuyên bi t hóa/t ng quát hóa
         (specialization/generalization)
         Quan h h p thành (composition)
         Quan h k t t p (agregation)
         Quan h ph thu c (dependence)




111




Bi u ñ l p
      Quan h k t h p (association)          Quan h k t h p


                         1   Ch a > * M tHàng
             Qu yHàng

      Quan h chuyên bi t hóa/t ng quát hóa
      (specialization/generalization)

                       NhânViên             Quan h t ng quát hóa




        Ngư iBánHàng              Ngư iQu nLý


112




                                                                   56
Bi u ñ l p

      Quan h k t t p (agregation)
                                     Quan h


                    0..*
         Company               *   Person

      Quan h h p thành (composition)
                                                Quan h


                           1
         DanhM cM tHàng                  *    M tHàng


113




Bi u ñ l p

      Quan h ph thu c (dependence): mô t
      m t l p ph thu c vào l p khác
      Ví d
                                            Quan h ph th c



           Circle                     Point

         center : Point




114




                                                             57
Bi u ñ l p

        Ví d : chuy n ñ i mô hình khái ni m
        thành bi u ñ l p
        Gi s mô hình khái ni m


                       ThanhToán        1   thanh toán >   1 PhiênBánHàng



ThanhToánB ngTi nM t                        ThanhToánB ngTh




  115




  Bi u ñ l p

        Chi ti t các thu c tính


                       ThanhToán        1   thanh toán >   1 PhiênBánHàng

                       t ng : Integer



ThanhToánB ngTi nM t                        ThanhToánB ngTh




  116




                                                                            58
Bi u ñ l p

             Chi ti t các phương th c


                        ThanhToán 1         thanh toán >    1      PhiênBánHàng

                       t ng : Integer                           tínhT ng() : Integer


ThanhToánB ngTi nM t                        ThanhToánB ngTh

nh nTi n()                                  tr VàoTh ()



      117




      Bi u ñ l p

             Xác ñ nh các m c kh ki n


                     ThanhToán          1   thanh toán >    1      PhiênBánHàng

                    # t ng : Integer                            + tínhT ng() : Integer


ThanhToánB ngTi nM t                        ThanhToánB ngTh

+ nh nTi n()                                + tr VàoTh ()



      118




                                                                                         59
N i dung

      Khái ni m cơ b n hư ng ñ i tư ng
      Bi u ñ ca s d ng
      Thi t k c u trúc tĩnh
      Thi t k c u trúc ñ ng
      Sinh mã




119




C u trúc ñ ng

      Bi u ñ tương tác
        Bi u ñ tu n t
        Bi u ñ c ng tác




120




                                         60
Bi u ñ tương tác
      Bi u ñ tương tác mô t hành vi c a h th ng
      M i bi u ñ tương tác tương ng m t tác v ñư c
      th c hi n b i m t s các ñ i tư ng
      Bi u ñ tương tác xây d ng d a trên n n t ng c a
      bi u ñ ho t ñ ng và bi u ñ tr ng thái
      Bi u ñ tương tác mô t các hành ñ ng c a các ñ i
      tư ng ñ th c hi n m t tác v . Các hành ñ ng c a
      ñ i tư ng bao g m:
           g i các thông ñi p (message) gi a các ñ i tư ng
           t o (create) và h y (destroy) các ñ i tư ng




121




Bi u ñ tu n t

      Bi   u ñ tu n t (sequence diagram) bi u
      di   n s tương tác gi a các ñ i tư ng b ng
      vi   c nh n m nh th t trao ñ i thông ñi p
      gi   a các ñ i tư ng
      Bi   u ñ tu n t g m:
           các ñ i tư ng
           các thông ñi p trao ñ i gi a các ñ i tư ng




122




                                                             61
Bi u ñ tu n t
      M i ñ i tư ng có m t ñư ng sinh t n (lifeline) bi u di n
      th i gian t n t i c a nó.
      Kí hi u               ð i tư ng



           object         object:Class                :Class




                            ðư ng sinh t n

123




Bi u ñ tu n t

      Th i gian ho t ñ ng (activation) là
      th i gian mà ñ i tư ng ñang th c
      hi n m t thao tác
      Kí hi u
                         object


                                             Th i gian ho t ñ ng




124




                                                                   62
Bi u ñ tu n t

      M t thông ñi p ñ c t trao ñ i gi a
      các ñ i tư ng
      Các lo i thông ñi p
         G i (call)
         Tr v (return)
         G i (send)
         T o (create)
         H y (destroy)

125




Bi u ñ tu n t
      Thông ñi p g i g i m t phương th c/thao tác trên ñ i tư ng
         ð i tư ng g i ph i ñ i thông ñi p ñư c th c hi n k t thúc
         m i có th th c hi n công vi c khác (thông ñi p ñ ng b )
      M t ñ i tư ng có th g i thông ñi p cho chính nó
      Kí hi u


            object A                    object B      object

                         message()



                       G i thông ñi p g i             G i cho chính nó
126




                                                                         63
Bi u ñ tu n t

      Thông ñi p tr v tr v m t giá tr
      cho ñ i tư ng g i
      Kí hi u
                Object A                      Object B

                             message()

                                value


                           Thông ñi p tr v

127




Bi u ñ tu n t
      Thông ñi p g i g i m t tín hi u ñ n m t ñ i tư ng
         Khác v i thông ñi p g i, khi ñ i tương g i thông ñi p
         g i nó không ch ñ i, mà ti p t c th c hi n công vi c
         khác (thông ñi p không ñ ng b )
      Kí hi u
                object A                      object B

                              message()



                             Thông ñi p g i


128




                                                                 64
Bi u ñ tu n t
       Thông ñi p t o g i phương th c t o m t ñ i tư ng
       Thông ñi p h y g i phương th c h y m t ñ i tư ng
       Kí hi u
                                          Thông ñi p t o
                 object A

                            <<create>>
                                             object B

                            <<destroy>>

                                             Thông ñi p h y

 129




 Bi u ñ tu n t

       Ví d
                                           public class A
                                           {
        :A                                  private B objB;
                                            public void msg1()
                                            {
msg1          <<create>>                       objB = new B();
                               :B
                                               objB.msg2();
                 msg2                          objB.msg3();
                                             }
                                           }
                 msg3
                                           public class B
                                           {
                                            …
                                             public void msg2() { … }
                                             public void msg3() { … }
                                           }


 130




                                                                        65
Bi u ñ tu n t

          M t thông ñi p có th ñư c g i l p
          nhi u l n
          Kí hi u                G i l p thông ñi p 10 l n



                                   object A                   object B

                                              *[1..10]message()
for(i = 1; i<= 10; i++)
{
           objectB.message()
}


    131




    Bi u ñ tu n t

          M t thông ñi p có th ñư c g i l p
          nhi u l n ph thu c vào m t ñi u ki n
          Kí hi u               G i l p thông ñi p trong khi C ñúng



                                   object A                   object B

                                              *[C]message()
while(C)
{
             objectB.message()
}


    132




                                                                         66
Bi u ñ tu n t

             M t thông ñi p có th ñư c g i ph
             thu c vào ñi u ki n r nhánh
             Kí hi u
                               object A                object B         object C

                                          [C]message()

if(C)
    objectB.message();
else                                                         [not C]message()
   objectC.message();



       133




       Bi u ñ tu n t

             M t thông ñi p có th ñư c g i ñ
             quy
             Kí hi u
                                                     Thông ñi p ñ quy

                               :BinaryTree

                     print()
                                           print()




       134




                                                                                   67
Bi u ñ tu n t

             Ví d
            :TàiLi u                 :MáyFax            :Dâyði nTho i

                         g i()
                                                nh cMáy()
                                                âmM i
                                                b mS (s )
                       ñãK tN i                 ñãK tN i
                       g i(trang)
                                                chuy n(trang)


       135




       Bi u ñ tu n t

             Ví d
:Ngư iBán                :MáyTínhTi n           :PhiênBánHàng

       thanhToán(s Ti n)
                                    thanhToán(s Ti n)      <<create>> :ThanhToán

                                                            thanhToán(s Ti n)

                                                              ti nDư
                                       ti nDư
       tr Ti nDư()                                           <<destroy>>


       136




                                                                                   68
Bi u ñ tu n t
      Gi a bi u ñ tương tác và bi u ñ l p và có m i quan
      h ch t ch v i nhau
      Ví d
            MáyTínhTi n                    PhiênBánHàng

           m ThanhToán()                   thanhToán()

                       :MáyTínhTi n       :PhiênBánHàng


        m ThanhToán(s Ti n)   thanhToán(s Ti n)




137




Bi u ñ c ng tác
      Bi u ñ c ng tác (collaboration diagram) mô t s
      tương tác gi a các ñ i tư ng b ng vi c nh n m nh
      c u trúc k t h p gi a các ñ i tư ng và nh ng thông
      ñi p trao ñ i gi a chúng
      Bi u ñ c ng tác là s m r ng c a bi u ñ ñ i tư ng
      Bi u ñ c ng tác ch ra
         th t g i các thông ñi p: m i thông ñi p ñư c gán
         m t s tu n t
         ñi u ki n g i các thông ñi p




138




                                                            69
Bi u ñ c ng tác
      C u trúc thông ñi p ñư c mô t d ng t ng quát như sau:
       precondition / condition sequence * *|| iteration : result := message(parameters)
           “precondition /”: danh sách s tu n t c a các thông ñi p trư c
           thông ñi p c n g i. Thông ñi p ch ñư c g i ñi khi t t c các thông
           ñi p trư c nó ñã ñư c g i ñi.
           “condition”: thông ñi p ch ñư c g i ñi khi ñi u ki n ñư c th a
           mãn.
           “sequence”: s tu n t c a thông ñi p c n g i. Ví d , vi c g i
           thông ñi p 1.3.5 theo sau vi c g i thông ñi p 1.3.4, c hai thông
           ñi p này n m trong lu ng 1.3.
           “*”: ch ra thông ñi p ñư c g i ñi nhi u l n m t cách tu n t .
           “*||”: ch ra thông ñi p ñư c g i ñi nhi u l n m t cách ñ ng th i.
           “iteration”: ch ra s l n g i thông ñi p m t cách tu n t ho c ñ ng
           th i
           “result”: ch ra giá tr tr v c a thông ñi p.
           “message”: tên thông ñi p
           “parameters”: danh sách các tham s c a thông ñi p.
139




Bi u ñ c ng tác

      Ví d
           4 : hello() : thông ñi p có s tu n t là 4.
           [time = 12h] 1 : lunch() : thông ñi p này ch
           ñư c g i ñi n u là lúc 12h.
           1.3.5 * call() : thông ñi p này ñư c g i ñi
           nhi u l n.
           3 / *|| [i:= 1..5] 1.2 : close() : thông ñi p này
           ñư c g i ñi năm l n m t cách ñ ng th i và
           sau thông ñi p s 3.
           1.2, 2.3 / [t < 10] 3.1 name = getName() :
           thông ñi p này ñư c g i ñi sau các thông
           ñi p 1.2, 2.3 và v i ñi u ki n t<10.
140




                                                                                           70
Bi u ñ c ng tác

                Ví d bi u ñ c ng tác


                  :Ngư iBán                    :ThanhToán

                       1 : thanhToán(s Ti n)
                                                       1.1.1 : <<create>>
2 : tr Ti nDư()
                                    1.1.3 : ti nDư()   1.1.2 : thanhToán(s Ti n)
                                                       1.1.4 : <<desstroy>>
                              1.2 ti nDư()
                  :H Th ng                   :PhiênBánHàng
                         1.1 : thanhToán(s Ti n)

          141




          Bi u ñ tương tác

                Bài t p 1: Máy rút ti n ATM
                  Xây d ng bi u ñ tu n t cho ca s d ng
                  rút ti n trong trư ng h p thành công

                  Xây d ng bi u ñ tu n t cho ca s d ng
                  xem s ti n dư trong tài kho n




          142




                                                                                   71
N i dung

      Khái ni m cơ b n hư ng ñ i tư ng
      Bi u ñ ca s d ng
      Thi t k c u trúc tĩnh
      Thi t k c u trúc ñ ng
      Sinh mã




143




Sinh mã
      Chuy n các mô hình thi t k sang mã chương trình
      (C++, Java, …)
      Mã chương trình hư ng ñ i tư ng
        ð nh nghĩa các l p và giao di n
        ð nh nghĩa các phương th c
      Các bi u ñ l p s ñư c chuy n sang mã
      chương trình ñ nh nghĩa các l p tương ng
      Các bi u ñ tương tác s ñư c chuy n thành mã
      chương trình ñ nh nghĩa các phương th c
      Các bi u ñ khác s h tr cho quá trình mã hóa



144




                                                        72
Sinh mã

        Ví d : bi u ñ l p

                 orderListe        OneOrder                contains >
                        1..*                           *
                               − quantity: Integer
         1                                                          1
  ListOfOrders                                                     AirPlane
                               + subtotal() : double
  − datePlaced                                                − price : float
  − clientID

 + total() : double                                          + getPrice() : float



  145




  Sinh mã

        Mã l p OneOrder


                                             public class OneOrder
    OneOrder
                                             {
                                                public double subtotal()
− quantity: Integer                             {

                                                 }
+ subtotal() : double                            private int quantity;
                                             }




  146




                                                                                    73
Sinh mã

                     Mã l p OneOrder

     OneOrder               contains >
                                                     public class OneOrder
                         *                           {
 − quantity: Integer                                    public double subtotal()
                                    1
                                                        {
                                   AirPlane
                                                         }
+ subtotal() : double
                              − price : float            private int quantity;
                                                         private AirPlane airPlane;
                                                     }

                              + getPrice() : float



              147




              Sinh mã

                     Mã l p ListOfOrders

               orderListe        OneOrder
                      1..*                           public class ListOfOrder
                                                     {
                             − quantity: Integer        public double total()
       1
                                                        {
ListOfOrders
                                                         }
                             + subtotal() : double
− datePlaced                                             private Date datePlaced;
                                                         private int clientID;
− clientID                                               private Vector orderList;
                                                     }
+ total() : double



              148




                                                                                      74
Sinh mã

          Bi u ñ c ng tác th c hi n phương th c
          total()

     1 : total()                   2 : *[for each] subtotal()
                   :ListOfOrders                                :OneOrder


                                                       3 : getPrice()



                                                                :AirPlane


    149




    Sinh mã

          Mã phương th c total()


     1 : total()                   2 : *[for each] subtotal()
                   :ListOfOrders                                :OneOrder


                                                       3 : getPrice()
public double total()
{

}                                                               :AirPlane


    150




                                                                            75
Sinh mã

               Mã phương th c total()


       1 : total()                   2 : *[for each] subtotal()
                     :ListOfOrders                                :OneOrder



public double total()                                    3 : getPrice()
{
  double sum = 0;
  for (int i=0; i<orderList.size(); i++)
    sum += orderList.elementAt(i).subtotal();
  return sum;                                                     :AirPlane
}


         151




         Sinh mã

               Mã phương th c subTotal()


       1 : total()                   2 : *[for each] subtotal()
                     :ListOfOrders                                :OneOrder



    public double subtotal()                             3 : getPrice()
    {
      return (quantity * airplane.getPrice());
    }
                                                                  :AirPlane


         152




                                                                              76
Sinh mã

        Mã phương th c getPrice()


1 : total()                   2 : *[for each] subtotal()
              :ListOfOrders                                :OneOrder


         public float getPrice()                  3 : getPrice()
         {
           return price;
         }

                                                           :AirPlane


  153




  Công c

        Ph n m m Rational Rose, Poisedon
        for UML, Umbrello
              Thi t k các bi u ñ UML
              Sinh mã chương trình
              •   C++
              •   Java
              •   VB
              •   Ada

  154




                                                                       77

More Related Content

Similar to Thiet ke HDT

Quan tri chien luoc -03 Internal Environment
Quan tri chien luoc -03 Internal EnvironmentQuan tri chien luoc -03 Internal Environment
Quan tri chien luoc -03 Internal Environment
Chuong Nguyen
 
101 ý tưởng giáo viên sáng tạo
101 ý tưởng giáo viên sáng tạo101 ý tưởng giáo viên sáng tạo
101 ý tưởng giáo viên sáng tạo
Quảng Văn Hải
 
Spss lesson 5.3 Tương quan hồi quy (hồi quy tuyến tính đa biến)
Spss lesson 5.3 Tương quan hồi quy (hồi quy tuyến tính đa biến)Spss lesson 5.3 Tương quan hồi quy (hồi quy tuyến tính đa biến)
Spss lesson 5.3 Tương quan hồi quy (hồi quy tuyến tính đa biến)
Si Thinh Hoang
 
Phân tích tương quan hồi quy
Phân tích tương quan hồi quyPhân tích tương quan hồi quy
Phân tích tương quan hồi quy
Si Thinh Hoang
 
7 module7 h_dhoctapvoitrogiup_cn
7 module7 h_dhoctapvoitrogiup_cn7 module7 h_dhoctapvoitrogiup_cn
7 module7 h_dhoctapvoitrogiup_cnhoangtv
 
Android program 6167
Android program 6167Android program 6167
Android program 6167
PhongSPKT
 
Giai thuat di truyen giai bai toan mang quang chiu loi da tang
Giai thuat di truyen giai bai toan mang quang chiu loi da tangGiai thuat di truyen giai bai toan mang quang chiu loi da tang
Giai thuat di truyen giai bai toan mang quang chiu loi da tang
NGUYEN VAN LUONG
 
Tổ chức điều hành hoạt động công sở
Tổ chức điều hành hoạt động công sởTổ chức điều hành hoạt động công sở
Tổ chức điều hành hoạt động công sở
nataliej4
 
Bai giang ky thuat do luong
Bai giang ky thuat do luongBai giang ky thuat do luong
Bai giang ky thuat do luong
le quangthuan
 
Kiểm thử phần mềm
Kiểm thử phần mềm Kiểm thử phần mềm
Kiểm thử phần mềm
Nguyen Vu
 
Phân tích tài chính doanh nghiệp
Phân tích tài chính doanh nghiệpPhân tích tài chính doanh nghiệp
Phân tích tài chính doanh nghiệp
Bằng Trần
 
Chuan bi thuyet_trinh
Chuan bi thuyet_trinhChuan bi thuyet_trinh
Chuan bi thuyet_trinhTin Tin
 
Ky Nang Lanh Dao
Ky Nang Lanh DaoKy Nang Lanh Dao
Ky Nang Lanh DaoThuong HL
 
Dam phan trong kinh doanh
Dam phan trong kinh doanhDam phan trong kinh doanh
Dam phan trong kinh doanh
TranNam94
 
Kinh nghiệm ứng dụng CNTT trong giảng dạy
Kinh nghiệm ứng dụng CNTT trong giảng dạyKinh nghiệm ứng dụng CNTT trong giảng dạy
Kinh nghiệm ứng dụng CNTT trong giảng dạyNguyen Van Nghiem
 
Chia sẽ kinh nghiệm ứng dụng công nghệ thông tin trong dạy học
Chia sẽ kinh nghiệm ứng dụng công nghệ thông tin trong dạy họcChia sẽ kinh nghiệm ứng dụng công nghệ thông tin trong dạy học
Chia sẽ kinh nghiệm ứng dụng công nghệ thông tin trong dạy học
Quảng Văn Hải
 
bctntlvn (110).pdf
bctntlvn (110).pdfbctntlvn (110).pdf
bctntlvn (110).pdfLuanvan84
 
Maubaocao luanvan
Maubaocao luanvanMaubaocao luanvan
Maubaocao luanvansatthu127
 

Similar to Thiet ke HDT (20)

Quan tri chien luoc -03 Internal Environment
Quan tri chien luoc -03 Internal EnvironmentQuan tri chien luoc -03 Internal Environment
Quan tri chien luoc -03 Internal Environment
 
Os php-7oohabits
Os php-7oohabitsOs php-7oohabits
Os php-7oohabits
 
101 ý tưởng giáo viên sáng tạo
101 ý tưởng giáo viên sáng tạo101 ý tưởng giáo viên sáng tạo
101 ý tưởng giáo viên sáng tạo
 
Spss lesson 5.3 Tương quan hồi quy (hồi quy tuyến tính đa biến)
Spss lesson 5.3 Tương quan hồi quy (hồi quy tuyến tính đa biến)Spss lesson 5.3 Tương quan hồi quy (hồi quy tuyến tính đa biến)
Spss lesson 5.3 Tương quan hồi quy (hồi quy tuyến tính đa biến)
 
Phân tích tương quan hồi quy
Phân tích tương quan hồi quyPhân tích tương quan hồi quy
Phân tích tương quan hồi quy
 
7 module7 h_dhoctapvoitrogiup_cn
7 module7 h_dhoctapvoitrogiup_cn7 module7 h_dhoctapvoitrogiup_cn
7 module7 h_dhoctapvoitrogiup_cn
 
Android program 6167
Android program 6167Android program 6167
Android program 6167
 
Giai thuat di truyen giai bai toan mang quang chiu loi da tang
Giai thuat di truyen giai bai toan mang quang chiu loi da tangGiai thuat di truyen giai bai toan mang quang chiu loi da tang
Giai thuat di truyen giai bai toan mang quang chiu loi da tang
 
Tổ chức điều hành hoạt động công sở
Tổ chức điều hành hoạt động công sởTổ chức điều hành hoạt động công sở
Tổ chức điều hành hoạt động công sở
 
Bai giang ky thuat do luong
Bai giang ky thuat do luongBai giang ky thuat do luong
Bai giang ky thuat do luong
 
Kiểm thử phần mềm
Kiểm thử phần mềm Kiểm thử phần mềm
Kiểm thử phần mềm
 
Phân tích tài chính doanh nghiệp
Phân tích tài chính doanh nghiệpPhân tích tài chính doanh nghiệp
Phân tích tài chính doanh nghiệp
 
Chuan bi thuyet_trinh
Chuan bi thuyet_trinhChuan bi thuyet_trinh
Chuan bi thuyet_trinh
 
Quan ly bo nho
Quan ly bo nhoQuan ly bo nho
Quan ly bo nho
 
Ky Nang Lanh Dao
Ky Nang Lanh DaoKy Nang Lanh Dao
Ky Nang Lanh Dao
 
Dam phan trong kinh doanh
Dam phan trong kinh doanhDam phan trong kinh doanh
Dam phan trong kinh doanh
 
Kinh nghiệm ứng dụng CNTT trong giảng dạy
Kinh nghiệm ứng dụng CNTT trong giảng dạyKinh nghiệm ứng dụng CNTT trong giảng dạy
Kinh nghiệm ứng dụng CNTT trong giảng dạy
 
Chia sẽ kinh nghiệm ứng dụng công nghệ thông tin trong dạy học
Chia sẽ kinh nghiệm ứng dụng công nghệ thông tin trong dạy họcChia sẽ kinh nghiệm ứng dụng công nghệ thông tin trong dạy học
Chia sẽ kinh nghiệm ứng dụng công nghệ thông tin trong dạy học
 
bctntlvn (110).pdf
bctntlvn (110).pdfbctntlvn (110).pdf
bctntlvn (110).pdf
 
Maubaocao luanvan
Maubaocao luanvanMaubaocao luanvan
Maubaocao luanvan
 

Thiet ke HDT

  • 1. Thi t k hư ng ñ i tư ng - S d ng UML (7) Nguy n Thanh Bình Khoa Công ngh Thông tin Trư ng ð i h c Bách khoa ð i h c ðà N ng N i dung Khái ni m cơ b n hư ng ñ i tư ng Bi u ñ ca s d ng Thi t k c u trúc tĩnh Thi t k c u trúc ñ ng Sinh mã 2 1
  • 2. Hư ng ch c năng D a vào các ch c năng c a h th ng H th ng là t p h p các ch c năng Chia nh các ch c năng và làm m n d n H th ng g m các h th ng con Làm ch ñ ph c t p Các ch c năng trao ñ i v i nhau b ng truy n tham s ho c d li u (ch ng h n bi n toàn c c) dùng chung 3 Hư ng ch c năng Phân c p ch c năng H th ng Ch c năng 1 Ch c năng 2 Ch c năng 1.1 Ch c năng 1.2 Ch c năng 2.1 Ch c năng 2.2 4 2
  • 3. Hư ng ch c năng Ưu ñi m Phân tích ñư c các ch c năng c a h th ng ðưa l i k t qu mong ñ i Như c ñi m Ch c năng c u trúc Thay ñ i v ch c năng khó khăn thay ñ i c u trúc Tính m c a h th ng th p Khó tái s d ng Chi phí s a ch a l i l n 5 Hư ng ñ i tư ng L y ñ i tư ng làm trung tâm H th ng = t p h p các ñ i tư ng + quan h gi a các ñ i tư ng Các ñ i tư ng trao ñ i b ng thông ñi p (message) Không s d ng bi n toàn c c ðóng gói Th a k 6 3
  • 4. Hư ng ñ i tư ng Phân bi t L p trình c u trúc • Thu t toán + c u trúc d li u = chương trình L p trình HðT • Σñ i tư ng = chương trình • ñ i tư ng = thu t toán + c u trúc d li u 7 Hư ng ñ i tư ng Ưu ñi m chính G n gũi v i th gi i th c Tái s d ng d dàng ðóng gói, che d u thông tin làm cho h th ng tin c y hơn Th a k làm gi m chi phí, h th ng có tính m cao hơn Xây d ng h th ng l n và ph c t p 8 4
  • 5. ð i tư ng ð i tư ng (object) là khái ni m cho phép mô t các s v t/th c th trong th gi i th c Các ñ i tư ng duy trì các quan h gi a chúng Nguy n Văn A là m t ñ i tư ng 9 ð i tư ng Các tính ch t c a ñ i tư ng ð i tư ng = tr ng thái + hành vi + ñ nh danh • Tr ng thái là các ñ c tính c a ñ i tư ng t i m t th i ñi m • Hành vi th hi n các ch c năng c a ñ i tư ng • ð nh danh th hi n s t n t i duy nh t c a ñ i tư ng 10 5
  • 6. ð i tư ng : tr ng thái Tr ng thái = t p h p các thu c tính M i thu c tính mô t m t ñ c tính T i m t th i ñi m c th , các thu c tính mang các giá tr trong mi n xác ñ nh Ví d • M t chi c xe máy: màu xanh, 110 cm3, dream, 12000km, ñ ng yên, … 11 ð i tư ng : hành vi Hành vi = t p h p các phương th c Phương th c: là m t thao tác ho c ñư c th c hi n b i chính nó, ho c th c hi n khi có yêu c u t môi trư ng (thông ñi p t ñ i tư ng khác) Hành vi ph thu c vào tr ng thái Ví d : • m t xe máy có các hành vi: kh i ñ ng, ch y, … 12 6
  • 7. Giao ti p gi a các ñ i tư ng Các ñ i tư ng giao ti p v i nhau G i thông ñi p (message) cho nhau Thông ñi p ð i tư ng A ð i tư ng B Các lo i thông ñi p • hàm d ng (constructor) • hàm h y (destructor) • hàm ch n l a (get) • hàm s a ñ i (set) • các hàm ch c năng khác 13 ð i tư ng Gi a các ñ i tư ng có m i liên k t (link) v i nhau Ví d Nguy n Văn A H c ð i h c ðà N ng 14 7
  • 8. L p L p là khái ni m dùng ñ mô t m t t p h p các ñ i tư ng có cùng m t c u trúc, cùng hành vi và có cùng nh ng m i quan h v i các ñ i tư ng khác L p = các thu c tính + các phương th c 15 L p L p là m t bư c tr u tư ng hóa Tìm ki m các ñi m gi ng nhau, b qua các ñi m khác nhau c a ñ i tư ng Person Name Age changeAge Tr u tư ng hóa làm gi m ñ ph c t p 16 8
  • 9. L p Quan h gi a các l p: k t h p M t k t h p là m t t p h p các m i liên k t gi a các ñ i tư ng h c Sinh viên ð ih c 17 L p & ð i tư ng ð i tư ng là th hi n (instance) c a l p Giá tr là th hi n c a thu c tính Liên k t là th hi n c a k t h p L p ð i tư ng Thu c tính Giá tr K th p Liên k t 18 9
  • 10. Các tính ch t c a HðT Tính ñóng gói (encapsulation) d li u + x lý d li u = ñ i tư ng thu c tính + phương th c = l p Ưu ñi m H n ch nh hư ng khi có s thay ñ i c p nh t Ngăn c n s truy c p thông tin t bên ngoài Che d u thông tin 19 Các tính ch t c a HðT Tính th a k (inheritance) M t l p ñư c xây d ng t m t ho c nhi u l p khác b ng vi c chia s các thu c tính và phương th c L p con th a k các thu c tính và phương th c t l p cha T ng quát hóa/chuyên bi t hóa • T ng quát hóa (generalization): ñ t các tính ch t chung c a các l p khác nhau vào m t l p cha • Chuyên bi t hóa (specialization): t o ra m t l p con có các tính ch t riêng t l p cha 20 10
  • 11. Các tính ch t c a HðT ðơn th a k : m t l p con ch th a k t m t l p cha duy nh t XeÔtô Chuyên bi t hóa T ng quát hóa XeKhách XeT i L p tr u tư ng hay l p chung: XeÔtô L p c th hay l p chuyên bi t: XeKhách L p chuyên bi t có th thay th l p chung trong t t c các ng d ng. Ví d : Ôtô t i là m t ôtô. 21 Các tính ch t c a HðT ða th a k : m t l p con th a k t nhi u l p cha khác nhau Person Personnel Student Reseacher Teacher Phd candidate 22 11
  • 12. Các tính ch t c a HðT ða th a k ð ng ñ tên các thu c tính X Y a a Z ac aX ac aY ða th a k không ñư c ch p nh n b i m t s ngôn ng : Java 23 Các tính ch t c a HðT Ưu ñi m c a th a k Phân lo i các l p: các l p ñư c phân lo i, s p x p theo m t th b c ñ d qu n lí Xây d ng các l p: các l p con ñư c xây d ng t các l p cha Ti t ki m th i gian xây d ng, tránh l p l i thông tin 24 12
  • 13. Các tính ch t c a HðT Tính ña hình (polymorphism): c a phương th c, t c là kh năng các phương th c khác nhau ñư c th c hi n ñ tr l i cùng m t yêu c u M i l p con th a k ñ c t các phương th c t l p cha, và các phương th c này có th ñư c s a ñ i trong l p con ñ th c hi n các ch c năng riêng trong l p ñó M t phương th c (cùng m t tên phương th c) có nhi u d ng (ñ nh nghĩa) khác nhau trong các l p khác nhau 25 Các tính ch t c a HðT Ví d tính ña hình ðaGiác dienTich() HìnhVuông HìnhTamGiác dienTich() dienTich() 26 13
  • 14. N i dung Khái ni m cơ b n hư ng ñ i tư ng Bi u ñ ca s d ng Thi t k c u trúc tĩnh Thi t k c u trúc ñ ng Sinh mã 27 Ca s d ng (Use case) Bư c ñ u tiên c a phân tích yêu c u là xác ñ nh các ca s d ng c a h th ng M t ca s d ng là m t tương tác gi a h th ng và môi trư ng T p h p các ca s d ng là mô t toàn b h th ng c n xây d ng 28 14
  • 15. Ca s d ng Ví d : phát tri n m t ph n m m th o văn b n Các ca s d ng có th : Nh p văn b n m i S a văn b n ñã t n t i T om cl c Chép ño n văn b n … 29 Ca s d ng M t ca s d ng tương ng v i m t ch c năng c a h th ng dư i góc nhìn c a ngư i s d ng M t ca s d ng có th l n ho c nh M t ca s d ng ch ra làm th nào m t m c tiêu c a ngư i s d ng ñư c th a mãn b i h th ng 30 15
  • 16. Ca s d ng C n phân bi t các m c tiêu c a ngư i s d ng và các tương tác c a h v i h th ng M c tiêu: cái mà ngư i s d ng mong ñ i Tương tác: k thu t cho phép ñáp ng m c tiêu Ví d M c tiêu: có ñư c m t văn b n trình bày ñ p Tương tác: ch n ñ nh d ng trang, ch n font ch , ñ nh nghĩa các ki u tiêu ñ (heading), … Th c t , chúng ta xác ñ nh các m c tiêu trư c, sau ñó ch n t p h p các tương tác ñáp ng các m c tiêu ñó 31 Ca s d ng Ví d : c n xây d ng m t h th ng ATM cho phép rút ti n Có th có vài tương tác chung trong m t k ch b n sau: ðưa th vào Nh p mã PIN Ch n s ti n rút Kh ng ñ nh s ti n rút L y th ra L y ti n L y phi u rút ti n Các tương tác trên có là các ca s d ng không ? 32 16
  • 17. Ca s d ng Câu tr l i: không. T i sao ? Vì ch ng h n “Nh p mã PIN” không ñáp ng m t m c tiêu nào c a ngư i s d ng. M c tiêu c a ngư i s d ng là “Rút ti n”, v y ñó nên là m t ca s d ng. 33 Tác nhân (Actor) Tác nhân ñóng vai trò m t ngư i s d ng ho c m t th c th bên ngoài tương tác v i h th ng Ví d : C n phát tri n h th ng tính ti n siêu th Các tác nhân có th là: Khách hàng, Ngư i bán hàng, Ngư i qu n lý, Kho hàng C n phân bi t: tác nhân (actor) và ngư i s d ng (user) Nhi u ngư i s d ng có th tương ng m t tác nhân: nhi u ngư i bán hàng khác nhau ñóng cùng vai trò ñ i v i h th ng M t ngư i s d ng có th tương ng v i nhi u tác nhân khác nhau: cùng m t ngư i có th ñ ng th i ñóng hai vai trò là ngư i bán hàng và ngư i qu n lý 34 17
  • 18. Tác nhân Tác nhân không nh t thi t luôn luôn là con ngư i Tác nhân có th là môi trư ng, h th ng khác, th c th bên ngoài tương tác v i h th ng Ví d Kho hàng là có th m t cơ s d li u 35 ð c t ca s d ng ð c t ñi n hình c a m t ca s d ng: Ca s d ng: tên ca s d ng thư ng b t ñ u b i m t ñ ng t Các tác nhân: danh sách các tác nhân liên quan Mô t : tóm t t các x lý c n th c hi n Ví d Ca s d ng: Mua hàng Các tác nhân: Khách hàng, Ngư i bán hàng Mô t : M t khách hàng sau khi ñã ch n các m t hàng, mang gi hàng ñ n qu y thu ti n. Ngư i bán hàng ghi nh n các m t hàng, thông báo t ng s ti n, thu ti n và tr ti n còn l i cho khách hàng. Khách hàng mang hàng ñi. 36 18
  • 19. ð c t ca s d ng ð c t ca s d ng có th thêm: Tham chi u (reference) ñ n m c liên quan trong ñ c t yêu c u ði u ki n trư c và ñi u ki n sau khi th c hi n ca s d ng Ví d Ca s d ng: Mua hàng Các tác nhân: Khách hàng, Ngư i bán hàng Tham chi u: R1.2, R2.3 ði u ki n trư c: Ngư i bán hàng ñã ñăng nh p thành công. ði u ki n sau: Các m t hàng bán ñã ñư c ghi nh n và ñã ghi nh n thanh toán ti n. Mô t : M t khách hàng sau khi ñã ch n các m t hàng, mang gi hàng ñ n qu y thu ti n. Ngư i bán hàng ghi nh n các m t hàng, thông báo t ng s ti n, thu ti n và tr ti n còn l i cho khách hàng. Khách hàng mang hàng ñi. 37 ð c t ca s d ng Ngoài ra, ñ i v i m i ca s d ng ta có th xây d ng m t k ch b n (scenario) hành ñ ng mô t các s ki n x y ra K ch b n: g m các s ki n chính và các s ki n ngo i l Các s ki n chia làm hai lu ng Lu ng tương ng v i các tác nhân Lu ng tương ng v i h th ng 38 19
  • 20. ð c t ca s d ng Các s ki n chính Hành ñ ng c a tác nhân Hành ñ ng c a h th ng 1. M t khách hàng ñưa hàng ñã ch n mua ñ n qu y tính ti n. 2. Ngư i bán hàng ghi nh n 3. Xác ñ nh m t hàng, hi n th t ng m t hàng. các thông tin và giá m t hàng. N u m t m t hàng có s S này ñư c hi n th . lư ng nhi u hơn m t thì ngư i bán hàng có th nh p vào m t s . 39 ð c t ca s d ng Các s ki n chính (ti p) Hành ñ ng c a tác nhân Hành ñ ng c a h th ng 4. Sau khi ñã ghi nh n t t 5. Tính và hi n th t ng s c các m t hàng, ngư i bán ti n. hàng báo hi u k t thúc vi c ghi nh n hàng. 6. Ngư i bán hàng thông báo t ng s ti n ph i tr cho khách hàng. 7. Khách hàng tr ti n cho ngư i bán hàng. 40 20
  • 21. ð c t ca s d ng Các s ki n chính (ti p) Hành ñ ng c a tác nhân Hành ñ ng c a h th ng 8. Ngư i bán hàng nh p s 9. Hi n th ti n dư và in phi u ti n khách hàng tr . bán hàng 10. Ngư i bán hàng xác 11. Ghi nh n phiên bán hàng. nh n s tr ti n, l y ti n dư tr cho khách hàng và ñưa cho khách hàng phi u bán hàng. 12. Khách hàng r i qu y thu ti n v i túi hàng 41 ð c t ca s d ng Các s ki n ph Hành ñ ng c a tác nhân Hành ñ ng c a h th ng 3. S xác nh n m t hàng không ñúng. Hi n th l i. 7. Khách hàng không có ñ ti n. Ngư i bán hàng h y b vi c bán. Lưu ý: ñ nh d ng ñ c t các ca s d ng không c n thi t ph i ch t ch . 42 21
  • 22. Ca s d ng giai ño n Elaboration Xác ñ nh càng nhi u ca s d ng m t cách có th Không ñi vào quá chi ti t, nh m gi m ñ ph c t p M t mô t ng n g n v m i ca s d ng là ñ , có th b qua ph n k ch b n, tham chi u ñ n ñ c t yêu c u, ñi u ki n trư c và ñi u ki n sau. B o ñ m r ng các ca s d ng bao quát h t các yêu c u c a h th ng 43 Bi u ñ ca s d ng Bi u ñ ca s d ng mô t quan h gi a các tác nhân và các ca s d ng c a m t h th ng. Kí hi u Use case Tác nhân K t h p ch s tham gia c a tác nhân vào ca s d ng Gi i h n c a h th ng 44 22
  • 23. Bi u ñ ca s d ng Ví d Ghi nh n Mua hàng Ngư i bán hàng Tr hàng Khách hàng Ngư i qu n lý Kh i ñ ng 45 Bi u ñ ca s d ng Các tác nhân có th có quan h th a k Ví d Khách hàng Cá nhân Công ty 46 23
  • 24. Quan h m r ng Có th x y ra trư ng h p: m t ca s d ng tương t v i m t ca s d ng khác, tuy nhiên nó g m thêm m t s hành ñ ng Ví d Ca s d ng: Mua hàng b ng th tín d ng Các tác nhân: Khách hàng, Ngư i bán hàng Mô t : M t khách hàng sau khi ñã ch n các m t hàng, mang gi hàng ñ n qu y thu ti n. Ngư i bán hàng ghi nh n các m t hàng, thông báo t ng s ti n. Khách hàng ñưa th vào máy và nh p mã PIN. Khách hàng nh n phi u bán hàng và mang hàng ñi. 47 Quan h m r ng Ca s d ng này là m t bi n th c a ca s d ng “mua hàng”, tuy nhiên thêm vào các hành ñ ng liên quan ñ n tr ti n b ng th Ca s d ng “mua hàng b ng th tín d ng” là m t s m r ng c a ca s d ng “mua hàng” 48 24
  • 25. Quan h m r ng Kí hi u Mua hàng << extends >> Mua hàng b ng th Quan h m r ng N u m t ca s d ng k t h p v i m t tác nhân, thì t t c các ca s d ng m r ng ñ u k t h p v i tác nhân ñó 49 Quan h s d ng Trư ng h p nhi u ca s d ng chia s cùng m t dãy các hành ñ ng. N u ph n chung là quan tr ng và hư ng t i m t m c tiêu rõ ràng, như th ta có th xây d ng m t ca s d ng riêng Ví d : chúng ta mu n ch p nh n mua hàng tr ti n m t l n và mua hàng tr góp Hai ca s d ng “mua hàng tr ti n m t l n” và “mua hàng tr góp” th c hi n m t dãy các hành ñ ng mà có th ñư c mô t b i ca s d ng “ghi nh n các m t hàng” 50 25
  • 26. Quan h s d ng ð c t c a ca s d ng “ghi nh n các m t hàng” Ca s d ng: ghi nh n các m t hàng Các tác nhân: ngư i bán hàng, khách hàng Mô t : Khách hàng mang các m t hàng ñ n qu y tính ti n. Ngư i bán hàng ghi nh n các m t hàng và thông báo t ng s ti n ph i tr . 51 Quan h s d ng Kí hi u Mua hàng tr << use >> m tl n Ghi nh n << use >> các m t hàng Mua hàng tr góp Quan h s d ng Ngư c v i quan h m r ng, các ca s d ng trong quan h s d ng không nh t thi t k t h p v i cùng tác nhân. 52 26
  • 27. Cách xác ñ nh các ca s d ng Phương pháp ph ng v n Khó khăn, vì hai ngư i khác nhau ñư c ph ng v n có th ñưa ra ý ki n khác nhau Phương pháp h i th o (workshop) T p h p t t c nh ng ai liên quan ñ n h th ng ñ th o lu n: các nhà tin h c và khách hàng (ngư i s d ng) M i ngư i ñ u ñưa ra ý ki n 53 Cách xác ñ nh các ca s d ng Cách ti n hành h i th o Li t kê t t c các tác nhân có th Li t kê t t c các ca s d ng có th Phân tích, bi n ch ng m i ca s d ng b ng cách vi t ra m t mô t ñơn gi n Mô hình hóa các ca s d ng và tác nhân 54 27
  • 28. Cách xác ñ nh các ca s d ng Khuy n khích Không nên c g ng tìm m i ca s d ng, • Trong quá trình phát tri n các ca s d ng s l di n d n N u không th bi n ch ng cho m t ca s d ng • Có th ñó không ph i là ca s d ng 55 S p x p các ca s d ng Khi t t c các ca s d ng ñã ñư c xác ñ nh Ti n trình phát tri n g m nhi u bư c l p M i bư c l p th c hi n thi t k , mã hóa và ki m th ch m t vài ca s d ng Làm sao chia các ca s d ng vào các bư c l p? 56 28
  • 29. S p x p các ca s d ng L p1 L p2 L p3 … A B D C Các ca s d ng 57 S p x p các ca s d ng Các ca s d ng nên ñư c th c hi n trư c Các ca s d ng ch a các r i ro/nguy cơ Các ca s d ng ki n trúc chính Các ca s d ng ñòi h i nghiên c u m i, công ngh m i Các ca s d ng mà khách hàng quan tâm hơn 58 29
  • 30. Bài t p 1 Máy rút ti n ATM có các ch c năng chính như sau: C p phát ti n cho nh ng ai có th ngân hàng (cho phép rút m t s lư ng ti n b i h th ng thông tin c a ngân hàng) và nh ng ai có th VISA (cho phép t xa b i h th ng VISA) Cho xem ki m tra s ti n tài kho n và b ti n vào tài kho n b ng ti n m t ho c ngân phi u ñ i v i nh ng ai có th ngân hàng T t c các giao tác ñ u ñư c ki m tra an toàn Ki m tra mã PIN Mã PIN nh p sai 3 l n thì th s b “nu t” C n ph i thư ng xuyên n p ti n vào máy, l y ngân phi u và các th b nu t ra Xác ñ nh các tác nhân, các ca s d ng và v bi u ñ ca s 59 d ng Bài t p 1 Các tác nhân Ngư i có th ngân hàng (bankcard) Ngư i có th VISA (VISAcard) Ngư i v n hành máy (operator) H th ng VISA (VISA) H th ng thông tin ngân hàng (bank) 60 30
  • 31. Bài t p 1 Các ca s d ng Rút ti n v i th ngân hàng (withdraw by bankcard) Rút ti n v i th VISA (withdraw by VISAcard) Ki m tra mã PIN (identify) Xem s ti n còn trong tài kho n (balance) B ti n vào tài kho n b ng ngân phi u ho c ti n m t (deposit) N p ti n vào máy (put money) L y th b nu t trong máy (get cards) L y ngân phi u trong máy (get cheques) 61 Bài t p 1 withdraw with VISA card VISAcard VISA withdraw with bank card balance bankcard bank deposit <<include>> <<extend>> identify deposit by cheque deposit by cash 62 31
  • 32. Bài t p 1 put cash get cards operator get cheques 63 Bài t p 2 Qu n lý ñào t o nhân viên: M t công ty mu n mô t b ng UML vi c ñào t o nhân viên ñ tin h c hóa m t s công vi c. Vi c ñào t o ñư c b t ñ u khi ngư i qu n lý ñào t o nh n ñư c yêu c u ñào t o c a m t nhân viên. Nhân viên này có th xem danh m c các chuyên ñ ñào t o c a các ñơn v ñào t o ký k t v i công ty. Yêu c u c a nhân viên ñư c xem xét b i ngư i qu n lý ñào t o và ngư i qu n lý s tr l i là ch p nh n hay t ch i ñ ngh ñó. Trong trư ng h p ch p nh n, ngư i qu n lý s xác ñ nh chuyên ñ phù h p trong danh m c các chuyên ñ , sau ñó g i cho nhân viên n i dung c a chuyên ñ và danh sách các khóa ñào t o. Nhân viên s ch n khóa ñào t o và ngư i qu n lý s ñăng ký khóa h c v i ñơn v ñào t o cho nhân viên. Trong trư ng h p mu n h y b ñăng ký khóa ñào t o, nhân viên ph i thông báo s m cho ngư i qu n lý bi t ñ ngư i qu n lý th c hi n h y b . Cu i khóa ñào t o, nhân viên chuy n phi u ñánh giá k t qu h c v cho công ty. Ngư i qu n lý s ki m tra hóa ñơn thanh toán ti n c a ñơn v ñào t o. Xây d ng bi u ñ ca s d ng. 64 32
  • 33. N i dung Khái ni m cơ b n hư ng ñ i tư ng Bi u ñ ca s d ng Thi t k c u trúc tĩnh Thi t k c u trúc ñ ng Sinh mã 65 C u trúc tĩnh Mô hình khái ni m Bi u ñ l p Bi u ñ ñ i tư ng 66 33
  • 34. Mô hình khái ni m Xác ñ nh các “khái ni m” quan tr ng trong h th ng Mô hình khái ni m (conceptual model) mô t các khái ni m trong các quan h c a chúng UML không cung c p mô hình khái ni m, tuy nhiên cung c p kí hi u và cú pháp ñ bi u di n mô hình ñó chính là bi u ñ l p giai ño n này, mô hình khái ni m còn ñư c g i bi u ñ l p phân tích (analysis class diagram) – lưu ý, khác v i bi u ñ l p thi t k (design class diagram) Ngoài ra, mô hình khái ni m cũng còn ñư c g i là mô hình lĩnh v c (domain model) 67 Mô hình khái ni m Mô hình khái ni m g m: Các khái ni m c a lĩnh v c nghiên c u Các thu c tính và các thao tác c a các khái ni m này Các quan h c a các khái ni m này M t khái ni m là bi u di n m c cao (tr u tư ng) v m t s v t M t khái ni m là m t ph n t c a lĩnh v c nghiên c u, ch không ph i m t ph n t c a ph n m m hay h th ng 68 34
  • 35. Mô hình khái ni m Trong mô hình khái ni m, chúng ta s n m b t các khái ni m nh n bi t b i khách hàng Ví d các khái ni m ñúng: khái ni m g n li n v i v n ñ Thang máy trong h th ng ñi u khi n thang máy Vé máy bay trong h th ng ñ t vé máy may ð t hàng trong h th ng mua bán hàng qua m ng Ví d t i v khái ni m: khái ni m g n li n v i gi i pháp DanhSachKhachHang – b ng các khách hàng EventTrigger – ti n trình th c hi n duy t h th ng 10 phút m tl n 69 Mô hình khái ni m Làm sao bi t ñư c m t khái ni m là ñúng hay không? Nguyên t c: “N u khách hàng không hi u khái ni m, r t có th ñó không ph i là khái ni m” Mô hình khái ni m s ñư c chuy n d n sang bi u ñ l p thi t k trong giai ño n xây d ng 70 35
  • 36. Xác ñ nh các khái ni m ð xác ñ nh các khái ni m, d a vào ñ c t yêu c u, mà c th hơn là d a vào các ca s d ng Ví d : ca s d ng “mua hàng” Các khái ni m có th : KháchHàng, Ngư iBánHàng, TínhTi n, MuaHàng, M tHàng, … 71 Xác ñ nh các khái ni m M ts ng c viên c a khái ni m t ñ c t ho c ca s d ng: Các ñ i tư ng v t lý (xe ôtô) Các v trí, ñ a ñi m (nhà ga) Các giao tác (thanh toán) Các vai trò c a con ngư i (ngư i bán) Các h th ng khác bên ngoài (cơ s d li u t xa) Danh t tr u tư ng (s khát, ăn u ng) Các t ch c (ñ i h c) Các s ki n (c p c u) Nguyên t c/chính sách 72 36
  • 37. Xác ñ nh các khái ni m Cách khác ñ xác ñ nh các khái ni m Các danh t và c m danh t trong ñ c t yêu c u ho c ñ c t ca s d ng có th là các khái ni m D a vào hi u bi t và kinh nghi m lo i b các danh t và c m danh t không là các khái ni m Ví d : d a vào k ch b n ca s d ng “mua hàng” G ch chân các danh t và c m danh t 73 Xác ñ nh các khái ni m Ví d Hành ñ ng c a tác nhân Hành ñ ng c a h th ng 1. M t khách hàng ñưa hàng ñã ch n mua ñ n qu y tính ti n. 2. Ngư i bán hàng ghi nh n 3. Xác ñ nh m t hàng, hi n th t ng m t hàng. các thông tin và giá m t hàng. N u m t m t hàng có s S này ñư c hi n th . lư ng nhi u hơn m t thì ngư i bán hàng có th nh p vào m t s . 74 37
  • 38. Xác ñ nh các khái ni m Ví d Hành ñ ng c a tác nhân Hành ñ ng c a h th ng 4. Sau khi ñã ghi nh n t t 5. Tính và hi n th t ng s c các m t hàng, ngư i bán ti n. hàng báo hi u k t thúc vi c ghi nh n hàng. 6. Ngư i bán hàng thông báo t ng s ti n ph i tr cho khách hàng. 7. Khách hàng tr ti n cho ngư i bán hàng. 75 Xác ñ nh các khái ni m Ví d Hành ñ ng c a tác nhân Hành ñ ng c a h th ng 8. Ngư i bán hàng nh p s 9. Hi n th ti n dư và in phi u ti n khách hàng tr . bán hàng 10. Ngư i bán hàng xác 11. Ghi nh n phiên bán hàng. nh n s tr ti n, l y ti n dư tr cho khách hàng và ñưa cho khách hàng phi u bán hàng. 12. Khách hàng r i qu y thu ti n v i túi hàng 76 38
  • 39. Xác ñ nh các khái ni m Phân bi t gi a khái ni m (concept) và thu c tính (attribut) N u m t ph n t c a lĩnh v c nghiên c u không là m t con s ho c m t chu i kí t thì có th ñó là m t khái ni m Ví d : C n xây d ng ph n m m qu n lý các chuy n bay. ðích c a m t chuy n bay là thu c tính c a m t chuy n bay hay là m t khái ni m khác ? Tr l i: ñích m t chuy n bay là m t sân bay, không ph i là m t con s hay văn b n, ñó là m t khái ni m 77 Xác ñ nh các khái ni m L p “MôT ” L p MôT là l p ch a thông tin mô t các ñ i tư ng khác • Ví d : L p M tHàng ch a các thông tin v M t Hàng M tHàng mãMH tênMH: text giá s Xêri màuS c Phương án 1 (chưa t t) 78 39
  • 40. Xác ñ nh các khái ni m L p “MôT ” M tHàng MôT M tHàng ðư c mô t 1 * mãMH s Xêri tênMH: text màuS c giá Phương án 2 (t t hơn) 79 Xác ñ nh các khái ni m L p “MôT ” Khi nào s d ng l p “MôT ” • Khi c n gi m b t s dư th a, trùng l p thông tin • Khi c n mô t v ñ i tư ng ñ c l p v i các ñ i tư ng c th • Khi c n c n duy trì thông tin v ñ i tư ng cho dù các ñ i tư ng c th b xóa 80 40
  • 41. Xác ñ nh các khái ni m L p “MôT ” Ví d : trong lĩnh v c hàng không, c n mô t quan h gi a các chuy n bay và các sân bay Chuy nBay SânBay Bay ñ n 1 ngày * tên gi s Hi u Phương án 1 81 Xác ñ nh các khái ni m L p “MôT ” MôT Chuy nBay SânBay Bay ñ n 1 * tên s Hi u 1 * Chuy nBay Phương án 2 ngày gi 82 41
  • 42. Bi u di n khái ni m S d ng kí hi u c a bi u ñ l p Môt M tHàng Khái ni m Các thu c tính Các thao tác (chưa xét ñ n giai ño n này) 83 Thu c tính Các thu c tính (attribut) c a m t khái ni m bi u di n d li u c n thi t cho các th hi n (instance) c a khái ni m Ví d Môt M tHàng Khái ni m mã Các thu c tính tên: text Ki u (không b t bu c) 84 42
  • 43. Thu c tính M t thu c tính ch ñ i di n cho các d li u liên quan ñ n khái ni m s h u thu c tính ñó Ví d Ngư iBánHàng tên Sai s Qu y Ngư iBánHàng Qu y ðúng tên s 85 Thu c tính Cách xác ñ nh các thu c tính Các con s và chu i kí t là các thu c tính N u m t tính ch t c a m t khái ni m không th làm ñư c ñi u gì thì r t có th ñó là thu c tính N u nghi ng m t thu c tính là khái ni m, thì ñơn gi n hãy coi ñó là khái ni m • Ví d : lương là thu c tính hay khái ni m so v i khái ni m công nhân ? • N u nghi ng ñó là khái ni m thì coi như lương và công nhân là hai khái ni m tách r i 86 43
  • 44. Thao tác Khái ni m có th có các thao tác (operation) Thao tác c a khái ni m chính là kh năng th c hi n c a m t th hi n c a khái ni m Ví d M tHàngBán Khái ni m ngày Các thu c tính gi B tð u: Time t ngTi n(): Integer Thao tác 87 Thao tác giai ño n elaboration, mô hình khái ni m có th không nh t thi t ph i mô t các thao tác c a khái ni m Giai ño n construction s th c hi n công vi c này m t cách chi ti t và ñ y ñ 88 44
  • 45. K th p K t h p (association) bi u di n quan h gi a các th hi n c a các khái ni m Ví d : k t h p ch a gi a khái ni m c a hàng và khái ni m m t hàng Kí hi u C aHàng Ch a > M tHàng K th p 89 K th p Có th t n t i k t h p c a nhi u hơn hai khái ni m Ví d Profession function Person work employ Company 90 45
  • 46. K th p B i s (multiplicity) c a vai trò ch ra s th hi n có th c a quan h tham gia vào quan h Các b i s có th 1: ch ñúng m t 1..*: t m t ñ n nhi u *: t 0 ñ n nhi u m..n: t m ñ n n Ví d 1 Ch a > * C aHàng M tHàng 91 H n ch k t h p (qualificator) Gi m s th hi n tham gia vào m t k t h p Kí hi u A key B qualificator M i th hi n A v i giá tr key xác ñ nh m t t p con các th hi n B tham gia vào k t h p 92 46
  • 47. H n ch k t h p (qualificator) Ví d Phân bi t các sinh viên h c t i m t ñ i h c d a vào mã s sinh viên ð iH c No sinh viên SinhViên Phân bi t các m t hàng thu c vào m t danh m c m t hàng d a vào mã s m t hàng DanhM cM tHàng ID M tHàng 93 Chuyên bi t hóa M t khái ni m có th v cơ b n gi ng v i m t khái ni m khác, ch có m t vài s khác nhau trên m t s tính ch t (thu c tính, thao tác, các k t h p) Khái ni m th nh t ñư c g i là chuyên bi t hóa (specialization) c a khái ni m th hai Khái ni m th nh t ñư c g i là khái ni m chuyên bi t hóa (specialized concept), khái ni m th hai ñư c g i là khái ni m chung (general concept) 94 47
  • 48. Chuyên bi t hóa Kí hi u general concept specialized concept specialized concept 95 Th a k Khái ni m chuyên bi t hóa th a k (inheritance) t t c các tính ch t c a c a khái ni m chung. Các tính ch t này bao g m: Các thu c tính Các thao tác Các k t h p v i khái ni m khác 96 48
  • 49. Th a k Ví d ThanhToán 1 thanh toán > 1 PhiênBánHàng t ng: Integer ThanhToánB ngTi nM t ThanhToánB ngTh Các khái ni m “ThanhToánB ngTi nM t” và “ThanhToánB ngTh ” ñ u có thu c tính “t ng” và k t h p “thanh toán” v i khái ni m “PhiênBánHàng” 97 Khái ni m tr u tư ng Tương t như l p, khái ni m tr u tư ng không có các th hi n ThanhToán 1 thanh toán > 1 PhiênBánHàng Khái ni m tr u tư ng ñư c vi t in nghiêng t ng: Integer ThanhToánB ngTi nM t ThanhToánB ngTh Lưu ý, trong tài li u vi t tay có th vi t {abstract} dư i tên khái ni m tr u tư ng 98 49
  • 50. Quan h h p thành và quan h k tt p Quan h h p thành (composition) và quan h k t t p (agregation) là hai k t h p ñ c bi t ch s s h u Quan h h p thành: m t khái ni m thành ph n ch thu c vào m t khái ni m toàn ph n ToànPh n M tPh n Quan h k t t p: m t khái ni m thành ph n có th thu c vào nhi u khái ni m toàn ph n ToànPh n M tPh n 99 Quan h h p thành và quan h k tt p 3 1 Point Ví d Triangle Circle 1 Style 1 radius color isFilled M t th hi n c a “Point” không th ñ ng th i thu c vào m t th hi n c a “Triangle” và m t th hi n c a “Circle” 100 50
  • 51. Quan h h p thành và quan h k tt p Quan h h p thành nh n m nh s s h u: n u khái ni m toàn ph n b h y b thì khái ni m thành ph n cũng b h y b theo Trong trư ng h p, th t c a các khái ni m thành ph n là quan tr ng, thì thêm vào k t h p ñi u ki n {ordered} Ví d {ordered} Polygon 3..* Point 101 Khái ni m k t h p Có th mô t các tính ch t c a m t k t h p gi a hai khái ni m b i m t khái ni m k t h p (association concept) Ví d work employ Person 1..* * Company Employment Khái ni m k t h p begin, end: Date 102 51
  • 52. Bài t p 1 Xây d ng mô hình khái ni m c a h th ng/ph n m m bán hàng t i siêu th Ph n m m bán hàng s d ng t i siêu th nh m giúp ghi nh n ho t ñ ng bán hàng, x lý các thanh toán v i khách hàng. Ph n m m ñư c s d ng b i ngư i bán hàng và ñư c qu n lý b i ngư i qu n lý siêu th . Ph n m m nh m t ñ ng hóa công vi c c a ngư i bán hàng t i qu y thu ti n. 103 Bài t p 1 1 DongHang * MatHang * MoTaMatHang 1 1..* * * 1 1 1 1..* 1 * 1 PhienBanHang CuaHang DanhMucMatHang 1 1 1 1..* * 1 1 1..* HeThongBanHang 1 1 1 QuayTinhTien ThanhToan KháchHàng 1 1 1 NguoiQuanLy Ngư iBán NhânViên 104 52
  • 53. Bài t p 2 Qu n lý ñào t o trung tâm tin h c: M t công ty mu n mô t b ng UML vi c ñào t o nhân viên ñ tin h c hóa m t s công vi c. Vi c ñào t o ñư c b t ñ u khi ngư i qu n lý ñào t o nh n ñư c yêu c u ñào t o c a m t nhân viên. Nhân viên này có th xem danh m c các chuyên ñ ñào t o c a các ñơn v ñào t o ký k t v i công ty. Yêu c u c a nhân viên ñư c xem xét b i ngư i qu n lý ñào t o và ngư i qu n lý s tr l i là ch p nh n hay t ch i ñ ngh ñó. Trong trư ng h p ch p nh n, ngư i qu n lý s xác ñ nh chuyên ñ phù h p trong danh m c các chuyên ñ , sau ñó g i cho nhân viên n i dung c a chuyên ñ và danh sách các khóa ñào t o. Nhân viên s ch n khóa ñào t o và ngư i qu n lý s ñăng ký khóa h c v i ñơn v ñào t o cho nhân viên. Trong trư ng h p mu n h y b ñăng ký khóa ñào t o, nhân viên ph i thông báo s m cho ngư i qu n lý bi t ñ ngư i qu n lý th c hi n h y b . Cu i khóa ñào t o, nhân viên chuy n phi u ñánh giá k t qu h c v cho công ty. Ngư i qu n lý s ki m tra hóa ñơn thanh toán ti n c a ñơn v ñào t o. Xây d ng bi u mô hình khái ni m. 105 Bi u ñ l p Bi u ñ l p ñ nh nghĩa: Các l p (class) • Các thu c tính (attribut) c a l p: các bi n và ki u c a chúng • Các thao tác (operation) c a l p: các phương th c (method), các tham ñ i và có th giá tr tr v Các quan h gi a các l p 106 53
  • 54. Bi u ñ l p Bi u ñ l p có cùng quy t c cú pháp v i mô hình khái ni m Th c ra, mô hình khái ni m s d ng các cú pháp c a bi u ñ l p trong UML T t c các kí hi u và quy t c (ñã trình bày) ñ i v i mô hình khái ni m ñ u ñư c s d ng ñ xây d ng bi u ñ l p Bi u ñ l p ñư c xây d ng d a trên mô hình khái ni m Các l p có th ch y u là các khái ni m ho c các thành ph n khác Bi u ñ l p s là n n t ng cho bư c mã hóa 107 Bi u ñ l p ð i v i bi u ñ l p, m i thu c tính hay m i phương th c có th có thêm m c kh ki n – kh năng nhìn th y (visibility) Kí hi u “–” m c riêng (priviate), thu c tính hay phương th c ch ñư c nhìn th y b i ñ i tư ng c a l p ñó “#” m c b o v (protected), thu c tính hay phương th c ch ñư c nhìn th y b i ñ i tư ng c a l p ñó và ñ i tư ng c a các l p th a k l p ñó “+” m c chung (public), thu c tính hay phương th c ch ñư c nhìn th y b i ñ i tư ng c a t t c các l p 108 54
  • 55. Bi u ñ l p Ví d Tên l p Shape Thu c tính – origin : Point + setOrigin(p : Point) Phương th c + getOrigin() : Point) + move(p : Point) + resize(s : Scale) + display() # pointInShape(p : Point) : Boolean 109 Bi u ñ l p Thu c tính d n xu t (derived attribut) là các thu c tính c a bi u ñ l p mà có th suy ra t các thu c tính khác. Kí hi u: thu c tính d n xu t b t ñ u b i “/”, m t ràng bu c có th ñi kèm ñ gi i thích s d n xu t Ví d Person Ràng bu c name Thu c tính d n xu t birthDate {age = CurrentDate – birthDate} / age 110 55
  • 56. Bi u ñ l p Các quan h gi a các l p Quan h k t h p (association) Quan h chuyên bi t hóa/t ng quát hóa (specialization/generalization) Quan h h p thành (composition) Quan h k t t p (agregation) Quan h ph thu c (dependence) 111 Bi u ñ l p Quan h k t h p (association) Quan h k t h p 1 Ch a > * M tHàng Qu yHàng Quan h chuyên bi t hóa/t ng quát hóa (specialization/generalization) NhânViên Quan h t ng quát hóa Ngư iBánHàng Ngư iQu nLý 112 56
  • 57. Bi u ñ l p Quan h k t t p (agregation) Quan h 0..* Company * Person Quan h h p thành (composition) Quan h 1 DanhM cM tHàng * M tHàng 113 Bi u ñ l p Quan h ph thu c (dependence): mô t m t l p ph thu c vào l p khác Ví d Quan h ph th c Circle Point center : Point 114 57
  • 58. Bi u ñ l p Ví d : chuy n ñ i mô hình khái ni m thành bi u ñ l p Gi s mô hình khái ni m ThanhToán 1 thanh toán > 1 PhiênBánHàng ThanhToánB ngTi nM t ThanhToánB ngTh 115 Bi u ñ l p Chi ti t các thu c tính ThanhToán 1 thanh toán > 1 PhiênBánHàng t ng : Integer ThanhToánB ngTi nM t ThanhToánB ngTh 116 58
  • 59. Bi u ñ l p Chi ti t các phương th c ThanhToán 1 thanh toán > 1 PhiênBánHàng t ng : Integer tínhT ng() : Integer ThanhToánB ngTi nM t ThanhToánB ngTh nh nTi n() tr VàoTh () 117 Bi u ñ l p Xác ñ nh các m c kh ki n ThanhToán 1 thanh toán > 1 PhiênBánHàng # t ng : Integer + tínhT ng() : Integer ThanhToánB ngTi nM t ThanhToánB ngTh + nh nTi n() + tr VàoTh () 118 59
  • 60. N i dung Khái ni m cơ b n hư ng ñ i tư ng Bi u ñ ca s d ng Thi t k c u trúc tĩnh Thi t k c u trúc ñ ng Sinh mã 119 C u trúc ñ ng Bi u ñ tương tác Bi u ñ tu n t Bi u ñ c ng tác 120 60
  • 61. Bi u ñ tương tác Bi u ñ tương tác mô t hành vi c a h th ng M i bi u ñ tương tác tương ng m t tác v ñư c th c hi n b i m t s các ñ i tư ng Bi u ñ tương tác xây d ng d a trên n n t ng c a bi u ñ ho t ñ ng và bi u ñ tr ng thái Bi u ñ tương tác mô t các hành ñ ng c a các ñ i tư ng ñ th c hi n m t tác v . Các hành ñ ng c a ñ i tư ng bao g m: g i các thông ñi p (message) gi a các ñ i tư ng t o (create) và h y (destroy) các ñ i tư ng 121 Bi u ñ tu n t Bi u ñ tu n t (sequence diagram) bi u di n s tương tác gi a các ñ i tư ng b ng vi c nh n m nh th t trao ñ i thông ñi p gi a các ñ i tư ng Bi u ñ tu n t g m: các ñ i tư ng các thông ñi p trao ñ i gi a các ñ i tư ng 122 61
  • 62. Bi u ñ tu n t M i ñ i tư ng có m t ñư ng sinh t n (lifeline) bi u di n th i gian t n t i c a nó. Kí hi u ð i tư ng object object:Class :Class ðư ng sinh t n 123 Bi u ñ tu n t Th i gian ho t ñ ng (activation) là th i gian mà ñ i tư ng ñang th c hi n m t thao tác Kí hi u object Th i gian ho t ñ ng 124 62
  • 63. Bi u ñ tu n t M t thông ñi p ñ c t trao ñ i gi a các ñ i tư ng Các lo i thông ñi p G i (call) Tr v (return) G i (send) T o (create) H y (destroy) 125 Bi u ñ tu n t Thông ñi p g i g i m t phương th c/thao tác trên ñ i tư ng ð i tư ng g i ph i ñ i thông ñi p ñư c th c hi n k t thúc m i có th th c hi n công vi c khác (thông ñi p ñ ng b ) M t ñ i tư ng có th g i thông ñi p cho chính nó Kí hi u object A object B object message() G i thông ñi p g i G i cho chính nó 126 63
  • 64. Bi u ñ tu n t Thông ñi p tr v tr v m t giá tr cho ñ i tư ng g i Kí hi u Object A Object B message() value Thông ñi p tr v 127 Bi u ñ tu n t Thông ñi p g i g i m t tín hi u ñ n m t ñ i tư ng Khác v i thông ñi p g i, khi ñ i tương g i thông ñi p g i nó không ch ñ i, mà ti p t c th c hi n công vi c khác (thông ñi p không ñ ng b ) Kí hi u object A object B message() Thông ñi p g i 128 64
  • 65. Bi u ñ tu n t Thông ñi p t o g i phương th c t o m t ñ i tư ng Thông ñi p h y g i phương th c h y m t ñ i tư ng Kí hi u Thông ñi p t o object A <<create>> object B <<destroy>> Thông ñi p h y 129 Bi u ñ tu n t Ví d public class A { :A private B objB; public void msg1() { msg1 <<create>> objB = new B(); :B objB.msg2(); msg2 objB.msg3(); } } msg3 public class B { … public void msg2() { … } public void msg3() { … } } 130 65
  • 66. Bi u ñ tu n t M t thông ñi p có th ñư c g i l p nhi u l n Kí hi u G i l p thông ñi p 10 l n object A object B *[1..10]message() for(i = 1; i<= 10; i++) { objectB.message() } 131 Bi u ñ tu n t M t thông ñi p có th ñư c g i l p nhi u l n ph thu c vào m t ñi u ki n Kí hi u G i l p thông ñi p trong khi C ñúng object A object B *[C]message() while(C) { objectB.message() } 132 66
  • 67. Bi u ñ tu n t M t thông ñi p có th ñư c g i ph thu c vào ñi u ki n r nhánh Kí hi u object A object B object C [C]message() if(C) objectB.message(); else [not C]message() objectC.message(); 133 Bi u ñ tu n t M t thông ñi p có th ñư c g i ñ quy Kí hi u Thông ñi p ñ quy :BinaryTree print() print() 134 67
  • 68. Bi u ñ tu n t Ví d :TàiLi u :MáyFax :Dâyði nTho i g i() nh cMáy() âmM i b mS (s ) ñãK tN i ñãK tN i g i(trang) chuy n(trang) 135 Bi u ñ tu n t Ví d :Ngư iBán :MáyTínhTi n :PhiênBánHàng thanhToán(s Ti n) thanhToán(s Ti n) <<create>> :ThanhToán thanhToán(s Ti n) ti nDư ti nDư tr Ti nDư() <<destroy>> 136 68
  • 69. Bi u ñ tu n t Gi a bi u ñ tương tác và bi u ñ l p và có m i quan h ch t ch v i nhau Ví d MáyTínhTi n PhiênBánHàng m ThanhToán() thanhToán() :MáyTínhTi n :PhiênBánHàng m ThanhToán(s Ti n) thanhToán(s Ti n) 137 Bi u ñ c ng tác Bi u ñ c ng tác (collaboration diagram) mô t s tương tác gi a các ñ i tư ng b ng vi c nh n m nh c u trúc k t h p gi a các ñ i tư ng và nh ng thông ñi p trao ñ i gi a chúng Bi u ñ c ng tác là s m r ng c a bi u ñ ñ i tư ng Bi u ñ c ng tác ch ra th t g i các thông ñi p: m i thông ñi p ñư c gán m t s tu n t ñi u ki n g i các thông ñi p 138 69
  • 70. Bi u ñ c ng tác C u trúc thông ñi p ñư c mô t d ng t ng quát như sau: precondition / condition sequence * *|| iteration : result := message(parameters) “precondition /”: danh sách s tu n t c a các thông ñi p trư c thông ñi p c n g i. Thông ñi p ch ñư c g i ñi khi t t c các thông ñi p trư c nó ñã ñư c g i ñi. “condition”: thông ñi p ch ñư c g i ñi khi ñi u ki n ñư c th a mãn. “sequence”: s tu n t c a thông ñi p c n g i. Ví d , vi c g i thông ñi p 1.3.5 theo sau vi c g i thông ñi p 1.3.4, c hai thông ñi p này n m trong lu ng 1.3. “*”: ch ra thông ñi p ñư c g i ñi nhi u l n m t cách tu n t . “*||”: ch ra thông ñi p ñư c g i ñi nhi u l n m t cách ñ ng th i. “iteration”: ch ra s l n g i thông ñi p m t cách tu n t ho c ñ ng th i “result”: ch ra giá tr tr v c a thông ñi p. “message”: tên thông ñi p “parameters”: danh sách các tham s c a thông ñi p. 139 Bi u ñ c ng tác Ví d 4 : hello() : thông ñi p có s tu n t là 4. [time = 12h] 1 : lunch() : thông ñi p này ch ñư c g i ñi n u là lúc 12h. 1.3.5 * call() : thông ñi p này ñư c g i ñi nhi u l n. 3 / *|| [i:= 1..5] 1.2 : close() : thông ñi p này ñư c g i ñi năm l n m t cách ñ ng th i và sau thông ñi p s 3. 1.2, 2.3 / [t < 10] 3.1 name = getName() : thông ñi p này ñư c g i ñi sau các thông ñi p 1.2, 2.3 và v i ñi u ki n t<10. 140 70
  • 71. Bi u ñ c ng tác Ví d bi u ñ c ng tác :Ngư iBán :ThanhToán 1 : thanhToán(s Ti n) 1.1.1 : <<create>> 2 : tr Ti nDư() 1.1.3 : ti nDư() 1.1.2 : thanhToán(s Ti n) 1.1.4 : <<desstroy>> 1.2 ti nDư() :H Th ng :PhiênBánHàng 1.1 : thanhToán(s Ti n) 141 Bi u ñ tương tác Bài t p 1: Máy rút ti n ATM Xây d ng bi u ñ tu n t cho ca s d ng rút ti n trong trư ng h p thành công Xây d ng bi u ñ tu n t cho ca s d ng xem s ti n dư trong tài kho n 142 71
  • 72. N i dung Khái ni m cơ b n hư ng ñ i tư ng Bi u ñ ca s d ng Thi t k c u trúc tĩnh Thi t k c u trúc ñ ng Sinh mã 143 Sinh mã Chuy n các mô hình thi t k sang mã chương trình (C++, Java, …) Mã chương trình hư ng ñ i tư ng ð nh nghĩa các l p và giao di n ð nh nghĩa các phương th c Các bi u ñ l p s ñư c chuy n sang mã chương trình ñ nh nghĩa các l p tương ng Các bi u ñ tương tác s ñư c chuy n thành mã chương trình ñ nh nghĩa các phương th c Các bi u ñ khác s h tr cho quá trình mã hóa 144 72
  • 73. Sinh mã Ví d : bi u ñ l p orderListe OneOrder contains > 1..* * − quantity: Integer 1 1 ListOfOrders AirPlane + subtotal() : double − datePlaced − price : float − clientID + total() : double + getPrice() : float 145 Sinh mã Mã l p OneOrder public class OneOrder OneOrder { public double subtotal() − quantity: Integer { } + subtotal() : double private int quantity; } 146 73
  • 74. Sinh mã Mã l p OneOrder OneOrder contains > public class OneOrder * { − quantity: Integer public double subtotal() 1 { AirPlane } + subtotal() : double − price : float private int quantity; private AirPlane airPlane; } + getPrice() : float 147 Sinh mã Mã l p ListOfOrders orderListe OneOrder 1..* public class ListOfOrder { − quantity: Integer public double total() 1 { ListOfOrders } + subtotal() : double − datePlaced private Date datePlaced; private int clientID; − clientID private Vector orderList; } + total() : double 148 74
  • 75. Sinh mã Bi u ñ c ng tác th c hi n phương th c total() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder 3 : getPrice() :AirPlane 149 Sinh mã Mã phương th c total() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder 3 : getPrice() public double total() { } :AirPlane 150 75
  • 76. Sinh mã Mã phương th c total() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder public double total() 3 : getPrice() { double sum = 0; for (int i=0; i<orderList.size(); i++) sum += orderList.elementAt(i).subtotal(); return sum; :AirPlane } 151 Sinh mã Mã phương th c subTotal() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder public double subtotal() 3 : getPrice() { return (quantity * airplane.getPrice()); } :AirPlane 152 76
  • 77. Sinh mã Mã phương th c getPrice() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder public float getPrice() 3 : getPrice() { return price; } :AirPlane 153 Công c Ph n m m Rational Rose, Poisedon for UML, Umbrello Thi t k các bi u ñ UML Sinh mã chương trình • C++ • Java • VB • Ada 154 77