Phân tích và thiết kế
  hướng đối tượng với UML


Bài   1.   Mô hình hoá   hướng đối tượng
Bài   2.   Mô hình hoá   môi trường và nhu cầu
Bài   3.   Mô hình hoá   cấu trúc
Bài   4.   Mô hình hoá   hành vi
Bài   5.   Thiết kế


                                                 1
Giới thiệu môn học
 Giảng viên : Nguyễn Hữu Đức
    Điện thoại : 0975651915
    Email: ducnh-fit@mail.hut.edu.vn
    Email: ducnh.hut@gmail.com
 Thời gian:
 Tài liệu tham khảo:
    Nguyễn Văn Ba, “Phát triển hệ thống hướng đối tượng với UML
     2.0 và C++”
    Grady Booch, “Object Oriented Analysis and Design with
     Applications”
    Philippe Kruchten, “The Rational Unified Process – an
     introduction”
    Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides,
     “Design Patterns – Elements of Reusable Object Oriented
     Software”                                                     2
Bài 1


 MÔ HÌNH HOÁ HƯỚNG ĐỐI TƯỢNG

1. Giới thiệu môn học
2. Đại cương về tiếp cận hướng đối
   tượng
3. Đại cương về mô hình hoá
4. Ngôn ngữ UML
5. Tiến trình RUP
                                     3
Tiếp cận hướng đối tượng
 Đối tượng (object)
   Là thực thể đóng gói cả dữ liệu và hành vi
   Đối tượng được phân loại thành các lớp (class)
   Mỗi đối tượng là một cá thể (instance) của lớp
 Lớp
   Là một “loại” các đối tượng có chung thuộc
    tính, thao tác, quan hệ và ngữ nghĩa
   Tất cả các đối tượng đều là cá thể của lớp nào
    đó

                                                     4
Tiếp cận hướng đối tượng


            báchkhoa: TrườngĐH
Đối tượng

            sưphạm: TrườngĐH




 Lớp            TrườngĐH




                                 5
Tiếp cận hướng đối tượng
 Thuộc tính
   Là tên chung được đặt cho một dữ kiện về
    trạng thái của các đối tượng trong một lớp
   Thông thường được che dấu
 Thao tác
   Mô tả hành vi của đối tượng thuộc lớp
   Được xây dựng như các phương thức
    Tham số vào
    Kết quả trả về
    …

                                                 6
Tiếp cận hướng đối tượng
 Tính đóng gói (encapsulation)
   Dữ liệu và hành vi được giữ bên trong lớp và
    được che giấu đối với thế giới bên ngoài
   Liên kết bên trong : mạnh
   Liên kết bên ngoài : yếu




                                                   7
Tiếp cận hướng đối tượng
 Khái quát hóa (generalization)
   Là quan hệ giữa lớp khái quát và lớp cụ thể
   Lớp cụ thể thường có thêm các thuộc tính và
    hành vi so với lớp khái quát
 Kế thừa (Inheritance)
   Là kỹ thuật để thực hiện việc khái quát hóa




                                                  8
Tiếp cận hướng đối tượng
                        MathematicalObj ect



               Shape           Point          Matrix



              Shape2D             Shape3D



    Ellipse      Polygon           Line         Plane



    Circle     Quadrilateral



                Rectangle


                                                        9
Tiếp cận hướng đối tượng
 Đa hình (polymorphism)
   Là khả năng đối tượng thuộc nhiều lớp khác
    nhau có thể trả lời khác nhau cho cùng một
    thông điệp
   Poly = nhiều, morphism = hình thái




                                                 10
Tiếp cận hướng đối tượng




                           11
1. Đại cương về mô hình hoá
1.1 Mô hình
Mô hình là một dạng biểu diễn trừu tượng của một
  hệ thống thực, được diễn tả:
    ở một mức độ trừu tượng hoá nào đó,
    theo một góc nhìn nào đó,
    bởi một hình thức diễn tả hiểu được (chẳng
    hạn văn bản, đồ thị)
Diễn tả hệ thống bằng mô hình (bao gồm cả khi
  phân tích và khi thiết kế) được gọi là mô hình
  hoá.


                                                   12
1. Đại cương về mô hình hoá



