Môn học:
PHÂN TÍCH THIẾT KẾ PHẦN MỀM HƯỚNG ĐỐI TƯỢNG BẰNG UML Giáo viên: Thái Hải Dương
Mục tiêu môn học - Cung cấp kiến thức chuyên sâu liên quan đến các đối tượng chính yếu trong lĩnh vực công nghệ phần mềm hướng đối tượng. + Quy trình công nghệ + Phương pháp kỹ thuật thực hiện + Công cụ và môi trường triển khai phần mềm + … - Ngôn ngữ dùng để minh họa là ngôn ngữ mô hình hóa hợp nhất – UML (Unified Modeling Language).
Hình thức thi - Đồ án môn học (2 điểm) + Một nhóm từ 2 – 3 người + Nộp đĩa CD và báo cáo giấy vào ngày thi lý thuyết + Chỉ tính điểm đồ án môn học nếu bài thi viết được 3 điểm trở lên. + Cài đặt phần mềm bằng một ngôn ngữ lập trình HĐT (không bắt buộc) - Lý thuyết (8 điểm) + Vẽ 4 loại sơ đồ trong 9 loại + Chắc chắn sẽ có vẽ sơ đồ nghiệp vụ và sơ đồ lớp
Biểu mẫu đồ án -
Tên trường Tên đề tài đăng ký Lớp thực hiện Tên sinh viên trong nhóm Mã số sinh viên - Thời gian thực hiện
Đĩa CD đồ án -
File MS Word báo cáo viết File Rational Rose chứa tất cả các mô hình Chương trình nguồn File *.exe đã được biên dịch
Cấu trúc báo cáo viết - Yêu cầu dùng font Unicode - Phần xác định yêu cầu + Danh sách các nghiệp vụ của đề tài + Biểu mẫu và quy định của mỗi nghiệp vụ (nếu có) - Phần phân tích yêu cầu + Sơ đồ nghiệp vụ + Sơ đồ hoạt động toàn hệ thống
Cấu trúc báo cáo viết (tt) - Phần thiết kế phần mềm + Ứng với mỗi nghiệp vụ Sơ đồ lớp cho từng nghiệp vụ Sơ đồ trình tự Sơ đồ cộng tác Sơ đồ hoạt động cho từng nghiệp vụ (không bắt buộc) + Sơ đồ lớp cho từng gói + Sơ đồ lớp cho toàn hệ thống + Sơ đồ gói + Sơ đồ trạng thái của một số lớp quan trọng
Cấu trúc báo cáo viết (tt) - Phần cài đặt (thực thi) + Sơ đồ thành phần mức file chương trình nguồn cho từng nghiệp vụ + Sơ đồ thành phần mức file chương trình nguồn toàn hệ thống + Sơ đồ thành phần mức file nhị phân (nếu có cài đặt bằng một ngôn ngữ lập trình HĐT)
Cấu trúc báo cáo viết (tt) - Phần triển khai + Sơ đồ triển khai phần mềm - Ưu và khuyết điểm của báo cáo
Cấu trúc file Rational Rose - Khung nhìn Use Case View + Tạo các Actors + Tạo các Use Case + Vẽ Use Case Diagram + Vẽ Activity Diagram toàn hệ thống + Trong mỗi Use Case Vẽ Class Diagram cho từng Use Case Vẽ Sequence Diagram Vẽ Collaboration Diagram Vẽ Activity Diagram cho từng Use Case (không bắt buộc)
Cấu trúc file Rational Rose (tt) - Khung nhìn Logical View + Tạo các Package Tạo các Class Vẽ sơ đồ Statechart Diagram cho một số Class quan trọng Vẽ Class Diagram cho từng Package + Vẽ Package Diagram (trong một Class Diagram)
Cấu trúc file Rational Rose (tt) - Khung nhìn Component View + Vẽ Component Diagram - Khung nhìn Deployment View + Vẽ Deployment Diagram
Tài liệu tham khảo – – – – – – – –
Đặng Văn Đức (2002). Phân tích thiết kế hướng đối tượng bằng UML. NXB Giáo Dục. Nguyễn Văn Ba (2005). Phát triển hệ thống hướng đối tượng với UML 2.0 và C++. NXB ĐHQG Hà Nội. Huỳnh Văn Đức, Đoàn Thiện Ngân (2003). Giáo trình nhập môm UML. NXB Lao Động Xã Hội. B. Oestereich (2000). Developing Sofware with UML. Addison-Wesley. James Rumbaugh, Michael Blaha, Wiliam Premerlani, Frederick Eddy, Wiliam Lorensen (1991). Object-Oriented Modeling and Design. Prentice-Hall International Editions. Deitel and Deitel(2004) How to Program: Java, 6th edition. Prentice-Hall. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides(1995). Design Patterns. Addison-Wesley. Martin Fowler (2004), UML Distilled, 3rd edition. AddisonWesley.
Chương 1: TỔNG QUAN - Một số khái niệm cơ bản - Giới thiệu tổng quan về ngôn ngữ UML
Một số khái niệm cơ bản - Phần mềm - Các thành phần của phần mềm - Lớp phần mềm - Công nghệ phần mềm - Chất lượng phần mềm - Phần mềm hướng đối tượng - Quy trình công nghệ phần mềm - Quy trình xây dựng phần mềm hướng đối tượng
Phần mềm - Là công cụ bao gồm nhiều chức năng hỗ trợ người sử dụng thực hiện nghiệp vụ trên máy tính - Là một hệ thống gồm nhiều hàm xử lý phải cài đặt trên máy tính
Các thành phần của phần mềm - Thành phần giao tiếp (giao diện) - Thành phần xử lý - Thành phần dữ liệu
Lớp phần mềm - Là hệ thống các phần mềm trong cùng lĩnh vực hoạt động nào đó - Các phần mềm này thường có cấu trúc và chức năng tương tự như nhau
Công nghệ phần mềm - Là ngành khoa học nghiên cứu về việc xây dựng các phần mềm có chất lượng trong thời gian và chi phí hợp lý
Chất lượng phần mềm - Tính đúng đắn - Tính tiến hóa - Tính tiện dụng - Tính hiệu quả - Tính tương thích
- Tính dễ kiểm tra và phát hiện lỗi - Tính dễ bảo trì và nâng cấp - Tính dễ mang chuyển sang môi trường khác - Tính dễ tái sử dụng cho phần mềm khác
Phần mềm hướng đối tượng - Là một hệ thống bao gồm các đối tượng - Mỗi đối tượng bao gồm bên trong + Các thông tin nội bộ của đối tượng + Các hàm xử lý có liên quan
Quy trình công nghệ phần mềm - Các giai đoạn để xây dựng được phần mềm có chất lượng Mô hình thác nước: Xác định yêu cầu Phân tích yêu cầu Thiết kế phần mềm Thực hiện phần mềm Kiểm chứng phần mềm
Mô hình thác nước của PM - Phân tích: mô tả (phác thảo) các thành phần của phần mềm - Thiết kế: Mô tả (chi tiết) các thành phần của phần mềm - Lập trình: Thực hiện các thành phần của phần mềm theo thiết kế - Kiểm chứng: Kiểm tra và xác nhận tính đúng đắn của các thành phần phần mềm
Quy trình xây dựng PM HĐT - Tạo lập các đối tượng bên trong phần mềm tương ứng với các đối tượng bên ngoài của hệ thống thực tế - Điều khiển các đối tượng này thực hiện các nghiệp vụ liên quan đến đối tượng bên ngoài
Mô hình thác nước của PM HĐT - Phân tích: mô tả (phác thảo) các đối tượng của phần mềm - Thiết kế: Mô tả (chi tiết) các đối tượng của phần mềm - Lập trình: Thực hiện các đối tượng của phần mềm theo thiết kế - Kiểm chứng: Kiểm tra và xác nhận tính đúng đắn của các đối tượng phần mềm
Giới thiệu tổng quan về ngôn ngữ UML - Unified Modeling Language -
Tại sao phải xây dựng mô hình cho hệ thống? Lịch sử phát triển của UML Unified Modeling Language là gì? Ứng dụng của UML trong mô hình thác nước
Tại sao phải xây dựng mô hình cho hệ thống? - Mô hình hóa là cách xem xét một bài toán thông qua việc sử dụng các mô hình - Mô hình dùng để hiểu rõ bài toán, trao đổi thông tin giữa những người liên quan như khách hàng, chuyên gia, người phân tích, người thiết kế... - Mô hình giúp cho việc xác định các yêu cầu tốt hơn, thiết kế rõ ràng hơn và khả năng bảo trì hệ thống cao hơn
Lịch sử phát triển của UML - Những năm đầu của thập kỷ 90 có rất nhiều phương pháp phân tích, thiết kế hệ thống HĐT với các ký hiệu riêng cho từng phương pháp. - Do các phương pháp chưa hoàn thiện nên người dùng rất phân vân trong việc chọn ra một phương pháp phù hợp nhất để giải quyết bài toán của họ. - Các phương pháp đã bắt đầu hợp nhất, nhưng các kí hiệu sử dụng ở các phương pháp vẫn còn nhiều điểm khác biệt. - Bằng cách hợp nhất các kí hiệu sử dụng trong khi phân tích, thiết kế của các phương pháp đó, UML cung cấp một nền tảng chuẩn trong việc phân tích thiết kế.
Lịch sử phát triển của UML (tt)
Unified Modeling Language là gì? - UML là ngôn ngữ dùng để trực quan hóa - UML là ngôn ngữ dùng để chi tiết hóa - UML là ngôn ngữ dùng để sinh ra mã ở dạng nguyên mẫu - UML là ngôn ngữ dùng để lập và cung cấp tài liệu - Mục đích chính của UML là để xây dựng mô hình cho các hệ thống phần mềm
Các sơ đồ quan trọng trong UML -
Sơ đồ nghiệp vụ (Use Case Diagram) Sơ đồ hoạt động (Activity Diagram) Sơ đồ lớp (Class Diagram) Sơ đồ trạng thái (Statechart Diagram) Sơ đồ gói (Package Diagram) Sơ đồ trình tự (Sequence Diagram) Sơ đồ cộng tác (Collaboration Diagram) Sơ đồ thành phần (Component Diagram) Sơ đồ triển khai (Deployment Diagram)
Ứng dụng của UML trong mô hình thác nước - Phân tích: Use Case Diagram, Activity Diagram - Thiết kế: Class Diagram, Package Diagram, Statechart Diagram, Sequence Diagram, Collaboration Diagram, Activity Diagram - Cài đặt: Component Diagram - Triển khai: Deployment Diagram