Bài giảng Công nghệ phần mềm: Chương 6 Thiết kế và hiện thực chương trình cung cấp cho người học những kiến thức như: Tổng quan về thiết kế và hiện thực phần mềm; Thiết kế hướng đối tượng sử dụng UML; Mẫu thiết kế; Vấn đề thực hiện. Mời các bạn cùng tham khảo!
Insert or Drag and Drop your Image THIẾT KẾ VÀ HIỆN THỰC CHƯƠNG TRÌNH Jens Martensson NỘI DUNG Tổng quan thiết kế thực phần mềm Thiết kế hướng đối tượng sử dụng UML Mẫu thiết kế Vấn đề thực Jens Martensson Tổng quan thiết kế thực phần mềm • Thiết kế thực phần mềm giai đoạn quy trình cơng nghệ phần mềm • Hoạt động thiết kế thực phần mềm ln xen kẽ • Thiết kế phần mềm hoạt động sáng tạo kỹ sư phần mềm phải xác định thành phần phần mềm mối quan hệ chúng, dựa yêu cầu khách hàng • Hiện thực phần mềm trình thực thiết kế chương trình Jens Martensson Tổng quan thiết kế thực phần mềm • • • Thơng thường, có giai đoạn thiết kế riêng biệt thiết kế mơ hình hóa ghi dạng bảng vẽ thiết kế Ngoài ra, có thiết kế từ lập trình viên phác họa sơ giấy cách giải vấn đề Tuy nhiên, cần mô tả chi tiết thiết kế hệ thống cách sử dụng UML ngôn ngữ mô tả thiết kế khác Jens Martensson Tổng quan thiết kế thực phần mềm • Một định quan trọng phải đưa giai đoạn đầu dự án phần mềm nên mua hay xây dựng phần mềm • Hiện nay, số lĩnh vực, có giải pháp đóng gói (COTS -Commercial off-the-shelf) gồm đầy đủ dịch vụ, sau điều chỉnh để đáp ứng nhu cầu người dùng Ví dụ, muốn thực hệ thống hồ sơ y tế, người dùng mua gói sử dụng bệnh viện Nó rẻ nhanh thay phát triển hệ thống theo ngơn ngữ lập trình thơng thường Jens Martensson Quy trình thiết kế hướng đối tượng • Quy trình thiết kế hướng đối tượng có cấu trúc liên quan đến việc phát triển mơ hình hệ thống khác • Quy trình thiết kế hướng đối tượng đòi hỏi nhiều nỗ lực để phát triển bảo trì, hệ thống nhỏ, điều khơng hiệu chi phí • Tuy nhiên, hệ thống lớn phát triển nhóm khác nhau, mơ hình thiết kế chế giao tiếp quan trọng Jens Martensson Quy trình thiết kế hướng đối tượng • Các giai đoạn xử lý: Có nhiều quy trình thiết kế hướng đối tượng khác phụ thuộc vào tổ chức sử dụng quy trình • Các hoạt động phổ biến quy trình thiết kế hướng đối tượng: • Xác định bối cảnh phương thức sử dụng hệ thống; • Thiết kế kiến trúc hệ thống; • Xác định đối tượng hệ thống chính; • Xây dựng mơ hình thiết kế; • Chỉ định giao diện đối tượng Jens Martensson 2.1 Ngữ cảnh hệ thống tương tác • • Hiểu mối quan hệ phần mềm thiết kế mơi trường bên ngồi điều cần thiết để định cách cung cấp chức hệ thống cần thiết cách cấu trúc hệ thống để giao tiếp với mơi trường Hiểu biết ngữ cảnh giúp thiết lập ranh giới (boundary) hệ thống định tính triển khai hệ thống tính hệ thống liên kết khác Jens Martensson 2.2 Mơ hình ngữ cảnh • • • Mơ hình ngữ cảnh hệ thống mơ hình cấu trúc thể hệ thống môi trường hệ thống phát triển Mô hình ngữ cảnh hệ thống đồ cấp cao hệ thống môi trường xung quanh, sử dụng xác định phạm vi hoạt động hệ thống Sơ đồ ngữ cảnh hệ thống gồm ba phần tử biểu đồ: Phần tử ngữ cảnh, thực thể bên luồng liệu Jens Martensson 2.2 Mơ hình ngữ cảnh • Ví dụ: Mơ hình ngữ cảnh hệ thống đặt hàng hiển thị tất hướng dẫn nội xử lý tự động Jens Martensson 10 2.4 Thiết kế thành phần hệ thống • Nodes: thực thể vật lý thực thi nhiều thành phần (components, subsystems) tệp thực thi • Một nút yếu tố phần cứng phần mềm • Ký hiệu UML GV: Từ Thị Xuân Hiền 31 Jens Martensson 2.4 Thiết kế thành phần hệ thống • Devices: • Ví dụ: Sơ đồ triển khai hệ thống gồm: • Một máy chủ web • Một máy chủ sở liệu • Máy mà người dùng xem trang web GV: Từ Thị Xuân Hiền 32 Jens Martensson Hiện thực phần mềm (Software Implementation) • Các phương pháp lập trình • Tài liệu phần mềm • Thách thức triển khai phần mềm Jens Martensson 33 3.1 Các phương pháp lập trình • Lập trình hướng cấu trúc: phương pháp lập trình logic, tiền thân lập trình hướng đối tượng (OOP) Lập trình có cấu trúc giúp chương trình rõ ràng, dễ hiểu dễ sửa đổi • Cách tiếp cận thiết kế từ xuống: hệ thống chia thành hệ thống thành phần module riêng biệt, module sử dụng lại chương trình khác • Sau module thử nghiệm riêng lẻ, tích hợp với module khác vào cấu trúc chương trình tổng thể Jens Martensson 34 3.1 Các phương pháp lập trình • Lập trình hướng chức năng: Đây phương pháp cận truyền thống ngành công nghiệp phần mềm đó, phần mềm xem tập hợp chương trình chức liệu giả lập Chương trình = thuật giải + cấu trúc liệu • • Ngơn ngữ lập trình chức dùng để xử lý ứng dụng tính tốn xử lý danh sách Lập trình chức dựa hàm tốn học Các ngơn ngữ lập trình chức phổ biến: Lisp, Python, vv Jens Martensson 35 3.1 Các phương pháp lập trình • • • • Lập trình hướng đối tượng: phương pháp lập trình mà theo giải pháp cho vấn đề lập trình mơ hình hóa tập hợp đối tượng hợp tác Các đối tượng bao gồm thuộc tính hành vi, tương tác với cách gửi thông điệp Phương pháp lập trình hướng đối tượng tập trung vào đối tượng logic cần thiết để thao tác chúng Phù hợp cho hệ thống lớn, phức tạp, có khả sử dụng lại mã, khả mở rộng hiệu Jens Martensson 36 3.1 Các phương pháp lập trình • • Phong cách lập trình: thiết lập quy tắc mã hóa để lập trình viên tuân thủ viết mã Khi nhiều lập trình viên làm việc dự án phần mềm, họ cần phải làm việc với mã chương trình viết nhà phát triển khác, đó, nhà phát triển phải tuân theo số phong cách lập trình tiêu chuẩn để mã hóa chương trình Jens Martensson 37 3.1 Các phương pháp lập trình • Phong cách lập trình: • Sử dụng hàm tên biến có liên quan đến tác vụ thực • Sử dụng thụt lề đặt vị trí • Chú thích cho code để thuận tiện cho người đọc • Cách trình bày code tổng thể cho mã chương trình đọc dễ hiểu tất thành viên, giúp việc gỡ lỗi giải lỗi dễ dàng • Ngồi ra, phong cách lập trình phù hợp giúp dễ dàng viết cập nhật tài liệu phần mềm Jens Martensson 38 3.2 Tài liệu phần mềm • • Tài liệu phần mềm phần quan trọng quy trình phần mềm Một tài liệu viết tốt cung cấp công cụ hữu ích, phương tiện lưu trữ thông tin cần thiết để biết quy trình phát triển phần mềm Tài liệu phần mềm cung cấp thông tin cách sử dụng sản phẩm Jens Martensson 39 3.2 Tài liệu phần mềm • Nội dung tài liệu phần mềm: • Tài liệu yêu cầu (Requirement documentation): • • • Cơng cụ cho nhà thiết kế phần mềm, nhà phát triển nhóm thử nghiệm để thực nhiệm vụ tương ứng họ Tài liệu chứa tất mô tả chức năng, phi chức hành vi phần mềm dự định Là tảng cho phần mềm phát triển sử dụng giai đoạn xác minh xác nhận Hầu hết trường hợp thử nghiệm xây dựng trực tiếp từ tài liệu yêu cầu Jens Martensson 40 3.2 Tài liệu phần mềm • Nội dung tài liệu phần mềm: • Tài liệu thiết kế phần mềm (Software Design documentation): cung cấp tất thông tin cần thiết để mã hóa triển khai, bao gồm nội dung: • Kiến trúc phần mềm cấp cao, • Chi tiết thiết kế phần mềm, • Sơ đồ luồng liệu, • Thiết kế sở liệu Jens Martensson 41 3.2 Tài liệu phần mềm • Nội dung tài liệu phần mềm: • Tài liệu kỹ thuật (Technical documentation): tạo trì nhà phát triển lập trình viên thực tế • • • Các tài liệu chứa thông tin mã chương trình Trong viết mã, lập trình viên đưa mục tiêu mã, viết nó, u cầu đâu, làm làm nào, tài nguyên khác mà mã sử dụng, v.v Làm tăng hiểu biết lập trình viên khác làm việc mã Nó tăng cường khả tái sử dụng giúp việc gỡ lỗi dễ dàng Jens Martensson 42 3.2 Tài liệu phần mềm • Nội dung tài liệu phần mềm: • Tài liệu người dùng (User documentation): • • Giải thích cách sản phẩm phần mềm nên hoạt động cách sử dụng để có kết mong muốn Các tài liệu bao gồm, quy trình cài đặt phần mềm, hướng dẫn cách làm, hướng dẫn sử dụng, phương pháp gỡ cài đặt tài liệu tham khảo đặc biệt để có thêm thông tin cập nhật giấy phép, Jens Martensson 43 3.3 Những thách thức triển khai phần mềm • Các thách thức mà nhóm phát triển phải đối mặt thực phần mềm: • Tái sử dụng mã: ngôn ngữ ngày trang bị thư viện khổng lồ Tuy nhiên, để giảm chi phí cho sản phẩm cuối cùng, ban quản lý tổ chức thích sử dụng lại mã tạo trước cho số phần mềm khác Do đó, lập trình viên phải đối mặt để kiểm tra tính tương thích định sử dụng lại mã Jens Martensson 44 3.3 Những thách thức triển khai phần mềm • Quản lý phiên - Mỗi phần mềm phát hành cho khách hàng, nhà phát triển phải trì tài liệu liên quan đến phiên cấu hình Tài liệu cần phải có độ xác cao có sẵn thời điểm • Target-Host - Chương trình phần mềm, phát triển tổ chức, cần thiết kế cho máy chủ khách hàng Nhưng đôi khi, thiết kế phần mềm hoạt động máy mục tiêu Jens Martensson 45 ... phần mềm ln xen kẽ • Thiết kế phần mềm hoạt động sáng tạo kỹ sư phần mềm phải xác định thành phần phần mềm mối quan hệ chúng, dựa yêu cầu khách hàng • Hiện thực phần mềm trình thực thiết kế chương. .. thiết kế thực phần mềm • Một định quan trọng phải đưa giai đoạn đầu dự án phần mềm nên mua hay xây dựng phần mềm • Hiện nay, số lĩnh vực, có giải pháp đóng gói (COTS -Commercial off-the-shelf) gồm... kế thực phần mềm Thiết kế hướng đối tượng sử dụng UML Mẫu thiết kế Vấn đề thực Jens Martensson Tổng quan thiết kế thực phần mềm • Thiết kế thực phần mềm giai đoạn quy trình cơng nghệ phần mềm