Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML

Khái niệm Định danh

• Định danh:

• Xâu ký tự thể hiện tên các biến, các phương thức,

các lớp và nhãn

• là duy nhất trong chương trình

• Quy định với định danh hợp lệ:

• Gồm các ký tự có thể là chữ cái, chữ số, ký tự '$'

hoặc ‘_’

• Không được phép:

• Bắt đầu bởi một chữ số

• Trùng với từ khóa

• Chứa dấu cách

• Phân biệt chữ hoa chữ thường

• Yourname, yourname, YourName và yourName là 4 định

danh khác nhau

Khái niệm Định danh (2)

• Quy ước với định danh (naming convention):

• Phải mang tính gợi nhớ

• Ví dụ: nên dùng định danh “bookPrice” hơn là “bp” để lưu thông tin về giá

1 quyển sách

• Bắt đầu bằng chữ cái

• Gói (package): tất cả sử dụng chữ thường

• theexample

• Lớp (Class): viết hoa chữ cái đầu tiên trong các từ ghép lại

• TheExample

• Phương thức/thuộc tính (method/field): Bắt đầu bằng chữ thường,

viết hoa chữ cái đầu tiên trong các từ còn lại

• theExample

• Hằng (constants): Tất cả viết hoa

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 1

Trang 1

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 2

Trang 2

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 3

Trang 3

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 4

Trang 4

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 5

Trang 5

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 6

Trang 6

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 7

Trang 7

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 8

Trang 8

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 9

Trang 9

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 161 trang duykhanh 6600
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML

Bài giảng Lập trình hướng đối tượng - Bài 2: Cơ bản về Java và UML
• Mô tả tập hợp các use case của hệ thống
 • Mỗi use case mô tả một yêu cầu chức năng của hệ thống
• Các thành phần chính:
 • Tác nhân : Thường là người dùng, hệ thống ngoài, thiết
 bị ngoài, v.v. có tương tác với hệ thống.
 • Các Use case
 • Đường bao hệ thống
 122
 3.3. Biểu đồ Use case (2)
• Liên kết trong biểu đồ use case
 • Liên kết không có nhãn: liên kết tác nhân
 tham gia vào use case
 >
 • Liên kết có nhãn >: Use case B có A B
 thể được sử dụng trong use case A.
 >
 • Liên kết có nhãn >: Use case B A B
 luôn được sử dụng trong use case A.
 • Liên kết tổng quát hóa: mô tả quan hệ khái A B
 quát hóa của tác nhân hoặc use case, A là
 khái quát hóa của B.
 123
Ví dụ - Biểu đồ Use case 
 124
3.4. Cách xây dựng BĐ use case
• Người PT phần mềm thống nhất với khách hàng về bản mô
 tả hệ thống chi tiết, các yêu cầu chức năng, phi chức năng,
 v.v.
• Xác định các use case từ bản mô tả hệ thống:
 • Mỗi use case mô tả một yêu cầu chức năng của hệ thống, chưa
 quan tâm tới việc chức năng đó được thưc thi như thế nào.
 • Tên use case là một Cụm động từ, ví dụ “Mua hàng”
• Xác định các tác nhân bên ngoài có ảnh hưởng đến hệ thống
 • Tác nhân là nhóm người có 1 vài trò rõ ràng. Tên tác nhân là Danh
 từ.
 • Ví dụ “Người mua”, “Quản trị viên” chứ không phải tên riêng của
 người dùng “Bob”, “John” ...
• Hoàn thiện các liên kết, đường bao hệ thống.
 125
4. Biểu đồ Hoạt động
Tham khảo Lession 4 – Session 35-36, bài giảng Smartdraw
https://www.smartdraw.com/activity-diagram/
https://www.youtube.com/watch?v=Wf_xlagfHmg
 126
4.1. Khái niệm BĐ hoạt động
• Biểu đồ hoạt động được sử dụng để biểu diễn chuỗi
 các hoạt động hoặc luồng điều khiển có thứ tự của hệ
 thống, được thực hiện trong một use case.
• Các thành phần trong biểu đồ hoạt động
 • Điểm khởi đầu
 • Hoạt động
 • Luồng hành động
 • Luồng đối tượng
 • Quyết định rẽ nhánh
 127
