1. Trang chủ
  2. » Thể loại khác

Công nghệ Phần mềm (Introduction to Software Engineering) CHƯƠNG 7: Thiết kế phần mềm

80 2 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 3,35 MB

Nội dung

1 Nhập môn Công nghệ Phần mềm (Introduction to Software Engineering) CHƯƠNG Thiết kế phần mềm Mục tiêu của bài học Sinh viên trang bị kiến thức sau: - Các khái niệm liên quan tới Thiết kế phần mềm - Giới thiệu hai giai đoạn thiết kế phần mềm: thiết kế kiến trúc thiết kế chi tiết - Phân biệt tính móc nối (Coupling) tính kết dính (Cohesion) thiết kế phần mềm Nội dung Tổng quan thiết kế phần mềm Các khái niệm thiết kế phần mềm Thiết kế kiến trúc phần mềm Thiết kế chi tiết phần mềm Tính móc nối (Coupling) tính kết dính (Cohesion) 1.1 Khái niệm thiết kế phần mềm • Thiết kế tạo biểu diễn kiện hệ thống phần mềm cần xây dựng từ kết phân tích yêu cầu để tiếp tục thực giai đoạn tiến trình phát triển phần mềm • Kết pha thiết kế mơ hình thiết kế phần mềm • Mơ hình thiết kế đủ chi tiết để giai đoạn lập trình thực • Là phương tiện để trao đổi thông tin đảm bảo chất lượng • Mơ hình thiết kế dễ sửa đổi mã chương trình, cung cấp nhìn tổng thể đồng thời có nhiều mức chi tiết Mơ hình phân tích-> Mơ hình thiết kế These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009) Slides copyright 2009 by Roger Pressman 1.1 Khái niệm thiết kế phần mềm • Thiết kế xuất phát từ kết phân tích yêu cầu, giúp trả lời câu hỏi “Như nào?” • Mơ tả nhiều giải pháp, giúp đánh giá giải pháp, lựa chọn giải pháp tốt • Thiết kế thướng mô tả mức trừu tượng định, sử dụng mơ hình (khác với cài đặt chi tiết lập trình) • Nếu khơng có thiết kế thiết kế tồi: → làm tăng công sức viết mã chương trình, tăng cơng sức bảo trì, khó khăn cần sửa đổi, mở rộng 1.1 Khái niệm thiết kế phần mềm • Theo Mitch Kapor, người tạo Lotus 1-2-3, giới thiệu “Tuyên ngôn thiết kế phần mềm” Dr Dobbs Journal Thiết kế phần mềm tốt nên thể hiện: • Sự ổn định (Firmness): Một chương trình khơng nên có lỗi làm hạn chế chức • Tiện nghi (Commodity): Một chương trình nên phù hợp với mục đích định • Sự hài lịng (Delight): Trải nghiệm sử dụng chương trình nên làm hài lòng người dùng 1.1 Khái niệm thiết kế phần mềm • Các giai đoạn thiết kế: hoạt động thiết kế xuất mơ hình phát triển phần mềm khác nhau, gồm hai giai đoạn thiết kế chính: • Thiết kế kiến trúc / Thiết kế mức cao (high level design) • • • • • Mơ hình tổng thể hệ thống Cách thức hệ thống phân rã thành mô đun Mối quan hệ môdun Cách thức trao đổi thông tin mơdun Thực nhiều mức trừu tượng • Thiết kế chi tiết / Thiết kế mức thấp (low level design) • Thiết kế chi tiết lớp, module, thiết kế thuật toán, thiết kế liệu, thiết kế giao diện,… 10 Thiết kế thuật tốn • Là hoạt động thiết kế sát với việc coding • Cách tiếp cận: • Xem xét mơ tả thiết kế cho thành phần • Sử dụng tinh chỉnh bước để phát triển thuật tốn • Sử dụng lập trình có cấu trúc để thực logic có tính thủ tục • Sử dụng ‘phương pháp thống’ để chứng minh logic 66 Tinh chỉnh bước open walk to door; reach for knob; open door; walk through; close door repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat 67 Mơ hình biểu diễn thiết kế thuật tốn • Trình bày thuật toán mức độ chi tiết mà xem xét lại chất lượng • Tùy chọn: • Đồ họa (e.g flowchart, box diagram) • Mã giả (e.g., PDL) • Ngơn ngữ lập trình • Bảng định 68 Thiết kế liệu • Tìm kiếm biểu diễn logic cho phần tử liệu nhận diện giai đoạn phân tích yêu cầu • Thiết kế cấu trúc liệu chương trình sở liệu • Các tiêu chí thiết kế liệu • Khơng dư thừa liệu • Tối ưu hố khơng gian lưu trữ • Được biểu diễn mức trừu tượng khác • Mơ hình liệu quan niệm, mơ hình liệu logic, mơ hình liệu vật lý 69 Một số nguyên tắc thiết kế liệu • Nhận diện cấu trúc liệu tác vụ truy xuất • Chú ý sử dụng từ điển liệu • Trì hoãn thiết kế liệu mức thấp cuối giai đoạn • Che giấu biểu diễn bên cấu trúc liệu • Nên áp dụng kiểu ADT thiết kế lập trình 70 Nội dung Tổng quan thiết kế phần mềm Các khái niệm thiết kế phần mềm Thiết kế kiến trúc phần mềm Thiết kế chi tiết phần mềm Tính móc nối (Coupling) tính kết dính (Cohesion) 71 Chất lượng của thiết kế • Thế thiết kế tốt? • • • • Easy for Developing, Reading & Understanding Easy for Communication Easy for Extending (add new features) Easy for Maintenance 72 Chất lượng của thiết kế • Mỗi module có tính cố kết cao (high cohension) • Mỗi module đơn vị logic • Tồn module đóng góp thực mục tiêu • Liên kết lỏng lẻo (loose coupling) module • Ít ràng buộc, phục thuộc lẫn • Dễ hiểu • Định nghĩa rõ ràng • Các module quan hệ chúng 73 Cohesion và Coupling • Cohesion • Gắn kết đề cập đến mức độ mà phần tử mô-đun thuộc Tính gắn kết thước đo mức độ liên quan tập trung trách nhiệm mơ-đun đơn lẻ • Coupling • Ghép nối / Khớp nối phụ thuộc mức độ mà chương trình mơ-đun phụ thuộc vào mơ-đun khác “Loose coupling and high cohesion” 74 Sự gắn kết (cohesion) • Góc nhìn quy ước: • “Tư đơn lẻ” mô-đun: mục tiêu thiết kế chung việc tách mối quan tâm cho thấy mô-đun nên giải nhóm mối quan tâm • Góc nhìn hướng đối tượng: • Sự gắn kết nghĩa thành phần lớp đóng gói thuộc tính hoạt động liên quan chặt chẽ với với thân thành phần lớp 75 Sự gắn kết (cohesion) • Các mức gắn kết: • • • • • • • Chức Tầng Truyền thông Liên tục Thủ tục Phụ thuộc thời gian Lợi ích 76 Ghép nối (coupling) • Góc nhìn quy ước: • Là mức độ mà thành phần kết nối với thành phần khác với giới bên ngồi • Góc nhìn hướng đối tượng: • Một thước đo chất lượng mức độ kết nối lớp với lớp khác • Các mức ghép nối: • • • • • • • • • Nội dung Chung Điều khiển Đánh dấu Dữ liệu Lời gọi công thức Loại sử dụng Sự lồng ghép bao hàm Bên ngồi 77 Tổng kết • Tầm quan trọng thiết kế phần mềm phát biểu từ “chất lượng” • Thiết kế nơi chất lượng phần mềm nuôi dưỡng trình phát triển: cung cấp cách biểu diễn phần mềm xác nhận chất lượng, cách mà chuyển hóa cách xác u cầu khách hàng thành sản phẩm hay hệ thống phần mềm cuối • Thiết kế phần mềm cơng cụ giao tiếp làm sở để mơ tả cách đầy đủ dịch vụ hệ thống, để quản lý rủi ro lựa chọn giải pháp thích hợp 78 Tổng kết (2) • Thiết kế phần mềm phục vụ tảng cho bước kỹ nghệ phần mềm bảo trì • Khơng có thiết kế có nguy sản sinh hệ thống không ổn định - hệ thống thất bại • Một hệ thống phần mềm khó xác định chất lượng chừng chưa đến bước kiểm thử Thiết kế tốt bước quan trọng để đảm bảo chất lượng phần mềm 79 Thank you for your attentions! 80 ... Sinh viên trang bị kiến thức sau: - Các khái niệm liên quan tới Thiết kế phần mềm - Giới thiệu hai giai đoạn thiết kế phần mềm: thiết kế kiến trúc thiết kế chi tiết - Phân biệt tính móc nối (Coupling)... nhiều mức chi tiết Mơ hình phân tích-> Mơ hình thiết kế These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009) Slides copyright 2009 by... khăn cần sửa đổi, mở rộng 1.1 Khái niệm thiết kế phần mềm • Theo Mitch Kapor, người tạo Lotus 1-2 -3 , giới thiệu “Tuyên ngôn thiết kế phần mềm” Dr Dobbs Journal Thiết kế phần mềm tốt nên thể hiện:

Ngày đăng: 14/09/2022, 00:55

HÌNH ẢNH LIÊN QUAN

Mơ hình phân tích-> Mơ hình thiết kế - Công nghệ Phần mềm (Introduction to Software Engineering) CHƯƠNG 7: Thiết kế phần mềm
h ình phân tích-> Mơ hình thiết kế (Trang 7)
trong mơ hình phân tích, và nó phải đáp ứng tất cả các yêu cầu tiềm ẩn khách hàng mong muốn . - Công nghệ Phần mềm (Introduction to Software Engineering) CHƯƠNG 7: Thiết kế phần mềm
trong mơ hình phân tích, và nó phải đáp ứng tất cả các yêu cầu tiềm ẩn khách hàng mong muốn (Trang 11)
2.3 Mơ hình thiết kế - Công nghệ Phần mềm (Introduction to Software Engineering) CHƯƠNG 7: Thiết kế phần mềm
2.3 Mơ hình thiết kế (Trang 34)
Mơ hình biểu diễn thiết kế thuật tốn - Công nghệ Phần mềm (Introduction to Software Engineering) CHƯƠNG 7: Thiết kế phần mềm
h ình biểu diễn thiết kế thuật tốn (Trang 68)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN