Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 20

Thiết kế phần mềm

Nội dung

 Khái niệm thiết kế phần mềm


 Các hoạt động thiết kế
 Một số nguyên lý thiết kế cơ bản
 Một số thuật ngữ trong thiết kế
Phân biệt hai giai đoạn

 Phân tích và Đặc tả yêu cầu


– Hiểu rõ và mô tả đầy đủ Hệ thống làm gì
– Hành vi của hệ thống, những gì có thể quan sát
được từ bên ngoài
 Thiết kế phần mềm
– Mô tả giải pháp Hệ thống làm như thế nào
– Hành vi bên trong của hệ thống
Phân tích hay Thiết kế?

 Sử dụng mảng
 Sử dụng danh sách liên kết
 Hoạt động như Stack
 Hoạt động như Queue
 Sắp xếp theo thứ tự tăng dần
 Đầu vào là dãy các số tự nhiên
 Lần lượt so sánh từng phần tử với mỗi phần
tử còn lại, nếu nhỏ hơn thì đổi chỗ.
Khái niệm – thiết kế phần mềm

 Là tạo mô hình cài đặt của phần mềm


 Trình bày giải pháp, cách thức
 Đủ chi tiết để người lập trình biết phải làm
như thế nào
Vai trò – thiết kế phần mềm

 Là phương tiện để trao đổi thông tin, để đảm


bảo chất lượng
– Dễ hiểu, dễ sửa đổi hơn mã chương trình
– Cung cấp cái nhìn tổng thể; cũng có nhiều mức chi
tiết
 Nếu không có thiết kế hoặc thiết kế tồi:
– Làm tăng công sức viết mã
– Làm tăng công sức bảo trì
Mô đun hóa trong thiết kế phần mềm

 Phần mềm là tập các mô đun tương tác lẫn


nhau
 Mô đun hóa là chìa khóa cho phần mềm tốt
 Mục tiêu thiết kế:
– Xác định chức năng của các mô đun
– Cách thức cài đặt mô đun
– Tương tác giữa các mô đun
Nội dung thiết kế

1. Thiết kế kiến trúc


– Phân rã hệ thống ra thành các mô đun/hệ thống con
– Xác định các tương tác (giao diện) giữa các hệ con
2. Thiết kế cấu trúc dữ liệu
– Xây dựng mô hình biểu diễn, lưu trữ thông tin
3. Thiết kế thủ tục, thuật toán để thực hiện chức năng
– Xác định các bước thực hiện/tính toán
4. Thiết kế giao diện người dùng
– Giao diện thực đơn, giao diện dòng lệnh, kéo thả, …
Thiết kế kiến trúc

 Cung cấp cái nhìn tổng thể về hệ thống


 Mối quan hệ giữa các mô đun
 Giao diện giữa các mô đun
Thiết kế cấu trúc dữ liệu

 Thiết kế cấu trúc dữ liệu logic


– Định danh dữ liệu
– Xác định các mối quan hệ của dữ liệu
 Thiết kế cấu trúc dữ liệu vật lý
– Kiểu dữ liệu
– Kích cỡ
Thiết kế thủ tục, thuật toán

 Mô tả các bước hoạt động bên trong của mô


đun
 Một số phương pháp mô tả
– Giã mã (pseudo code)
– Biểu đồ luồng
Các khái niệm cơ bản trong thiết kế
 Trừu tượng hóa: ánh xạ một sự vật hiện tượng của
thế giới thực thành một khái niệm logic
 Làm mịn: chi tiết hóa các trừu tượng
 Mô đun hóa: phân chia dữ liệu và chức năng
 Kiến trúc: cấu trúc tổng thể của phần mềm
 Thủ tục: thuật toán để thực hiện chức năng
 Che dấu thông tin: điều khiển bằng giao diện
 Kết dính cao (High cohension)
 Ghép nối lỏng lẻo (Low coupling)
Trừu tượng hóa - Abstraction

 Ánh xạ một sự vật hiện tượng của thế giới


thực thành một khái niệm logic
– Bỏ qua các chi tiết không liên quan đến bài toán
Trừu tượng hóa - Abstraction

 Ánh xạ một sự vật hiện tượng của thế giới


thực thành một khái niệm logic
– Bỏ qua các chi tiết không liên quan đến bài toán
Làm mịn từng bước - refinement

 Thêm dần các chi tiết


Che dấu thông tin

 Chỉ cho phép bên ngoài tác động lên các thành
viên của một mô đun thông qua giao diện của
mô đun đó.
 Ví dụ (lập trình hướng đối tượng)
– Thiết lập private cho các thành viên dữ liệu
– Bên ngoài tác động lên dữ liệu thông qua các
phương thức setters, getters có phạm vi truy nhập
public
Một số nguyên lý thiết kế

 Thiết kế phải lần ngược lại được (tracebility)


mô hình phân tích
– Phải kiểm tra được sự thỏa mãn của các yêu cầu
– Các mô đun và các yêu cầu không phải là tương
ứng một – một
Một số nguyên lý thiết kế

 Mô hình thiết kế nên gần với triển khai


 Biểu diễn thiết kế phải có tính nhất quán và
tính tích hợp
– Thiết kế do nhiều người tiến hành song song
– Phải thống nhất cách biểu diễn, thống nhất giao
diện
Một số nguyên lý thiết kế
 Thiết kế cần có cấu trúc để dễ dàng thay đổi
– Phải được mô đun hóa, phân cấp
 Thiết kế không phải là mã hóa
– Thiết kế trừu tượng hơn mã hóa, đảm bảo dễ hiểu, dễ thay
đổi, có thể cài đặt bằng các ngôn ngữ khác nhau.
 Thiết kế cần được đánh giá chất lượng ngay trong khi
nó được tạo ra
– Tính kết dính, tính ghép nối, tính hiệu quả, …
 Thiết kế cần được thẩm định
– Thiếu chức năng, chức năng không rõ ràng, mâu thuẫn, …
Tiếp theo

 Các hoạt động thiết kế


– Thiết kế kiến trúc
– Thiết kế dữ liệu
– Thiết kế giao diện người dùng
 Thiết kế hướng đối tượng

You might also like