Để làm được điều đó người ta phải sử dụng hệ thống mô hình các đối tượng với các đặc trưng cơ bản sau đây: - Tính trừu tượng hoá cao - Tính bao gói thông tin - Tính mô đun hoá có thể đạt
Trang 2Vũ Thị Tâm
UML VÀ ỨNG DỤNG XÂY DỰNG
MÔ HÌNH HỆ THỐNG QUẢN LÝ ĐÀO TẠO
Chuyên ngành: Công nghệ thông tin
Trang 31.1 Quá trình chung để phát triển phần mềm hướng đối tượng.
1.2 Các ưu điểm của tiếp cận hướng đối tượng
1.3 Những vấn đề đặt ra trong việc khai thác phần mềm hướng đối tượng CHƯƠNG 2 CÁC CÔNG CỤ HỖ TRỢ PHÁT TRIỂN HƯỚNG ĐỐI
2.1 Khái quát về UML.
2.2 Kiến trúc trong UML
2.2.1 Mô hình khái niệm của UML(conceptional model)
2.2.2 Các khối xây dựng
2.2.3 Các quan hệ:
2.2.4 Các biểu đồ trong UML
2.3 Các quy tắc của UML
2.4.Các cơ chế chung
2.5 Ứng dụng của UML
3.1 Phát biểu bài toán
3.3.3 Mô hình các ca sử dụng và mô tả các ca sử dụng, mô hình miền
4.1 Mô hình liên kết giữa các lớp
Trang 44.5 Mô tả chi tiết các lớp
4.6 Một số giao diện của chương trình
Trang 5Mở đầu
Trong quá trình phát triển của công nghệ phần mềm, nhiều dự án, nhiều chương trình phát triển phần mềm đã được thực hiện, nhưng hoặc là không kết thúc, hoặc xây dựng xong nhưng không thực hiện được hoặc đã xây dựng xong nhưng còn nhiều lỗi không đáp ứng được yêu cầu của người sử dụng Vì để xây dựng một phần mềm tốt cần phải chú ý tới các vấn đề chính sau:
- Dữ liệu, đối tượng và cấu trúc của chúng
- Những hành vi thể hiện các chức năng và quá trình trong hệ thống
- Điều khiển hành vi tổng thể của hệ thống
Trong thực tế, cấu trúc dữ liệu và hành vi của hệ thống phải thường xuyên thay đổi theo yêu cầu của người sử dụng Do vậy, việc khảo sát, phân tích, thiết kế hệ thống
là một công việc rất phức tạp và quan trọng trong quá trình xây dựng một hệ thống phần mềm Phải phân tích kỹ bài toán, lựa chọn phương pháp phát triển hệ thống thích hợp để cho hệ thống có tính mở, dễ thích nghi, chất lượng cao, giúp cho công việc bảo trì hệ thống đỡ tốn kém
Trong tất cả các giải pháp phát triển phần mềm hiện nay, giải pháp hướng đối tượng đã được xem như là giải pháp tốt cho những hệ thống phần mềm có qui mô lớn,
độ phức tạp cao, có nhiều ưu điểm so với phương pháp hướng chức năng truyền thống
Có thể giải pháp hướng đối tượng sẽ còn được tiếp tục được cải tiến cùng với mô hình phát triển phần mềm Nhưng hiện nay đây là một giải pháp tốt đang được sự quan tâm đặc biệt và nhiều công ty đã triển khai
Cùng với phương pháp luận, phương pháp phát triển phần mềm hướng đối tượng, công cụ UML (Unifiel Modelling Language) và các phần mêm được xây dựng trên nó ( Rational Rose, ) đã cung cấp một phương tiện mạnh cho phép triển khai phương pháp trên trong môi trường công nghiệp UML là một ngôn ngữ mô hình hoá dùng để đặc tả, mô hình hoá, xây dựng và làm tài liệu cho một hệ thống phần mềm [3] hướng đối tượng Ngôn ngữ này thể hiện trực quan được những quyết định và sự hiểu biết của chúng ta về hệ thống cần xây dựng Nó là một công cụ mạnh và đầy đủ được dùng để phân tích, thiết kế, cài đặt, bảo trì và kiểm soát thông tin của hệ thống phần mềm lớn và
Trang 6phức tạp UML hiện là chuẩn công nghiệp của thế giới về ngôn ngữ đặc tả cho ngành công nghệ phần mềm và đang được những hãng sản xuất phần mềm nổi tiếng trên thế giới sử dụng như: Microsoft, Oracle, HP, …
Vì vậy việc nghiên cứu phương pháp phân tích, thiết kế hướng đối tượng và sử dụng UML để phát triển phần mềm đang là một xu hướng trong kỹ nghệ phần mềm Những nội dung chính của đề tài:
Tổng quan phương pháp phát triển phần mềm theo định hướng đối tượng
Giới thiệu về hệ công cụ UML
Vận dụng phương pháp và công cụ nêu trên tiến hành phân tích, thiết kế hệ thống đào ạo ở một trường đại học
Luận văn này gồm bốn chương Chương 1 và 2 giới thiệu tổng quan về phương pháp hướng đối tượng và các công cụ hỗ trợ Chương 3 và chương 4 xây dựng mô hình cho hệ thống quản lý đào tạo sử dụng UML Quản lý đào tạo là một công việc không thể thiếu được trong tất cả các hệ thống trường học, việc xây dựng một hệ thống quản lý tự động sẽ giúp hệ thống các trường học quản lý được hiệu quả, chính xác và
đỡ tốn thời gian , sức lực của nhiều người
Thực hiện đề tài này giúp em hiểu sâu hơn các bước để phân tích, thiết kế một ứng dụng và phương pháp mô hình hoá hệ thống phần mềm hướng đối tượng bằng công cụ UML Vì vấn đề được xét là rộng lớn và phức tạp, kết quả của luận văn mới dừng lại ở bước phân tích tổng thể bài toán và thiết kế chi tiết cho một phần quan trọng của bài toán Tuy vậy, những vấn đề lý thuyết, phương pháp luận và công cụ phát triển phần mềm hướng đối tượng đã được sử dụng, vận dụng khá toàn diện Đây là kết quả bước đầu nghiên cứu khoa học, chắc chắn còn rất nhiều hạn chế, rất mong được ý kiến đóng góp quý báu của các thầy cô và các bạn Em cũng xin gửi lời cảm ơn chân thành đến PGS TS Nguyễn Văn Vỵ, người đã giúp đỡ em rất nhiều để em có thể hoàn thành luận văn này
Hà nội, ngày 5 tháng 2 năm 2004
Trang 7Vũ Thị Tâm
chương 1 Phương pháp hướng đối tượng
Hiện nay thông tin thực sự trở thành nguồn tài nguyên quan trọng, nguồn của cải to lớn của xã hội Trong mọi lĩnh vực, các dữ liệu, các mối quan hệ của mọi hệ thống kinh tế xã hội đều được xử lý một cách nhanh chóng nhất trên máy tính Hệ thống càng phát triển, tức là càng nhiều yếu tố hợp thành thì mối quan hệ giữa chúng càng trở nên phức tạp Để xử lý lượng thông tin lớn như vậy, cần phải có những phương pháp và các công cụ hiện đại
1.1 Quá trình chung để phát triển phần mềm hướng đối tượng
Tiến trình thực hiện một bước lặp bao gồm xác định yêu cầu của hệ thống, phân tích, thiết kế, triển khai và kiểm thử, chính là nội dung cơ bản của tiến trình phát triển phần mềm hướng đối tượng Trong các hoạt động đó, hoạt động phân tích và thiết kế đặt ra nhiều vấn đề nan giải hơn cả.[3]
Những vấn đề đặt ra trong phân tích thiết kế hướng đối tượng
Đặc điểm của phân tích và thiết kế hướng đối tượng là nhìn nhận hệ thống như một tập các đối tượng tương tác với nhau để tạo ra một hành động cho một kết quả ở mức cao hơn Để làm được điều đó người ta phải sử dụng hệ thống mô hình các đối tượng với các đặc trưng cơ bản sau đây:
- Tính trừu tượng hoá cao
- Tính bao gói thông tin
- Tính mô đun hoá
có thể đạt được sự nhất trí giữa khách hàng và những người phát triển về những gì mà
hệ thống cần làm, không nên làm và những điều kiện ràng buộc đặt ra cho chúng Mục
Trang 8tiêu của bước này là để hiểu đúng và đầy đủ về hệ thống mà ta cần phải tin học hoá thuần tuý về mặt nghiệp vụ Muốn vậy, trước hết cần xác định phạm vi và chức năng
hệ thống cần nghiên cứu bằng cách liệt kê các chức năng mà hệ thống thực hiện, chỉ ra mối quan hệ của nó với môi trường thông qua việc sử dụng các chức năng của hệ thống Tiếp đó cần tìm các ca sử dụng nghiệp vụ từ các chức năng của hệ thống mà qua
sử dụng Sau đó, ta sẽ xác định các ca sử dụng có ý nghĩa về mặt kiến trúc và sắp thứ
tự ưu tiên các ca sử dụng sẽ được triển khai trong bước lặp hiện thời.[4]
Phân tích
Nhiệm vụ của pha phân tích là làm mịn dần các yêu cầu đã nhận được từ pha trước và tạo cấu trúc cho chúng Thông qua đó, các yêu cầu được hiểu chính xác hơn,
từ đó đưa ra cấu trúc cho toàn bộ hệ thống
Nhiệm vụ của pha phân tích là tìm ra cách thức để thực hiện các yêu cầu của hệ thống đã được xác định trong các ca sử dụng Cụ thể là, cần phân tích mô hình ca sử dụng bằng cách tìm ra cách tổ chức các thành phần bên trong của hệ thống để thực hiện mỗi ca sử dụng Những thành phần cấu trúc bên trong hệ thống ở đây chính là ba loại lớp phân tích Công việc xác định các lớp không phải làm tuỳ tiện mà thực hiện theo từng ca sử dụng, trước hết cho các ca sử dụng theo thứ tự ưu tiên được sắp Sau đó, cấu trúc lại cách tổ chức các thành phần này của hệ thống Để đạt mục tiêu này cần tiến hành các hoạt động:
- Phân tích kiến trúc hệ thống
- Phân tích một ca sử dụng
Trang 9Trong thiết kế, chúng ta định hình hệ thống và tìm hình thức thể hiện về mặt vật
lý của nó (kể cả kiến trúc) để thực hiện mọi yêu cầu được đặt ra cho hệ thống Một đầu vào cho thiết kế là mô hình phân tích Khi thiết kế ta sẽ cố gắng bảo tồn được càng nhiều càng tốt cấu trúc của hệ thống được định hình từ mô hình phân tích Kết quả của thiết kế là mô hình thiết kế và mô hình triển khai được thể hiện ra dưới dạng một loạt các mô hình cụ thể Mô hình thiết kế là sự thực thi mô hình phân tích khi tính đến các điều kiện của môi trường để thực thi hệ thống
Để nhận được mô hình thiết kế ta cần thực hiện các công việc sau:
Đặc điểm của cách tiếp cân hướng đối tượng
Sử dụng kết hợp cả hai cách thiết kế: trên - xuống (top-down) và dưới-lên (bottom-up) Kỹ thuật phân rã chức năng trên-xuống được áp dụng để thiết kế các lớp, còn cấu trúc cả hệ thống được xây dựng dựa trên kiến trúc đơn thể được đặc tả trong miền ứng dụng và hỗ trợ một phần trong việc sử dụng lại - cách tiếp cận dưới - lên và nguyên lý che dấu thông tin cho phép sử dụng lại một cách tối đa
1.2 Các ưu điểm của tiếp cận hướng đối tượng
Trang 10 Những đối tượng được thiết kế tốt trong hệ thống hướng đối tượng là cơ sở để kết hợp các đơn thể (module) được sử dụng lại thành hệ thống có chất lượng cao hơn
Cơ chế tương tác bằng cách truyền thông điệp giữa các đối tượng đảm bảo cho việc
mô tả các giao diện giữa các modul bên trong hệ thống và hệ thống bên ngoài trở nên dễ dàng hơn
Việc phân tích và thiết kế theo cách phân bài toán thành các đối tượng là hướng tới lời giải của thế giới thực, là tự nhiên hơn so với cách phân rã theo chức năng từ trên xuống (Top-down)
Nguyên lý che dấu thông tin hỗ trợ cho việc xây dựng các hệ thống thông tin an toàn
Nguyên lý thiết kế dựa vào sự bao gói cả dữ liệu và xử lý trong một đối tượng rất phù hợp với ngữ nghĩa của mô hình trong cài đặt
Lập trình hướng đối tượng và kỹ thuật kế thừa cho phép xác định các modul và sử dụng ngay sau khi chúng chưa thực hiện đầy đủ các chức năng và sau đó mở rộng các đơn thể đó mà không ảnh hưởng tới các đơn thể đã có
Tiếp cận hướng đối tượng cung cấp cho ta công cụ hỗ trợ giải quyết độ phức tạp của bài toán bằng việc phân rã thành các thành phần độc lập tương đối với nhau
Hệ thống hướng đối tượng dễ dàng mở rộng thành các hệ thống có quy mô lớn hơn nhờ tương tác giữa các đối tượng thông qua việc gửi và nhận thông báo
Về vấn đề phát triển và bảo trì hệ thống đơn giản hơn do có sự phân hoạch rõ ràng,
là kết quả của việc bao gói thông tin và sự kết nối giữa các đối tượng thông qua giao diện, là việc sử dụng lại các thành phần tin cậy
Xoá bỏ được hố ngăn cách giữa các bước phát triển, thiết kế và cài đặt trong quá trình phát triển phần mềm.[2]
1.3 Những vấn đề đặt ra trong việc khai thác phần mềm hướng đối tượng
- Xác định các lớp và đối tượng
- Gán trách nhiệm
- Giao tiếp với cơ sở dữ liệu
- Cần có công cụ thích hợp: UML
Trang 11Chương 2 Các công cụ hỗ trợ phát triển hướng đối tượng
Phương pháp phân tích thiết kế hướng đối tượng với việc sử dụng ngôn ngữ UML cung cấp cho chúng ta phương tiện đủ mạnh để xác định các đối tượng và xây dựng các đơn thể của hệ thống cần phát triển
2.1 Khái quát về UML
UML là một ngôn ngữ chuyên dụng
UML được đưa vào sử dụng từ năm 1997, và đã nhanh chóng được công nghiệp
phần mềm chấp nhận làm ngôn ngữ đồ hoạ chuẩn để đặc tả, xây dựng và làm tài liệu cho các hệ thống phần mềm chuyên sâu
UML là ngôn ngữ mô hình hoá, ngôn ngữ chuẩn thống nhất để viết ra bản kế hoạch chi tiết phần mềm Nó mô tả ký pháp thống nhất, ngữ nghĩa và các định nghĩa chính mô hình hoá Các khung nhìn của ngôn ngữ cho phép nhìn nhận hệ thống được phát triển khác nhau, nó không khó hiểu và dễ sử dụng Như mọi ngôn ngữ mô hình hoá khác, UML có ký pháp (các biểu tượng sử dụng trong mô hình)và tập các quy tắc
sử dụng nó để mô hình hoá các hệ thống của thế giới thực
UML là một ngôn ngữ
Là một ngôn ngữ UML có từ vựng và quy tắc tổ hợp các từ vựng đó nhằm mục đích giao tiếp Ngôn ngữ mô hình là ngôn ngữ có từ vựng và quy tắc tập trung vào biểu diễn về mặt vật lý và khái niệm của hệ thống Vì vậy, UML là ngôn ngữ chuẩn công nghiệp để viết ra kế hoạch chi tiết phần mềm
UML là ngôn ngữ để biểu diễn đồ hoạ
Đối với nhiều lập trình viên, không có khoảng cách giữa ý tưởng cài đặt và chuyển nó thành mã, họ suy nghĩ vấn đề và viết ngay mã trình cho nó Tuy nhiên, việc giao tiếp giữa mô hình khái niệm với những cái khác trong vòng đời phát triển phần mềm sẽ gặp khó khăn khi mọi người không sử dụng chung một ngôn ngữ cho dự án Đặc biệt có những dự án và tổ chức phát triển phần mềm theo ngôn ngữ riêng của họ
Trang 12và khó có thể hiểu được đối với những người mới tham gia dự án Hơn nữa một số vấn
đề của hệ thống phần mềm sẽ được hiểu rõ ràng hơn thông qua mô hình thay cho ngôn ngữ lập trình văn bản Cuối cùng, nếu người viết mã không bao giờ viết thành các mô hình thì thông tin có thể mất hoặc không thể viết lại một cách đầy đủ nếu chỉ xem mã lệnh trong trường hợp người viết mã chuyển đi nơi khác làm việc
Để khắc phục những nhược điểm trên, ta sẽ sử dụng ngôn ngữ UML để xây dựng các mô hình khác nhau:
- Mỗi ký pháp trong UML mang một ngữ nghĩa rõ ràng, nên nếu một người trong đội phát triển viết mô hình UML thì những người khác có thể hiểu được, thậm chí các công cụ khác cũng có thể dịch được những mô hình đó một cách rõ ràng
- Các cấu trúc mô tả dưới dạng các mô hình đồ hoạ nên dễ dàng nắm bắt
- Mô hình rõ ràng sẽ làm cho việc trao đổi, giao tiếp trở nên dễ dàng
UML là ngôn ngữ đặc tả
Đặc tả là mô tả rõ ràng nhất những điểm mấu chốt của vấn đề UML cho phép
mô tả chính xác, không nhập nhằng và hoàn thiện UML tập trung đặc tả toàn bộ các quyết định phân tích, thiết kế và cài đặt quan trọng trong quá trình phát triển và triển khai hệ thống phần mềm
UML là ngôn ngữ để tạo mã
UML không phải là ngôn ngữ lập trình trực quan, những mô hình của nó có thể kết nối trực tiếp tới các ngôn ngữ lập trình khác nhau Điều đó có nghĩa là có thể ánh
xạ từ mô hình trong UML sang một ngôn ngữ lập trình như Java, C++
hoặc Visual Basic, thậm chí có thể sang các bảng trong cơ sở dữ liệu quan hệ hoặc cơ sở dữ liệu hướng đối tượng Đồng thời có thể thực hiện ngược lại từ cài đặt về mô hình UML Điều đó có nghĩa là nó cho phép chúng ta có thể làm việc với văn bản, chương trình, hay đồ hoạ một cách nhất quán
UML là ngôn ngữ làm tài liệu
Trang 13UML hướng tới làm tài liệu kiến trúc hệ thống và các chi tiết của nó UML cho khả năng biểu diễn yêu cầu, thử nghiệm, mô hình hoá các hoạt động lập kế hoạch và quản lý sản phẩm
- UML cho biết giới hạn của hệ thống và các chức năng của nó thông qua các trường hợp sử dụng (Use case) và tác nhân (Actor)
- Trong UML các trường hợp sử dụng được mô tả bằng biểu đồ lôgic
- Biểu diễn cấu trúc tĩnh của hệ thống nhờ biểu đồ lớp
- Mô hình hoá các hành vi đối tượng bằng biểu đồ chuyển trạng thái
- Phản ánh kiến trúc cài đặt vật lý bằng biểu đồ thành phần và biểu đồ triển khai
- Mở rộng khả năng mô tả các chức năng và hành vi hệ thống bằng khuôn mẫu (stereotypes) [4]
2.2 Kiến trúc trong UML
Kiến trúc phần mềm cho ta một cái nhìn khái quát nhất về hệ thống phần mềm
ở các góc độ khác nhau Mỗi khung nhìn phản ánh về một khía cạnh của tổ chức và cấu trúc của hệ thống mà tập trung vào từng mặt cụ thể giúp cho ta hiểu và sử dụng hệ thống tốt nhất
Khung nhìn ca sử dụng cho ta cách sử dụng chức năng để mô tả hành vi của hệ
thống khi nhìn nhận hệ thống dưới góc độ của người dùng cuối cùng, của các nhà phát triển
Khung nhìn thiết kế bao gồm các lớp, các giao diện, các cộng tác tạo nên từ
vựng để đặc tả các vấn đề và các giải pháp cho nó Khung nhìn này hỗ trợ việc xác định các yêu cầu chức năng của hệ thống, nghĩa là các dịch vụ mà hệ thống sẽ cung cấp cho người dùng
Hình 2.1: Mô hình hoá kiến trúc hệ thống
Trang 14Khung nhìn tiến trình của hệ thống chứa đựng các luồng và tiến trình công việc
tạo nên cơ chế hoạt động tương tranh
Khung nhìn triển khai của hệ thống bao gồm các thành phần và các file được
kết hợp lại cho ra các hệ thống vật lý Khung nhìn này hướng đến việc quản lý cấu hình của hệ thống
Khung nhìn bố trí bao gồm các nút tạo nên kết cấu phần cứng mà trên đó hệ
thống vận hành Khung nhìn này chủ yếu hướng đến sự phân tán và cài đặt cụ thể của
hệ thống [4]
2.2.1 Mô hình khái niệm của UML(conceptional model)
Hình 2.2: Các cấu trúc thành phần của UML
Ba khối chính tạo nên UML là các khối xây dựng, các quy tắc ngữ nghĩa và một
số cơ chế chung được áp dụng cho việc mô hình hoá
2.2.2 Các khối xây dựng
Các sự vật là các trừu tượng hoá và là những phần tử lớp đầu tiên để xây dựng nên các mô hình trong UML Các quan hệ gắn kết các sự vật lại với nhau, các biểu đồ nhóm các sự vật được quan tâm lại tạo nên ngữ nghĩa của nó (cho một mô hình)
a Các sự vật cấu trúc (structural things): Bao gồm
Sự vật nhóm gộp
Sự vật chú thích
Phụ thuộc Liên kết Tổng quát hoá
Ca sử dụng Lớp Đối tượng Tuần tự Cộng tác Trạng thái Hoạt động Thành phần
Gói
Mô hình
Hệ thống con Khung làm việc
Ghi chú
Trang 15Lớp (class): Một lớp mô tả một tập hợp các đối tượng có chung các thuộc tính,
các tác vụ, các mối quan hệ và ngữ nghĩa Một lớp có trách nhiệm thực hiện một hay nhiều giao diện Một lớp được biểu diễn bằng một hình chữ nhật bên trong có tên, các thuộc tính và các tác vụ (phương thức)
Hình 2.3 Lớp Một lớp có ba thành phần như sau: tên lớp, các thuộc tính, các phương thức (ứng xử) của lớp
Tên lớp thường là danh từ, ví dụ: sinh viên
Các thuộc tính được coi là đúng nếu nó bao gồm các thông tin để mô tả và nhận dạng một thực thể cụ thể của một lớp Tuy nhiên chỉ nên đưa vào các thuộc tính mà hệ thống quan tâm Mỗi một thuộc tính đều thuộc một kiểu dữ liệu nào đó Kiểu dữ liệu nguyên thuỷ bao gồm các kiểu như: Integer, Boolean, Real Ngoài ra các thuộc tính còn có khả năng nhìn thấy được (Visibility) bao gồm public, private và protected Nếu một thuộc tính là public nghĩa là một lớp khác có thể tham chiếu đến và sử dụng thuộc tính đó Nếu là private thì các lớp khác không thể tham chiếu đến thuộc tính này
Các phương thức trong một lớp mô tả cái mà lớp đó có thể làm Các phương thức thường được gọi là các hàm (funtion) nhưng chúng chỉ thuộc vào lớp đó và áp dụng đối với các đối tượng của lớp đó Cũng giống như các thuộc tính, các phương thức cũng có phạm vi và khả năng nhìn thấy được
Đối tượng là khái niệm dùng để mô hình hoá một vật hoặc một khái niệm trong
thế giới thực, có thể là một phần của bất kỳ loại hệ thống nào như máy móc hay một tổ chức Có một số đối tượng (ví dụ như các đối tượng thực thi trong hệ thống phần mềm)
Trang 16không tồn tại một cách trực tiếp trong thế giới thực nhưng nó phát sinh bắt nguồn từ việc nghiên cứu cấu trúc và hành vi của các đối tượng trong thế giới thực Vì thế các đối tượng liên quan đến hiểu biết của chúng ta về thế giới thực bởi đối tượng là thể hiện của một lớp nào đó
Ký pháp: trong UML đối tượng được thể hiện bởi một hình chữ nhật với tên ở bên trong Tên đối tượng được gạch chân
Hình 2.4: Đối tượng
Giao diện (interface): Một giao diện là một tập hợp các tác vụ đặc tả một dịch
vụ của một lớp hoặc một thành phần Một giao diện biểu diễn bằng một hình tròn với tên của nó:
Ispenlling Hình 2.5: Giao diện
Sự cộng tác (collaboration): Sự cộng tác xác định các hoạt động bên trong hệ
thống và là một bộ các nguyên tắc và các phần tử khác nhau cùng làm việc để cung cấp một hành vi hợp tác lớn hơn tổng hành vi của tất cả các phần tử đó Một sự cộng tác được biểu diễn bằng một hình elip với đường nét đứt và thường chỉ gồm có tên
Hình 2.6: Sự cộng tác
Ca sử dụng (Use case): Một ca sử dụng mô tả một tập hợp các dãy hành động
mà hệ thống thực hiện để cho một kết quả quan sát được các giá trị đối với một tác nhân Một ca sử dụng được biểu diễn bằng một hình elip nét liền, thường chỉ bao gồm
có tên:
Hình 2.7: Ca sử dụng
Dãy các trách nhiệm
Sửa hồ sơ sinh viên Hình tròn
Trang 17Những chức năng mà hệ thống cung cấp sẽ được mô tả trong mỗi ca sử dụng Trong đó mô tả những chức năng, những thành phần ở bên ngoài - tác nhân (Actor) tương tác với hệ thống và mối quan hệ giữa ca sử dụng và tác nhân (biểu đồ ca sử dụng) Nói một cách chính xác hơn, ca sử dụng mô tả trình tự các hành động của một tác nhân nào đó, sử dụng một phần chức năng của hệ thống để hoàn thành một tiến trình Vì thế, đối với người sử dụng, ca sử dụng mô tả một cách để họ sử dụng hệ thống: nó mô tả các tương tác giữa một số tác nhân và hệ thống thông qua dịch vụ mà
hệ thống cung cấp cho các tác nhân Mỗi ca sử dụng là một bộ phận các yêu cầu chức năng cho một số người sử dụng Kết hợp tất cả các ca sử dụng lại với nhau ta có được
mô tả về toàn bộ các yêu cầu chức năng của hệ thống Tất cả các ca sử dụng cho phép những người phát triển phần mềm và khách hàng thoả thuận được về các yêu cầu, các điều kiện cũng như các khả năng mà hệ thống phải tuân theo
Tác nhân: Một tác nhân thể hiện một tập hợp các vai trò mà các thực thể ngoài
(đối với hệ thống) có thể thực hiện khi sử dụng hệ thống Một tác nhân thể hiện một nhóm người, một bộ phận, một tổ chức hoặc các hệ thống nào khác có tương tác với hệ thống đó Tương tác của tác nhân với hệ thống có thể:
Cung cấp thông tin cho hệ thống
Lấy thông tin từ hệ thống
Nhận thông tin từ hệ thống và cung cấp thông tin cho hệ thống
Một số đặc điểm của tác nhân:
Một tác nhân có tên và tên đó nên phản ánh vai trò của tác nhân Tên không nên phản ánh một thực thể đặc trưng của tác nhân và cũng không phản ánh chức năng của tác nhân
Các tác nhân tương tác với hệ thống bằng cách gửi và nhận thông báo với hệ thống như nó thực hiện các ca sử dụng
Nếu có nhiều hơn một tác nhân trong một ca sử dụng thì tác nhân kích thích được gọi là “tác nhân khởi tạo” hay “tác nhân chủ động” và các tác nhân còn lại được gọi là “tác nhân tham dự” hay “tác nhân bị động”
Trang 18 Các tác nhân tương tác trực tiếp với hệ thống được gọi là các tác nhân chính hay các tác nhân trực tiếp, các tác nhân còn lại được gọi là các tác nhân thứ yếu
Cách xác định các tác nhân: dựa vào việc nhận dạng các tác nhân, là các thực thể quan tâm đến việc sử dụng và tương tác với hệ thống, tức là phải xác định xem nó đòi hỏi gì ở hệ thống và cần đến những ca sử dụng nào để sử dụng hệ thống?
Khi mô tả một tác nhân cần chỉ rõ vai trò của tác nhân khi tương tác với hệ thống Ví dụ, với hệ thống bán hàng có một tác nhân là nhân viên bán hàng, ta có thể
mô tả một cách ngắn gọn như sau:
Nhân viên bán hàng: là những người bán hàng cho khách khi có khách đến mua hàng
Tác nhân được biểu diễn bằng hình tượng sau:
Xác định ca sử dụng:
Có hai cách xác định ca sử dụng trong hệ thống
Xác định thông qua các tác nhân:
Xác định các tác nhân nào có liên quan tới hệ thống hoặc tổ chức: tìm và
mô tả tất cả các tác nhân bằng cách xem người dùng nào sẽ sử dụng hệ thống và hệ thống nào khác phải tương tác với nó
Với mỗi tác nhân, xác định các quá trình mà nó khởi tạo hoặc tham gia vào bằng cách xem tác nhân trao đổi/ tương tác hoặc sử dụng với hệ thống để làm việc như thế nào
Xác định thông qua các sự kiện
Những sự kiện nào hệ thống phải có đáp ứng lại hoặc có hành vi ứng xử tương ứng
Mối quan hệ giữa các sự kiện với tác nhân, sự kiện với hệ thống Khi xác định các ca sử dụng cần thảo luận, trao đổi với người dùng hệ thống và nên xem xét lại các dữ liệu đặc tả yêu cầu đã có để có thể trả lời một số câu hỏi sau:
Nhiệm vụ chính của tác nhân là gì?
Trang 19Có phải tác nhân sẽ phải đọc, viết hay thay đổi thông tin hệ thống?
Có phải tác nhân sẽ phải cung cấp tin tức cho hệ thống về những thay đổi bên ngoài hệ thống?
Có phải tác nhân mong muốn được cung cấp tin tức về sự thay đổi không?
Thành phần (Component): Thành phần là một bộ phận vật lý có thể thay thế
được của một hệ thống được làm phù hợp với những điều kiện cụ thể và cung cấp phương tiện (tác vụ) thực hiện một tập các giao diện Một thành phần biểu diễn một gói vật lý các phần tử lôgic khác nhau như các lớp, các giao diện và sự cộng tác Một thành phần được biểu diễn bằng một hình chữ nhật với các bảng và thường bao gồm chỉ có tên của nó:
Lớp chủ động (active class): Một lớp chủ động là một lớp mà các đối tượng của
nó sở hữu một hay một số tiến trình hoặc các dãy thao tác Bởi vậy nó có thể khởi động hoạt động điều khiển Một lớp chủ động được biểu diễn như một lớp nhưng có đường viền đậm:
Hình 2.9 Lớp hoạt động
Nút (node): Một nút là một phần tử vật lý tồn tại trong thời gian thực và biểu
diễn một tài nguyên tính toán, thường có ít nhất bộ nhớ và khả năng xử lý Một nút biểu diễn bằng một hình hộp thường bao gồm tên của nó:
Trang 20Hình 2.10: Một nút
b Các sự vật hành vi (behavioral things): các sự vật hành vi là những bộ phận động
của các mô hình UML, mô tả hành vi của hệ thống theo thời gian và không gian Có hai loại hành vi sơ cấp của sự vật:
Sự tương tác (interaction): sự tương tác là một hành vi bao gồm một tập các
thông báo được trao đổi giữa một tập các đối tượng trong một khung cảnh cụ thể nhằm thực hiện một mục tiêu xác định Một thông báo được biểu diễn bằng một đường thẳng
có hướng, gồm tên
Hiển thị Thông báo
Máy trạng thái (state machine): một máy trạng thái gồm một số các phần tử
biểu diễn các trạng thái, các chuyển dịch (từ một trạng thái sang một trạng thái khác), các sự kiện (các sự vật kích hoạt một chuyển dịch) Một trạng thái được biểu diễn bằng một hình chữ nhật góc tròn trong đó có tên trạng thái và các trạng thái con của nó (nếu có)
Hình 2.11 Trạng thái
Các sự vật nhóm gộp ( grouping thinks): Có một loại sự vật nhóm gộp duy
nhất là gói (package) Nó là công cụ để tổ chức các thành phần của một mô hình thành các nhóm: một mô hình có thể được phân chia vào trong các gói Một gói đơn thuần là một khái niệm
Gói cung cấp một cơ chế nhóm gộp để:
Chỉ ra bức tranh lớn không quá đi sâu vào chi tiết
Chỉ ra sự phụ thuộc giữa các lớp
Máy dịch vụ
Trả lại bản sao
Trang 21 Chỉ ra chi tiết các tập hợp con cô lập
Thông thường một gói là tập hợp của các lớp nhưng nó cũng có thể chứa các gói khác Một lớp chỉ thuộc vào duy nhất một gói Một gói có thể tham chiếu đến các gói khác hoặc phụ thuộc vào các gói, các lớp khác Tham chiếu của một gói chỉ ra rằng có một số lớp thuộc gói đó phụ thuộc vào một số lớp thuộc vào gói mà nó tham chiếu đến
Một gói được biểu diễn như một bảng thường chỉ gồm có tên, và đôi khi có nội dung của nó
Hình 2.12: Gói
Sự vật giải thích (Annontional things): sự vật gải thích là phần giải thích của
mô hình UML Nó có thể sử dụng để mô tả, giải thích và đánh dấu một phần tử bất kì trong một mô hình [4]
Dù cho một ngôn ngữ có mức độ bao quát đến đâu thì vẫn còn những thứ chưa được định nghĩa trong ngôn ngữ đó Để có thể thể hiện được hết mọi điều trong mô hình, UML cung cấp khả năng lập chú thích Một chú thích có thể được đặt bất cứ chỗ nào trong biểu đồ và có thể chứa bất kỳ loại thông tin nào Loại thông tin mà nó chứa không được UML thông dịch Chú thích được gắn vào một vài phần tử trong biểu đồ với đường đứt nét chỉ ra phần tử nào được giải thích thêm hay chi tiết hoá với thông tin trên chú thích Một chú thích thường chứa các thông tin dẫn giải hay các câu hỏi từ người làm mô hình như lời nhắc nhở để giải quyết các tình trạng khó xử sau này Một chú thích có thể có các khuôn mẫu (stereotype) mô tả kiểu chú thích Một chú thích biểu diễn một lời chú giải không có ảnh hưởng về ngữ nghĩa, nghĩa là nội dung của nó không làm thay đổi nghĩa của mô hình mà nó gắn vào Điều này giải thích tại sao các chú thích thường được sử dụng để đặc tả các thứ như các yêu cầu, các nhận xét, các sự giải thích và các ràng buộc
Một chú thích có thể chứa bất kỳ sự phối hợp văn bản hay đồ thị nào Ta có thể đưa vào một URL, thậm chí liên kết hay nhúng vào một tài liệu khác
Các quy tắc nghiệp vụ
Trang 22Một chú thích là một biểu tượng đồ hoạ để diễn tả các ràng buộc hoặc các lời chú giải gắn vào một hay một tập hợp các phần tử Một chú thích được biểu diễn như một hình chữ nhật với một nếp quăn ở góc, cùng với chú giải bằng văn bản hoặc đồ hoạ ở bên trong
Trả lại bản sao
Hình 2.13: Chú thích
2.2.3 Các quan hệ:
a Quan hệ giữa ca sử dụng và tác nhân:
Quan hệ giữa ca sử dụng và tác nhân thường gọi là quan hệ tương tác vì nó thể hiện sự tương tác giữa một tác nhân và một ca sử dụng Thông thường đây là quan hệ 1
- 1 không có hướng để chỉ ra rằng tác nhân có thể liên lạc với ca sử dụng theo cả hai hướng Quan hệ này thể hiện bằng một đường thẳng nối giữa tác nhân và ca sử dụng.[7]
b Quan hệ giữa ca sử dụng với ca sử dụng
Các ca sử dụng quan hệ với nhau theo ba kiểu quan hệ là: mở rộng, bao gồm và
tổng quát hoá
Quan hệ mở rộng: là một quan hệ tổng quát hoá trong đó một ca sử dụng mở
rộng một ca sử dụng khác bằng cách đưa thêm các hành động vào ca sử dụng tổng quát Ca sử dụng mở rộng có thể bao gồm các hành vi từ ca sử dụng được mở rộng thêm, phụ thuộc vào các điều kiện mở rộng Nó không phải bao gồm toàn bộ hành vi,
nó có thể chọn một phần hành vi của ca sử dụng tổng quát mà nó muốn dùng lại Ca sử dụng được mở rộng phải là ca sử dụng hoàn thiện Thông thường các ca sử dụng được
mô tả dưới dạng văn bản nên cần xác định phần nào trong ca sử dụng mở rộng là được
sử dụng lại từ ca sử dụng tổng quát, phần nào là được định nghĩa lại, phần nào là được thêm vào Một ca sử dụng mở rộng là một cách để có thể kiểm soát các ngoại lệ, là trường hợp đặc biệt của ca sử dụng tổng quát Quan hệ mở rộng giữa hai ca sử dụng được biểu diễn bằng mũi tên đứt nét nối giữa hai ca sử dụng hướng vào ca sử dụng được mở rộng và ký pháp khuôn mẫu “extends” ở bên cạnh.[2]
Trang 23Hình 2.14: Quan hệ mở rộng
Quan hệ tổng quát hoá: Khi một số các ca sử dụng kiểm soát các chức năng
tương tự nhau có liên hệ với nhau theo một cách nào đó, chúng có thể được gói lại thành một gói trong UML Các nhóm gói liên hệ với các phần tử mô hình, có thể được
mở rộng hoặc thu bớt lại thành một biểu tượng, cho phép người phát triển nhìn một gói tại một thời điểm Gói không mang ý nghĩa nào khác, nó chỉ một tập hợp các ca sử dụng có các chức năng tương tự hoặc có các liên hệ với nhau
Quan hệ sử dụng (uers): là một quan hệ tổng quát hoá mà trong đó một số ca sử
dụng có cùng những ứng xử chung, thì phần chung này được tách thành một ca độc lập
và các ca sử dụng ban đầu chứa nó bây giờ sẽ “sử dụng” nó Người ta dùng mũi tên với hình tam giác rỗng để nối từ mỗi ca sử dụng đến ca sử dụng chung được sử dụng và trên mỗi mũi tên này ghi thêm chữ “users” Khi một ca sử dụng “sử dụng” ca sử dụng này nó cần phải sử dụng “đầy đủ”, tức là mọi chức năng của nó Tuy nhiên không đòi hỏi các chức năng đó được “sử dụng” theo một trật tự xác định nào[7]
c Các quan hệ giữa các lớp:
Các lớp và các đối tượng cùng với biểu đồ lớp, biểu đồ đối tượng cho ta cái nhìn tĩnh về hệ thống Khía cạnh động hay ứng xử của hệ thống thể hiện qua sự hợp tác của một tập hợp các đối tượng Trong hệ thống, một đối tượng luôn luôn có các mối quan
hệ với các đối tượng khác Vì vậy, khi mô hình hoá hệ thống ta không chỉ mô hình các đối tượng mà còn phải mô hình hoá quan hệ các đối tượng đó với các đối tượng khác UML cung cấp một số loại quan hệ chính như sau
d Quan hệ liên kết (Assocition):
Trong UML, liên kết là một quan hệ giữa hai lớp để xác định xem các đối tượng của các lớp này được liên kết và thực hiện công việc cùng nhau như thế nào Giữa các đối tượng thuộc các lớp khác nhau phải có sự liên kết để chúng có thể tương tác và công tác với nhau nhằm thực hiện các tiến trình
extends
A
B
Trang 24Quan hệ liên kết mô hình hoá mỗi liên kết ngữ nghĩa giữa các lớp
Biểu diễn:
Tên liên kết
Ví dụ:
Tham gia
Bản số: Đối với một liên kết giữa hai lớp A và B, một thông tin quan trọng liên
quan đến việc có bao nhiêu đối tượng của lớp A có thể được liên kết với một đối tượng của lớp B tại một thời điểm Ta sử dụng lực lượng của A để mô tả thông tin này.[8]
Quy tắc để xác định các liên kết: Đối với bước phân tích, ta sử dụng quy tắc sau:
- Một quan hệ liên kết hữu ích thường mang một hiểu biết về mối quan hệ mà nó cần
- Một liên kết quan trọng giữa hai đối tượng phải thoả mãn vai trò cung cấp một phương tiện cho phép đối tượng này công tác hay tương tác với đối tượng kia
Trang 25Các quan hệ liên kết thường được ứng với một động từ hoặc một danh động từ Mỗi liên kết thường có một số ngữ nghĩa trong các quan hệ sau:
- Trật tự vật lý: tiếp theo (next to), là một phần của (part of), chứa trong (contained in),…
- Hành động định hướng: lái (drive),…
- Tương tác: nói tới (talk to),…
- Sử hữu: có (have), là một phần của (part of),…
- Hoặc thoả mãn điều kiện: làm việc cho (work for), quản lý (manage),…
Quan hệ giữa liên kết và cài đặt: Trong bước phân tích, một quan hệ liên kết
không phải là một phát biểu về dòng dữ liệu và các biến đối tượng hay các liên kết đối tượng trong giải pháp phần mềm Quan hệ liên kết có thể được cài đặt bằng nhiếu cách, nhưng các quyết định đó không thực hiện trong bước phân tích để đảm bảo tính tự do của thiết kế sau này
Khi tạo ra một mô hình khái niệm, ta có thể định nghĩa nhiều quan hệ liên kết không cần thiết cho quá trình xây dựng Ngược lại, có thể phát hiện các quan hệ liên kết cần thiết cho cài đặt nhưng không có trong pha phân tích Trong các trường hợp đó,
mô hình khái niệm phải được cập nhật lại
e Quan hệ kết tập (Shared Aggregation)[6]
Quan hệ kết tập là một dạng đặc biệt của quan hệ liên kết, biểu diễn mối quan hệ toàn thể – bộ phận Nếu như quan hệ liên kết giữa hai lớp chỉ ra một mối quan hệ mang tính cấu trúc giữa hai thành phần ngang hàng, có nghĩa là cả hai lớp ở cùng một cấp độ, không lớp nào quan trọng hơn lớp nào Đôi khi chúng ta muốn mô hình hoá một đối tượng toàn thể và các thành phần của nó, chẳng hạn ta muốn thể hiện Sinh viên là thành viên của lớp học, hay các khoa là các bộ phận của một trường Kiểu quan
hệ này gọi là kết tập, thể hiện mối quan hệ “có”, “chứa trong”, “bao gồm”, “là một phần của”
Trang 26Biểu diễn quan hệ bao gồm được thể hiện bằng một đường thẳng nối giữa hai lớp, một đầu đường thẳng là một hình thoi rỗng để chỉ ra rằng lớp đó bao gồm của lớp kia
Hai tính chất của quan hệ kết tập:
Phản đối xứng (Antisymmtry): Nếu một đối tượng A quan hệ với một đối tượng B bằng một quan hệ kết tập thì B không thể quan hệ với A bằng quan hệ kết tập
đó Nói cách khác nếu B là một thành phần của A thì A không thể là một phần của B.[4]
Bắc cầu (Transitivity): Nếu A quan hệ với B bằng một quan hệ kết tập và
B quan hệ với C cũng bằng quan hệ kết tập đó thì A cũng có quan hệ với C
Khi nào cần chỉ ra quan hệ kết tập?
Thời gian “sống” của đối tượng bộ phận bị giới hạn trong thời gian sống của đối tượng kết tập nó Đây là phụ thuộc tạo/ xoá bỏ của đối tượng bộ phận trong đối tượng toàn bộ Đối tượng bộ phận không thể tồn tại bên ngoài thời gian tồn tại của đối tượng toàn bộ
Đây là một nhóm có quan hệ “toàn bộ - bộ phận” logic hoặc vật lý một cách rõ ràng
Một thuộc tính của đối tượng hợp được các đối tượng bộ phận thừa kế Các phép toán được áp dụng đối với đối tượng hợp cũng được thừa kế ở các đối tượng bộ phận như: huỷ bỏ, di chuyển, lưu trữ,…
Nếu không chắc chắn khi nào sử dụng quan hệ kết tập thì không để ý đến
nó mà chú trọng vào các quan hệ liên kết đơn giản Hầu hết lợi ích của việc phát hiện
và chỉ ra các quan hệ kết tập là dể liên hệ tới giải pháp cài đặt phần mềm
Quan hệ tụ hợp (Composition aggregation)[2]
Là một dạng đặc biệt của quan hệ kết tập nhưng nó chỉ ra rằng nếu đối tượng gộp (Aggregation) bị huỷ bỏ thì các đối tượng thành phần cũng bị huỷ bỏ Trong khi ở
1 n
Trường học
Khoa
Có
Trang 27quan hệ kết tập thì khi đối tượng gộp bị huỷ bỏ thì chỉ có các liên kết đến các thành phần của nó bị huỷ bỏ, các đối tượng thành phần khác vẫn tồn tại
Biểu diễn: Quan hệ tụ hợp được biểu diễn bằng một đường thẳng nối giữa hai lớp, một đầu là một hình thoi đặc để chỉ ra rằng lớp kia là một thành phần và phụ thuộc vào lớp này
g Quan hệ phụ thuộc (Dependency):[4]
Là quan hệ giữa hai phần tử mô hình có thể là các lớp hoặc các gói, nó chỉ ra rằng sự thay đổi của lớp này sẽ ảnh hưởng đến lớp kia
Quan hệ phụ thuộc thường được dùng trong các trường hợp sau:
- Một lớp sử dụng một biến toàn cục là đối tượng của lớp khác
- Trong phương thức của một lớp có khai báo một biến cục bộ là đối tượng của một lớp khác
- Trong phương thức của một lớp có tham số là đối tượng của một lớp khác
Biểu diễn: quan hệ phụ thuộc được biểu diễn bằng một đường nét đứt nối giữa hai phần tử mô hình với đầu mũi tên hướng vào phần tử phụ thuộc (phần tử mà phần tử kia phụ thuộc vào nó)
h Quan hệ tổng quát hoá (Generalization):
Là quan hệ mô tả mối quan hệ kế thừa Một lớp ở mức tổng quát hơn và các lớp chi tiết hơn kế thừa các thuộc tính và phương thức của nó, đồng thời có thêm các đặc điểm riêng của chúng
Quan hệ này còn được gọi là quan hệ “is - a- kind - of” Dùng quan hệ này khi muốn mô tả quan hệ cha - con Một lớp có thể không có cha, hay có một hoặc nhiều cha Một lớp không có cha và có một hoặc nhiều lớp con được gọi là lớp gốc hay lớp
cơ sở Lớp không có con được gọi là lớp lá Một lớp có đúng một cha được gọi là kế thừa đơn Lớp có nhiều cha được gọi là kế thừa bội
Ký pháp: Quan hệ tổng quát hoá được biểu diễn bằng một đường liền nét nối liền hai lớp, với một hình tam giác rỗng hướng vào lớp cha
Trang 28i Quan hệ hiện thực (Realization)[9]
Quan hệ hiện thực dùng để mô tả quan hệ giữa A và B, trong đó A chỉ ra các ứng xử đặc trưng còn B sẽ thực hiện các ứng xử đó
Quan hệ này thường được dùng để thể hiện mối quan hệ giữa giao diện và lớp hoặc thành phần cung cấp phương thức hoặc dịch vụ cho nó hay mối quan hệ giữa một
ca sử dụng và một sự cộng tác để thực hiện ca sử dụng đó Một giao diện là một tập hợp các thuộc tính chỉ ra dịch vụ của lớp hoặc thành phần phải thực hiện nó
2.2.4 Các biểu đồ trong UML
Một biểu đồ là một biểu diễn đồ thị của một tập các phần tử (các từ vựng) thường được thể hiện như một đồ thị liên thông với các đỉnh (là các sự vật) và các cung (là các mối quan hệ) Có một số loại biểu đồ thường gặp trong thực tế phát triển phần mềm hướng đối tượng như sau:[4]
a Biểu đồ ca sử dụng (Use case diagram)
Biểu đồ ca sử dụng chỉ ra một số tác nhân và kết nối chúng với các ca sử dụng
mà hệ thống cung cấp Nó mô tả về chức năng mà hệ thống cung cấp, thể hiện bằng lời hoặc bằng biểu đồ ca sử dụng Như vậy nó định nghĩa các yêu cầu chức năng của hệ thống Các tác nhân không nhất thiết phải là con người mà cũng có thể là một hệ thống ngoài cần lấy hay truyền thông tin từ hệ thống hiện thời
Biểu đồ ca sử dụng là một công cụ cần thiết trong việc nắm bắt các yêu cầu, lên
kế hoạch và kiểm soát dự án lặp lại
b Biểu đồ lớp (class diagram)
Biểu đồ lớp chỉ ra tập hợp các lớp, các giao diện, các sự cộng tác và các mối quan hệ của chúng Người ta sử dụng biểu đồ lớp để mô hình hoá khung nhìn thiết kế
Trang 29tĩnh của hệ thống Các lớp biểu diễn cho các sự vật được xử lý bên trong hệ thống Ta thường dùng biểu đồ lớp để:
Mô hình hoá bảng từ vựng của hệ thống
Mô hình hoá các sự cộng tác đơn giản
Mô hình hoá cơ sở dữ liệu logic
Các lớp có thể có quan hệ với nhau theo một số cách như sau:
Liên kết (lớp nọ nối với lớp kia)
Phụ thuộc (1 lớp này phụ thuộc hay sử dụng lớp kia)
Đặc biệt hoá (lớp này là một phần tử chuyên biệt của lớp kia)
Đóng gói (nhiều lớp gộp lại)
Một hệ thống có nhiều biểu đồ lớp và ngược lại một biểu đồ lớp có thể có mặt ở nhiều hệ thống
c Biểu đồ đối tượng (object diagram)
Biểu đồ đối tượng chỉ ra tập hợp các đối tượng và các mối quan hệ của chúng Người ta sử dụng biểu đồ đối tượng để minh hoạ các cấu trúc dữ liệu, các thực thể của các lớp trong biểu đồ lớp Có thể coi biểu đồ đối tượng là một biến thể của biểu đồ lớp,
nó dùng các biểu diễn hầu hết giống biểu đồ lớp Biểu đồ đối tượng chỉ ra một số thể hiện đối tượng của lớp
d Biểu đồ tương tác (interaction diagram)
Biểu đồ tuần tự (sequece diagram) và biểu đồ cộng tác (collaboration diagram)
là hai dạng của biểu đồ tương tác
Biểu đồ tuần tự (sequence diagram)
Biểu đồ tuần tự chỉ ra sự tương tác giữa một số đối tượng Biểu đồ này nhấn mạnh đến trình tự thời gian của các thông báo được gửi đi giữa các đối tượng
Biểu đồ hợp tác (collaboration diagram)
Biểu đồ cộng tác chỉ ra sự hợp tác hành động, nó giống như biểu đồ tuần tự nhưng thường là sự lựa chọn để biểu thị sự tổ chức hợp tác của các đối tượng Nó là
Trang 30một cách khác để thể hiện một tình huống có thể xảy ra trong hệ thống nhưng tập trung vào việc thể hiện việc trao đổi qua lại các thông báo giữa các đối tượng hơn là quan tâm đến thứ tự của thông báo đó Biểu đồ cộng tác nhấn mạnh tới tổ chức cấu trúc của các đối tượng gửi và nhận thông báo Qua biểu đồ này ta sẽ nhanh chóng biết được giữa hai đối tượng cụ thể nào đó có trao đổi những thông báo gì cho nhau
Ta có thể sử dụng hai biểu đồ tương tác thay thế cho nhau và dùng để:
Mô hình hoá các luồng điều khiển (sự kiện) theo trình tự thời gian
Mô hình hoá các luồng điều khiển của tổ chức
e Biểu đồ trạng thái (statechart diagram)
Biểu đồ trạng thái biểu diễn một máy trạng thái Nó biểu diễn dòng điều khiển
từ trạng thái này tới trạng thái khác Nó nhấn mạnh dòng điều khiển từ hoạt động này đến hoạt động khác đang xảy ra bên trong một máy trạng thái
g Biểu đồ hoạt động (activity diagram)
Biểu đồ hoạt động là trường hợp đặc biệt của biểu đồ trạng thái Nó chỉ ra dòng điều khiển chính từ hoạt động này đến hoạt động khác, nó cũng bao gồm việc mô hình hoá các bước tuần tự (có thể là đồng thời) trong một tiến trình xử lý Biểu đồ trạng thái
và biểu đồ hoạt động biểu diễn khía cạnh động của hệ thống Chúng có thể dùng cho việc mô hình hoá vòng đời của một đối tượng Ta sẽ dùng biểu đồ hoạt động để:
Mô hình hoá luồng công việc (có thể có rẽ nhánh, phân nhánh, sát nhập)
Mô hình hoá một tác vụ (một thủ tục tính toán)
h Biểu đồ thành phần (component diagram)
Biểu đồ thành phần chỉ ra tập hợp các thành phần và các mối quan hệ của chúng Người ta sử dụng biểu đồ thành phần để mô tả cấu trúc phần mềm, các thành phần thực thi tĩnh của hệ thống Ta sử dụng biểu đồ thành phần để
Mô hình hoá mã nguồn
Mô hình hoá xuất phẩm có thể thực hiện được
Mô hình hoá các cơ sở dữ liệu vật lý
Mô hình hoá các hệ thống có thể làm thích ứng được
Trang 31Hình 2.14: Một ví dụ về biểu đồ thành phần
i Biểu đồ bố trí (deployment diagram)
Biểu đồ bố trí mô hình hoá các khía cạnh vật lý của một hệ thống hướng đối tượng Nó biểu diễn cấu hình các nút xử lý đang vận hành và các thành phần hoạt động ở trên chúng Nó có thể còn bao gồm các nút và các ràng buộc Nó cũng hướng vào việc mô hình hoá sự phân tán, gửi đi và cài đạt các phần tạo nên hệ thống vật lý
Ta sẽ sử dụng biểu đồ bố trí để:
Mô hình hoá các hệ thống nhúng
Mô hình hoá các hệ thống máy khách/ máy dịch vụ
Mô hình hoá các hệ thống phân tán đầy đủ
Một ví dụ về biểu đồ bố trí:
SQL server
Trang 32Hình 2.15: Một ví dụ về biểu đồ bố trí
2.3 Các quy tắc của UML
Mô hình hoá một hệ thống không đơn giản là lắp ghép các khối được xây dựng của UML một cách ngẫu nhiên Giống như mọi ngôn ngữ, UML có một số quy tắc chỉ
ra rằng, một mô hình được xây dựng tốt là mô hình có một ngữ nghĩa chắc chắn và đồng bộ với tất cả mô hình có quan hệ với nó
UML đưa ra các quy tắc ngữ nghĩa sau đây:
- Tên gọi: là cái mà ta gọi các sự vật, các mối quan hệ và các biểu đồ
- Phạm vi: là khuôn khổ cho ý nghĩa cụ thể đối với một tên gọi
- Tính trực quan: cái tên này có thể nhìn thấy và được những phần tử khác sử dụng
- Tính tích hợp: các sự vật có thể liên kết với các sự vật khác như thế nào
- Tính thực hiện được: nó có ý nghĩa gì để vận hành và mô phỏng một mô hình động
Những nguyên tắc khác cần biết để xây dựng tốt các mô hình là:
- Sự lược đi: một số phần tử được dấu đi làm đơn giản việc nhìn nhận mô hình
- Sự không đầy đủ: một số phần tử có thể tạm bỏ qua
- Sự không chắc chắn: sự tích hợp của mô hình có thể chưa đảm bảo
2.4.Các cơ chế chung
UML cũng cung cấp bốn cơ chế chung để áp dụng trong khi mô hình hoá, đó là:
Trang 33- Các đặc tả: UML cung cấp một cách diễn tả vượt trội bằng văn bản theo cú
pháp và ngữ nghĩa của khối đồ hoạ sử dụng, ví dụ như một tập đầy đủ các thuộc tính, các tác vụ và các hành vi mà lớp đó chứa Nhờ vậy ta dùng các kí pháp đồ họa để làm trực quan hoá hệ thống, dùng các đặc tả của UML để chỉ ra các chi tiết của hệ thống
- Các bài trí: hầu hết các phần tử trong UML, đều có biểu diễn đồ họa duy nhất,
trực tiếp để cung cấp một sự thể hiện trực quan về các khía cạnh quan trọng nhất của phần tử đó Ví dụ, biểu diễn về lớp cũng đưa ra các khía cạnh quan trọng nhất của một lớp, như tên, thuộc tính, các tác vụ của nó
- Các phân hoạch chung:
Cách 1: đó là sự phân hoạch của lớp và đối tượng Một lớp là một trừu tượng, đối
tượng là một biểu hiện của lớp đó Hầu hết mọi khối xây dựng trong UML cùng một loại đều thuộc lớp hay đối tượng UML thường phân biệt lớp và đối tượng của lớp đó bằng cách gạch chân tên của đối tượng
Cách 2: Đó là sự phân chia giữa giao diện và triển khai một giao diện, khai báo hợp
đồng và sự thực thi hợp đồng để thể hiện việc thi hành cụ thể của hợp đồng Trong UML, ta có thể mô hình hoá cả giao diện và sự triển khai, như minh hoạ ở hình dưới
đây, có một thành phần được gọi là Spellingwizard.dll thực hiện giao diện IUnknow và
ISpelling
Hình 2.16: Giao diện và sự triển khai
- Các cơ chế khả năng mở rộng: UML cung cấp ngôn ngữ chuẩn để viết các bản
thiết kế phần mềm, nhưng nó không đủ để diễn đạt mọi sắc thái có thể có của các mô hình trong mọi lĩnh vực và trong mọi thời điểm Vì thế, UML được thiết kế mở cho phép nó có khả năng mở rộng theo cách có thể quản lý được Các cơ chế dùng để mở rộng là: các khuôn mẫu, các giá trị thẻ, các ràng buộc
IUnknow
ISpelling
Spellingwizard.dll
Trang 34Sự mở rộng từ vựng của ngôn ngữ của UML cho phép tạo ra các khối xây dựng mới từ các khối có sẵn để cụ thể cho vấn đề của ta bằng cách thêm vào biểu diễn khuôn mẫu, giá trị thẻ hay ràng buộc
2.5 ứng dụng của UML
UML không chỉ là công cụ mạnh trợ giúp phát triển các hệ thống phần mềm quy
mô lớn, phức tạp mà còn trợ giúp phát triển nhiều các hệ thống khác, tổ chức các
hệ kinh doanh, các hệ kỹ thuật
chương 3 ứng dụng UML để xây dựng mô hình cho
hệ thống quản lý đào tạo
Trang 353.1 Phát biểu bài toán
Quản lý đào tạo là một hoạt động không thể thiếu được trong tất cả các trường học Đây là một hoạt động nhằm quản lý hệ thống đào tạo trong các trường Việc quản
lý hàng ngàn thậm chí còn nhiều hơn nữa hồ sơ, sổ sách, giấy tờ là một công việc rất phức tạp mà nếu làm bằng tay thì có thể có rất nhiều sai sót Việc xây dựng một chương trình để quản lý các hồ sơ sinh viên và các hoạt động liên quan đến đào tạo trong một trường đại học là một việc làm cấp thiết Và để có một chương trình tốt, trước hết ta phải nắm bắt một cách chính xác các yêu cầu, từ đó xây dựng nên một mô hình tốt Luận văn này đề cập đến việc sử dụng UML để nắm bắt các yêu cầu và tiến hành các phân tích và thiết kế mô hình cho hệ thống quản lý đào tạo trong một trường đại học
3.2 Mô tả nghiệp vụ
3.2.1 Các chức năng nghiệp vụ
Có thể hình dung công việc quản lý đào tạo đại học bao gồm những công việc
cụ thể như sau:
Quản lý tuyển sinh: là quản lý thi tuyển đầu vào cho mỗi cơ sở đào tạo Trước
tiên thí sinh nộp hồ sơ xin thi tuyển, bộ phận xử lý hồ sơ phải tiếp nhận và xử lý Trên
cơ sở số hồ sơ đã xử lý, tiến hành đánh số báo danh, chuẩn bị phòng thi, xếp phòng Thí sinh thi xong, nộp bài phải có bộ phận kiểm bài, đánh phách, chia túi, khi giáo viên chấm điểm xong thì cần nhập điểm bài thi, tổng hợp kết quả thi theo yêu cầu đề ra Cuối cùng căn cứ vào kết quả điểm thi mà quyết định danh sách tuyển chọn
Quản lý sinh viên: bao gồm việc lưu trữ, cập nhật, tìm kiếm, thống kê hồ sơ
sinh viên
Hồ sơ sinh viên được quản lý riêng, phân chia thành từng khoá, từng ngành, từng lớp Kho hồ sơ lưu toàn bộ thông tin về sinh viên Các thông tin được phân vùng theo chủ đề Toàn bộ thông tin trong hồ sơ của mỗi học viên có thể được in thành quyển và dùng làm hồ sơ sinh viên khi ra trường Hồ sơ cần tổ chức sao cho có thể cập nhật dễ dàng , tìm kiếm theo yêu cầu một cách nhanh chóng
Trang 36 Quản lý chương trình đào tạo bao gồm toàn bộ quá trình cập nhật ngành đào
tạo, hệ đào tạo, cập nhật môn học, xác lập chương trình đào tạo cho mỗi lớp và lập lịch thực hiện Những người quan tâm tới chương trình đào tạo có thể xem chương trình đào tạo đó và những chương trình đào tạo có thể được sao lưu lại, in ấn nếu cần thiết
Quản lý học tập là toàn bộ các hoạt động quản lý quá trình học tập của sinh
viên
Quản lý học tập bao gồm quản lý khoá học, quản lý lớp học, quản lý chương trình học, mở lớp, lập lịch thi, lập danh sách thi, cập nhật điểm thi đi, thi lại, lên danh sách thi lại, giám sát, cập nhật học bạ, duy trì sổ điểm cùng rất nhiều chi tiết khác
Quản lý tài chính bao gồm thu học phí, phát học bổng, trợ cấp khó khăn
Thu học phí, cấp học bổng, trợ cấp là những công việc mà cơ sở đào tạo nào cũng phải tính tới Với mỗi cơ sở đào tạo đều duy trì một hệ thống quy chế ưu tiên riêng, vì vậy quản lý tài chính phải đảm nhiệm nhiệm vụ quản lý tài chính cơ bản dựa trên một khung quy chế được thiết kế mềm dẻo
Quản lý tốt nghiệp: dựa vào các tiêu chuẩn để xét tốt nghiệp mà đưa ra danh
sách sinh viên đủ điều kiện tốt nghiệp cũng như danh sách sinh viên không đủ điều kiện tốt nghiệp Tổ chức việc thi tốt nghiệp, làm đồ án khoá luận cuối khoá, làm hồ sơ công nhận tốt nghiệp Khi phát bằng tốt nghiệp cho sinh viên thì lưu thông tin đã phát bằng tốt nghiệp cho học viện
Dưới đây đưa ra một danh sách các chức năng của mỗi hoạt động trên:
Bảng3.1 Hệ thống các chức năng của hoạt động đào tạo
năng
Giải thích
Trang 37R2.3 CNĐKDT Cập nhật hồ sơ đăng ký dự thi
Trang 38R5.1.2 PCGD Phân công giảng dạy
nghiệp
Trang 39hướng dẫn, điểm, )
đăng ký dự thi và nộp cho ban tuyển sinh để làm thủ tục dự thi
thi
thí sinh
phòng thi
thi Mỗi bài thi có một phách để đảm bảo bí mật
sinh
Trang 40sinh nào đó Khi chưa lên danh sách, điểm thi được xác định bằng môn thi, số phách, cụm thi
trung tại một thời điểm Phòng thi được xác định bằng phòng thi số bao nhiêu, địa điểm,
đào tạo (CTĐT)
CTĐT chỉ ra khối kiến thức của CTĐT, tổng thời lượng của CTĐT, thời lượng của mỗi khối kiến thức, đưa ra những môn học với thời lượng
cụ thể trong từng khối kiến thức cụ thể
chức, tập trung hay từ xa,
kiện tiên quyết, yêu cầu đạt được, thời gian học
một lần
xét cấp học bổng cho sinh viên xuất sắc
địa điểm thi
điểm
cấp
khoá luận tốt nghiệp cũng như các điều kiện khác