tài liệu cung cấp đầy đủ những kiến thức về phân tích thiết kế hệ thống hướng đối tượng với uml,giúp học sinh,sinh viên hiểu sâu hơn về quy trình thiết kế 1 phần mềm theo phương pháp hướng đối tượng,giúp hiểu rõ thế nào là đối tượng,điểm khác nhau giữa hướng đối tượng và hướng chức năng,ngoài ra giúp học sinh ,sinh viên sau khi đọc xong tài liệu này có thể tự tay vẽ các biểu đồ như: biểu đồ use case,biểu đồ trình tự,biểu đồ hoạt động,v,v....
Trang 23 Các ph n t c a bi u đ l p ần tử của biểu đồ lớp ử của biểu đồ lớp ủa biểu đồ lớp ểu đồ lớp ồ lớp ớp
Trang 34 T p ký hi u uml cho bi u đ l p ập ký hiệu uml cho biểu đồ lớp ệm ểu đồ lớp ồ lớp ớp
4.1 Biểu diễn lớp
Là hình chữ nhật có có các đường thẳng ngang chia làm các phần riêng biệt:
+ tên lớp ghi ở phần trên cùng;
+ các thuộc tính của lớp ghi ở phần thứ hai;
+ các phương thức ghi phần thứ ba.
Tên lớp: là các danh từ, bắt đầu bằng chữ cái
in hoa.
Ví dụ: «HóaĐơn», «KháchHàng»,
«NhânViên», «NgườiQuảnlý», «VănPhòng».
Trang 4Thuộc tính của lớp
• Các thu c tính bi u di n các d li u độc tính biểu diễn các dữ liệu được bao gói trong các đối ểu diễn các dữ liệu được bao gói trong các đối ễn các dữ liệu được bao gói trong các đối ữ liệu được bao gói trong các đối ệu được bao gói trong các đối ược bao gói trong các đối c bao gói trong các đ i ối
tược bao gói trong các đối ng c a l p đ ph c v vi c che gi u thông tin c a phủa lớp để phục vụ việc che giấu thông tin của phương ớp để phục vụ việc che giấu thông tin của phương ểu diễn các dữ liệu được bao gói trong các đối ục vụ việc che giấu thông tin của phương ục vụ việc che giấu thông tin của phương ệu được bao gói trong các đối ấu thông tin của phương ủa lớp để phục vụ việc che giấu thông tin của phương ương ng phap hướp để phục vụ việc che giấu thông tin của phương ng đ i tối ược bao gói trong các đối ng
• Trong UML cho phép s d ng các ký hi u “ph m vi hi n th ” đ ử dụng các ký hiệu “phạm vi hiển thị” để ục vụ việc che giấu thông tin của phương ệu được bao gói trong các đối ạm vi hiển thị” để ểu diễn các dữ liệu được bao gói trong các đối ị” để ểu diễn các dữ liệu được bao gói trong các đối
đ c t các thu c tính đó.ặc tả các thuộc tính đó ả các thuộc tính đó ộc tính biểu diễn các dữ liệu được bao gói trong các đối
• M i thu c tính có th đỗi thuộc tính có thể được biểu diễn dạng sau: ộc tính biểu diễn các dữ liệu được bao gói trong các đối ểu diễn các dữ liệu được bao gói trong các đối ược bao gói trong các đối c bi u di n d ng sau:ểu diễn các dữ liệu được bao gói trong các đối ễn các dữ liệu được bao gói trong các đối ạm vi hiển thị” để
<Phạm vi hiển thị> <tên thuộc tính>: <kiểu> = mặc định (giá trị giới hạn)
Tên thu c tính: ph i b t đ u b ng ch in thộc tính biểu diễn các dữ liệu được bao gói trong các đối ả các thuộc tính đó ắt đầu bằng chữ in thường ầu bằng chữ in thường ằng chữ in thường ữ liệu được bao gói trong các đối ường.ng
Trang 5Ph m vi hi n th ạm vi hiển thị ểu đồ lớp ị : cho bi t ph m vi truy c p c a thu c tính (m c ết phạm vi truy cập của thuộc tính (mức ạm vi hiển thị” để ập của thuộc tính (mức ủa lớp để phục vụ việc che giấu thông tin của phương ộc tính biểu diễn các dữ liệu được bao gói trong các đối ức
đ hi n th ) ộc tính biểu diễn các dữ liệu được bao gói trong các đối ểu diễn các dữ liệu được bao gói trong các đối ị” để
G m các ký hi u: ồm các ký hiệu: ệu được bao gói trong các đối
‘+’: hàm xác đ nh tính công khai (public), đ ng trị” để ức ướp để phục vụ việc che giấu thông tin của phương c tên thu c tính nghĩa là m i đ i tộc tính biểu diễn các dữ liệu được bao gói trong các đối ọi đối tượng trong hệ thống đều nhìn ối ược bao gói trong các đối ng trong h th ng đ u nhìn ệu được bao gói trong các đối ối ều nhìn
th y đấu thông tin của phương ược bao gói trong các đối c
‘#’: hàm xác đ nh tính đị” để ược bao gói trong các đối c b o v (protected) đ ng trả các thuộc tính đó ệu được bao gói trong các đối ức ướp để phục vụ việc che giấu thông tin của phương c tên thu c tính nghĩa là ch nh ng đ i tộc tính biểu diễn các dữ liệu được bao gói trong các đối ỉ những đối tượng có quan hệ kế ữ liệu được bao gói trong các đối ối ược bao gói trong các đối ng có quan h k ệu được bao gói trong các đối ết phạm vi truy cập của thuộc tính (mức
th a v i nhau nhìn th y đừa với nhau nhìn thấy được (nhìn thấy được từ trong lớp ớp để phục vụ việc che giấu thông tin của phương ấu thông tin của phương ược bao gói trong các đối c (nhìn th y đấu thông tin của phương ược bao gói trong các đối c t trong l p ừa với nhau nhìn thấy được (nhìn thấy được từ trong lớp ớp để phục vụ việc che giấu thông tin của phương đang xét ho c các l p con cháu c a l p đó).ặc tả các thuộc tính đó ớp để phục vụ việc che giấu thông tin của phương ủa lớp để phục vụ việc che giấu thông tin của phương ớp để phục vụ việc che giấu thông tin của phương
‘-’: hàm xác đ nh tính s h u riêng (private) đ ng trị” để ở hữu riêng (private) đứng trước tên ữ liệu được bao gói trong các đối ức ướp để phục vụ việc che giấu thông tin của phương c tên thu c tính nghĩa là ch các đ i tộc tính biểu diễn các dữ liệu được bao gói trong các đối ỉ những đối tượng có quan hệ kế ối ược bao gói trong các đối ng trong cùng m t l p m i ộc tính biểu diễn các dữ liệu được bao gói trong các đối ớp để phục vụ việc che giấu thông tin của phương ớp để phục vụ việc che giấu thông tin của phương nhìn th y đấu thông tin của phương ược bao gói trong các đối c
‘~’: thu c tính độc tính biểu diễn các dữ liệu được bao gói trong các đối ược bao gói trong các đối c phép truy nh p t i t các l p trong ập của thuộc tính (mức ớp để phục vụ việc che giấu thông tin của phương ừa với nhau nhìn thấy được (nhìn thấy được từ trong lớp ớp để phục vụ việc che giấu thông tin của phương cùng package
Trang 6Ki u: ểu đồ lớp ki u c a giá tr thu c tính ểu diễn các dữ liệu được bao gói trong các đối ủa lớp để phục vụ việc che giấu thông tin của phương ị” để ộc tính biểu diễn các dữ liệu được bao gói trong các đối
Ki u thông th ểu diễn các dữ liệu được bao gói trong các đối ường ng: integer, real, boolean …
Ki u r i r c: ví d : ki u thu c tính gi i tính (nam, n ), ểu diễn các dữ liệu được bao gói trong các đối ờng ạm vi hiển thị” để ục vụ việc che giấu thông tin của phương ểu diễn các dữ liệu được bao gói trong các đối ộc tính biểu diễn các dữ liệu được bao gói trong các đối ớp để phục vụ việc che giấu thông tin của phương ữ liệu được bao gói trong các đối Thu c tính đi m h c ph n: ộc tính biểu diễn các dữ liệu được bao gói trong các đối ểu diễn các dữ liệu được bao gói trong các đối ọi đối tượng trong hệ thống đều nhìn ầu bằng chữ in thường 0,1,2,3,4,5,6,7,8,9,10
M c đ nh: ặc định: ị là giá tr kh i đ u m c đ nh (n u có) c a thu c tính ị” để ở hữu riêng (private) đứng trước tên ầu bằng chữ in thường ặc tả các thuộc tính đó ị” để ết phạm vi truy cập của thuộc tính (mức ủa lớp để phục vụ việc che giấu thông tin của phương ộc tính biểu diễn các dữ liệu được bao gói trong các đối
Giá tr gi i h n: ị ớp ạm vi hiển thị là gi i h n các giá tr cho thu c tính (n u có) ớp để phục vụ việc che giấu thông tin của phương ạm vi hiển thị” để ị” để ộc tính biểu diễn các dữ liệu được bao gói trong các đối ết phạm vi truy cập của thuộc tính (mức
Trang 7Phương thức
Trong uml các thao tác được khai báo như sau:
<phạm vi hiển thị> tên[danh sách các tham số]:kiểu trả về
Trang 84.2 Các mối quan hệ trong biểu đồ lớp
có
Quan hệ kết hợp có thể có dạng một chiều
Trang 9Các dạng đặc biệt của quan hệ kết hợp:
lớp B và lớp A có thể tồn tại độc lập Quan hệ kết tập được biểu diễn bằng một mũi tên gắn hình thoi rỗng ở đầu hướng về lớp bao hàm.
này được biểu diễn bởi một mũi tên gắn hình thoi đặc ở đầu
Quyển sách
1 1
0 *
Chương 3
Trang 10Quan hệ phụ thuộc (dependency).
Phụ thuộc là mối quan hệ giữa hai lớp đối tượng, trong đó một lớp đối tượng
có tính độc lập và một lớp đối tượng kia mang tính phụ thuộc
Được biểu diễn bằng mũi tên đứt nét.
Trang 11Khái quát hóa
Khái quát hóa (generalization): là mối quan hệ giữa một lớp mang
tính khái quát cao hơn và một lớp mang tính chuyên biệt hơn
Mối quan hệ khái quát chính là sự kế thừa của một lớp từ lớp khác
Được biểu diễn bằng một mũi tên có tam giác rỗng gắn ở đầu
Ví dụ:
Người
+tên: String -địaChỉ: String -ngàySinh: Date
Lớp Người gồm các thuộc tính: tên,
địaChỉ, ngàySinh; lớp BạnĐọc có quan
hệ kế thừa từ lớp Người sẽ có tất cả các
thuộc tình trên và bổ sung thêm các
thuộc tính mới gồm: mãBạnđọc, lớp,
khóa.
Trang 12Quan hệ thực hiện (realization).
Quan hệ thực hiện hóa thể hiện sự kết nối giữa các lớp và giao diện.
Quan hệ này thường được sử dụng với các giao diện và những lớp làm nhiệm vụ cài đặt các dịch vụ (phương thức) đã được khai báo trong các giao diện
Quan hệ hiện thực hóa được ký hiệu là mũi tên đứt nét
Trang 13Stereotype c a l p ủa biểu đồ lớp ớp
Ba stereotype lớp cơ sở sử dụng trong pha phân tích là
Boundary
Dành cho lớp nằm trên biên hệ thống với thế giới còn lại
Chúng có thể là form, report, giao diện với phần cứng như máy in, scanner
Khảo sát biểu đồ UC để tìm kiếm lớp biên
Có trách nhiệm điều phối hoạt động của các lớp khác
Thông thường mỗi UC có một lớp điều khiển
Nó không thực hiện chức năng nghiệp vụ nào
Các lớp điều khiển khác: điều khiển sự kiện liên quan đến an ninh và liên quan đến giao dịch CSDL
BoundaryClass
EntityClass
ControlClass
Trang 14Khái niệm ca s d ng ử của biểu đồ lớp ụng
- UC (use case) mô t ai đó s d ng h th ng nh th nào, mô t ả các thuộc tính đó ử dụng các ký hiệu “phạm vi hiển thị” để ục vụ việc che giấu thông tin của phương ệu được bao gói trong các đối ối ư ết phạm vi truy cập của thuộc tính (mức ả các thuộc tính đó.
t ương ng tác gi a ng ừa với nhau nhìn thấy được (nhìn thấy được từ trong lớp ường ử dụng các ký hiệu “phạm vi hiển thị” để ục vụ việc che giấu thông tin của phương i s d ng v i h th ng ph n m m đ th c hi n ớp để phục vụ việc che giấu thông tin của phương ệu được bao gói trong các đối ối ầu bằng chữ in thường ều nhìn ểu diễn các dữ liệu được bao gói trong các đối ực hiện ệu được bao gói trong các đối các thao tác gi i quy t công vi c c th nào đó ả các thuộc tính đó ết phạm vi truy cập của thuộc tính (mức ệu được bao gói trong các đối ục vụ việc che giấu thông tin của phương ểu diễn các dữ liệu được bao gói trong các đối UC không cho bi t h ết hệ ệ
th ng làm vi c bên trong nh th nào ống làm việc bên trong như thế nào ệ ư thế nào ết hệ
- UC là n n t ng c a phân tích h th ng Vi c tìm ra đ y đ các UC ều nhìn ả các thuộc tính đó ủa lớp để phục vụ việc che giấu thông tin của phương ệu được bao gói trong các đối ối ệu được bao gói trong các đối ầu bằng chữ in thường ủa lớp để phục vụ việc che giấu thông tin của phương
đ m b o r ng h th ng s xây d ng đáp ng m i nhu c u c a ng ả các thuộc tính đó ả các thuộc tính đó ằng chữ in thường ệu được bao gói trong các đối ối ẽ xây dựng đáp ứng mọi nhu cầu của người ực hiện ức ọi đối tượng trong hệ thống đều nhìn ầu bằng chữ in thường ủa lớp để phục vụ việc che giấu thông tin của phương ường i
s d ng ử dụng các ký hiệu “phạm vi hiển thị” để ục vụ việc che giấu thông tin của phương
- UC là t p hành đ ng, m i hành đ ng là cái gì đó mà h th ng làm, nó ập của thuộc tính (mức ộc tính biểu diễn các dữ liệu được bao gói trong các đối ỗi thuộc tính có thể được biểu diễn dạng sau: ộc tính biểu diễn các dữ liệu được bao gói trong các đối ệu được bao gói trong các đối ối
là h t nhân đ ạm vi hiển thị” để ược bao gói trong các đối c h th ng th c hi n hoàn toàn hay không đ ệu được bao gói trong các đối ối ực hiện ệu được bao gói trong các đối ược bao gói trong các đối c th c ực hiện
hi n ph n nào ệu được bao gói trong các đối ầu bằng chữ in thường.
BI U Đ USE CASE ỂU ĐỒ LỚP Ồ LỚP
Trang 15Mục đích của ca sử dụng
- Hình thành quyết định và mô tả yêu cầu chức năng hệ thống Là kết quả của thỏa thuận giữa khách hàng và người phát triển hệ
thống phần mềm.
- Cho phép mô tả rõ ràng và nhất quán cái hệ thống sẽ làm, sao cho
mô hình có khả năng được sử dụng xuyên suốt quá trình phát triển.
- Cung cấp cơ sở để kiểm tra, thử nghiệm hệ thống.
- Cho khả năng dễ thay đổi hay mở rộng yêu cầu hệ thống.
Ca sử dụng và tiến trình phát triển
Trang 16Ph ương pháp xác định ca sử dụng ng pháp xác đ nh ca s d ng ị ử của biểu đồ lớp ụng
Tìm kiếm UC như thế nào?
- Cách tốt nhất để tìm kiếm UC là phỏng vấn người sử dụng và khảo sát tài liệu của họ Việc phỏng vấn người sử dụng phải bằng khái niệm, ngôn từ của lĩnh vực vấn đề và của chính người sử dụng
- Khi phân tích lĩnh vực ứng dụng, phân tích viên còn phải hợp tác chặt chẽ với với các chuyên gia lĩnh vực và người quản lý dự án Chất lượng phân tích
bị ảnh hưởng nhiều từ các chuyên gia lĩnh vực, do vậy, phải ưu tiên việc giao tiếp, trao đổi kỹ lưỡng với họ
Kết quả của bước xác định UC: tác nhân và UC m c cao (mô t yêu c u ức ả các thuộc tính đó ầu bằng chữ in thường.
ch c năng h th ng ) đ ức ệu được bao gói trong các đối ối ược bao gói trong các đối c b c l ộc tính biểu diễn các dữ liệu được bao gói trong các đối ộc tính biểu diễn các dữ liệu được bao gói trong các đối
Trang 17Một trong các kỹ thuật tìm kiếm tác nhân là trả lời các câu hỏi sau đây:
Ai sẽ sử dụng các chức năng chính của hệ thống?
Ai quản trị, bảo dưỡng để hệ thống làm việc liên tục?
Hệ thống quản lý thiết bị phần cứng nào?
Hệ thống đang xây dựng tương tác với hệ thống khác nào?
Ai hay cái gì quan tâm đến kết quả hệ thống cho lại?
Trang 18Sau khi có tác nhân, hãy trả lời các câu hỏi sau đây để tìm ra các UC:
Tác nhân yêu cầu hệ thống thực hiện chức năng gì?
Tác nhân cần đọc, tạo lập, bãi bỏ, lưu trữ, sửa đổi các thông tin nào
Trang 191 Khái niệm.
Biểu đồ ca sử dụng (use case) là một hợp các tác nhân, các ca
sử dụng và các mối quan hệ giữa chúng
Ca sử dụng mô tả tập các hoạt động của hệ thống theo quan điểm của các tác nhân (actor) Những ca sử dụng phức tạp sẽ được mô tả chi tiết thông qua các kịch bản
Biểu đồ ca sử dụng chỉ ra hệ thống cần thực hiện điều gì để thỏa mãn các yêu cầu của người dùng hệ thống đó
Use-Case Model
Bi u đ ca s d ng ểu diễn các dữ liệu được bao gói trong các đối ồm các ký hiệu: ử dụng các ký hiệu “phạm vi hiển thị” để ục vụ việc che giấu thông tin của phương
Trang 202 Mục đích
Mô tả các yêu cầu chức năng của hệ thống
Làm cơ sở để người phân tích hiểu các công việc của hệ thống, người thiết kế xây dựng các kiến trúc và người lập trình cài đặt các chức năng của hệ thống
Xác định các yếu tố bên trong và bên ngoài ảnh hưởng tới hệ thống
Chỉ ra mối quan hệ giữa các tác nhân và các ca sử dụng trong hệ thống
Trang 213 T p ký hi u uml cho bi u đ ca s d ng ập ký hiệu uml cho biểu đồ lớp ệm ểu đồ lớp ồ lớp ử của biểu đồ lớp ụng
M t bi u đ use case th hi n nh ng ph n t :ộc tính biểu diễn các dữ liệu được bao gói trong các đối ểu diễn các dữ liệu được bao gói trong các đối ồm các ký hiệu: ểu diễn các dữ liệu được bao gói trong các đối ệu được bao gói trong các đối ữ liệu được bao gói trong các đối ầu bằng chữ in thường ử dụng các ký hiệu “phạm vi hiển thị” để
Ca s d ng ử dụng các ký hiệu “phạm vi hiển thị” để ục vụ việc che giấu thông tin của phương
M i quan h gi a các tác nhân và các ca s d ng.ối ệu được bao gói trong các đối ữ liệu được bao gói trong các đối ử dụng các ký hiệu “phạm vi hiển thị” để ục vụ việc che giấu thông tin của phương
Trang 22Hệ thống
Hệ thống có vai trò là thành phần của biểu đồ use case, nó biểu diễn ranh giới giữa bên trong và bên ngoài của chủ thể trong phần mềm cần xây dựng Hệ thống trong biểu đồ use case có thể là một hệ thống phần mềm, một hệ thống thực: doanh nghiệp, trường học, v.v
Trang 23Ký hiệu: hình người tượng trưng cùng với tên gọi.
Tên gọi của tác nhân được mô tả bằng các danh từ và thường phải nêu được vai trò của nó với hệ thống
Tác nhân sẽ cung cấp hoặc sử dụng các thông tin của hệ thống thông qua các ca sử dụng
Ví dụ:
Tác nhân (actor): là những thực thể bên ngoài có tương tác với
hệ thống, bao gồm người, vật, thiết bị hay các hệ thống khác có trao đổi thông tin với hệ thống
Ng ường i qu n lý ả các thuộc tính đó.
Trang 24Các ca sử dụng (use case):
là thành phần cơ bản của biểu đồ ca sử dụng, tên của nó thể hiện
một chức năng xác định của hệ thống
Ký hiệu: hình elip và có chứa tên của ca sử dụng.
M ược bao gói trong các đối n sách
Tên của ca sử dụng là một hoạt động biểu hiện chức năng, nhiệm vụ hay gọi chung là dịch vụ của hệ thống và nó thường được
mô tả bằng các động từ, hay mệnh đề động từ đơn, ngắn gọn và mô
tả đúng nhiệm vụ mà hệ thống cần thực hiện