Điển cứu nhập môn công nghệ phần mềm tìm hiểu về uml
Trang 2Mục Lục
TRÍCH YẾU 3
NHẬP ĐỀ 4
GIỚI THIỆU UML 5
1 LỊCH SỬ UML 5
2 UML LÀ GÌ? 5
3 UML TRONG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 6
4 UML VÀ CÁC GIAI ĐOẠN PHÁT TRIỂN HỆ THỐNG 7
KHÁI QUÁT VỀ UML 8
1 UML VÀ CÁC GIAI ĐOẠN CỦA CHU TRÌNH PHÁT TRIỂN PHẦN MỀM 8
1.1- Giai đoạn nghiên cứu sơ bộ: 8
1.2- Giai đoạn phân tích: 8
1.3- Giai đoạn thiết kế: 8
1.4- Giai đoạn xây dựng: 9
1.5- Thử nghiệm: 9
2 CÁC THÀNH PHẦN CỦA NGÔN NGỮ UML 9
3 HƯỚNG NHÌN (VIEW) 10
3.1- Hướng nhìn Use case (Use case View): 12
3.2- Hướng nhìn logic (Logical View): 13
3.3- Hướng nhìn thực hiện (Implementation View): 13
3.4- Hướng nhìn xử lý (Process View): 13
3.5- Hướng nhìn triển khai (Deployment View): 14
4 BIỂU ĐỒ (DIAGRAM) 14
4.1- Biểu đồ Use case (Use Case Diagram): 14
4.1.1- Vai trò của mô hình use case: 15
4.1.2- Xây dựng biểu đồ use case 16
4.1.3- Xây dựng biểu đồ use case trong Rational Rose 20
4.2- Biểu đồ đối tượng (Object Diagram) 26
4.3- Biểu đồ lớp (Class Diagram) 28
4.4- Biểu đồ trạng thái (State Diagram) 30
4.5- Biểu đồ trình tự (Sequence Diagram) 35
4.6- Biểu đồ cộng tác (Collaboration Diagram) 40
Trang 34.7- Biểu đồ hoạt động (Activity) 42
4.8- Biểu đồ thành phần (Component Diagram) 48
4.9– Sơ đồ triển khai (Deplopment Diagram) 50
KẾT LUẬN 52
Trang 4TRÍCH YẾU
Xu thế áp dụng phương pháp hướng đối tượng thay cho phương pháp hướng chức năng (phương pháp truyền thống) ngày càng được áp dụng phổ biến vào các hệ thống phần mềm Đối với một hệ thống lớn, phương pháp tiếp cận hướng đối tượng sử dụng UML được áp dụng như một quá trình suy diễn phát triển hệ thống để việc trao đổi giữa người thu thập thông tin với khách hàng, giữa người thiết kế với người lập trình cùng sử dụng một ngôn ngữ mô hình hoá
Rất nhiều dự án phải thay đổi dẫn đến tăng thêm chi phí do không có sự thống nhất giữa khách hàng và nhà sản xuất, giữa nhà quản lý và người thiết kế, những người phát triển sản phẩm với nhau
Trang 5NHẬP ĐỀ
Yêu cầu về một hệ thống phần mềm chất lượng cao, dễ dàng bảo trợ và phát triển luôn luôn được đặt ra đối với những người làm công nghệ phần mềm Một phần mềm được xây dựng thành công hay không phụ thuộc chủ yếu vào giai đoạn phân tích và thiết kế
Phương pháp phân tích thiết kế hướng đối tượng được đánh giá có nhiều ưu điểm so với phương pháp hướng chức năng truyền thống, và hiện là phương pháp được sử dụng phổ biến nhất để phát triển các phần mềm mở và đáp ứng yêu cầu người sử dụng
Bên cạnh đó, UML (Unified Modeling Language) là một ngôn ngữ đặc tả được phát triển những năm gần đây và hiện là chuẩn công nghiệp của thế giới về ngôn ngữ đặc tả cho nghànhcông nghệ phần mềm
UML là ngôn ngữ hệ thống phần mềm trực quan mới được phát triển và hiện nay được nhiều nhà sản xuất phần mềm lớn trên thế giới như Microsoft, Oracle, HP, sử dụng như là chuẩn công nghiệp phần mềm
Nhưng ở Việt Nam, phương pháp phân tích thiết kế hướng đối tượng chưa được ứng dụng nhiều, mới chỉ bắt đầu được đưa vào chương trìnhnh học của một số trường đại học và cao đẳng
Vì vậy cần nghiên cứu sâu hơn và có ứng dụng cụ thể để hiểu rõ hơn về phương pháp phân tích thiết kế hướng đối tượng Chính vì những lý do đó kết hợp với môi trường đang giảng dạy, nhóm chúng tôi xin lựa chọn đề tài “điển cứu về UML” Điển cứu được trình bày theo nội dung như sau :
Tìm hiểu ngôn ngữ UML và sử dụng phần mềm Rational Rose để mô hình hoá hệ thống
Tìm hiểu một số quy trình trong phân tích thiết kế hướng đối tượng
Trình bày một số quy trình phân tích thiết kế hướng đối tượng sử dụng UML vào hệ thống quản lý hồ sơ bệnh án
Trang 6GIỚI THIỆU UML
về các tòa nhà
UML (Unified Modeling Language) là một ngôn ngữ chuẩn cho việc cụ thể hóa, trựcquan hóa, xây dựng và tạo tài liệu cho một hệ thống phần mềm, cũng như cho môhình doanh nghiệp và những hệ thống khác UML miêu tả một loạt các kỹ thuật côngnghệ tốt nhất đã được kiểm chứng và thành công trong nhiều hệ thống lớn và phứctạp UML là một phần quan trọng trong việc phát triển các phần mềm hướng đối
Trang 7tượng và trong quy trình phát triển phần mềm UML sử dụng hầu hết các ký hiệu đồhọa để mô tả bản thiết kế của các dự án phần mềm Sử dụng UML sẽ giúp cho cácnhóm dự án có thể dễ dàng giao tiếp, khai thác những tiềm năng thiết kế, và phêchuẩn thiết kế kiến trúc của phần mềm.
Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) là một ngônngữ để biểu diễn mô hình theo hướng đối tượng được xây dựng bởi ba tác giả trên vớichủ đích là:
Mô hình hoá các hệ thống sử dụng các khái niệm hướng đối tượng
Thiết lập một kết nối từ nhận thức của con người đến các sự kiện cần mô hìnhhoá
Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, có nhiềuràng buộc khác nhau
Tạo một ngôn ngữ mô hình hoá có thể sử dụng được bởi người và máy
UML là hệ thống các ký hiệu và hình vẽ có ý nghĩa, quan trọng UML không phải làmột ngôn ngữ lập trình, nó phải được sử dụng kết hợp với một tiến trình phương phápluận UML là một ngôn ngữ dùng để đặc tả, trực quan hoá, và tư liệu hoá phần mềmhướng đối tượng
UML có thể được sử dụng trong nhiều giai đoạn, từ phát triển, thiết kế cho tới thựchiện và bảo trì Vì mục đích chính của ngôn ngữ này là dùng các biểu đồ hướng đốitượng để mô tả hệ thống nên miền ứng dụng của UML bao gồm nhiều loại hệ thốngkhác nhau như:
thông tin cho người sử dụng Xử lý những khoảng dữ liệu lớn có các quan hệphức tạp, mà chúng được lưu trữ trong các cơ sở dữ liệu quan hệ hay hướngđối tượng
thuật như viễn thông, hệ thống quân sự, hay các quá trình công nghiệp Đây làloại thiết bị phải xử lý các giao tiếp đặc biệt, không có phần mềm chuẩn vàthường là các hệ thống thời gian thực (real time)
thiết bị như điện thoại di động, điều khiển xe hơi, … Điều này được thực hiện
Trang 8bằng việc lập trình mức thấp với hỗ trợ thời gian thực Những hệ thống nàythường không có các thiết bị như màn hình đĩa cứng, …
phép truyền dữ liệu từ nơi này đến nơi khác một cách dễ dàng Chúng đòi hỏicác cơ chế liên lạc đồng bộ để đảm bảo toàn vẹn dữ liệu và thường được xâydựng trên một số các kỹ thuật đối tượng như CORBA, COM/DCOM, hay JavaBeans/RMI
người, máy tính, …), các quy tắc (luật pháp, chiến thuật kinh doanh, cơ chế,
…), và công việc hoạt động kinh doanh
cho phần mềm khác sử dụng, chẳng hạn như hệ điều hành, cơ sở dữ liệu, giaodiện người sử dụng
Preliminary Investigation: use cases thể hiện các yêu cầu của người dùng Phần
miêu tả use case xác định các yêu cầu, phần diagram thể hiện mối quan hệ và giaotiếp với hệ thống
Analysis: Mục đích chính của giai đọan này là trừu tượng hóa và tìm hiểu các cơ cấu
có trong phạm vi bài toán Class diagrams trên bình diện trừu tượng hóa các thực thểngoài đời thực được sử dụng để làm rõ sự tồn tại cũng như mối quan hệ của chúng.Chỉ những lớp (class) nằm trong phạm vi bài toán mới đáng quan tâm
Design: Kết quả phần analysis được phát triển thành giải pháp kỹ thuật Các lớp được
mô hình hóa chi tiết để cung cấp hạ tầng kỹ thuật như giao diện, nền tảng chodatabase, … Kết quả phần Design là các đặc tả chi tiết cho giai đoạn xây dựng phầnmềm
Development: Mô hình Design được chuyển thành code Programmer sử dụng các
UML diagrams trong giai đoạn Design để hiểu vấn đề và tạo code
Testing: Sử dụng các UML diagrams trong các giai đoạn trước Có 4 hình thức kiểm
tra hệ thống:
được dùng để kiểm tra các lớp hay các nhóm đơn thể
tích hợp là kiểm tra kết hợp các component với các lớp để xem chúng hoạtđộng với nhau có đúng không
Trang 9 System testing (use-case diagrams): kiềm tra xem hệ thống có đáp ứng được
chức năng mà người sử dụng yêu cầu hay không
thực hiện bởi khách hàng, việc kiểm tra này thực hiện tương tự như kiểm tra
hệ thống
KHÁI QUÁT VỀ UML
MỀM
1.1- Giai đoạn nghiên cứu sơ bộ:
UML đưa ra khái niệm Use Case để nắm bắt các yêu cầu của khách hàng (người
sử dụng) UML sử dụng biểu đồ Use case (Use Case Diagram) để nêu bật mốiquan hệ cũng như sự giao tiếp với hệ thống
Qua phương pháp mô hình hóa Use case, các tác nhân (Actor) bên ngoài quan tâmđến hệ thống sẽ được mô hình hóa song song với chức năng mà họ đòi hỏi từ phía
hệ thống (tức là Use case) Các tác nhân và các Use case được mô hình hóa cùngcác mối quan hệ và được miêu tả trong biểu đồ Use case của UML Mỗi một Usecase được mô tả trong tài liệu, và nó sẽ đặc tả các yêu cầu của khách hàng: Anh tahay chị ta chờ đợi điều gì ở phía hệ thống mà không hề để ý đến việc chức năngnày sẽ được thực thi ra sao
1.2- Giai đoạn phân tích:
Giai đoạn phân tích quan tâm đến quá trình trừu tượng hóa đầu tiên (các lớp vàcác đối tượng) cũng như cơ chế hiện hữu trong phạm vi vấn đề Sau khi nhà phântích đã nhận biết được các lớp thành phần của mô hình cũng như mối quan hệ giữachúng với nhau, các lớp cùng các mối quan hệ đó sẽ được miêu tả bằng công cụbiểu đồ lớp (class diagram) của UML Sự cộng tác giữa các lớp nhằm thực hiệncác Use case cũng sẽ được miêu tả nhờ vào các mô hình động (dynamic models)của UML Trong giai đoạn phân tích, chỉ duy nhất các lớp có tồn tại trong phạm vivấn đề (các khái niệm đời thực) là được mô hình hóa Các lớp kỹ thuật định nghĩachi tiết cũng như giải pháp trong hệ thống phần mềm, ví dụ như các lớp cho giaodiện người dùng, cho ngân hàng dữ liệu, cho sự giao tiếp, trùng hợp, v.v , chưaphải là mối quan tâm của giai đoạn này
Trang 101.3- Giai đoạn thiết kế:
Trong giai đoạn này, kết quả của giai đoạn phân tích sẽ được mở rộng thành mộtgiải pháp kỹ thuật Các lớp mới sẽ được bổ sung để tạo thành một hạ tầng cơ sở
kỹ thuật: Giao diện người dùng, các chức năng để lưu trữ các đối tượng trongngân hàng dữ liệu, giao tiếp với các hệ thống khác, giao diện với các thiết bị ngoại
vi và các máy móc khác trong hệ thống, Các lớp thuộc phạm vi vấn đề có từgiai đoạn phân tích sẽ được "nhúng" vào hạ tầng cơ sở kỹ thuật này, tạo ra khảnăng thay đổi trong cả hai phương diện: Phạm vi vấn đề và hạ tầng cơ sở Giaiđoạn thiết kế sẽ đưa ra kết quả là bản đặc tả chi tiết cho giai đoạn xây dựng hệthống
1.4- Giai đoạn xây dựng:
Trong giai đoạn xây dựng (giai đoạn lập trình), các lớp của giai đoạn thiết kế sẽđược biến thành những dòng code cụ thể trong một ngôn ngữ lập trình hướng đốitượng cụ thể (không nên dùng một ngôn ngữ lập trình hướng chức năng!) Phụthuộc vào khả năng của ngôn ngữ được sử dụng, đây có thể là một công việc khókhăn hay dễ dàng Khi tạo ra các mô hình phân tích và thiết kế trong UML, tốtnhất nên cố gắng né tránh việc ngay lập tức biến đổi các mô hình này thành cácdòng code Trong những giai đoạn trước, mô hình được sử dụng để dễ hiểu, dễgiao tiếp và tạo nên cấu trúc của hệ thống; vì vậy, vội vàng đưa ra những kết luận
về việc viết code có thể sẽ thành một trở ngại cho việc tạo ra các mô hình chínhxác và đơn giản Giai đoạn xây dựng là một giai đoạn riêng biệt, nơi các mô hìnhđược chuyển thành code
1.5- Thử nghiệm:
Như đã trình bày trong phần Chu Trình Phát Triển Phần Mềm, một hệ thống phầnmềm thường được thử nghiệm qua nhiều giai đoạn và với nhiều nhóm thử nghiệmkhác nhau Các nhóm sử dụng nhiều loại biểu đồ UML khác nhau làm nền tảngcho công việc của mình: Thử nghiệm đơn vị sử dụng biểu đồ lớp (class diagram)
và đặc tả lớp, thử nghiệm tích hợp thường sử dụng biểu đồ thành phần(component diagram) và biểu đồ cộng tác (collaboration diagram), và giai đoạnthử nghiệm hệ thống sử dụng biểu đồ Use case (use case diagram) để đảm bảo hệthống có phương thức hoạt động đúng như đã được định nghĩa từ ban đầu trongcác biểu đồ này
Trang 112 CÁC THÀNH PHẦN CỦA NGÔN NGỮ UML
Ngôn ngữ UML bao gồm một loạt các phần tử đồ họa (graphic element) có thểđược kếp hợp với nhau để tạo ra các biểu đồ Bởi đây là một ngôn ngữ, nên UMLcũng có các nguyên tắc để kết hợp các phần tử đó
Một số những thành phần chủ yếu của ngôn ngữ UML:
Hướng nhìn (view): Hướng nhìn chỉ ra những khía cạnh khác nhau của hệ thống
cần phải được mô hình hóa Một hướng nhìn không phải là một bản vẽ, mà là một
sự trừu tượng hóa bao gồm một loạt các biểu đồ khác nhau Chỉ qua việc địnhnghĩa của một loạt các hướng nhìn khác nhau, mỗi hướng nhìn chỉ ra một khíacạnh riêng biệt của hệ thống, người ta mới có thể tạo dựng nên một bức tranhhoàn thiện về hệ thống Cũng chính các hướng nhìn này nối kết ngôn ngữ mô hìnhhóa với quy trình được chọn cho giai đoạn phát triển
Biểu đồ (diagram): Biểu đồ là các hình vẽ miêu tả nội dung trong một hướng
nhìn UML có tất cả 9 loại biểu đồ khác nhau được sử dụng trong những sự kếthợp khác nhau để cung cấp tất cả các hướng nhìn của một hệ thống
Phần tử mô hình hóa (model element): Các khái niệm được sử dụng trong các
biểu đồ được gọi là các phần tử mô hình, thể hiện các khái niệm hướng đối tượngquen thuộc Ví dụ như lớp, đối tượng, thông điệp cũng như các quan hệ giữa cáckhái niệm này, bao gồm cả liên kết, phụ thuộc, khái quát hóa Một phần tử môhình thường được sử dụng trong nhiều biểu đồ khác nhau, nhưng nó luôn luôn cóchỉ một ý nghĩa và một kí hiệu
Cơ chế chung: Cơ chế chung cung cấp thêm những lời nhận xét bổ sung, các
thông tin cũng như các quy tắc ngữ pháp chung về một phần tử mô hình; chúngcòn cung cấp thêm các cơ chế để có thể mở rộng ngôn ngữ UML cho phù hợp vớimột phương pháp xác định (một quy trình, một tổ chức hoặc một người dùng)
Mô hình hóa một hệ thống phức tạp là một việc làm khó khăn Lý tưởng nhất làtoàn bộ hệ thống được miêu tả chỉ trong một bản vẽ, một bản vẽ định nghĩa mộtcách rõ ràng và mạch lạc toàn bộ hệ thống, một bản vẽ ngoài ra lại còn dễ giaotiếp và dễ hiểu Mặc dù vậy, thường thì đây là chuyện bất khả thi Một bản vẽkhông thể nắm bắt tất cả các thông tin cần thiết để miêu tả một hệ thống Một hệthống cần phải được miêu tả với một loạt các khía cạnh khác nhau: Về mặt chứcnăng (cấu trúc tĩnh của nó cũng như các tương tác động), về mặt phi chức năng(yêu cầu về thời gian, về độ đáng tin cậy, về quá trình thực thi, v.v và v.v.) cũngnhư về khía cạnh tổ chức (tổ chức làm việc, ánh xạ nó vào các code module, )
Trang 12Vì vậy một hệ thống thường được miêu tả trong một loạt các hướng nhìn khácnhau, mỗi hướng nhìn sẽ thể hiện một bức ảnh ánh xạ của toàn bộ hệ thống và chỉ
ra một khía cạnh riêng của hệ thống
Hình 3.1: Các view trong UML
Mỗi một hướng nhìn được miêu tả trong một loạt các biểu đồ, chứa đựng các thông tin nêubật khía cạnh đặc biệt đó của hệ thống Trong thực tế khi phân tích và thiết kế rất dễ xảy ra sựtrùng lặp thông tin, cho nên một biểu đồ trên thật tế có thể là thành phần của nhiều hướngnhìn khác nhau Khi nhìn hệ thống từ nhiều hướng nhìn khác nhau, tại một thời điểm có thểngười ta chỉ tập trung vào một khía cạnh của hệ thống Một biểu đồ trong một hướng nhìn cụthể nào đó cần phải đủ độ đơn giản để tạo điều kiện giao tiếp dễ dàng, để dính liền với cácbiểu đồ khác cũng như các hướng nhìn khác, làm sao cho bức tranh toàn cảnh của hệ thốngđược miêu tả bằng sự kết hợp tất cả các thông tin từ tất cả các hướng nhìn Một biểu đồ chứacác kí hiệu hình học mô tả các phần tử mô hình của hệ thống UML có tất cả các hướng nhìnsau:
Hướng nhìn Use case (use case view): đây là hướng nhìn chỉ ra khía cạnh chức năng
của một hệ thống, nhìn từ hướng tác nhân bên ngoài Đóng một vai trò đặc biệt đốivới kiến trúc Nó chứa một vài kịch bản hay use case chủ yếu, dùng để khám phá vàthiết kế kiến trúc và xác nhận các khung nhìn khác nhau Khung nhìn này có thể sửdụng sơ đồ use case để minh hoạ
Trang 13Hướng nhìn logic (logical view): chỉ ra chức năng sẽ được thiết kế bên trong hệ
thống như thế nào, Mô tả các yêu cầu chức năng của hệ thống, Sự trừu tượng của môhình thiết kế và xác định các gói thiết kế chính, các subsystem và lớp chính TrongUML khung nhìn này có thể được trình bày dùng sơ đồ lớp, sơ đồ đối tượng, sơ đồ
mô tả các gói, hệ thống con
Hướng nhìn thực hiện (implementation view): chỉ ra khía cạnh tổ chức của các
thành phần code Mô tả tổ chức của các đơn thể (module) phần mềm tĩnh (như mãnguồn, tập tin dữ liệu, thành phần, tập tin thực thi, và các thành phần kèm theo khác)trong môi trường phát triển Dùng sơ đồ thành phần để trình bày
Hướng nhìn xử lý (process view): Mô tả các khía cạnh xảy ra đồng thời của hệ
thống thời gian thực (run-time) (tasks, threads, processes ) Tập trung vào sự đồnghành, song song, khởi động và đóng hệ thống, khả năng chịu đựng hư hỏng, và sựphân tán các đối tượng chỉ ra sự tồn tại song song/ trùng hợp trong hệ thống, hướngđến vấn đề giao tiếp và đồng bộ hóa trong hệ thống
Hướng nhìn triển khai (deployment view): chỉ ra khía cạnh triển khai hệ thống vào
các kiến trúc vật lý (các máy tính hay trang thiết bị được coi là trạm cộng tác) Chothấy các tập tin thực thi và các thành phần khác nhau được triển khai trên các hệ thốngnhư thế nào Nó giải quyết các vấn đề như triển khai, cài đặt, và tốc độ Trong UML,khung nhìn này có thể sử dụng sơ đồ triển khai để mô tả
Khi bạn chọn công cụ để vẽ biểu đồ, hãy chọn công cụ nào tạo điều kiện dễ dàng chuyển từhướng nhìn này sang hướng nhìn khác Ngoài ra, cho mục đích quan sát một chức năng sẽđược thiết kế như thế nào, công cụ này cũng phải tạo điều kiện dễ dàng cho bạn chuyển sanghướng nhìn Use case (để xem chức năng này được miêu tả như thế nào từ phía tác nhân),hoặc chuyển sang hướng nhìn triển khai (để xem chức năng này sẽ được phân bố ra sao trongcấu trúc vật lý - Nói một cách khác là nó có thể nằm trong máy tính nào)
Ngoài các hướng nhìn kể trên, ngành công nghiệp phần mềm còn sử dụng cả các hướng nhìnkhác, ví dụ hướng nhìn tĩnh-động, hướng nhìn logic-vật lý, quy trình nghiệp vụ (workflow)
và các hướng nhìn khác UML không yêu cầu chúng ta phải sử dụng các hướng nhìn này,nhưng đây cũng chính là những hướng nhìn mà các nhà thiết kế của UML đã nghĩ tới, nên cókhả năng nhiều công cụ sẽ dựa trên các hướng nhìn đó
3.1- Hướng nhìn Use case (Use case View):
Hướng nhìn Use case miêu tả chức năng của hệ thống sẽ phải cung cấp do được tác nhân từbên ngoài mong đợi Tác nhân là thực thể tương tác với hệ thống; đó có thể là một người sửdụng hoặc là một hệ thống khác Hướng nhìn Use case là hướng nhìn dành cho khách hàng,nhà thiết kế, nhà phát triển và người thử nghiệm; nó được miêu tả qua các biểu đồ Use case(use case diagram) và thỉnh thoảng cũng bao gồm cả các biểu đồ hoạt động (activity
Trang 14diagram) Cách sử dụng hệ thống nhìn chung sẽ được miêu tả qua một loạt các Use case tronghướng nhìn Use case, nơi mỗi một Use case là một lời miêu tả mang tính đặc thù cho mộttính năng của hệ thống (có nghĩa là một chức năng được mong đợi).
Hướng nhìn Use case mang tính trung tâm, bởi nó đặt ra nội dung thúc đẩy sự phát triển cáchướng nhìn khác Mục tiêu chung của hệ thống là cung cấp các chức năng miêu tả tronghướng nhìn này – cùng với một vài các thuộc tính mang tính phi chức năng khác – vì thếhướng nhìn này có ảnh hưởng đến tất cả các hướng nhìn khác Hướng nhìn này cũng được sửdụng để thẩm tra (verify) hệ thống qua việc thử nghiệm xem hướng nhìn Use case có đúngvới mong đợi của khách hàng (Hỏi: "Đây có phải là thứ bạn muốn") cũng như có đúng với hệthống vừa được hoàn thành (Hỏi: "Hệ thống có hoạt động như đã đặc tả?”)
3.2- Hướng nhìn logic (Logical View):
Hướng nhìn logic miêu tả phương thức mà các chức năng của hệ thống sẽ được cung cấp.Chủ yếu nó được sử dụng cho các nhà thiết kế và nhà phát triển Ngược lại với hướng nhìnUse case, hướng nhìn logic nhìn vào phía bên trong của hệ thống Nó miêu tả kể cả cấu trúctĩnh (lớp, đối tượng, và quan hệ) cũng như sự tương tác động sẽ xảy ra khi các đối tượng gửithông điệp cho nhau để cung cấp chức năng đã định sẵn Hướng nhìn logic định nghĩa cácthuộc tính như trường tồn (persistency) hoặc song song (concurrency), cũng như các giaodiện cũng như cấu trúc nội tại của các lớp
Cấu trúc tĩnh được miêu tả bằng các biểu đồ lớp (class diagram) và biểu đồ đối tượng (objectdiagram) Quá trình mô hình hóa động được miêu tả trong các biểu đồ trạng thái (statediagram), biểu đồ trình tự (sequence diagram), biểu đồ tương tác (collaboration diagram) vàbiểu đồ hoạt động (activity diagram)
3.3- Hướng nhìn thực hiện (Implementation View):
Là một lời miêu tả của việc thực thi các modul cũng như sự phụ thuộc giữa chúng với nhau
Nó thường được sử dụng cho nhà phát triển và thường bao gồm nhiều biểu đồ thành phần.Thành phần ở đây là các modul lệnh thuộc nhiều loại khác nhau, sẽ được chỉ ra trong biểu đồcùng với cấu trúc cũng như sự phụ thuộc của chúng Các thông tin bổ sung về các thànhphần, ví dụ như vị trí của tài nguyên (trách nhiệm đối với một thành phần), hoặc các thông tinquản trị khác, ví dụ như một bản báo cáo về tiến trình của công việc cũng có thể được bổsung vào đây
3.4- Hướng nhìn xử lý (Process View):
Hướng nhìn song song nhắm tới sự chia hệ thống thành các qui trình (process) và các bộ xử
lý (processor) Khía cạnh này, vốn là một thuộc tính phi chức năng của hệ thống, cho phépchúng ta sử dụng một cách hữu hiệu các nguồn tài nguyên, thực thi song song, cũng như xử
lý các sự kiện không đồng bộ từ môi trường Bên cạnh việc chia hệ thống thành các tiểu trình
Trang 15có thể được thực thi song song, hướng nhìn này cũng phải quan tâm đến vấn đề giao tiếp vàđồng bộ hóa các tiểu trình đó.
Hướng nhìn song song giành cho nhà phát triển và người tích hợp hệ thống, nó bao gồm cácbiểu đồ động (trạng thái, trình tự, tương tác và hoạt động) cùng các biểu đồ thực thi (biểu đồthành phần và biểu đồ triển khai)
3.5- Hướng nhìn triển khai (Deployment View):
Cuối cùng, hướng nhìn triển khai chỉ cho chúng ta sơ đồ triển khai về mặt vật lý của hệthống, ví dụ như các máy tính cũng như các máy móc và sự liên kết giữa chúng với nhau.Hướng nhìn triển khai giành cho các nhà phát triển, người tích hợp cũng như người thửnghiệm hệ thống và được thể hiện bằng các biểu đồ triển khai Hướng nhìn này cũng bao gồm
sự ánh xạ các thành phần của hệ thống vào cấu trúc vật lý; ví dụ như chương trình nào hayđối tượng nào sẽ được thực thi trên máy tính nào
Biểu đồ là các hình vẽ bao gồm các ký hiệu phần tử mô hình hóa được sắp xếp để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 có 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ể; và khi được vẽ ra, nó thường thườngcũng được xếp vào một hướng nhìn Mặt khác, một số loại biểu đồ có thể là thànhphần của nhiều hướng nhìn khác nhau, tùy thuộc vào nội dung của biểu đồ
Phần sau miêu tả các khái niệm căn bản nằm đằng sau mỗi loại biểu đồ Tất cả các chitiết về biểu đồ, ngữ cảnh của chúng, ý nghĩa chính xác của chúng và sự tương tác giữachúng với nhau được miêu tả chi tiết trong các chương sau (mô hình đối tượng – môhình động) Các biểu đồ lấy làm ví dụ ở đây được lấy ra từ nhiều loại hệ thống khácnhau để chỉ ra nét phong phú và khả năng áp dụng rộng khắp của ULM
4.1- Biểu đồ Use case (Use Case Diagram):
Một biểu đồ Use case chỉ ra một số lượng các tác nhân ngoại cảnh và mối liên kết củachúng đối với Use case mà hệ thống cung cấp Một Use case là một lời miêu tả củamột chức năng mà hệ thống cung cấp Lời miêu tả Use case thường là một văn bản tàiliệu, nhưng kèm theo đó cũng có thể là một biểu đồ hoạt động Các Use case đượcmiêu tả duy nhất theo hướng nhìn từ ngoài vào của các tác nhân (hành vi của hệ thốngtheo như sự mong đợi của người sử dụng), không miêu tả chức năng được cung cấp sẽhoạt động nội bộ bên trong hệ thống ra sao Các Use case định nghĩa các yêu cầu vềmặt chức năng đối với hệ thống
Trang 164.1.1- Vai trò của mô hình use case:
Khi bắt đầu xây dựng một sản phẩm phần mềm, nhóm phát triển phải xác định các chức năng
mà hệ thống cần phải thực hiện là gì Biểu đồ use case được sử dụng để xác định các chứcnăng cũng như các tác nhân (người sử dụng hay hệ thống khác) liên quan đến hệ thống đó
Có thể coi một use case là tập hợp của một loạt các kịch bản (scenario) liên quan đến việc sửdụng hệ thống theo một cách thức nào đó Mỗi kịch bản (scenario) mô tả một chuỗi các sựkiện mà một người hay một hệ thống khác kích hoạt vào hệ thống đang phát triển theo tuần tự
thời gian Những thực thể tạo nên các chuỗi sự kiện như thế được gọi là các tác nhân (Actor).
Một hệ thống sẽ bao gồm nhiều use case, liên kết với nhau bởi các mối quan hệ nào đó Biểu
đồ use case được phân rã thành các mức tương ứng với các chức năng ở các cấp độ khácnhau, nhìn từ quan điểm người sử dụng hệ thống Sự cần thiết phải xây dựng biểu đồ use casethể hiện qua một số điểm sau:
- Use case là một công cụ tốt để người dùng tiếp cận và mô tả các chức năng của hệthống theo quan điểm của mình Biểu đồ use case được biểu diễn trực quan, do đókhách hàng và những người dùng tiềm năng của hệ thống có thể dễ dàng mô tả đượcnhững ý định thực sự của mình
- Biểu đồ use case sẽ làm cho khách hàng và người dùng tiềm năng tham gia cùngnhóm phát triển trong bước khởi đầu của quá trình phân tích thiết kế hệ thống Điềunày sẽ giúp cho nhóm phát triển và khách hàng có được sự thống nhất chung về cácchức năng thực sự cần thiết của hệ thống
- Biểu đồ use case là cơ sở cho những bước tiếp theo của quá trình phân tích thiết kế hệthống phần mềm Dựa trên biểu đồ use case và các scenario, người phát triển hệ thống
sẽ chỉ ra các lớp cần thiết cũng như các thuộc tính của các lớp đó
Các mục tiêu chính cần đạt được của các use case là:
- Cần chỉ ra và mô tả được các yêu cầu mang tính chức năng của hệ thống, đây là kếtquả rút ra từ sự thỏa thuận giữa khách hàng (và/hoặc người sử dụng cuối) và nhómphát triển phần mềm
- Đưa ra một mô tả rõ ràng và nhất quán về việc hệ thống cần phải làm gì, làm sao để
mô hình có thể được sử dụng nhất quán trong suốt toàn bộ quá trình phát triển và tạothành nền tảng cho việc thiết kế các chức năng sau này
- Tạo nên một nền tảng cho các bước kiểm thử hệ thống, đảm bảo hệ thống thỏa mãnđúng những yêu cầu do người sử dụng đưa ra Trong thực tế thường là để trả lời câu
Trang 17hỏi: Liệu hệ thống cuối cùng có thực hiện những chức năng mà khởi đầu khách hàng
Những công việc cụ thể cần thiết để tạo nên một mô hình Use Case bao gồm:
1 Xác định các tác nhân và các Use Case
2 Xác định các mối quan hệ và phân rã biểu đồ use case
3 Biểu diễn các use case thông qua các kịch bản
4 Kiểm tra và hiệu chỉnh mô hình
4.1.2- Xây dựng biểu đồ use case
Phần này sẽ trình bày quá trình xây dựng biểu đồ use case theo UML và áp dụng trong bộcông cụ Rational Rose
► Bước 1: Tìm các tác nhân và các use case
Để tìm các tác nhân, người phát triển hệ thống cần trả lời các câu hỏi sau:
- Ai (hay hệ thống nào) sẽ là người sử dụng những chức năng chính của hệ thống?(trả lời câu hỏi này ta sẽ tìm được các tác nhân chính)
- Ai cần sự hỗ trợ của hệ thống để thực hiện những công việc hàng ngày của họ?
- Ai sẽ cần bảo trì, quản trị và đảm bảo cho hệ thống hoạt động (tác nhân phụ)?
- Hệ thống sẽ phải xử lý và làm việc với những trang thiết bị phần cứng nào?
- Hệ thống cần phải tương tác với các hệ thống nào khác? Cần phân biệt hệ thống
mà chúng cần phải xây dựng với các hệ thống sẽ tương tác với nó Nghĩa là, cầnxác định rõ biên giới giữa hệ thống yêu cầu xây dựng với hệ thống khác có thểbao gồm các hệ thống máy tính cũng như các ứng dụng khác trong chính chiếcmáy tính mà hệ thống này sẽ hoạt động trong tương lai
- Ai hay cái gì quan tâm đến kết quả mà hệ thống sẽ sản sinh ra?
Trang 18Xem xét bài toán quản lý hồ sơ bệnh án, các chức năng chính của hệ thống quản lý hồ sơ
bệnh án được thực hiện bởi bác sĩ của đó Như vậy, chúng ta có 1 tác nhân là bác sĩ
Từ tác nhân đã tìm được ở trên, người phát triển hệ thống sẽ tìm ra các use case qua việc xemxét các câu hỏi sau trên mỗi tác nhân:
- Tác nhân đó cần chức năng nào từ hệ thống Hành động chính của tác nhân này làgì?
- Tác nhân cần phải xem, cập nhật hay lưu trữ thông tin gì trong hệ thống?
- Tác nhân có cần thông báo cho hệ thống những sự kiện nào đó hay không? Những
sự kiện như thế đại diện cho những chức năng nào?
- Hệ thống có cần thông báo cho tác nhân khi có thay đổi trong hệ thống haykhông?
- Hệ thống cần có những chức năng gì để đơn giản hóa các công việc của tác nhân?Trong bài toán quản lý hồ sơ bệnh án mà chúng ta đang xét, tác nhân bác sĩ sẽ thực hiện cậpnhật các thông tin liên quan đến bệnh nhân và các thông tin về bệnh án của bệnh nhân đó.Dựa vào đó, ta đã xác định được một số use case như: tìm kiếm, thêm, xóa, sửa bệnh nhânhay bệnh án của bệnh nhân đó
Ngoài ra, use case còn được xác định thông qua các câu hỏi khác như sau:
- Ngoài các tác nhân, các chức năng của hệ thống còn có thể được sinh ra bởi sựkiện nào khác (như sự kiện thời gian, tác động của chức năng khác, …)
- Hệ thống cần những thông tin đầu vào, đầu ra nào?
Trong bài toán quản lý hồ sơ bệnh án, để cập nhật được thông tin, bác sĩ phải thông qua việcđăng nhập hệ thống Hay nói cách khác, sự kiện đăng nhập hệ thống sẽ là điều kiện cho usecase cập nhật Vậy ta sẽ cần thêm use case cập nhật
► Bước 2: Xác định mối quan hệ và phân rã biểu đồ use case
Trong sơ đồ use case, các dạng quan hệ sẽ được sử dụng trong các trường hợp tương ứng nhưsau:
một use case khác
rộng từ một use case khác bằng cách thêm vào một chức năng cụ thể
thể hóa của use case đó
Trang 19- Quan hệ kết hợp: thường dùng để biểu diễn mối liên hệ giữa actor và các use case
(một actor kích hoạt một use case)
Dựa trên các mối quan hệ trên, biểu đồ use case được biểu diễn lại thành dạng phân cấp gọi làphân rã biểu đồ use case Nguyên tắc phân rã biểu đồ use case như sau:
- Xác định sơ đồ use case mức tổng quát: từ tập tác nhân và use case đã được xác
định ở bước trước, người phát triển cần tìm ra các chức năng chính của hệ thống.Các chức năng này phải có tính tổng quát, dễ dàng nhìn thấy được trên quan điểmcủa các tác nhân Các dạng quan hệ thường dùng trong sơ đồ use case mức tổngquát là quan hệ kết hợp, quan hệ tổng quát hóa và quan hệ include
Ví dụ trong bài toán quản lý hồ sơ bệnh án, xét trên quan điểm của các tác nhân bác sĩ, cácchức năng tổng quát của hệ thống là: đăng nhập, quản lý bệnh nhân, quản lý bệnh án, quản lýbác sĩ, tìm kiếm Trong các use case này, use case cập nhật “include” chức năng của use caseđăng nhập (Hình 4.1.1)
Trang 20Hình 4.1.2: Phân rã use case QLBenhAn
- Phân rã các use case: người phát triển tiến hành phân rã các use case tổng quát
thành các use case cụ thể hơn sử dụng quan hệ “extend” Các use case con (mứcthấp) được lựa chọn bằng cách thêm vào use case cha một chức năng cụ thể nào
đó và thường được mở rộng dựa trên cơ sở sự chuyển tiếp và phân rã các chứcnăng của hệ thống
Ví dụ, trong bài toán quản lý hồ sơ bệnh án, use case cập nhật có thể được phân rã thành cậpnhật bạn đọc và cập nhật tài liệu (Hình 4.1.2)
- Tiếp tục phân rã sơ đồ use case cho đến khi gặp use case ở nút lá: Các use case
ở nút lá thường gắn với một chức năng cụ thể trong đó hệ thống thực sự tương tácvới các tác nhân (gửi kết quả đến các tác nhân hoặc yêu cầu tác nhân nhập thôngtin …) Trong các sơ đồ use case mức 2, nếu còn có use case nào chưa phải là nút
lá thì cần tiếp tục được phân rã
- Hoàn thiện biểu đồ use case: người phát triển tiến hành xem xét lại xem tất cả
các use case đã được biểu diễn trong biểu đồ use case (ở tất cả các mức) hay chưa.Nếu còn có use case chưa có trong biểu đồ nào, người phát triển phải xem xét xem
Trang 21chức năng mà use case đó đại diện đã được thực hiện bởi các use case khác chưa
để bổ sung thêm hoặc loại bỏ use case đó ra khỏi biểu đồ
Trang 22► Bước 3: Biểu diễn các use case bởi kịch bản (scenario)
Sau khi hoàn thành phân rã biểu đồ use case, công việc tiếp theo của người phát triển hệthống là biểu diễn các scenario tương ứng với các use case đó Các scenario được biểu diễntheo mẫu chung như trong Bảng 4.1.3
Kích hoạt Bác sĩ chọn chức năng Thêm trong menu
Đảm bảo thành công Thông tin được thêm vào CSDL
Chuỗi sự kiện chính 1 Bác sĩ chọn chức năng ”Thêm” trong menu
2 Hệ thống hiển thị form và yêu cầu Bác sĩ nhập thôngtin bệnh án của bệnh nhân khi nhập viện
3 Bác sĩ nhập thông tin bệnh án và nhấn nút “OK”
4 Hệ thống kiểm tra thông tin bệnh án do bác sĩ nhậpvào và xác nhận thông tin bệnh án nhập vào là hợplệ
5 Hệ thống thêm bệnh án vào CSDL
6 Hệ thống thông báo đã thêm bệnh án thành công.Ngoại lệ 4 Hệ thống thông báo thông tin bệnh án không hợp lệ, bác
sĩ có nhập nữa không?
1 Bác sĩ nhấn nút “có”, quay lại bước 2
2 Bác sĩ nhấn nút “Không”, hệ thống thoát khỏi chứcnăng nhập thông tin bệnh án
Bảng 4.1.3: Biểu diễn scenario cho use case thêm bệnh án trong bài toán quản lý hồ sơ bệnh
án
► Bước 4: Hiệu chỉnh mô hình
Bước này thực hiện kiểm tra lại toàn bộ biểu đồ use case, bổ sung hoặc thay đổi các thông tinnếu cần thiết Trong bước này, toàn bộ biểu đồ use case cùng các scenario và các tài liệu khácliên quan sẽ được chuyển cho khách hàng xem xét Nếu khách hàng có điều gì chưa nhất trí,nhóm phát triển sẽ phải sửa đổi lại biểu đồ use case cho phù hợp Bước này chỉ kết thúc khikhách hàng và nhóm phát triển hệ thống có được sự thống nhất
4.1.3- Xây dựng biểu đồ use case trong Rational Rose
Biểu đồ use case được xây dựng trong Use Case View của Rational Rose (Hình 4.4) Cáccông cụ thông thường sử dụng trong biểu đồ use case gồm use case, actor, các quan hệassociation và dependency đều xuất hiện trong ToolBox tương ứng của biểu đồ use case
Trang 23Các bước xây dựng biểu đồ use case trong Rational Rose là:
1 Biểu diễn các tác nhân
2 Biểu diễn và đặc tả các use case mức tổng quát
3 Biểu diễn các mối quan hệ
4 Phân rã biểu đồ use case và đặc tả các use case mức thấp
Hình 4.1.4: Giao diện của biểu đồ use case
Bước 1: Biểu diễn các tác nhân Để thêm vào biểu đồ một tác nhân, ta thực hiện các bước
sau:
- B1 Chọn công cụ actor trên hộp công cụ
- B2 Đưa con trỏ vào vùng màn hình diagram và đặt vào vị trí thích hợp
- B3 Mở cửa số đặc tả actor và viết tên của tác nhân
Bước 2: Biểu diễn các use case mức cao
- B1 Chọn công cụ use case trên hộp công cụ
- B2 Đưa con trỏ vào màn hình diagram và đặt use case cần tạo vào vị trí thích hợp
- B3 Mở cửa số đặc tả use case, đặt tên cho use case và mô tả các thông tin khác.Cửa sổ Specification của một use case được biểu diễn như trong Hình 4.1.5 Trong cửa sổnày có các thanh Tab:
- Tab General đưa ra các thông tin chung về use case như tên, kiểu…
Trang 24- Tab Diagram cho biết các biểu đồ đi kèm của use case đó (khi mở rộng một usecase thì biểu đồ mức dưới sẽ xuất hiện ở đây)
- Tab Relations liệt kê các mối quan hệ của use case đó với các use case và actorkhác
- Tab Files là các file kèm theo use case (có thể là các scenario hoặc các dạng filekhác)
Hình 4.1.5: Cửa sổ đặc tả một use case
Bước 3: Biểu diễn và đặc tả các quan hệ
- B1.Chọn kiểu quan hệ tương ứng trong hộp công cụ: (quan hệ association,dependency)
- B2 Đặt con trỏ vào đối tượng khởi đầu quan hệ (actor hoặc use case) và kéo đếnđối tượng cuối
- B3 Mở cửa số đặc tả quan hệ để chọn kiểu quan hệ và đặt tên quan hệ cùng một
số thông tin khác
Tương tự với các use case, quan hệ giữa các use case cũng có một cửa sổ đặc tả tương ứng.Một trong những điểm quan trọng nhất trong đặc tả một quan hệ giữa các use case là chỉ rastereotype của quan hệ đó Hình 4.1.6 là cửa sổ đặc tả quan hệ kiểu phụ thuộc (Dependency)
Trang 25Hình 4.1.7.a và 4.1.7.b: là hai Tab khác nhau của cửa sổ đặc tả quan hệ dạng kết hợp(association).
Hình 4.1.6: Cửa sổ đặc tả một quan hệ dạng Dependency
Page | 24
Trang 26Bước 4: Phân rã biểu đồ use case.
Một trong những nhiệm vụ của bước xây dựng biểu đồ use case là phải phân rã biểu đồ usecase Để thực hiện công việc này, chúng ta làm theo hai bước sau:
- B1: Nhấn chuột phải vào use case tương ứng cần phần rã trong Browser Window
và chọn chức năng xây dựng Use Case Diagram mới (Hình 4.1.8)
- B2: Vẽ biểu đồ use case mức thấp tương tự như biểu đồ use case mức cao
Khi tạo xong biểu đồ use case mức thấp, biểu đồ này sẽ xuất hiện phía dưới use case tươngứng trong Browser Window (Hình 4.1.9)
Hình 4.1.8: Phân rã use case
Trang 27Hình 4.1.9: Một sơ đồ use case mức 2
Rational Rose cũng cho phép gắn kèm các file vào trong biểu đồ use case Chúng ta có thể lợidụng chức năng này để gắn các file biểu diễn scenario vào trong use case tương ứng (Hình4.1.10)