4.1. Khái niệm BĐ hoạt động (2)
• Các thành phần trong biểu đồ hoạt động (tiếp)
 • Thanh đồng bộ
 • Sự kiện thời gian
 • Sự kiện gộp
 • Gửi nhận tín hiệu
 • Sự kiện ngắt
 • Làn hoạt động
 • Điểm kết thúc
 128
4.2. Ví dụ
 Điểm khởi đầu
 Rẽ nhánh
 Select Course Hoạt động
 Tiến trình song song
 [ delete course ]
 Delete Course
 [ add course ] 
 Thanh đồng bộ (phân nhánh)
 Điều kiện rẽ nhánh Check Check 
 Schedule Pre-requisites
 [ checks completed ] [ checks failed ] Thanh đồng bộ (Kết hợp)
 Assign to Resolve Luồng hoạt động
 Course Conflicts
 Update 
 Schedule
 Điểm kết thúc
 129
 4.2. Ví dụ (2)
Gọi một
biểu đồ
hoạt động
khác
 130
5. Biểu đồ lớp
Tham khảo Lession 4 – Session 6-9, bài giảng Smartdraw
https://www.smartdraw.com/class-diagram/
https://www.youtube.com/watch?time_continue=1&v=WI0oyCeon2A
 131
5.1. Khái niệm lớp
• Lớp là khái niệm mô tả 1 tập hợp các đối tượng
 mang cùng một ý nghĩa (bao gồm cả thuộc tính,
 hành vi/tác vụ, quan hệ).
• Mỗi một đối tượng sẽ là một thực thể / cá thể rõ
 ràng của lớp.
 • Mỗi sinh viên là một đối tượng với
 • các thuộc tính: tên, tuổi, khoa, lớp, khoá, Mô hình hóa
 • các tác vụ: học bài, lên lớp, làm bài kiểm tra, Lớp Student
 • Mỗi chiếc điện thoại là một đối tượng với Mô hình hóa
 Lớp SmartPhone
 • các thuộc tính: số SIM, model, kích thước,
 • các tác vụ: gọi số, nhắn tin, nghe cuộc gọi tới, từ chối cuộc gọi,
 132
5.2. Biểu đồ lớp
• Dạng biểu đồ phổ biến nhất, mô tả cấu trúc tĩnh
 của hệ thống
• Biểu diễn các lớp và mối quan hệ giữa các lớp
 Thuộc
 tính
 Tác vụ/Phương thức
 133
5.2. Biểu đồ lớp (2)
• Các ký hiệu
 • 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ế
 • 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
 134
 5.2. Biểu đồ lớp (3)
 • Các ký hiệu (tiếp)
 • 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”.
 • 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 Generalization
 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”
 • 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ẹ
Trong quan hệ Agrregation, lớp toàn thể chỉ có thể 135
truy cập vào các thành phần Public của lớp bộ phận.
5.3. Cách phát hiện lớp
• Phân tích bản mô tả yêu cầu về hệ thống, phát hiện ra tập các đối tượng
 có thể có trong hệ thống (dựa trên các Danh từ, Ngữ danh từ).
• Phân tích bản mô tả use case của hệ thống, bổ sung các đối tượng phát
 sinh.
• Thống nhất các đối tượng trùng nhau
 • Ví dụ “shopping cart”, “shopping basket”, “shopping trolley” thành “shopping cart”
• Loại bỏ các đối tượng vô nghĩa, hoặc không đủ lớn thành một lớp
 • Ví dụ “Internet”, “Password”, “Title”, 
• Giao diện giữa hệ thống và bên ngoài có thể coi là các đối tượng biên
 • Ví dụ: form đăng nhập, form đăng ký tín chỉ, v.v.
• Có thể hình thành các đối tượng điều khiển nếu cần
 • Ví dụ: đối tượng điều khiển đăng nhập RegistrationController v.v.
• Mô hình hóa các đối tượng thành các lớp, biểu diễn quan hệ giữa các
 lớp.
 136
Ví dụ: Hệ thống đăng ký khóa học
• Các lớp cơ bản
CloseRegistrationForm Schedule CloseRegistrationController
 - semester
