Tải bản đầy đủ (.pdf) (6 trang)

UML – OOAD phân tích thiết kế phần mềm - Chương 1 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (352.63 KB, 6 trang )


Software Engineering Departmnet Hanoi University of Technology
Faculty of Information Technology







UML OOAD

phân tích thiết kế phần mềm
hớng đối tợng và hớng thành phần


1. Đỗ Văn Uy
2. Nguyễn Ngọc Bình
3. Thạc Bình Cờng
4. Lơng Mạnh Bá
5. Huỳnh Quyết Thắng
6. Bùi Thị Hoà
7. Lê Tấn Hùng
8. Lê Đức Trung

Các nghiên cứu đợc hỗ trợ kinh phí từ đề tài nghiên cứu khoa học cơ
bản KHCB 230701


LUu HANH NOI BO
Hà nội 2001



Chơng 1. Tổng quan về UML
1.1. Giới thiệu
Trong thập kỷ vừa qua có nhiều phơng pháp và ngôn ngữ phân tích và thiết
kế hớng đối tợng đã đợc pháp triển. Mặc dù các phơng pháp này đều có một
mục đích chung tuy nhiên chúng đều có thuật ngữ và ký hiệu khác nhau nên gây
nhiều khó khăn khi so sánh các mô hình và dùng lại các thiết kế. Các phơng
pháp này không có phơng pháp nào nổi bật hơn những phơng pháp khác.
Trong tình hình đó UML ra đời, và đa ra một ngôn ngữ chuẩn cho mô hình hoá
hớng đối tợng.
UML - Unified Modeling Language - là ngôn ngữ mô hình hợp nhất. Nó là một
phơng tiện giúp cho các tổ chức có thể nhận thức một cách tốt nhất lợi thế cạnh
tranh thông qua việc nắm bắt, truyền đạt, trao đổi và nâng cao tri thức trong lĩnh
vực công nghệ phần mềm. Chính xác hơn UML là một ngôn ngữ mô hình hóa
dùng để đặc tả, trực quan hóa, xây dựng và làm su liệu cho các hệ thống phần
mềm
Unified (hợp nhất) UML đợc đa ra lần đầu tiên bởi hãng Rational và ba
chuyên gia về phơng pháp luận hàng đầu trong lĩnh vực hệ thống thông tin/ kỹ
thuật công nghệ Grady Booch, James. Rumbaugh, Ivar Jacobson. Nó là sự hợp
nhất giữa những phơng pháp cũ (Booch, OMT, OOSE ), kết hợp với những kinh
nghiệm, những kiến thức thực tế.
Modeling (mô hình hóa) giúp chúng ta hiểu đợc thế giới thực, mô hình hóa
thế giới thực để có thể hiểu đợc những đặc trng, tính toán các thông số và dự
đoán kết quả sẽ đạt đợc.
Language (ngôn ngữ) chức năng của UML nh là một phơng tiện để bày tỏ
và trao đổi tri thức. Nó có bốn đặc điểm chủ yếu có thể phân biệt với các ngôn
ngữ mô hình hóa khác

General-purpose - đa mục đích
Broadly applicable - có thể ứng dụng rộng rãi

Tool-supported - đợc hỗ trợ bởi các công cụ

Industry standardized - chuẩn công nghiệp
UML là một ngôn ngữ mô hình hóa chuẩn nhng không phải là một qui trình
phát triển phần mềm chuẩn. Mặc dù UML phải đợc áp dụng trong phạm vi một
qui trình cụ thể, các qui trình phát triển này thờng khác nhau ở các tổ chức phát
triển phần mềm, ở các vấn đề thuộc các lĩnh vực khác nhau. Do đó, các nhà phát
triển UML đã cố gắng tập trung vào định nghĩa mức siêu mô hình (
metamodel) để
thống nhất các khái niệm về ngữ nghĩa và ký hiệu, có thể hỗ trợ cho nhiều ngôn
ngữ lập trình và qui trình phát triển phần mềm khác nhau.
UML là tổng hợp các phơng pháp của Booch, OMT và OOSE tạo thành một
ngôn ngữ mô hình hóa chung và có thể sử dụng rộng rãi cho những ngời trớc
đây đã quen với ba phơng pháp trên hay các phơng pháp khác. Ngoài ra, UML


2

