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 s-u 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 tr-ng, tính toán các thông số và dự
đoán kết quả sẽ đạt đ-ợc.
51 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 2972 | Lượt tải: 6
Bạn đang xem trước 20 trang tài liệu UML – OOAD phân tích thiết kế phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 s−u 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 tr−ng, 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 nh−ng 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 để l−u 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, nh−ng 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
Ch−ơng 2. Ngữ nghĩa và cú pháp các phần tử trong
UML (UML Semantic)
2.1. Giới thiệu
UML gồm có siêu mô hình UML và mô hình UML. siêu mô hình UML giữ
chức năng định nghĩa các phần tử và cú pháp UML. Mô hình UML mô tả ký hiệu
các phần tử và các biểu đồ dựa trên siêu mô hình UML.
siêu mô hình UML bao gồm các phần tử và một số quy tắc về cú pháp. Ngoài
việc phần tử UML mang một ý nghĩa xác định, cú pháp UML còn mô tả cách
liên kết những phần tử nào với nhau để tạo ra ý nghĩa nào đó. ở góc độ mô hình
hóa, các phần tử UML có thể phân chia làm ba loại là các phần tử mô hình hóa
tĩnh, các phần tử mô hình hóa t−ơng tác và các phần tử quan hệ có chức năng liên
kết giữa hai phần tử trên với nhau. siêu mô hình UML giữ vai trò h−ớng dẫn
ng−ời sử dụng UML về cú pháp trong mô hình hóa. Ngoài ra, siêu mô hình UML
còn đ−ợc sử dụng bởi các nhà phát triển CASE tool để mô hình hóa dữ liệu cho
một CASE tool hỗ trợ UML. Mô hình dữ liệu này sử dụng lại định nghĩa phần tử
UML để thiết kế các lớp cơ bản và bổ sung thêm các lớp mới tùy theo chức năng
CASE tool cung cấp cho ng−ời sử dụng.
Mô hình UML là biểu diễn ký hiệu của các phần tử UML đồng thời cung cấp
cho ng−ời sử dụng các biểu đồ UML cụ thể để mô hình hóa cũng nh− làm ngôn
ngữ giao tiếp giữa các thành viên của nhóm trong quá trình phát triển phần mềm.
Nói cách khác, các biểu đồ trong Mô hình UML là thể hiện của các cú pháp
t−ơng ứng trong siêu mô hình UML. siêu mô hình UML đ−ợc chia thành nhiều
gói thành phần (package) dựa trên ý nghĩa của cú pháp đ−ợc mô tả. Mỗi gói định
nghĩa các phần tử khác nhau và mô tả một nhóm cú pháp dựa trên các phần tử
này. Trong mỗi gói lại có thể bao gồm các gói con. Việc phân chia này giúp cho
định nghĩa của siêu mô hình UML rõ ràng hơn, chỉ quan tâm đến các phần tử
trong gói và loại bỏ các phần tử không cần thiết v−ợt ra khỏi phạm vi ngữ nghĩa
cần mô tả của gói. Gói đ−ợc biểu diễn nh− sau
Tên gói
Hình 2.1. Ký hiệu gói
2.2. Tổng quan về các loại quan hệ giữa các phần tử
Trong quá trình định nghĩa phần tử cần phải mô tả các mối liên hệ giữa phần
tử này với các phần tử khác nên UML sử dụng một tập hợp các quan hệ. Mỗi
7
quan hệ có một ý nghĩa xác định. Các quan hệ này bao gồm quan hệ tổng quát
hóa (generalization), quan hệ kết hợp (association), quan hệ phụ thuộc
(dependency).
Mỗi phần tử đều có ngữ nghĩa riêng. Để biểu diễn phần tử và quan hệ giữa
các phần tử, UML sử dụng các ký hiệu riêng. Một phần tử có ký hiệu nh− sau:
Tên phần tử
Các thuộc tính
Hình 2.2. Ký hiệu phần tử
Phần sau trình bày sơ l−ợc các loại quan hệ. Chi tiết về các loại quan hệ giữa
các phần tử đ−ợc trình bày trong ch−ơng sau.
2.2.1. Quan hệ tổng quát hoá (generalization)
Quan hệ tổng quát hoá là quan hệ giữa một phần tử tổng quát hơn và một
phần tử đặc biệt hơn. Phần tử đặc biệt hơn chứa đầy đủ các đặc điểm của phần tử
tổng quát hơn và ngoài ra còn có những thông tin riêg. Quan hệ tổng quát hóa có
ký hiệu nh− sau:
Hình 2.3. Ký hiệu quan hệ tổng quát hoá
2.2.2. Quan hệ kết hợp (association)
Quan hệ kết hợp thể hiện liên hệ về mặt ngữ nghĩa giữa hai phần tử. Nghĩa là
phần tử này có sử dụng hay nhận biết các thông tin của phần tử kia. Quan hệ kết
hợp có thể bao gồm hai loại con là quan hệ ngữ nghĩa thông th−ờng (association)
và quan hệ kết tập (aggregation). Quan hệ ngữ nghĩa thông th−ờng
Hình 2.4 Ký hiệu quan hệ kết hợp
Quan hệ kết tập: phần tử này chứa phần tử kia theo nghĩa vật lý.
8
Hình 2.5 Ký hiệu quan hệ kết tập
2.2.3. Quan hệ phụ thuộc (dependency)
Quan hệ phụ thuộc thể hiện sự phụ thuộc chức năng của một hay nhiều phần
tử nhận vào một hay nhiều phần tử cho. Quan hệ phụ thuộc kém chi tiết về mức
độ ngữ nghĩa hơn quan hệ kết hợp và th−ờng sử dụng để mô tả sự phụ thuộc lẫn
nhau giữa các gói.
Hình 2.6 Ký hiệu quan hệ phụ thuộc
2.3. Tổng quan về các phần tử và cấu trúc siêu mô hình UML
2.3.1. Phân loại phần tử trong siêu mô hình UML
ở góc độ định nghĩa, các phần tử trong UML có thể đ−ợc chia làm hai loại là
phần tử trừu t−ợng và phần tử cụ thể. Các phần tử trừu t−ợng có tính tổng quát
cao giữ chức năng tham gia vào định nghĩa các phần tử khác. Các phần tử cụ thể
th−ờng có quan hệ tổng quát hóa qua nhiều tầng với các phần tử trừu t−ợng,
ngoài ra còn có các quan hệ kết hợp (association) với các phần tử khác. Chỉ các
phần tử cụ thể mới có ký hiệu trong Mô hình UML và đ−ợc sử dụng trong mô
hình hóa.
2.3.2. Cấu trúc siêu mô hình UML
Siêu mô hình UML bao gồm ba gói chính nh− sau
Foundation
Model ManagementBehavioralElements
Hình 2.7. Các gói chính của UML
9
Foundation Package (Gói nền tảng) là gói bao gồm phần lớn các phần tử trừu
t−ợng và một số phần tử cụ thể mang tính chất cơ bản. Các phần tử trong gói này
đ−ợc sử dụng bởi hai gói là BehavioralElements Package (gói phần tử hành vi) và
ModelManagement Package (gói quản trị mô hình).
BehavioralElements Package là gói định nghĩa các phần tử sử dụng cho việc mô
tả quá trình vận động của một phần tử hay t−ơng tác giữa các phần tử trong thế
giới thực.
ModelManagement là gói định nghĩa các phần tử cho việc quản lý mô hình của
ng−ời sử dụng.
2.4. Package Foundation Package (gói nền tảng)
Foundation Package định nghĩa những phần tử UML cơ bản. Foundation
Package bao gồm ba gói con là Core Package (gói cơ bản), gói các Data Types
Package (gói kiểu dữ liệu) và Extension Mechanism Package (gói kỹ thuật mở
rộng).
Data Types
Core ExtensionMechanism
Hình 2.8 Core Package
Core Package định nghĩa những phần tử cơ bản bao gồm cả các phần tử quan
hệ và đa số là ở mức trừu t−ợng. Extension Mechanism Package định nghĩa cơ chế
mở rộng cho các phần tử UML để bổ sung các phần tử mới. Data Types Package
định nghĩa các kiểu dữ liệu đ−ợc sử dụng trong siêu mô hình UML. Các thuộc
tính của các phần tử trong siêu mô hình UML có kiểu dữ liệu thuộc về Data
Types.
2.4.1. Core Package (gói cơ bản)
Core package bao gồm các phần tử cơ bản và đ−ợc mô tả bởi năm mô hình là
Backbone (x−ơng sống), Relationships (quan hệ), Dependencies (phụ thuộc),
Classifiers (phân loại) và Auxiliary Elements (bổ sung). Core package giới thiệu cú
pháp cho mô hình hóa tĩnh, không quan tâm đến quá trình vận động và t−ơng tác
giữa các đối t−ợng trong thế giới thực.
10
2.4.1.1. Mô hình Backbone (x−ơng sống)
Element
ElementOwnerShip
visibility: VisibilityKind
isSpecification:Boolean
Model Element
name :Name
Feature
ownerscope: ScopeKind
visibility: VisibilityKind
NameSpace GeneralizableElement
isRoot:Boolean
isLeaf:Boolean
isAbstract:boolean
Parameter
defaultValue: Expression
kind: ParameterDirectionKind
Constraint
body: BooleanExpression
Classifier
StuctualFeature
multiplicity: Multiplicity
changeability:ChangeableKind
tagetScope: ScopeKind
BehavioralFeature
isQuery:Boolean
Attribute
initialvalue: Expression
Operation
concurency:CallConcurencyKind
isRoot:Boolean
isLeaf:Boolean
isAbstract:boolean
specification: String
Method
body: ProcedureExpresstion
+ ownedElement
+ nameSpace
*
0..1
+ constraintElement
+ constraint
1..*
*
{ordered}
*
0..1
+ feature
+ owner
*
1
+ type
1 *
+ specification
+ type1
*
0..1
* + parameter
{ordered}
Hình 2.9. Mô hình BackBone
Backbone chủ yếu định nghĩa phần tử Classifier. Classifier là phần tử trừu t−ợng
đóng vai trò tổng quát hóa trực tiếp của phần lớn các phần tử cụ thể khác. Ngoài
ra, các phần tử cơ bản của UML đ−ợc định nghĩa trong Core bao gồm attribute
(thuộc tính), operation (hoạt động) và method (ph−ơng thức), parameter (tham số)
và constraint (ràng buộc).
Để phục vụ cho quá trình định nghĩa Classifier, UML đ−a ra các phần tử trừu
t−ợng có vai trò là tổng quát hóa (trực tiếp hay gián tiếp) của Classifier. Các phần
tử này có quan hệ với nhau và có quan hệ với Classifier đ−ợc mô tả trong mô hình
Backbone bao gồm:
Element (phần tử) : Element là một phần tử trừu t−ợng ở mức cao nhất, tổng
quát nhất trong các phần tử UML.
ModelElement (phần tử mô hình) : ModelElement là phần tử đ−ợc định danh
trong mô hình và là tổng quát hóa cấp cao nhất thứ hai cho các phần tử khác sau
Element. ModelElement là phần tử đ−ợc xác định qua tên.
Namespace (không gian các phần tử tham chiếu theo tên): Namespace là tập
hợp các phần tử ModelElement với điều kiện định danh của một ModelElement
trong một Namespace là duy nhất.
ElementOwnership: ElementOwnership định nghĩa tầm vực (visibility) của một
phần tử chứa trong Namspace (không gian các phần tử). ElementOwnership quy
định tầm vực của một phần tử đ−ợc giới hạn trong Namespace (chỉ có thể đ−ợc
tham chiếu bởi các phần tử trong Namespace) hay v−ợt khỏi Namespace (có thể
đ−ợc tham chiếu bởi các phần tử ngoài Namespace).
11
GeneralizableElement (phần tử có thể tổng quát hóa hay đặc biệt hóa):
GeneralizableElement là các phần tử có thể tham gia vào quan hệ tổng quát hóa
hay đặc biệt hóa. Do đó một GeneralizableElement có thể là tổng quát hóa hay đặc
biệt hóa của một GeneralizableElement khác.
Feature (đặc tính) : mô tả các đặc tính của một Classifier chủ yếu là tầm vực
(visibility) của đặc tính. Tầm vực này xác định một đặc tính của Classifier có thể
đ−ợc tham chiếu bởi các Classifier khác hay chỉ đ−ợc sử dụng bởi chính Classifier
chứa đặc tính đó.
StructuralFeature (đặc điểm cấu trúc) : đ−ợc thừa kế từ Fearture,
StructuralFeature mô tả đặc tính về mặt cấu trúc của một Classifier, mô tả cấu trúc
này có thể thay đổi