+ open() + is registration open?() Professor
+ close registration() + commit() + close registration() - name
 + select alternate() - employeeID : UniqueId
 + remove offering() - hireDate
 + level() - status
 + cancel() - discipline
 Student + get cost() - maxLoad
 + delete()
 + submit()
+ get tuition() + submitFinalGrade()
 + save()
+ add schedule() + acceptCourseOffering()
 + any conflicts?()
+ get schedule() + setMaxLoad()
 + create with offerings()
+ delete schedule() + takeSabbatical()
 + update with new selections()
+ has pre-requisites() + teachClass()
 137
Ví dụ: Hệ thống đăng ký khóa học (2)
• Biểu đồ lớp sơ lược
 LoginForm RegistrationController
 RegisterForCoursesForm 1
 0..1
 1
 0..1 CloseRegistrationController
 Schedule
 0..* Professor
 CloseRegistrationForm
 0..*
 instructor 0..1
 1 0..4
 Student
 Course CourseOffering
 0..*
 CourseCatalogSystem
 BillingSystem
 138
5.4. 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
 Tên đối tượng/thực thể
 Tên lớp
 139
6. Biểu đồ tương tác
 140
6. Biểu đồ tương tác
• Xác định hành vi của các đối tượng trong hệ thống,
 cách chúng tương tác với nhau để thực hiện 1 use case
 nào đó.
• Các đối tượng tương tác với nhau thông qua các thông
 điệp
• Thông điệp có thể hiểu như là một hành động, có thể
 gây ra sự thay đổi trạng thái của đối tượng.
• Thông điệp sẽ yêu cầu đối tượng nhận thông điệp thực
 hiện một phương thức nào đó
 • do đó phải bổ sung vào đối tượng nhận thông điệp phương
 thức xử lý thông điệp được gửi tới
• Khi phương thức được thực hiện xong thì đối tượng
 nhận sẽ trả quyền điều khiển lại cho đối tượng gọi,
 cùng với giá trị trả về 141
6. Biểu đồ tương tác (2)
• Biểu đồ tương tác mô tả tương
 tác giữa các đối tượng
 • Biểu đồ tuần tự (Sequence diagram)
 • Một cách nhìn hướng về trình tự thời Biểu đồ tuần tự
 gian tương tác giữa các đối tượng
 • Biểu đồ giao tiếp (Communication
 diagram)
 • Một cách nhìn thông điệp giữa các đối
 tượng, hướng về cấu trúc của quá
 trình truyền Biểu đồ giao tiếp
 142
6. Biểu đồ tương tác (3)
• Biểu đồ tương tác mô tả tương tác giữa
 các đối tượng
 • Biểu đồ thời gian (Timing Diagram)
 • Một cách nhìn về sự ràng buộc thời gian của các
 thông điệp trong một tương tác. Biểu đồ thời gian
 • Thường sử dụng trong các ứng dụng thời gian
 thực, vì trong các ứng dụng này yếu tố thời gian
 mang tính quyết định
 • Biểu đồ tương tác tổng quát (Interaction
 Overview Diagram)
 • Một cách nhìn tương tác ở mức cao bằng cách kết
 hợp các biểu đồ tương tác theo một trình tự logic
 nào đó. Biểu đồ tương tác
 tổng quan
 143
6.1. Biểu đồ tuần tự
Tham khảo Lession 4 – Session 31-32, bài giảng Smartdraw
https://www.smartdraw.com/sequence-diagram/
 144
6.1.1. Biểu đồ tuần tự
• Nhấn mạnh vào trình tự trao đổi thông điệp giữa
 các đối tượng theo thời gian trong một use case
• Các ký hiệu
 • Đối tượng (:Object)
 • Thông điệp (Message)
 • Vùng kích hoạt (Activation)
 • Đường sống (Lifeline)
 • Hủy đối tượng (Destroying)
 Destroy object X
 145
6.1.1. Biểu đồ tuần tự (2)
• Các ký hiệu (tiếp)
 • Các loại thông điệp:
 • Thông điệp đồng bộ: yêu cầu chờ phản hồi
 • Thông điệp không đồng bộ: không cần chờ phản hồi
 • Thông điệp trả về
 • Thông điệp tự gọi
 • Thông điệp tạo đối tượng mới
 • Thông điệp hủy đối tượng
 • Thông điệp nhận được từ một đối tượng chưa xác định
 • Thông điệp gửi tới một đối tượng chưa xác định
 146
