22
Chương 14: Tổ chức chương trình theo Hướng đối tượng

Chương 14: Tổ chức chương trình theo Hướng đối tượng

  • Upload
    jarvis

  • View
    58

  • Download
    1

Embed Size (px)

DESCRIPTION

Chương 14: Tổ chức chương trình theo Hướng đối tượng. Nội dung chính. Nhắc lại về cấu trúc chương trình C++ Cách tổ chức các lớp trong chương trình Làm việc với Project trong các môi trường lập trình. :b. :c. :d. Nhắc lại về cấu trúc chương trình C++. - PowerPoint PPT Presentation

Citation preview

Page 1: Chương 14: Tổ chức chương trình theo Hướng đối tượng

Chương 14: Tổ chức chương trình theo Hướng đối tượng

Page 2: Chương 14: Tổ chức chương trình theo Hướng đối tượng

2

Nội dung chính

• Nhắc lại về cấu trúc chương trình C++• Cách tổ chức các lớp trong chương trình• Làm việc với Project trong các môi trường lập

trình

Page 3: Chương 14: Tổ chức chương trình theo Hướng đối tượng

3

Nhắc lại về cấu trúc chương trình C++

• Phần chính của một chương trình C++ (theo kiểu HĐT nói chung) bao gồm 2 phần:– Tập các đối tượng– Tập các thông báo từ hàm main() đến các đối tượng và được truyền

giữa các đối tượng

main()

:a

:b

:c

:d

m1

m2

m3 m4

Page 4: Chương 14: Tổ chức chương trình theo Hướng đối tượng

4

Nhắc lại về cấu trúc chương trình C++

• Vấn đề đặt ra:

1. Làm thế nào để xác định được các đối tượng/lớp?

2. Làm thế nào xác định mối quan hệ giữa chúng?

Page 5: Chương 14: Tổ chức chương trình theo Hướng đối tượng

5

Cách tổ chức các lớp trong chương trình

• Quá trình tổ chức chương trình– Bước 1: xác định các yêu cầu về chức năng, dữ

liệu và giao diện– Bước 2: xác định số lượng đối tượng và trách

nhiệm xử lý của chúng– Bước 3: mô hình hóa các chức năng xử lý (tương

tác giữa các đối tượng)

Page 6: Chương 14: Tổ chức chương trình theo Hướng đối tượng

6

Nguyên tắc xác định các đối tượng

• Xác định đối tượng theo hướng dữ liệu• Xác định đối tượng theo hướng chức năng• Xác định đối tượng theo hướng người

dùng/giao diện (khi có nhiều NSD khác nhau)

Page 7: Chương 14: Tổ chức chương trình theo Hướng đối tượng

7

Nguyên tắc xác định các đối tượng (tiếp)

• Xác định đối tượng theo hướng dữ liệu:– Mỗi đối tượng dữ liệu nên giao cho một đối tượng

chịu trách nhiệm– Hạn chế việc giao cho một đối tượng chịu trách

nhiệm trên nhiều đối tượng dữ liệu, nhất là với các đối tượng dữ liệu tương đối độc lập

Page 8: Chương 14: Tổ chức chương trình theo Hướng đối tượng

8

Nguyên tắc xác định các đối tượng (tiếp)

• Xác định đối tượng theo hướng chức năng– Mỗi đối tượng sẽ chịu trách nhiệm về một nhóm

chức năng có liên quan– Hạn chế việc giao các chức năng không có hoặc ít

liên quan cho chỉ một đối tượng

Page 9: Chương 14: Tổ chức chương trình theo Hướng đối tượng

9

Các mô hình hướng đối tượng

• Giới thiệu về UML:– Viết tắt của Unified Modelling Language, Ngôn ngữ

mô hình hóa hợp nhất, là sự hợp nhất của nhiều ngôn ngữ mô hình hóa HĐT như: Booch’93 (của Booch), OOSE (của Jacobson), OMT-2 (của Rumbaugh)

– Năm 1995, phiên bản đầu tiên UML 0.9 của Booch và Rumbaugh

– Năm 1997, UML 1.1 bản chuẩn hóa của Booch, Rumbaugh và Jacobson

– Năm 2003, UML 2.0

Page 10: Chương 14: Tổ chức chương trình theo Hướng đối tượng

10

Các mô hình hướng đối tượng (tiếp)