1.2 Phương pháp mô hình hoá
Là sự kết hợp của ba thành phần:
   một ký pháp,
   một tiến trình,
   một (hay một số) công cụ hỗ trợ (CASE).
1.3 Hai xu hướng mô hình hoá
   hướng chức năng,
   hướng đối tượng.


                                              13
2. Ngôn ngữ mô hình hoá UML

2.1 Xuất xứ
   1/94 hình thành dự án (Booch, Rumbaugh),
   10/95 UML 0.,
   6/97 UML 0.9,
   1/97 UML 1.1, OMG công nhận là chuẩn,
   6/98 UML 1.2,
   10/98 UML 1.3,
   5/2001 UML 1.4,
   2004 UML 2.0



                                               14
2. Ngôn ngữ mô hình hoá UML


2.2 Các góc nhìn của UML

     Góc nhìn                 Góc nhìn
     thiết kế                 thực thi
                  Góc nhìn
                 ca sử dụng
     Góc nhìn                 Góc nhìn
     quá trình                 bố trí



                                         15
2. Ngôn ngữ mô hình hoá UML


2.3 Các biểu đồ của UML
   Các biểu đồ về cấu trúc:
     Biểu đồ lớp,                    Biểu đồ đối tượng,
     Biểu đồ bố trí,                       Biểu đồ gói,
     Biểu đồ thành phần,             Biểu đồ cấu trúc đa hợp,
   Các biểu đồ về hành vi:
       Biểu   đồ   ca sử dụng,       Biểu đồ hoạt động,
       Biểu   đồ   máy trạng thái,  Biểu đồ trình tự
       Biểu   đồ   giao tiếp,        Biểu đồ thời khắc,
       Biểu   đồ   bao quát tương tác.
                                                                  16
Biểu đồ lớp (class diagram)

   Cấu trúc tĩnh của lớp
       Thuộc tính
       Phương thức
       Quan hệ giữa các lớp
          Liên kết
          Khái quát hóa         Person
                                                    use
                                                                Computer

          Phụ thuộc           +name: String                  +model: String
                               +age: Integer 0..1         *   +memory: Integer




                                                                                 17
Biểu đồ đối tượng (Object diagram)

   Ảnh của hệ thống tại một thời điểm


                                 pc1 : Computer
                               model = IBM X40
           director : Person   memory = 1000

           name = John Smith
           age = 40


                               pc2 : Computer
                               model = Dell
                               memory = 512




                                                  18
Biểu đồ thành phần (component diagram)

   Cấu trúc vật lý của chương trình
       Thành phần
       Mối liên quan

             <<document>>   <<executable>>   <<library>>
               find.html      find.exe       nateng.dll




             <<document>>     <<library>>
              index.html       dbacs.dll




                                                           19
Biểu đồ bố trí (deployment diagram)

   Bố trí, trình bày kiến trúc vật lý


                                  Console




           WebClient   W Server
                        eb                  DB Server




                                                        20
Biểu đồ gói (Package Diagram)

   Gom nhóm các phần tử
   Phân rã hệ thống

         User Service   Business Service   Data Service




                                                          21
Biểu đồ cấu trúc đa hợp (composite structure
       diagram)

   Diễn tả cấu trúc bên trong của một loài

                                   Car
             +rearWheels
             +engine


                                 connect
                    rearWheels             engine




                                                      22
Biểu đồ ca sử dụng (Use case diagram)

   Trình bày chức năng hệ thống dưới góc
    độ người sử dụng
                       KyHopDong




                       ThongKeBan
         KhachHang                      NhanVienBanHang




                     ThongKeKhachHang




                                                          23
Biểu đồ trình tự (sequence diagram)

   Trình bày một hoạt cảnh (senario) giữa các đối tượng
   Giao tiếp giữa các đối tượng theo thời gian
                                         Máy BH
          Người                                                    Khách
          BH      kiểmhàng(mãsố,sốlượng
    Với mỗi       )
    mặt hàng            giá&môt                         giá&môt
                        ả                               ả
                      kếtthúcHàng()

                        tổngtiền                        tổngtiền

                                        tiềnphảitrả

                                   trảtiềnmặt(sốtiền)

                   nhậptiềntrả(sốtiền)

                     trảlại(sốtiền)

                                          tiềndư

                      phiếuthanhtoán

                                      phiếuthanhtoán

                                                                           24