mở rộng phạm vi mô hình hóa của các phơng pháp hiện có và có thể mô hình
hóa đầy đủ các hệ thống đồng thời hay phân tán. UML là ngôn ngữ có thể đợc
sử dụng cho nhiều mục đích khác nhau. UML cung cấp cơ chế tổ chức và phân
loại tri thức theo ngữ cảnh của vấn đề cần giải quyết. Các tri thức này đợc nắm
bắt đầy đủ bởi mô hình bao gồm nhiều thành phần và đợc thể hiện qua tập các
biểu đồ khác nhau có liên hệ chặt chẽ với nhau. Hơn nữa, mỗi biểu đồ nắm bắt
vấn đề ở những khía cạnh khác nhau qua các khái niệm, cấu trúc, các thành phần
mô hình thể hiện những ngữ nghĩa và tri thức khác nhau. Các biểu đồ này mô tả
nội dung giao tiếp giữa các thành viên trong qui trình phát triển phần mềm và
đợc tích hợp với nhau để tạo nên tri thức mô tả hệ thống, những vấn đề cũng
nh cách thức thực hiện để giải quyết chúng.
Các lợi ích của UML

Có thể mô hình hóa nhiều loại hệ thống, có thể dùng trong những giai
đoạn khác nhau của qui trình phát triển phần mềm. UML là sự thống nhất
các khái niệm mô hình hóa của những nhà nghiên cứu và phát triển công
nghệ hớng đối tợng. UML cung cấp một số tính năng sau
Đầy đủ ngữ nghĩa và ký hiệu để giải quyết trực tiếp các vấn đề hiện
tại trong mô hình hóa.
Đầy đủ ngữ nghĩa để giải quyết một số khó khăn tơng lai trong
mô hình hóa đặc biệt có liên quan đến công nghệ thành phần, xử lý
phân tán, framework và executability.
Cơ chế mở rộng siêu mô hình cho mô hình hóa các ứng dụng đặc
biệt. Cơ chế này cũng khiến cho các hớng tiếp cận mô hình hóa
tơng lai có thể phát triển dựa trên nền tảng UML.
Đầy đủ ngữ nghĩa để dễ dàng chuyển đổi mô hình giữa các công cụ
hỗ trợ phân tích thiết kế khác nhau cũng nh định rõ giao tiếp với
các repository để lu trữ và chia xẻ các thành phần mô hình.
Đối với ngời sử dụng UML cung cấp một ngôn ngữ mô hình hóa trực
quan mang tính diễn đạt cao để phát triển và trao đổi giữa các mô hình.
Một ngôn ngữ mô hình hóa nói chung đợc cấu trúc dựa trên các thành
phần cơ bản nhất ở mức siêu-siêu mô hình. Nếu cấu trúc này thay đổi
theo một tập các khái niệm mô hình hóa khác nhau theo các phơng pháp
khác nhau thì việc chuyển đổi giữa các mô hình sẽ không tránh khỏi mất
thông tin. Để khắc phục vấn đề này, UML đã tập hợp các khái niệm mô
hình hóa cốt lõi (core modeling concepts) đợc sử dụng trong nhiều
phơng pháp và công cụ mô hình hóa khác nhau. Các khái niệm này có
thể hỗ trợ cho phạm vi lớn các ứng dụng. Ngoài ra, các khái niệm mô
hình hóa ở mức thấp hơn và cụ thể hơn cho việc giao tiếp cũng đợc định
nghĩa cho ngời sử dụng để mô hình hóa một hệ thống cụ thể.
UML cung cấp cơ chế mở rộng và đặc biệt hóa để mở rộng các khái niệm
cơ sở.
Dựa trên những khái niệm đã đợc định nghĩa này, OMG mong đợi ở

UML khả năng biến đổi để đáp ứng các yêu cầu mới của những phạm vi


3

ứng dụng đặc biệt. Các nhà phát triển UML không muốn rằng mỗi khi có
thay đổi. thì các khái niệm cốt lõi phải đợc định nghĩa lại. Vì vậy, họ tin
rằng việc đa ra cơ chế mở rộng cho UML sẽ hỗ trợ những xu hớng phát
triển mới. Ngời sử dụng có thể khai thác các tính năng sau của UML
Xây dựng mô hình bằng cách sử dụng những thành phần cơ bản đã
đợc định nghĩa không sử dụng cơ chế mở rộng cho hầu hết các
ứng dụng thông thờng.
Thêm các khái niệm và ký hiệu mới cho những vớng mắc không
giải quyết đợc với các khái niệm cơ bản.
Đặc biệt hóa các khái niệm, ký hiệu và ràng buộc cho một phạm vi
ứng dụng (application domain) cụ thể.
UML đẩy mạnh tái sử dụng trong nền công nghệ phần mềm. Tái sử dụng
là một trong những vấn đề đợc quan tâm hàng đầu trong công nghệ phần
mềm. Nguyên tắc của tái sử dụng là dựa trên các thành phần hiện có đã
đợc kiểm chứng về chất lợng và chỉ xây dựng các thành phần mới khi
thực sự cần thiết. Điều này không những giúp đơng đầu với mức độ phức
tạp ngày càng cao của ứng dụng mà còn giảm chi phí, giảm thời gian phát
triển và tăng khả năng cạnh tranh của nhà phát triển phần mềm. UML cho
phép tái sử dụng hiệu quả các thành phần của một hệ thống vì đợc xây
dựng trên nền tảng hớng đối tợng. Ngoài ra, UML còn hỗ trợ các khái
niệm phát triển phần mềm mức cao nh collabarations, frameworks,
patterns và components. Ngữ nghĩa của chúng đợc định nghĩa rất rõ
ràng và điều này giúp đạt đợc những giá trị thực sự đầy đủ của hớng
đối tợng và tái sử dụng.
1.2. Kiến trúc của UML

