HỌC VIỆN KỸ THẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN ĐỀ CƯƠNG BÀI GIẢNG HỌC PHẦN: LẬP TRÌNH HƯỚNGĐỐITƯỢNG Bộ môn: Công nghệ phần mềm Giáo viên: 1) Phạm Thị Bích Vân Bài VII: Thiếtkế chương trình theo hướnghướngđốitượng Thời lượng: tiết (GV giảng: 3; thảo luận: 3) Mục đích, yêu cầu: Giới thiệu hướng dẫn sinh viên thiếtkế chương trình theo hướnghướngđốitượng Nội dung: a) Nội dung chi tiết: • Giới thiệu Trong chương này, tìm hiểu cách thiếtkế chương trình theo hướngđối tượng, bước cần thiết bắt tay vào viết chương trình quan điểm thiếtkế thảo chương • Các giai đoạn phát triển hệ thống Có năm giai đoạn để phát triển hệ thống phần mềm theo hướngđối tượng: − Phân tích yêu cầu (Requirement analysis) − Phân tích (Analysis) − Thiếtkế (Design) − Lập trình (Programming) − Kiểm tra (Testing) • Phân tích yêu cầu Bằng việc tìm hiểu trường hợp sử dụng (use case) để nắm bắt yêu cầu khách hàng, vấn đề cần giải Qua trường hợp sử dụng này, nhân tố bên có tham gia vào hệ thống mô hình hóa tác nhân Mỗi trường hợp sử dụng mô tả văn bản, đặc tả yêu cầu khách hàng • Phân tích Từ đặc tả yêu cầu trên, hệ thống bước đầu mô hình hóa khái niệm lớp, đốitượng chế để diễn tả hoạt động hệ thống Trong giai đoạn phân tích mô tả lớp lĩnh vực vấn đề cần giải không sâu vào chi tiết kỹ thuật • Thiếtkế Trong giai đoạn thiết kế, kết trình phân tích mở rộng thành giải pháp kỹ thuật Một số lớp thêm vào để cung cấp sở hạ tầng kỹ thuật lớp giao diện, lớp sở liệu, lớp chức năng, … • Lập trình Đây gọi bước xây dựng, giai đoạn đặc tả chi tiết kết giai đoạn thiếtkế Các lớp bước thiếtkế chuyển thành mã nguồn theo ngôn ngữ lập trình theo hướngđốitượng • Kiểm tra − Trong giai đoạn kiểm tra, có bốn hình thức kiểm tra hệ thống: Kiểm tra đơn thể (unit testing) dùng kiểm tra lớp nhóm đơn Kiểm tra tính tích hợp (integration testing), kết hợp với thành phần lớp để kiểm tra xem chúng hoạt động với có không Kiểm tra hệ thống (system testing) để kiểm tra xem hệ thống có đáp ứng chức mà người dùng yêu cầu không Bộ môn Công nghệ phần mềm − Kiểm tra tính chấp nhận được(acceptance testing), việc kiểm tra thực khách hàng, việc kiểm tra thực giống kiểm tra hệ thống • Cách tìm lớp Lớp nên tìm từ phạm vi toán cần giải quyết, tên lớp nên đặt tên đốitượng thực mà biểu diễn Để tìm lớp cho toán, cần trả lời câu hỏi sau: − Có thông tin cần lưu trữ hay phân tích không? Nếu có thông tin cần phải lưu trữ, biến đổi, phân tích xử lý lớp dự định cần xây dựng − Có hệ thống bên bên hay không? Hệ thống xem lớp mà hệ thống chứa tương tác với − Có mẫu thiết kế, thư viện lớp, thành phần, … hay không? Các thành phần xây dựng từ project trước đó, từ đồng nghiệp nhà sản xuất? − Có thiết bị mà hệ thống phải đáp ứng? Bất thiết bị nối với hệ thống chuyển thành lớp dự tuyển − Tác nhân đóng vai trò hệ thống? Các vai diễn nên xem lớp người sử dụng, khách hang, người điều khiển hệ thống,… • Các bước cần thiết để thiếtkế chương trình − Để thiếtkế chương trình theo hướngđối tượng, phải trải qua bốn bước sau, từ xây dựng phả hệ mang tính kế thừa mối quan hệ đối tượng: + Xác định dạng đốitượng (lớp) toán (định dang đối tượng) + Tìm kiếm đặc tính chung (dữ liệu chung) dạng đốitượng này, chúng chia sẻ + Xác định lớp sở dựa sở đặc tính chung dạng đốitượng + Từ lớp sở, sử dụng quan hệ tổng quát hóa để đặc tả việc đưa lớp dẫn xuất chứa thành phần, đặc tính không chung lại dạng đốitượng Bên cạnh đó, đưa lớp có quan hệ với lớp sở lớp dẫn xuất; quan hệ quan hệ kết hợp, quan hệ tập hợp lại, quan hệ phụ thuộc − Với bước có phả hệ quan hệ lớp Đối với hệ thống phức tạp hơn, cần phải phân tích để giải vấn đề đặt theo trật tự sau: + Phân tích cách cẩn thận đốitượng toán theo trật tự từ lên (bottom up) + Tìm tồn chung đối tượng, nhóm đặc tính lại để lớp sở + Tiếp tục theo hướng từ lên, thiếtkếđốitượng phù hợp − Bằng cách này, tiếp tục tìm đặc tính chung đốitượng + Sau cài đặt theo hướngđốitượng từ xuống cách cài đặt lớp sở chung + Tiếp tục cài đặt lớp dẫn xuất sở đặc tính chung nhóm đốitượng + Cho đến tất dạng đốitượng hệ thống cài đặt xong để phả hệ • Các ví dụ Ví dụ 1: Tính tiền lương nhân viên quan theo dạng khác Dạng người lao động lãnh lương từ ngân sách Nhà nước gọi cán bộ, công chức (dạng biên chế) Dạng người lao động lãnh lương từ ngân sách quan gọi người làm hợp đồng Như hệ thống có hai đối tượng: biên chế hợp đồng Bộ môn Công nghệ phần mềm + Hai loại đốitượng có đặc tính chung viên chức làm việc cho quan Từ tạo nên lớp sở để quản lý viên chức (lớp Nguoi) bao gồm mã số, họ tên lương + Sau xây dựng lớp lại kế thừa từ lớp sở trên: - Lớp dành cho cán bộ, công chức (lớp BienChe) gồm thuộc tính: hệ số lương, tiền phụ cấp chức vụ - Lớp dành cho người làm hợp đồng (lớp HopDong) gồm thuộc tính: tiền công lao động, số ngày làm việc tháng, hệ số vượt Ví dụ 2: Giả sử cuối năm học cần trao giải thưởng cho sinh viên xuất sắc giảng viên có nhiều công trình khoa học công bố tạp chí Các lớp phả hệ: lớp Nguoi quản lý hồ sơ cá nhân, lớp SinhVien quản lý sinh viên lớp GiangVien quản lý giảng viên + Lớp Nguoi: - Dữ liệu họ tên - Phương thức kiểm tra khả khen thưởng Đây phương thức ảo - Phương thức xuất Đây phương thức ảo + Lớp SinhVien: - Dữ liệu điểm trung bình - Phương thức kiểm tra khả khen thưởng - Phương thức xuất + Lớp GiangVien: - Dữ liệu điểm trung bình - Phương thức kiểm tra khả khen thưởng - Phương thức xuất Ví dụ 3: Giả sử cần phải tạo hình: hình tròn hình chữ nhật tô theo hai màu red blue Xây dựng phả hệ để quản lý hình Trước hết cần có lớp sở Shape để lưu trữ thông tin chung cho hình, sau hai lớp dẫn xuất Rectangle hình hình chữ nhật Circle hình tròn + Lớp Shape: - Tọa độ tâm - Màu đường biên - Màu tô - Phương thức thiết lập tô màu - Phương thức vẽ hình Đây phương thức ảo + Lớp Rectangle: - Chiều dài chiều rộng - Phương thức vẽ hình - Lớp Circle: - Bán kính - Phương thức vẽ hình b) Nội dung thảo luận: Cách trích rút lớp, phương thức thuộc tính lớp hiệu c) Nội dung tự học: Thực hành trích rút lớp, phương thức thuộc tính cho lớp với toán cụ thể d) Bài tập (bắt buộc, mở rộng): Bài Xác định lớp cho chương trình quản lý thư viện Bài Xác định lớp cho chương trình quản lý sinh viên, điểm Tài liệu tham khảo (sách, báo – chi tiết đến chương, mục, trang) • Giáo trình C++ & lập trình hướngđốitượng / Phạm Văn Ất (Chủ biên), Lê Trường Thông – Hà Nội : Hồng Đức, 2009 -495 trang Chương 10 • Object-Oriented Programming in C++ (4th Edition) / Robert Lafore Sams Publishing, 2002 Chapter 16 Câu hỏi ôn tập - Các giai đoạn phát triển hệ thống? Bộ môn Công nghệ phần mềm - Các bước cần thiết để thiếtkế chương trình theo hướngđốitượng ? - Cách tìm lớp? Bộ môn Công nghệ phần mềm