Biểu đồ giao tiếp (communication diagram)

   Trình bày sự tương tác theo kết nối




                                                   25
Biểu đồ máy trạng thái ( Statechart diagram)

   Biểu diễn các phản ứng của hệ thống (đối
    tượng) trước các tình huống khác nhau




                                                     26
Biểu đồ hoạt động

   Trình bày luồng hoạt động dich chuyển
    (tuần tự, rẽ nhánh, song song




                                            27
Biểu đồ bao quát tương tác (Interaction
      overview diagram)

   Là biến thể của biểu đồ hoạt động với các
    nút là các biểu đồ tương tác khác




                                                28
Biểu đồ thời khắc (Timing diagram)

   Diễn tả các giai đoạn trải qua của 1 hay
    nhiều đối tượng




                                               29
2. Ngôn ngữ mô hình hoá UML


2.4 Mở rộng ý nghĩa của các yếu tố MH
    Đặc tả,
     Tô điểm,
     Khuôn dập,
     Tính chất và giá trị gắn nhãn,
     Ràng buộc.
2.5 Mô hình hoá với UML
    Theo nhiều góc nhìn,
   Theo nhiều mức độ trừu tượng.


                                        30
3. Tiến trình RUP
3.1 Các nguyên tắc cơ bản của RUP
    Lặp và tăng trưởng,
   Tập trung vào kiến trúc,
   Dẫn dắt theo các ca sử dụng,
   Khống chế bởi các nguy cơ.
3.2 Các pha và công đoạn của RUP
   RUP gồm 4 pha: Khởi đầu, Triển khai, Xây dựng,
    Chuyển giao.
   Mỗi pha gồm nhiều vòng lặp.
   Mỗi vòng lặp thường gồm năm công đoạn: Xác định
    nhu cầu, Phân tích, Thiết kế, Cài đặt, Đánh giá


                                                      31
Một tiến trình 10 bước
 Khởi đầu                     1. Nghiên cứu sơ bộ



              2. MHH ca sử dụng                      3. MHH lĩnh vực ứng dụng


Triển khai                        4. Tìm lớp tham gia Ca SD


                     5. MHH tương tác                   6. MHH ứng xử



              7. Làm nguyên mẫu                 8. Thiết kế hệ thống


Xây dựng và
                              9. Thiết kế chi tiết
chuyển giao


                                  10. Cài đặt


                                                                                32

Bai1

  • 1.
    Phân tích vàthiết kế hướng đối tượng với UML Bài 1. Mô hình hoá hướng đối tượng Bài 2. Mô hình hoá môi trường và nhu cầu Bài 3. Mô hình hoá cấu trúc Bài 4. Mô hình hoá hành vi Bài 5. Thiết kế 1
  • 2.
    Giới thiệu mônhọc  Giảng viên : Nguyễn Hữu Đức  Điện thoại : 0975651915  Email: ducnh-fit@mail.hut.edu.vn  Email: ducnh.hut@gmail.com  Thời gian:  Tài liệu tham khảo:  Nguyễn Văn Ba, “Phát triển hệ thống hướng đối tượng với UML 2.0 và C++”  Grady Booch, “Object Oriented Analysis and Design with Applications”  Philippe Kruchten, “The Rational Unified Process – an introduction”  Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, “Design Patterns – Elements of Reusable Object Oriented Software” 2
  • 3.
    Bài 1 MÔHÌNH HOÁ HƯỚNG ĐỐI TƯỢNG 1. Giới thiệu môn học 2. Đại cương về tiếp cận hướng đối tượng 3. Đại cương về mô hình hoá 4. Ngôn ngữ UML 5. Tiến trình RUP 3
  • 4.
    Tiếp cận hướngđối tượng  Đối tượng (object)  Là thực thể đóng gói cả dữ liệu và hành vi  Đối tượng được phân loại thành các lớp (class)  Mỗi đối tượng là một cá thể (instance) của lớp  Lớp  Là một “loại” các đối tượng có chung thuộc tính, thao tác, quan hệ và ngữ nghĩa  Tất cả các đối tượng đều là cá thể của lớp nào đó 4
  • 5.
    Tiếp cận hướngđối tượng báchkhoa: TrườngĐH Đối tượng sưphạm: TrườngĐH Lớp TrườngĐH 5
  • 6.
    Tiếp cận hướngđối tượng  Thuộc tính  Là tên chung được đặt cho một dữ kiện về trạng thái của các đối tượng trong một lớp  Thông thường được che dấu  Thao tác  Mô tả hành vi của đối tượng thuộc lớp  Được xây dựng như các phương thức Tham số vào Kết quả trả về … 6
  • 7.
    Tiếp cận hướngđối tượng  Tính đóng gói (encapsulation)  Dữ liệu và hành vi được giữ bên trong lớp và được che giấu đối với thế giới bên ngoài  Liên kết bên trong : mạnh  Liên kết bên ngoài : yếu 7
  • 8.
    Tiếp cận hướngđối tượng  Khái quát hóa (generalization)  Là quan hệ giữa lớp khái quát và lớp cụ thể  Lớp cụ thể thường có thêm các thuộc tính và hành vi so với lớp khái quát  Kế thừa (Inheritance)  Là kỹ thuật để thực hiện việc khái quát hóa 8
  • 9.
    Tiếp cận hướngđối tượng MathematicalObj ect Shape Point Matrix Shape2D Shape3D Ellipse Polygon Line Plane Circle Quadrilateral Rectangle 9
  • 10.
    Tiếp cận hướngđối tượng  Đa hình (polymorphism)  Là khả năng đối tượng thuộc nhiều lớp khác nhau có thể trả lời khác nhau cho cùng một thông điệp  Poly = nhiều, morphism = hình thái 10
  • 11.
    Tiếp cận hướngđối tượng 11
  • 12.
    1. Đại cươngvề mô hình hoá 1.1 Mô hình Mô hình là một dạng biểu diễn trừu tượng của một hệ thống thực, được diễn tả:  ở một mức độ trừu tượng hoá nào đó,  theo một góc nhìn nào đó,  bởi một hình thức diễn tả hiểu được (chẳng hạn văn bản, đồ thị) Diễn tả hệ thống bằng mô hình (bao gồm cả khi phân tích và khi thiết kế) được gọi là mô hình hoá. 12
  • 13.
    1. Đại cươngvề mô hình hoá 1.2 Phương pháp mô hình hoá Là sự kết hợp của ba thành phần:  một ký pháp,  một tiến trình,  một (hay một số) công cụ hỗ trợ (CASE). 1.3 Hai xu hướng mô hình hoá  hướng chức năng,  hướng đối tượng. 13
  • 14.
    2. Ngôn ngữmô hình hoá UML 2.1 Xuất xứ  1/94 hình thành dự án (Booch, Rumbaugh),  10/95 UML 0.,  6/97 UML 0.9,  1/97 UML 1.1, OMG công nhận là chuẩn,  6/98 UML 1.2,  10/98 UML 1.3,  5/2001 UML 1.4,  2004 UML 2.0 14
  • 15.
    2. Ngôn ngữmô hình hoá UML 2.2 Các góc nhìn của UML Góc nhìn Góc nhìn thiết kế thực thi Góc nhìn ca sử dụng Góc nhìn Góc nhìn quá trình bố trí 15
  • 16.
    2. Ngôn ngữmô hình hoá UML 2.3 Các biểu đồ của UML  Các biểu đồ về cấu trúc:  Biểu đồ lớp,  Biểu đồ đối tượng,  Biểu đồ bố trí,  Biểu đồ gói,  Biểu đồ thành phần,  Biểu đồ cấu trúc đa hợp,  Các biểu đồ về hành vi:  Biểu đồ ca sử dụng,  Biểu đồ hoạt động,  Biểu đồ máy trạng thái,  Biểu đồ trình tự  Biểu đồ giao tiếp,  Biểu đồ thời khắc,  Biểu đồ bao quát tương tác. 16
  • 17.
    Biểu đồ lớp(class diagram)  Cấu trúc tĩnh của lớp  Thuộc tính  Phương thức  Quan hệ giữa các lớp  Liên kết  Khái quát hóa Person use Computer  Phụ thuộc +name: String +model: String +age: Integer 0..1 * +memory: Integer 17
  • 18.
    Biểu đồ đốitượng (Object diagram)  Ảnh của hệ thống tại một thời điểm pc1 : Computer model = IBM X40 director : Person memory = 1000 name = John Smith age = 40 pc2 : Computer model = Dell memory = 512 18
  • 19.
    Biểu đồ thànhphần (component diagram)  Cấu trúc vật lý của chương trình  Thành phần  Mối liên quan <<document>> <<executable>> <<library>> find.html find.exe nateng.dll <<document>> <<library>> index.html dbacs.dll 19
  • 20.
    Biểu đồ bốtrí (deployment diagram)  Bố trí, trình bày kiến trúc vật lý Console WebClient W Server eb DB Server 20
  • 21.
    Biểu đồ gói(Package Diagram)  Gom nhóm các phần tử  Phân rã hệ thống User Service Business Service Data Service 21
  • 22.
    Biểu đồ cấutrúc đa hợp (composite structure diagram)  Diễn tả cấu trúc bên trong của một loài Car +rearWheels +engine connect rearWheels engine 22
  • 23.
    Biểu đồ casử dụng (Use case diagram)  Trình bày chức năng hệ thống dưới góc độ người sử dụng KyHopDong ThongKeBan KhachHang NhanVienBanHang ThongKeKhachHang 23
  • 24.
    Biểu đồ trìnhtự (sequence diagram)  Trình bày một hoạt cảnh (senario) giữa các đối tượng  Giao tiếp giữa các đối tượng theo thời gian Máy BH Người Khách BH kiểmhàng(mãsố,sốlượng Với mỗi ) mặt hàng giá&môt giá&môt ả ả kếtthúcHàng() tổngtiền tổngtiền tiềnphảitrả trảtiềnmặt(sốtiền) nhậptiềntrả(sốtiền) trảlại(sốtiền) tiềndư phiếuthanhtoán phiếuthanhtoán 24
  • 25.
    Biểu đồ giaotiếp (communication diagram)  Trình bày sự tương tác theo kết nối 25
  • 26.
    Biểu đồ máytrạng thái ( Statechart diagram)  Biểu diễn các phản ứng của hệ thống (đối tượng) trước các tình huống khác nhau 26
  • 27.
    Biểu đồ hoạtđộng  Trình bày luồng hoạt động dich chuyển (tuần tự, rẽ nhánh, song song 27
  • 28.
    Biểu đồ baoquát tương tác (Interaction overview diagram)  Là biến thể của biểu đồ hoạt động với các nút là các biểu đồ tương tác khác 28
  • 29.
    Biểu đồ thờikhắc (Timing diagram)  Diễn tả các giai đoạn trải qua của 1 hay nhiều đối tượng 29
  • 30.
    2. Ngôn ngữmô hình hoá UML 2.4 Mở rộng ý nghĩa của các yếu tố MH  Đặc tả,  Tô điểm,  Khuôn dập,  Tính chất và giá trị gắn nhãn,  Ràng buộc. 2.5 Mô hình hoá với UML  Theo nhiều góc nhìn,  Theo nhiều mức độ trừu tượng. 30
  • 31.
    3. Tiến trìnhRUP 3.1 Các nguyên tắc cơ bản của RUP  Lặp và tăng trưởng,  Tập trung vào kiến trúc,  Dẫn dắt theo các ca sử dụng,  Khống chế bởi các nguy cơ. 3.2 Các pha và công đoạn của RUP  RUP gồm 4 pha: Khởi đầu, Triển khai, Xây dựng, Chuyển giao.  Mỗi pha gồm nhiều vòng lặp.  Mỗi vòng lặp thường gồm năm công đoạn: Xác định nhu cầu, Phân tích, Thiết kế, Cài đặt, Đánh giá 31
  • 32.
    Một tiến trình10 bước Khởi đầu 1. Nghiên cứu sơ bộ 2. MHH ca sử dụng 3. MHH lĩnh vực ứng dụng Triển khai 4. Tìm lớp tham gia Ca SD 5. MHH tương tác 6. MHH ứng xử 7. Làm nguyên mẫu 8. Thiết kế hệ thống Xây dựng và 9. Thiết kế chi tiết chuyển giao 10. Cài đặt 32