Lớp sách: đại diện cho tài liệu và sách có trong thư viện. Gồm có các thuộc tính như: mã sách, tên sách, tên tác giả, tên nhà xuất bản, số bản sao và các thao tác thực hiện trong lớp này như: thêm sách, tìm sách, cập nhật sách, xoá sách, danh sách sách
Lớp bạn đọc: chứa các thông tin chi tiết về bạn đọc như: mã bạn đọc, tên bạn đọc, địa chỉ , hạn mượn và các thao tác : thêm bạn đọc mới, tìm, xoá, cập nhật thông tin bạn đọc
Lớp bạn đọc và loại sách: chứa thông tin chi tiết về bạn đọc và loại sách bạn đọc mượn: mã sách, mã bạn đọc, tên sách, tên bạn đọc và các thao tác: thêm, cập nhật , kiểm tra quá hạn và in phiếu nhắc trả sách
Lớp kho dữ liệu: chứa kho dư liệu mà lớp sách, bạn đọc, bạn đọc và loại sách cập nhật đến khi có yêu cầu.
38 trang |
Chia sẻ: aloso | Lượt xem: 2216 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu ngôn ngữ UML (Unified Modeling Language), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
o vậy họ đã đổi tên công việc của họ thành Unified Modeling Language _UML (ngôn ngữ mô hình hoá thống nhất). Booch, Rumbaugh và Jacobson đã đưa ra nhiều phiên bản UML, trong đó phiên bản UML 0.9 xuất hiện năm 1995, UML 1.0 xuất hiện vào năm 1997. Phần lớp UML được xây dựng trên nền tảng của các phương pháp Booch, OMT va OOSE, nhưng UML còn bao gồm cả các khái niệm có nguồn gốc từ các phương pháp khác nhau như David Harel, Gamma-Helm-Johnson-Vlissides và Fusion. UML còn là kết quả của sự đóng góp từ các hãng lớn như DEC, HP, IBM … Phiên bản UML 1.1 đã được đệ trình lên OMG và còn giờ đây có nhiều phiên bản khác như UML 1.3, UML 1.4 …
I.2. Nguyên nhân ra đời
Hiện nay tồn tại rất nhiều phương pháp phân tích thiết kế hướng đối tượng như là OOA (Object Oriented Analys) của Booch, OMT, (Object Modeling Technique) của Dumbaugh… Mỗi một phương pháp tồn tại trong nó các đặc điểm mạnh và điểm yếu. Do vậy bản thân mỗi phương pháp không đáp ứng được một cách đầy đủ đòi hỏi của người sử dụng. Do đó việc ứng dụng 1 ngôn ngữ mô hình hoá chuẩn, tồn tại trong suốt vòng đời phát triển là rất cần thiết. UML là ngôn ngữ mô hình hoá hợp nhất, được xem như công cụ đồ học nhằm biểu diễn trực quan, đặc tả, xây dựng và lập tài liệu các thành phần trong hệ thống. Nó cung cấp một cách thức chuẩn để tạo ra một sự mô tả hệ thống, đề cập đến những cái mang tính quan niệm như các tiến trình kinh doanh và chức năng hệ thống, đồng thời nó cũng đề cập đến những thứ cụ thể như là các lớp được viết trong một ngôn ngữ lập trình … UML được tạo ra là sự tất yếu khách quan, nó đáp ứng một cách khá đầy đủ các yêu cầu từ phía người dùng.
II Khái quát về UML
UML là ngôn ngữ mô hình hoá , trước hết nó là mô tả ký pháp thống nhất ngữ nghĩa và các định nghĩa về metamodel(mô tả và định nghĩa chính ngôn ngữ mô hình hoá), nó không mô tả về phương pháp phát triển UML được sử dụng để hiển thị, đặc tả, xây dựng và làm tài liệu các vật phẩm của phân tích hình thức và thiết kế trong quá trình xây dựng hệ thống phần mềm theo hướng đối tượng. UML được sử dụng cho mọi tiến trình phát triển phần mềm, xuyên suốt vòng đời phát triển độc lập với các công nghệ cài đặt hệ thống.
II.1 Giới thiệu UML
UML là ngôn ngữ chuẩn để viết kế hoạch chi tiết phần mềm. Nó phù hợp cho việc mô hình hoá các hệ thống như: hệ thống thông tin doanh nghiệp, các ứng dụng phân tán trên nền web, … nó không khó hiểu và dễ sử dụng. UML là ngôn ngữ mô hình được cả con người và máy sử dụng. Cũng như mọi ngôn ngữ mô hình hoá khác, UML có kí pháp và tập các luật sử dụng nó. Các luật bao gồm cú pháp, ngữ nghĩa và luật hình thành câu(pragmatic). Để sử dụng UML có hiệu quả cần nắm được ba nội dung chính:
Các phần tử cơ bản của mô hình trong UML.
Các quy định liên kết các phần tử mô hình.
Một số cơ chế chung áp dụng cho ngôn ngữ này.
UML là ngôn ngữ và nó chỉ là một phần của tiến trình phát triển phần mềm, độc lập với tiến trình. Tuy nhiên UML rất phù hợp với các tiến trình hướng trường hợp sử dụng (Use case - UC).
-UML là ngôn ngữ:
Ngôn ngữ phải có từ vựng và quy tắc tổ hợp các từ vựng để 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. UML là ngôn ngữ chuẩn công nghiệp để lập kế hoạch chi tiết phần mềm. Từ vựng và quy tắc ngôn ngữ UML cho ta cách thức xây dựng mô hình nào cần phải được lập và khi nào lập chúng.
-UML là ngôn ngữ hiển thị:
UML giúp ta xây dựng mô hình để dễ dàng giao tiếp. Một số công việc phù hợp với mô hình hoá bằng văn bản, một số công việc khác lại phù hợp với mô hình hoá bằng đồ hoạ. UML là ngôn ngữ đồ hoạ. Với nhiều hệ thống, mô hình trong ngôn ngữ đồ hoạ dễ hiểu hơn so với ngôn ngữ lập trình. Sau mỗi biểu tượng đồ hoạ của UML là ngữ nghĩa. Nên khi xây dựng mô hình trong UML thì người phát triển khác hay các công cụ hỗ trợ mô hình hoá có thể hiểu mô hình một cách rõ ràng.
-UML là ngôn ngữ đặc tả:
Đặc tả là mô tả rõ ràng những điểm mấu chốt của vấn đề. UML cho phép mô tả mô hình chính xác, không nhập nhằng và hoàn thiện. UML hướng tới đặc tả thiết kế, phân tích và quyết định cài đặt trong quá trình phát triển và triển khai hệ thống phần mềm.
-UML là ngôn ngữ để xây dựng:
Mô hình của UML có thể kết nối trực tiếp với các ngôn ngữ lập trình khác nhau. Có nghĩa là có thể ánh xạ mô hình trong UML tới các ngôn ngữ lập trình khác nhau như Java, C++ hay cá bảng CSDL quan hệ, CSDL hướng đối tượng. Ánh xạ này cho khả năng biến đổi thuận từ UML sang ngôn ngữ lập trình và cho khả năng biến đổi ngược lại. Có nghĩa là có thể làm việc với văn bản hay đồ hoạ một cách nhất quán.
-UML là ngôn ngữ làm tài liệu:
UML 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 chính của nó thông qua UC và tác nhân.
Trong UML ,các UC được mô tả bằng biểu đồ logic.
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 các chức năng bằng Stereotypes.
II.2 Mô hình khái niệm của UML
Để hiểu được UML ta cần được mô hình khái niệm của ngôn ngữ. Nó gồm ba vấn đề chính sau:
Các phần tử cơ bản để xây dựng mô hình
Quy tắc liên kết các phần tử mô hình
Một số cơ chế chung để sử dụng ngôn ngữ
II.2.1 Phần tử mô hình trong UML
Các khối để hình thành mô hình UML gồm ba loại sau: phần tử, quan hệ và biểu đồ. Phần tử là trừu tượng căn bản trong mô hình; các quan hệ gắn với các phần tử này lại với nhau; còn biểu đồ nhóm tập hợp các phần tử.
Trong UML có bốn loại phần tử mô hình: cấu trúc, hành vi, nhóm và chú giải. Các phần tử này là các khối để xây dựng hướng đối tượng cơ bản của UML.
-Phần tử cấu trúc:
Phần tử cấu trúc là các danh từ trong mô hình UML. Chúng là bộ phận tĩnh của mô hình để biểu diễn các thành phần khái niệm hay vật lý. Có bảng loại phần tử cấu trúc: lớp, giao diện, phần tử cộng tác, trường hợp sử dụng, lớp tích cực, thành phần, nút.
Lớp: Mô tả các đối tượng cùng chung thuộc tính, thao tác, quan hệ và ngữ nghĩa. Một lớp cài đặt một hay nhiều ghép nối. Lớp biểu diễn bằng hình chữ nhật, gồm tên, thuộc tính và thao tác.
Hình 1.1 Lớp
Giao diện: Là tập hợp các thao tác làm dịch vụ của lớp hay thành phần. Giao diện mô tả hành vi thấy được từ ngoài của thành phần. Giao diện biểu diễn toàn bộ hay một hành vi của lớp. Giao diện định nghĩa tập đặc tính thao tác.
Phần tử cộng tác: Mô tả ngữ cảnh của tương tác. Nó thể hiện một giải pháp thi hành bên trong hệ thống, bao gồm các lớp, quan hệ và tương tác giữa chúng để đạt được một chức năng mong đợi của UC.
Trường hợp sử dụng (Use case): mô tả tập trình tự các hành động mà hệ thống sẽ thực hiện để đạt được một kết quả cho tác nhân nào đó. Tác nhân là những gi bên ngoài tương tác với hệ thống. Tập hợp các UC của hệ thống sẽ hình thành các trường hợp mà hệ thống được sử dụng. Sử dụng UC để cấu trúc các phần tử có tính hành vi trong mô hình. Nó được hiện thực hoá phần tử cộng tác.
Kí pháp đồ hoạ của UC:
Hình 1.4 Use case
Lớp tích cực (Active class): Lớp tích cực là lớp có đối tượng làm chủ một hay nhiều tiến trình hay luồng. Lớp tích cực được xem như lớp thông thường nhưng đối tượng của nó biểu diễn các thành phần có hành vi đang tương tranh với các thành phần khác.
Thành phần: Thành phần biểu diễn vật lý mã nguồn các tệp nhị phân trong quá trình phát triển hệ thống.
Kí pháp đồ hoạ của nó:
Hình1.6. Thành phần
Nút (Mode): Nút là thành phần biểu hiện vật lý, tồn tại khi chương trình chạy và biểu diễn các tài nguyên tính toán. Có thể đặt tập các thành phần trên nút và chuyển từ nút này sang nút khác. Nút có thể là máy tính, thiết bị phần cứng.
Kí pháp đồ hoạ:
Hình 1.7. Nút
-Phần tử hành vi:
Phần tử hành vi là bộ phận động của mô hình UML. Chúng là các động từ của mô hình, biểu diễn hành vi theo thời gian và không gian. Có hai loại chính là: tương tác và trạng thái:
Tương tác: tương tác là hành vi bao gồm tập các thông điệp trao đổi giữa các đối tượng trong ngữ cảnh cụ thể để thực hiện mục đích cụ thể.
Biểu diễn đồ hoạ của thông điệp được thể hiện trên hình sau, bao gồm mũi
tên và tên thao tác của nó.
Máy trạng thái: máy trạng thái là hành vi chỉ ra trật tự các trạng thái mà đối tượng hay tương tác sẽ đi qua để đáp ứng sự kiện. Hành vi của lớp hay cộng tác của lớp có thể được xác định bằng máy trạng thái. Máy này kích hoạt nhiều phần tử, bao gồm trạng thái, chuyển tiến, sự kiện và hoạt động.
-Phần tử nhóm:
Phần tử nhóm là bộ phận tổ chức của mô hình UML, chỉ có một phần tử thuộc nhóm này có tên là gói (pakage). Gọi là cơ chế đa năng để tổ chức các phần tử vào nhóm. Các phần tử cấu trúc, hành vi và ngay cả phần tử nhóm có thể cho vào gói. Không giống thành phần (component), phần tử nhóm hoàn toàn là khái niệm, chúng chỉ tồn tại vào thời điểm phát triển hệ thống chứ không tồn tại vào thời gian chạy chương trình. Gói giúp ta quan sát hệ thống ở mức tổng quát hơn.
Kí pháp đồ hoạ của nhóm:
Hình1.10. Nhóm và chú thích
-Chú thích (annotational):
Phần tử chú thích là bộ phận chú giải của mô hình UML. Đó là lời giải thích áp dụng để mô tả các phần tử khác hay mô hình.
Hình1.11. Chú thích
II.2.2 Các quan hệ trong UML
Quan hệ trong UML đại diện cho sự liên hệ giữa các sự vật trong thế giới thực. Quan hệ là sự kết nối giữa hai thành phần trong hệ thống. Có bốn loại quan hệ trong UML bao gồm:
Phụ thuộc (dependency)
Tổng quát hoá (generalization)
Kết hợp (association)
Hiện thực hoá (realization)
-Phụ thuộc (dependency):
Phụ thuộc là quan hệ ngữ nghĩa giữa hai phần tử. Trong đó thay đổi phần tử độc lập sẽ tác động đến ngữ nghĩa của phần tử phụ thuộc.
Kí pháp đồ hoạ của nó thể hiện trên hình sau:
- - - - - - - - - - - - - - - - - ->
Hình 2.1.Quan hệ phụ thuộc
-Kết hợp (association):
Kết hợp là quan hệ cấu trúc để mô tả tập liên kết, một liên kết là kết nối giữa các đối tượng. Khi đối tượng của lớp này gửu (nhận) thông điệp đến (từ) đối tượng của lớp kia thì ta gọi chúng có quan hệ kết hợp.
Kí pháp đồ hoạ của nó thể hiện trên hình 2.2, chúng có thể chứa tên, nhiệm vụ và tính nhiều (Multiplicity).
Hình 2.2.Quan hệ kết hợp
Tụ hợp (aggregation) là dạng đặc biệt của kết hợp, nó biểu diễn quan hệ cấu trúc giữa toàn thể và bộ phận. Kí pháp đồ hoạ của nó thể hiện trên hình 2.3.
Hình 2.3.Tụ hợp
-Khái quát hoá (generalization)
Khái quát hoá là quan hệ đặc biệt hoá mà trong đó đối tượng cụ thể kế thừa các thuộc tính và phương pháp của đối tượng tổng quát. Kí pháp đồ hoạ của khái quát hoá thể hiện trên hình 2.4.
Generalization
Hình 2.4.Khái quát hoá
-Hiện thực hoá (realization)
Là quan hệ ngữ nghĩa giữa giao diện và lớp (hay thành phần) hiện thực lớp; giữa UC và hợp tác hiện thực UC. Biểu diễn đồ hoạ của nó được mô tả trên hình 2.5
- - - - - - - - - - - - - - - - ->
Hình 2.5.Hiện thực
II.2.3 Kiểu dữ liệu
Kiểu dữ liệu không phải là phần tử mô hình trong UML. Kiểu dữ liệu cơ sở là kiểu dữ liệu không có cấu trúc. UML có các kiểu dữ liệu sau:
Boolean: là kiểu đếm với hai giá trị True và False.
Biểu thức (expression): là xâu kí tự có cú pháp.
Tính nhiều (multiplicity): là tập không rỗng của các số nguyên dương và kí hiệu * (để biểu thị tính nhiều vô hạn ).
Tên (name): là xâu kí tự cho khả năng đặc tả phần tử.
Số nguyên (integer): là kiểu cơ bản và là phần tử của tập vô hạn các số nguyên âm và dương .
Xâu (string): là trật tự của các kí tự , được sử dụng làm tên .
Thời gian (time): xâu kí tự biểu diễn giá trị tuyệt đối hay khoảng tương đối.
Không lí giải (uninterpreted): là cái gì đó mà ý nghĩa của nó phụ thuộc vào lĩnh vực.
II.3 Biểu đồ UML
Biểu đồ là biểu diễn đồ hoạ tập các phần tử mô hình, vẽ biểu đồ để biểu diễn hệ thống đang xây dựng dưói các góc độ quan sát khác nhau. UML cho khả năng xây dựng các loại biểu đồ sau:
Biểu đồ trường hợp sử dụng
Biểu dồ trình tự
Biểu đồ cộng tác
Bểu đồ lớp
Biểu đồ thành phần
Biểu đồ triển khai
Biểu đồ chuyển trạng thái
Biểu đồ đối tượng
Biểu đồ hoạt động.
II.3.1 Biểu đồ trường hợp sử dụng (Use case _ UC)
Biểu đồ này chỉ ra tương tác giữa các UC và tác nhân. UC biểu diễn các chức năng của hệ thống. Tác nhân là con người hay hệ thống khác cung cấp hay thu nhận thông tin từ hệ thống đang được xây dựng. Biểu đồ UC tập trung vào quan sát trạng thái tĩnh của các UC trong hệ thống. Nó rất quan trọng trong việc tổ chức và mô hình hoá hệ thống. Vì UC biểu diễn yêu cầu hệ thống từ góc độ người dùng, cho nên UC là chức năng mà hệ thống phải có. Biểu đồ này chỉ ra tác nhân nào khởi động UC và khi nào tác nhân nhận thông tin từ hệ thống.
Ví dụ: Biểu đồ UC của ATM, chỉ ra tương tác của UC và tác nhân của hệ thống rút tiền Trong đó:
Hình 2.3 Biểu đồ UC của ATM
Khách hàng (tác nhân) : có khả năng khởi động một số UC như rút tiền, gửu tiền, chuyển tiền, xem số dư tài khoản, thay đổi số căn cước cá nhân và thanh toán.
Nhân viên ngân hàng (tác nhân) : có khả năng khởi động UC thay đổi số căn cước cá nhân.
Trường hợp sử dụng thanh toán có có mũi tên đi đến tác nhân hệ thống tín dụng cho biết UC trả lại thông tin cho tác nhân.
II.3.2 Biểu đồ trình tự (sequence)
Biểu đồ nà chỉ ra luồng chức năng xuyên qua các UC. Nó là biểu đồ mô tả tương tác giữa các đối tượng và tập trung vào mô tả trật tự các thông điệp theo thời gian.
Biểu đồ trình tự trên đã mô tả toàn bộ luồng xử lý cho UC rút tiền thông qua ví dụ trường hợp ông Văn rút 100.000đ. Khách hàng có thể thấy được tiến trình tác nghiệp cụ thể của hệ thống qua biểu đồ. Phân tích viên thấy được luồng tiến trình, người phát triển thấy được các đối tượng cần xây dựng và các thao tác cho các đối tượng này, kỹ sư kiểm tra chất lượng có thể thấy chi tiết của tiến trình để xây dựng quy trình thử nghiệm, kiểm tra. Nói chung biểu đồ này có ích với mọi người tham gia dự án.
Ví dụ về biểu đồ trình tự của hệ thống ATM được thể hiện trên hình 2.6
Hình 2.6.Biểu đồ trình tự của hệ thống ATM
II.3.3 Biểu đồ cộng tác (collaboration)
Biểu đồ này chỉ ra các thông tin như biểu đồ trình tự nhưng theo cách khác, nó tập trung vào tổ chức cấu trúc của các đối tượng gửi và nhận thông điệp. Biểu đồ cộng tác và biểu đồ trình tự thuộc loại biểu đồ tương tác và có thể biến đổi qua lại. Trong biểu đồ cộng tác, đối tượng đặt trong hình chữ nhật, tác nhân là người hình cây. Trong khi biểu đồ trình tự biểu diễn tương tác đối tượng và tác nhân theo thời gian thì biểu đồ cộng tác không quan tâm đến thời gian.
Ví dụ biểu đồ cộng tác ông Văn rút 100.000 đ
Hình 2.7.Sơ đồ cộng tác ông Văn rút 100.000 đ
Tuy cùng chỉ ra các thông tin như biểu đồ trình tự, nhưng biểu đồ cộng tác sử dụng vì mục đích khác. Kỹ sư kiểm tra chất lượng và kiến trúc sư hệ thống thấy được việc phân bổ tiến trình giữa các đối tượng thông qua biểu đồ này.
II.3.4 Biểu đồ lớp (class)
Biểu đồ chỉ ra tương tác giữa các lớp trong hệ thống. Các lớp được xem như kế hoạch chi tiết của các đối tượng. Người phát triển sử dụng biểu đồ lớp để xây dựng các lớp. Các công cụ phần mềm như Rose phát sinh mã trình xương sống cho các lớp, sau đó người phát triển phải chi tiết hoá nó bằng ngôn ngữ lập trình. Kiến trúc sư quan sát thiết kế hệ thống thông qua biểu đồ lớp.
Hình 2.8.Biểu đồ lớp của UC rút tiền
Biểu đồ này chỉ quan hệ giữa các lớp hình thành nên UC rút tiền. Nó gồm bốn lớp: máy đọc thẻ, tài khoản, màn hình ATM và máy trả tiền. Mỗi lớp trong biểu đồ được biểu diễn bằng hình chữ nhật chia làm ba phần:
Tên lớp (ví dụ trên lớp tài khoản )
Thuộc tính (lớp tài khoản chứa ba thuộc tính: số tài khoản, số căn cước cá nhân-PIN và cân đối tài khoản )
Thao tác (ví dụ lớp tài khoản có bốn thao tác: mở tài khoản, rút tiền, trừ tiền trong tài khoản và kiểm tra số tiền trong tài khoản ).
Đường nối giữa các phần tử biểu đồ lớp là quan hệ giao tiếp giữa chúng. Phía trái một số thuộc tính và thao tác có gắn biểu tượng khoá, có nghĩa là đó là các thuộc tính và thao tác riêng.
II.3.5 Biểu đồ chuyển trạng thái (State transition)
Biểu đồ này mô tả vòng đời của đối tượng, từ khi nó được sinh ra cho đến khi bị phá huỷ. Biểu đồ chuyển trạng thái cung cấp cách thức mô hình hoá các trạng thái khác nhau của đối tượng. Nó được sử dụng để mô hình hoá các hành vi động của hệ thống.
Hình 2.9.Biểu đồ trạng thái của lớp tài khoản
Biểu đồ chuyển trạng thái chỉ ra hành vi của đối tượng. Ví dụ đối tượng tài khoản trong ngân hàng có thể có một vài trạng thái như: mở, đóng hay rút quá mức. Tài khoản sẽ ứng xử khác nhau với mỗi trạng thái khác nhau.
Biểu đồ ở hình 2.9 cho thấy các trạng thái và quá trình chuyển trạng thái của tài khoản. Ví dụ khi tài khoản đang mở và khách hàng yêu cầu đóng tài khoản thì nó chuyển sang trạng thái đóng. Yêu cầu của khách hàng gọi là sự kiện. Sự kiện là cái gây ra các biến đổi từ trạng thái này sang trạng thái khác. Nếu tài khoản đang mở và khách hàng rút tiền thì có thể dẫn tới trạng thái rút quá. Trạng thái này xảy ra khi khách hàng còn nợ ngân hàng hay tài khoản < 0. Điều kiện này gọi là điều kiện gác. Điều kiện gác điều khiển việc xảy ra hay không xảy ra của biến đổi trạng thái. Các tiến trình xảy ra khi đối tượng đang trong trạng thái nào đó gọi là hành động. Ví dụ tài khoản bị rút quá thì thông báo được gửi tới khách hàng, việc gửi này gọi là hành động .
Thông thường chỉ tạo lập biểu đồ chuyển trạng thái cho các lớp phức tạp. Biểu đồ này chỉ dành cho việc làm tài liệu. Rose không phát sinh mã trình từ biểu đồ này.
II.3.6 Biểu đồ thành phần (component)
Biểu đồ này cho ta cái nhìn vật lý của mô hình. Cho thấy các thành phần mềm trong hệ thống và quan hệ giữa chúng. Hai loại thành phần trong biểu đồ: thành phần khả thực và thành phần thư viện. Trong Rose, mỗi lớp trong mô hình được ánh xạ đến một thành phần mã nguồn. Có thể có nhiều biểu đồ thành phần cho một hệ thống, số lượng này phụ thuộc vào các hệ thống con của chúng. Mỗi hệ thống con là gói thành phần, gói là tập hợp các đối tượng.
Bất kỳ ai có trách nhiệm dịch chương trình đều quan tâm đến biểu đồ này. Nó cho thấy trình tự dịch của các mođun trong hệ thống. Đồng thời nó cũng cho biết rõ thành phần nào được tạo ra khi chạy chương trình. Biểu đồ thành phần chỉ ra ánh xạ của lớp vào các thành phần cài đặt.
Dưới đây là một số ví dụ về biểu đồ thành phần:
Hình 2.10.Biểu đồ thành phần của máy chủ ATM
Hình 2.11.Biểu đồ thành phần của ATM client
II.3.7 Biểu đồ triển khai (deployment)
Biểu đồ này chỉ ra bố trí vật lý của mạng và các thành phần hệ thống sẽ đặt ở đâu.
Hình 2.12.Biểu đồ triển khai của hệ thống ATM
Biểu đồ này cho thấy máy trạm ATM sẽ chạy trên nhiều địa điểm khác nhau. chúng giao tiếp với máy chủ ATM thông qua mạng riêng. Máy chủ ATM sẽ giao tiếp với máy chủ CSDL thông qua mạng LAN. Như vậy hệ thống ATM có kiến trúc ba tầng: tầng CSDL, tầng máy chủ và tầng máy trạm.
II.3.8 Biểu đồ đối tượng
Biểu đồ đối tượng mô hình hoá các thể hiện của các phần tử có trong biểu đồ lớp. Nó chỉ ra một tập các đối tượng và các mối quan hệ giữa chúng trong một thời điểm nhất định.
Ta sử dụng biểu đồ đối tượng để mô hình khung nhìn thiết kế tĩnh và kkhung nhìn tiến trình động của một hệ thống. Điều này liên quan đến việc mô hình hoá một ảnh tạm thời của hệ thống và biểu diễn tập đối tượng, trạng thái và quan hệ của chúng.
Trong UML ta sử dụng biểu đồ lớp để mô hình hoá sắc thái tĩnh của các khối cấu trúc của hệ thống. Ta cũng sử dụng biểu đồ tương tác để mô hình hoá sắc thái động của hệ thống, bao gồm tập các thể hiện của các khối trên và các thông báo hình thành giữa chúng. Biểu đồ đối tượng do đó diễn tả phần tĩnh của biểu đồ tương tác, bao gồm các đối tượng và kết nối giữa chúng nhưng không chứa các thông báo như ở biểu đồ tương tác.
Thông thường ta mô hình hoá với biểu đồ đối tượng trong khía cạnh của các thể hiện thực và nguyên mẫu. Điều đó có nghĩa là cách nhìn này hỗ trợ các yêu cầu về chức năng hay là dịch vụ mà hệ thống cung cấp tới người sử dụng. Biểu đồ đối tượng cho phép ta mô hình các cấu trúc dữ liệu tĩnh.
Khi ta mô hình khung nhìn thiết kế tĩnh hoặc khung nhìn tiến trình tĩnh, cách thức ta sử dụng biểu đồ là mô hình các cấu trúc đối tượng. Mô hình cấu trúc đối tượng liên quan đến việc nhận được một ảnh của các đối tượng trong hệ thống tại một thời điểm nhất định. Biểu đồ đối tượng biểu diễn một khung ảnh trong một bộ phim được biểu diễn bởi biểu đồ tương tác.
II.3.9 Biểu đồ hoạt động
Biểu đồ hoạt động mô tả luồng từ hoạt động đến hoạt động. Một hoạt động là một sự thực hiện đang diễn ra ở trong máy trạng thái. Các hoạt động cuối cùng tạo ra kết quả ở một số hành động. Mỗi hành động tạo thành một sự tính toán nguyên tố có thể thực thi. Một sự tính toán nguyên tố có đặc điểm là làm thay đổi trạng thái của hệ thống hoặc của giá trị trả về. Các hành động bao gồm việc gọi các thao tác khác, gửi một tín hiệu, tạo hoặc phá huỷ một đối tượng hoặc là một vài sự tính toán khác như là đánh giá một biểu thức. Biểu diễn của biểu đồ hoạt động là một đồ thị gồm có các cung và nút .
Hình 2.13. Biểu đồ hoạt động
Các phần tử đặc trưng cho biểu đồ hoạt động bao gồm:
Các trạng thái hoạt động (activity state) và trạng thái hành động (action state)
Chuyển dịch (transition)
Đối tượng
II.4 Kiến trúc hệ thống
Kiến trúc hệ thống là trừu tượng hoá các khía cạnh quan trọng nhất của hệ thống. Nó cung cấp khung trong đó thiết kế sẽ được xây dựng. Nó mô tả tầm cỡ, sức mạnh của hệ thống, thu thập các UC quan trọng nhất và các yêu cầu ứng dụng. Nó thể hiện phần mềm sẽ được tổ chức như thế nào và cung cấp các giao thức trao đổi dữ liệu và giao tiếp giữa các mođun. Kiến trúc hệ thống là vật phẩm quan trọng nhất, được sử dụng để quản lý các điểm nhìn khác nhau để điều khiển phát triển hệ thống tăng dần và lặp trong suốt chu kỳ sống.
Kiến trúc là tập các quyết định về:
Tổ chức của hệ thống phần mềm
Lựa chọn các phần tử cấu trúc và giao diện cho hệ thống
Hành vi của chúng thể hiện trong hợp tác giữa các phần tử
Tổ hợp các phần tử cấu trúc và hành vi của con lớn hơn.
Kiến trúc phần mềm không chỉ liên quan đến cấu trúc và hành vi mà cả chức năng, tính sử dụng lại, dễ hiểu, ràng buộc công nghệ …
Kiến trúc hệ thống được mô tả bằng các khung nhìn. Các khung nhìn ánh xạ vào tổ chức và cấu trúc hệ thống, mỗi khung nhìn tập trung vào khía cạnh cụ thể của hệ thống.
Có 5 khung nhìn sau:
Khung nhìn trường hợp sử dụng (Use case view)
Khung nhìn logic (logical view)
Khung nhìn cài đặt (implennentation view)
Khung nhìn triển khai (deployment view)
Khung nhìn tiến trình (process view)
II.4.1 Khung nhìn UC
Khung nhìn này đứng trước mọi khung nhìn khác. Nó được hình thành từ giai đoạn phân tích yêu cầu và thúc đẩy phần việc còn lại của thiết kế. Nó mô tả các hành vi của hệ thống theo cách nhìn của khách hàng, phân tích viên và kỹ sư kiểm tra, thử nghiệm: Khung nhìn UC chứa các tác nhân, UC, biểu đồ UC trong hệ thống. Chúng cũng có thể bao gồm vài biểu đồ trình tự, biểu đồ cộng tác và gói. Khung nhìn UC tập trung vào mức cao của các hệ thống sẽ làm, không quan tâm đến hệ thống làm như thế nào.
II.4.2 Khung nhìn thiết kế
Rose gọi khung nhìn này là khung nhìn logic. Nó biểu diễn tổ chức của các lớp có ý nghĩa nhất và các quan hệ của chúng với nhau. Khung nhìn logic tập trung vào hệ thống cài đặt hành vi trong UC như thế nào. Nó bao gồm các lớp, biểu đồ lớp, biểu đồ đối tượng, biểu đồ tương tác, biểu đồ biến đổi trạng thái và các gói.
Thông thường đội ngũ phát triển phần mềm tiếp cận khung nhìn logic theo hai bước:
Bước 1: Là nhận ra các lớp phân tích (analysis class). Các lớp này độc lập với ngôn ngữ.
Bước 2: Sau khi đã nhận ra các lớp phân tích thì đội ngũ phát triển phần mềm chuyển chúng sang lớp thiết kế.
Khung nhìn logic tập trung vào cấu trúc logic của hệ thống. Từ khung nhìn này giúp ta nhận ra các bộ phận hệ thống, khảo sát thông tin và hành vi cho lớp, nhóm các lớp … khảo sát quan hệ giữa các lớp và gói để đảm bảo khả năng sử dụng lại.
II.4.3. Khung nhìn cài đặt
Rose gọi khung nhìn này là khung nhìn thành phần (component view). Thành phần là mođun vật lý hay tệp mã trình để lắp ráp thành hệ thống vật lý. Khung nhìn thành phần bao gồm: thành phần, biểu đồ thành phần và gói.
Người quan tâm nhất đến khung nhìn thành phần là người có trách nhiệm quản lý mã trình, dịch chương trình và triển khai ứng dụng. Một vài thành phần là thư viện, một số khác là mã trình khả thực (.exe) và thư viện (.dll).
II.4.4. Khung nhìn triển khai
Khung nhìn này tập trung vào phân bổ vật lý của tài nguyên và phân bổ nhiệm vụ giữa các tài nguyên. Khung nhìn triển khai liên quan đến triển khai vật lý của hệ thống, khác với kiến trúc logic. Thí dụ, hệ thống có kiến trúc ba tầng logic, bao gồm giao diện, logic tác nghiệp và logic CSDL tách biệt nhau. Nhưng triển khai có thể chỉ có hai tầng, trong đó logic tác nghiệp và logic CSDL trên cùng một máy. Khung nhìn triển khai bao gồm tiến trình (luồng thực hiện trong vùng nhớ riêng), bộ xử lý và thiết bị .
Khung nhìn triển khai chỉ ra các tiến trình và thiết bị trên mạng và các kết nối vật lý giữa chúng. Biểu đồ triển khai cũng hiển thị tiến trình và chỉ ra tiến trình nào chạy trên máy nào.
II.4.5. Khung nhìn tiến trình
Khung nhìn tiến trình biểu diễn phân tách các luồng thực hiện chương trình (tiến trình - process, luồng – thread, nhiệm vụ - task …), đồng bộ giữa các luồng, phân bổ các đối tượng và lớp cho các luồng thực hiện khác nhau. Khung nhìn tiến trình tập trung vào các nhiệm vụ tương tranh tương tác với nhau như thế nào trong hệ thống đa nhiệm. Trong biểu đồ của phần mềm công cụ Rose 2000 không có khung nhìn này.
III Tiến trình phát triển ứng dụng với UML
III.1Các kỹ thuật mô hình hoá hợp nhất (Unified modeling)
Trong kỹ nghệ phần mềm có một số cách để tiếp cận một mô hình. Hai cách phổ biến trong số này là mô hình hoá hướng chức năng và hướng đối tượng.
Mô hình hoá hướng chức năng thể hiện ở chỗ phần tử mô hình cơ bản là các chức năng. Quan điểm này dẫn đến việc xây dựng hệ thống chú trọng vào yếu tố điều khiển và quá trình phân chia các chức năng lớn thành các chức năng nhỏ hơn. Nhược điểm của phương pháp mô hình này là khi yêu cầu về hệ thống thay đổi thì hệ thống phần mềm rất khó bảo trì.
Mô hình hoá hướng đối tượng xem các lớp và đối tượng là các phần tử mô hình cơ bản của hệ thống. Các đối tượng là khái niệm được phát hiện từ không gian vấn đề và giải pháp. Thông thường các yếu tố này rất ít thay đổi khi hệ thống phát sinh các đòi hỏi mới. Trong phần này các kỹ thuật mô hình hoá hướng đối tượng được giới thiệu nhằm mục đích xây dựng các mô hình của hệ thống trên UML.
III.1.1 Xây dựng lược đồ Use case
Việc xây dựng lược đồ use case đòi hỏi các kỹ thuật mô hình hoá sau:
- Mô hình hoá ngữ cảnh của hệ thống
Ngữ cảnh của hệ thống bao gồm tất cả các yếu tố bên ngoài tương tác với hệ thống. Ngữ cảnh xác định môi trường tồn tại của hệ thống. Để mô hình ngữ cảnh của hệ thống ta tiến hành các công việc sau:
Nhận biết các tác nhân bao quanh hệ thống bằng cách xác định xem các nhóm yếu tố nào đòi hỏi sự giúp đỡ của hệ thống để thực hiện công việc của chúng, các nhóm nào thực hiện các chức năng của hệ thống, các nhóm nào tưong tác với các hệ thống phần cứng hoặc phần mềm khác và các nhóm nào là thực hiện các chức năng phụ như là bảo trì và quản trị .
Tổ chức các tác nhân theo quan hệ tổng quát hoá
Cung cấp các stereotype cho các tác nhân
Nhận biết lược đồ use case với các tác nhân này và xác định đường truyền thông giữa các tác nhân và use case của hệ thống.
-Mô hình hoá các đòi hỏi của hệ thống
Xác định xem hệ thống làm gì chứ không phải là nó làm như thế nào. Kỹ thuật mô hình hoá được mô tả như sau:
Thiết lập ngữ cảnh của hệ thống bằng các xác định các tác nhân tồn tại xung quanh hệ thống.
Với mỗi tác nhân, xác định các hành vi mà các tác nhân đó đòi hỏi ở hệ thống.
Đặt tên cho các hành vi này và xem chúng như là các use cases
Phân chia các hành vi chung thành các use case mới như là một trình cung cấp tính năng.
III.1.2 Xây dựng lược đồ lớp
- Mô hình từ điển hệ thống
Ta sử dụng các lớp để mô hình hoá phần lớn các trừu tượng tồn tại trong không gian bài toán và giải pháp (phạm vi công nghệ sử dụng để giải quyết vấn đề). Mỗi trừu tượng là một phần tử của từ điển hệ thống. Nó biểu diễn các yếu tố quan trọng đối với khách hàng và nhà phát triển. Để mô hình hoá từ điển ta tiến hành các công việc sau:
Nhận biết các yếu tố mà khách hàng và phát triển viên dùng để mô tả vấn đề và giải pháp.Ta sử dụng kỹ thuật CRC cards và phân tích dựa trên use case để thực hiện công việc này.
Đối với mỗi trừu tượng, tiến hành nhận biết các nhiệm vụ gắn với nó. Các lớp phải được xác định một cách sinh động và các nhiệm vụ được phân tán cân bằng giữa các lớp.
Cung cấp các thuộc tính và thao tác để thực hiện các nhiệm vụ của lớp.
- Mô hình hoá các quan hệ
- Quan hệ phụ thuộc
Nhận biết quan hệ phụ thuộc bằng cách nhận biết các thao tác trong lớp mà tham số của các thao tác có chứa các lớp khác.
- Quan hệ tổng quát hoá
Trong quá trình mô hình từ điển hệ thống, xuất hiện các lớp có cấu trúc và hành vi hầu như là giống nhau. Cách tốt nhất để tổ chức các lớp này là trích các đặc điểm cấu trúc và hành vi chung và đặt chúng trong các lớp tổng quát hơn. Để mô hình quan hệ thừa kế ta tiến hành:
Tìm kiếm các điểm chung giữa các lớp như là nhiệm vụ, thuộc tính và thao tác.
Đặt các đặc tính chung đó vào một lớp tổng quát hơn. Nếu cần thiết có thể tạo một lớp mới (số mức thừa kế không nên nhiều quá).
Xác định các quan hệ tổng quát giữa các lớp tổng quát và các lớp thừa kế nó.
- Quan hệ cấu trúc hay liên kết
Quan hệ liên kết xác định cấu trúc tương tác
Trong khi quan hệ phụ thuộc là quan hệ là quan hệ sử dụng, quan hệ tổng quát hoá là quan hệ “là một loại của” thì quan hệ liên kết xác định cấu trúc tưong tác giữa các đối tượng của các lớp. Để mô hình quan hệ cấu trúc ta tiến hành công việc sau:
Đối với mỗi cặp lớp, ta xác định một quan hệ cấu trúc giữa chúng nếu ta có thể xác định một lớp này từ lớp kia. Đây là khung nhìn hướng dữ liệu của quan hệ cấu trúc.
Đối với mỗi cặp lớp mà nếu các đối tượng của một lớp cần tương tác với các đối tượng của lớp kia như là các tham số trong thao tác. Ta xác định quan hệ cấu trúc giữa cặp lớp này. Đây là khung nhìn hướng hành vi của quan hệ cấu trúc.
Với mỗi liên kết trên, xác định multiplicity và vai trò ở mỗi đầu của liên kết
Xác định quan hệ kết tập (aggregation) giữa hai lớp nếu quan hệ giữa chúng là toàn thể - bộ phận.
- Mô hình các cộng tác đơn giản
Khi ta mô hình một lược đồ lớp, ta chỉ mô hình các yếu tố tạo nên khung nhìn thiết kế của hệ thống. Các yếu tố này bao gồm các phần tử và quan hệ giữa chúng. Với lý do này mỗi một lược đồ lớp nên đặt trọng tâm vào một cộng tác tại một thời điểm. Để mô hình hoá một cộng tác:
Nhận biết cơ cấu cần mô hình. Một cơ cấu biểu diễn chức năng hoặc hành vi của một phần của hệ thống cần mô hình. Cơ cấu này được thực hiện bởi một cộng tác bao gồm tập các lớp, giao diện và các phần tử khác.
Với mỗi cơ cấu, nhận biết các lớp, giao diện và cộng tác tham gia vào cơ cấu Nhận biết mối quan hệ giữa chúng .
Sử dụng kịch bản để đánh giá tính đúng đắn và đầy đủ của cộng tác này.
Xác định nội dung của các phần tử trong cộng tác.
- Mô hình hoá lược đồ cơ sở dữ liệu quan niệm
Nhận biết các lớp mà trạng thái của nó phải vượt quá thời gian sống của ứng dụng.
Tạo một lược đồ lớp chứa các lớp này và đánh dấu chúng như là persístent (một giá trị nhãn chuẩn).
Mở rộng các chi tiết cấu trúc của các lớp này. Điều này nghĩa là ta chỉ định chi tiết các thuộc tính, chú trọng liên kết giữa các lớp.
Xem xét các mẫu phổ biến tạo nên sự phức tạp trong thiết kế các cơ sở dữ liệu vật lý. Khi cần có thể tạo các trừu tượng trung gian để đơn giản hoá cấu trúc logic.
Xem xét hành vi của các lớp này bằng cách mở rộng các thao tác của chúng. Điều này rất quan trọng đối với sự truy nhập và tính toàn vẹn dữ liệu.
Sử dụng các công cụ để biến đổi thiết quan niệm thành thiết kế vật lý nếu cần.
III.1.3 Xây dựng lược đồ tuần tự
Để xây dựng lược đồ tuần tự ta phải xác định các tương tác theo thứ tự thời gian.
- Mô hình hoá luồng điều khiển theo trình tự thời gian.
Thiết lập ngữ cảnh cho một tương tác, xem xét nó trong toàn bộ hệ thống, trong một lớp, một thao tác, một kịch bản của use case hay là một cộng tác.
Thiết lập giai đoạn cho tương tác bằng cách nhận biết các đối tượng nào tham gia một vai trò trong tương tác. Đặt các đối tượng này vào trong lược đồ tương tác từ trái qua phải, đối tượng quan trọng hơn đạt ở bên trái sau đó là các đối tượng gần gũi với nó.
Xác định đường sống cho mỗi đối tượng. Phần lớn các trường hợp một đối tượng tồn tại trong toàn bộ một tương tác. Với các đối tượng có thời gian sống nằm trong một tương tác thì ta phải xác định các đường sống của chúng, chỉ định thời điểm sinh và phá huỷ của đối tượng với các stereotype thích hợp.
Bắt đầu cùng với một thông báo khởi tạo tương tác. Xếp các thông báo tiếp theo theo thứ tự từ trên xuống dưới giữa các đường sống, chỉ ra các thuộc tính của thông báo (tham số) để giải thích ngữ nghĩa của một tương tác.
Thêm vào lược đồ tam điều khiển nếu cần phảibiểu diễn trực quan các thông báo lồng nhau.
Thêm vào lược đồ các ràng buộc về thời gian và không gian thich hợp nếu cần.
Thêm vào lược đồ các điều kiện trước và sau cho mỗi thông báo nếu cần.
III.1.4 Xây dựng lược đồ cộng tác
Mục đích sử dụng lược đồ tương tác là biểu diễn quá trình truyền các thông báo trong ngữ cảnh của cấu trúc đối tượng.
- Mô hình hoá luồng điều khiển theo tổ chức các đối tượng
Thiết lập ngữ cảnh cho một tương tác, xem xét nó trong toàn bộ hệ thống, trong một lớp, một thao tác, một kịch bản của use case hay là một cộng tác.
Thiết lập giai đoạn cho tương tác.
Thiết lập đặc tính ban đầu cho mỗi đối tượng.
Xác định các kết nối giữa các đối tượng, và các thông báo truyền trên các kết nối đó:
Xếp các kết nối cấu trúc đầu tiên, đây là các kết nối quan trọng nhất
bởi vì chúng biểu diễn các quan hệ cấu trúc.
Kế tiếp là xếp các kết nối khác vào trong lược đồ với các streotype thích hợp (global hay local).
Bắt đầu cùng với một thông báo khởi tạo tương tác, gắn mỗi thông báo kế tiếp vào một kết nối thích hợp, thiết lập số thứ tự của thông báo.
Gắn vào mỗi thông báo các ràng buộc về không gian và thời gian nếu cần.
Gắn vào mỗi thông báo các điều trước và điều kiện sau nếu cần. Áp dụng kỹ nghệ tiến đối với lược đồ tương tác: Ta có thể tạo mã từ các lược đồ tương tác (cả tuần tự lẫn cộng tác) đặc biệt là trong ngữ cảnh của một thao tác.
III.1.5 Xây dựng lược đồ hoạt động
Lược đồ hoạt động được có thể được gắn vào bất kỳ một phần tử mô hình nào nhằm biểu diễn trực quan, đặc tả, xây dựng và lập tài liệu cho hành vi của phần tử đó. Ta có thể gắn lược đồ hoạt động vào các lớp, giao diện, thành phần, use case và cộng tác. Thành phần phổ biến nhất sử dụng lược đồ hoạt động là thao tác.
- Mô hình hoá một thao tác
Xác định các trừu tượng liên quan đến thao tác, bao gồm các tham số thao tác (bao gồm kiểu giá trị trả về), các thuộc tính và các lớp liên quan.
Nhận biết các điều kiện trước tại trạng thái khởi đầu của thao tác và điều sau tại trạng thái cuối cùng của thao tác.
Xuất phát từ trạng thái ban đầu của thao tác, xác định các hoạt động và hành động lần lượt xảy ra, sau đó biểu diễn chúng bằng các trạng thái hành động và hoạt động.
Sử dụng cấu trúc rẽ nhánh nếu cần thiết để chỉ định các đường điều kiện và vòng lặp.
Nếu thao tác được sở hữu bởi các lớp active, sử dụng cơ chế phân chia và hợp nhất để xác định các luồng điều khiển song song.
III.1.6 Xây dựng lược đồ trạng thái
Mục đích sử dụng lược đồ trạng thái là để mô hình hoá các hành vi của các đối tượng tương tác, đặc bịêt là các thể hiện của lớp, use case và toàn bộ hệ thống. Trong khi các tương tác mô hình hoá hành vi của tập các đối tượng tương tác với nhau thì lược đồ trạng thái mô hình hành vi của một đối tượng riêng lẻ trong thời gian sống của nó. Trong khi lược đồ hoạt động mô hình hoá luồng điều khiển từ hoạt động đến hoạt động thì lược đồ trạng thái mô hình luồng điều khiển từ từ sự kiện đến sự kiện. Khi ta mô hình hành vi phản ứng của đối tượng riêng lẻ thì ta phải xác định ba phần tử cơ bản sau: các trạng thái ổn định, các sự kiện gây nên sự dịch chuyển trạng thái và các hành động xảy ra mỗi khi có sự thay đổi trạng thái. Mô hình hoá hành vi của đối tượng đơn lẻ cũng liên quan đến việc mô hình hoá thời gian sống của đối tượng, bắt đầu từ khi đối tượng được tạo ra đến khi đối tượng bị phá huỷ.
- Mô hình hoá các đối tượng phản ứng (reactive object)
Chọn lựa ngữ cảnh cho máy trạng thái, xem nó là một lớp use case hay là toàn bộ hệ thống.
Chọn trạng thái ban đầu và kết thúc của đối tượng. Sau đó lần lượt xác định điều kiện trước và sau của của trạng thái ban đầu và trạng thái kết thúc.
Xác định các trạng thái ổn định của đối tượng bằng cách xem xét các điều kiện tồn tại đối tượng trong khoảng thời gian. Bắt đầu với các trạng thái mức cao, sau đó xem xét các trạng thái con.
Xác định trình tự các trạng thái trong khoảng thời gian sống của đối tượng.
Xác định các sự kiện có thể kích hoạt sự chuyển trạng thái. Mô hình hoá những sự kiện này như là các kích thích đối với sự chuyển dịch trạng thái.
Gắn các hành động vào các chuyển dịch này hoặc là bản thân các trạng thái.
Xem xét các cách để đơn giản hoá máy trạng thái bằng cách sử dụng các trạng thái con, nhánh, phân chia và hợp nhất và trạng thái lịch sử.
Kiểm tra rằng tất cả các trạng thái đều có thể đi đến được từ bất kỳ một trạng thái nào.
Kiểm tra xem không có trạng thái nào là trạng thái chết. Trạng thái chết là trạng thái không thể đi đến từ bất kỳ một trạng thái nào hoặc là chuyển tới một trạng thái không thuộc trạng thái của đối tượng.
Kiểm tra các trình tự của các trạng thái và phản ứng mong đợi của nó bằng các công cụ.
III.1.7 Xây dựng lược đồ thành phần
Mục đích sử dụng lược đồ thành phần là để mô hình hoá các thành phần triển khai cấu thành nên quá trình thực hiện hệ thống. Thông thường để xây dựng một lược đồ thành phần ta phải mô hình hoá các thành phần sau:
Các thư viện (tĩnh hoặc động) và các module thực thi
Các bảng, file và tài liệu
Các API
Chương trình nguồn.
- Mô hình hoá các thư viện và các module thực thi
Nhận biết được sự chia vùng của hệ thống vật lý. Xem xét các vấn đề về kỹ thuật, quản lý cấu hình và tái sử dụng thành phần.
Mô hình một vài thư viện và module thực thi như là các thành phần bằng cách sử dụng các thành phần có sẵn. Nếu trong quá trình thực hiện hệ thống phát sinh các thành phần mới thì sử dụng các streotype mô hình các thành phần này.
Mô hình hoá quan hệ giữa các thành phần (thông thường là quan hệ phụ thuộc) để quan sát ảnh hưởng của quá trình thay đổi.
III.2 Công cụ (case tool) mô hình hoá hệ thống Rational Rose
Rational Rose là phần mềm công cụ mạnh hỗ trợ phân tích, thiết kế hệ thống phần mềm theo hướng đối tượng. Nó giúp ta mô hình hoá hệ thống trước khi viết mã trình, nó đảm bảo tính đúng đắn, hợp lý của kiến trúc hệ thống từ khi khởi đầu dự án. Nó mô tả chi tiết hệ thống bao gồm cái gì và chúng làm việc ra sao để người phát triển hệ thống có thể sử dụng mô hình như kế hoạch chi tiết cho việc xây dựng hệ thống. Rose hỗ trợ giải quyết vấn đè muôn thuở là đội ngũ dự án giao tiếp với khách hàng và làm tài liệu yêu cầu. Qua việc xây dựng các mô hình trong Rose mọi thành viên quan tâm đến dự án đều có thể thu nhận các thông tin cần thiết :
Khách hàng và quản lý dự án sử dụng các biểu đồ UC để có cái nhìn bao quát về hệ thống và thống nhất với nhau về phạm vi dự án.
Quản lý dự án sử dụng biểu đồ UC và tài liệu để chia nhỏ dự án thành tiểu dự án có thể quản lý được.
Thông qua tài liệu UC, các phân tích viên và khách hàng thấy được các chức năng hệ thống sẽ cung cấp.
Thông qua tài liệu UC, người làm tài liệu kĩ thuật có thể bắt đầu viết hướng dẫn sử dụng và kế hoạch huấn luyện sử dụng.
Các phân tích viên và người phát triển, thông qua các biểu đồ trình tự và biểu đồ cộng tác, thấy được logic mà hệ thống tuân thủ, các đối tượng trong hệ thống và các thông điệp giữa các đối tượng.
Đội ngũ kiểm tra chất lượng thu thập thông tin thông qua tài liệu UC và các biểu đồ tương tác để viết mô tả kiểm tra hệ thống.
Người phát triển sử dụng biểu đồ lớp, biểu đồ biến đổi trạng thái để có cái nhìn chi tiết về các phần hệ thống và chúng có quan hệ với nhau như thế nào.
Đội ngũ triển khai sử dụng các biểu đồ thành phần và biểu đồ triển khai để thấy được các tệp khả thực (exe) nào, tệp DLL nào và các thành phần khác cần được tạo lập; các thành phần này được triển khai trên mạng như thế nào.
Toàn bộ đội ngũ dự án sử dụng mô hình để đảm bảo rằng các yêu cầu có thể được được chuyển sang mã trình và ngược lại, mã trình có thể được chuyển trở lại yêu cầu hệ thống.
Rose gồm các thành phần chính sau đây: mô hình, phần tử mô hình, module tạo lập ứng dụng, cửa sổ duyệt (browser), cửa sổ lược đồ.
- Mô hình:
Một hệ thống trong Rose được mô hình thông qua bốn mô hình:
Mô hình use case: cho phép tạo dựng các lược đồ use case, lược đồ tương tác để mô tả hành vi của hệ thống.
Mô hình logic: cho phép ta biểu diễn khung nhìn thiết kế ở cả hai sắc thái tĩnh và động thông qua quá trình tạo lập các lược đồ lớp, tương tác, trạng thái, gói …
Mô hình thành phần: cho phép ta biểu diễn sự thực hiện của hệ thống thông qua các thành phần.
Mô hình triển khai.
Hình 4.1 Màn hình giao diện của Rational Rose
- Phần tử mô hình
Rose cho phép tạo lập các phần tử mô hình một cách trực quan, mỗi phần tử trong rose có ký hiệu và ngữ nghĩa tuân theo chuẩn UML. Ta có thể sử dụng theo tiêu chuẩn của phương pháp Booch hoặc OMT. Mỗi phần tử trong rose đều có thể lập tài liệu và thay đổi giá trị thuộc tính thông qua cửa sổ đặc tả. Hầu hết các phần tử trong UML đều có thể tạo ra thông qua rose. Rose 98i hỗ trợ UML 1.0.
- Module tạo lập ứng dụng
Các mô hình ở trong rose có thể được tham chiếu sang một số lượng lớn các ngôn ngữ lập trình khác nhau thông qua kỹ nghệ tiến và ngược lại rose cho phép tạo lập các mô hình từ chương trình nguồn. Rose có khả năng hỗ trợ các ngôn ngữ như là Java, Visual Basic, C ++, Oracle, DDL, CORBA, soạn thảo Web …
- Cửa sổ duyệt (Browser)
Là công cụ duyệt phân cấp cho phép ta quan sát các lược đồ và phần tử mô hình dưới thông qua biểu tượng và tên.
- Cửa sổ lược đồ
Mỗi một lược đồ trong rose được thể hiện trong một cửa sổ, cửa sổ giúp ta quan sát lược đồ một cách trực quan. Cửa sổ cũng là nơi để tạo lập lược đồ.
IV Xây dựng hệ thống quản lý thư viện trên Rational Rose
IV.1 Hệ thống quản lý thư viện
IV.1.1 Phát biểu bài toán
Trong một thư viện lớn việc quản lý hàng chục ngàn cuốn sách và hàng ngàn bạn đọc. Phương pháp quản lý cũ bằng hồ sơ sách và bạn đọc không đáp ứng được nhu cầu và kém hiệu quả. Với phương pháp này làm cho bạn đọc cũng như thủ thư gặp rất nhiều khó khăn và tốn thời gian trong việc tìm kiếm, mượn, trả sách …Nên yêu cầu thư viện đặt ra cần xây dựng một phần mềm nhằm tự động quá trình quản lý.
IV.1.2 Phân tích bài toán
Hệ thống xây dựng cần giải quyết được các vấn đề sau:
Quản lý sách
Quản lý bạn đọc
Quản lý quá trình mượn
Quản lý quá trình trả sách.
- Mượn sách
Tuỳ thuộc vào từng thư viện, mỗi thư viện có quy định về số sách mà bạn đọc được mượn. Nên mỗi bạn đọc được mượn một số sách quy định nào đó, với thời hạn mượn nhất định.
- Trả sách
Khi hết thời hạn mượn thì bạn đọc phải hoàn trả sách cho thư viện. Nếu quá thời hạn thì bạn đọc sẽ phải chịu nộp tiền phạt hay phải chịu trách nhiệm theo quy định của thư viện. Trong tất cả các giao dịch (mượn, trả) dữ liệu nhập vào như: mã bạn đọc, mã sách và mã bản sao đều phải được xác nhận là hợp lệ hay không và thông báo lại cho nhân viên thư viện. Nếu tất cả mọi thông tin này đều hợp lệ thì nhân viên thư viện sẽ làm thủ tục xoá thông tin về sách mượn của bạn đọc đó .Thao tác này được coi như là thủ tục xác nhận bạn đọc đã trả sách.
- Quản lý sách
Chức năng quản lý sách xử lý các bản ghi chứa thông tin đăng ký một quyển sách, gồm các chức năng nhỏ sau:
Đăng ký sách mới
Sửa thông tin
Xoá sách.
Thông tin về tổng số sách còn trong thư viện, tổng số sách đang cho mượn sẽ được hệ thống cung cấp thường xuyên cho nhân viên thư viện. Có một số sách không được phép cho mượn, đó là sách tham khảo (dưới 7 quyển), sách hiếm.
Thông tin chi tiết về một cuốn sách bao gồm: mã sách, tên sách, tên tác giả, mã bản sao, ngày xuất bản. Thông tin về một cuốn sách chỉ bị xoá đi khi nó đã hết nhu cầu sử dụng hoặc đã được tái bản.
- Quản lý bạn đọc
Hệ thống chia làm nhiều mô-đun nhỏ để dễ kiểm soát gồm:
Đăng ký bạn đọc
Cập nhật thông tin chi tiết về bạn đọc
Đăng ký lại bạn đọc và xoá bạn đọc.
Khi đăng ký bạn đọc, nhân viên thư viện cần cung cấp mã nhận dạng bạn đọc. Khi nhận được số nhận dạng này hệ thống sẽ kiểm tra xem bạn đọc này đã đăng ký hay chưa. Một bạn đọc mới muốn đăng ký phải khai đầy đủ những thông tin sau: tên, địa chỉ, số điện thoại. Việc xoá thông tin về một bạn đọc chỉ được phép thực hiện khi bạn đọc này không còn mượn.
IV.2 Xây dưng mô hình bài toán trên Rational Rose
IV.2.1 Lược đồ use case mức tổng thể
-Thuyết minh lược đồ
Actor bạn đọc: Đây là một actor đại diện cho bạn đọc tham gia vào hoạt động mượn trả sách của thư viện.
Actor thủ thư: đại diện cho người quản lý thư viện như thủ thư, giám đốc…
Use case quản lý bạn đọc: cho phép đăng ký bạn đọc mới, lưu trữ, quản lý và cập nhật các thông tin về bạn đọc.
Use case quản lý sách: quản lý sách, đầu mục sách, số lượng phiên bản cho từng đầu mục sách. Cho phép tìm kiếm, cập nhật thông tin về từng loại sách cũng như từng đầu mục sách.
Use case quản lý mượn/trả: quản lý quá trình mượn/trả sách của bạn đọc.
IV.2.2 Lược đồ lớp mức thô
-Thuyết minh lược đồ
Lớp sách: chứa thông tin về sách, nó chứa một số thông tin chung về sách như: tên sách, tên tác giả, nhà xuất bản, số lượng bản ghi, danh sách bản ghi và một số thông tin khác. Ngoài ra nó có chứa các thao tác mô tả hành vi như đăng ký mới, cập nhật thông tin, xoá, hiển thị thông tin và tìm kiếm một cuốn sách nào đó.
Lớp thông tin bạn đọc: là lớp quản lý thông tin về bạn đọc nói chung. Tất cả mọi bạn đọc đều được lớp này quản lý, nó sẽ chứa các thông tin riêng về bạn đọc như: tên, tuổi, địa chỉ… tất nhiên còn một số thông tin nữa mà nó cần quản lý đó là danh sách về các phiếu mượn của bạn đọc này. Lớp này cho phép thực hiện một số chức năng như: đăng một bạn đọc mới, tìm kiếm, cập nhật thông tin hay xoá bạn đọc khỏi hệ thống.
Lớp bạn đọc và loại sách: lớp này chứa các thông tin liên quan đến bạn đọc và loại sách mà bạn đọc này đang mượn. Những thông tin đó cho phép ta biết được thông tin về tình trạng của một cuốn sách, bạn đọc. Lớp này còn cung cấp một số chức năng như: tạo mới, xoá, kiểm tra quá hạn và in ra phiếu nhắc trả sách khi cuốn sách đó bị quá hạn.
IV.2.3 Lược đồ use case chi tiết và các lược đồ tuần tự mô tả các use case
- Thuyết minh lược đồ
Trong lược đồ use case chi tiết chứa các use case sau đây:
Đăng ký bạn đọc: cho phép thư viện làm thủ tục đăng ký một bạn đọc mới.
Liệt kê danh sách bạn đọc: có chức năng cung cấp thông tin về bạn đọc của thư viện, bao gồm tên bạn đọc, mã bạn đọc, phân loại bạn đọc, mã nhận dang bạn đọc, ngay hết hạn thẻ…
Cập nhật thông tin bạn đọc: có chức năng cập nhật thông tin bạn đọc.
Xoá bạn đọc: xoá một bạn đọc trong hệ thống khi bạn đọc trả thẻ hoặc là thẻ hết hạn.
Thêm sách: thêm sách và tài liệu vào hệ thống.
Liệt kê sách: liệt kê tất cả các loại sách có trong thư viện, với mức độ chi tiết của từng cuốn sách tuỳ thuộc đầu vào.
Cập nhật thông tin sách: sửa đổi mọi thông tin về sách trừ mã sách.
Xoá sách: tiến hành loại bỏ một đầu sách ra khỏi hệ thống.
Tìm sách: cho phép tìm sách theo các tiêu chuẩn khác nhau. Thông tin trả về dưới dạng một danh sách chứa các tên sách, kèm theo tên sách là thông tin tóm tắt về cuốn sách đó.
Xem thông tin sách: trả lại thông tin về từng cuốn sách khi có yêu cầu của bạn đọc.
Mượn sách: thực hiện chức năng mượn sách khi có yêu cầu mượn.
Trả sách: thực hiện chức năng trả sách khi có yêu cầu trả sách.
Lược đồ tuần tự mô tả Use case mượn sách và trả sách
Lược đồ c ô mô tả Use case mượn sách và trả sách
Lược đồ cộng tác mô tả Use case mượn sách và trả sách
Biểu đồ lớp chi tiết
- Thuyêt minh lựơc đồ
Lớp sách: đại diện cho tài liệu và sách có trong thư viện. Gồm có các thuộc tính như: mã sách, tên sách, tên tác giả, tên nhà xuất bản, số bản sao… và các thao tác thực hiện trong lớp này như: thêm sách, tìm sách, cập nhật sách, xoá sách, danh sách sách…
Lớp bạn đọc: chứa các thông tin chi tiết về bạn đọc như: mã bạn đọc, tên bạn đọc, địa chỉ , hạn mượn… và các thao tác : thêm bạn đọc mới, tìm, xoá, cập nhật thông tin bạn đọc…
Lớp bạn đọc và loại sách: chứa thông tin chi tiết về bạn đọc và loại sách bạn đọc mượn: mã sách, mã bạn đọc, tên sách, tên bạn đọc… và các thao tác: thêm, cập nhật , kiểm tra quá hạn và in phiếu nhắc trả sách…
Lớp kho dữ liệu: chứa kho dư liệu mà lớp sách, bạn đọc, bạn đọc và loại sách cập nhật đến khi có yêu cầu.
Kết luận
Tóm lại qua đề tài này ta đã nghiên cứu được một số công việc sau đây :
Quá trình hình thành và nguyên nhân ra đời của UML
Tìm hiểu các thành phần của UML
Các kỹ thuật xây dựng biểu đồ trong UML
Triển khai công nghệ UML trên một bài toán nhỏ.
Ngoài những công việc cơ bản đã thực hiện còn nhiều vấn đề chưa giải quyết được như:
Việc triển khai công nghệ vào các dự án thực tế lớn cả về quy mô lẫn độ phức tạp.
UML là ngôn ngữ có tính chất mở, hiệu chỉnh ngôn ngữ thích hợp với các hệ thống thực tế .
Chưa đi sâu tìm hiểu các ứng dụng to lớn của UML trong các lĩnh vực, nhất là trong các dự án .
Tài liệu tham khảo
Phân tích thiết kế hướng đối tượng bằng UML. Đặng Văn Đức. Nhà xuất bản giáo dục.
Phân tích và thiết kế hướng đối tượng. Nguyễn Tinh Anh.
Phân tích và thiết kế các hệ thống thông tin quản lý. Trần Thành Trai. Nhà xuất bản trẻ.
Kỹ nghệ phần mềm. Ngô Trung Việt tập 1, tập 2. Nhà xuất bản giáo dục .
Object Technology in Aplication Development. Daniel Tkach, Anneke kleppe. Addison-Wesley.
OMG-Unified Modeling Language Specification. Verson 1.3,5-1999. Object mangement group.
Các file đính kèm theo tài liệu này:
- 35978.doc