6.1.1. Biểu đồ tuần tự (3)
• Các ký hiệu (tiếp)
 Toán tử
 • Khung tương tác (Interaction frame) Tương tác
 Toán tử Ý nghĩa
 alt Khung lựa chọn nhiều, chỉ có lựa chọn có điều kiện đúng sẽ được thực hiện
 opt Tùy chọn, chỉ thực hiện khi điều kiện thỏa mãn
 par Song song, mỗi khung chạy song song
 loop Lặp lại, khung có thể được thực hiện nhiều lần
 region Vùng then chốt, tại một thời điểm chỉ có một luồng chạy nó
 ref Tham chiếu đến một tương tác khác trong biểu đồ khác, vẽ trùm trên các 
 lifetime liên quan, có thể có tham số và giá trị trả về
 sd Vẽ xung quanh 1 biểu đồ biểu đồ trình tự nếu cần
 147
Ví dụ - Biểu đồ tuần tự
 :RegisterFor :Registration :CourseCatalog
 CoursesForm Controller System
 : Student : CourseCatalog
 1: create schedule( )
 2: get course offerings( )
 3: get course offerings(forSemester)
 4: get course offerings( )
 5: display course offerings( )
 6: display blank schedule( )
 148
Ví dụ - Biểu đồ tuần tự (2)
 procedure dispatch 
 foreach (lineitem) 
 if (product.value>$10K) 
 careful.dispatch
 else 
 regular.dispatch
 end if 
 end for
 if (needsConfirmation) 
 messenger.confirm
 end procedure
 149
6.1.2. Lưu ý
• Sau khi vẽ xong biểu đồ tuần tự, cần kiểm tra trong
 biểu đồ lớp, mỗi thông điệp tới một đối tượng đã
 được biểu diễn thành một phương thức của lớp
 hay chưa? Nếu chưa, bổ sung phương thức vào lớp
 tương ứng.
 150
6.2. Biểu đồ giao tiếp
Tham khảo Lession 4 – Session 33-34
 151
6.2.1. Biểu đồ giao tiếp
• Biểu đồ giao tiếp nhấn mạnh vào việc tổ chức các đối
 tượng tham gia vào tương tác.
• Biểu đồ giao tiếp chỉ ra:
 • Các đối tượng tham gia vào tương tác.
 • Các liên kết giữa các đối tượng.
 • Các thông điệp trao đổi giữa các đối tượng.
• Các ký hiệu:
 • Tác nhân
 • Đối tượng
 • Thông điệp
 • Liên kết
 152
6.2.1. Biểu đồ giao tiếp (2)
 Thông điệp
 (message) 5: display course offerings( )
 6: display blank schedule( )
 1: create schedule( ) Liên kết : Course Catalog
 : RegisterForCoursesForm (Link)
 : Student
 2: get course offerings( ) 4: get course offerings( )
 3: get course offerings(forSemester)
 Đối tượng
 Tác nhân : RegistrationController : CourseCatalogSystem
 153
6.2.2. SD và CD – Giống nhau
• Tương đương về ngữ nghĩa
 • Cùng đưa ra thông tin về sự tương tác giữa các đối
 tượng qua các thông điệp
 • Có thể chuyển đổi giữa hai biểu đồ mà không mất mát
 thông tin
• Mô hình hóa phương diện động của hệ thống
• Mô hình hóa kịch bản use case.
 154
6.2.3. SD và CD – Khác nhau
 Biểu đồ tuần tự Biểu đồ giao tiếp
 – Chỉ ra thứ tự rõ ràng của các thông – Chỉ ra mối quan hệ rõ ràng giữa các
 điệp đối tượng
 – Thể hiện tốt hơn luồng công việc – Thể hiện tốt hơn quá trình giao tiếp
 – Mô hình hóa trực quan hơn toàn bộ – Mô hình hóa trực quan hơn cho tất
 luồng thực thi (theo thời gian) cả các ảnh hưởng của đối tượng
 – Thể hiện tốt hơn đối với các đặc tả – Thể hiện rõ hơn hiệu quả của quá
 thời gian thực và các kịch bản phức trình tương tác trên từng đối tượng, 
 tạp dễ hiểu hơn cho các buổi
 brainstorming
 155
