Bài giảng Công nghệ phần mềm - Nguyễn Khắc Quốc - Chương 3: Thiết kế phần mềm
- Làmộtquátrình ápdụngnhiềukỹ thuật và các
nguyênlý đểtạo ra môhìnhcủamộtthiết bị,mộttiến
trình haymộthệthống đủchitiết màtheo đócóthể
chếtạorasảnphẩmvậtlýtươngứngvớinó.
Bảnchất:
Làmộtquátrình chuyểnhóacácyêucầuphầnmềm
thànhmộtbiểudiễnthiếtkế.
-Từnhữngmôtả quanniệmvềtoàn bộphầnmềm,
việc làm mịn(chitiết hóa) liên tục dẫntới mộtbiểu
diễnthiết kếrất gầnvớicáchbiểudiễncủachương
trình nguồnđểcóthể ánhxạvàomộtngônngữlập
trình cụthể.
ách nhìn tự nhiên đối với nhiều hệ thống là cách nhìn chức năng. 3.3.5 Ưu nhược điểm của thiết kế hướng đối tượng -Thiết kế hướng đối tượng là một chiến lược thiết kế, không phụ thuộc vào ngôn ngữ thực hiện cụ thể nào. -Các ngôn ngữ lập trình hướng đối tượng có các khả năng: bao gói đối tượng, Kế thừa làm cho việc thực hiện thiết kế hướng đối tượng an toàn hơn và đơn giản hơn. 3.3.6 Quan hệ giữa thiết kế và lập trình hướng đối tượng -Chúng ta có thể mô tả thiết kế hướng đối tượng trên các ngôn ngữ truyền thống nhưng chúng ta không thể kiểm tra được sự tuân thủ tư tưởng hướng đối tượng trên các ngôn ngữ này, nghĩa là người phát triển vẫn có thể truy cập đến cấu trúc dữ liệu vật lý của đối tượng và việc đó làm vô nghĩa khái niệm che dấu thông tin. -Việc chấp nhận thiết kế hướng đối tượng như là một chiến lược hữu hiệu dẫn đến sự phát triển rộng rãi các phương pháp thiết kế hướng đối tượng và các ngôn ngữ lập trình hướng đối tượng. 3.3.6 Quan hệ giữa thiết kế và lập trình hướng đối tượng Có nhiều quan niệm khác nhau về quan hệ giữa thiết kế hướng đối tượng và thiết kế hướng chức năng. Có thể nói: hai chiến lược thiết kế này hỗ trợ lẫn nhau, cụ thể là - DFD dưa ra mô hình về các thuộc tính và chức năng - Luồng giao tác đưa ra hướng dẫn về tương tác giữa các đối tượng (thông báo) - Mô hình E - R đưa ra hướng dẫn xây dựng đối tượng 3.3.7 Quan hệ giữa thiết kế hướng đối tượng và hướng chức năng -Thiết kế nội tại của lớp đối tượng có nhiều điểm tương đồng với thiết kế hướng chức năng. -Thiết kế hướng đối tượng và thiết kế hướng chức năng là hai cách tiếp cận hoàn toàn khác nhau, các khái niệm như che dấu thông tin, kế thừa là đặc trưng quan trọng và bản chất của thiết kế hướng đối tượng và nếu không dứt bỏ cách nhìn thiết kế hướng chức năng thì không thể khai thác hiệu quả các đặc trưng này. 3.3.7 Quan hệ giữa thiết kế hướng đối tượng và hướng chức năng (tt) -Giao diện của hệ thống thường là tiêu chuẩn so sánh để phán xét về hệ thống. -Giao diện được thiết kế kém sẽ gây ra những nhầm lẫn cho người sử dụng, khiến cho họ không sử dụng được các chức năng cần thiết và trong trường hợp xấu có thể thực hiện các thao tác nguy hiểm như phá hủy thông tin cần thiết. 3.4 Thiết kế giao diện người sử dụng Tầm quan trọng của giao diện còn được xem xét trên hai yếu tố: - Khía cạnh nghiệp vụ: người dùng thông qua giao diện để tương tác với hệ thống, đây là khâu nghiệp vụ thủ công duy nhất do đó nếu được thiết kế tốt sẽ nâng cao tốc độ xử lý công việc và dẫn tới hiệu quả kinh tế cao. - Khía cạnh thương mại: đối với các sản phẩm bán hàng loạt, giao diện được thiết kế tốt (dễ sử dụng, đẹp) sẽ gây ấn tượng với khách hàng và là yếu tố chính khi khách hàng chọn mua sản phẩm. 3.4 Thiết kế giao diện người sử dụng (tt) - Yếu tố hiệu quả công việc, đẹp, dễ học dễ sử dụng, một thiết kế giao diện hiện đại nên có tính độc lập cao với khối chương trình xử lý dữ liệu. -Giao diện là bộ phận có tầm quan trọng chủ chốt và có yêu cầu sửa đổi thường xuyên. - Để tiện cho việc sửa đổi, giao diện nên được thiết kế có tính môđun hóa cao và nên có độ độc lập tối đa với khối chương trình xử lý dữ liệu. Điều này cũng dẫn đến khả năng chúng ta có thể xây dựng nhiều giao diện khác nhau cho các đối tượng sử dụng khác nhau hay chạy trên các hệ thống khác nhau. 3.4 Thiết kế giao diện người sử dụng (tt) Có hai dòng giao diện chính là: -Giao diện dòng lệnh: là loại giao diện đơn giản nhất, thường được thiết kế gắn chặt với chương trình và có tính di chuyển cao Giao diện dòng lệnh gọn nhẹ, dễ xây dựng nhưng thường khó học, khó sử dụng và chỉ phù hợp với người dùng chuyên nghiệp trong các ứng dụng đặc thù. - Giao diện đồ họa: sử dụng các cửa sổ, menu, icon... cho phép người dùng có thể truy cập song song đến nhiều thông tin khác nhau; dễ sử dụng và trở nên rất thông dụng và có độ chuẩn hóa cao. 3.4 Thiết kế giao diện người sử dụng (tt) Nhìn trên khía cạnh độc lập với khối chương trình xử lý, có một số cách thức xây dựng giao diện khác nhau: -Giao diện đồ họa (GUI) truyền thống: là giao diện đồ họa được thiết kế có độ liên kết cao với chương trình (được xây dựng cùng ngôn ngữ, cùng bộ công cụ...), - X protocol: giao diện đồ họa sử dụng giao thức X protocol, phổ biến trên các máy Unix/Linux. Loại giao diện này có ưu diểm là có thể hoạt động độc lập với khối chương trình còn lại, tức là ta có thể chạy giao diện trên một máy tính trong khi đó phần xử lý bên trong lại hoạt động trên một máy khác. Phương thức này vẫn chưa phổ biến trên các máy tính cá nhân (chạy hệ điều hành MS Windows). 3.4 Thiết kế giao diện người sử dụng (tt) - client/server: một cách tiếp cận để hướng tới tính độc lập và khả chuyển của giao diện là xây dựng giao diện như là một chương trình client, tương tác với khối chương trình xử lý (server) thông qua các giao thức trao đổi thông tin trên mạng (TCP/IP). -Web based: một trong các cách thức xây dựng giao diện phổ biến hiện nay là dựa trên nền web, sử dụng các trình duyệt web để trao dổi thông tin với server. Nhược điểm về an toàn thông tin và tốc độ nhưng với tính độc lập hoàn toàn với phần xử lý, độ chuẩn hóa cao và khả năng sẵn có trên hầu hết các thiết bị nối mạng, phương thức này đang được ứng dụng rộng rãi. 3.4 Thiết kế giao diện người sử dụng (tt) Trong thiết kế giao diện, cần chú ý tới một số vấn đề sau: 1. Thời gian phản hồi Chúng ta cần quan tâm tới hai loại thời gian là • Thời gian đáp ứng trung bình: là thời gian trung bình mà hệ thống phản hồi đối với một yêu cầu của người dùng. • Độ biến thiên của thời gian: độ biến thiên của thời gian cũng là đại lượng cần quan tâm. 3.4.1 Một số vấn đề thiết kế 2. Các tiện ích Một giao diện tốt cần có các tiện ích để trợ giúp người sử dụng. Có các loại tiện ích sau • Tích hợp: là tiện ích được tích hợp vào giao diện như nút Help cung cấp các thuyết minh về thao tác. • Phụ thêm: là các tiện ích phụ thêm như các tài liệu trực tuyến. • Macro: một số chương trình còn cho phép người dùng tự động hóa một số thao tác bằng các lệnh kiểu macro. 3.4.1 Một số vấn đề thiết kế (tt) 3. Thông báo Các thông báo do hệ thống đưa ra cần • Có nghĩa: mọi thông báo cần có nghĩa đối với người dùng. • Ngắn gọn: các thông báo cần ngắn gọn đi vào bản chất vấn đề, đặc biệt là đối với kiểu giao diện dòng lệnh. • Có tính xây dựng: thông báo nên có tính xây dựng như đưa ra các nguyên nhân và các hướng khắc phục. 3.4.1 Một số vấn đề thiết kế (tt) Một số yếu tố mà giao diện tốt nên có: • Hướng người dùng: đối tượng người dùng phải rõ ràng, giao diện nên được thiết kế có tính đến năng lực, thói quen... của loại đối tượng đó. • Có khả năng tùy biến cao: giao diện nên có khả năng tùy biến cao để phục vụ cho các cá nhân có cách sử dụng khác nhau, các môi trường hoạt động khác nhau. Các phần mềm trên hệ UNIX với giao diện theo chuẩn X protocol thường được thiết kế có độ tùy biến rất cao. 3.4.2 Một số hướng dẫn thiết kế • Nhất quán: các biểu tượng, thông báo, cách thức nhập dữ liệu phải nhất quán và nên tuân theo các chuẩn thông thường. • An toàn: nên có chế độ xác nhận lại đối với các thao tác nguy hiểm (như xóa dữ liệu) và nên có khả năng phục hồi trạng thái cũ (undo). • Dễ học, dễ sử dụng: giao diện luôn cần được thiết kế hướng tới tính dễ học, dễ sử dụng, tức là không đòi hỏi người dùng phải có các năng lực đặc biệt. Ví dụ như không cần nhớ nhiều thao tác, không đòi hỏi phải thao tác nhanh, các thông tin trên màn hình dễ đọc... Một cách tốt nhất để xây dựng giao diện dễ học dễ sử dụng là tuân theo các chuẩn giao diện thông dụng. 3.4.2 Một số hướng dẫn thiết kế Ví dụ Xét phần mềm hỗ trợ giải bài tập phương trình đại số với 4 yêu cầu: 1. Soạn đề bài 2. Soạn đáp án 3. Giải bài tập 4. Chấm điểm Mô hình hóa yêu cầu: Giáo viên Học sinh Soạn đề bài Soạn đáp án Giải bài tập Chấm điểm * Màn hình chính: + Thông tin về sách bài tập + Thông tin về các bài tập của sách - Thao tác người dùng: Tra cứu và soạn bài tập • Màn hình soạn đề bài: + Thông tin về đề bài - Thao tác người dùng: + Nhập thông tin về đề bài + Yêu cầu phát sinh đề + Yêu cầu ghi nhận đề •Màn hình soạn đáp án + Thông tin về đáp án Thao tác người dùng: + Nhập thông tin về đáp án + Yêu cầu ghi nhận đáp án •Màn hình nhận bài giải + Thông tin về bài giải Thao tác người dùng: + Nhập thông tin về bài giải + Yêu cầu ghi nhận bài giải + Yêu cầu chấm điểm •Màn hình nhận chấm điểm + Thông tin về bài giải + Thông tin về việc chấm điểm + Thông tin về đáp án Thao tác người dùng: + Xem thông tin điểm + Xem thông tin đáp án Hệ thống các hàm xử lý: -Hàm soạn thảo đề bài -Hàm tra cứu bài tập -Hàm xóa bài tập -Hàm soạn đáp án -Hàm ghi nhận bài giải -Hàm biến đổi -Hàm khai triển -Hàm rút gọn…. Hàm chấm điểm Hàm xem đáp án Hệ thống lưu trữ SACH_BAI_TAP BAI_TAP BUOC_GIAI BAI_GIAI Bảng SACH_BAI_TAP: các thông tin về sách bài tập Bảng BAI_TAP: các thông tin về bài tập của sách Bảng BUOC_GIAI: các thông tin về một bước giải trong bài toán Bảng BAI_GIAI: các thông tin về đáp án và các bài giải của một bài tập -Thiết kế là cái lõi của kỹ nghệ phần mềm. -Trong khi thiết kế người ta sẽ phát triển, xét duyệt và làm tư liệu cho việc làm mịn dần các chi tiết thủ tục, cấu trúc chương trình, cấu trúc dữ liệu. -Thông qua thiết kế và xét duyệt, chúng ta có thể thẩm định được chất lượng phần mềm. -Cấu trúc chương trình và dữ liệu đóng góp cho một quan điểm tổng thể về kiến trúc phần mềm, trong khi thủ tục lại đưa ra những chi tiết cần thiết cho việc cài đặt thuật toán. Kết chương Theo quan điểm kỹ thuật, thiết kế bao gồm 4 hoạt động: - thiết kế dữ liệu, - thiết kế kiến trúc, - thiết kế thủ tục - thiết kế giao diện. Còn nhiều phương pháp thiết kế phần mềm quan trọng như thiết kế hướng chức năng, hướng đối tượng. Những phương pháp này, được kết hợp với những nền tảng đã trình bày ở trên tạo nên cơ sở cho một cách nhìn đầy đủ về thiết kế phần mềm. Kết chương
File đính kèm:
- Bài giảng Công nghệ phần mềm - Nguyễn Khắc Quốc - Chương 3 Thiết kế phần mềm.pdf