Siêu mô hình UML định nghĩa các ngữ nghĩa đầy đủ để biểu diễn các mô
hình sử dụng UML. Nó sử dụng tập con khái niệm của UML và các ngữ nghĩa để
xác định bản thân nó. siêu mô hình UML đợc định nghĩa nh là một trong các
tầng của kiến trúc siêu mô hình bốn tầng, đợc minh hoạ trong hình 4.1.
Tầng Mô tả Ví dụ
Siêu-siêu mô hình
(meta-metamode)
Là cơ sở để mô hình
hoá kiến trúc. Định nghĩa
ngôn ngữ xác định các siêu
mô hình
MetaClass,
MetaAttribute
Siêu mô hình
(metamode)
Một thể hiện của siêu-
siêu mô hình. Định nghĩa
ngôn ngữ để xác định mô
hình.
Class, Attribute
Mô hình (model) Một thể hiện của siêu
mô hình. Định nghĩa ngôn
ngữ để mô tả loại thông tin.



4

Đối tợng ngời sử
dụng (User object)

Một thể hiện của mô
hình. Định nghĩa một loại
thông tin cụ thể.

Hình 4.1. Kiến trúc UML
Tầng siêu-siêu mô hình gồm có các thành phần cơ bản nhất trên đó UML
dựa vào khái niệm Thing để biểu diễn bất cứ những gì có thể định
nghĩa. Mức trừu tợng này đợc sử dụng để hình thức hoá khái niệm và
định nghĩa một ngôn ngữ để xác định các siêu mô hình.
Tầng siêu mô hình gồm những thành phần cấu tạo nên UML, bao gồm
các khái niệm từ các biểu đồ hớng đối tợng và hớng thành phần. Mỗi
khái niệm trong tầng này đều là một thể hiện của khái niệm siêu - siêu mô
hình Thing. Tầng trừu tợng này đợc sử dụng để hình thức hoá các
khái niệm của biểu đồ và định nghĩa ra một ngôn ngữ để xác định các mô
hình.
Tầng mô hình gồm có các mô hình UML. Đây là tầng mà tại đó việc mô
hình hoá các bài toán, các lời giải hay các hệ thống đợc thực hiện. Mỗi
khái niệm trong tầng này là một thể hiện của khái niệm trong tầng siêu
mô hình. Tầng trừu tợng này đợc sử dụng để hình thức hoá các khái
niệm và định nghĩa một ngôn ngữ để trao đổi các từ ngữ về một chủ để
cho trớc. Các mô hình trong tầng này thờng đợc gọi là các mô hình
lớp hay mô hình kiểu.
Tầng các đối tợng ngời sử dụng bao gồm các thành phần để minh hoạ
các mô hình UML. Mỗi khái niệm trong tầng này là một thể hiện của
khái niệm trong tầng mô hình. Tầng trừu tợng này đợc sử dụng để hình
thức hoá các từ ngữ cụ thể về một chủ đề cho trớc. Các mô hình trong
tầng này thờng đợc gọi là các mô hình đối tợng hay mô hình thể hiện.
Trong ngữ cảnh này, khái niệm siêu đợc sử dụng để biểu thị mối quan hệ
giữa một tập các phi-siêu khái niệm (non-metaconcepts) và siêu khái niệm của
chúng. Khái niệm siêu không phải là đặc tính của mô hình, nhng lại có vai

trong trong mối quan hệ giữa các mô hình: một siêu - siêu mô hình quan hệ với
một siêu mô hình theo cách giống nh một siêu mô hình quan hệ với một mô
hình và cũng giống nh cách mà một mô hình quan hệ với đối tợng ngời sử
dụng. Về cơ bản thì biểu diễn siêu khái niệm của siêu khái niệm trong đó khái
niệm trừu tợng bao gồm việc đa vào siêu khái niệm và biểu diễn bao gồm thí
dụ minh hoạ (hay dẫn chứng cụ thể) một siêu khái niệm là sự trừu tợng một tập
các phi - siêu khái niệm.





5





6

×