Giáo trình Phân tích, thiết kế hướng đối tượng với UML – PGS. TS. Đoàn Văn Ban
Tổng quan về giáo trình
Phân tích, thiết kế hướng đối tượng với UML của PGS. TS. Đoàn Văn Ban (NXB Đại học Quốc gia Hà Nội, 2004) là giáo trình phục vụ môn học "Phân tích, thiết kế hệ thống" trong chương trình đào tạo đại học và cao học ngành Công nghệ thông tin. Giáo trình được biên soạn dựa trên quá trình giảng dạy thực tế tại các cơ sở đào tạo như Đại học Quốc gia Hà Nội, Đại học Bách khoa Hà Nội, Đại học Khoa học Huế, Đại học Đà Nẵng và Đại học Thái Nguyên.
Mục tiêu học tập của giáo trình là trang bị cho người học phương pháp luận hướng đối tượng trong kỹ nghệ phần mềm; phương pháp sử dụng ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language) theo chuẩn của Tổ chức Quản lý Đối tượng (OMG); kỹ năng vận dụng quy trình phát triển phần mềm hợp nhất (Unified Process - UP/RUP); và kỹ năng sử dụng công cụ CASE (Rational Rose) để mô hình hóa, thiết kế kiến trúc, sinh mã trình tự động (C++, Java, Visual Basic) cùng thiết kế cơ sở dữ liệu hướng đối tượng (ObjectStore).
Cấu trúc giáo trình gồm 8 chương lý thuyết kết hợp thực hành và 1 phần phụ lục hướng dẫn giải bài tập lớn. Cách tiếp cận của tài liệu bám sát chu trình phát triển phần mềm lặp và tăng trưởng, dẫn dắt từ khâu khảo sát yêu cầu, mô hình hóa cấu trúc tĩnh, mô hình hóa động thái hành vi đến thiết kế chi tiết và ánh xạ sang mã nguồn. Điểm đặc thù của cuốn sách là sử dụng bài toán "Hệ thống quản lý bán hàng" (HBH) làm ví dụ minh họa xuyên suốt các chương, kết hợp chặt chẽ giữa lý thuyết mô hình hóa và thao tác thực hành trực tiếp trên phần mềm công cụ Rational Rose.
Nội dung kiến thức cốt lõi
Các chương/chủ đề chính
Nội dung giáo trình được phân bố qua các chương chính:
- Chương I: Phương pháp hướng đối tượng và quá trình phát triển hệ thống phần mềm: Trình bày định nghĩa, các đặc trưng cơ bản của hệ thống và phân loại phần mềm (Hệ thống thông tin quản lý - MIS, Hệ thống kỹ thuật, Hệ thống nhúng thời gian thực, Phần mềm hệ thống, Hệ thống tự động hóa văn phòng). So sánh 5 mô hình chu trình phát triển: Thác nước (Royce, 1970), Chữ V (AFCIQ), Tăng trưởng (D. Graham, 1989) và Xoắn ốc (Boehm, 1988). Phân tích sự khác biệt bản chất giữa cách tiếp cận hướng chức năng (hướng thủ tục) và cách tiếp cận hướng đối tượng; xác định 6 bước cơ bản của quy trình phát triển phần mềm.
- Chương II: UML và quá trình phát triển phần mềm: Trình bày lịch sử hình thành UML (hợp nhất từ các phương pháp của Booch, Rumbaugh - OMT, và Jacobson - OOSE); cấu trúc Quy trình hợp nhất (RUP) theo 2 chiều (chiều thời gian gồm các pha Inception, Elaboration, Construction, Transition; chiều thành phần gồm các luồng công việc kỹ thuật); 5 quan sát kiến trúc (ca sử dụng, logic, thành phần, tương tranh, triển khai); 4 nhóm phần tử UML (cấu trúc, hành vi, nhóm, chú thích); các mối quan hệ (kết hợp, kết nhập, tổng quát hóa, phụ thuộc, hiện thực hóa); các khái niệm đối tượng, lớp, thuộc tính, thao tác, phương thức, tính đa xạ và 3 mức quản lý truy cập (+ public, # protected, - private).
- Chương III: Biểu đồ ca sử dụng phân tích các nhu cầu của hệ thống: Phương pháp xác định bài toán, trích xuất tác nhân (actor), thiết lập ca sử dụng (use case), lập kịch bản đặc tả yêu cầu chức năng và kỹ thuật tạo lập biểu đồ ca sử dụng trong công cụ Rational Rose.
- Chương IV: Phân tích hệ thống – Mô hình khái niệm và biểu đồ lớp: Kỹ thuật xác định các lớp đối tượng trong không gian bài toán, thiết lập các mối quan hệ kết hợp, bản số (multiplicity), mẫu rập khuôn (stereotype), thuộc tính, phương thức, từ điển thuật ngữ và xây dựng biểu đồ lớp khái niệm cho hệ thống quản lý bán hàng HBH.
- Chương V: Mô hình động thái: Các biểu đồ tương tác và hành động trong hệ thống: Kỹ thuật mô hình hóa hành vi hệ thống thông qua việc trao đổi thông điệp; phương pháp xây dựng Biểu đồ trình tự (Sequence Diagram), Biểu đồ trạng thái (Statechart Diagram), Biểu đồ hoạt động (Activity Diagram), thiết lập các hợp đồng hoạt động (operation contracts) và thực hành trên Rational Rose.
- Chương VI: Thiết kế các biểu đồ cộng tác và biểu đồ thành phần của hệ thống: Xây dựng Biểu đồ cộng tác (Collaboration Diagram), áp dụng các mẫu gán trách nhiệm để tinh chỉnh hành vi, hoàn thiện thiết kế biểu đồ lớp chi tiết cho bài toán HBH trên Rational Rose.
- Chương VII: Kiến trúc hệ thống và phát sinh mã trình: Thiết lập kiến trúc phần mềm, xây dựng Biểu đồ thành phần (Component Diagram) và Biểu đồ triển khai (Deployment Diagram); quy tắc ánh xạ mô hình thiết kế sang định nghĩa lớp và hàm trong C++/Java; kỹ thuật kỹ nghệ thuận (forward engineering) để phát sinh mã nguồn tự động bằng công cụ Rational Rose.
- Chương VIII & Phụ lục: Nguyên lý thiết kế cơ sở dữ liệu hướng đối tượng (ứng dụng hệ quản trị ObjectStore) và tài liệu hướng dẫn thực hiện 4 đồ án bài tập lớn: (1) Hệ thống rút tiền tự động ATM, (2) Hệ thống điều khiển thang máy, (3) Hệ thống quản lý thư viện, (4) Hệ thống quản lý đăng ký học tập.
Sơ đồ tiến trình logic nội dung:
[Yêu cầu & Biểu đồ Ca sử dụng] (Chương III)
[Mô hình khái niệm & Biểu đồ Lớp] (Chương IV)
[Mô hình động thái: Trình tự, Trạng thái, Hoạt động] (Chương V)
[Thiết kế Biểu đồ Cộng tác & Chi tiết Lớp] (Chương VI)
[Kiến trúc Thành phần, Triển khai & Phát sinh Mã trình] (Chương VII)
[Thiết kế CSDL Hướng đối tượng & Cài đặt Đồ án] (Chương VIII & Phụ lục)
Kiến thức nền tảng được xây dựng
- Lý thuyết hệ thống và trừu tượng hóa: Vận dụng nguyên lý "chia để trị" và nguyên lý trừu tượng hóa trong việc nhận thức các hệ thống thông tin phức tạp; cơ chế bao gói (encapsulation), che giấu thông tin (information hiding), tính kế thừa (inheritance) và tính đa xạ (polymorphism) nhằm loại bỏ biến toàn cục và giảm thiểu sự phụ thuộc giữa các mô-đun.
- Mô hình phát triển phần mềm hợp nhất: Xây dựng hệ thống theo quy trình lặp và tăng trưởng (Iterative and Incremental Development), lấy kiến trúc làm trọng tâm và được điều khiển bởi các ca sử dụng (use-case driven).
- Khung chuẩn hóa mô hình UML: Nắm vững ngữ nghĩa và cú pháp đồ họa của hệ thống biểu đồ UML chuẩn, bao gồm cả mô hình tĩnh (lớp, thành phần, triển khai) và mô hình động (trình tự, cộng tác, trạng thái, hoạt động).
Kỹ năng phát triển
- Kỹ năng kỹ thuật (Technical skills): Thao tác thành thạo công cụ CASE Rational Rose để vẽ biểu đồ, quản lý thuộc tính mô hình, cấu hình các mẫu rập khuôn (stereotypes), thực hiện phát sinh mã trình tự động (code generation) sang các ngôn ngữ C++, Java và ánh xạ cấu trúc dữ liệu sang ObjectStore.
- Kỹ năng phân tích (Analytical skills): Khả năng phân rã bài toán thế giới thực thành các thực thể đối tượng tự chứa; trích xuất chính xác tác nhân và kịch bản ca sử dụng từ tài liệu mô tả nghiệp vụ; thiết lập ràng buộc bản số và quan hệ cấu trúc giữa các lớp.
- Kỹ năng thực hành đồ án (Practical competencies): Khả năng lập tài liệu phân tích thiết kế hoàn chỉnh cho các hệ thống phần mềm thuộc nhiều lĩnh vực khác nhau: từ hệ thống thông tin quản lý (bán hàng, thư viện, đăng ký học tập) đến hệ thống nhúng, điều khiển thời gian thực (ATM, điều khiển thang máy).
Phương pháp giảng dạy và học tập
Cách tiếp cận sư phạm
Giáo trình áp dụng phương pháp tiếp cận đối sánh và hình thức hóa từng bước:
- Phần mở đầu đối chiếu có hệ thống giữa phương pháp hướng chức năng truyền thống và phương pháp hướng đối tượng để làm rõ sự khác biệt về cách xử lý dữ liệu và cấu trúc giải thuật.
- Các khái niệm trừu tượng của UML được diễn giải tuần tự từ khái niệm ngôn ngữ tự nhiên -> ký hiệu trực quan UML -> cấu trúc cài đặt trong mã nguồn lập trình.
Hệ thống bài tập và Case study
- Case study xuyên suốt: Bài toán "Hệ thống quản lý bán hàng" (HBH) xuất hiện liên tục từ Chương IV đến Chương VII, cho phép người học theo dõi tiến trình chuyển đổi của cùng một tập đối tượng qua các giai đoạn phân tích khái niệm, mô hình hóa tương tác, thiết kế chi tiết và sinh mã C++.
- Hệ thống đồ án trong Phụ lục: Cung cấp 4 đề tài bài tập lớn có cấu trúc hoàn chỉnh để sinh viên làm mẫu hoặc thực hiện đồ án môn học:
- Hệ thống rút tiền tự động ATM: Đặc tả ca sử dụng, biểu đồ trình tự giao dịch, thiết kế lớp chi tiết, biểu đồ thành phần và triển khai.
- Hệ thống điều khiển thang máy: Mô hình động thái, biểu đồ trạng thái cảm biến/buồng thang, biểu đồ trình tự và thiết kế lớp.
- Hệ thống quản lý thư viện: Mô hình hóa luồng mượn/trả sách, biểu đồ trạng thái tài liệu, thiết kế kiến trúc hệ thống.
- Hệ thống quản lý đăng ký học tập: Đặc tả yêu cầu bài toán, phân tích tác nhân sinh viên/phòng đào tạo và thiết lập các ca sử dụng.
Thực hành và Đánh giá
- Thực hành công cụ: Cuối các chương III, IV, V, VI, VII đều có mục hướng dẫn thực hành riêng trên phần mềm Rational Rose, giúp người học chuyển đổi các biểu đồ lý thuyết thành các mô hình kỹ thuật số có khả năng sinh mã.
- Phương pháp đánh giá: Đánh giá thông qua hệ thống "Câu hỏi và bài tập" cuối mỗi chương (tập trung vào kiểm tra khả năng phân biệt khái niệm, thiết lập quan hệ lớp, đọc hiểu biểu đồ tương tác) kết hợp với nghiệm thu hồ sơ phân tích thiết kế của bài tập lớn.
- Hướng dẫn tự học: Sinh viên có thể tự học bằng cách cài đặt công cụ Rational Rose, vẽ lại các biểu đồ mẫu của hệ HBH theo hướng dẫn, sau đó tự giải quyết 4 bài toán trong phần Phụ lục theo quy trình đã được chuẩn hóa.
Điểm nổi bật và cập nhật
- Chuẩn hóa phương pháp luận mô hình hóa: Giáo trình hệ thống hóa toàn bộ các ký pháp và ngữ nghĩa của chuẩn UML (được OMG thông qua năm 1997), giúp người học tiếp cận ngôn ngữ mô hình hóa hợp nhất từ 3 trường phái lớn trước đó (Booch, OMT của Rumbaugh, OOSE của Jacobson), khắc phục sự phân tán và thiếu thống nhất về mặt ký hiệu trong kỹ nghệ phần mềm trước thập niên 90.
- Tích hợp công nghệ CASE và kỹ nghệ thuận (Forward Engineering): Không dừng lại ở việc vẽ biểu đồ hình thức trên giấy, giáo trình hướng dẫn việc chuyển đổi trực tiếp từ mô hình thiết kế UML sang khung mã nguồn chương trình hướng đối tượng (C++, Java, Visual Basic) thông qua Rational Rose.
- Mở rộng phạm vi sang CSDL hướng đối tượng: Bên cạnh mô hình phần mềm hướng đối tượng truyền thống, giáo trình đề cập đến việc lưu trữ đối tượng và thiết kế cơ sở dữ liệu hướng đối tượng thông qua hệ quản trị ObjectStore ở Chương VIII.
- Gắn kết với thực tiễn ứng dụng tại Việt Nam: Tài liệu đưa vào các dẫn chứng và bối cảnh ứng dụng thực tế tại Việt Nam vào giai đoạn biên soạn, tiêu biểu là các hệ thống thông tin quản lý hành chính nhà nước, dịch vụ công và các phần mềm tác nghiệp thuộc Đề án 112 của Chính phủ (giai đoạn 2001 - 2005).
Đối tượng sử dụng giáo trình
- Sinh viên đại học và học viên cao học: Giáo trình phục vụ trực tiếp cho sinh viên năm thứ 3 và năm thứ 4 chuyên ngành Công nghệ thông tin, Khoa học máy tính, Kỹ thuật phần mềm, Hệ thống thông tin quản lý tại các trường đại học kỹ thuật, cũng như học viên cao học cần tài liệu chuẩn hóa về phương pháp luận phân tích thiết kế hệ thống.
- Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần nắm vững kiến thức về Nhập môn tin học, Cấu trúc dữ liệu và giải thuật, và có kỹ năng lập trình căn bản với một ngôn ngữ lập trình hướng đối tượng (như C++, Java hoặc Object Pascal).
- Giảng viên: Tài liệu cung cấp khung đề cương chi tiết, hệ thống ví dụ minh họa và ngân hàng bài tập lớn phục vụ việc giảng dạy học phần "Phân tích, thiết kế hệ thống hướng đối tượng", "Kỹ nghệ phần mềm" hoặc hướng dẫn đồ án môn học.
- Kỹ sư phần mềm và người tự học: Lập trình viên, chuyên viên phân tích nghiệp vụ (BA) và kiến trúc sư hệ thống có thể sử dụng giáo trình làm tài liệu tra cứu về cú pháp biểu đồ UML, quy trình RUP và phương pháp mô hình hóa kiến trúc phần mềm chuẩn tắc.
Câu hỏi thường gặp
1. Giáo trình này phù hợp với ai?
Giáo trình được biên soạn cho sinh viên đại học, học viên cao học ngành Công nghệ thông tin, giảng viên giảng dạy môn Phân tích thiết kế hệ thống, và các kỹ sư phần mềm cần tài liệu chuẩn mực về UML và quy trình RUP.
2. Cần kiến thức nền nào để học?
Người học cần có kiến thức nền tảng về cấu trúc dữ liệu, giải thuật và nguyên lý lập trình hướng đối tượng cơ bản (khái niệm lớp, đối tượng, hàm, biến) trên các ngôn ngữ như C++ hoặc Java.
3. Điểm khác biệt của giáo trình so với các tài liệu khác là gì?
Giáo trình duy trì bài toán "Hệ thống quản lý bán hàng" (HBH) xuyên suốt các giai đoạn phân tích thiết kế, gắn liền lý thuyết UML với công cụ tự động hóa Rational Rose và phát sinh mã nguồn C++, đồng thời cung cấp 4 kịch bản đồ án mẫu hoàn chỉnh trong phần Phụ lục.
4. Làm sao để tự học giáo trình hiệu quả?
Người học nên đọc song song phần lý thuyết cú pháp biểu đồ với việc thực hành vẽ lại các mô hình mẫu của hệ HBH trên Rational Rose, sau đó độc lập thực hiện phân tích và thiết kế cho 1 trong 4 đề tài được hướng dẫn ở phần Phụ lục (ATM, Thang máy, Thư viện, Đăng ký học tập).
5. Có tài liệu bổ trợ nào kèm theo giáo trình?
Giáo trình cung cấp danh mục 39 tài liệu tham khảo chuyên khảo trong nước và quốc tế (của các tác giả như Booch, Rumbaugh, Jacobson, Sommerville, Boehm), bảng tra cứu thuật ngữ chuyên ngành Anh - Việt và danh sách các từ viết tắt kỹ thuật ở cuối sách.
Kết luận
Giáo trình Phân tích, thiết kế hướng đối tượng với UML của PGS. TS. Đoàn Văn Ban cung cấp hệ thống lý thuyết chuẩn mực về phân tích thiết kế phần mềm hướng đối tượng theo chuẩn UML và quy trình hợp nhất RUP. Nội dung tài liệu kết hợp chặt chẽ giữa cơ sở khoa học máy tính, kỹ thuật mô hình hóa trực quan và công cụ CASE công nghiệp Rational Rose.
Lộ trình học tập đề xuất:
- Nghiên cứu bản chất hệ thống và so sánh tiếp cận hướng đối tượng (Chương I).
- Làm chủ các phần tử, quan hệ và khung nhìn UML (Chương II).
- Xây dựng mô hình ca sử dụng và mô hình lớp khái niệm (Chương III, IV).
- Thiết lập mô hình động thái tương tác và hành vi (Chương V, VI).
- Thiết kế kiến trúc triển khai, sinh mã trình C++/Java và CSDL ObjectStore (Chương VII, VIII).
- Thực hành hoàn thiện hồ sơ thiết kế cho các bài toán thực tế trong phần Phụ lục.