Công cụ và môi trường phát triển phần mềm                                       Giới thiệu                                ...
Mục tiêu      w Tìm hiểu các nguyên tắc cơ bản của hướng đối tượng (object        orientation – OO)      w Tìm hiểu các kh...
Giới thiệu về Hướng đối tượng: Các chủ đề      w       Các nguyên tắc cơ bản của OO      w       Các khái niệm cơ bản của ...
Khoa CNTT - ĐHKHTNGiới thiệu về hướng đối tượng                                Trừu tượng hóa                             ...
Thế nào là trừu tượng hóa?                                            Người bán hàng                                      ...
Đóng gói (Encapsulation) là gì?      w Che dấu cài đặt bên trong với clients                § Clients phụ thuộc vào interf...
Tính đơn thể là gì?      w Phân chia nhỏ một vấn đề phức tạp thành nhiều        phần nhỏ, đơn giản hơn quản lý được       ...
Sự phân cấp (Hierarchy) là gì?                                                               Tài sản      w Mức độ trừu tư...
Giới thiệu về Hướng đối tượng: Các chủ đề      w       Các nguyên tắc cơ bản của OO      w       Các khái niệm cơ bản của ...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Object là gì?      w Một cách không hình thức, một đối tượng biểu diễn một        thực thể, dạng vật lý, khái niệm, hoặc p...
Một định nghĩa hiệu quả hơn      w Một đối tượng là một khái niệm, sự trừu tượng, hoặc một        vật với giới hạn rõ ràng...
Biểu diễn đối tượng      w Một đối tượng được biểu diễn bởi một hình chữ nhật với        tên được gạch dưới            : P...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Class là gì?      w Class là mô tả của một nhóm đối tượng có chung các thuộc        tính (attributes), hành vi (operations...
Ví dụ về Class                                        Class                                        Course        Propertie...
Biểu diễn Class      w Một class biểu diễn bằng một hình chữ nhật gồm ba phần                                             ...
Các phần trong một Class      w Một class bao gồm ba phần        § Phần đầu chứa tên class        § Phần thứ hai cho thấy ...
Các lớp đối tượng      w Bạn nhìn thấy có bao nhiêu class?Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN                20
Quan hệ giữa class và đối tượng      w Một class là một định nghĩa trừu tượng của một đối tượng         § Nó định nghĩa cấ...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Thuộc tính (Attribute) là gì?                                                    Object   Class     Attribute             ...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Hành vi (Operation) là gì?                                      CourseOffering                        Class               ...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Polymorphism là gì?      w Khả năng che dấu nhiều cài đặt khác nhau bên dưới một giao        diện duy nhất                ...
Interface là gì?      w Interface hình thức hoá polymorphism      w Interface hỗ trợ kiến trúc “plug-and-play”            ...
Biểu diễn Interface                                                           TubeBiểu diễn rút gọn                       ...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Component là gì?      w Một phần không tầm thường của hệ thống, gần như độc lập và        có thể thay thế được, giữ một ch...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Package là gì?      w Một package là một cơ chế để tổ chức các phần tử vào thành        các nhóm      w Một phần tử trong ...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Subsystem là gì?      w Tổ hợp của một package (có thể chứa các phần tử khác trong        mô hình) và một class (có hành v...
Subsystem và Component      w Component là thể hiện ở mức vật lý của một khái niệm trừu        tượng trong thiết kế      w...
Các khái niệm cơ bản của Hướng đối tượng      w       Object      w       Class      w       Attribute      w       Operat...
Các mối quan hệ      w Association (Kết hợp)         § Aggregation (Thu nạp)         § Composition (Cấu thành)      w Depe...
Mối quan hệ: Association      w Mô hình hoá một liên kết ngữ nghĩa giữa các class                                Teân Asso...
Mối quan hệ: Aggregation      w Một dạng đặc biệt của association mô hình hoá mối quan hệ        toàn thể-bộ phận giữa một...
Mối quan hệ: Composition      w Một dạng aggregation có tính sở hữu cao và cùng chu kỳ sống        § Các bộ phận không thể...
Association: Bản số và Chiều      w Bản số xác định số đối tượng tham gia vào một mối quan hệ         § Số các thể hiện củ...
Association: Bản số      w Không xác định      w Chỉ một                      1      w Không hoặc nhiều             0..*  ...
Ví dụ: Bản số và Chiều                                                Multiplicity                                Student ...
Mối quan hệ: Dependency      w Quan hệ giữa hai phần tử trong mô hình mà thay đổi ở phần tử        này có thể gây ra thay ...
Mối quan hệ: Generalization      w Quan hệ giữa các class trong đó một lớp chia sẻ cấu trúc        và/hoặc hành vi của một...
Ví dụ: Đơn kế thừa      w Một class kế thừa từ một class khác                                                          Tổ ...
Ví dụ: Đa kế thừa      w Một class kế thừa từ nhiều class khác                                 FlyingThing                ...
Cái gì được kế thừa?      w Một subclass kế thừa các thuộc tính, hành vi và các mối quan        hệ từ cha nó      w Một su...
Ví dụ: Cái gì được kế thừa                                              GroundVehicle                                     ...
Mối quan hệ: Realization      w Một classifier đóng vai trò một hợp đồng mà một classifier khác        đồng ý thực hiện   ...
Giới thiệu về Hướng đối tượng: Các chủ đề      w       Các nguyên tắc cơ bản của OO      w       Các khái niệm cơ bản của ...
Sức mạnh của Hướng đối tượng      w Một mô hình chung      w Có tính dễ dùng lại      w Mô hình phản ánh chính xác thế giơ...
Một ví dụ đơn giản: Sales Order System                                                  Đặt hàng                          ...
Class Diagram của ví dụ “bán hàng”                                                      Sale                          sell...
Hiệu ứng của sự thay đổi yêu cầu             Giả sử bạn cần phương             tiện vận chuyển mới ...                    ...
Giới thiệu về Hướng Đối Tượng: Các chủ đề      w       Các nguyên tắc cơ bản của OO      w       Các khái niệm cơ bản của ...
Các khuôn mẫu (Stereotype)      w Phân lớp và mở rộng các phần tử trong hệ thống ký hiệu UML      w Định nghĩa một phần tử...
Ví dụ: Stereotype                                                              <<boundary>>                  <<boundary>> ...
Các ghi chú (note)      w       Có thể đặt ghi chú cho mọi phần tử UML      w       Ghi chú dùng để thêm thông tin cho các...
Các giá trị đính (Tagged Values)      w Là sự mở rộng của các thuộc tính hoặc của các phần tử UML      w Là một số thuộc t...
Các ràng buộc (Constraints)      w Hỗ trợ việc thêm các luật mới hoặc hiệu chỉnh các luật đang tồn        tại             ...
Câu hỏi ôn tập      w Bốn nguyên tắc cơ bản của OO là gì ? Mô tả ngắn gọn về mối        nguyên tắc.      w Đối tượng là gì...
Câu hỏi ôn tập (tt)      w Package là gì?      w Subsystem là gì ? Nó có quan hệ như thế nào với Component?        Nó có q...
Upcoming SlideShare
Loading in …5
×

Ccmtptpm 03 gioithieuvehuongdoituong

1,098 views

Published on

1 Comment
0 Likes
Statistics
Notes
  • Dịch vụ làm luận văn tốt nghiệp, làm báo cáo thực tập tốt nghiệp, chuyên đề tốt nghiệp, tiểu luận, khóa luận, đề án môn học trung cấp, cao đẳng, tại chức, đại học và THẠC SỸ (ngành kế toán, ngân hàng, quản trị kinh doanh…) Mọi thông tin về đề tài các bạn vui lòng liên hệ theo địa chỉ SĐT: 0973.764.894 ( Miss. Huyền ) Email: dvluanvan@gmail.com ( Bạn hãy gửi thông tin bài làm, yêu cầu giáo viên qua mail) Chúng tôi nhận làm các chuyên ngành thuộc khối kinh tế, giá cho mỗi bài khoảng từ 100.000 vnđ đến 500.000 vnđ. DỊCH VỤ LÀM SLIDE POWERPOINT : 10.000VNĐ/1SLIDE
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
1,098
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
35
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Ccmtptpm 03 gioithieuvehuongdoituong

  1. 1. Công cụ và môi trường phát triển phần mềm Giới thiệu về hướng đối tượngGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 1
  2. 2. Mục tiêu w Tìm hiểu các nguyên tắc cơ bản của hướng đối tượng (object orientation – OO) w Tìm hiểu các khái niệm cơ bản và các thuật ngữ của hướng đối tượng kết hợp với hệ thống ký hiệu của UML w Đánh giá chính xác sức mạnh của OO w Tìm hiểu một số cơ chế mô hình hoá cơ bản của UMLGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 2
  3. 3. Giới thiệu về Hướng đối tượng: Các chủ đề w Các nguyên tắc cơ bản của OO w Các khái niệm cơ bản của OO w Sức mạnh của OO w Các cơ chế mô hình hoá cơ bản của UMLGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 3
  4. 4. Khoa CNTT - ĐHKHTNGiới thiệu về hướng đối tượng Trừu tượng hóa Abstraction Tính đóng gói Encapsulation 4 Các nguyên tắc cơ bản của OO Tính đơn thể Hướng đối tượng Modularity Tính phân cấp Hierarchy
  5. 5. Thế nào là trừu tượng hóa? Người bán hàng Sản phẩm Khách hàng Quản lý được độ phức tạpGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 5
  6. 6. Đóng gói (Encapsulation) là gì? w Che dấu cài đặt bên trong với clients § Clients phụ thuộc vào interface Tăng tính mềm dẻoGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 6
  7. 7. Tính đơn thể là gì? w Phân chia nhỏ một vấn đề phức tạp thành nhiều phần nhỏ, đơn giản hơn quản lý được Nhận đơn đặt hàng Hệ thống xử lý đơn đặt hàng Thực hiện đơn đặt hàng Tính tiền Quản lý được độ phức tạpGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 7
  8. 8. Sự phân cấp (Hierarchy) là gì? Tài sản w Mức độ trừu tượng hoáTăng mức độ trừu tượng Tài khoản Chứng khoán Bất động sản Tài khoản Tài khoản Cổ phiếu Trái phiếu Tiết kiệm Thanh toánGiảm mức độ trừu tượng Các phần tử trên cùng một mức phải có cùng mức độ trừu tượngGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 8
  9. 9. Giới thiệu về Hướng đối tượng: Các chủ đề w Các nguyên tắc cơ bản của OO w Các khái niệm cơ bản của OO w Sức mạnh của OO w Các cơ chế mô hình hoá cơ bản của UMLGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 9
  10. 10. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 10
  11. 11. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 11
  12. 12. Object là gì? w Một cách không hình thức, một đối tượng biểu diễn một thực thể, dạng vật lý, khái niệm, hoặc phần mềm § Thực thể vật lý Truck § Thực thể khái niệm Chemical Process § Thực thể phần mềm Linked ListGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 12
  13. 13. Một định nghĩa hiệu quả hơn w Một đối tượng là một khái niệm, sự trừu tượng, hoặc một vật với giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể w Một đối tượng có: § Trạng thái § Hành vi § Định danh (Identity)Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 13
  14. 14. Biểu diễn đối tượng w Một đối tượng được biểu diễn bởi một hình chữ nhật với tên được gạch dưới : Professor a + b = 10 ProfessorClark Chỉ có tên Class Professor Clark ProfessorClark : Professor Chỉ có tên đối tượng Tên class và tên đối tượngGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 14
  15. 15. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 15
  16. 16. Class là gì? w Class là mô tả của một nhóm đối tượng có chung các thuộc tính (attributes), hành vi (operations), các mối quan hệ và ngữ nghĩa § Một đối tượng là một thể hiện của class w Một class là sự trừu tượng mà trong đó: § Nhấn mạnh các tính chất quan trọng § Bỏ qua các tính chất khác Nguyên tắc OO: Trừu tượng hóaGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 16
  17. 17. Ví dụ về Class Class Course Properties Behavior Tên Thêm một sinh viên Địa điểm Huỷ một sinh viên a + b = 10 Thời gian Lấy danh sách giáo sư Số tín chỉ Xác định hết chỗ chưa Giờ bắt đầu Giờ kết thúcGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 17
  18. 18. Biểu diễn Class w Một class biểu diễn bằng một hình chữ nhật gồm ba phần a + b = 10 Professor Professor ClarkGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 18
  19. 19. Các phần trong một Class w Một class bao gồm ba phần § Phần đầu chứa tên class § Phần thứ hai cho thấy cấu trúc của lớp (attributes) § Phần thứ ba cho thấy các hành vi của lớp (operations) Tên class Professor name Attributes empID Operations create( ) save( ) delete( ) change( )Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 19
  20. 20. Các lớp đối tượng w Bạn nhìn thấy có bao nhiêu class?Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 20
  21. 21. Quan hệ giữa class và đối tượng w Một class là một định nghĩa trừu tượng của một đối tượng § Nó định nghĩa cấu trúc và hành vi của mỗi đối tượng trong lớp § Nó được dùng như khuôn mẫu để tạo đối tượng w Các đối tượng được nhóm thành các class Objects Class Professor Professor Smith Professor Mellon Professor JonesGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 21
  22. 22. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 22
  23. 23. Thuộc tính (Attribute) là gì? Object Class Attribute Attribute Value :CourseOffering number = 101 startTime = 900 CourseOffering endTime = 1100 number startTime endTime :CourseOffering number = 104 startTime = 1300 endTime = 1500Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 23
  24. 24. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 24
  25. 25. Hành vi (Operation) là gì? CourseOffering Class addStudent deleteStudent getStartTime Operation getEndTimeGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 25
  26. 26. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 26
  27. 27. Polymorphism là gì? w Khả năng che dấu nhiều cài đặt khác nhau bên dưới một giao diện duy nhất Nhà SX B Nhà SX A Nhà SX C Nguyên tắc OO: Đóng góiGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 27
  28. 28. Interface là gì? w Interface hình thức hoá polymorphism w Interface hỗ trợ kiến trúc “plug-and-play” Tube <<interface>> Shape Pyramid Draw Move Scale Rotate Cube Quan hệ RealizationGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 28
  29. 29. Biểu diễn Interface TubeBiểu diễn rút gọn Pyramid Shape CubeBiểu diễn chính tắc Tube Class/Stereotype) <<interface>> Shape Pyramid Draw Move Scale Rotate Cube Giới thiệu về hướng đối tượng Khoa CNTT - ĐHKHTN 29
  30. 30. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 30
  31. 31. Component là gì? w Một phần không tầm thường của hệ thống, gần như độc lập và có thể thay thế được, giữ một chức năng rõ ràng trong hệ thống w Một component có thể là § Một source code component § Một run time components hoặc Nguyên tắc OO: § Một executable component Đóng gói Source File <<EXE>> <<DLL>> Name Executable Component Name Component Name InterfaceGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 31
  32. 32. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 32
  33. 33. Package là gì? w Một package là một cơ chế để tổ chức các phần tử vào thành các nhóm w Một phần tử trong mô hình có thể chứa các phần tử khác Nguyên tắc OO: Package Name Tính đơn thể w Dùng để § Tổ chức mô hình đang phát triển § Một đơn vị trong quản trị cấu hìnhGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 33
  34. 34. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 34
  35. 35. Subsystem là gì? w Tổ hợp của một package (có thể chứa các phần tử khác trong mô hình) và một class (có hành vi) w Hiện thực hoá một hoặc nhiều interface định nghĩa cho hành vi của nó Realization Subsystem <<subsystem>> Interface Subsystem Name Interface Nguyên tắc OO: Đóng gói và Tính đơn thểGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 35
  36. 36. Subsystem và Component w Component là thể hiện ở mức vật lý của một khái niệm trừu tượng trong thiết kế w Subsystem có thể dùng để biểu diễn các component trong thiết kế Design Model Implementation Model <<subsystem>> Component Component Name Name Component Component Interface Interface Nguyên tắc OO: Đóng gói và Tính đơn thểGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 36
  37. 37. Các khái niệm cơ bản của Hướng đối tượng w Object w Class w Attribute w Operation w Interface (Polymorphism) w Component w Package w Subsystem w RelationshipsGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 37
  38. 38. Các mối quan hệ w Association (Kết hợp) § Aggregation (Thu nạp) § Composition (Cấu thành) w Dependency (Phụ thuộc) w Generalization (Tổng quát hóa) w Realization (Hiện thực hoá)Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 38
  39. 39. Mối quan hệ: Association w Mô hình hoá một liên kết ngữ nghĩa giữa các class Teân Association Professor Daïy cho University Association Tên Role Class University Professor Employee EmployerGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 39
  40. 40. Mối quan hệ: Aggregation w Một dạng đặc biệt của association mô hình hoá mối quan hệ toàn thể-bộ phận giữa một thực thể và các bộ phận của nó Whole Part Student Schedule AggregationGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 40
  41. 41. Mối quan hệ: Composition w Một dạng aggregation có tính sở hữu cao và cùng chu kỳ sống § Các bộ phận không thể sống lâu hơn thực thể Whole Part Student Schedule AggregationGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 41
  42. 42. Association: Bản số và Chiều w Bản số xác định số đối tượng tham gia vào một mối quan hệ § Số các thể hiện của một class quan hệ với MỘT thể hiện của một class khác § Được chỉ ra ở mỗi đầu của quan hệ association w Association và aggregation mặc định là hai chiều, nhưng người ta thường giới hạn theo một chiều § Mũi tên được thêm vào để chỉ chiều của mối quan hệGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 42
  43. 43. Association: Bản số w Không xác định w Chỉ một 1 w Không hoặc nhiều 0..* * w Một hoặc nhiều 1..* w Không hoặc một 0..1 w Khoảng được chỉ định 2..4 w Các khoảng không liên tục 2, 4..6Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 43
  44. 44. Ví dụ: Bản số và Chiều Multiplicity Student 1 0..* Schedule NavigationGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 44
  45. 45. Mối quan hệ: Dependency w Quan hệ giữa hai phần tử trong mô hình mà thay đổi ở phần tử này có thể gây ra thay đổi ở phần tử kia w Quan hệ “sử dụng”, không cấu trúc Client Supplier ComponentClassPackage Client Supplier Dependency relationship ClientPackage SupplierPackage Dependency relationshipGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 45
  46. 46. Mối quan hệ: Generalization w Quan hệ giữa các class trong đó một lớp chia sẻ cấu trúc và/hoặc hành vi của một hoặc nhiều class khác w Xác định một sự phân cấp các mức độ trừu tượng trong đó một subclass kế thừa từ một hoặc nhiều superclass § Đơn kế thừa § Đa kế thừa w Generalization là quan hệ “là một dạng của”Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 46
  47. 47. Ví dụ: Đơn kế thừa w Một class kế thừa từ một class khác Tổ tiên Account balance name Superclass (cha) number Withdraw() CreateStatement() Generalization Relationship Checking Savings Subclasses Withdraw() GetInterest() Withdraw() Hậu duệGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 47
  48. 48. Ví dụ: Đa kế thừa w Một class kế thừa từ nhiều class khác FlyingThing Animal Đa kê thừa Airplane Helicopter Bird Wolf Horse Chỉ sử dụng đa kế thừa khi thật cần, và luôn phải cẩn thận !Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 48
  49. 49. Cái gì được kế thừa? w Một subclass kế thừa các thuộc tính, hành vi và các mối quan hệ từ cha nó w Một subclass có thể: § Bổ sung thuộc tính, hành vi và các mối quan hệ § Định nghĩa lại các hành vi (nên cẩn thận!) w Các thuộc tính, hành vi và các mối quan hệ chung được đặt ở mức cao nhất có thể trong cấu trúc phân cấp Sự kế thừa làm nổi bật các điểm tương đồng giữa các classGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 49
  50. 50. Ví dụ: Cái gì được kế thừa GroundVehicle owner Person Superclass weight (cha) licenseNumber 0..* 1 register( ) generalization Car Truck Trailer Subclass size tonnage getTax( )Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 50
  51. 51. Mối quan hệ: Realization w Một classifier đóng vai trò một hợp đồng mà một classifier khác đồng ý thực hiện w Xuất hiện giữa: § Các Interface và các classifier hiện thực chúng Class Component Subsystem Interface Interface Interface Dạng tắt § Các Use case và các collaboration hiện thực chúng Dạng chính tắc Use Case Use-Case RealizationGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 51
  52. 52. Giới thiệu về Hướng đối tượng: Các chủ đề w Các nguyên tắc cơ bản của OO w Các khái niệm cơ bản của OO w Sức mạnh của OO w Các cơ chế mô hình hoá cơ bản của UMLGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 52
  53. 53. Sức mạnh của Hướng đối tượng w Một mô hình chung w Có tính dễ dùng lại w Mô hình phản ánh chính xác thế giơi thực § Mô tả chính xác hơn các tập dữ liệu và các xử lý § Được phân rã dựa trên các phân chia tự nhiên § Dễ hiểu và dễ bảo trì w Tính ổn định § Một thay đổi nhỏ trong yêu cầu không gây ra sự thay đổi lớn trong hệ thống đang phát triểnGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 53
  54. 54. Một ví dụ đơn giản: Sales Order System Đặt hàng Sản xuất Vận chuyển bằngGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 54
  55. 55. Class Diagram của ví dụ “bán hàng” Sale seller buyer item sold shipping mechanism Salesperson Customer Product Vehicle Corporate Individual Truck TrainGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 55
  56. 56. Hiệu ứng của sự thay đổi yêu cầu Giả sử bạn cần phương tiện vận chuyển mới ... Sale seller buyer item sold shipping mechanism Salesperson Customer Product Vehicle Corporate Individual Truck Train Airplane Việc thay đổi liên quan đến việc thêm 1 subclas mớiGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 56
  57. 57. Giới thiệu về Hướng Đối Tượng: Các chủ đề w Các nguyên tắc cơ bản của OO w Các khái niệm cơ bản của OO w Sức mạnh của OO w Các cơ chế mô hình hoá cơ bản của UMLGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 57
  58. 58. Các khuôn mẫu (Stereotype) w Phân lớp và mở rộng các phần tử trong hệ thống ký hiệu UML w Định nghĩa một phần tử của mô hình mới dựa trên một phần tử khác w Có thể áp dụng cho mọi phần tử mô hình w Được biểu diễn với tên đặt trong dấu << >> hoặc bằng các icon khác <<boundary>> MyBoundaryClass MyBoundaryClassGiới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 58
  59. 59. Ví dụ: Stereotype <<boundary>> <<boundary>> <<trace>> DesignClass <<Processor>> Processor #1 Processor #1Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 59
  60. 60. Các ghi chú (note) w Có thể đặt ghi chú cho mọi phần tử UML w Ghi chú dùng để thêm thông tin cho các lược đồ w Nó là hình chữ nhật bị bẻ góc w Ghi chú có thể móc nối với một phần tử bằng một đường đứt nét There can be up to one MaintainScheduleForm per MaintainScheduleForm user session.Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 60
  61. 61. Các giá trị đính (Tagged Values) w Là sự mở rộng của các thuộc tính hoặc của các phần tử UML w Là một số thuộc tính được định nghĩa sẵn bởi UML § Persistence § Location (chẳng hạn client, server) w Là các thuộc tính có thể được tạo bởi các nhà mô hình hoá UML phục vụ cho mục đích bất kỳ PersistentClass {persistence} anObject : ClassA {location=server}Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 61
  62. 62. Các ràng buộc (Constraints) w Hỗ trợ việc thêm các luật mới hoặc hiệu chỉnh các luật đang tồn tại Member 1 Professor Department 1..* {subset} Department Head 1 1Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 62
  63. 63. Câu hỏi ôn tập w Bốn nguyên tắc cơ bản của OO là gì ? Mô tả ngắn gọn về mối nguyên tắc. w Đối tượng là gì ? Class là gì ? Những điểm khác nhau giữa chúng ? w Thuộc tính (Attribute) là gì ? w Hành vi (Operation) là gì ? w Interface là gì ? Polymorphism là gì ? w Component là gì ?Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 63
  64. 64. Câu hỏi ôn tập (tt) w Package là gì? w Subsystem là gì ? Nó có quan hệ như thế nào với Component? Nó có quan hệ như thế nào với package? Nó có quan hệ như thế nào với class? w Tên của 4 quan hệ UML cơ bản ? Mô tả từng quan hệ. w Mô tả sức mạnh của OO. w Cho biết tên và mô tác một số cơ chế tổng quát trong UML. w Stereotype là gì? Cho biết tên của một số stereotype dùng chung.Giới thiệu về hướng đối tượngKhoa CNTT - ĐHKHTN 64

×