Tiến trình thiết kế

Một phần của tài liệu Giáo trình nhập môn công nghệ phần mềm (nghề lập trình viên máy tính cao đẳng) (Trang 82 - 85)

5. DataGrid

1.2. Tiến trình thiết kế

Thiết kế có cấu trúc cho phép biến đổi thuận tiện từ các biểu diễn thông tin như biểu đồ luồng dữ liệu có trong bản Đặc tả yêu cầu phần mềm sang mô tả về cấu trúc chương trinh. Việc biến đổi từ luồng thông tin sang cấu trúc thông tin được thực hiện như một phần của tiến trình gồm 5 bước:

■ Thiết lập kiểu luồng thông tin.

■ Chi ra biên giới luồng.

■ Ánh xạ DT’D vào cấu trúc chương trình

■ Xác định các cấp bậc điều khiển theo cách tạo nhân to

■ Cấu trúc kết quả được làm mịn bằng cách dùng các phương tiện thiết kế và trực cảm.

Khi luồng thông tin là bộ dẫn lái cho cách tiếp cận ánh xạ ở bước 3.

1.3. Chất lượng thiết kế

Chất lượng phần mềm là gì?

Chất lượng phần mềm là phần mềm có số lượng lỗi chấp nhận được, được phân phối đúng thời hạn và trong ngân sách, đáp ứng các yêu cầu hoặc kỳ vọng, và có thể duy trì được.

Tiêu chuẩn ISO 8402-1986 định nghĩa chất lượng là một tổng số các tính năng và đặc điểm của sản phẩm hoặc dịch vụ mang khả năng đáp ứng các nhu cầu đã nêu hoặc ngụ ý.

Các khía cạnh chính của phần mềm chất lượng cho khách hàng bao gồm: · Thiết kế đẹp · Chức năng tốt – phần mềm hoạt động tốt · Đáng tin cậy - mức độ sự cố hoặc lỗi chấp nhận được · Tính nhất quán · Bền - kéo dài · Dịch vụ hậu mãi tốt · Giá trị của đồng tiền Thiết kế tốt là gì Sẽ rất quan trọng để có một thiết kế tốt. Ứng dụng hoặc sản phẩm phải đáp ứng tất cả các thông số kỹ thuật yêu cầu và đồng thời nó phải thân thiện với người dùng. Các khách hàng về cơ bản bị thu hút bởi ngoại hình đẹp và phong cách của ứng dụng. Sự kết hợp màu sắc phù hợp, kích thước phông chữ và kiểu dáng của văn bản và nút là rất quan trọng.

Chức năng tốt - nó hoạt động tốt

Cùng với vẻ ngoài đẹp mắt của ứng dụng hoặc sản phẩm, nó rất quan trọng là chức năng phải còn nguyên vẹn. Tất cả các tính năng và chức năng của chúng nên hoạt động như mong đợi. Không nên có bất kỳ sai lệch nào trong kết quả thực tế và kết quả mong đợi.

Đáng tin cậy - mức độ sự cố hoặc thất bại chấp nhận được

Sau khi tester đã kiểm tra tất cả các tính năng và chức năng của phần mềm, điều rất quan trọng là ứng dụng hoặc sản phẩm phải đáng tin cậy. Ví dụ: Có một ứng dụng lưu hồ sơ của sinh viên. Ứng dụng này sẽ lưu tất cả các hồ sơ của sinh viên và không nên thất bại sau khi nhập 100 hồ sơ. Điều này được gọi là độ tin cậy.

Tính nhất quán

Phần mềm nên có tính nhất quán trên toàn bộ ứng dụng hoặc sản phẩm. Phần mềm đơn có thể là đa chiều. Điều rất quan trọng là tất cả các kích thước khác nhau phải hành xử một cách nhất quán.

Bền - kéo dài

Phần mềm phải bền. Ví dụ: nếu phần mềm đang được sử dụng trong một năm và số lượng dữ liệu đã vượt quá 5000 bản ghi thì không nên thất bại nếu số lượng bản ghi tăng. Sản phẩm hoặc ứng dụng phần mềm nên tiếp tục hoạt động theo cùng một cách mà không có bất kỳ sự phá vỡ chức năng nào.

Dịch vụ hậu mãi tốt

Sau khi sản phẩm được chuyển đến khách hàng, bảo trì sẽ được đưa vào hình ảnh. Điều rất quan trọng là cung cấp dịch vụ bán hàng tốt để giữ cho khách hàng hài lòng. Ví dụ, nếu sau khi sử dụng sản phẩm trong sáu tháng, khách hàng nhận ra một số thay đổi cho ứng dụng thì những thay đổi đó nên được thực hiện nhanh nhất có thể và nên được gửi đến khách hàng đúng thời gian với chất lượng.

Giá trị của đồng tiền

Nó luôn luôn quan trọng để cung cấp sản phẩm cho khách hàng có giá trị đồng tiền. Sản phẩm phải đáp ứng các thông số kỹ thuật yêu cầu. Nó nên hoạt động như mong đợi, nên thân thiện với người dùng. Chúng tôi nên cung cấp dịch vụ tốt cho khách hàng. Khác với các tính năng được đề cập trong thông số kỹ thuật yêu cầu, một số chức năng bổ sung có thể được cung cấp cho khách hàng mà họ có thể không nghĩ tới. Những chức năng bổ sung này sẽ làm cho sản phẩm của họ thân thiện hơn và dễ sử dụng hơn. Điều này cũng thêm giá trị đồng tiền.

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

2.1. Khái niệm và vai trò

Một số vấn đề quan trọng phải được xử lý trong khi thiết kế phần mềm. Đặc biệt là những lo ngại về chất lượng phần mềm mà có thể kể đến như: hiệu suất, bảo mật, độ tin cậy, khả năng sử dụng, vv... Một số vấn đề quan trọng khác là làm thế nào để phân rã, tổ chức và đóng gói những thành phần phần mềm. Đây là nguyên tắc cơ bản mà tất các các phương pháp thiết kế phải giải quyết nó bằng cách này hay cách khác. Ngược lại, những vấn đề “liên quan đến các khía cạnh của các hành vi phần mềm mà lại không nằm trong miền ứng dụng mà nằm ở các miền khác có liên quan” Những vấn đề đó thường xuyên chồng chéo với các chức năng của hệ thống và được gọi những khía cạnh mà đa phần không phải là đơn vị phân rã của phần mềm mà là thuộc tính ảnh hưởng đến hiệu suất hoặc ngữ nghĩa của các thành phần một cách có hệ thống.

Đồng thời (concurrency)

Đồng thời là nhiều việc xảy ra tại cùng một thời điểm. Thiết kế để có tính đồng thời có liên quan đến phân rã phần mềm thành quy trình, nhiệm vụ, quá trình và đối phó với các vấn đề liên quan đến tính hiệu quả, tính nguyên tố, đồng bộ hóa và lập kế hoạch. Thiết kế này đảm bảo dễ phân chia công việc cũng như có thể hoàn thành công việc trong thời gian ngắn nhất.

Điều khiển và xử lý các sự kiện

Vấn đề thiết kế này liên quan tới làm thế nào tổ chức dữ liệu và dòng dữ liệu cũng như làm thế nào để xử lý các sự kiện tạm thời và phản xạ qua các cơ chế lời gọi ngầm và gọi lại.

Dữ liệu bền vững (data persistence)

Phân phối các thành phần

Vấn đề của thiết kế này liên quan đến làm thế nào để phân phối các phần mềm trên phần cứng ( bao gồm phần cứng máy tính và phần cứng mạng), làm thế nào các thành phần giao tiếp được với nhau và làm thế nào tầng giữa có thể được sử dụng để đối phó với không tương thích phần mềm.

Lỗi và x lý ngoi l và li dung np (error and exception handling and fault tolerance)

Vấn đề của thiết kế này liên quan đến làm thế nào để phòng chống, chịu đựng và các xử lý lỗi và đối phó với các điều kiện ngoại lệ

Tương tác và trình bày (Interaction and presentation)

Vấn đề thiết kế này liên quan tới làm thế nào để cấu trúc và tổ chức tương tác với những người dùng và biểu diễn thông tin ( ví dụ, chia giao diện và khung nhìn logic sử dụng hướng tiếp cận MVC)

Chú ý rằng chủ đề này không chỉ chi tiết giao diện người dùng, đó là nhiệm vụ của thiết kế giao diện người dùng

Bảo mật (sercurity)

Thiết kế cho bảo mật liên quan đến làm thế nào để ngăn chặn tiết lộ trái phép, sáng tạo, thay đổi, xóa, hoặc từ chối truy cập đến thông tin từ các nguồn khác. Nó cũng quan tâm làm thế nào để chịu được các cuộc tấn công bảo mật hoặc sự xâm phạm bởi hạn chế thiệt hại, tiếp tục dịch vụ, tốc độ sửa chữa và phục hồi, và thất bại và phục hồi an toàn. Kiểm soát truy cập là một khái niệm an ninh cơ bản và ta cũng nên đảm bảo sử dụng đúng mật mã