• Vai trò của UML– Cung cấp các ký hiệu, các mô hình biểu diễn các giai

đoạn phát triển phần mềm theo phương pháp hướng đối tượng

• Các mô hình UML– Mô hình lớp (class diagram)– Mô hình tuần tự (sequence diagram) – Mô hình hoạt động (activity diagram)– Mô hình cộng tác (collaboration diagram)– …

Page 11: Chương 14: Tổ chức chương trình theo Hướng đối tượng

11

Class Diagram

• Vai trò:– Biểu diễn các lớp và quan hệ tĩnh giữa các lớp– Quan hệ tĩnh bao gồm:

• Kế thừa (inheritance)• Liên kết (association):

– Liên kết một ngôi (tự liên kết)– Liên kết hai ngôi

Page 12: Chương 14: Tổ chức chương trình theo Hướng đối tượng

12

Class Diagram (tiếp)

• Ký hiệu cho lớp

Class name

- Attributes

+ Operations()

Mức độ che dấu (visibility):

“-”: private“+”: public“#”: protected

Page 13: Chương 14: Tổ chức chương trình theo Hướng đối tượng

13

Class Diagram (tiếp)

• Ký hiệu cho các quan hệ: kế thừa

A

- Attributes

+ Operations()

B

- Attributes

+ Operations()

Lớp B kế thừa lớp A

Page 14: Chương 14: Tổ chức chương trình theo Hướng đối tượng

14

Class Diagram (tiếp)

• Ký hiệu cho các quan hệ: liên kết

A

- Attributes

+ Operations()

A

- Attributes

+ Operations()

B

- Attributes

+ Operations()

Tự liên kết Liên kết 2 ngôi

0..1

1

0..*

1..*

Tên l/k ▶

Tên l/k ▶

Page 15: Chương 14: Tổ chức chương trình theo Hướng đối tượng

15

Class Diagram (tiếp)

• Lực lượng của liên kết:– Xác định số lượng các đối tượng tham gia vào liên

kết– Ký hiệu:

• Đúng 1: 1• Không hoặc 1: 0,1• Không hoặc nhiều hơn: 0..*

Page 16: Chương 14: Tổ chức chương trình theo Hướng đối tượng

16

Ví dụ về Class DiagramPerson

-Name-Dob

+ Person()+ setName(newName)+ getName()

Student-ID-School

+ Student()+ setSchool(newSch)+ getSchool()

StudentList-ListOfStudents

+ StudentList()+ AddStudent(newStd)+ Remove()

1

0..* ◀contains1

1..*leads ▶

Page 17: Chương 14: Tổ chức chương trình theo Hướng đối tượng

17

Sequence Diagram

• Vai trò:– Biểu diễn sự tương tác động giữa các đối tượng

trong một chức năng xử lý– Nó biểu diễn các đối tượng tham gia, trình tự thời

gian và nội dung trao đổi thông báo giữa các đối tượng khi thực hiện chức năng đó

Page 18: Chương 14: Tổ chức chương trình theo Hướng đối tượng

18

Sequence Diagram – ví dụ

m:Menu list:ItemList

Show()

SelectAddItem()

AskEnterItem()

InputItem(s)AddItem(s)

Page 19: Chương 14: Tổ chức chương trình theo Hướng đối tượng

19

Sequence Diagram – Cấu tạo

Tác nhân (actor):Là người sử dụng tham gia Tên tác nhân

Đối tượng (object): Object : Class

Đường chỉ thời gian sống (Life-line) :

Page 20: Chương 14: Tổ chức chương trình theo Hướng đối tượng

20

Sequence Diagram – Cấu tạo

Thông báo (message):

Khoảng thời gian thi hành (execution occurrence):

A Message()

Return value

Page 21: Chương 14: Tổ chức chương trình theo Hướng đối tượng

21

Ví dụ áp dụng

• Xây dựng chương trình quản lý danh sách sinh viên, mỗi sinh viên gồm các thông tin: MSSV, Họ tên, Lớp học, Khóa. Chương trình gồm các chức năng:– Khởi tạo danh sách: tạo ra một danh sách rỗng– Bổ sung một sinh viên vào đầu/cuối danh sách– Loại bỏ một sinh viên ở đầu/cuối danh sách– Sắp xếp danh sách theo Họ tên

Page 22: Chương 14: Tổ chức chương trình theo Hướng đối tượng

22

Làm việc với Project