Quiz
• Cho biểu đồ use case như sau, xác định các tác nhân
 của hệ thống:
 156
Bài tập làm quen UML
Bài 1. Cho:
• Các tác nhân: Người mua, Hệ thống E-mail, Hệ thống cho vay và Hệ thống
 báo cáo tín dụng
• Các use case: Tìm người môi giới, Quản lý hồ sơ cá nhân, Tìm kiếm nhà và
 Yêu cầu vay
• Các mối liên kết:
 • Từ người mua tới Tìm người môi giới
 • Từ người mua tới Quản lý hồ sơ cá nhân
 • Từ người mua tới Tìm kiếm nhà
 • Từ người mua tới Yêu cầu vay
 • Quản lý hồ sơ cá nhân tới Hệ thống e-mail
 • Tìm kiếm nhà tới Hệ thống e-mail
 • Yêu cầu vay tới Hệ thống e-mail, Hệ thống cho vay
 • Yêu cầu vay tới Hệ thống báo cáo tín dụng
Hãy vẽ biểu đồ use case tương ứng.
 157
Bài tập làm quen UML
Bài 2: Cho:
• Các trạng thái hành động:
 • Chọn hồ sơ
 • Tìm hồ sơ người mua
 • Tạo hồ sơ mới
 • Đăng nhập
• Luồng hoạt động:
 • Bắt đầu từ Chọn hồ sơ tới Tìm hồ sơ người mua rồi đi từ Tìm
 hồ sơ người mua đến Tạo hồ sơ mới nếu hồ sơ không tồn tại.
 Nếu hồ sơ tồn tại thì có thể Đăng nhập.
Hãy vẽ Biểu đồ hoạt động tương ứng.
 158
Bài tập làm quen UML
Bài 3: Một biểu đồ lớp gồm các lớp sau: Personal Planner Profile,
Personal Planner Controller, Customer Profile, và Buyer Record. Các
lớp có các quan hệ sau:
 • Mỗi một đối tượng Personal Planner Profile có thể liên kết với tối đa
 một đối tượng Personal Planner Controller.
 • Mỗi đối tượng Personal Planner Controller phải được liên kết với một
 đối tượng Personal Planner Profile.
 • Một đối tượng Personal Planner Controller có thể được liên kết với tối
 đa một đối tượng Buyer Record và Customer Profile.
 • Một thực thể của lớp Buyer Record có thể liên quan tới 0 hoặc 1 đối
 tượng Personal Planner Controller.
 • Có 0 hoặc 1 đối tượng Personal Planner Controller được liên kết với
 mỗi thực thể Customer Profile.
Hãy vẽ biểu đồ lớp tương ứng
 159
Bài tập làm quen UML
Bài 4: Biểu đồ giao tiếp hoạt động như sau:
1. Người dùng Prospective Buyer bắt đầu biểu đồ giao tiếp bằng cách
 yêu cầu đối tượng Personal Planner Profile (PPF) cập nhật một hồ sơ.
2. Đối tượng PPF yêu cầu đối tượng Personal Planner Controller (PPC)
 cập nhật một hồ sơ
3. Đối tượng PPC gửi một thông điệp cho đối tượng Buyer Record yêu
 cầu tìm hồ sơ.
4. Sau khi tìm xong đối tượng PPF hiển thị hồ sơ.
5. Người dùng Prospective Buyer cập nhật thông tin trong hồ sơ và yêu
 cầu PPF lưu trữ thông tin vừa cập nhật.
6. Đối tượng PPF nhận thông tin mới và yêu cầu đối tượng PPC lưu trữ
 thông tin mới.
7. Đối tượng PPC yêu cầu đối tượng Buyer Record cập nhật lại bản ghi
 hồ sơ với những thông tin mà người dùng đã cung cấp.
Hãy vẽ biểu đồ tuần tự, biểu đồ giao tiếp tương ứng.
 160
161

File đính kèm:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_bai_2_co_ban_ve_java_va.pdf