SlideShare a Scribd company logo
LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Bài 11: Tổng quan về PTTK
HĐT – Biểu đồ lớp
1
IT3100
 Giới thiệu về Phân tích thiết kế hướng đối tượng
 Giới thiệu về ngôn ngữ mô hình hóa UML
 Giới thiệu các biểu đồ cơ bản
 Làm quen biểu đồ Lớp, Quan hệ giữa các lớp
2
Mục tiêu bài học
Nội dung
1. Phân tích thiết kế hướng đối tượng
2. UML là gì ? Các biểu đồ UML cơ bản
3. Biểu đồ Lớp
3
Nội dung
1. Phân tích thiết kế hướng đối tượng
2. UML là gì ? Các biểu đồ UML cơ bản
3. Biểu đồ Lớp
4
1.1. Tầm quan trọng của phân tích và thiết kế
 Hướng tiếp cận không có phân tích – thiết kế:
 Bắt đầu lập trình ngay khi có được yêu cầu
 Mất rất nhiều thời gian và tạo đi tạo lại nhiều mã nguồn
 Không có bất kỳ một kiến trúc nào
 Phải chịu khổ với những lỗi phát sinh
 Hướng tiếp cận có phân tích – thiết kế:
 Chuyển các yêu cầu của bài toán thành một bản thiết kế rõ
ràng
 Tập trung vào phân tích các YÊU CẦU và thiết kế các MÔ
HÌNH cho hệ thống TRƯỚC khi lập trình
5
1.2. Ưu điểm của việc PTTK
 Đơn giản hóa thế giới thực bằng các mô hình
 Mô tả đúng, đồng nhất cấu trúc, cách ứng xử của HT
trong suốt quá trình xây dựng
 Đảm bảo mục đích và yêu cầu của HT được thỏa mãn
trước khi xây dựng
 Cung cấp cho người dùng, khách hàng, kỹ sư phân
tích, thiết kế, kỹ sư lập trình nhiều cái nhìn khác nhau
về cùng một HT
 Ghi lại các quyết định của nhà phát triển để sử dụng
sau này
6
1.3 Phương pháp PTTK HĐT (OOAD)
 OOAD được chia thành 2 giai đoạn
 Phân tích hướng đối tượng (OOA)
 Thiết kế hướng đối tượng (OOD)
 OOA là giai đoạn nhằm tạo ra các mô hình cơ bản
(mô hình khái niệm) của hệ thống dựa theo những
gì khách hàng yêu cầu về hệ thống của họ
 OOD sẽ bổ sung thêm các thông tin thiết kế chi
tiết cho các mô hình nói trên
7
OOA
 Xác định yêu cầu phần mềm
 Đặc tả yêu cầu phần mềm thông qua mô hình các
đối tượng và tương tác giữa chúng
 Tạo được mô hình có các thành phần là đối tượng
và khái niệm đời thực, dễ hiểu với người dùng
 Mô hình hóa các thực thể, giữ nguyên cấu trúc,
quan hệ, hành vi giữa chúng
8
OOD
 Thực thi các mô hình khái niệm là đầu ra của bước
OOA
 Các khái niệm trong OOA được ánh xạ theo thành
các lớp thực thi.
 Các ràng buộc, các giao diện được thiết kế.
 Kết quả là đặc tả chi tiết về hệ thống cần xây
dựng, theo một công nghệ cụ thể được lựa chọn
9
OOD
 Tổ chức chương trình thành các tập hợp đối
tượng cộng tác
 Mỗi đối tượng là thực thể của một lớp
 Thiết kế trên kết quả của OOA
 Cải thiện, tối ưu hóa thêm
 Thiết kế các
• Phương thức (operations)
• Thuộc tính (attributes)
• Mối quan hệ giữa các lớp (classes)
 Đưa ra các biểu đồ tĩnh và động
• Tĩnh: biểu thị các lớp và đối tượng
• Động: biểu thị tương tác giữa các lớp & phương thức hoạt động
10
Nội dung
1. Phân tích thiết kế hướng đối tượng
2. UML là gì ? Các biểu đồ UML cơ bản
3. Biểu đồ Lớp
11
2. Khái niệm UML
 UML: viết tắt của “Unified Modeling Language” là
một Ngôn ngữ mô hình hóa được thống nhất
 UML là ngôn ngữ trực quan để:
