Theo Booch G., Rumbaugh J... Không mô hình nào là đầ y đủ.[r]
(1)(2)(3)(4)THUẬT NGỮ VÀ TỪ VIẾT TẮT 1 Tiếng Anh
ATM Automated Teller Machine Máy rút tiền tựđộng GRASP General Responsibility
Assignment Software Pattern
Mẫu gán trách nhiệm
ID Identifier Định danh
ODBMS Object Database Management System
Hệ quản trị sở liệu
đối tượng
OID Object Identifiers Định danh đối tượng
OMT Object Modeling Technique Kỹ thuật mơ hình hóa đối tượng OOSE Object-Oriented Software
Engineering
Công nghệ phần mềm hướng đối tượng PC Person Computer Máy tính cá nhân PIN Personal Identification Number Số nhận dạng cá nhân RAD Rapid Application Development Phát triển ứng dụng nhanh RDBMS Relational Database
Management System
Hệ quản trị sở liệu quan hệ
RUP Rational Unified Process Tiến trình hợp nhấtRational UI User Interface Giao diện người dùng
UML Unified Modeling Language Ngơn ngữ mơ hình hóa hợp UPC Universal Product Code Mã sản phẩm phổ biến
2 Tiếng Việt
(5)(6)LỜI NĨI ĐẦU
Cách đây khoảng 20 năm, để khắc phục những vấn đề tồn tại trong
cách tiếp cận hướng cấu trúc, người ta đã nghiên cứu một mơ hình mới
thích hợp cho việc phát triển phần mềm lớn và phức tạp, đó là mơ hình
hướng đối tượng. Cách tiếp cận hướng đối tượng đã ngày càng trở nên
phổ biến. Trong các dự án phát triển hệ thống lớn, ngơn ngữ mơ hình
hóa hợp nhất ‐ UML đã được ưu tiên cho q trình phân tích thiết kế hệ
thống. Ngày nay, nó được coi là một chuẩn quốc tế được tổ chức tiêu
chuẩn quốc tế ISO chấp nhận. Việc nắm vững các kiến thức cơ bản về
mơ hình, q trình mơ hình hóa, các kỹ thuật xây dựng mơ hình là
những u cầu bắt buộc cho bất cứ ai muốn phân tích và thiết kế một hệ
thống lớn theo hướng đối tượng.
Nhằm giúp sinh viên, nghiên cứu sinh và các lập trình viên có tài
liệu tham khảo tương đối hệ thống về phân tích và thiết kế theo hướng đối tượng, Nhà xuất bản Thơng tin và Truyền thơng trân trọng giới
thiệu cuốn sách “Các mơ hình cơ bản trong phân tích và thiết kế hướng đối tượngʺ do TS. Lê Văn Phùng (Viện Cơng nghệ thơng tin thuộc Viện
Khoa học và Cơng nghệ Việt Nam) biên soạn. Nội dung cuốn sách gồm 10 chương:
Chương 1: Tổng quan về mơ hình hóa phần mềm
Chương 2: Các khái niệm cơ bản trong phân tích và thiết kế hướng đối tượng
Chương 3: u cầu hệ thống và mơ hình nghiệp vụ
Chương 4: Mơ hình phân tích đối tượng
Chương 5: Các mơ hình phân tích động thái
(7)Chương 7: Mơ hình kiến trúc logic
Chương 8: Mơ hình kiến trúc vật lý
Chương 9: Mơ hình phân tích và thiết kế một ca sử dụng
Chương 10: Mơ hình thiết kế đối tượng
Hy vọng cuốn sách sẽ thực sự hữu ích cho các bạn đọc u cơng
nghệ thơng tin, ham mê phân tích thiết kế một hệ thống thơng tin, các
bạn đồng nghiệp, giáo viên, sinh viên đại học, cao đẳng và học viên cao
học chun ngành cơng nghệ phần mềm hoặc hệ thống thơng tin,…
Nhà xuất bản xin trân trọng giới thiệu cùng bạn đọc và rất mong
nhận được ý kiến đóng góp của q vị. Mọi ý kiến đóng góp xin gửi về Nhà xuất bản Thơng tin và Truyền thơng ‐ 18 Nguyễn Du, Hà Nội.
Xin trân trọng cảm ơn./.
(8)CHƯƠNG TỔNG QUAN VỀ MÔ HÌNH HĨA PHẦN MỀM 5
ơ
1
TỔNG QUAN VỀ MƠ HÌNH HĨA PHẦN MỀM
1.1 TỔNG QUAN VỀ MƠ HÌNH HĨA
1.1.1 Khái niệm trừu tượng hóa
Để tìm hiểu giới phức tạp, khoa học thực nghiệm phải vận dụng nguyên lý bản, sự trừu tượng hóa
(Abstraction) Trừu tượng hóa nguyên lý nhận thức, đòi hỏi phải bỏ qua sắc thái (chi tiết chủ điểm) không liên quan tới chủđịnh thời, để tập trung hoàn toàn vào sắc thái chính liên quan tới chủđịnh (từđiển Oxford)
Theo Liberty J.,1998, trừu tượng nguyên lý bỏ qua khía cạnh chủ thể khơng liên quan đến mục đích để tập trung
đầy đủ vào khía cạnh cịn lại Trừu tượng hóa đơn giản hóa thế giới thực cách thơng minh Nó cho khả tổng quát hóa và ý tưởng hóa vấn đềđang xem xét Chúng loại bỏđi chi tiết dư
thừa mà tập trung vào điểm chính,
(9)CÁC MƠ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
6
Trừu tượng bao gồm nhiều dạng: trừu tượng thủ tục, trừu tượng liệu, trừu tượng điều khiển [11] Trong trừu tượng liệu chế mạnh, dựa sở tổ chức suy nghĩ đặc tả nhiệm vụ hệ thống Trừu tượng liệu nguyên tắc xác định kiểu liệu cho thao tác áp dụng cho đối tượng, với ràng buộc giá trị lưu trữ đối tượng sửa đổi hay quan sát thơng qua thao tác Người thiết kế áp dụng trừu tượng liệu để xác định thuộc tính thao tác, xâm nhập thuộc tính thơng qua thao tác
Theo Wasserman, “Ký pháp trừu tượng mang tính tâm lý cho phép ta tập trung vào vấn đềở mức khái quát, bỏ qua chi tiết mức thấp liên quan Việc sử dụng trừu tượng cho phép ta làm việc với khái niệm thuật ngữ gần gũi môi trường vấn đềđặt mà chuyển chúng thành cấu trúc không quen thuộc” [11].
Nếu mặt, yếu tố đối tượng mô tả bị bỏ qua nhiều mức trừu tượng hóa cao Như ta mơ tảđối tượng thiết kế với nhiều mức trừu tượng khác tùy thuộc vào hiểu biết, nhận thức người phát triển yêu cầu đặt
Có nhiều mức trừu tượng:
- Mức cao nhất: giải pháp phát biểu theo thuật ngữđại thể cách dùng ngôn ngữ môi trường vấn đề
- Mức vừa: lấy khuynh hướng thủ tục nhiều Thuật ngữ
hướng vấn đề thường đôi với thuật ngữ hướng cài đặt mô tả giải pháp
- Mức thấp: giải pháp phát biểu theo thuật ngữ chi tiết để có thểđược cài đặt trực tiếp
(10)CHƯƠNG TỔNG QUAN VỀ MƠ HÌNH HĨA PHẦN MỀM 7
được phát biểu dạng "đó quan trọng môi trường vấn đề" Khi chuyển từ thiết kế sơ sang thiết kế chi tiết mức độ trừu tượng giảm dần Quá trình dẫn tới mức trừu tượng thấp sinh chương trình gốc
Trừu tượng hóa khả người việc giải vấn đề phức tạp Nó chế dùng để biểu diễn vật phức tạp để trở nên đơn giản cách dùng số loại mơ hình Nếu trừu tượng biểu diễn mức vật lý, chẳng hạn sơđồ giấy đối tượng vật lý, người ta thường dùng thuật ngữmơ hình
Trong việc phân tích thiết kế hướng đối tượng, người ta sử dụng sơ đồ để đơn giản hóa hệ thống để biểu diễn đặc điểm đó, nghĩa để thực trừu tượng Khi tạo thiết kế, việc dùng sơ đồ có lợi ích để trừu tượng hóa thuộc tính thiết kế Tất nhiên, người ta phải dùng nhiều sơ đồ thể hết phương diện khác đối tượng phức tạp
Trừu tượng hóa đặc điểm thích hợp xây dựng mơ hình xác kỹ người phân tích [20]
1.1.2 Khái niệm mơ hình mơ hình hóa 1 Định nghĩa ý nghĩa mơ hình
Mơ hình (model) dạng trừu tượng hóa hệ thống thực Mơ hình hình ảnh (một biểu diễn) hệ
thống thực, diễn tả ở mức độ trừu tượng đó, theo quan điểm đó, theo hình thức (hiểu được) như
phương trình, bảng, đồ thị,… Mơ hình có xu hướng dạng sơ đồ
(diagrams) tức đồ thị gồm nút cung [21]
(11)CÁC MƠ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
8
phức tạp, người phát triển phải trừu tượng hóa khía cạnh khác hệ thống, xây dựng mơ hình cách sử dụng ký hiệu cách rõ ràng, cẩn thận, kiểm tra xem mơ hình thỏa mãn yêu cầu hệ thống chưa thêm vào chi tiết để chuyển đổi từ mơ hình sang cài đặt cụ thể [18]
Trong phân tích thiết kế hệ thống, mơ hình tạo để trừu tượng hóa đặc điểm quan trọng hệ thống giới thực Trong lĩnh vực phần mềm, mơ hình kế hoạch chi tiết hệ thống, tranh hay mô tả vấn đề cố gắng giải hay biểu diễn Mơ hình cịn mơ tả giải pháp, dùng biểu tượng thay cho đối tượng thực Tiến trình phát triển phần mềm làm giảm sốđặc trưng đối tượng để hình thành mơ hình, làm giảm độ phức tạp mơ hình trừu tượng
Mọi mơ hình phản ánh hệ thống theo khung nhìn trừu tượng hóa Có khung nhìn chính:
+ Khung nhìn logic: tập trung mô tả chất hệ thống mục đích hoạt động hệ thống, bỏ qua yếu tố tổ chức thực hiện, biện pháp cài đặt Nói cách khác, mơ hình logic trả lời câu hỏi “là gì?” (What?)- chức gì, thơng tin gì, ứng xử gì, bỏ qua câu hỏi “như nào?” (How?) Ở tầng này, người ta tiến hành phương diện xử lý, liệu động thái hệ thống
+ Khung nhìn vật lý: Trả lời câu hỏi “như nào”, “ai làm”, “làm ởđâu”, “khi làm”, quan tâm đến mặt như: phương pháp, biện pháp, công cụ, tác nhân, địa điểm, thời gian, hiệu năng, Ở tầng yêu cầu cần làm rõ kiến trúc vật lý hệ thống
Việc xây dựng mơ hình có ý nghĩa lớn q trình phát triển phần mềm:
(12)CHƯƠNG TỔNG QUAN VỀ MƠ HÌNH HĨA PHẦN MỀM 9 Qua mơ hình biết hệ thống gồm gì? chúng hoạt động
- Mơ hình giúp quan sát hệ thống vốn có thực tế phải có ta mong muốn Muốn hiểu phát triển hệ thống phần mềm theo yêu cầu thực tế ta phải quan sát theo nhiều góc nhìn khác nhau: theo chức sử dụng, theo thành phần logic
- Mơ hình thể rõ đặc tả cấu trúc hành vi hệ thống - Đồng thời, mơ hình sở để trao đổi, ghi lại định thực nhóm tham gia dự án phát triển phần mềm Mọi quan sát, kết phân tích ghi lại chi tiết để phục vụ cho trình phát triển phần mềm
2 Khái niệm mơ hình hóa
Việc dùng mơ hình để nhận thức diễn tả hệ thống gọi mơ hình hóa Trong khoa học máy tính, mơ hình hóa việc mơ tả vấn đề, sau mơ tả giải pháp vấn đề Các hoạt động gọi phân tích thiết kế Khi khảo sát hệ thống, người ta sưu tập yêu cầu cho hệ thống, ánh xạ chúng thành yêu cầu phần mềm, từ phát sinh mã trình, đảm bảo u cầu phù hợp với mã trình khả chuyển đổi mã trình ngược lại thành u cầu Tiến trình thực mơ hình hóa
(13)CÁC MƠ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
10
3 Mục đích mơ hình hóa
Mục đích mơ hình hóa để hiểu, để làm phương tiện trao đổi, để hồn chỉnh hệ thống, hay nói rõ hơn:
a) Mơ hình hóa giúp ta hiểu thực trừu tượng, tổng quát hóa khái niệm sởđể giảm thiểu độ phức tạp hệ
thống. Qua mơ hình biết hệ thống gồm gì? chúng hoạt động nào?
Michael B., William P [17] nói: “Hiểu tức mơ hình hóa” Do vậy, trình phát triển phần mềm chẳng qua q trình nhận thức mơ tả lại hệ thống Đó q trình thiết lập, sử dụng biến đổi mơ hình Vậy, có mơ hình giúp ta làm sáng tỏ vấn đề phức tạp cho ta nhìn thấu đáo vấn đề cần giải
b) Mơ hình hóa giúp quan sát hệ thống vốn có thực tế phải có ta mong muốn Muốn hiểu phát triển hệ thống phần mềm theo yêu cầu thực tế ta phải quan sát theo nhiều góc nhìn khác nhau: theo chức sử dụng, theo thành phần logic, theo phương diện triển khai,
c) Mơ hình hóa cho phép đặc tảđược cấu trúc hành vi hệ thống:
+ Đảm bảo hệ thống đạt mục đích xác định trước Mọi mơ hình đơn giản hóa giới thực, phải đảm bảo sựđơn giản không loại bỏđi yếu tố quan trọng
+ Kiểm tra quy định cú pháp, ngữ nghĩa tính chặt chẽ đầy đủ mơ hình, khẳng định tính đắn thiết kế, phù hợp với yêu cầu khách hàng Nghĩa là, mơ hình hóa q trình hồn thiện tiến hóa liên tục
(14)CHƯƠNG TỔNG QUAN VỀ MƠ HÌNH HĨA PHẦN MỀM 11
1.1.3 Phương pháp mơ hình hóa
Phương pháp cách trực tiếp cấu trúc hóa suy nghĩ hành động người Phương pháp cho người sử dụng biết phải làm gì? làm nào? nào? sao? (mục đích hành động) Phương pháp chứa mơ hình (model), mơ hình dùng để mơ tả sử dụng cho việc truyền đạt kết trình sử dụng phương pháp [2]
Phương pháp mơ hình hóa là phương pháp quan trọng để nghiên cứu hệ thống Ý tưởng phương pháp mô hình hóa khơng nghiên cứu trực tiếp đối tượng mà thông qua việc nghiên cứu đối tượng khác “tương tự” “hình ảnh” mà sử dụng công cụ khoa học Kết nghiên cứu mơ hình áp dụng vào cho đối tượng thực tế
Hệ thống thực Mô hình
Kiểm nghiệm
đánh giá
Kết nghiên cứu mơ hình
2
4
Kiểm tra mức độ phù hợp
Điều chỉnh
Áp dụng không cần phải điều chỉnh
Hình 1.1 Sơđồ nguyên tắc hoạt động phương pháp mơ hình hóa
(15)CÁC MƠ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
12
Như vậy, mô hình hóa biểu diễn hệ thống dạng hình thức dễ hiểu s¬đồ, đồ thị, cơng thức Mơ hình hóa giúp hiểu rõ tốn, trao đổi thông tin người liên quan khách hàng, chun gia, người phân tích, người thiết kế Mơ hình giúp cho việc xác định yêu cầu tốt hơn, thiết kế rõ ràng khả bảo trì hệ thống cao
Mơ hình hóa phần trung tâm công việc, hoạt động để dẫn tới phần mềm tốt Chúng ta xây dựng mơ hình để trao đổi, bàn bạc cấu trúc hành vi mong muốn hệ thống Đồng thời xây dựng mơ hình để trực quan hóa kiểm sốt kiến trúc hệ thống
Mơ hình hóa mơ tả cấu trúc, nhấn mạnh mặt tổ chức hệ thống mô tả hành vi, tập trung vào mặt động hệ thống
Tóm lại, phương pháp mơ hình hóa phương pháp tiên tiến Nó giúp hiểu rõ hệ thống mà xây dựng, tạo hội để đơn giản hóa tái sử dụng Ngồi phương pháp mơ hình hóa cịn giúp dễ dàng kiểm soát rủi ro
Theo Booch G., Rumbaugh J and Jacobson I., mơ hình hóa hệ thống phải thực theo bốn hướng [2]:
Hình 1.2 Các hướng mơ hình hóa
(16)CHƯƠNG TỔNG QUAN VỀ MƠ HÌNH HĨA PHẦN MỀM 13 bên phải, nghĩa dựa vào liệu sử dụng phương pháp hướng đối tượng
1.1.4 Ngôn ngữ mô hình hóa
Mơ hình biểu diễn theo ngơn ngữ mơ hình hóa Ngơn ngữ mơ hình hóa bao gồm ký hiệu (những biểu tượng dùng mơ hình) tập quy tắc cách sử dụng chúng Các quy tắc bao gồm:
- Cú pháp (Syntactic): cho biết hình dạng biểu tượng cách kết hợp chúng ngôn ngữ
- Ngữ nghĩa (Semantic): cho biết ý nghĩa biểu tượng, chúng hiểu nằm không nằm ngữ cảnh biểu tượng khác
- Mục đích (Pragmatic):định nghĩa ý nghĩa biểu tượng để cho mục đích mơ hình thể người hiểu 1.1.5 Ngun tắc mơ hình hóa
Thơng qua mơ hình hóa, giới hạn vấn đề nghiên cứu cách tập trung vào khía cạnh vấn đề vào thời điểm Mơ hình hóa tăng độ dễ hiểu người Việc chọn mơ hình cho khả mơ hình làm việc mức trừu tượng cao Booch G., Rumbaugh J., Jacobson I., 1999, đưa ngun tắc mơ hình hóa:
1 Việc chọn mơ hình để tạo lập có ảnh hưởng sâu sắc đến cách giải vấn đề cách hình thành giải pháp Mỗi mơ hình biểu diễn hệ thống với mức độ xác khác
nhau
3 Mơ hình tốt phải mơ hình phù hợp với giới thực Khơng mơ hình đầy đủ Mỗi hệ thống thường tiếp
(17)CÁC MƠ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
14
Phụ thuộc vào chất hệ thống mà mơ hình có tầm quan trọng khác Mơ hình quan sát thiết kế tĩnh quan trọng hệ thống quản lý nhiều liệu; mơ hình ca sử dụng quan trọng hệ thống có nhiều giao diện; cịn mơ hình quan sát tiến trình động quan trọng hệ thống thời gian thực; đặc biệt mơ hình triển khai cài đặt quan trọng với hệ thống phân tán có ứng dụng web…
1.2 MƠ HÌNH HĨA TIẾN TRÌNH PHÁT TRIỂN PHẦN MỀM
1.2.1 Tiến trình phát triển phần mềm
Một tiến trình phát triển phần mềm tập hoạt động cần thiết để chuyển yêu cầu người dùng thành hệ thống phần mềm đáp ứng yêu cầu đặt [26]
Yêu cầu người dùng
Hệ thống phần mềm Tiến trình phát triển
phần mềm
Hình 1.3 Quá trình phát triển phần mềm
Vịng đời phát triển phần mềm chia thành pha: sơ bộ, soạn thảo, xây dựng chuyển giao Trong pha lại chia thành nhiều bước lặp nhỏ Mỗi bước lặp gồm số công việc thực trọn vẹn sản phẩm phần mềm: lập mơ hình đặc tả nghiệp vụ,
xác định yêu cầu, lập mơ hình phân tích liệu, xử lý hành vi, lập mơ hình thiết kế, triển khai kiểm thử
Mơ hình tiến trình phần mềm mơ tả tiến trình cách đơn giản hóa xem xét từ cách nhìn cụ thể [27]
(18)CHƯƠNG TỔNG QUAN VỀ MƠ HÌNH HĨA PHẦN MỀM 15 Năm 1996, Huff lần hệ thống hóa số mơ hình tiến trình phần mềm Sommerville, 2001, nhắc tới số loại mơ hình tiêu biểu:
- Mơ hình thác nước (waterfall model)
- Mơ hình phát triển tiến hóa (evolutionary models): mơ hình trình phát triển với trình lặp để xây dựng dần phần phềm Mơ hình loại bao gồm mơ hình làm mẫu, mơ hình xoắn ốc, mơ hình tiến trình hợp Rational-RUP, mơ hình phát triển tăng dần, phát triển ứng dụng nhanh-RAD (Rapid Application Development)
- Phát triển hệ thống hình thức (formal system development): Một cách tiếp cận dựa đặc tả hệ thống tốn học để chứng minh hay chuyển đổi thành chương trình nhờ cơng cụ tốn học chun dụng
- Phát triển phần mềm theo hướng sử dụng lại (reuse oriented software development): Quá trình phát triển tập trung vào việc tích hợp thành phần có để nhận hệ thống, đáp ứng yêu cầu đặt
1.2.2 Ngôn ngữ mô hình hóa hợp (UML)
UML (Unified Modeling Language) ngôn ngữ trực quan dùng quy trình phát triển hệ thống phần mềm Nó
(19)CÁC MƠ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
16
Do UML ngơn ngữ mơ hình hóa chuẩn, ngơn ngữ mơ hình đồ
họa, trực quan, vừa đặc tả vừa có cấu trúc, đồng thời lại ngôn ngữ
làm tài liệu nên việc phát triển phần mềm hướng đối tượng, UML đặc biệt có khả sau:
- Cho phép mơ tả tồn sản phẩm phân tích thiết kế; - Trợ giúp việc tựđộng hóa q trình thiết kế máy tính; - Trợ giúp việc dịch xuôi dịch ngược thiết kế sang mã nguồn ngơn ngữ lập trình CSDL
UML hợp từ nhiều thành tựu kinh nghiệm nghiên cứu triển khai nhờ:
- Cách tiếp cận Grady Booch (Booch Approach),
- Kỹ thuật mơ hình hóa đối tượng (OMT: Object Modeling Technique) James Rumbaugh,
- Công nghệ phần mềm hướng đối tượng (OOSE: Object-Oriented Software Engineering) Ivar Jacobson,
- Thống nhiều ký pháp, khái niệm nhiều phương pháp khác Quá trình hình thành UML ngôn ngữ Ada (Booch) trước năm 1990
Mục đích UML nhằm vào hoạt động sau:
- Mơ hình hóa hệ thống sử dụng tất khái niệm hướng đối tượng cách thống
- Cho phép đặc tả, hỗ trợđểđặc tả tường minh mối quan hệ khái niệm hệ thống, đồng thời mô tảđược trạng thái hoạt động hệ thống đối tượng Nghĩa cho phép mơ tảđược mơ hình tĩnh lẫn mơ hình động cách đầy đủ trực quan
(20)CHƯƠNG TỔNG QUAN VỀ MƠ HÌNH HĨA PHẦN MỀM 17 - Tạo ngôn ngữ mô hình hóa sử dụng cho người lẫn máy tính
Hình 1.4 Sự phát triển UML
1.2.3 Quy trình phát triển phần mềm hợp (USDP)
UML phát triển đểđặc tả q trình phát triển phần mềm, nhằm mơ hình hóa hệ thống Quy trình phát triển phần mềm có sử dụng UML gọi quy trình phát triển phần mềm hợp viết tắt USDP (Unified Software Development Proccess)
Các đặc trưng quy trình phát triển phần mềm hợp bao gồm:
- Quy trình phát triển phần mềm hợp bao gồm người, dự án, sản phẩm, quy trình cơng cụ Con người người
Ada/Booch
Booch 91 OOSE
Jacobson
OMT Rumbaugh
OOSE 94
Booch 93
UML 0.9 Amigos
UML 1.0
UML 1.1
OMT 94
UML 0.9 Booch/Rumbaugh 1990
1995
1997