CHƯƠNG 4 : THIẾT KẾ PHẦN MỀM
1. Tổng quan về thiết kế phần mềm
1.1 Khái niệm và vai trò của thiết kế
Thiết kế là bước đầu tiên trong giai đoạn phát triển bất cứ một sản phẩm hay
hệ thống công nghệ nào. Nó được định nghĩa là ''tiến trình áp dụng nhiều kỹ thuật
và nguyên lý với mục đích xác định một thiết bị, một tiến trình hay một hệ thống dù chi tiết để cho phép thực hiện nó về mặt vật lý’’.
Mục tiêu của thiết kế là tạo ra một mơ hình hay biểu diễn một thực thể sau này sẽ được áp dụng. Tiến trình phát triển mơ hình này dựa trên kinh nghiệm trong việc
xây dựng các thực thể tương tự, một tập các nguyên lý và/hoặc các trực cảm hướng
dẫn cách tiến triển mơ hình này, một tập các tiêu chuẩn để đánh giá chất lượng và một tiến trình lặp lại để sau đó dẫn tới biểu diễn thiết kế chung cuộc.
Thiết kế phần mềm là trung tâm kỹ thuật của tiến trình cơng nghệ phần mềm và được áp dụng cho khuôn cảnh phát triển phần mềm bất kỳ. Khi các yêu cầu phần mềm được phân tích và đặc tả thì thiết kế phần mềm là một trong 3 hoạt động - thiết kế, lập trình và kiểm thử - những hoạt động cần để xây dựng và kiểm chứng phần mềm.
Luồng thông tin trong giai đoạn kỹ thuật được minh hoạ trên hình 6.1.
Các yêu cầu phần mềm được biểu thị bởi mơ hình thơng tin, chức năng và hành vi, là đầu vào cho bước thiết kế. Sử dụng một trong các phương pháp thiết kế, tạo thiết
kế dữ liệu, thiết kế kiến trúc, thiết kế thủ tục. Thiết kế dữ liệu chuyển mơ hình lĩnh vực thơng tin đã được tạo ra trong phân tích thành các cấu trúc dữ liệu cần thiết cho
việc cài đặt phần mềm sau này. Thiết kế kiến trúc định nghĩa một mối quan hệ giữa các thành phần cấu trúc chính của chương trình. Thiết kế thủ tục biến đổi các thành phần cấu trúc thành mơ tả thủ tục phần mềm. Chương trình gốc sẽ được sinh ra sau
đó việc kiểm thử được thực hiện để tích hợp và làm hợp lệ phần mềm.
Thiết kế phần mềm là một tiến trình qua đó các yêu cầu được dịch thành một biểu diễn phần mềm. Ban đầu biểu diễn mơ tả quan điểm của tồn bộ phần mềm. Việc làm mịn tiếp sau dẫn tới một biểu diễn thiết kế rất gần với chương trình gốc. Theo quan điểm quản lý dự án, thiết kế phần mềm được tiến hành theo hai bước. Thiết kế sơ bộ quan tâm tới việc dịch các yêu cầu thành kiến trúc dữ liệu và phần
mềm. Thiết kế chi tiết tập trung vào làm mịn biểu diễn kiến trúc để dẫn tới cấu trúc dữ liệu chi tiết và biểu diễn thuật toán cho phần mềm.
Trong phạm vi thiết kế sơ bộ và chi tiết, xuất hiện các hoạt động khác nhau. Bên
cạnh việc thiết kế dữ liệu, kiến trúc và thủ tục, nhiều ứng dụng hiện đại cịn có hoạt động thiết kế giao diện phân biệt. Thiết kế giao diện lập ra cách bố trí và cơ chế tương tác cho tương tác người - máy.
Khái niệm thiết kế được định nghĩa theo 2 cách sau:
• Thiết kế là quy trình định nghĩa ra kiến trúc, thành phần, interfaces và các
thuộc tính khác của một hệ thống hoặc một thành phần. Trong quy trình này, yêu
cầu phần mềm được phân tích để đưa ra một cấu trúc của phần mềm làm cơ sở để
làm ra phần mềm.
• Thiết kế là kết quả của một q trình. Nó mơ tả kiến trúc của một phần
mềm như là phần mềm được phân rã và tổ chức như thế nào trong các thành phần
và các interfaces giữa các thành phần như thế nào. Nó cũng có thể mơ tả các thành phần ở mức chi tiết cho phép có thể xây dựng được phần mềm.
Thiết kế phần mềm đóng vai trị quan trọng trong suốt quá trình thiết kế, những
kỹ sư phần mềm sẽ đề xuất các mơ hình tạo thành loại kế hoạch chi tiết cho giải
pháp để có thể thực hiện được. Chúng ta có thể phân tính và đánh giá những mơ
hình này có hay khơng phù hợp với những yêu cầu khác nhau. Chúng ta có thể sử
dụng kiểm tra và thẩm định thay thế những giải pháp và những đánh đổi
(tradeoffs). Cuối cùng chúng ta sử dụng những mơ hình kết quả để lên kế hoạch
các hoạt động phát triển tiếp theo như là: thẩm định và kiểm thử hệ thống, thêm
vào đó sử dụng chúng như là đầu vào hay là điểm bắt đầu của xây dựng và kiểm
thử phần mềm.
Trong danh sách chuẩn của vòng đời phát triển phần mềm như ISO/IEC/IEEE
Software Life Cycle Process, thiết kế phần mềm bao gồm 2 hoạt động tương ứng
với phân tích yêu cầu phần mềm và xây dựng phần mềm:
• Thiết kế kiến trúc (còn được gọi là thiết kế mức cao): là phát triển mức kiến trúc cao nhất và đưa ra cách tổ chức phần mềm và chỉ ra các thành phần khác nhau trong phần mềm
• Thiết kế chi tiết: chỉ ra chi tiết và đầy đủ về thành phần tạo điều kiện xây
dựng phần mềm trong pha sau đó
Đầu ra của thiết kế phần mềm sẽ được sử dụng cho quá trình xây dựng và kiểm
thử nên việc đánh giá một thiết kế có phù hợp hay khơng rất quan trọng, nếu một thiết kế sai sẽ dẫn đến tất cả các q trình sau đó cũng sai và cần phải chỉnh sửa
nếu thiết kế được chỉnh sửa.