trực quan hóa (visualizing)
đặc tả (specifying)
xây dựng (constructing)
tài liệu hóa (documenting)
các cấu phần của một hệ thống phần mềm
 Giúp công việc phát triển được xử lý nhất quán,
giảm thiểu lỗi xảy ra
Giúp dễ hình dung hơn cấu trúc của hệ thống
Hiệu quả hơn trong việc liên lạc, trao đổi
12
2. Khái niệm UML (2)
 Thiết lập một phương thức thống nhất để xây
dựng và “vẽ” ra các yêu cầu và thiết kế hướng đối
tượng trong quá trình PTTK phần mềm
13
2.1 Làm việc với UML
 Các mô hình UML có thể kết nối trực tiếp với rất nhiều
ngôn ngữ lập trình.
 Ánh xạ sang Java, C++, Visual Basic…
 Các bảng trong RDBMS hoặc kho lưu trữ trong OODBMS
 Cho phép các kỹ nghệ xuôi (chuyển UML thành mã nguồn)
 Cho phép kỹ nghệ ngược (xây dựng mô hình hệ thống từ mã nguồn)
 Các công cụ UML
 Công cụ mã nguồn mở: EclipseUML, UmlDesigner, StarUML, Argo
UML...
 Công cụ thương mại: Enterprise Architect, IBM Rational Software
Architect, Microsoft Visio, Visual Paradigm for UML, SmartDraw...
14
2.2 Các biểu đồ UML cơ bản
 Biểu đồ:
 là các hình vẽ bao gồm các ký hiệu phần tử mô hình hóa
 minh họa một thành phần cụ thể hay một khía cạnh cụ thể
của hệ thống.
 Một mô hình hệ thống thường có nhiều loại biểu
đồ, mỗi loại gồm nhiều biểu đồ khác nhau.
 Một biểu đồ là một thành phần của một hướng
nhìn cụ thể
 Một số loại biểu đồ có thể là thành phần của nhiều
hướng nhìn khác nhau
 UML thế hệ 2 có tới 13-14 loại biểu đồ. Trong một
project, chỉ sử dụng những biểu đồ phù hợp nhất
15
2.2. Các biểu đồ UML cơ bản
 Phân biệt:
 Biểu đồ cấu trúc: mô tả thành
phần tĩnh, luôn có của hệ thống
và mối quan hệ giữa chúng
 Biểu đồ hành vi: mô tả cách hoạt
động của hệ thống.
16
2.3. Biểu đồ cấu trúc
 Biểu đồ cấu trúc tĩnh
 Biểu đồ lớp (Class Diagram)
 Biểu đồ đối tượng (Object Diagram)
 Biểu đồ gói (Package diagram)
 Biểu đồ thực thi
 Biểu đồ thành phần (Component Diagram)
 Biểu đồ triển khai (Deployment Diagram)
 Biểu đồ cấu thành (Composite Diagram)
 Biểu đồ profile (Profile Diagram)
17
2.4. Biểu đồ hành vi
 Biểu đồ use case (Use Case Diagram)
 Biểu đồ hoạt động (Activity Diagram)
 Biểu đồ tương tác
 Biểu đồ tổng quát (Interaction overview diagram)
 Biểu đồ trình tự (Sequence Diagram)
 Biểu đồ giao tiếp/cộng tác
(Communication/Collaboration Diagram)
 Biểu đồ trạng thái (State Diagram)
 Biểu đồ thời gian (Timing Diagram)
18
Nội dung
1. Phân tích thiết kế hướng đối tượng
2. UML là gì ? Các biểu đồ UML cơ bản
3. Biểu đồ Lớp
19
3.1 Biểu đồ lớp là gì?
 Biểu đồ lớp chỉ ra sự tồn tại của các lớp và mối
quan hệ giữa chúng trong bản thiết kế logic của
một hệ thống
 Chỉ ra cấu trúc tĩnh của mô hình như lớp, cấu trúc bên
trong của chúng và mối quan hệ với các lớp khác.
 Chỉ ra tất cả hoặc một phần cấu trúc lớp của một hệ
thống.
 Không đưa ra các thông tin tạm thời.
 Khung nhìn tĩnh của một hệ thống chủ yếu hỗ trợ
các yêu cầu chức năng của hệ thống.
20
3.2 Biểu đồ lớp
21
Tác vụ/Phương thức
Thuộc tính
3.1 Các ký hiệu biểu đồ lớp
 Lớp: tên lớp, thuộc tính, tác vụ/phương thức
 Phạm vi truy cập: ai được truy cập các thông tin
