UML VÀ QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM

23 385 0
UML VÀ QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

105 CHƯƠNG UML VÀ QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM Nội dung chương II:  Giới thiệu tóm lược ngôn ngữ mô hình hoá thống UML  Các khái niệm phương pháp hướng đối tượng,  Mối quan hệ lớp đối tượng,  Quá trình phát triển phần mềm Để xây dựng sản phẩm phần mềm tốt, đương nhiên cần phương pháp phù hợp Phương pháp phát triển phù hợp kết hợp ba yếu tố: (i) Một tập hợp khái niệm mô hình, bao gồm khái niệm sử dụng phương pháp với cách biểu diễn chúng (thường dạng đồ thị, biểu đồ) (ii) Một trình triển khai, bao gồm bước thực lần lượt, hoạt động cần thiết (iii) Một công cụ mạnh trợ giúp cho việc triển khai hệ thống chặt chẽ nhanh chóng UML ngôn ngữ chuẩn giúp thể yếu tố nêu phương pháp phân tích, thiết kế hướng đối tượng 2.1 Tổng quát UML UML ngôn ngữ mô hình hoá, trước hết mô tả ký pháp thống nhất, ngữ nghĩa định nghĩa trực quan tất thành phần mô hình ([1], [2]) UML sử dụng để hiển thị, đặc tả, tổ chức, xây dựng làm tài liệu vật phẩm trình phát triển phần mềm hướng đối tượng, đặc biệt phân tích, thiết kế dạng báo cáo, biểu đồ, mẫu hay trang web, v.v UML ngôn ngữ mô hình hoá độc lập với công nghệ phát triển phần mềm 2.1.1 Mục đích UML Mục đích UML: Mô hình hệ thống (không hệ thống phần mềm) 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 (trực quan) mối quan hệ khái niệm hệ thống, đồng thời mô tả trạng thái hoạt động hệ thống đối tượng Nghĩa cho phép mô tả mô hình tĩnh lẫn mô hình động cách đầy đủ trực quan Tận dụng khả sử dụng lại kế thừa phạm vi diện rộng để xây dựng hệ thống phức tạp nhạy cảm như: hệ thống động, hệ thống thời gian thực, hệ thống nhúng thời gian thực, v.v Tạo ngôn ngữ mô hình hoá sử dụng cho người lẫn máy tính Tóm lại, UML ngôn ngữ mô hình hoá, ngôn ngữ đặc tả ngôn ngữ xây dựng mô hình trình phát triển phần mềm, đặc biệt phân tích thiết kế hệ thống hướng đối tượng UML ngôn ngữ hình thức, thống chuẩn hoá mô hình hệ thống cách trực quan Nghĩa thành phần mô hình thể ký hiệu đồ hoạ, biểu đồ thể đầy đủ mối quan hệ chúng cách thống có logic chặt chẽ Tuy nhiên cần lưu ý: 106   UML ngôn ngữ lập trình, nghĩa ta dùng UML để viết chương trình Nó công cụ CASE Một số công cụ CASE Rational Rose [8] sử dụng mô hình UML để phát sinh mã nguồn tự động sang ngôn ngữ lập trình lựa chọn C++, Java, Visual C++, v.v UML phương pháp hay trình phát triển phần mềm Các ký hiệu UML sử dụng dự án phát triển phần mềm nhằm áp dụng cách tiếp cận khác cho trình phát triển phần mềm nhằm tách chu kỳ phát triển hệ thống thành hoạt động, tác vụ, giai đoạn bước khác 2.1.2 Qui trình phát triển phần mềm thống UML phát triển để đặc tả trình phát triển phần mềm, nhằm mô hình hoá hệ thống Qui trình phát triển phần mềm gọi qui trình phát triển phần mềm hợp (USPD) hay qui trình hợp Rational (RUP [8]), gọi tắt qui trình hợp (UP) UP bao gồm người, dự án, sản phẩm, qui trình công cụ Con người người tham gia dự án để tạo sản phẩm phần mềm theo qui trình với hỗ trợ công cụ cung cấp UP qui trình phát triển phần mềm hướng dẫn ca sử dụng Nghĩa yêu cầu NSD mô tả ca sử dụng, chuỗi hành động thực hệ thống nhằm cung cấp dịch vụ, thông tin cho khách hàng Các ca sử dụng bao gồm chuỗi công việc xem tảng để tạo mô hình thiết kế cài đặt hệ thống UP qui trình tập trung vào kiến trúc, lặp phát triển tăng trưởng liên tục Kiến trúc hệ thống phải thiết kế nhằm đáp ứng yêu cầu ca sử dụng chính, giới hạn chuẩn phần cứng mà hệ thống chạy cấu trúc hệ thống lẫn hệ thống Tính lặp trình phát triển phần mềm thể chỗ dự án chia thành dự án nhỏ thực lặp lại bước thực Mỗi dự án nhỏ thực phân tích, thiết kế, cài đặt kiểm thử, v.v Mỗi phần việc phát triển tăng trường dự án thực theo tăng trưởng UP không tạo hệ thống phần mềm hoàn chỉnh mà tạo số sản phẩm trung gian mô hình Các mô hình UP mô hình nghiệp vụ (ca sử dụng), mô hình khái niệm, mô hình thiết kế, mô hình triển khai mô hình trắc nghiệm Các mô hình có phụ thuộc theo vết phát triển, nghĩa lần theo mô hình để đến mô hình trước 2.1.3 Giới thiệu tổng quát UML Ada / Booch UML xây dựng dựa vào: 1990  Cách tiếp cận Booch (Booch Approach), 91 Modeling Technique) Rumbaugh,  Kỹ thuật mô hình đối tượng (OMTBooch – Object OMT OOSE  Công nghệ phần mềm hướng đối tượng (OOSE – Object-Oriented Software Rumbaugh Jacobson Jacobson, Engineering) Booch 93  Đồng thời thống nhiều ký pháp, khái niệm phương pháp khác 1995 Quá trình 94 hình thành UML ngôn ngữ Ada (Booch) trước OOSE OMT 94 năm 1990 (hình 2-1) UML 0.9 Booch /Rumbaugh UML 0.9 Amigos 1997 UML 1.0 UML 1.1 107 11/ 1997 chấp nhận Hình 2-1 Sự phát triển UML Để hiểu sử dụng tốt UML phân tích, thiết kế hệ thống, đòi hỏi phải nắm bắt ba vấn đề chính: Các phần tử UML, Những qui định liên kết phần tử, qui tắc cú pháp, Những chế chung áp dụng cho ngôn ngữ mô hình hoá hệ thống 2.1.4 Các phần tử UML UML Các vật Các mối quan hệ Các biểu đồ Các quan sát Ca sử dụng Phụ thuộc Lớp Kết hợp Ca sử dụng Đối tượng Kết nhập Logic Trình tự Tổng quát hoá Ca sử dụng Thành phần Gói Cộng tác (kế thừa) Lớp Sự tương tranh Sự tương tác Mô hình Trạng thái Giao diện Triển khai Máy trạng Hoạt động thành phầnHệcơthống sở UML ThànhHình phần2-2 Cácthái Khung công việc Thành phần CộngCác tácquan sát Các quan sát (góc nhìn) theo phương diện khác hệ thống cần phân tích, thiếtNút kế Dựa vào quan sát để thiết lập kiến trúc cho hệ thống cần phát triển Có năm loại quan sát: quan sát theo ca sử dụng, quan sát logic, quan sát thành phần, quan sát tương tranh quan sát triển khai Mỗi quan sát tập trung khảo sát mô tả khía cạnh hệ thống (hình 2-3) thường thể số biểu đồ định Cấu trúc Hành vi Gộp nhóm Chú dẫn Quan sát logic Quan sát thành phần Quan sát ca sử dụng Quan sát triển khai Quan sát tương tranh 108 Hình 2-3 Các quan sát hệ thống  Quan sát ca sử dụng (hay trường hợp sử dụng): mô tả chức năng, nhiệm vụ hệ thống Quan sát thể yêu cầu hệ thống, phải xác định từ đầu sử dụng để điều khiển, thúc đẩy thẩm định hay kiểm tra công việc tất giai đoạn trình phát triển phần mềm Nó sở để trao đổi thành viên dự án phần mềm với khách hàng Quan sát ca sử dụng thể biểu đồ ca sử vài biểu đồ trình tự, cộng tác, v.v  Quan sát logic biểu diễn tổ chức logic lớp quan hệ chúng với Nó mô tả cấu trúc tĩnh lớp, đối tượng liên hệ chúng thể mối liên kết động thông qua trao đổi thông điệp Quan sát thể biểu đồ lớp, biểu đồ đối tượng, biểu đồ tương tác, biểu đồ biến đổi trạng thái Quan sát logic tập trung vào cấu trúc hệ thống Trong quan sát ta nhận phận cấu thành hệ thống thể trình trao đổi, xử lý thông tin hệ thống  Quan sát thành phần (quan sát cài đặt) xác định mô đun vật lý hay tệp mã chương trình liên hệ chúng để tổ chức thành hệ thống phần mềm Trong quan sát ta cần bổ sung: chiến lược cấp phát tài nguyên cho thành phần, thông tin quản lý báo cáo tiến độ thực công việc, v.v Quan sát thành phần thể biểu đồ thành phần gói  Quan sát tương tranh (quan sát tiến trình) biểu diễn phân chia luồng thực công việc, lớp đối tượng cho tiến trình đồng luồng hệ thống Quan sát tập trung vào nhiệm vụ tương tranh, tương tác với hệ thống đa nhiệm  Quan sát triển khai mô tả phân bổ tài nguyên nhiệm vụ hệ thống Nó liên quan đến tầng kiến trúc phần mềm, thường kiến trúc ba tầng, tầng giao diện (tầng trình diễn), tầng logic tác nghiệp tầng lưu trữ CSDL tổ chức hay nhiều máy tính Quan sát triển khai bao gồm luồng công việc, xử lý thiết bị Biểu đồ triển khai mô tả tiến trình tiến trình máy Các biểu đồ Biểu đồ đồ thị biểu diễn đồ họa tập phần tử mô hình Biểu đồ chứa đựng nội dung quan sát góc độ khác thành phần hệ thống xuất hay nhiều biểu đồ UML cung cấp biểu đồ trực quan để biểu diễn khía cạnh khác hệ thống, bao gồm:  Biểu đồ ca sử dụng mô tả tương tác tác nhân hệ thống thông qua ca sử dụng Các ca sử dụng nhiệm vụ chính, dịch vụ, trường hợp sử dụng cụ thể mà hệ thống cung cấp cho người sử dụng ngược lại  Biểu đồ lớp mô tả cấu trúc tĩnh, mô tả mô hình khái niệm bao gồm lớp đối tượng mối quan hệ chúng hệ thống hướng đối tượng  Biểu đồ trình tự thể tương tác đối tượng với nhau, chủ yếu trình tự gửi nhận thông điệp để thực thi yêu cầu, công việc theo thời gian 109  Biểu đồ cộng tác tương tự biểu đồ trình tự nhấn mạnh vào tương tác đối tượng sở cộng tác với cách trao đổi thông điệp để thực yêu cầu theo ngữ cảnh công việc  Biểu đồ trạng thái thể chu kỳ hoạt động đối tượng, hệ thống hệ thống Nó loại ôtômát hữu hạn trạng thái, mô tả trạng thái, hành động mà đối tượng có kiện gắn với trạng thái theo thời gian  Biểu đồ hành động dòng hoạt động hệ thống, bao gồm trạng thái hoạt động, từ trạng thái hoạt động chuyển sang trạng thái khác sau hoạt động tương ứng thực Nó trình tự bước, tiến trình thực điểm định rẽ nhánh theo luồng kiện  Biểu đồ thành phần cấu trúc vật lý thành phần hệ thống, bao gồm: thành phần mã nguồn, mã nhị phân, thư viện thành phần thực thi  Biểu đồ triển khai cách bố trí vật lý thành phần theo kiến trúc thiết kế hệ thống Các khái niệm biểu đồ cách xây dựng biểu đồ để phân tích, thiết kế hệ thống giới thệu chi tiết chương sau 2.2 Các khái niệm phương pháp hướng đối tượng UML Để phát triển hệ thống theo mô hình, phương pháp lựa chọn vấn đề quan trọng phải hiểu rõ khái niệm phương pháp Ở cần thực phân tích, thiết kế hệ thống theo cách tiếp cận hướng đối tượng, trước hết phải nắm bắt khái niệm sở như: đối tượng, lớp, mối quan hệ lớp đối tượng Những khái niệm phần tử ngôn ngữ mô hình hóa thống UML Mô hình hướng đối tượng sử dụng để phát triển phần mềm dựa mô hình liệu trừu tượng khái niệm lớp để đặc tính chung cấu trúc liệu sử dụng để mô hình hoá hệ thống Hệ thống khái niệm phương pháp hướng đối tượng mô tả hình 2-4 2.2.1 Các đối tượng Đối tượng khái niệm sở quan trọng cách tiếp cận hướng đối tượng Đối tượng khái niệm, trừu tượng hoá hay vật có nghĩa toán khảo sát Đó mục mà ta nghiên cứu, thảo luận chúng Đối tượng thực thể hệ thống, CSDL xác định thông qua định danh chúng Thông thường đối tượng mô tả danh từ riêng (tên gọi) tham chiếu tới mô tả toán hay thảo luận với người sử dụng Có đối tượng thực thể có giới thực người, vật cụ thể, khái niệm công thức, hay khái niệm trừu tượng, v.v Có số đối tượng bổ sung vào hệ thống với lý phục vụ cho việc cài đặt thực tế Đối tượng thực thể xác định Kế thừa thời gian hệ thống hoạt động Trong giai đoạn phân tích, ta phải đảm bảo đối tượng xác định định danh Đến khâu thiết kế, ta phải lựa chọn cách thể định danh theo cách ghi địa Lớp nhớ, gán số hiệu, hay dùng tổ hợp số gái trị số thuộc tính để biểu diễn Theo quan điểm người lập trình, đối tượng xem vùng nhớ phân chia máyHàm tính để lưu trữBao liệu vàhệtập hàm thao Cá tác thể liệu Quan gói (thuộc tính) gắn với Bởi vùng nhớ phân hoạch độc lập với nên đối tượng tham gia vào nhiều chương trình khác mà không ảnh hưởng lẫn Đối tượng Thông điệp Đa xạ 110 Hình 2-4 Những khái niệm phương pháp hướng đối tượng 2.2.2 Lớp đối tượng Đối tượng thể hiện, đại biểu lớp Lớp mô tả nhóm đối tượng có tính chất (thuộc tính) giống nhau, có chung hành vi ứng xử (thao tác gần nhau), có mối liên quan với đối tượng lớp khác có chung ngữ nghĩa hệ thống Lớp chế sử dụng để phân loại đối tượng hệ thống Lớp thường xuất dạng danh từ chung tài liệu mô tả toán hay thảo luận với người sử dụng Cũng đối tượng, lớp nhóm thực thể có giới thực, có lớp khái niệm trừu tượng có lớp đưa vào thiết kế để phục vụ cho cài đặt hệ thống, v.v Lớp mối quan hệ chúng mô tả biểu đồ lớp biểu đồ đối tượng số biểu đồ khác UML Trong biểu đồ lớp, lớp mô tả hình hộp chữ nhật, có tên lớp, có thuộc tính hàm (phương thức) hình 2-5 a/ Tên lớp b/ Tên thuộc tính c/ Tên, thuộc tính phương thức Hình 2-5 Các ký hiệu mô tả lớp UML Chúng ta nên đặt tên theo qui tắc thống sau: + Tên lớp chữ đầu tất từ viết hoa, ví dụ: SinhVien, HocSinh, KhachHang, v.v + Tên đối tượng, tên thuộc tính viết hoa chữ đầu từ trừ từ đầu tiên, ví dụ: hoTen, danhSachSV, v.v + Tên hàm (phương thức) viết giống tên đối tượng có thêm cặp ngoặc đơn ‘(‘ ‘)’, ví dụ: hienThi(), nhapDiem(), v.v Trong biểu đồ giai đoạn phân tích, lớp cần có tên lớp, tên thuộc tính, có tên gọi, thuộc tính phương thức hình 2-5 2.2.3 Các giá trị thuộc tính đối tượng Giá trị (value) phần liệu Các giá trị thường số ký tự Thuộc tính đối tượng thuộc tính lớp mô tả giá trị đối tượng lớp Ví dụ sv1: SinhVien hoTen = Van Ba tuoi = 20 111 Hình 2-6 Ký hiệu đối tượng UML “Van Ba” 20 hai giá trị tương ứng với hai thuộc tính hoTen, tuoi đối tượng sv1 lớp SinhVien Không nên nhầm lẫn giá trị với đối tượng Các đối tượng có định danh giá trị Có thể có ba sinh viên tên “Van Ba”, hệ thống sinh viên phải quản lý theo định danh để xác định đối tượng Giá trị giá trị kiểu liệu nguyên thuỷ kiểu số kiểu xâu ký tự, tập hợp giá trị nguyên thuỷ Các liệu thành phần lớp bao gói thông qua thuộc tính quản lý truy nhập để phục vụ việc che giấu thông tin phương pháp hướng đối tượng Trong UML ta sử dụng ký hiệu để đặc tả thuộc tính Ký hiệu ‘+’ đứng trước tên thuộc tính, hàm xác định tính công khai (public), đối tượng hệ thống nhìn thấy Nghĩa đối tượng truy nhập vào liệu công khai Trong Rose [8] ký hiệu ổ khoá không bị khoá ‘#’ đứng trước tên thuộc tính, hàm xác định tính bảo vệ (protected), đối tượng có quan hệ kế thừa với nhìn thấy Trong Rose ký hiệu ổ khoá bị khoá, có chìa để bên cạnh ‘-‘ đứng trước tên thuộc tính, hàm xác định tính sở hữu riêng (private), đối tượng lớp nhìn thấy Trong Rose ký hiệu ổ khoá bị khoá chìa để bên cạnh Trong trường hợp không sử dụng ba ký hiệu trường hợp mặc định Thuộc tính quản lý truy cập mặc định hệ thống khác khác nhau, ví dụ C++, thuộc tính mặc định lớp qui định private, Java lại qui định khác, thuộc tính rộng private Những thuộc tính thiết lập quyền truy cập cho đối tượng lớp, gói, hệ thống hệ thống phần mềm [2] 2.2.4 Các thao tác phương thức Thao tác hàm hay thủ tục áp dụng (gọi hàm) cho đối tượng lớp Khi nói tới thao tác ngầm định nói tới đối tượng đích để thực thao tác Ví dụ, thao tác (hàm) hienThi() lớp MonHoc gọi để hiển thị sinh viên học môn học cụ thể “Lập trình hướng đối tượng” chẳng hạn Một phương thức cách thức cài đặt thao tác lớp [5] Một số thao tác đa xạ, nạp chồng, nghĩa áp dụng cho nhiều lớp khác với nội dung thực khác nhau, tên gọi Ví dụ lớp ThietBi có hàm tinhGia() Hàm nạp chồng, có nhiều phương thức (công thức) tính giá bán khác tuỳ thuộc vào loại thiết bị Tất phương thức thực nhiệm vụ tinhGia(), cài đặt với nội dung (các đoạn chương trình) khác Hệ thống hướng đối tượng tự động chọn phương thức tương ứng với ngữ cảnh đối tượng đích để thực Tương tự liệu thành phần, phương thức quản lý truy cập ký hiệu Lưu ý: Một số tác giả ([2], [4], [6], [9]) không phân biệt thao tác, hàm với phương thức mà đồng chúng với trình phân tích, thiết kế lập trình Trong phần sau gọi chung hàm hàm thành phần 112 2.3 Các mối quan hệ lớp Hệ thống hướng đối tượng tập đối tượng tương tác với để thực công việc theo yêu cầu Quan hệ kết nối ngữ nghĩa lớp đối tượng, thể mối liên quan thuộc tính, thao tác chúng với hệ thống Các quan hệ thể biểu đồ lớp Giữa lớp có bốn quan hệ bản:     Quan hệ kết hợp, Quan hệ kết tập, Quan hệ tổng quát hóa, kế thừa, Quan hệ phụ thuộc 2.3.1 Sự liên kết kết hợp đối tượng Một liên kết kết nối vật lý logic đối tượng với Phần lớn liên kết kết nối hai đối tượng với Tuy nhiên có liên kết ba nhiều ba đối tượng Nhưng ngôn ngữ lập trình cài đặt liên kết (phép toán) nhiều ba Một kết hợp mô tả nhóm liên kết có chung cấu trúc ngữ nghĩa Vậy, liên kết thể lớp Liên kết kết hợp thường xuất dạng động từ tài liệu mô tả toán ứng dụng Hình 2-7 mô tả ký hiệu cho quan hệ liên kết kết hợp NoiBai: SanBay GiaLam: SanBay maSo = HN1 tenGoi = Sân bay quốc tế maSo = HN2 tenGoi = Sân bay nội địa phục vụ HaNoi: TinhThanh phục vụ = Thu đô Hà Nội Hình 2-7 (a) Liên kết tenGoi đối tượng soDanNội = 5000000 Hai đối tượng thuộc lớp SanBay: Bài Gia Lâm liên kết với đối tượng Hà Nội lớp TinhThanh theo quan hệ phục vụ Quan hệ liên kết hai đối tượng biểu diễn đoạn thẳng nối chúng với có tên gọi (nhãn quan hệ) Nhãn quan hệ thường động từ Khi muốn biểu diễn cho quan hệ chiều sử dụng mũi tên để rõ hướng quan hệ TinhThanh SanBay phục vụ tenGoi maSo Hình 2-7 (b) Quan hệ kết hợp lớp danSo tenGoi Khi mô hình nhập nhằng tên kết hợp tuỳ chọn Sự nhập nhằng xuất hai lớp có nhiều quan hệ kết hợp, ví dụ: lớp NhanVien lớp CongTy có hai quan hệ làm việc có cổ phần Khi có nhiều quan hệ nên gán tên vào đường nối tên vai trò đầu quan hệ để tránh nhập nhằng NhanVien hoTen nhiemVu Làm việc Có cổ phần CongTy tenGoi taiKhoan 113 Hình 2-7 (c) Quan hệ kết hợp lớp Lưu ý: không nên nhầm lẫn liên kết với giá trị Giá trị liệu nguyên thuỷ liệu số xâu ký tự Liên kết mối liên quan hai đối tượng Trong giai đoạn phân tích ta phải mô hình (xác định) tất tham chiếu tới đối tượng thông qua liên kết nhận dạng nhóm liên kết tương tự thông qua quan hệ kết hợp Đến giai đoạn thiết kế ta chọn cấu trúc trỏ, khóa ngoại, số cách khác để cài đặt quan hệ Ví dụ: mô hình phân tích hình 2-7 (b) phát triển sang giai đoạn thiết kế sau: TinhThanh SanBay tenGoi danSo cacSanBay maSo tenGoi Hình 2-8 Mô hình thiết kế lớp Trong đó, lớp TinhThanh có thêm thuộc tính cacSanBay danh sách cấu trúc mảng, hay trỏ, v.v Ta thiết kế theo cách khác, thay bổ sung thuộc tính cacSanBay vào lớp TinhThanh bổ sung oTinhThanh vào lớp SanBay 2.3.2 Bội số Quan hệ kết hợp thường quan hệ hai chiều: đối tượng kết hợp với số đối tượng lớp khác ngược lại Để xác định số đối tượng tham gia vào đầu mối quan hệ ta sử dụng khái niệm bội số Bội số xác định số lượng thể (đối tượng) lớp quan hệ kết hợp với đối tượng lớp khác Cũng cần phân biệt bội số (hay số) với lực lượng Bội số ràng buộc kích cỡ tuyển tập, lực lượng đếm số phần tử tuyển tập Do đó, bội số ràng buộc lực lượng phần tử lớp tham gia vào quan hệ xác định trước Trong UML bội số biểu diễn sau: LopA * n k n * LopA LopA Chính xác (nếu không nhập nhằng không cả, xem mặc định 1) Nhiều (0 *) Số lượng xác định số n k (≥ 0) Số lượng xác định số n nhiều (n ≥ 0) Để phân biệt chiều quan hệ kết hợp ta sử dụng mũi tên chiều kết hợp Ví LopA dụ: Nguoi * có * sở hữu Oto Hình 2-9 Quan hệ kết hợp hai chiều hai lớp Hình 2-9 mô tả sau: người lớp Nguoi có nhiều ô tô (thuộc lớp Oto) ngược lại ô tô phải sở hữu người thuộc lớp Nguoi 114 2.3.3 Các vai trò quan hệ Vai trò tên gọi nhiệm vụ thường danh từ gán cho đầu quan hệ kết hợp Hình 2-10 mô tả hai lớp SanBay lớp CacChuyenBay có quan hệ kết hợp với Một sân bay điểm đến chuyến bay lại điểm xuất phát chuyến bay khác Ngược lại chuyến bay phải bay từ sân bay tới sân bay khác SanBay Nơi xuất phát * CacChuyenBay maSo tenGoi Nơi đến * soHieuChuyen Bay lichBay Hình 2-10 Vai trò quan hệ kết hợp Khi mô hình nhập nhằng tên vai trò tuỳ chọn Sự nhập nhằng xuất hai lớp có nhiều quan hệ hình 2-10, lớp lại có quan hệ với (quan hệ đệ qui) Ví dụ: người hai người (cha-mẹ) hai cha -mẹ lại có nhiều Quan hệ mô tả hình 2-11 Nguoi Cha-mẹ + tenGoi - tuoi * quan hệ kết hợp Hình 2-11 Vai trò 2.3.4 Quan hệ kết tập (quan hệ gộp) Kết tập (gộp) loại quan hệ kết hợp, tập trung thể quan hệ tổng thể phận (Whole / part) Kết tập thường biểu diễn cho quan hệ “có” (has-a), “là phận của” (is-a-part-of), “bao gồm” (contains), v.v thể mối quan hệ lớp tổng thể có, gồm, chứa hay liên kết với nhiều lớp thành phần Người ta chia quan hệ kết tập thành ba loại:  Kết tập thông thường  Kết tập chia sẻ  Kết tập hợp thành hay quan hệ hợp thành Kết tập thông thường Quan hệ kết tập thông thường, gọi tắt kết tập thể mối liên kết hai lớp, đối tượng lớp bao gồm số đối tượng lớp kia, song không tồn nội lớp Lớp phía phận phận logic phía tổng thể chúng không chia sẻ với lớp khác Ví dụ: hạm đội lớp HamDoi gồm số (3 10) tàu chiến lớp TauChien, tàu chiến không chứa lớp HamDoi Vậy, lớp HamDoi có quan hệ kết tập với TauChien UML sử dụng ký hiệu: để biểu diễn quan hệ kết tập gắn với phía tổng thể Hình 2-12 thể quan hệ lớp HamDoi lớp TauChien HamDoi Hình 2-12 Quan hệ kết tập thông thường 10 TauChien 115 Trong quan hệ này, việc quản lý đối tượng lớp liên quan khác Ta loại bỏ số tàu chiến hạm đội cho số lại 3, tương tự bổ sung vào số tàu chiến cho không 10 Nhưng loại bỏ hạm đội phải loại bỏ tất tàu chiến hạm đội tàu chiến thuộc hạm đội Nói cách khác, đối tượng lớp phía phận tồn độc lập phần phái tổng thể Kết tập chia sẻ Quan hệ kết tập chia sẻ loại kết tập, phía phận tham gia vào nhiều phía tổng thể Ví dụ: dự án lớp DuAn có nhiều nhân viên lớp NhanVien tham gia nhân viên tham gia vào nhiều (hai) dự án UML sử dụng ký hiệu: để biểu diễn quan hệ kết tập chia sẻ gắn với phía tổng thể Hình 2-13 thể quan hệ lớp DuAn lớp NhanVien * DuAn NhanVien Hình 2-13 Quan hệ kết tập thông thường Mỗi dự án có nhiều người tham gia người lại tham gia nhiều hai dự án Trong quan hệ này, ta loại bỏ, hay thành lập dự án (phía tổng thể) không thiết phải loại bỏ, hay phải tuyển thêm người tham gia (phía phận) vào dự án kiểu kết tập Tuy nhiên xử lý mối quan hệ phải cập nhật lại mối liên kết nhân viên tham gia vào dự án tương ứng Kết tập hợp thành Quan hệ vật có chứa số phận phận tồn vật lý bên vật tổng thể Do thực huỷ bỏ, hay thiết lập bên tổng thể phận bên thành phần bị huỷ bỏ phải bổ sung Ví dụ: lớp Window chứa lớp Text, Menu DialogBox Trong UML có hai cách biểu diễn quan hệ hợp thành sau: * Text * Window Window* Menu DialogBox * Hình 2-14 Quan hệ kết tập hợp thành 2.3.5 Quan hệ tổng quát hoá chứa * * Text Menu DialogBox Tổng quát hoá chuyên biệt hoá hai cách nhìn / lên (buttom–up) trên/xuống (topdown) phân cấp lớp, mô tả khả quản lý cấp độ phức tạp hệ thống cách trừu tượng hoá lớp Tổng quát hoá từ lớp lên sau hình thành lớp tổng quát (lớp trên, lớp cha), tức cấu trúc lớp từ đến gốc Chuyên biệt hoá trình ngược lại tổng quát hoá, cho phép tạo lớp (lớp con) khác lớp cha Trong UML, tổng quát hoá quan hệ kế thừa hai lớp Nó cho phép lớp (lớp dưới, lớp kế thừa, hay lớp dẫn xuất) kế thừa trực tiếp thuộc tính hàm thuộc loại công khai, hay bảo vệ (protected) lớp cha (lớp sở, lớp trên) Trong quan hệ tổng quát hoá có hai loại lớp: lớp cụ thể lớp trừu tượng 116 Lớp cụ thể (Concrete Class) lớp có đại diện, thể cụ thể Ngược lại, lớp trừu tượng (Abstract Class) lớp không (đối tượng) cụ thể hệ thống thực Các lớp cháu lớp trừu tượng lớp trừu tượng, nhiên cấu trúc phân cấp theo quan hệ tổng quát hoá nhánh phải kết thúc (lớp lá) lớp cụ thể Ta định nghĩa hàm trừu tượng cho lớp trừu tượng, hàm chưa cài đặt nội dung thực lớp chúng khai báo Những hàm trừu tượng cài đặt lớp cháu sau lớp cụ thể Ví dụ: Lớp NhanVien có ký hiệu {abstract} sau tên lớp lớp trừu tượng, đối tượng cụ thể Hai lớp con: lớp NguoiBanHang lớp CongNhan hai lớp cụ thể Hai lớp có thuộc tính, thao tác giống lớp NhanVien có thuộc tính: hoTen, diaChi có hàm tinhLuong(), hienThi(), lớp bổ sung thêm số thuộc tính, thao tác để đặc tả cho nhóm đối tượng cụ thể Lớp NguoiBanHang bổ sung thêm thuộc tính soluongBanDuoc lớp CongNhan bổ sung thuộc tính soLuongSanPham sản xuất Cấu trúc phân cấp lớp NhanVien xác định hình 2-15 {abstract} Hình 2-15 Lớp trừu tượng cụ thể quan hệ tổng quát hoá Lưu ý:  Quan hệ tổng quát kết hợp hai quan hệ liên quan đến hai lớp, chúng có điểm khác Quan hệ kết hợp mô tả mối liên kết hai nhiều đối tượng quan hệ khái quát mô tả phương diện khác thể  Trong giai đoạn phân tích, quan hệ kết hợp quan trọng quan hệ tổng quát hoá Kết hợp bổ sung thêm thông tin cho lớp Ngược lại, tổng quát hoá loại bỏ thông tin bị chia sẻ lớp cháu chúng kế thừa từ lớp cha  Trong giai đoạn thiết kế tổng quát hoá lại quan trọng Người phát triển hệ thống quan tâm để phát cấu trúc liệu khâu phân tích phát hành vi khâu thiết kế Tổng quát hoá cung cấp chế sử dụng lại để thể xác hành vi mã hoá thư viện lớp  Quan hệ kết tập tổng quát khác Cả hai làm xuất cấu trúc thông qua bao đóng bắc cầu quan hệ sở, quan hệ tổng quát mối quan hệ “hoặc” (OR) quan hệ kết tập mối quan hệ “và” (AND) Hình 2-16 mô tả khác quan hệ tổng quát hoá kết tập TaiLie u Sach Sach TapChi ChuongMot ChuongHai KetLuan 117 Hình 2-16 Quan hệ tổng quát hoá ngược lại với quan hệ kết tập 2.3.6 Kế thừa bội Kế thừa bội cho phép lớp kế thừa thuộc tính, thao tác quan hệ kết hợp từ nhiều lớp sở Trong quan hệ kế thừa bội dẫn đến pha trộn thông tin từ nhiều nguồn liệu khác từ lớp kế thừa Quan hệ kế thừa đơn, lớp kế thừa từ lớp trên, thường tạo cấu trúc cây, kế thừa bội lại tổ chức lớp thành đồ thị định hướng phi chu trình Kế thừa bội chế mạnh mô hình hệ thống, đồng thời tạo nhiều phức tạp tính nhập nhằng, không quán liệu Kế thừa bội từ lớp phân biệt Một lớp kế thừa từ nhiều lớp sở khác Ví dụ lớp Nguoi sở để tạo hai lớp con: HDQuanTri (những người hội đồng quản trị) KinhDoanh (những người kinh doanh) Từ lớp lại xây dựng lớp BanGiamDoc, CoDong (những người đóng cổ phần) kế thừa từ lớp HDQuanTri, lớp NhanVienCT (những người làm việc thường xuyên công ty) NhanVienHD (những người làm việc theo hợp đồng) kế thừa từ lớp KinhDoanh Trong Công ty lại có người vừa cổ đông, vừa nhân viên Những người đối tượng lớp NhanVienCoDong kế thừa từ hai lớp CoDong NhanVienCongTy hình 2-17(a) Nguoi HDQuanTri KinhDoanh Hình 2-17(a) Kế thừa bội từ hai lớp khác có lớp sở chung BanGiamDo Kế thừa bội lớpCoDong sở chung NhanVienCT NhanVienH Kế thừa bội kế thừa có lớp sở chung (lớp Nguoi) Chúng ta tạo lớp kế thừa bội từ nhiều lớp mà chúng lại lớp sở chung Loại kế thừa thường NhanVienCoDong xuất ta muốn pha trộn số chức lớp thư viện khác Ví dụ: xét mô hình chương trình đánh cờ Trước nước cờ, chương trình phải nghiên cứu vị trí quân cờ nước cho nước dẫn đến chiến thắng nhanh Trong hình 2-13 (b), đối tượng lớp SearchTree (cây tìm kiếm) đối tượng lớp MoveSubtree (cây nước đi) lớp PossibleMove (lớp nước chọn) Bản thân lớp MoveSubtree lại chứa SearchTree nhỏ Mỗi nước lớp Move lại nước (PossibleMove) lớp nước thời (ActualMove) Lớp PossibleMove kế thừa hành vi chung lớp Move lớp SearchTree SearchTre MoveSubtree PossibleMove Move ActualMove 118 Hình 2-17(b) Kế thừa bội lớp có sở chung 2.3.7 Quan hệ phụ thuộc Sự phụ thuộc loại quan hệ liên kết hai phần tử mô hình, thể thay đổi phần tử kéo theo thay đổi phần tử Quan hệ kết hợp thường quan hệ hai chiều, quan hệ phụ thuộc lại thường quan hệ chiều, thể lớp phụ thuộc vào lớp khác Lớp A phụ thuộc vào lớp B khi:  Lớp A sử dụng đối tượng lớp B tham số thao tác,  Trong thao tác lớp A có truy nhập tới đối tượng lớp B,  Khi thực thao tác lớp A lại phải tham chiếu tới miền xác định lớp B  Lớp A sử dụng giao diện lớp B Tương tự, hai gói (package) phụ thuộc vào có lớp gói phụ thuộc vào lớp gói Trong UML, quan hệ phụ thuộc thể mũi tên đứt nét Ví dụ, hình 2-18 mô tả quan hệ phụ thuộc hai lớp phụ thuộc hai gói LớpA GóiA LớpB GóiB Hình 2-18 Quan hệ phụ thuộc lớp gói 2.4 Các gói Để hiểu hệ thống lớn, phức tạp có nhiều lớp đối tượng, phải có cách chia lớp thành số nhóm gọi gói Gói nhóm phần tử mô hình gồm lớp, mối quan hệ gói nhỏ Cách tổ chức hệ thống thành gói (hệ thống con) cách phân hoạch mô hình thành đơn vị nhỏ để trị dễ hiểu dễ quản lý Gói mô tả UML gồm tên gói, có lớp, gói nhỏ khác ký hiệu hình 2-19 GoiA LopA LopB GoiA1 Hình 2-19 Gói lớp UML Khi phân chia lớp thành gói, dựa vào: lớp (thống trị), mối quan hệ chính, chức Theo cách phân chia chia hệ thống thành phân hệ phù hợp với cách phân chia hệ thống thực Ví dụ, hệ thống quản lý thư viện tổ chức thành bốn gói: gói giao diện, gói nghiệp vụ, gói CSDL gói tiện ích hình 2-20 Trong đó,  Gói giao diện (UI – User Interface): bao gồm lớp giao diện với người dùng, cho khả quan sát truy nhập vào liệu Các đối tượng gói thực thao tác đối tượng tác nghiệp để truy vấn hay nhập liệu   Gói nghiệp vụ (Business Package): chứa lớp thực thể thuộc lĩnh vực toán ứng dụng  Gói tiện ích: chứa lớp dịch vụ cho gói khác hệ thống Gói CSDL: chứa lớp dịch vị cho lớp gói tác nghiệp việc tổ chức, quản lý lưu trữ liệu Các gói hệ thống thường có mối quan hệ với nhau, quan hệ phụ thuộc 119 Gói UI Gói tiện ích Gói nghiệp vụ Hình 2-20 Tổ chức gói hệ thống thư viện Góibuộc CSDL 2.5 Các qui tắc ràng suy diễn Trong mô hình hoá hệ thống với UML, ta sử dụng ngôn ngữ ràng buộc đối tượng OCL (Object Constraints Language) [4] để đặc tả xác phần tử hệ thống ràng buộc chặt chẽ mối quan hệ, giới hạn phạm vi mô hình hệ thống cho phù hợp với điều kiện ràng buộc thực tế Trong UML có hai qui tắc chính: Qui tắc ràng buộc (Constraint Rule) sử dụng để giới hạn phạm vi mô hình, ví dụ qui tắc hạn chế, qui định rõ phạm trù mối quan hệ kết hợp, kế thừa hay khả nạp chồng lớp Qui tắc suy dẫn (Derivation Rule) cách vật suy dần được, ví dụ tuổi người suy từ ngày / tháng / năm thời trừ ngày / tháng / năm sinh Lưu ý: Các qui tắc ràng buộc suy dẫn thường đặt cặp dấu ngoặc ‘{‘ ‘}’ bên cạnh phần tử mô hình, thường thuộc tính, hay mối quan hệ cần phải tuân theo Ví dụ: 1/ Khi mô tả mối quan hệ hai lớp DangPhai ChinhTriGia, ta sử dụng qui tắc ràng buộc để khống chế đối tượng tham gia vào quan hệ Ví dụ, đảng phái trị có qui định lãnh tụ đảng phải đảng viên đảng Khi quan hệ “Chủ tịch của” đảng phải tập {Subset} quan hệ “đảng viên của” đảng mô tả UML hình 2-21 (a) Đảng viên {Subset} ĐangPhai Hình 2-21 (a) Mối ràng buộc quan hệ Chủhai tịch 2/ Các thuộc tính có thể1bị khống chế, bị giới hạn phạm vi xác định, ví dụ: điều ChinhTriGia kiện * {0 ≤ mau ≤ 255} thuộc tính mau (màu) có giá trị phạm vi số nguyên từ đến 255 3/ Một số thuộc tính suy dẫn từ thuộc tính khác Ví dụ thiết kế lớp SanPham có thuộc tính giaBan giaSanXuat Trong kinh doanh ta xác định cách tính lợi nhuận loiNhuan = giaBan – giaSanXuat Cách tính qui định mô tả hình 2-21 (b) SanPham giaBan giaSanXuat / loiNhuan 120 {loiNhuan = giaBan - giaSanXuat} Hình 2-21 (b) Qui tắc suy dẫn OCL Trong hình trên, ký hiệu “/” sử dụng để thuộc tính loiNhuan suy dẫn theo qui tắc gắn bên cạnh lớp SanPham Lưu ý:  Quan hệ tổng quát hoá áp dụng với qui tắc hạn chế (bị ràng buộc) không áp dụng với qui tắc suy dẫn, nghĩa nạp chồng, rời nhau, tổng quát hoá toàn hay phần  Các qui tắc hạn chế viết dạng biểu thức với toán tử ‘.’ (toán tử xác định thành phần) ngôn ngữ lập trình hướng đối tượng Ví dụ: HopDongBaoHiem.soNguoiMuaBH > Oto.NguoiLai.bangLaiXe = True 2.6 Quá trình phát triển phần mềm Phần mềm sản phẩm phát triển hay kỹ nghệ hoá chế tạo tương tự sản phẩm công nghiệp (phần cứng) khác Phát triển phần mềm chế tạo phần cứng có điểm tương đồng: sản phẩm chất lượng chúng phụ thuộc nhiều vào thiết kế, lại phụ thuộc vào người Tuy nhiên phần mềm phần cứng lại có nhiều điểm đặc trưng khác • Qui trình phương pháp tổ chức thực để sản xuất chúng khác nhau, • Các giai đoạn chế tạo phần cứng xác định có khả điều chỉnh chất lượng sản phẩm phần mềm không dễ thay đổi được, • Mối quan hệ người sử dụng công việc cần thực với loại sản phẩm hoàn toàn khác nhau, • Cách tiếp cận để xây dựng, chế tạo sản phẩm khác Khả nhân chúng hoàn toàn trái ngược Việc bảo vệ quyền sản phẩm phần mềm khó khăn khả chép thành nhiều giống thực (tương đối dễ) • Phần mềm khác hẳn với phần cứng không bị hư hỏng theo thời gian, không bị tác động môi trường (thời tiết, nhiệt độ, điều kiện, v.v…) Do vậy, phần cứng việc bảo hành đảm bảo hoạt động phần mềm lại khác hẳn Bảo hành, bảo trì phần mềm bảo đảm cho hệ thống hoạt động với thiết kế đáp ứng yêu cầu sử dụng khách hàng Chính mà công bảo hành phần mềm tốn đòi hỏi phải tập trung nhiều vào khâu phân tích, thiết kế hệ thống Mọi hệ thống phần mềm hệ thống khác tồn độc lập mà hoạt động tồn môi trường, tương tác với giới xung quanh Như hệ thống xem hệ thống hệ thống khác thân lại chứa số hệ thống khác nhỏ Công nghệ phần cứng phát triển nhanh chất lượng tốc độ xử lý với giá thành ngày hạ giá phần mềm lại cao Để phát triển hệ thống phần mềm đáp ứng yêu cầu đòi hỏi phải áp dụng lý thuyết, kỹ nghệ, phương pháp công cụ để tạo qui trình phát triển phần mềm thống Như vậy, công nghệ phần mềm (CNPM) đề cập đến lý thuyết, phương pháp luận công cụ cần 121 thiết để phát triển phần mềm Mục đích CNPM làm phần mềm chất lượng cao, tin cậy với hạn chế nguồn lực, theo lịch trình đặt trước, phù hợp với ngân sách dự kiến đáp ứng yêu cầu người dùng Hơn nữa, CNPM không phải làm hệ thống phần mềm mà phải làm hồ sơ, tài liệu tài liệu thiết kế, tài liệu hướng dẫn sử dụng, v.v làm sở để bảo trì mở rộng, phát triển hệ thống sau Tóm lại để xây dựng hệ thống phần mềm đáp ứng yêu cầu trên, cần phải:  Có qui trình phát triển phần mềm thống gồm bước thực rõ ràng, mà sau bước phải có sản phẩm cụ thể;   Có phương pháp kỹ nghệ phù hợp với pha thực phát triển phần mềm; Có công cụ để làm sản phẩm phần mềm theo yêu cầu Quá trình phát triển sản phẩm (Product Development Process) trình định nghĩa làm gì, làm Quá trình xây dựng sản phẩm phần mềm nâng cấp sản phẩm có gọi trình phát triển phần mềm (Software Development Process) Hệ thống phần mềm kiến tạo sản phẩm loạt hoạt động sáng tạo có trình phát triển Quá trình phát triển phần mềm phức tạp phải có nhiều người tham gia thực Trước hết khách hàng nhà đầu tư, người đưa vấn đề cần giải máy tính Những người phát triển hệ thống gồm nhà phân tích, thiết kế lập trình làm nhiệm vụ phân tích yêu cầu khách hàng, thiết kế thành phần hệ thống thực thi cài đặt chúng Sau phần mềm kiểm tra (Testing) triển khai ứng dụng để thực thi vấn đề mà người sử dụng yêu cầu Quá trình phát triển phần mềm xác định thông qua tập hoạt động cần thực để chuyển đổi yêu cầu khách hàng (người sử dụng) thành hệ thống phần mềm Có năm bước cần thực trình phát triển phần mềm: Xác định yêu cầu Phân tích hệ thống Thiết kế hệ thống Lập trình kiểm tra hệ thống Vận hành bảo trì hệ thống Có thể thực bước theo nhiều phương pháp khác Theo đó, số bước đề xuất phương pháp khác Các dự án thực theo mô hình khác (([3], [12]) mô hình "thác nước" (waterfall), mô hình "tạo nguyên mẫu" (Prototype), mô hình "xoắn ốc", v.v tuỳ thuộc vào dự án khác Như chương phân tích, có hai cách tiếp cận để thực bước nêu trên: cách tiếp cận hướng chức hướng đối tượng Ở tập trung nghiên cứu phương pháp phân tích thiết kế hướng đối tượng 2.6.1 Xác định yêu cầu phân tích hệ thống Phân tích yêu cầu hệ thống Từ yêu cầu khách hàng xác định mục tiêu phần mềm cần phát triển Thường yêu cầu chức mà hệ thống phải thực hiện, chưa cần chức thực Việc xác định đầy đủ yêu cầu toán nhiệm vụ quan trọng, làm sở cho tất bước tiếp dự án phần mềm Muốn vậy, phải đặc tả yêu cầu hệ thống UML cung cấp biểu đồ ca sử dụng để đặc tả yêu cầu hệ thống Tài liệu đặc tả yêu cầu sử dụng để: 122  Làm sở để trao đổi với người sử dụng, để thảo luận nhóm thành viên dự án phát triển phần mềm mà hệ thống phải thực (và không cần thực hiện)  Làm cho bước trình phát triển phần mềm Muốn đạt mục tiêu trình phải thực hiện:  Hiểu rõ miền xác định toán (Domain Understanding): Những người phát triển xây dựng hệ thống theo hiểu biết họ yêu cầu khách hàng khái niệm sở toán ứng dụng  Nắm bắt yêu cầu (Requirement Capture): Người phân tích phải nắm bắt tất nhu cầu khách hàng cách phải trao đổi với người có liên quan đến dự án, tham khảo tài liệu liên quan Thông qua việc thảo luận, trao đổi với khách hàng, chuyên gia lĩnh vực ứng dụng người đã, sử dụng hệ thống có sẵn ta phát nắm bắt yêu cầu họ Phương pháp trừu tượng hoá giúp ta dễ dàng nắm bắt yêu cầu hệ thống  Phân loại (Classification): Vấn đề quan trọng giai đoạn phải hiểu rõ yêu cầu xác định Muốn vậy, ta phải tìm cách phân loại chúng theo tầm quan trọng, hay chức người sử dụng khách hàng  Thẩm định (Validation): Kiểm tra xem yêu cầu có thống với đầy đủ không, đồng thời tìm cách giải mối mâu thuẫn yêu cầu có  Nghiên cứu tính khả thi (Feasibility Study): Tính khả thi dự án tin học phải thực dựa yếu tố bao gồm khía cạnh tài chính, chiến lược, thị trường, người, đối tác, kỹ thuật, công nghệ phương pháp mô hình hoá, v.v Nói chung qui tắc hướng dẫn cụ thể để biết công việc phân tích yêu cầu kết thúc trình phát triển chuyển sang bước Nhưng dựa vào câu trả lời cho câu hỏi sau để chuyển sang bước  Khách hàng, người sử dụng (NSD) người phát triển hiểu hoàn toàn hệ thống chưa?  Đã nêu đầy đủ yêu cầu chức (dịch vụ), đầu vào / liệu cần thiết chưa? Bức tranh chung pha phân tích yêu cầu hệ thống mô tả hình 2-22 Người phát triển hệ thống Hiểu rõ yêu cầu Khách hàng, Các chuyên gia hệ thống Người sử dụng (NSD) tích Nắm bắt yêu cầu Nghiên cứu tính khả thi Thẩm định Mô tả yêu cầu Phân loại Hình 2-22 Mối Tài quan hệđặc liệu tả yêu công cầu việc pha phân yêu cầu bước 123 Vấn đề xác định đầy đủ yêu cầu hệ thống quan trọng, ảnh hưởng lớn tới chất lượng sản phẩn sau Theo Finkelstein (1989) khảo sát, đánh giá pha thực trình phát triển phần mềm 55% [10] lỗi phần mềm yêu cầu hệ thống chưa phát đầy đủ chi phí cho việc sửa lỗi ( để bảo trì hệ thống) chiếm tới 80% chi phí dự án 2.6.2 Phân tích hệ thống hướng đối tượng Phân tích hướng đối tượng (Object Oriented Analysis - OOA): giai đoạn trình phát triển phần mềm, mô hình khái niệm mô tả xác, súc tích thông qua đối tượng thực khái niệm toán ứng dụng Phân tích hướng đối tượng vừa ngành khoa học vừa nghệ thuật nên để xây dựng hệ thống tốt, tráng kiện (Robust), có tính mở dễ bảo trì ta phải biết vận dụng nguyên lý, phương pháp khoa học kết hợp heuristic mẫu thử nghiệm (Patterns) để nhanh chóng tích luỹ hoàn thiện kỹ phân tích, thiết kế Thông qua việc áp dụng nguyên lý kinh nghiệm thực theo mẫu hướng dẫn [4] nhanh chóng học cách tạo thiết kế hệ thống phần mềm tốt Phân tích hướng đối tượng tập trung vào việc tìm kiếm đối tượng, khái niệm lĩnh vực toán xác định mối quan hệ chúng hệ thống Nhiệm vụ người phân tích nghiên cứu kỹ yêu cầu hệ thống phân tích thành phần hệ thống mối quan hệ chúng Trong khâu phân tích hệ thống chủ yếu trả lời câu hỏi:  Hệ thống gồm thành phần, phận nào?  Hệ thống cần thực gì? Kết pha phân tích hệ thống hướng đối tượng biểu đồ lớp, biểu đồ trạng thái, biểu đồ trình tự, biểu đồ cộng tác biểu đồ thành phần 2.6.3 Thiết kế hệ thống hướng đối tượng Dựa vào đặc tả yêu cầu kết phân tích (các biểu đồ nêu trên) để thiết kế hệ thống Thiết kế hướng đối tượng (Object Oriented Design – OOD) giai đoạn trình phát triển phần mềm, hệ thống tổ chức thành tập đối tượng tương tác với mô tả cách để hệ thống thực thi nhiệm vụ toán ứng dụng Trong khâu thiết kế hệ thống hướng đối tượng chủ yếu trả lời câu hỏi làm nào:  Trong hệ thống có lớp đối tượng nào, trách nhiệm chúng gì?  Các đối tượng tương tác với nào?  Các nhiệm vụ mà lớp đối tượng phải thực hiện?  Dữ liệu nghiệp vụ giao diện xây dựng nào?  Kiến trúc cấu hình hệ thống? Nhiệm vụ thiết kế hệ thống là:  Xây dựng thiết kế chi tiết mô tả thành phần hệ thống mức cao (khâu  phân tích) để phục vụ cho việc cài đặt Nghĩa là, lớp đối tượng định nghĩa chi tiết gồm đầy đủ thuộc tính, thao tác phục vụ cho việc cài đặt ngôn ngữ lập trình hướng đối tượng lựa chọn bước sau Đồng thời đưa kiến trúc (là trọng tâm) hệ thống để đảm bảo cho hệ thống thay đổi, có tính mở, dễ bảo trì, thân thiện với NSD, v.v Nghĩa tổ chức lớp thành gói hệ thống theo kiến trúc phù hợp với 124 nhu cầu phát triển công nghệ (mạng, phân tán, v.v.) đồng thời phù hợp với xu phát triển lĩnh vực ứng dụng Những kết thể biểu đồ: biểu đồ lớp (chi tiết), biểu đồ hành động, biểu đồ thành phần biểu đồ triển khai Tất kết thiết kế phải ghi lại thành hồ sơ, tài liệu cho hệ thống Trong tài liệu thiết kế phải mô tả cụ thể thành phần nào, làm làm Mô hình khái niệm, Đặc tả yêu cầu Kiến trúc chi tiết, cụ thể phụ thuộc vào vài đặt: khung hệ thống Thiết kế logic: Kiến trúc tổng quát Phân chia thành phần, độc lập trừu tượng Nhiệm Thiết thành Hìnhvụ2-23 kế logic thiết kế chi tiết phần2.6.4 Lập trình kiểm tra chương trình Thiết kế chi tiết: Làm mịn dần thành phần, Cách thực thành phần Thiết kế mối quan hệ Trong giai đoạn này, thành phần thiết kế lập trình thành mô đun chương trình (chương trình con) Mỗi mô đun kiểm chứng thử nghiệm theo tài liệu đặc tả giai đoạn thiết kế Công việc mô tả sau: Đặc tả thiết kế Lập trình Tập mô đun chương trình kiểm thử chương trình Hình 2-24 Lập trình kiểm tra chương trình Sau mô đun chương trình kiểm tra, tích hợp với thành hệ thống tổng thể kiểm tra xem có đáp ứng yêu cầu khách hàng hay không Kết thúc pha phần mềm cần phải xây dựng Hiện có số công cụ hỗ trợ cho trình phân tích, thiết kế sinh mã tự động cho thành phần mô hình như: Rose [8], hay Visual Studio NET Microsoft, v.v 2.6.5 Vận hành bảo trì hệ thống Giai đoạn bắt đầu việc cài đặt hệ thống phần mềm môi trường sử dụng khách hàng sau sản phẩm giao cho họ Hệ thống hoạt động, cung cấp thông tin, xử lý yêu cầu thực thiết kế Tuy nhiên vấn đề bảo trì phần mềm hoàn toàn khác với bảo trì phần cứng Như phân tích trên, bảo trì phần mềm đảm bảo cho hệ thống hoạt động đáp ứng yêu cầu NSD, khách hàng Mà yêu cầu thực tế lại hay thay đổi, công tác bảo trì lại bao gồm thay đổi hệ thống cho phù hợp với yêu cầu họ, chí có thay đổi chưa phát pha phân tích, thiết kế Nghĩa hệ thống phần mềm phải nâng cấp, hoàn thiện liên tục chi phí cho công tác bảo trì tốn Thông thường, có hai loại nâng cấp:  Nâng cao hiệu hệ thống: bao gồm thay đổi mà khách hàng cho cải thiện hiệu công việc hệ thống, bổ sung thêm chức hay giảm thời gian xử lý, trả lời hệ thống, v.v 125  Đảm bảo thích nghi thay đổi môi trường hệ thống hay sửa đổi cho phù hợp với thay đổi sách, qui chế ban hành Chính phủ Tóm lại, thực phân tích thiết kế hướng đối tượng UML xây dựng biểu đồ mô tả yêu cầu, khái niệm kiến trúc hệ thống Quá trình xây dựng biểu đồ thực hình 2-25 Biểu đồ ca sử dụng Biểu đồ trình tự Biểu đồ trạng thái Biểu đồ lớp Biểu đồ cộng tác Biểu đồ hành động Hình 2-25 Qui trình xây dựng biểu đồ UML phân tích, thiết kế hệ thống Chi tiết biểu đồ cách xây dựng chúng đề cập chương sau 2.7 Rational Rose trình phát triển phần mềm thống Biểunhất đồ triển khai Biểu đồ thành phần Rational Rose [8] phần mềm công cụ mạnh hỗ trợ cho trình phân tích, thiết kế hệ thống hướng đối tượng Nó giúp cho việc mô hình hoá hệ thống trước viết chương trình, đồng thời có khả kiểm tra đảm bảo tính đắn, hợp lý kiến trúc hệ thống từ khởi đầu dự án  Rose hỗ trợ để xây dựng biểu đồ UML mô hình hoá lớp, thành phần mối quan hệ chúng hệ thống cách trực quan thống  Nó cho phép mô tả chi tiết hệ thống bao gồm gì, trao đổi tương tác với hoạt động để người phát triển hệ thống sử dụng mô kế hoặch chi tiết cho việc xây dựng hệ thống  Rose hỗ trợ tốt giao tiếp với khách hàng làm hồ sơ, tài liệu cho phần tử mô hình  Rose hỗ trợ cho việc chuyển thiết kế chi tiết sang mã chương trình ngôn ngữ lập trình lựa chọn ngược lại, mã chương trình chuyển trở lại yêu cầu hệ thống Rose hỗ trợ phát sinh mã khung chương trình nhiều ngôn ngữ lập trình khác như: C++, Java, Visual Basic, Oracle 8, v.v Ngoài Rose hỗ trợ cho nhà phân tích, thiết kế phát triển phần mềm: 126  Tổ chức mô hình hệ thống thành hay nhiều tệp, gọi đơn vị điều khiển (Controlled Unit) Cho phép phát triển song song đơn thể điều khiển mô hình,  Cho phép chép hay chuyển dịch tệp mô hình, đơn vị điều khiển không gian làm việc khác theo chế “ánh xạ đường dẫn ảo” (Virtual Path Map),  Cho phép quản lý mô hình tích hợp với hệ thống điều khiển chuẩn, Rose cung cấp khả tích hợp với ClearCase Microsoft Visual SourceSafe, v.v  Sử dụng tích hợp mô hình (Model Integator) để so sánh kết hợp mô hình, đơn vị điều khiển với Bản thân UML không định nghĩa trình phát triển phần mềm, UML Rose hỗ trợ hiệu trình xây dựng phần mềm Bài tập câu hỏi 2.1 Vai trò UML mô hình hoá hệ thống? 2.2 Có loại biểu đồ, nêu tóm tắt nhiệm vụ biểu đồ 2.3 Nêu khái niệm sở phương pháp hướng đối tượng ký hiệu chúng UML 2.4 Quá trình phát triển phần mềm gì, nêu pha cần thực theo cách tiếp cận hướng đối tượng 2.5 Tìm hiểu vai trò Rational Rose trình phát triển phần mềm thống 2.6 Chọn từ danh sách thuật ngữ thích hợp để điền vào chỗ [(…)] đoạn văn mô tả ngôn ngữ mô hình hoá UML UML ngôn ngữ mô hình hoá, trước hết mô tả [(1)], ngữ nghĩa định nghĩa trực quan tất thành phần [(2)] UML sử dụng để hiển thị, đặc tả, tổ chức, xây dựng [(3)] vật phẩm (artifacts) [(4)], đặc biệt phân tích, thiết kế dạng báo cáo, biểu đồ, mẫu hay trang web, v.v UML ngôn ngữ [(2)] hoá độc lập với công nghệ phát triển [(5)] Chọn câu trả lời: a trình phát triển phần mềm hướng đối tượng b trình xử lý c mô hình d ký pháp thống e phần mềm 2.7 Chọn từ danh sách thuật ngữ thích hợp để điền vào chỗ [(…)] đoạn văn mô tả khái niệm lớp Đối tượng thể [(1)] Lớp mô tả nhóm đối tượng có [(2)], có chung [(3)], có [(4)] với đối tượng lớp khác có chung ngữ nghĩa hệ thống [(1)] chế sử dụng để phân loại đối tượng hệ thống Lớp thường xuất dạng [(5)] tài liệu mô tả toán hay thảo luận với người sử dụng Cũng đối tượng, lớp nhóm thực thể có giới thực, có lớp khái niệm trừu tượng có lớp đưa vào thiết kế để phục vụ cho cài đặt hệ thống, v.v Chọn câu trả lời: a hành vi ứng xử b mối quan hệ c lớp 127 d tính chất (thuộc tính) giống e danh từ chung [...]... cầu Quá trình phát triển một sản phẩm (Product Development Process) là quá trình định nghĩa ai làm cái gì, làm khi nào và như thế nào Quá trình xây dựng một sản phẩm phần mềm hoặc nâng cấp một sản phẩm đã có được gọi là quá trình phát triển phần mềm (Software Development Process) Hệ thống phần mềm được kiến tạo là sản phẩm của một loạt các hoạt động sáng tạo và có quá trình phát triển Quá trình phát triển. .. Oto.NguoiLai.bangLaiXe = True 2.6 Quá trình phát triển phần mềm Phần mềm là một sản phẩm được phát triển hay được kỹ nghệ hoá và được chế tạo tương tự như các sản phẩm công nghiệp (phần cứng) khác Phát triển phần mềm và chế tạo phần cứng cũng có những điểm tương đồng: đều là sản phẩm và chất lượng của chúng phụ thuộc nhiều vào thiết kế, hơn nữa lại phụ thuộc cơ bản vào con người Tuy nhiên phần mềm và phần cứng lại có... bảo trì và mở rộng, phát triển hệ thống sau này Tóm lại để xây dựng được những hệ thống phần mềm đáp ứng những yêu cầu trên, chúng ta cần phải:  Có một qui trình phát triển phần mềm thống nhất gồm các bước thực hiện rõ ràng, mà sau mỗi bước đều phải có các sản phẩm cụ thể;   Có các phương pháp và kỹ nghệ phù hợp với từng pha thực hiện phát triển phần mềm; Có công cụ để làm ra sản phẩm phần mềm theo... thống khác và bản thân nó lại có thể chứa một số các hệ thống con khác nhỏ hơn Công nghệ phần cứng phát triển nhanh cả về chất lượng và tốc độ xử lý với giá thành ngày một hạ trong khi giá phần mềm lại rất cao Để phát triển được những hệ thống phần mềm đáp ứng được những yêu cầu trên thì đòi hỏi phải áp dụng lý thuyết, kỹ nghệ, phương pháp và công cụ mới để tạo ra một qui trình phát triển phần mềm thống... đề mà người sử dụng yêu cầu Quá trình phát triển phần mềm được xác định thông qua tập các hoạt động cần thực hiện để chuyển đổi các yêu cầu của khách hàng (người sử dụng) thành hệ thống phần mềm Có năm bước chính cần thực hiện trong quá trình phát triển phần mềm: 1 Xác định các yêu cầu 2 Phân tích hệ thống 3 Thiết kế hệ thống 4 Lập trình và kiểm tra hệ thống 5 Vận hành và bảo trì hệ thống Có thể thực... cấp khả năng tích hợp với ClearCase và Microsoft Visual SourceSafe, v.v  Sử dụng các bộ tích hợp mô hình (Model Integator) để so sánh và kết hợp các mô hình, các đơn vị điều khiển được với nhau Bản thân UML không định nghĩa quá trình phát triển phần mềm, nhưng UML và Rose hỗ trợ rất hiệu quả trong cả quá trình xây dựng phần mềm Bài tập và câu hỏi 2.1 Vai trò của UML trong mô hình hoá hệ thống? 2.2... pháp hướng đối tượng và các ký hiệu của chúng trong UML 2.4 Quá trình phát triển phần mềm là gì, nêu các pha chính cần thực hiện theo cách tiếp cận hướng đối tượng 2.5 Tìm hiểu vai trò của Rational Rose trong quá trình phát triển phần mềm thống nhất 2.6 Chọn từ danh sách dưới đây những thuật ngữ thích hợp để điền vào các chỗ [(…)] trong đoạn văn mô tả về ngôn ngữ mô hình hoá UML UML là ngôn ngữ mô hình... thực hiện trong quá trình phát triển phần mềm thì trên 55% [10] các lỗi của phần mềm là do các yêu cầu của hệ thống chưa được phát hiện đầy đủ và chi phí cho việc sửa các lỗi đó ( để bảo trì hệ thống) chiếm tới trên 80% chi phí của cả dự án 2.6.2 Phân tích hệ thống hướng đối tượng Phân tích hướng đối tượng (Object Oriented Analysis - OOA): là một giai đoạn của quá trình phát triển phần mềm, trong đó... luận giữa các nhóm thành viên trong dự án phát triển phần mềm về những gì mà hệ thống sẽ phải thực hiện (và những gì nó không cần thực hiện)  Làm căn cứ cơ bản cho các bước tiếp theo trong quá trình phát triển phần mềm Muốn đạt được các mục tiêu trên thì quá trình phải thực hiện:  Hiểu rõ miền xác định của bài toán (Domain Understanding): Những người phát triển sẽ xây dựng hệ thống theo sự hiểu biết... thành phần của [(2)] UML được sử dụng để hiển thị, đặc tả, tổ chức, xây dựng và [(3)] các vật phẩm (artifacts) của [(4)], đặc biệt là phân tích, thiết kế dưới dạng các báo cáo, biểu đồ, bản mẫu hay các trang web, v.v UML là ngôn ngữ [(2)] hoá độc lập với các công nghệ phát triển [(5)] Chọn câu trả lời: a quá trình phát triển phần mềm hướng đối tượng b quá trình xử lý c mô hình d ký pháp thống nhất e phần

Ngày đăng: 04/04/2016, 00:53

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan