Kiến thức cơ bản về thiết kế phần mềm
Thiết kế phần mềm là một quá trình chuyển đổi các yêu cầu của người dùng thành một số dạng phù hợp, giúp người lập trình viết mã và thực hiện phần mềm.
Để đánh giá các yêu cầu của người dùng, một tài liệu SRS (Đặc tả yêu cầu phần mềm) được tạo ra trong khi để mã hóa và triển khai, cần có các yêu cầu cụ thể và chi tiết hơn trong thuật ngữ phần mềm. Đầu ra của quá trình này có thể được sử dụng trực tiếp để thực hiện trong các ngôn ngữ lập trình.
Thiết kế phần mềm là bước đầu tiên trong SDLC (Vòng đời thiết kế phần mềm), nó chuyển nồng độ từ miền vấn đề sang miền giải pháp. Nó cố gắng chỉ định cách thực hiện các yêu cầu được đề cập trong SRS.
Cấp độ thiết kế phần mềm
Thiết kế phần mềm mang lại ba cấp độ kết quả:
- Architectural Design - Thiết kế kiến trúc là phiên bản trừu tượng cao nhất của hệ thống. Nó xác định phần mềm là một hệ thống có nhiều thành phần tương tác với nhau. Ở cấp độ này, các nhà thiết kế có được ý tưởng về miền giải pháp được đề xuất.
- High-level Design- Thiết kế cấp cao phá vỡ khái niệm 'một thực thể nhiều thành phần' của thiết kế kiến trúc thành cái nhìn ít trừu tượng hơn về các hệ thống con và mô-đun và mô tả sự tương tác của chúng với nhau. Thiết kế cấp cao tập trung vào cách hệ thống cùng với tất cả các thành phần của nó có thể được triển khai dưới dạng các mô-đun. Nó nhận biết cấu trúc mô-đun của mỗi hệ thống con và mối quan hệ và tương tác giữa chúng với nhau.
- Detailed Design- Thiết kế chi tiết đề cập đến phần thực hiện của những gì được coi là một hệ thống và các hệ thống con của nó trong hai thiết kế trước. Nó chi tiết hơn về các mô-đun và việc triển khai chúng. Nó xác định cấu trúc logic của từng mô-đun và các giao diện của chúng để giao tiếp với các mô-đun khác.
Mô-đun hóa
Mô-đun hóa là một kỹ thuật chia hệ thống phần mềm thành nhiều mô-đun rời rạc và độc lập, được mong đợi có khả năng thực hiện (các) nhiệm vụ một cách độc lập. Các mô-đun này có thể hoạt động như các cấu trúc cơ bản cho toàn bộ phần mềm. Các nhà thiết kế có xu hướng thiết kế các mô-đun sao cho chúng có thể được thực thi và / hoặc biên dịch riêng biệt và độc lập.
Thiết kế mô-đun vô tình tuân theo các quy tắc của chiến lược giải quyết vấn đề 'chia để trị', điều này là do có nhiều lợi ích khác đi kèm với thiết kế mô-đun của một phần mềm.
Lợi thế của mô-đun hóa:
- Các thành phần nhỏ hơn dễ bảo trì hơn
- Chương trình có thể được phân chia dựa trên các khía cạnh chức năng
- Mức độ trừu tượng mong muốn có thể được đưa vào chương trình
- Các thành phần có độ gắn kết cao có thể được sử dụng lại
- Có thể thực hiện đồng thời
- Mong muốn từ khía cạnh bảo mật
Đồng tiền
Ngược dòng thời gian, tất cả các phần mềm đều được thực thi tuần tự. Bằng cách thực thi tuần tự, chúng ta có nghĩa là lệnh được mã hóa sẽ được thực thi lần lượt, ngụ ý chỉ một phần của chương trình được kích hoạt tại bất kỳ thời điểm nào. Giả sử, một phần mềm có nhiều mô-đun, thì chỉ một trong số tất cả các mô-đun có thể được tìm thấy hoạt động tại bất kỳ thời điểm thực thi nào.
Trong thiết kế phần mềm, đồng thời được thực hiện bằng cách chia phần mềm thành nhiều đơn vị thực thi độc lập, như các mô-đun và thực thi chúng song song. Nói cách khác, tính đồng thời cung cấp khả năng cho phần mềm để thực thi nhiều phần mã song song với nhau.
Các lập trình viên và nhà thiết kế cần phải nhận ra các mô-đun đó, chúng có thể được thực hiện song song.
Thí dụ
Tính năng kiểm tra chính tả trong trình xử lý văn bản là một mô-đun của phần mềm, chạy dọc theo chính trình xử lý văn bản.
Khớp nối và liên kết
Khi một chương trình phần mềm được mô-đun hóa, các nhiệm vụ của nó được chia thành nhiều mô-đun dựa trên một số đặc điểm. Như chúng ta đã biết, các mô-đun là tập hợp các hướng dẫn được ghép lại với nhau để đạt được một số nhiệm vụ. Mặc dù chúng được coi là một thực thể đơn lẻ nhưng có thể tham chiếu lẫn nhau để làm việc cùng nhau. Có những thước đo để đo lường chất lượng của thiết kế các mô-đun và sự tương tác giữa chúng với nhau. Các biện pháp này được gọi là ghép nối và gắn kết.
Sự gắn kết
Sự gắn kết là một thước đo xác định mức độ tin cậy nội bộ trong các phần tử của một mô-đun. Tính liên kết càng lớn thì thiết kế chương trình càng tốt.
Có bảy loại liên kết, cụ thể là -
- Co-incidental cohesion -Đó là sự gắn kết ngẫu nhiên và không có kế hoạch, có thể là kết quả của việc chia nhỏ chương trình thành các mô-đun nhỏ hơn nhằm mục đích mô-đun hóa. Bởi vì nó không có kế hoạch, nó có thể gây nhầm lẫn cho các lập trình viên và thường không được chấp nhận.
- Logical cohesion - Khi các phần tử được phân loại một cách hợp lý được ghép lại với nhau thành một mô-đun, nó được gọi là sự gắn kết hợp lý.
- Temporal Cohesion - Khi các phần tử của mô-đun được tổ chức sao cho chúng được xử lý tại một thời điểm tương tự, nó được gọi là sự gắn kết theo thời gian.
- Procedural cohesion - Khi các phần tử của mô-đun được nhóm lại với nhau, được thực thi tuần tự để thực hiện một tác vụ, nó được gọi là liên kết thủ tục.
- Communicational cohesion - Khi các phần tử của mô-đun được nhóm lại với nhau, được thực thi tuần tự và hoạt động trên cùng một dữ liệu (thông tin), nó được gọi là sự gắn kết truyền thông.
- Sequential cohesion - Khi các phần tử của mô-đun được nhóm lại vì đầu ra của một phần tử này đóng vai trò là đầu vào cho phần tử khác, v.v., nó được gọi là liên kết tuần tự.
- Functional cohesion - Nó được coi là mức độ gắn kết cao nhất và rất được mong đợi. Các yếu tố của mô-đun trong liên kết chức năng được nhóm lại vì chúng đều đóng góp vào một chức năng được xác định rõ ràng. Nó cũng có thể được tái sử dụng.
Khớp nối
Khớp nối là một thước đo xác định mức độ tin cậy lẫn nhau giữa các mô-đun của chương trình. Nó cho biết các mô-đun giao thoa và tương tác với nhau ở cấp độ nào. Khớp nối càng thấp thì chương trình càng tốt.
Có năm cấp độ khớp nối, cụ thể là -
- Content coupling - Khi một mô-đun có thể truy cập trực tiếp hoặc sửa đổi hoặc tham chiếu đến nội dung của một mô-đun khác, nó được gọi là ghép mức nội dung.
- Common coupling- Khi nhiều mô-đun có quyền truy cập đọc và ghi đối với một số dữ liệu chung, nó được gọi là khớp nối chung hoặc khớp nối toàn cầu.
- Control coupling- Hai mô-đun được gọi là kết hợp điều khiển nếu một trong số chúng quyết định chức năng của mô-đun kia hoặc thay đổi luồng thực thi của nó.
- Stamp coupling- Khi nhiều mô-đun chia sẻ cấu trúc dữ liệu chung và hoạt động trên một phần khác nhau của nó, nó được gọi là ghép tem.
- Data coupling- Ghép dữ liệu là khi hai mô-đun tương tác với nhau bằng cách truyền dữ liệu (dưới dạng tham số). Nếu một mô-đun chuyển cấu trúc dữ liệu dưới dạng tham số, thì mô-đun nhận sẽ sử dụng tất cả các thành phần của nó.
Lý tưởng nhất là không có khớp nối nào được coi là tốt nhất.
Xác minh thiết kế
Đầu ra của quá trình thiết kế phần mềm là tài liệu thiết kế, mã giả, sơ đồ logic chi tiết, sơ đồ quy trình và mô tả chi tiết về tất cả các yêu cầu chức năng hoặc phi chức năng.
Giai đoạn tiếp theo, là triển khai phần mềm, phụ thuộc vào tất cả các kết quả đầu ra được đề cập ở trên.
Sau đó, nó trở nên cần thiết để xác minh đầu ra trước khi tiếp tục giai đoạn tiếp theo. Bất kỳ sai sót nào được phát hiện sớm càng tốt hoặc nó có thể không được phát hiện cho đến khi kiểm tra sản phẩm. Nếu kết quả đầu ra của giai đoạn thiết kế ở dạng ký hiệu chính thức, thì các công cụ liên quan của chúng để xác minh nên được sử dụng, nếu không, việc xem xét thiết kế kỹ lưỡng có thể được sử dụng để xác minh và xác nhận.
Bằng cách tiếp cận xác minh có cấu trúc, người đánh giá có thể phát hiện ra các khiếm khuyết có thể do bỏ qua một số điều kiện. Đánh giá thiết kế tốt là rất quan trọng để thiết kế phần mềm tốt, chính xác và chất lượng.