trong lớp
 - : private: không được truy cập từ ngoài lớp
 + : public: truy cập được từ bất kỳ lớp/phương thức ngoài
lớp
 # : protected: truy cập được từ các lớp thừa kế
22
3.1 Các ký hiệu biểu đồ lớp (2)
 Quan hệ giữa các lớp:
• Liên kết (Association): có kết nối, có sử dụng
• Bội số quan hệ (Multiplicity)
• Có hướng (navigability): chỉ rõ hướng liên kết
• Ràng buộc (constraint): có điều kiện về liên kết
23
3.1 Các ký hiệu biểu đồ lớp (3)
 Quan hệ giữa các lớp (tiếp):
• Kết tập (Aggregation): mô tả quan hệ toàn thể
- bộ phận hay còn gọi là quan hệ “is a part of”.
• Trong quan hệ Agrregation, lớp toàn thể chỉ có
thể truy cập vào các thành phần Public của lớp
bộ phận.
• Cấu thành (composition): là một dạng kết tập,
bộ phận không thể tồn tại nếu toàn thể bị hủy
bỏ.
• Tổng quát hóa (generalization): khi một lớp là
một dạng cụ thể của một lớp khác. Hay còn
gọi là quan hệ “is a kind of” / kế thừa
• Lớp con thừa hưởng các thuộc tính/phương
thức public và protected của lớp mẹ
24
Generalization
VD: Hệ thống đăng ký khóa học
 Các lớp cơ bản
25
CloseRegistrationForm
+ open()
+ close registration()
Student
+ get tuition()
+ add schedule()
+ get schedule()
+ delete schedule()
+ has pre-requisites()
Schedule
- semester
+ commit()
+ select alternate()
+ remove offering()
+ level()
+ cancel()
+ get cost()
+ delete()
+ submit()
+ save()
+ any conflicts?()
+ create with offerings()
+ update with new selections()
CloseRegistrationController
+ is registration open?()
+ close registration()
Professor
- name
- employeeID : UniqueId
- hireDate
- status
- discipline
- maxLoad
+ submitFinalGrade()
+ acceptCourseOffering()
+ setMaxLoad()
+ takeSabbatical()
+ teachClass()
VD: Hệ thống đăng ký khóa học (2)
 Biểu đồ lớp sơ lược
26
CloseRegistrationForm
LoginForm
BillingSystem
CloseRegistrationController
RegisterForCoursesForm
Course
CourseCatalogSystem
Student
RegistrationController
CourseOffering
Schedule Professor
0..1
0..*
instructor
0..4
0..*
0..*
1
0..1
0..1
1
1
3.2. Biểu đồ đối tượng
 Giống biểu đồ lớp, thay vì biểu diễn lớp, biểu đồ đối tượng
