Đăng ký Đăng nhập
Trang chủ Sử dụng hiệu quả ngôn ngữ đặc tả uml trong phát triển phần mềm...

Tài liệu Sử dụng hiệu quả ngôn ngữ đặc tả uml trong phát triển phần mềm

.PDF
116
22
73

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI ĐẠI HỌC CÔNG NGHỆ ----------------- Trần Thịnh Phong SỬ DỤNG HIỆU QUẢ NGÔN NGỮ ĐẶC TẢ UML TRONG PHÁT TRIỂN PHẦN MỀM LUẬN VĂN THẠC SĨ Hà Nội - 2008 ĐẠI HỌC QUỐC GIA HÀ NỘI ĐẠI HỌC CÔNG NGHỆ ----------------- Trần Thịnh Phong SỬ DỤNG HIỆU QUẢ NGÔN NGỮ ĐẶC TẢ UML TRONG PHÁT TRIỂN PHẦN MỀM Ngành: Công nghệ thông tin Mã số: 1.01.10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TSKH Nguyễn Xuân Huy Hà Nội - 2008 Trang 1 Mục lục Mở đầu ........................................................................................................................... 6 Chương 1: Tổng quan .............................................................................................. 7 1.1 Mô tả vấn đề ...................................................................................................... 7 1.2 Mục tiêu ............................................................................................................. 7 Chương 2: Ngôn ngữ mô hình hóa thống nhất UML ............................................ 8 2.1 Khái quát ........................................................................................................... 8 2.2 Các biểu đồ của UML ....................................................................................... 8 2.2.1 Use Case Diagram – Biểu đồ Use Case...................................................... 8 2.2.2 Class Diagram – Biểu đồ Lớp ................................................................... 9 2.2.3 Statechart Diagram – Biểu đồ Trạng thái ................................................ 10 2.2.4 Activity Diagram – Biểu đồ hoạt động.................................................... 11 2.2.5 Sequence Diagram – Biểu đồ Tuần tự ..................................................... 12 2.2.6 Collaboration Diagram – Biểu đồ cộng tác ............................................. 13 2.2.7 Component Diagram – Biểu đồ Thành phần ........................................... 14 2.2.8 Deployment Diagram – Biểu đồ Triển khai ............................................ 15 Chương 3: Phương pháp hướng đối tượng .......................................................... 17 3.1 Lập trình hƣớng cấu trúc ................................................................................. 17 3.2 Cách tiếp cận hƣớng đối tƣợng ....................................................................... 17 3.3 Phân tích và Thiết kế hƣớng đối tƣợng là gì ................................................... 18 Chương 4: Quy trình phát triển phần mềm ......................................................... 19 4.1 Mô hình thác nƣớc ........................................................................................... 19 4.2 Mô hình xoắn ốc .............................................................................................. 20 4.3 Cơ cấu lặp, tăng dần – Iterative, Incremental Framework .............................. 22 4.3.1 Pha khởi đầu – Inception .......................................................................... 22 4.3.2 Pha chuẩn bị - Elaboration........................................................................ 22 4.3.3 Pha xây dựng – Construction.................................................................... 22 4.3.4 Pha chuyển giao – Transition ................................................................... 23 4.3.5 Phân bổ thời gian của một dự án tiêu biểu ............................................... 23 4.4 Microsoft Solution Framework ....................................................................... 24 4.5 Rational Unified Process (RUP) ..................................................................... 25 Chương 5: 5.1 Áp dụng UML ...................................................................................... 29 Pha khởi đầu (Inception) ................................................................................. 29 Trang 2 5.1.1 Khái quát................................................................................................... 29 5.1.2 Các sản phẩm(Artifact) có thể bắt đầu trong pha khởi đầu ...................... 30 5.1.3 Tìm hiểu yêu cầu(Requirement) ............................................................... 30 5.1.4 Mô hình Use Case: Viết yêu cầu trong ngữ cảnh ..................................... 31 5.2 Pha chuẩn bị - Vòng lặp 1 ............................................................................... 33 5.2.1 Mô hình Use Case: Vẽ các Sơ đồ tuần tự hệ thống .................................. 33 5.2.2 Mô hình Nghiệp vụ: Hình tƣợng hóa các Khái niệm ............................... 34 5.2.3 Mô hình Nghiệp vụ: Thêm các Liên kết ................................................... 35 5.2.4 Mô hình Nghiệp vụ: Thêm các Thuộc tính .............................................. 36 5.2.5 Các biểu đồ tƣơng tác ............................................................................... 36 5.2.6 GRASP: Thiết kế các đối tƣợng cùng các Trách nhiệm........................... 37 5.2.7 Mô hình Thiết kế: Hiện thực hóa Use Case với các khuôn mẫu GRASP 38 5.2.8 Mô hình Thiết kế: Xác định tính khả năng thấy đƣợc .............................. 39 5.2.9 Mô hình Thiết kế: Tạo ra các Biểu đồ Lớp Thiết kế ................................ 40 Chương 6: Áp dụng UML để phân tích thiết kế ứng dụng ................................ 41 6.1 PHÁT BIỂU BÀI TOÁN ................................................................................ 41 6.2 SƠ ĐỒ TỔNG THỂ NGHIỆP VỤ BÀI TOÁN .............................................. 43 6.3 SƠ ĐỒ USE CASE ......................................................................................... 44 6.3.1 Sơ đồ use case Main: ................................................................................ 44 6.3.2 Sơ đồ use case Main 2: ............................................................................. 45 6.4 CÁC TÁC NHÂN ........................................................................................... 46 6.4.1 Tác nhân – Cán bộ tiếp nhận .................................................................... 46 6.4.2 Tác nhân – Trƣởng phòng ........................................................................ 46 6.4.3 Tác nhân – Cán bộ thụ lý .......................................................................... 46 6.4.4 Tác nhân – Văn thƣ lƣu trữ....................................................................... 46 6.4.5 Tác nhân – Lãnh đạo ................................................................................ 46 6.4.6 Tác nhân – Ngƣời quản trị ........................................................................ 46 6.5 MÔ TẢ CHI TIẾT CÁC USE CASE.............................................................. 47 6.5.1 Use Case – Tiếp nhận hồ sơ ..................................................................... 47 6.5.2 Use Case – Thụ lý ..................................................................................... 57 6.5.3 Use Case – Phê duyệt ............................................................................... 68 6.5.4 Use Case – Trả hồ sơ thu lệ phí ................................................................ 73 6.5.5 Use Case – Quản lý sau cấp phép ............................................................. 77 Trang 3 6.5.6 Use Case – Lập báo cáo ............................................................................ 83 6.5.7 Use Case – Tra cứu WEB ......................................................................... 87 6.5.8 Use Case – Tiện ích hỗ trợ ....................................................................... 89 6.5.9 Use Case – Quản trị hệ thống ................................................................... 98 6.5.10 Use Case – Quản lý các danh mục ...................................................... 103 Kết luận ...................................................................................................................... 113 Tài liệu tham khảo .................................................................................................... 114 Trang 4 Danh mục hình vẽ Hình 2.1 Ví dụ về biểu đồ Use case ................................................................. 9 Hình 2.2 Ví dụ về biểu đồ lớp ...................................................................... 10 Hình 2.3 Ví dụ về biểu đồ trạng thái .............................................................. 11 Hình 2.4 Ví dụ về biểu đồ hoạt động .............................................................. 12 Hình 2.5 Ví dụ về biểu đồ tuần tự ................................................................. 13 Hình 2.6 Ví dụ về biểu đồ cộng tác ................................................................ 14 Hình 2.7 Ví dụ về biểu đồ thành phần ............................................................ 15 Hình 2.8 Ví dụ về biểu đồ triển khai .............................................................. 16 Hình 4.1 Mô hình “Thác nƣớc” truyền thống ................................................... 19 Hình 4.2 Nguy cơ và chi phí xử lý lỗi trong mô hình “Thác nƣớc” ....................... 20 Hình 4.2 Một quy trình “Xoắn ốc” ................................................................ 21 Hình 4.4 Bốn pha của “Cơ cấu lặp, tăng dần” .................................................. 22 Hình 4.5 Pha “Xây dựng” bao gồm một chuỗi các “Thác nƣớc nhỏ” ..................... 23 Hình 4.6 Độ dài mỗi pha cho một dự án dài 2 năm............................................ 24 Hình 4.7 Mô hình quy trình MSF .................................................................. 24 Hình 4.8 Các pha và mốc thời gian của mô hình quy trình MSF ........................... 25 Hình 4.9 Các discipline trong RUP ................................................................ 27 Hình 4.10 Các Artifact(sản phẩm) và khung thời gian của RUP ........................... 28 Hình 5.1 Biểu đồ tuần tự hệ thống cho tình huống xử lý bán hàng ........................ 34 Hình 5.2 Một mô hình nghiệp vụ .................................................................. 35 Hình 5.3 Một mô hình nghiệp vụ với các liên kết ............................................. 36 Hình 5.4 Biểu đồ cộng tác ........................................................................... 37 Hình 5.5 Biểu đồ tuần tự ............................................................................. 37 Hình 5.6 Biểu đồ tuần tự dùng hiện thực hóa Use Case ...................................... 39 Hình 5.7 Minh họa khả năng nhìn thấy ........................................................... 40 Hình 5.8 Minh họa biểu đồ lớp thiết kế .......................................................... 40 Trang 5 Bảng thuật ngữ chuyên môn Artifact Association Business Modeling Class Diagram Development Case Discipline Domain Model GRASP Interaction Diagram Problem Domain RUP Scenario SSD UML Use Case Visibility Sản phẩm trong quy trình RUP Liên kết Mô hình hóa tác nghiệp Biểu đồ lớp Một tập hợp các Artifact cho một quy trình phát triển dự án cụ thể Kỷ luật Mô hình nghiệp vụ Hình mẫu phần mềm gán trách nhiệm chung Biểu đồ tƣơng tác Vùng nghiệp vụ Rational Unified Process - Quy trình phần mềm hợp nhất Tình huống Biểu đồ tuần tự hệ thống Ngôn ngữ mô hình hóa hợp nhất Trƣờng hợp sử dụng Khả năng thấy đƣợc Trang 6 Mở đầu Nền kinh tế đang phát triển với tốc độ ngày càng cao với một nhu cầu cạnh tranh và giữ vững thị trƣờng ngày càng lớn. Trong thời đại thƣơng mại điện tử, kinh doanh điện tử nhƣ hiện nay thì phát triển hệ thống theo kiểu truyền thống sẽ không còn thích hợp nữa. Hệ thống giờ đây cần phải đƣợc phát triển trong “thời gian Internet”, nhu cầu với các hệ thống có độ mềm dẻo cao cũng tăng lên, điều này đòi hỏi việc thay đổi hệ thống phải đƣợc thực hiện rất nhanh. Đây là lúc mà UML(Unified Modeling Language – Ngôn ngữ mô hình hóa thống nhất) xuất hiện để giải quyết vấn đề. UML là hệ thống ký hiệu chuẩn công nghiệp để mô hình hóa cho các hệ thống hƣớng đối tƣợng và là nền tảng cho khả năng phát triển nhanh ứng dụng. Tuy nhiên thực tế cho thấy khả năng sử dụng hiệu quả UML trong phát triển phần mềm là còn rất hạn chế trong các công ty phần mềm ở Việt nam, luận văn này sẽ nghiên cứu và trình bày cách thức sử dụng UML một cách hiệu quả trong các dự án phần mềm. Trang 7 Chương 1: Tổng quan 1.1 Mô tả vấn đề Công cụ sản xuất phần mềm với sự trợ giúp của máy tính (CASE tool) là một công cụ sử dụng máy tính để hỗ trợ quy trình phát triển phần mềm, nhờ đó tăng năng suất và giảm thiểu khả năng thất bại của dự án. CASE tool có thể là một trình dịch (Compiler) để tạo ra phần mềm từ mã nguồn. Một kiểu khác của CASE tool không tham gia trực tiếp vào việc tạo ra sản phẩm phần mềm. Ví dụ nhƣ là các công cụ đánh giá và hoạch định, để đánh giá chi phí của dự án phát triển phần mềm và giúp quản lý nguồn lực cho dự án phát triển phần mềm. Phƣơng pháp phát triển phần mềm đƣa ra các hạng mục cho quy trình phát triển phần mềm. Một phƣơng pháp phát triển phần mềm có thể đƣợc hỗ trợ bởi một CASE tool. Mục đích của một công cụ nhƣ vậy là bao phủ mọi thông tin mà có bất kỳ quan hệ nào với sản phẩm phần mềm. Nó cung cấp khả năng quản lý tất cả từ yêu cầu cho đến cấu trúc ứng dụng rồi các mô đun và thành phần của phần mềm cũng nhƣ quan hệ giữa chúng. Mô hình này của sản phẩm phần mềm giúp ta hiểu đƣợc quan hệ giữa yêu cầu và kiến trúc của ứng dụng vì thế nó rất hữu dụng khi có yêu cầu thay đổi sản phẩm. Thông thƣờng các ký hiệu đồ họa đƣợc sử dụng để biểu diễn mô hình này, vì nó dễ đọc hơn đối với mọi ngƣời. Trong quá khứ ngƣời ta đã sử dụng nhiều ngôn ngữ hình tƣợng để biểu diễn một mô hình sản phẩm phần mềm. Hiện nay Ngôn ngữ Mô hình hóa Hợp nhất (UML) là ngôn ngữ hình tƣợng chuẩn cho mục đích này. UML định nghĩa làm thế nào để mô tả một đối tƣợng phần mềm trừu tƣợng. Có nghĩa là UML độc lập với ngôn ngữ và môi trƣờng lập trình và nó có thể mô tả kiến trúc phần mềm mà ta có thể triển khai trên mọi môi trƣờng phát triển. Phát triển phần mềm dựa trên phƣơng pháp hƣớng đối tƣợng, có ƣu thế vƣợt trội so với phƣơng pháp hƣớng cấu trúc, đã ra đời để đáp ứng các bài toán lớn và phức tạp. Và UML là ngôn ngữ phù hợp nhất dành cho phân tích và thiết kế hƣớng đối tƣợng. Việc áp dụng hiệu quả UML vào quá trình phát triển phần mềm sẽ đem lại lợi ích lớn cho các dự án phần mềm. Để áp dụng hiệu quả UML chúng ta cần hiểu rõ về nó, cách thức áp dụng nó và các công cụ hỗ trợ liên quan. 1.2 Mục tiêu Đồ án có những mục tiêu sau:  Nghiên cứu và trình bày vai trò của UML trong công nghệ phần mềm  Nghiên cứu và trình bày các Quy trình phát triển phần mềm tiêu biểu  Trình bày phƣơng pháp ứng dụng UML trong phân tích thiết kế  Áp dụng UML trong phân tích thiết kế một ứng dụng hệ thông tin quản lý cụ thể: “Chương trình quản lý cấp phép xây dựng” Trang 8 Chương 2: Ngôn ngữ mô hình hóa thống nhất UML 2.1 Khái quát UML là ngôn ngữ đồ họa dùng để hình tƣợng hóa, xác định và xây dựng các đối tƣợng của một hệ thống phần mềm. UML đã xuất hiện nhƣ là các ký hiệu sơ đồ chuẩn cho việc mô hình hóa hƣớng đối tƣợng. Nó đƣợc tạo ra bởi Rational Software và đƣợc công bố nhƣ là một chuẩn năm 1997 bởi OMG, hiện tại nó đƣợc OMG duy trì và phát triển qua nhiều phiên bản, phiên bản hiện tại mới nhất cho tới thời điểm này là phiên bản 2.0 UML là ngôn ngữ mô hình hóa đa mục đích(GPL) trái với các ngôn ngữ mô hình hóa đặc thù lĩnh vực DSLs (Domain Specific Languages) Cả UML và DSLs đều dựa trên nền tảng định nghĩa ngôn ngữ MOF, dựa trên MOF mà các sơ đồ UML không chỉ đơn thuần là các hình vẽ, một công cụ mô hình hóa tƣơng thích MOF sẽ tạo ra các sơ đồ dƣới dạng mà máy có thể đọc đƣợc, nhờ đó có thể sinh ra các phần của mã chƣơng trình từ các sơ đồ này 2.2 Các biểu đồ của UML UML 2.0 có tất cả 13 biểu đồ chia làm 3 loại: Có 6 biểu đồ là biểu đồ cấu trúc, 3 biểu đồ hành vi và 4 biểu đồ tƣơng tác thể hiện trong sơ đồ khối dƣới đây Sau đây chúng ta sẽ xem xét 7 biểu đồ chính của UML 2.2.1 Use Case Diagram – Biểu đồ Use Case Khái niệm tác nhân: là những ngƣời, hệ thống khác ở bên ngoài phạm vi của hệ thống mà có tƣơng tác với hệ thống. Biểu đồ Use case bao gồm một tập hợp các Use case, các tác nhân và thể hiện mối quan hệ tƣơng tác giữa tác nhân và Use case. Nó rất quan trọng trong việc tổ chức và mô hình hóa hành vi của hệ thống Trang 9 Một ví dụ về biểu đồ Use case trong hình 2.1. Trong biểu đồ này một tác nhân Salesperson đƣợc gán cho một use case Place Order. Use case này bao gồm 3 use cases Supply Customer Data, Order Product và Arrange Payment. Order Product Supply Customer Data Arrange Payment <> <> <> Salesperson Place Order Hình 2.1 Ví dụ về biểu đồ Use case 2.2.2 Class Diagram – Biểu đồ Lớp Một biểu đồ lớp chỉ ra cấu trúc tĩnh của các lớp trong hệ thống. Các lớp là đại diện cho các “vật” đƣợc xử lý trong hệ thống. Các lớp có thể quan hệ với nhau trong nhiều dạng thức: liên kết (associated - đƣợc nối kết với nhau), phụ thuộc (dependent - một lớp này phụ thuộc vào lớp khác), chuyên biệt hóa (specialized - một lớp này là một kết quả chuyên biệt hóa của lớp khác), hay đóng gói ( packaged - hợp với nhau thành một đơn vị). Tất cả các mối quan hệ đó đều đƣợc thể hiện trong biểu đồ lớp, đi kèm với cấu trúc bên trong của các lớp theo khái niệm thuộc tính (attribute) và thủ tục (operation). Biểu đồ đƣợc coi là biểu đồ tĩnh theo phƣơng diện cấu trúc đƣợc miêu tả ở đây có hiệu lực tại bất kỳ thời điểm nào trong toàn bộ vòng đời hệ thống. Một hệ thống thƣờng sẽ có một loạt các biểu đồ lớp – chẳng phải bao giờ tất cả các biểu đồ lớp này cũng đƣợc nhập vào một biểu đồ lớp tổng thể duy nhất – và một lớp có thể tham gia vào nhiều biểu đồ lớp. Một ví dụ về biểu đồ lớp ở trong hình 2.2. Trang 10 Hình 2.2 Ví dụ về biểu đồ lớp 2.2.3 Statechart Diagram – Biểu đồ Trạng thái Một biểu đồ trạng thái thƣờng là một sự bổ sung cho lời miêu tả một lớp. Nó chỉ ra tất cả các trạng thái mà đối tƣợng của lớp này có thể có, và những sự kiện (event) nào sẽ gây ra sự thay đổi trạng thái. Một sự kiện có thể xảy ra khi một đối tƣợng tự gửi thông điệp đến cho nó - ví dụ nhƣ để thông báo rằng một khoảng thời gian đƣợc xác định đã qua đi – hay là một số điều kiện nào đó đã đƣợc thỏa mãn. Một sự thay đổi trạng thái đƣợc gọi là một sự chuyển đổi trạng thái (State Transition). Một chuyển đổi trạng thái cũng có thể có một hành động liên quan, xác định điều gì phải đƣợc thực hiện khi sự chuyển đổi trạng thái này diễn ra. Biểu đồ trạng thái không đƣợc vẽ cho tất cả các lớp, mà chỉ riêng cho những lớp có một số lƣợng các trạng thái đƣợc định nghĩa rõ ràng và hành vi của lớp bị ảnh hƣởng và thay đổi qua các trạng thái khác nhau. Biểu đồ trạng thái cũng có thể đƣợc vẽ cho hệ thống tổng thể. Một ví dụ về biểu đồ trạng thái ở hình 2.3. Biểu đồ này chỉ ra trạng thái của một đơn đặt hàng. Trang 11 [ not all items checked ] / get next item / get first item Checking item received[ some items not in stock ] [ all items checked and some items not in stock ] Waiting do/ check item [ all items checked and all items available ] Dispatching item received [ all items available ] delivered Delivered do/ initiate delivery Hình 2.3 Ví dụ về biểu đồ trạng thái 2.2.4 Activity Diagram – Biểu đồ hoạt động Một biểu đồ hoạt động chỉ ra một trình tự lần lƣợt của các hoạt động (activity). Biểu đồ hoạt động thƣờng đƣợc sử dụng để miêu tả các hoạt động đƣợc thực hiện trong một thủ tục, mặc dù nó cũng có thể đƣợc sử dụng để miêu tả các dòng chảy hoạt động khác, ví dụ nhƣ trong một Use case hay trong một trình tự tƣơng tác. Biểu đồ hoạt động bao gồm các trạng thái hành động, chứa đặc tả của một hoạt động cần phải đƣợc thực hiện (một hành động - action). Một trạng thái hành động sẽ qua đi khi hành động đƣợc thực hiện xong (khác với biểu đồ trạng thái: một trạng thái chỉ chuyển sang trạng thái khác sau khi đã xảy ra một sự kiện rõ ràng !). Dòng điều khiển ở đây chạy giữa các trạng thái hành động liên kết với nhau. Biểu đồ còn có thể chỉ ra các quyết định, các điều kiện, cũng nhƣ phần thực thi song song của các trạng thái hành động. Biểu đồ ngoài ra còn có thể chứa các loại đặc tả cho các thông điệp đƣợc gửi đi hoặc đƣợc nhận về, trong tƣ cách là thành phần của hành động đƣợc thực hiện. Một ví dụ về biểu đồ hoạt động ở trong hình 2.4. Biểu đồ này biểu diễn hoạt động chuẩn bị của một đồ uống. Trang 12 [ no coffee ] Find Beverage [ found coffee ] Put Coffee in Filter [ found cola ] Get Cups Add Water to Reservoir [ no cola ] Get Cans of Cola Put Filter in Machine / coffeePot.turnOn Turn on Machine Brew Coffee light goes out Pour Coffee Drink Hình 2.4 Ví dụ về biểu đồ hoạt động 2.2.5 Sequence Diagram – Biểu đồ Tuần tự Một biểu đồ trình tự chỉ ra một cộng tác động giữa một loạt các đối tƣợng. Khía cạnh quan trọng của biểu đồ này là chỉ ra trình tự các thông điệp (message) đƣợc gửi giữa các đối tƣợng. Nó cũng chỉ ra trình tự tƣơng tác giữa các đối tƣợng, điều sẽ xảy ra tại một thời điểm cụ thể nào đó trong trình tự thực thi của hệ thống. Các biểu đồ trình tự chứa một loạt các đối tƣợng đƣợc biểu diễn bằng các đƣờng thẳng đứng. Trục thời gian có hƣớng từ trên xuống dƣới trong biểu đồ, và biểu đồ chỉ ra sự trao đổi thông điệp giữa các đối tƣợng khi thời gian trôi qua. Các thông điệp đƣợc biểu diễn bằng các đƣờng gạch ngang gắn liền với mũi tên (biểu thị thông điệp) nối liền giữa những đƣờng thẳng đứng thể hiện đối tƣợng. Trục thời gian cùng những lời nhận xét khác thƣờng sẽ đƣợc đƣa vào phần lề của biểu đồ. Một ví dụ về biểu đồ tuần tự ở trong hình 2.5. Trang 13 receiver exchange caller 1: lift receiver 2: dial tone 3: dial digit 4: route 6: ringing tone 5: phone rings 7: answer phone 9: stop tone 8: stop ringing Hình 2.5 Ví dụ về biểu đồ tuần tự 2.2.6 Collaboration Diagram – Biểu đồ cộng tác Một biểu đồ cộng tác chỉ ra một sự cộng tác động, cũng giống nhƣ một biểu đồ trình tự. Thƣờng ngƣời ta sẽ chọn hoặc dùng biểu đồ trình tự hoặc dùng biểu đồ cộng tác. Bên cạnh việc thể hiện sự trao đổi thông điệp (đƣợc gọi là tương tác), biểu đồ cộng tác chỉ ra các đối tƣợng và quan hệ của chúng (nhiều khi đƣợc gọi là ngữ cảnh). Việc nên sử dụng biểu đồ trình tự hay biểu đồ cộng tác thƣờng sẽ đƣợc quyết định theo nguyên tắc chung sau: Nếu thời gian hay trình tự là yếu tố quan trọng nhất cần phải nhấn mạnh thì hãy chọn biểu đồ trình tự; nếu ngữ cảnh là yếu tố quan trọng hơn, hãy chọn biểu đồ cộng tác. Trình tự tƣơng tác giữa các đối tƣợng đƣợc thể hiện trong cả hai loại biểu đồ này. Biểu đồ cộng tác đƣợc vẽ theo dạng một biểu đồ đối tƣợng, nơi một loạt các đối tƣợng đƣợc chỉ ra cùng với mối quan hệ giữa chúng với nhau (sử dụng những ký hiệu nhƣ trong biểu đồ lớp/ biểu đồ đối tƣợng). Các mũi tên đƣợc vẽ giữa các đối tƣợng để chỉ ra dòng chảy thông điệp giữa các đối tƣợng. Các thông điệp thƣờng đƣợc đính kèm theo các nhãn (label), một trong những chức năng của nhãn là chỉ ra thứ tự mà các thông điệp đƣợc gửi đi. Nó cũng có thể chỉ ra các điều kiện, chỉ ra những giá trị đƣợc trả về, v.v... Khi đã làm quen với cách viết nhãn, một nhà phát triển có thể đọc biểu đồ cộng tác và tuân thủ theo dòng thực thi cũng nhƣ sự trao đổi thông điệp. Một biểu đồ cộng tác cũng có thể chứa cả các đối tƣợng tích cực (active objects), hoạt động song song với các đối tƣợng tích cực khác. Trang 14 Một ví dụ về biểu đồ cộng tác ở trong hình 2.6. Biểu đồ này biểu diễn sự cộng tác khi một đơn đặt hàng đƣợc thực hiện. : Order Entry Window 1: prepare() : Order 5: needToReorder() 2: prepare() 3: check() Macallan line : Order Line : Stock Item 4: [check = true] remove() 7: [check = true] new 6: new : Reorder Item : Delivery Item Hình 2.6 Ví dụ về biểu đồ cộng tác 2.2.7 Component Diagram – Biểu đồ Thành phần Một biểu đồ thành phần chỉ ra cấu trúc vật lý của các dòng lệnh (code) theo khái niệm thành phần code. Một thành phần code có thể là một tập tin source code, một thành phần nhị phân (binary) hay một thành phần thực thi đƣợc (executable). Một thành phần chứa các thông tin về các lớp logic hoặc các lớp mà nó thi hành, nhƣ thế có nghĩa là nó tạo ra một ánh xạ từ hƣớng nhìn logic vào hƣớng nhìn thành phần. Biểu đồ thành phần cũng chỉ ra những sự phụ thuộc giữa các thành phần với nhau, trợ giúp cho công việc phân tích hiệu ứng mà một thành phần đƣợc thay đổi sẽ gây ra đối với các thành phần khác. Thành phần cũng có thể đƣợc miêu tả với bất kỳ loại giao diện nào mà chúng bộc lộ, ví dụ nhƣ giao diện OLE/COM; và chúng có thể đƣợc nhóm góp lại với nhau thành từng gói (package). Biểu đồ thành phần đƣợc sử dụng trong công việc lập trình cụ thể Trang 15 Hình 2.7 Ví dụ về biểu đồ thành phần 2.2.8 Deployment Diagram – Biểu đồ Triển khai Biểu đồ triển khai chỉ ra kiến trúc vật lý của phần cứng cũng nhƣ phần mềm trong hệ thống. Bạn có thể chỉ ra từng máy tính cụ thể và từng trang thiết bị cụ thể (node) đi kèm sự nối kết giữa chúng với nhau, bạn cũng có thể chỉ ra loại của các mối nối kết đó. Bên trong các nút mạng (node), các thành phần thực thi đƣợc cũng nhƣ các đối tƣợng sẽ đƣợc xác định vị trí để chỉ ra những phần mềm nào sẽ đƣợc thực thi tại những nút mạng nào. Bạn cũng có thể chỉ ra sự phụ thuộc giữa các thành phần. Biểu đồ triển khai chỉ ra hƣớng nhìn triển khai, miêu tả kiến trúc vật lý thật sự của hệ thống. Đây là một hƣớng nhìn rất xa lối miêu tả duy chức năng của hƣớng nhìn Use case. Mặc dù vậy, trong một mô hình tốt, ngƣời ta có thể chỉ tất cả những con đƣờng dẫn từ một nút mạng trong một kiến trúc vật lý cho tới những thành phần của nó, cho tới lớp mà nó thực thi, cho tới những tƣơng tác mà các đối tƣợng của lớp này tham gia để rồi cuối cùng, tiến tới một Use case. Rất nhiều hƣớng nhìn khác nhau của hệ thống đƣợc sử dụng đồng thời để tạo ra một lời miêu tả thấu đáo đối với hệ thống trong sự tổng thể của nó Trang 16 Hình 2.8 Ví dụ về biểu đồ triển khai Trang 17 Chương 3: Phương pháp hướng đối tượng Trong phần này chúng ta sẽ xem xét khái niệm hƣớng đối tƣợng. UML đã đƣợc thiết kế để hỗ trợ hƣớng đối tƣợng, và trƣớc khi đi sâu vào việc áp dụng UML sẽ hữu ích khi chúng ta tìm hiểu các lợi ích mà hƣớng đối tƣợng đem lại cho phát triển phần mềm. 3.1 Lập trình hướng cấu trúc Trƣớc hết chúng ta hãy xem xét các hệ thống phần mềm đƣợc thiết kế nhƣ thế nào sử dụng cách tiếp cận hƣớng cấu trúc (hay đôi khi còn gọi là hƣớng chức năng) Trong lập trình hƣớng cấu trúc, phƣớng pháp chung là xem xét vấn đề, rồi sau đó thiết kế một tập hợp các hàm thực thi các nhiệm vụ đƣợc yêu cầu. Nếu nhƣ các hàm này quá lớn thì chúng đƣợc chia nhỏ tới khi đủ để có thể hiểu và điều khiển. Quá trình này gọi là phân dã chức năng. Vấn đề đối với cách tiếp cận này đó là nếu bài toán mà chúng ta đang giải quyết trở nên quá phức tạp thì việc bảo trì phần mềm cũng trở nên vô cùng khó khăn. 3.2 Cách tiếp cận hướng đối tượng Phƣơng pháp hƣớng đối tƣợng giảm thiểu ảnh hƣởng của vấn đề bằng cách đơn giản đó là tổ hợp các chức năng và dữ liệu liên quan vào cùng một mô đun. Có vài điểm đáng chú ý với hệ thống mới này nhƣ sau:  Khi chƣơng trình chạy thì có thể tồn tại nhiều thực thể của cùng một mô đun. Mỗi thực thể sẽ có giá trị dữ liệu của riêng nó và tất nhiên là chúng có những cái tên khác nhau  Mô đun thì có thể nói chuyện với các mô đun khác bằng cách gọi các hàm của nhau. Khái niệm đóng gói (Encapsulation): Các thực thể là chủ nhân của một mục dữ liệu thì mới đƣợc phép sửa hay đọc nó. Khái niệm này gọi là đóng gói, nó làm cho cấu trúc của hệ thống bền vững hơn và tránh đƣợc các nhƣợc điểm của hệ thống hƣớng cấu trúc khi một thay đổi nhỏ tới thành viên dữ liệu sẽ dẫn tới sự thay đổi liên hoàn. Với khái niệm đóng gói thì ảnh hƣởng của sự thay đổi dữ liệu đƣợc cô lập trong phạm vi một mô đun mà thôi. Một điểm yếu của Hƣớng đối tƣợng trong quá khứ đó là nó rất mạnh khi làm việc ở mức lớp và đối tƣợng nhƣng lại rất tồi khi biểu diễn hành vi của toàn bộ hệ thống. Phƣơng pháp tiếp cận hiện đại đƣợc hỗ trợ bởi UML đó là không quan tâm tới đối các đối tƣợng và các lớp vào giai đoạn đầu của dự án, thay vào đó là tập trung vào việc hệ thống phải làm đƣợc cái gì. Sau đó, khi dự án tiến triển thì các lớp dần dần đƣợc dây dựng để thực hiện các chức năng hệ thống đƣợc yêu cầu. Trang 18 3.3 Phân tích và Thiết kế hướng đối tượng là gì Trong phân tích hƣớng đối tƣợng, ngƣời ta chú trọng vào việc tìm kiếm và mô tả các đối tƣợng hoặc khái niệm trong problem domain(vùng vấn đề). Ví dụ trong trƣờng hợp hệ thống thƣ viện có một số khái niệm bao gồm: Sách, Thƣ viện và Ngƣời mƣợn. Trong thiết kế hƣớng đối tƣợng, ngƣời ta chú trọng vào việc định nghĩa các đối tƣợng phần mềm và việc chúng cộng tác thế nào để đáp ứng các yêu cầu. Ví dụ trong hệ thống thƣ viện thì Đối tƣợng phần mềm Sách có thể có thuộc tính Tiêu đề và thƣơng thức getChapter().
- Xem thêm -

Tài liệu liên quan