2.2. Các mô hình kiến trúc

Để tổ chức các hệ thống phần mềm, bạn có thể sử dụng các mẫu kiến trúc phổ biến dưới đây:

Kiến trúc phân lớp – Layered (n-tier) Architecture

Mẫu kiến trúc này có thể được sử dụng trong các hệ thống có thể được phân tách thành các nhóm gồm nhiều công việc nhỏ. Đặc điểm:

· Các lớp khác nhau được xác định trong kiến trúc. Nó bao gồm lớp bên ngoài và bên trong.

· Thành phần của lớp ngoài quản lý các hoạt động giao diện người dùng. · Các thành phần thực thi giao diện hệ điều hành ở lớp bên trong.

· Các lớp bên trong là lớp ứng dụng, lớp tiện ích và lớp lõi.

Kiến trúc hướng sự kiện – Event-driven architecture

Nhiều chương trình dành phần lớn thời gian để chờ đợi điều gì đó xảy ra. Điều này đặc biệt đúng đối với các máy tính làm việc trực tiếp với con người. Nhưng nó cũng phổ biến trong các lĩnh vực như mạng. Đôi khi có dữ liệu cần xử lý và những lần khác thì không.

Kiến trúc hướng sự kiện giúp quản lý điều này bằng cách xây dựng một đơn vị trung tâm quản lý tất cả dữ liệu. Sau đó, dữ liệu sẽ được đưa đến các modules riêng biệt để xử lý.

Kiến trúc hướng đối tượng – Objects based Architecture

Nó là một mô hình kiến trúc dựa trên việc phân chia công việc cho một ứng dụng hoặc hệ thống thành các đối tượng có thể tái sử dụng và tự cung cấp. Kiến trúc hướng đối tượng xem một hệ thống phần mềm như một tập hợp các thực thể được gọi là các đối tượng.

3. Thiết kế h thng hướng chc năng

Đây là lối tiếp cận truyền thống của ngành Công nghệ phần mềm. Theo lối tiếp cận này, chúng ta quan tâm chủ yếu tới những thông tin mà hệ thống sẽ lưu trữ. Chúng ta hỏi người dùng xem họ sẽ cần những thông tin nào, rồi chúng ta thiết kế ngân hàng dữ liệu để chứa những thông tin đó, cung cấp Forms để nhập thông tin và in báo cáo để trình bày các thông tin. Nói một cách khác, chúng ta tập trung vào thông tin và không mấy để ý đến những gì có thể xảy ra với những hệ thống đó và cách hoạt động (ứng xử) của hệ thống là ra sao. Đây là lối tiếp cận xoay quanh dữ liệu và đã được áp dụng để tạo nên hàng ngàn hệ thống trong suốt nhiều năm trời. Lối tiếp cận xoay quanh dữ liệu là phương pháp tốt cho việc thiết kế ngân hàng dữ liệu và nắm bắt thông tin, nhưng nếu áp dụng cho việc thiết kế ứng dụng lại có thể khiến phát sinh nhiều khó khăn. Một trong những thách thức lớn là yêu cầu đối với các hệ thống thường xuyên thay đổi. Một hệ thống xoay quanh dữ liệu có thể dể dàng xử lý việc thay đổi ngân hàng dữ liệu, nhưng lại khó thực thi những thay đổi trong nguyên tắc nghiệp vụ hay cách hoạt động của hệ thống.

Phương pháp hướng đối tượng đã được phát triển để trả lời cho vấn đề đó. Với lối tiếp cận hướng đối tượng, tập trung vào cả hai mặt của vấn đề : thông tin và cách hoạt động.

3.2. Thiết kế xử lý

Thiết kế phần mềm thường được xem như là một quy trình 2 bước:

Thiết kế kiến trúc (cũng được xem như là thiết kế mức cao high- level design or top- level design) mô tả phầm mềm được tổ chức thành các thành phần như thế nào

Thiết kế chi tiết mô tả hành động mong muốn của những thành phần

Đầu ra của 2 quy trình này là tập mô hình và tài liệu ghi lại những những quyết định quan trọng đã được thực hiện cùng lời giải thích cho mỗi lý do. Bằng cách ghi lại các lý do đó công việc bảo trì dài hạn của phần mềm được nâng cao.

4. Thiết kế h thng hướng đối tượng

Một phần của tài liệu Giáo trình nhập môn công nghệ phần mềm (nghề lập trình viên máy tính cao đẳng) (Trang 82 - 85)

Tải bản đầy đủ (PDF)

(107 trang)