biểu diễn các thực thể thật của lớp và quan hệ giữa chúng
27
Tên lớp
Tên đối tượng/thực thể
Bài tập 1
■ Xây dựng phần mềm quản lý đăng ký dạy và học ở trường đại học như sau:
■ Các sinh viên và giảng viên được lưu trữ thông tin vào trong phần mềm này với
các nội dung về tên, tuổi, định danh cá nhân, mã số sinh viên hoặc mã cán bộ.
Giảng viên còn có thông tin về cấp bậc (level với dạng số nguyên từ 1 trở đi);
và mã số thuế (tax).
■ Mỗi giảng viên có thể dạy nhiều lớp (Course) và có thể chủ nhiệm nhiều sinh
viên. Mỗi sinh viên cũng đăng ký nhiều lớp học (Course), ứng với mỗi sinh viên
có một bảng điểm (Table) và mỗi sinh viên được chủ nhiệm bởi một giảng viên.
■ Bảng điểm của một sinh viên lưu trữ thông tin điểm của từng lớp học của sinh
viên đăng ký.
■ Hãy xây dựng biểu đồ lớp
28
Bài tập 2
■ Chương trình quản lý Thông tin trong một nhà ga được mô tả như
sau:
■ Hoạt động chuyên chở trong nhà ga gồm nhiều đoàn tàu. Mỗi đoàn
tàu có một số hiệu riêng, thông tin về ga đích đến của đoàn tàu và lịch
trình chạy của đoàn tàu (giờ khởi hành và giờ dự kiến đến ga đích).
■ Một đoàn tàu gồm nhiều toa tàu.Mỗi toa thuộc một trong hai loại toa
chở khách hoặc toa chở hàng. Mỗi toa tàu có một số hiệu duy nhất và
trọng lượng không tải tính bằng tấn (khi không chở khách hay hàng
hoá). Mỗi toa chở khách còn có thông tin riêng về số lượng khách tối
đa có thể chở.
■ Khi tàu vào ga toa chở khách có thêm các hoạt động: thêm khách lên
toa, bớt khách xuống toa.
■ Thông tin về hành khách đi tàu gồm có họ tên, số chứng minh nhân
dân, đoàn tàu và toa tàu mà họ mua vé. ga lên tàu và điểm xuống.
■ Hãy xây dựng biểu đồ lớp
29
Bài tập 3
■ Một phần mềm Quản lý xe buýt tại bến xe được mô tả như sau:
■ Một xe buýt (Bus) chạy được tối đa 30 chuyến/ngày (Trip). Mỗi chuyến chứa
tối đa 80 hành khách (Person). Hành khách được chia làm hai loại: hành khách
mua vé theo từng lượt đi (Customer) và hành khách mua vé tháng
(Passenger).
■ Tất cả các hành khách đều được định danh bằng tên (name) và số chứng minh
thư (citizenCard). Khách mua vé tháng có thêm thông tin mã vé ID.
■ Các xe buýt có thông số về số lượng ghế ngồi (numberOfSeats) khác nhau.
Trong lớp Bus, người ta xây dựng phương thức public
isEnableToLeaveStation(Trip t), trả về true nếu số hành khách trên chuyến xe
buýt t bé hơn hoặc bằng 80% số ghế ngồi. Lớp Bus là lớp toàn thể, lớp Trip kết
tập trong nó với tên vai trò là trips.
■ Các xe buýt có thông số để định danh, đây là một con số. Trong lớp Trip, người
ta xây dựng phương thức public availableSeats( ) trả về số lượng các ghế trống
có trên chuyến xe.
■ Người ta cài đặt trong lớp Trip phương thức mang tên numberOf Passenger( ),
trả về số lượng các khách sử dụng vé tháng có trên chuyến xe.
■ Hãy xây dựng biểu đồ lớp
30

More Related Content

What's hot

Bai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaileBai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaile
Nhuận Lê Văn
 
Bai08 10 java_fx
Bai08 10 java_fxBai08 10 java_fx
Bai08 10 java_fx
Nhuận Lê Văn
 
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Đông Lương
 
Ky thuat l.trinh_java
Ky thuat l.trinh_javaKy thuat l.trinh_java
Ky thuat l.trinh_javaLam Man
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về uml
Tráng Hà Viết
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượng
Tráng Hà Viết
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcm
Hong Phuoc Nguyen
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
MasterCode.vn
 
OOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngOOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối Tượng
Nguyễn Quang Thiện
 
Oop 0
Oop 0Oop 0
[Cntt] all java
[Cntt] all java[Cntt] all java
[Cntt] all java
Hong Phuoc Nguyen
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcm
Hong Phuoc Nguyen
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbDũng Đinh
 
Oop 2
Oop 2Oop 2
Oop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpOop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớp
Tráng Hà Viết
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thua
Tuan Do
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừa
Tráng Hà Viết
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
Minh Ngoc Tran
 

What's hot (20)

Bai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaileBai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaile
 
Bai08 10 java_fx
Bai08 10 java_fxBai08 10 java_fx
Bai08 10 java_fx
 
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
 
Ky thuat l.trinh_java
Ky thuat l.trinh_javaKy thuat l.trinh_java
Ky thuat l.trinh_java
 
Java Tieng Viet
Java Tieng VietJava Tieng Viet
Java Tieng Viet
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về uml
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượng
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcm
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
 
OOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngOOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối Tượng
 
Oop 0
Oop 0Oop 0
Oop 0
 
[Cntt] all java
[Cntt] all java[Cntt] all java
[Cntt] all java
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcm
 
On thitotnghiep
On thitotnghiepOn thitotnghiep
On thitotnghiep
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vb
 
Oop 2
Oop 2Oop 2
Oop 2
 
Oop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpOop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớp
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thua
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừa
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 

Similar to Bai11 ooad bieu_dolop

T+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp umlT+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp umllam lythanh
 
