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ể.

pdf75 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1715 | Lượt tải: 2download
Tóm tắt nội dung 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, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
á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:

  • pdfBà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