OOP_Bai13(vi).pdf
OOP_Bai13(vi).pdfOOP_Bai13(vi).pdf
OOP_Bai13(vi).pdf
HienTran311128
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT
NguynMinh294
 
Chuong2 extra c_
Chuong2 extra c_Chuong2 extra c_
Chuong2 extra c_Hồ Lợi
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptx
dong92356
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagram
Huy Vũ
 
Uml diagram type
Uml diagram typeUml diagram type
Uml diagram type
Minhtuan Chau
 
Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3
NguynMinh294
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
LmTrn286060
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
LmTrn286060
 
Thcb c3&4
Thcb c3&4Thcb c3&4
Thcb c3&4
huutonguyen
 

Similar to Bai11 ooad bieu_dolop (20)

T+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp umlT+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp uml
 
OOP_Bai13(vi).pdf
OOP_Bai13(vi).pdfOOP_Bai13(vi).pdf
OOP_Bai13(vi).pdf
 
Bai1
Bai1Bai1
Bai1
 
Bai1
Bai1Bai1
Bai1
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT
 
Lecture02(2)
Lecture02(2)Lecture02(2)
Lecture02(2)
 
Lecture02
Lecture02Lecture02
Lecture02
 
Lecture02(1)
Lecture02(1)Lecture02(1)
Lecture02(1)
 
Chuong2 extra c_
Chuong2 extra c_Chuong2 extra c_
Chuong2 extra c_
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptx
 
Mo hinh-3-lop
Mo hinh-3-lopMo hinh-3-lop
Mo hinh-3-lop
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagram
 
Uml diagram type
Uml diagram typeUml diagram type
Uml diagram type
 
Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
4a domain model
4a domain model4a domain model
4a domain model
 
SE
SE SE
SE
 
Thcb c3&4
Thcb c3&4Thcb c3&4
Thcb c3&4
 
Chapter1
Chapter1Chapter1
Chapter1
 

Recently uploaded

DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdfDS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
thanhluan21
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
phamthuhoai20102005
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
Nguyen Thanh Tu Collection
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
Điện Lạnh Bách Khoa Hà Nội
 
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptxCÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CNGTRC3
 
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nguyen Thanh Tu Collection
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
Nguyen Thanh Tu Collection
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
ngocnguyensp1
 
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdfGIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
LngHu10
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
chinhkt50
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
https://www.facebook.com/garmentspace
 

Recently uploaded (11)

DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdfDS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
 
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptxCÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
 
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
 
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdfGIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
 

Bai11 ooad bieu_dolop

  • 1. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài 11: Tổng quan về PTTK HĐT – Biểu đồ lớp 1 IT3100
  • 2.  Giới thiệu về Phân tích thiết kế hướng đối tượng  Giới thiệu về ngôn ngữ mô hình hóa UML  Giới thiệu các biểu đồ cơ bản  Làm quen biểu đồ Lớp, Quan hệ giữa các lớp 2 Mục tiêu bài học
  • 3. Nội dung 1. Phân tích thiết kế hướng đối tượng 2. UML là gì ? Các biểu đồ UML cơ bản 3. Biểu đồ Lớp 3
  • 4. Nội dung 1. Phân tích thiết kế hướng đối tượng 2. UML là gì ? Các biểu đồ UML cơ bản 3. Biểu đồ Lớp 4
  • 5. 1.1. Tầm quan trọng của phân tích và thiết kế  Hướng tiếp cận không có phân tích – thiết kế:  Bắt đầu lập trình ngay khi có được yêu cầu  Mất rất nhiều thời gian và tạo đi tạo lại nhiều mã nguồn  Không có bất kỳ một kiến trúc nào  Phải chịu khổ với những lỗi phát sinh  Hướng tiếp cận có phân tích – thiết kế:  Chuyển các yêu cầu của bài toán thành một bản thiết kế rõ ràng  Tập trung vào phân tích các YÊU CẦU và thiết kế các MÔ HÌNH cho hệ thống TRƯỚC khi lập trình 5
  • 6. 1.2. Ưu điểm của việc PTTK  Đơn giản hóa thế giới thực bằng các mô hình  Mô tả đúng, đồng nhất cấu trúc, cách ứng xử của HT trong suốt quá trình xây dựng  Đảm bảo mục đích và yêu cầu của HT được thỏa mãn trước khi xây dựng  Cung cấp cho người dùng, khách hàng, kỹ sư phân tích, thiết kế, kỹ sư lập trình nhiều cái nhìn khác nhau về cùng một HT  Ghi lại các quyết định của nhà phát triển để sử dụng sau này 6
  • 7. 1.3 Phương pháp PTTK HĐT (OOAD)  OOAD được chia thành 2 giai đoạn  Phân tích hướng đối tượng (OOA)  Thiết kế hướng đối tượng (OOD)  OOA là giai đoạn nhằm tạo ra các mô hình cơ bản (mô hình khái niệm) của hệ thống dựa theo những gì khách hàng yêu cầu về hệ thống của họ  OOD sẽ bổ sung thêm các thông tin thiết kế chi tiết cho các mô hình nói trên 7
  • 8. OOA  Xác định yêu cầu phần mềm  Đặc tả yêu cầu phần mềm thông qua mô hình các đối tượng và tương tác giữa chúng  Tạo được mô hình có các thành phần là đối tượng và khái niệm đời thực, dễ hiểu với người dùng  Mô hình hóa các thực thể, giữ nguyên cấu trúc, quan hệ, hành vi giữa chúng 8
  • 9. OOD  Thực thi các mô hình khái niệm là đầu ra của bước OOA  Các khái niệm trong OOA được ánh xạ theo thành các lớp thực thi.  Các ràng buộc, các giao diện được thiết kế.  Kết quả là đặc tả chi tiết về hệ thống cần xây dựng, theo một công nghệ cụ thể được lựa chọn 9
  • 10. OOD  Tổ chức chương trình thành các tập hợp đối tượng cộng tác  Mỗi đối tượng là thực thể của một lớp  Thiết kế trên kết quả của OOA  Cải thiện, tối ưu hóa thêm  Thiết kế các • Phương thức (operations) • Thuộc tính (attributes) • Mối quan hệ giữa các lớp (classes)  Đưa ra các biểu đồ tĩnh và động • Tĩnh: biểu thị các lớp và đối tượng • Động: biểu thị tương tác giữa các lớp & phương thức hoạt động 10
  • 11. Nội dung 1. Phân tích thiết kế hướng đối tượng 2. UML là gì ? Các biểu đồ UML cơ bản 3. Biểu đồ Lớp 11
  • 12. 2. Khái niệm UML  UML: viết tắt của “Unified Modeling Language” là một Ngôn ngữ mô hình hóa được thống nhất  UML là ngôn ngữ trực quan để: trực quan hóa (visualizing) đặc tả (specifying) xây dựng (constructing) tài liệu hóa (documenting) các cấu phần của một hệ thống phần mềm  Giúp công việc phát triển được xử lý nhất quán, giảm thiểu lỗi xảy ra Giúp dễ hình dung hơn cấu trúc của hệ thống Hiệu quả hơn trong việc liên lạc, trao đổi 12
  • 13. 2. Khái niệm UML (2)  Thiết lập một phương thức thống nhất để xây dựng và “vẽ” ra các yêu cầu và thiết kế hướng đối tượng trong quá trình PTTK phần mềm 13
  • 14. 2.1 Làm việc với UML  Các mô hình UML có thể kết nối trực tiếp với rất nhiều ngôn ngữ lập trình.  Ánh xạ sang Java, C++, Visual Basic…  Các bảng trong RDBMS hoặc kho lưu trữ trong OODBMS  Cho phép các kỹ nghệ xuôi (chuyển UML thành mã nguồn)  Cho phép kỹ nghệ ngược (xây dựng mô hình hệ thống từ mã nguồn)  Các công cụ UML  Công cụ mã nguồn mở: EclipseUML, UmlDesigner, StarUML, Argo UML...  Công cụ thương mại: Enterprise Architect, IBM Rational Software Architect, Microsoft Visio, Visual Paradigm for UML, SmartDraw... 14
  • 15. 2.2 Các biểu đồ UML cơ bản  Biểu đồ:  là các hình vẽ bao gồm các ký hiệu phần tử mô hình hóa  minh họa một thành phần cụ thể hay một khía cạnh cụ thể của hệ thống.  Một mô hình hệ thống thường có nhiều loại biểu đồ, mỗi loại gồm nhiều biểu đồ khác nhau.  Một biểu đồ là một thành phần của một hướng nhìn cụ thể  Một số loại biểu đồ có thể là thành phần của nhiều hướng nhìn khác nhau  UML thế hệ 2 có tới 13-14 loại biểu đồ. Trong một project, chỉ sử dụng những biểu đồ phù hợp nhất 15
  • 16. 2.2. Các biểu đồ UML cơ bản  Phân biệt:  Biểu đồ cấu trúc: mô tả thành phần tĩnh, luôn có của hệ thống và mối quan hệ giữa chúng  Biểu đồ hành vi: mô tả cách hoạt động của hệ thống. 16
  • 17. 2.3. Biểu đồ cấu trúc  Biểu đồ cấu trúc tĩnh  Biểu đồ lớp (Class Diagram)  Biểu đồ đối tượng (Object Diagram)  Biểu đồ gói (Package diagram)  Biểu đồ thực thi  Biểu đồ thành phần (Component Diagram)  Biểu đồ triển khai (Deployment Diagram)  Biểu đồ cấu thành (Composite Diagram)  Biểu đồ profile (Profile Diagram) 17
  • 18. 2.4. Biểu đồ hành vi  Biểu đồ use case (Use Case Diagram)  Biểu đồ hoạt động (Activity Diagram)  Biểu đồ tương tác  Biểu đồ tổng quát (Interaction overview diagram)  Biểu đồ trình tự (Sequence Diagram)  Biểu đồ giao tiếp/cộng tác (Communication/Collaboration Diagram)  Biểu đồ trạng thái (State Diagram)  Biểu đồ thời gian (Timing Diagram) 18
  • 19. Nội dung 1. Phân tích thiết kế hướng đối tượng 2. UML là gì ? Các biểu đồ UML cơ bản 3. Biểu đồ Lớp 19
  • 20. 3.1 Biểu đồ lớp là gì?  Biểu đồ lớp chỉ ra sự tồn tại của các lớp và mối quan hệ giữa chúng trong bản thiết kế logic của một hệ thống  Chỉ ra cấu trúc tĩnh của mô hình như lớp, cấu trúc bên trong của chúng và mối quan hệ với các lớp khác.  Chỉ ra tất cả hoặc một phần cấu trúc lớp của một hệ thống.  Không đưa ra các thông tin tạm thời.  Khung nhìn tĩnh của một hệ thống chủ yếu hỗ trợ các yêu cầu chức năng của hệ thống. 20
  • 21. 3.2 Biểu đồ lớp 21 Tác vụ/Phương thức Thuộc tính
  • 22. 3.1 Các ký hiệu biểu đồ lớp  Lớp: tên lớp, thuộc tính, tác vụ/phương thức  Phạm vi truy cập: ai được truy cập các thông tin trong lớp  - : private: không được truy cập từ ngoài lớp  + : public: truy cập được từ bất kỳ lớp/phương thức ngoài lớp  # : protected: truy cập được từ các lớp thừa kế 22
  • 23. 3.1 Các ký hiệu biểu đồ lớp (2)  Quan hệ giữa các lớp: • Liên kết (Association): có kết nối, có sử dụng • Bội số quan hệ (Multiplicity) • Có hướng (navigability): chỉ rõ hướng liên kết • Ràng buộc (constraint): có điều kiện về liên kết 23
  • 24. 3.1 Các ký hiệu biểu đồ lớp (3)  Quan hệ giữa các lớp (tiếp): • Kết tập (Aggregation): mô tả quan hệ toàn thể - bộ phận hay còn gọi là quan hệ “is a part of”. • Trong quan hệ Agrregation, lớp toàn thể chỉ có thể truy cập vào các thành phần Public của lớp bộ phận. • Cấu thành (composition): là một dạng kết tập, bộ phận không thể tồn tại nếu toàn thể bị hủy bỏ. • Tổng quát hóa (generalization): khi một lớp là một dạng cụ thể của một lớp khác. Hay còn gọi là quan hệ “is a kind of” / kế thừa • Lớp con thừa hưởng các thuộc tính/phương thức public và protected của lớp mẹ 24 Generalization
  • 25. VD: Hệ thống đăng ký khóa học  Các lớp cơ bản 25 CloseRegistrationForm + open() + close registration() Student + get tuition() + add schedule() + get schedule() + delete schedule() + has pre-requisites() Schedule - semester + commit() + select alternate() + remove offering() + level() + cancel() + get cost() + delete() + submit() + save() + any conflicts?() + create with offerings() + update with new selections() CloseRegistrationController + is registration open?() + close registration() Professor - name - employeeID : UniqueId - hireDate - status - discipline - maxLoad + submitFinalGrade() + acceptCourseOffering() + setMaxLoad() + takeSabbatical() + teachClass()
  • 26. VD: Hệ thống đăng ký khóa học (2)  Biểu đồ lớp sơ lược 26 CloseRegistrationForm LoginForm BillingSystem CloseRegistrationController RegisterForCoursesForm Course CourseCatalogSystem Student RegistrationController CourseOffering Schedule Professor 0..1 0..* instructor 0..4 0..* 0..* 1 0..1 0..1 1 1
  • 27. 3.2. Biểu đồ đối tượng  Giống biểu đồ lớp, thay vì biểu diễn lớp, biểu đồ đối tượng biểu diễn các thực thể thật của lớp và quan hệ giữa chúng 27 Tên lớp Tên đối tượng/thực thể
  • 28. Bài tập 1 ■ Xây dựng phần mềm quản lý đăng ký dạy và học ở trường đại học như sau: ■ Các sinh viên và giảng viên được lưu trữ thông tin vào trong phần mềm này với các nội dung về tên, tuổi, định danh cá nhân, mã số sinh viên hoặc mã cán bộ. Giảng viên còn có thông tin về cấp bậc (level với dạng số nguyên từ 1 trở đi); và mã số thuế (tax). ■ Mỗi giảng viên có thể dạy nhiều lớp (Course) và có thể chủ nhiệm nhiều sinh viên. Mỗi sinh viên cũng đăng ký nhiều lớp học (Course), ứng với mỗi sinh viên có một bảng điểm (Table) và mỗi sinh viên được chủ nhiệm bởi một giảng viên. ■ Bảng điểm của một sinh viên lưu trữ thông tin điểm của từng lớp học của sinh viên đăng ký. ■ Hãy xây dựng biểu đồ lớp 28
  • 29. Bài tập 2 ■ Chương trình quản lý Thông tin trong một nhà ga được mô tả như sau: ■ Hoạt động chuyên chở trong nhà ga gồm nhiều đoàn tàu. Mỗi đoàn tàu có một số hiệu riêng, thông tin về ga đích đến của đoàn tàu và lịch trình chạy của đoàn tàu (giờ khởi hành và giờ dự kiến đến ga đích). ■ Một đoàn tàu gồm nhiều toa tàu.Mỗi toa thuộc một trong hai loại toa chở khách hoặc toa chở hàng. Mỗi toa tàu có một số hiệu duy nhất và trọng lượng không tải tính bằng tấn (khi không chở khách hay hàng hoá). Mỗi toa chở khách còn có thông tin riêng về số lượng khách tối đa có thể chở. ■ Khi tàu vào ga toa chở khách có thêm các hoạt động: thêm khách lên toa, bớt khách xuống toa. ■ Thông tin về hành khách đi tàu gồm có họ tên, số chứng minh nhân dân, đoàn tàu và toa tàu mà họ mua vé. ga lên tàu và điểm xuống. ■ Hãy xây dựng biểu đồ lớp 29
  • 30. Bài tập 3 ■ Một phần mềm Quản lý xe buýt tại bến xe được mô tả như sau: ■ Một xe buýt (Bus) chạy được tối đa 30 chuyến/ngày (Trip). Mỗi chuyến chứa tối đa 80 hành khách (Person). Hành khách được chia làm hai loại: hành khách mua vé theo từng lượt đi (Customer) và hành khách mua vé tháng (Passenger). ■ Tất cả các hành khách đều được định danh bằng tên (name) và số chứng minh thư (citizenCard). Khách mua vé tháng có thêm thông tin mã vé ID. ■ Các xe buýt có thông số về số lượng ghế ngồi (numberOfSeats) khác nhau. Trong lớp Bus, người ta xây dựng phương thức public isEnableToLeaveStation(Trip t), trả về true nếu số hành khách trên chuyến xe buýt t bé hơn hoặc bằng 80% số ghế ngồi. Lớp Bus là lớp toàn thể, lớp Trip kết tập trong nó với tên vai trò là trips. ■ Các xe buýt có thông số để định danh, đây là một con số. Trong lớp Trip, người ta xây dựng phương thức public availableSeats( ) trả về số lượng các ghế trống có trên chuyến xe. ■ Người ta cài đặt trong lớp Trip phương thức mang tên numberOf Passenger( ), trả về số lượng các khách sử dụng vé tháng có trên chuyến xe. ■ Hãy xây dựng biểu đồ lớp 30