Tầm quan trọng của quá trình thiết kế Như vậy, thiết kế là một thực tế về một quyết định chọn lựa, xây dựng một đặc tả về hành vi nhìn thấy được từ bên ngoài và bổ sung các chi tiết cần
Trang 1Chương 5 THIẾT KẾ PHẦN MỀM
5.1 Đặc điểm của quá trình thiết kế phần mềm
Xây dựng ứng dụng phần mềm là một dây chuyền các chuyển đổi, mà ở đó phân tích nhằm xác định ứng dụng sẽ thực hiện cái gì (what) còn thiết kế nhằm để trả lời câu hỏi phần mềm cụ thể sẽ như thế nào (how)? Tức là xác định cách thức thực hiện những gì đã được đặt ra ở phần phân tích
Trong ba giai đoạn: thiết kế, cài đặt và bảo trì thì thiết kế là giai đoạn quan trọng nhất, chịu trách nhiệm đến 80% đối với sự thành công của một sản phẩm Cài đặt
là việc thực thi những gì đã thiết kế Nếu trong quá trình cài đặt có xuất hiện vấn đề thì phải quay lại sửa bản thiết kế Quá trình thiết kế tốt là cơ sở để quản lý và giảm chi phí cho công việc bảo trì phần mềm sau này
Nhiệm vụ của thiết kế là chuyển đổi những yêu cầu của hệ thống (kết quả của quá trình phân tích) sang dạng biểu diễn của hệ thống phần mềm Nghĩa là xây dựng các mô tả văn bản (thiết kế chi tiết) nêu rõ mối quan hệ giữa tiền điều kiện và hậu điều kiện cho tất cả các chức năng (quá trình) của hệ thống Tiền điều kiện xác định những cái sẽ nhận giá trị chân lý đúng trước khi một quá trình thực hiện, còn hậu điều kiện xác định những điều sẽ nhận giá trị đúng khi chấp nhận tiền điều kiện và khi quá trình
đó kết thúc thành công
Tầm quan trọng của thiết kế được thể hiện qua hình 5.1:
Hình 5.1 Tầm quan trọng của quá trình thiết kế
Như vậy, thiết kế là một thực tế về một quyết định chọn lựa, xây dựng một đặc
tả về hành vi nhìn thấy được từ bên ngoài và bổ sung các chi tiết cần thiết cho việc cài đặt trên hệ thống máy tính bao gồm cả chi tiết về tổ chức quản lý dữ liệu, công việc và tương tác với con người Thiết kế phải nhờ vào các kinh nghiệm và phải học tập những cái có sẵn từ các hệ thống khác; không thể chỉ đọc sách là đủ Bản thiết kế tốt là chìa khóa cho sự thành công của hệ thống
Trang 2Mối liên quan của thiết kế phần mềm với công nghệ phần mềm được thể hiện qua sơ đồ hình 5.2:
Hình 5.2 Mối liên quan của giai đoạn thiết kế với các giai đoạn khác
Thiết kế phần mềm là hoạt động được xác lập dựa trên hai mặt: quản lý và kỹ thuật, chúng đan xen với nhau Mối quan hệ giữa hai khía cạnh kỹ thuật và quản lý được thể hiện qua hình 5.3:
Hình 5.3 Các giai đoạn thiết kế
Trong quan điểm quản lý, thiết kế phần mềm được tiến hành 2 bước:
- Thiết kế sơ bộ: quan tâm đến việc dịch các yêu cầu thành các kiến trúc dữ liệu
Trang 3- Thiết kế thủ tục
- Thiết kế đối tượng
- Thiết kế giao diện
Các hoạt động của giai đoạn thiết kế phần mềm theo khía cạnh kỹ thuật được biểu diễn như hình qua hình 5.4 Trong đó, hoạt động thiết kế xử lý gồm hai hoạt động: Thiết kế thủ tục và thiết kế đối tượng
Hình 5.4 Các giai đoạn thiết kế theo khía cạnh kỹ thuật
Các kết quả cần có khi thiết kế hệ thống theo khía cạnh kỹ thuật
Bảng 5.1 Kết quả của các giai đoạn thiết kế theo khía cạnh kỹ thuật
2 Thiết kế xử lý
Hệ thống các hàm cùng với cấu trúc
dữ liệu tương ứng
- Danh sách các hàm
- Danh sách các kiểu dữ liệu
- Mô tả chi tiết từng hàm
- Mô tả chi tiết các kiểu dữ liệu
tả bằng nhiều mức khác nhau của cách tiếp cận trừu tượng hóa, nhằm tách các bộ phận cấu thành của bài toán nhằm nâng cao độ chắc chắn, độ tin cậy của hệ thống
Trang 4Hình 5.5 Tiến trình thiết kế
5.2 Chiến lược thiết kế
Do các hệ phần mềm lớn là phức tạp nên người ta thường dùng các phương pháp tiếp cận khác nhau trong việc thiết kế các phần khác nhau của một hệ thống Chẳng có một chiến lược tốt nhất nào cho các dự án Hai chiến lược thiết kế hiện đang được dùng rộng rãi trong việc phát triển phần mềm đó là thiết kế hướng chức năng và thiết
kế hướng đối tượng Mỗi chiến lược thiết kế đều có ưu và nhược điểm riêng phụ thuộc vào ứng dụng phát triển và nhóm phát triển phần mềm
Cách tiếp cận hướng chức năng hay hướng đối tượng là bổ sung và hỗ trợ cho nhau chứ không phải là đối kháng nhau Kỹ sư phần mềm sẽ chọn cách tiếp cận thích hợp nhất cho từng giai đoạn thiết kế
5.2.1 Thiết kế hướng chức năng
Thiết kế hướng chức năng là một cách tiếp cận thiết kế phần mềm trong đó bản thiết kế được phân giải thành một bộ các đơn thể được tác động lẫn nhau, mà một đơn thể có một chức năng được xác định rõ ràng Các chức năng có các trạng thái cục bộ nhưng chúng chia sẻ với nhau trạng thái hệ thống, trạng thái này là tập trung và mọi chức năng đều có thể truy cập được
Một số quan niệm cho rằng thiết kế hướng chức năng đã lỗi thời và nên được thay thế bởi cách tiếp cận hướng đối tượng Thế nhưng, nhiều tổ chức đã phát triển các chuẩn và các phương pháp dựa trên sự phân giải chức năng Nhiều phương pháp thiết
kế kết hợp với các công cụ CASE đều là hướng chức năng và có nhiều hệ thống đã được phát triển bằng cách sử dụng phương pháp tiếp cận hướng chức năng Các hệ thống đó sẽ phải được bảo trì cho một tương lai xa xôi Bởi vậy thiết kế hướng chức năng vẫn sẽ còn được tiếp tục sử dụng rộng rãi
Chiến lược thiết kế hướng chức năng dựa trên việc phân giải hệ thống thành một bộ các chức năng có tương tác nhau với trạng thái hệ thống tập trung dùng chung cho các chức năng đó Các chức năng này có thể có các thông tin trạng thái cục bộ nhưng chỉ dùng cho quá trình thực hiện chức năng đó mà thôi
Trang 5Thiết kế hướng chức năng gắn với các chi tiết của một thuật toán của chức năng đó nhưng các thông tin trạng thái hệ thống là không bị che dấu Điều này có thể gây ra một vấn đề vì rằng một chức năng có thể thay đổi trạng thái theo một cách mà các chức năng khác không ngờ tới Việc thay đổi một chức năng và cách nó sử dụng trạng thái hệ thống có thể gây ra những tương tác bất ngờ đối với các chức năng khác
Do đó cách tiếp cận chức năng để thiết kế là thắng lợi nhất khi mà khối lượng thông tin trạng thái hệ thống là được làm nhỏ nhất và thông tin dùng chung nhau là rõ ràng
5.2.2 Thiết kế hướng đối tượng
Hệ thống được nhìn nhận như một bộ các đối tượng Hệ thống được phân tán, mỗi đối tượng có những thông tin trạng thái riêng của nó Đối tượng là một bộ các thuộc tính xác định trạng thái của đối tượng đó và các phép toán của nó Nó được thừa kế từ một vài lớp đối tượng lớp cao hơn, sao cho dễ định nghĩa nó chỉ cần nêu đủ các khác nhau giữa nó và các lớp cao hơn nó
Che dấu thông tin là chiến lược thiết kế dấu càng nhiều thông tin trong các thành phần càng hay Cái đó ngầm hiểu rằng việc kết hợp điều khiển logic và cấu trúc dữ liệu được thực hiện trong thiết kế càng chậm càng tốt Liên lạc thông qua các thông tin trạng thái dùng chung (các biến tổng thể) là ít nhất, nhờ vậy khả năng hiểu là được tăng lên Thiết kế là tương đối dễ thay đổi vì sự thay đổi một thành phần không thể không dự kiến các hiệu ứng phụ trên các thành phần khác
Thiết kế hướng đối tượng là dựa trên việc che dấu thông tin, nhìn hệ phần mềm như là một bộ các đối tượng tương tác với nhau chứ không phải là một bộ các chức năng như cách tiếp cận chức năng Các đối tượng này có một trạng thái được che dấu
và các phép toán trên các trạng thái đó Thiết kế biểu thị các dịch vụ được yêu cầu và được cung cấp bởi các đối tượng có tương tác với nó Thiết kế hướng đối tượng có ba đặc trưng:
- Vùng dữ liệu dùng chung là bị loại bỏ Các đối tượng liên lạc với nhau bằng cách trao đổi thông báo chứ không phải bằng các biến dùng chung
- Các đối tượng là các thực thể độc lập mà chúng sẵn sàng được thay đổi vì rằng tất
cả các trạng thái và các thông tin biểu diễn là chỉ ảnh hưởng trong phạm vi chính đối tượng đó thôi Các thay đổi về biểu diễn thông tin có thể được thực hiện không cần sự tham khảo tới các đối tượng hệ thống khác
- Các đối tượng có thể phân tán và có thể hành động tuần tự hoặc song song Không cần có quyết định về tính song song ngay từ một giai đoạn sớm của quá trình thiết kế
Các ưu điểm của phương pháp thiết kế hướng đối tượng:
Trang 6- Dễ bảo trì vì các đối tượng là độc lập Các đối tượng có thể hiểu và cải biên như
là một thực thể độc lập Thay đổi trong thực hiện một đối tượng hoặc thêm các dịch vụ
sẽ không làm ảnh hưởng tới các đối tượng hệ thống khác
- Các đối tượng là các thành phần dùng lại được thích hợp (do tính độc lập của chúng) Một thiết kế có thể dùng lại được các đối tượng đã được thiết kế trong các bản thiết kế trước đó
- Đối với một vài lớp hệ thống, có một phản ánh rõ ràng giữa các thực thể có thực (chẳng hạn như các thành phần phần cứng) với các đối tượng điều khiển nó trong hệ thống Điều này cải thiện được tính dễ hiểu của thiết kế
Các nhược điểm của phương pháp thiết kế hướng đối tượng:
- Sự nhận minh các đối tượng hệ thống thích hợp là khó khăn Cách nhìn tự nhiên
nhiều hệ thống là cách nhìn chức năng và việc thích nghi với cách nhìn hướng đối tượng đôi khi là khó khăn
- Phương pháp thiết kế hướng đối tượng vẫn còn là tương đối chưa chín muồi và đang thay đổi mau chóng
Ở đây, cần phân biệt hai khái niệm là thiết kế hướng đối tượng và lập trình (cài đặt) hướng đối tượng:
- Thiết kế hướng đối tượng là một chiến lược thiết kế nó không phụ thuộc vào một 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 và các khả năng bao gói đối tượng làm cho thiết kế hướng đối tượng được thực hiện một cách đơn giản hơn Tuy nhiên một thiết kế hướng đối tượng cũng có thể được thực hiện trong một ngôn ngữ kiểu như Pascal hoặc C mà không có các đặc điểm như vậy
- 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 phương pháp thiết kế hướng đối tượng Như Ada không phải là ngôn ngữ lập trình hướng đối tượng vì nó không trợ giúp sự thừa kế của các lớp, nhưng lại
có thể thực hiện các đối tượng trong Ada bằng cách sử dụng các gói hoặc các nhiệm
vụ, do đó Ada được dùng để mô tả các 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ế, nó không phụ thuộc vào ngôn ngữ để thực hiện Các ngôn ngữ lập trình hướng đối tượng và khả năng bao gói
dữ liệu làm cho dễ thực hiện một thiết kế hướng đối tượng hơn Tuy nhiên cũng có thể thực hiện một thiết kế hướng đối tượng trong một ngôn ngữ kiểu như Pascal hoặc C
5.3 Thiết kế kiến trúc ứng dụng
5.3.1 Khái niệm
Kiến trúc của phần mềm ứng dụng được suy dẫn ra qua tiến trình phân hoạch đặt mối quan hệ giữa các phần tử của giải pháp phần mềm với các bộ phận của thế giới thực được xác định không tường minh trong phân tích yêu cầu Các hệ thống lớn có thể được phân rã thành các phân hệ cung cấp các dịch vụ Mỗi phân hệ có các module
Trang 7và có một giao diện xác định để giao tiếp với các phân hệ khác Nó là một hệ thống có quyền riêng của mình cho phép các hoạt động không phụ thuộc vào các dịch vụ của các phân hệ khác
Quy trình thiết kế khởi đầu để xác định các phân hệ của hệ thống và thiết lập một khuôn khổ điều khiển và truyền thông giữa các phân hệ được gọi là thiết kế kiến trúc cho ứng dụng Thiết kế kiến trúc ứng dụng luôn được tiến hành trước khi có các đặc tả chi tiết về hệ thống
Việc phân rã kiến trúc hệ thống là cần thiết cho việc cấu trúc và tổ chức đặc tả và chứa các hoạt động sau:
- Cấu trúc hệ thống: Hệ thống được cấu trúc thành một số các phân hệ, mỗi phân hệ
là một đơn vị phần mềm độc lập Các liên kết thông tin giữa các phân hệ được xác định
- Mô hình hoá điều khiển: Một mô hình chung về các quan hệ điều khiển giữa các thành phần của hệ thống được thiết lập
- Phân rã mô hình: Mỗi phân hệ đã xác định sẽ được phân rã thành các module Kiến trúc sư sẽ phải quyết định các kiểu module và các kết nối
Kết quả của thiết kế kiến trúc ứng dụng là tài liệu thiết kế kiến trúc Tài liệu thiết
Giai đoạn đầu tiên của thiết kế kiến trúc là việc phân rã hệ thống thành nhiều phân
hệ tương tác nhau Tại mức trừu tượng nhất, một thiết kế kiến trúc có thể được coi như
là một sơ đồ khối trong đó mỗi khối đại diện cho một phân hệ Các hộp nằm trong một khối được coi là phân hệ con của phân hệ Các mũi tên đại diện cho các điều khiển hoặc các dữ liệu giao tiếp giữa các phân hệ Sau đó, một số mô hình đặc trưng hơn được phát triển để biểu diễn các dữ liệu chia sẻ, các giao diện và phân phối dữ liệu
giữa các phân hệ trong ứng dụng
5.3.2 Các mô hình thiết kế ứng dụng
1) Mô hình kho dữ liệu (Data Warehouse Model)
Các phân hệ cần trao đổi thông tin, và nó có thể tiến hành theo hai cách:
- Mỗi phân hệ duy trì một cơ sở dữ liệu riêng của mình Dữ liệu được trao đổi giữa các phân hệ bằng cách chuyển đổi các thông báo
- Mọi dữ liệu được lưu trữ tại một cơ sở dữ liệu trung tâm có thể được truy cập bởi mọi phân hệ Mô hình này gọi là mô hình kho dữ liệu
Trang 8Hình 5.6 Mô hình kho dữ liệu
Mô hình kho dữ liệu phù hợp cho các ứng dụng khi dữ liệu được tạo bởi một phân
hệ và được sử dụng bởi các phân hệ khác Đây là cách hữu hiệu để chia sẻ một số lượng lớn dữ liệu mà không cần chuyển đổi dữ liệu tường minh từ một phân hệ này tới các phân hệ khác
Phân hệ phải chấp nhận mô hình này nếu muốn tham gia hệ thống Sẽ rất khó tích hợp một phân hệ mới nếu nó không phù hợp với tiêu chuẩn của kho dữ liệu Phân hệ tạo dữ liệu không cần liên quan đến việc dữ liệu được phân hệ khác sử dụng như thế nào Việc phát triển mô hình sẽ khó khăn khi một số lượng lớn dữ liệu đã có theo tiêu chuẩn cũ Việc chuyển đổi dữ liệu sẽ rất tốn kém Các hoạt động như lưu trữ, bảo mật, điều khiển truy nhập và khôi phục được tập trung hoá
Ví dụ kiến trúc của một bộ CASE tích hợp sử dụng mô hình kho dữ liệu:
Hình 5.7 Kiến trúc của một bộ CASE tích hợp
Tuy nhiên, các phân hệ có thể có các yêu cầu khác nhau về mức độ bảo mật, khôi phục và chiến lược lưu trữ Mô hình này bắt buộc các phân hệ phải chấp nhận một chính sách chung Mọi việc sẽ đơn giản nếu phân hệ mới cần tích hợp tương thích với
Trang 9dữ liệu cũ Tuy nhiên sẽ khó khăn nếu phân phối dữ liệu tới nhiều máy khác nhau Việc này sẽ phát sinh khả năng dư thừa dữ liệu, không toàn vẹn
- Một tập các server độc lập phục vụ cho các phân hệ
- Một tập các khách hàng yêu cầu các dịch vụ Chúng có thể là các phân hệ, hay là các thể hiện khác nhau của cùng một chương trình
- Một mạng cho phép các khách hàng có thể truy nhập được các dịch vụ
Ví dụ kiến trúc của một thư viện phim và hình ảnh sử dụng mô hình kho dữ liệu:
Hình 5.9 Kiến trúc của một thư viện phim và hình ảnh
Khách hàng phải biết được định danh của các dịch vụ, còn các dịch vụ không cần biết các định danh của khách hàng
Ưu điểm quan trọng nhất của mô hình này là sự phân tán rất rõ ràng Mô hình này
dễ dàng thêm một server và tích hợp dần dần khi có nhu cầu mà không ảnh hưởng tới các thành phần cũ Sự thiếu vắng của mô hình chia sẻ dữ liệu ở đây có nghĩa là sẽ khó
dự đoán được các vấn đề khi tích hợp dữ liệu vào hệ thống cũ Mỗi server phải có
Trang 10trách nhiệm với bản thân mình về lưu trữ, khôi phục, Không có một trung tâm nên khách hàng phải tự biết và tìm server, đây là vấn đề khó khăn đối với các mạng lớn như WAN, Internet
3) Mô hình máy trừu tượng
Mô hình máy trừu tượng đôi khi gọi là mô hình lớp, mô hình hoá giao diện của các phần mềm Mô hình phân lớp tổ chức hệ thống thành nhiều lớp và mỗi lớp cung cấp một tập các dịch vụ Mỗi lớp có thể được coi như một máy trừu tượng (Abstract Machine) mà ngôn ngữ của máy được định nghĩa bởi các dịch vụ mà lớp đó cung cấp
Do đó, mô hình này thường được sử dụng để mô hình hoá giao diện (Interface) của hệ thống con Mô hình phân lớp hỗ trợ phát triển các hệ thống con theo kiểu tăng vòng ở nhiều lớp khác nhau Khi giao diện của một lớp thay đổi thì chỉ những lớp liền kề nó mới bị ảnh hưởng
Hình 5.10 Mô hình máy trừu tượng
Ví dụ kiến trúc của hệ thống quản lý phiên bản sử dụng mô hình máy trừu tượng:
Hình 5.11 Kiến trúc của hệ thống quản lý phiên bản
Ví dụ kiến trúc của ứng dụng doanh nghiệp sử dụng mô hình máy trừu tượng:
Hình 5.12 Kiến trúc của ứng dụng doanh nghiệp
Trang 114) Mô hình điều khiển
Là mô hình mà để vận hành, hệ thống phải được điều khiển làm việc đồng bộ và đúng Mô hình cấu trúc không có các thông tin điều khiển mà các luồng điều khiển được chỉ ra ở mô hình điều khiển Hai cách tiếp cận chung có thể xác định là:
- Điều khiển tập trung,
- Điều khiển trên cơ sở sự kiện
Mô hình điều khiển bổ sung cho mô hình cấu trúc Mỗi mô hình cấu trúc đã nói trên đều có thể dùng mô hình điều khiển tập trung hoặc mô hình điều khiển trên cơ sở
sự kiện
Mô hình điều khiển tập trung
Một phân hệ được thiết kế như bộ điều khiển hệ thống có trách nhiệm quản lý việc thực hiện các phân hệ khác Các mô hình điều khiển tập trung phân lớp theo hai loại phụ thuộc việc điều khiển được tiến hành tuần tự hay song song
- Mô hình gọi - trả lời: Mô hình này phù hợp với các mô hình thủ tục top - down
Hình 5.13 Mô hình gọi - trả lời
- Mô hình quản lý: Mô hình này thích hợp với các hệ thống đồng thời Một cấu thành hệ thống được thiết kế như là một bộ quản trị và điều khiển việc khởi động, kết thúc và phối hợp các phân hệ khác
Hình 5.14 Mô hình quản lý
Mô hình hệ thống điều khiển bởi sự kiện
Mô hình hệ thống điều khiển bởi sự kiện có nhiều kiểu khác nhau của hệ thống hướng sự kiện, như:
Trang 12- Mô hình phát tin: Trong mô hình này, về nguyên tắc, một sự kiện được thông báo cho các phân hệ Các phân hệ được thiết kế điều khiển sự kiện này sẽ tự quyết việc trả lời Mô hình này hiệu quả với các phân hệ được phân bố trên các máy tính khác nhau trên mạng
+ Ưu điểm: Việc phát triển tương đối đơn giản Một phân hệ mới xử lý một lớp sự kiện mới có thể được tích hợp khi ghi nhận các sự kiện này vào bộ điều khiển sự kiện Mỗi phân hệ có thể kích hoạt mọi phân hệ khác không cần biết tên và vị trí của các phân hệ đó Phân bố trong suốt với các phân hệ
+ Nhược điểm: Phân hệ không biết sự kiện có được xử lý hay không và khi nào được xử lý Rất có thể hai phân hệ khác nhau cùng sinh một sự kiện và có thể gây xung đột
Hình 5.15 Mô hình phát tin
- Mô hình điều khiển ngắt: Có một hệ thống bên ngoài được sử dụng riêng cho việc theo dõi các ngắt bên ngoài và được chuyển tới các phân hệ tương ứng Mô hình này phù hợp với các hệ thống thời gian Ưu điểm của nó là cho phép đáp ứng nhanh nhất với các sự kiện Nhược điểm là việc lập trình phức tạp
Hình 5.16 Mô hình điều khiển ngắt
5) Mô hình đối tượng
Hệ thống được phân thành các đối tượng giao tiếp với nhau Phân tích hướng đối tượng chỉ ra các lớp đối tượng liên quan, các thuộc tính và các hoạt động của chúng
Trang 13Ưu điểm của nó là tính bao đóng cho phép dấu các thực hiện của các đối tượng và cho phép dùng lại mã Tuy nhiên nhược điểm là để sử dụng các dịch vụ, các đối tượng phải gọi tường minh các tên và giao diện của các đối tượng khác Sự thay đổi giao diện sẽ làm ảnh hưởng tới các đối tượng khác
6) Mô hình luồng dữ liệu
Hệ thống được phân hoá thành các module chức năng Chúng nhận các dữ liệu chuyển hoá chúng rồi lại đưa ra kết quả Trong mô hình luồng dữ liệu, các bộ biến đổi
xử lý dữ liệu đầu vào và tạo dữ liệu ra Dữ liệu được chảy tuần tự theo luồng từ bộ biến đổi này sang bộ khác Mỗi bước của quy trình giống như một phép biến đổi
Hình 5.17 Mô hình luồng dữ liệu
Ưu điểm:
- Hỗ trợ việc sử dụng lại các biến đổi
- Phù hợp với suy nghĩ của mọi người quan niệm về dữ liệu được xử lý theo luồng
có đầu vào và đầu ra
- Thêm các xử lý khác vào hệ thống đơn giản
- Dễ thực hiện xử lý song song hoặc tuần tự
5.4 Thiết kế cơ sở dữ liệu
5.4.1 Cách tổ chức lưu trữ dữ liệu
Mục tiêu chính của thiết kế dữ liệu là mô tả cách thức tổ chức lưu trữ các dữ liệu của phần mềm
Trang 14Trong đó D1, D2 được lưu trữ trong bộ nhớ chính; D3, D4 được lưu trữ trong bộ nhớ phụ
Cách thức lưu trữ dữ liệu trên bộ nhớ chính: Kiểu cấu trúc, kiểu mảng, kiểu xâu, kiểu cây,
Cách thức lưu trữ dữ liệu trên bộ nhớ phụ: Tập tin (Có cấu trúc/Không có cấu trúc),
cơ sở dữ liệu (Quan hệ/Đối tượng):
- Lưu trữ dưới dạng tập tin: Thích hợp với một số phần mềm đặc thù, chẳng hạn trò chơi, mô phỏng ứng dụng Word, Paint, ; đặc điểm chung của các phần mềm này là chú trọng rất nhiều vào các xử lý; hình thức giao diện và không chú trọng nhiều đến việc lưu trữ lại các thông tin được tiếp nhận trong quá trình sử dụng phần mềm, các thông tin này thường được tiếp nhận và xử lý ngay
- Lưu trữ dưới dạng cơ sở dữ liệu: Thường sử dụng với các phần mềm quản lý, chẳng hạn các phần mềm quản lý học sinh, thư viện, bán hàng, nhân sự, …; có đặc điểm cần lưu trữ lại các thông tin được tiếp nhận trong quá trình sử dụng phần mềm Cách tiếp cận dùng cơ sở dữ liệu rất thông dụng và thường dùng là cơ sở dữ liệu quan hệ:
- Cách thức tổ chức lưu trữ dữ liệu của phần mềm được mô tả thông qua hai loại thông tin:
+ Thông tin tổng quát: Cung cấp góc nhìn tổng quát về các thành phần lưu trữ bao gồm danh sách các bảng dữ liệu và danh sách các liên kết Việc lưu trữ cần sử dụng bao nhiêu bảng dữ liệu và đó là các bảng nào, mối liên kết giữa các bảng dữ liệu + Thông tin chi tiết: mô tả chi tiết từng thành phần lưu trữ gồm danh sách các thuộc tính của từng thành phần, danh sách các miền giá trị toàn vẹn đó chính là các qui định về tính hợp lệ của các thông tin được lưu trữ
Loại thuộc tính
1
Trang 15Các loại thuộc tính:
+ Thuộc tính khóa
+ Thuộc tính có giá trị rời rạc: Thuộc tính phái của Sinh viên chỉ có 2 giá trị: Nam hoặc Nữ; thuộc tính phái của Sinh viên chỉ có 2 giá trị: 0 hoặc 1 (0: Nam, 1: Nữ); thuộc tính điểm học phần chỉ có các giá trị 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; thuộc tính loại nhân viên chỉ có các giá trị: Nhân viên văn phòng, nhân viên bán hàng, nhân viên sản xuất
+ Thuộc tính đa trị: Thuộc tính điện thoại của nhân viên là thuộc tính đa trị:
081234567, 09081234567,…; thuộc tính email của sinh viên cũng là một thuộc tính đa trị: dungspnd@yahoo.com, dungspnd@gmail.com,
+ Thuộc tính là đối tượng phụ: thuộc tính địa chỉ của sinh viên, nhân viên là một đối tượng phụ, bao gồm các thông tin: Số nhà, Đường, Phường/xã, Quận/huyện, Tỉnh thành; thuộc tính ngày sinh của sinh viên, nhân viên cũng là một đối tượng phụ gồm các thông tin: ngày, tháng, năm
+ Thuộc tính tính toán: thuộc tính thành tiền trong hóa đơn là một thuộc tính tính toán, được tính bằng tổng số lượng * đơn giá của các mặt hàng; thuộc tính điểm trung
bình của học sinh, sinh viên cũng là một thuộc tính tính toán
- Danh sách các miền giá trị toàn vẹn:
Mã số Mô tả miền GT (RBTV) Thành phần liên quan Ghi chú
RB1
RB2
- Quan hệ giữa các bảng dữ liệu: Quan hệ “1-1”, Quan hệ “1-nhiều”, Quan hệ
“nhiều-nhiều”
5.4.2 Xây dựng sơ đồ logic dữ liệu
Có nhiều phương pháp, nhiều đề nghị khác nhau về việc mô tả thông tin của thành phần dữ liệu trong giai đoạn thiết kế Để biểu diễn các thông tin tổng quát về bảng thuộc tính, miền giá trị mô tả chi tiết các thành phần ta dùng sơ đồ logic còn được gọi
là mô hình vật lý Mô hình vật lý này sẽ được xây dựng dựa trên mô hình ERD đã có ở giai đoạn phân tích, kèm theo vài thay đổi tùy theo người thiết kế Nguyên tắc chuyển đổi từ mô hình ERD sang mô hình vật lý dựa trên mối kết hợp giữa các thực thể Các bước chuyển đổi từ mô hình ERD sang mô hình vật lý
Bước 1: Chuyển các tập thực thể thành các lược đồ quan hệ
- Tên tập thực thể thành tên của lược đồ quan hệ
- Các thuộc tính của tập thực thể thành các thuộc tính của lược đồ quan hệ
- Khóa của tập thực thể thành khóa của lược đồ quan hệ
Bước 2: Chuyển các mối liên hệ được chuyển thành các lược đồ quan hệ
- Tên của mối liên hệ thành tên của lược đồ quan hệ
Trang 16- Các thuộc tính khoá của tập thực thể tham gia vào mối liên hệ thành các thuộc tính của lược đồ quan hệ
- Khoá của lược đồ quan hệ được xác định tùy thuộc vào loại mối liên hệ, nếu mối liên hệ là:
+ Một-Một thì khoá của tập thực thể nào cũng có thể trở thành khoá của lược đồ quan hệ
+ Nhiều-Một thì khoá bên nhiều thành khoá tên của lược đồ quan hệ
+ Nhiều-Nhiều thì các thuộc tính khoá của tất cả các tập thực thể trở thành khoá của lược đồ quan hệ
Bước 3: Gộp các lược đồ quan hệ có chung khóa thành một lược đồ
- Tên của lược đồ quan hệ mới là tên mới hoặc là tên của một trong các tên của các lược đồ quan hệ đem gộp
- Tập thuộc tính là hợp các thuộc tính của các lược đồ quan hệ đem gộp
- Khoá là khoá chung
Bước 4: Chuẩn hóa các lược đồ quan hệ để đưa các lược đồ quan hệ về dạng chuẩn 3NF
Sơ đồ logic: Là công cụ cho phép mô tả trực quan cách thức lưu trữ dữ liệu trên bộ nhớ phụ với việc sử dụng cơ sở dữ liệu quan hệ và mối liên kết giữa các bảng
Các quy ước:
5.4.3 Cách phương pháp thiết kế cơ sở dữ liệu
Có hai cách tiếp cận chính để thiết kế dữ liệu
1) Phương pháp trực tiếp:
Từ các yêu cầu đã xác định, tạo lập trực tiếp sơ đồ logic cùng với bảng thuộc tính, bảng miền giá trị toàn vẹn Cách tiếp cận này rất khó thực hiện đối với mô hình vật lý phức tạp Chẳng hạn thiết kế những phần mềm phức tạp như phần mềm kế toán, nhân
sự, tiền lương,…
2) Phương pháp gián tiếp:
Từ các yêu cầu đã xác định, tạo lập mô hình ERD, và sau đó dựa vào mô hình này
sẽ tạo lập sơ đồ logic, bảng thuộc tính, bảng miền giá trị Cách tiếp cận này dễ thực hiện hơn và mô hình ERD thường đơn giản, dễ hiểu vì mô hình này chỉ chứa các thành phần dữ liệu cơ bản nhất của phần mềm
Các bước thực hiện:
Bước 1: Xây dựng mô hình ERD
Bước 2: Chuyển mô hình ERD sang mô hình logic dữ liệu
Trang 17Bước 3: Vẽ sơ đồ logic dữ liệu
Bước 4: Lập bảng danh sách các bảng dữ liệu
Bước 5: Lập bảng danh sách bảng thuộc tính
Bước 6: Lập bảng danh sách bảng miền giá trị
Ví dụ Xét phần mềm quản lý thư viện với yêu cầu nghiệp vụ cho mượn sách có mẫu phiếu mượn:
Hãy lập sơ đồ logic dữ liệu cho yêu cầu nghiệp vụ trên với các yêu cầu số lượng sách trong kho và số phiếu phải lớn hơn 0, ngày mượn phải nhỏ hơn hoặc bằng ngày trả
Bước 1: Xây dựng mô hình ERD
Bước 2: Chuyển mô hình ERD sang mô hình logic dữ liệu
- Docgia (Madg, Hoten, Ns, Diachi)
- Sach(MaS, TenS, Tacgia, Nhaxb, Soluong)
- Phieumuon(Sop, MaS, Madg, NgayM, NgayTr)
Bước 3: Vẽ sơ đồ logic dữ liệu
Bước 4: Lập bảng danh sách các bảng dữ liệu
1 Docgia Lưu trữ thông tin về độc giả
2 Sach Lưu trữ thông tin về sách
3 Phieumuon Lưu trữ thông tin về quá
trình mượn sách của độc giả Bước 5: Lập bảng danh sách bảng thuộc tính
- Danh sách các thuộc tính của bảng Docgia
Trang 18Số thứ
tự Thuộc tính
Ràng buộc khởi tạo Giá trị Ý nghĩa Loại thuộc tính
- Danh sách các thuộc tính của bảng Sach
Số thứ
tự Thuộc tính
Ràng buộc khởi tạo Giá trị Ý nghĩa Loại thuộc tính
Giá trị khởi tạo Ý nghĩa
Loại thuộc tính
Bước 6: Lập bảng danh sách bảng miền giá trị
Mã số Mô tả miền GT (RBTV) Thành phần liên quan Ghi chú
RB1 Phải lớn hơn 0 Phiếu mượn, Sách
RB2 Phải nhỏ hơn hoặc bằng
5.4.4 Yêu cầu về chất lượng thiết kế cơ sở dữ liệu
Để đảm bảo các tiêu chuẩn về chất lượng thiết kế cơ sở dữ liệu cần xem xét đánh giá sơ đồ logic theo các yêu cầu về chất lượng và tiến hành cập nhật lại sơ đồ Các yêu cầu về chất lượng thiết kế cơ sở dữ liệu bao gồm tính đúng đắn, tính tiến hoá, tính hiệu quả, tính bảo mật
Bảng 5.2 Yêu cầu về chất lượng thiết kế cơ sở dữ liệu
1 Tính đúng đắn Lưu trữ đầy đủ và đúng ngữ nghĩa các thông tin có trong nghiệp vụ liên quan
2 Tính tiến hóa Lưu trữ thông tin về tổ chức và qui định có trong nghiệp vụ
liên quan
3 Tính hiệu quả Lưu trữ tiết kiệm nhất không gian bộ nhớ, truy xuất nhanh nhất thông tin cần thiết
4 Tính bảo mật Lưu trữ thông tin về các người sử dụng phần mềm cùng với quyền hạn tương ứng
Trang 191) Xem xét tính tiến hoá:
Để đảm bảo tính tiến hoá, sơ đồ logic sẽ còn bổ sung cập nhật lại nhiều thành phần qua các bước thiết kế chi tiết Thông thường khi thiết kế dữ liệu ở bước đầu tiên thì giới hạn xem xét đến các thuộc tính có giá trị rời rạc (A, B, C; 1, 2, 3, …) Thuộc tính
có giá trị rời rạc là các thuộc tính mà miền giá trị chỉ bao gồm một giá trị nhất định nào
đó Các giá trị này thông thường thuộc về một tập hợp có độ biến động rất ít trong quá trình sử dụng phần mềm
Như vậy loại độc giả và loại ngôn ngữ là kiểu chuỗi và là thuộc tính có giá trị rời rạc Tuy là khả năng biến động thấp nhưng không phải là không có, và nếu không chuẩn bị trước, người dùng không thể khai báo được các biến động này Để bảo đảm tính tiến hoá của hệ thống sau này, ta có thể tách các thuộc tính này thành các thành phần trong sơ đồ logic Khi đó sơ đồ logic có thêm một số thành phần mới
2) Xem xét tính hiệu quả
Tính hiệu quả trong thiết kế dữ liệu sẽ được xem xét dưới góc độ lưu trữ tối ưu Vấn đề đặt ra là xây dựng sơ đồ logic sao cho vẫn bảo đảm lưu trữ đầy đủ thông tin theo yêu cầu nhưng với dung lượng lưu trữ nhỏ nhất có thể có Điều này đặc biệt quan trọng đối với các phần mềm với hệ thống lưu trữ lớn và nhiều phát sinh thông tin cần lưu trữ theo thời gian Xem xét lại việc ánh xạ quan hệ nhiều-nhiều (m-n) để có thể lưu trữ tốt hơn
Xét sơ đồ logic gồm 2 quan hệ A, B và mối kết hợp nhiều-nhiều C và được tách thành một quan hệ mới là C
Để có thể ánh xạ mô hình trên vào sơ đồ logic với 4 thành phần A, B, C, D Với D
là chi tiết của C Các thuộc tính của A, B vẫn được bảo toàn, C trong trường hợp này chỉ chứa các thuộc tính chung (có giá trị giống nhau) trong mỗi lần A quan hệ B, D sẽ gồm các thuộc tính riêng (có giá trị khác nhau) trong mỗi lần A quan hệ với B
Trang 20Ví dụ: Xét phần mềm quản lý thư viện A: Độc giả, B: Sách, C: Phiếu mượn với các thuộc tính ngày mượn, ngày trả, số phiếu Trong một lần độc giả mượn sách thì số phiếu là thuộc tính chung, ngày mượn, ngày trả là các thuộc tính riêng Ta bổ sung thêm quan hệ chi tiết phiếu mượn (D) để lưu trữ các thuộc tính riêng này
5.5 Thiết kế giao diện
5.5.1 Quy trình thiết kế giao diện
Màn hình giao diện được gọi tắt là giao diện (Interface) là một trong các hình thức giao tiếp giữa người sử dụng và phần mềm khi họ thực hiện các công việc của mình trên máy tính Mục tiêu chính của thiết kế giao diện là mô tả hệ thống các màn hình giao diện này
Thiết kế giao diện người dùng là một quy trình lặp lại bao gồm sự cộng tác giữa người sử dụng và người thiết kế Trong quy trình này gồm 3 hoạt động cơ bản:
- Phân tích người sử dụng: Tìm hiểu những gì người sử dụng sẽ làm với hệ thống
- Lập mẫu thử hệ thống: Xây dựng một tập các mẫu thử để thử nghiệm
- Đánh giá giao diện: Thử nghiệm các mẫu thử cùng với người sử dụng
Hình 5.18 Quy trình thiết kế giao diện
1) Phân tích người sử dụng
Nếu không hiểu rõ những gì người sử dụng muốn làm với hệ thống, thì sẽ không thể thiết kế được một giao diện hiệu quả Phân tích người sử dụng phải được mô tả theo những thuật ngữ để người sử dụng và những người thiết kế khác có thể hiểu được
Trang 21Các kỹ thuật phân tích:
- Phân tích nhiệm vụ: Mô hình hoá các bước cần thực hiện để hoàn thành một nhiệm vụ
- Phân tích nhiệm vụ phân cấp
- Phỏng vấn và trắc nghiệm: Hỏi người sử dụng về những gì mà họ làm Khi phỏng vấn, nên dựa trên những câu hỏi có kết thúc mở Sau đó, người sử dụng cung cấp những thông tin mà họ nghĩ rằng nó là cần thiết; nhưng không phải tất cả các thông tin
đó là có thể được sử dụng Ngoài ra, có thể thực hiện phỏng vấn với cả nhóm người sử dụng, điều đó cho phép người sử dụng thảo luận với nhau về những gì họ làm
- Mô tả: Quan sát người sử dụng làm việc và hỏi họ về những cách mà không được biết tới Nên nhớ rằng có nhiều nhiệm vụ của người sử dụng thuộc về trực giác và rất khó để mô tả và giải thích chúng Dựa trên kỹ thuật này ta có thể hiểu thêm về các ảnh hưởng xã hội và tổ chức tác động tới công việc đó
2) Lập mẫu thử giao diện người dùng
Mẫu thử cho phép người sử dụng có được những kinh nghiệm trực tiếp với giao diện Nếu không có những kinh nghiệm trực tiếp như vậy thì không thể đánh giá được khả năng có thể sử dụng được của giao diện
Lập mẫu thử là một quy trình gồm 2 trạng thái: Lập các mẫu thử trên giấy, tinh chỉnh mẫu thử và xây dựng chúng
Các kỹ thuật lập mẫu thử:
- Mẫu thử hướng nguyên mẫu: Sử dụng công cụ chẳng hạn như Macromedia Director để xây dựng một tập hợp các nguyên mẫu và màn hình Khi người sử dụng tương tác với chúng thì màn hình sẽ thay đổi để hiển thị trạng thái kế tiếp
- Lập trình trực quan: Sử dụng các ngôn ngữ được thiết kế cho việc phát triển nhanh chẳng hạn như Visual Basic
- Mẫu thử dựa Internet: Sử dụng web browser và script
3) Đánh giá giao diện người dùng
Cần phải đánh giá bản thiết kế giao diện người dùng để xác định khả năng phù hợp của nó Tuy nhiên, việc đánh giá trên phạm vi rộng tốn nhiều chi phí và không thể thực hiện được đối với hầu hết các hệ thống
Các kỹ thuật đánh giá đơn giản:
- Trắc nghiệm lại các phản hồi của người sử dụng
- Ghi lại quá trình sử dụng mẫu thử của hệ thống và đánh giá nó
- Lựa chọn những thông tin về việc sử dụng dễ dàng và các lỗi của người sử dụng
- Cung cấp mã lệnh trong phần mềm để thu thập những phản hồi của người sử dụng một cách trực tuyến
5.5.2 Kết quả của thiết kế giao diện
Trang 22Kết quả thiết kế giao diện gồm 2 phần: Sơ đồ liên kết màn hình và mô tả chi tiết từng màn hình
2) Mô tả chi tiết từng màn hình
Mô tả chi tiết về nội dung, hình thức trình bày và các thao tác mà người dùng có thể thực hiện trên từng màn hình
Các thông tin mô tả một màn hình bao gồm:
a) Tên màn hình: Là tên công việc tương ứng muốn thực hiện trên máy tính Ví dụ màn hình tra cứu sách, màn hình lập hóa đơn, màn hình tính lương
b) Nội dung mô tả: Cấu trúc các thành phần bên trong màn hình, các thành phần này có thể chia ra làm 2 loại: thành phần dữ liệu và thành phần xử lý
- Thành phần dữ liệu:
+ Các thông tin liên quan đến công việc đang xét được chia thành 2 loại:
Thông tin nhập liệu: Loại thông tin này người dùng chịu trách nhiệm cung cấp giá trị
Ví dụ: mã sách, tên sách, ngày lập hóa đơn, hàng hóa, họ và tên học sinh vắng, lý do vắng, …
Trang 23 Thông tin kết xuất: Loại thông tin này phần mềm chịu trách nhiệm cung cấp giá trị
Ví dụ: lượng hàng tồn hiện tại, tổng tiền trả, tổng số ngày vắng của học sinh trong 1 học kỳ,
+ Thành phần dữ liệu được thiết kế dựa trên cơ sở của nội dung các biểu mẫu của công việc tương ứng
Ví dụ nội dung màn hình lập hóa đơn bán hàng dựa trên nội dung của hóa đơn được sử dụng trong thế giới thực, nội dung màn hình điểm danh dựa trên nội dung bảng điểm danh sách hàng ngày của các lớp, nội dung màn hình nhập điểm kiểm tra dựa trên bảng điểm môn của lớp
Các nút điều khiển trong màn hình lập hóa đơn: Nút ghi yêu cầu phần mềm thực hiện việc ghi thông tin về hóa đơn vào bộ nhớ phụ, Nút thêm hóa đơn mới yêu cần phần mềm cho phép bắt đầu lập một hóa đơn mới, nút thoát yêu cầu phần mềm thực hiện chuyển điều khiển về màn hình trước đó
+ Thành phần xử lý được thiết kế dựa trên các thao tác mà người dùng cần thực hiện trên máy tính để thực hiện công việc tương ứng trong thế giới thực Đây là thành phần áp đặt mà người sử dụng phải tuân theo và được trình bày trong tài liệu hướng dẫn sử dụng phần mềm hoặc hướng dẫn trực tuyến ngay khi dùng phần mềm
+ Khi thiết kế ở phần này cần hướng đến tính đơn giản, tính tự nhiên giúp người dùng dễ học và dễ sử dụng phần mềm
c) Hình thức trình bày
- Hình thức trình bày là việc bố trí, sắp xếp các thành phần trong màn hình như vị trí, màu sắc, kích thước, … Với các màn hình có biểu mẫu liên quan, tốt nhất là trình bày màn hình đúng với biểu mẫu tương ứng;
Ví dụ hóa đơn bán hàng, phiếu mượn sách, danh sách lớp, bảng điểm danh
- Trong trường hợp biểu mẫu liên quan cho ra kết quả cuối cùng cần ghi nhận thì trước khi đạt đến kết quả đó cần thực hiện một số công việc trung gian không có biểu mẫu rõ ràng Với các trường hợp này cần bổ sung, sáng tạo hình thức trình bày các màn hình trung gian thể hiện các công việc trung gian
Trang 24Ví dụ cần lập biểu mẫu thời khoá biểu dạy thực hiện thực hiện các công việc trung gian như chọn giáo viên, chọn tiêu chí phân lớp
- Với các màn hình không có biểu mẫu liên quan thì hình thức trình bày màn hình hoàn toàn là sự sáng tạo khi thiết kế
Ví dụ màn hình ra cứu sách, tra cứu hoá đơn
Quá trình sử dụng phần mềm bao gồm các bước sau:
- Chọn công việc muốn thực hiện trên máy tính
- Cung cấp các thông tin cần thiết tương ứng với công việc đã chọn
- Yêu cầu phần mềm thực hiện
- Xem kết quả thực hiện
Dựa vào quy trình trên, các màn hình có thể được chia thành nhiều loại tùy theo ý nghĩa sử dụng Bảng liệt kê một số loại màn hình cơ sở quan trọng cùng với ý nghĩa và nội dung chính tương ứng (thành phần dữ liệu của màn hình)
Bảng 5.3 Danh mục các loại màn hình
chính
1 Màn hình chính Cho phép người sử dụng chọn việc
thực hiện mong muốn trên máy tính
Danh sách các công việc
Trang 25STT Loại màn hình Ý nghĩa sử dụng Nội dung
Các thông tin phải cung cấp
6 Màn hình kết quả Trình bày cho người sử dụng kết quả việc thực hiện của một công việc nào
Các thao tác
8 Màn hình tra cứu Cho phép tìm kiếm các thông tin đã
được lưu trữ
Các tiêu chí tra cứu
5.5.4 Thiết kế màn hình chính
1) Mô tả màn hình chính:
- Ý nghĩa sử dụng: Màn hình chính (MAIN, HOMEPAGE, DASHBOARD) là màn hình cho phép người dùng chọn được công việc mà họ muốn thực hiện với phần mềm Thông thường mỗi phần mềm chỉ có một màn hình chính duy nhất
- Nội dung: Danh sách các công việc có thể thực hiện với phần mềm
- Hình thức trình bày: Phím nóng, thực đơn, biểu tượng, sơ đồ, tích hợp
- Thao tác người dùng: Trên màn hình này thao tác chính của người dùng là chọn công việc trong danh sách các công việc được đưa ra bởi phần mềm
2) Thiết kế màn hình chính dùng phím nóng:
Các công việc không có dạng thể hiện tường minh mà được chọn thông qua các phím chức năng trên bàn phím, thông thường là tổ hợp các phím như Ctrl + F1, Shift + F2, …Hình thức này chỉ có tác dụng cho phép chọn nhanh một công việc cần thiết đối với người sử dụng chuyên nghiệp Thông thường không được dùng riêng lẻ mà phải kết hợp với các màn hình khác
3) Thiết kế màn hình chính dùng thực đơn:
Các công việc có cùng ý nghĩa sử dụng nhóm lại trong từng nhóm chức năng, chẳng hạn nhóm các công việc về lưu trữ, nhóm các công việc về kết xuất, nhóm các công việc về xử lý,… Đây là dạng trình bày thông dụng nhất
Tổ chức của thực đơn: Thực đơn bao gồm nhiều nhóm chức năng tương ứng nhóm các công việc, mỗi nhóm chức năng bao gồm nhiều chức năng, mỗi chức năng tương ứng với một công việc
Phân loại thực đơn: có 3 loại
- Thực đơn hướng chức năng: Các nhóm chức năng tương ứng với các loại yêu cầu:
+ Tổ chức: Các công việc liên quan tổ chức
Trang 26+ Lưu trữ: Các công việc lưu trữ
+ Tra cứu: Các công việc tìm kiếm, theo dõi
+ Tính toán: Các công việc tính toán
+ Kết xuất: Các báo cáo
n nhóm chức năng tương ứng n lớp đối tượng
+ Các chức năng bên trong mỗi nhóm là các công việc liên quan đến lớp đối tượng tương ứng Các công việc này có thể được phân ra các loại:
Lưu trữ: Ghi nhận thông tin về đối tượng hoặc quan hệ của đối tượng với các đối tượng khác
Trang 27 Tra cứu: tìm kiếm và theo dõi các hoạt động của đối tƣợng
Tính toán: các tính toán liên quan đối tƣợng
Kết xuất: các báo cáo liên quan đến đối tƣợng
Tổ chức: xác định cơ cấu tổ chức, ban hành các qui định
Kế hoạch: Lập các kế hoạch cho các hoạt động sắp tới
Tiếp nhận: Tiếp nhận các thông tin cần thiết cho hoạt động
Hoạt động: ghi nhận các thông tin phát sinh bởi các hoạt động
Tổng kết: tính toán và lập các báo cáo tổng kết
+ Các giai đoạn trên không nhất thiết mỗi qui trình đều phải có mà chỉ có tính chất tham khảo
Trang 28Ví dụ: Màn hình sơ đồ của một khách sạn
Trang 29Hình 5.20 Màn hình dùng sơ đồ
6) Thiết kế màn hình dùng tích hợp
Sử dụng đồng thời nhiều hình thức, thông thường hình thức thực đơn sẽ được ưu tiên chọn trước và kết hợp vào đó một hay nhiều hình thức khác
5.5.5 Thiết kế màn hình giới thiệu
Màn hình giới thiệu là màn hình được dùng để cung cấp thông tin về tên của sản phẩm phần mềm, mô tả sản phẩm, bản quyền, phiên bản, nhóm phát triển, địa chỉ liên
hệ, logo,…
Ví dụ 1:
Hình 5.21 Màn hình giới thiệu phần mềm Microsoft HTML Help Image Editor
Trang 31Hình 5.24 Màn hình đăng nhập hệ thống quản lý dữ liệu
- Ví dụ 2:
Hình 5.25 Màn hình đăng nhập Gmail
2) Màn hình đăng nhập với Username/Password và Secret Key (Khóa bí mật), Khóa bí mật được lưu dưới dạng tập tin sử dụng các phương pháp mã hóa: RSA, AES,…
- Các thành phần của màn hình
Hình 5.26 Mẫu màn hình đăng nhập với khóa bí mật
- Ví dụ:
Hình 5.27 Màn hình đăng nhập với Password và Secret Key
3) Màn hình đăng nhập sử dụng cơ chế khóa khác
- Các loại khóa
Trang 32+ SafeNet: Là giải pháp bảo mật thông tin và dữ liệu gồm hai giải pháp SafeNet ProtecFile (mã hóa file) và SafeNet ProtecDrive (mã hóa ổ cứng và các thiết bị lưu trữ
di động) Hai giải pháp này riêng biệt nhưng có thể bổ sung cho nhau
Trang 33Hình 5.31 RSA SecurID
Ví dụ Xét hệ thống rút tiền tự động ATM, để thực hiện việc rút tiền cần phải có đủ hai yếu tố một thẻ ATM (ATM card) và là một mã số cá nhân hay còn được gọi là PIN (Personal Identification Number)
+ Mã thẻ thông minh USB lai tích hợp công nghệ One-Time Password (OTP): Là phương pháp tích hợp nhiều phương pháp xác thực thành một thiết bị bảo mật duy nhất
Hình 5.32 Hybird USB Smartcard Token
Ví dụ, một nhân viên có thể xác thực tổ chức mạng lưới của mình bằng cách kết nối các eToken đến cổng USB của máy tính của mình khi ở trong văn phòng làm việc Khi ở ngoài văn phòng thì kết nối USB là không thể Do đó, người dùng có thể sử dụng mã thông báo tương tự để truy cập an toàn mạng thông qua một kết nối VPN bằng mật khẩu OTP
3) Quản lý đăng nhập hệ thống
Trang 34Hình 5.33 Quản lý đăng nhập hệ thống
+ Ví dụ: Khóa bí mật được lưu dưới dạng TokenCode, USB sử dụng các phương pháp mã hóa RSA, AES,…được đồng bộ với Server VPN
Trang 35Hình 5.34 Khóa bí mật được đồng bộ với Server VPN
5.5.7 Thiết kế màn hình nhập dữ liệu lưu trữ
+ Các thông tin tính toán: Là các loại thông tin mà phần mềm chịu trách nhiệm tính toán dựa trên các thông tin đã có Thông thường, loại thông tin này giúp việc nhập liệu thuận tiện hơn Ví dụ nhập số lượng, đơn giá thì tính ra số tiền nhờ công thức thành tiền= số lượng * đơn giá
- Hình thức trình bày: Danh sách, hồ sơ, phiếu, tích hợp
- Thao tác người dùng: Có ba thao tác cơ bản trên màn hình nhập dữ liệu:
+ Nhấn nút Ghi: Lưu trữ các thông tin
+ Nhấn nút Xóa: Xóa các thông tin đã lưu trữ
+ Nhấn nút Tìm: tìm và cập nhật lại thông tin đã lưu trữ
Ngoài ra, để tăng tính tiện dụng có thể bổ sung các thao tác khác như:
Trang 36+ Dùng các phím nóng: Định nghĩa các phím nóng tương ứng với các giá trị nhập liệu thường dùng, điều này cho phép tăng tốc độ nhập liệu Ví dụ F1 ứng với chuỗi
“Nguyễn”, F2 ứng với chuỗi “Trần”, …
+ Dùng các nút chuyển điều khiển: Chuyển điều khiển trực tiếp đến màn hình khác
có liên quan đến việc nhập liệu dữ liệu hiện hành Ví dụ đang nhập sách có thể bổ sung thể loại sách mới, nhà xuất bản mới, …
- Các phương pháp nhập dữ liệu
+ Nhập từ bàn phím (Dạng Textbox),
+ Nhập bằng cách chọn giá trị trên màn hình (Dạng combox, Listbox)
+ Import từ tập tin vào cơ sở dữ liệu thường từ các tập tin: Excel, XML, CSV, file
cơ sở dữ liệu,…; phương pháp này thường phải chỉ rõ đường dẫn của file nguồn và điều kiện để lọc dữ liệu cần nhập
+ Import dữ liệu từ các chương trình khác
2) Thiết kế màn hình nhập dữ liệu dạng danh sách
- Màn hình nhập liệu dạng danh sách được thể hiện dưới dạng lưới nhập (dạng bảng biểu gồm các dòng và các cột) tương ứng với các bản ghi trong cơ sở dữ liệu
- Màn hình nhập dữ liệu dạng danh sách chỉ thích hợp khi cần nhập liệu cho các bảng danh sách với kích thước nhỏ Ví dụ danh sách các thể loại sách, danh sách các môn học, các tham số, …
- Màn hình nhập dữ liệu dạng danh sách cho phép người sử dụng có thể tùy ý sửa đổi các thông tin trên các dòng hoặc thêm dòng mới (ở cuối danh sách), xóa dòng sau khi đã chọn dòng cần xóa và cuối cùng yêu cầu ghi lại các thay đổi trên bộ nhớ phụ
- Trong một số trường hợp đặc biệt một số thao tác có thể bị cấm (không cho xóa, không cho thay đổi một số thuộc tính, …) tùy vào ý nghĩa cụ thể của danh sách (không thể thêm mới hoặc xóa các tham số mà chỉ có thể sửa giá trị)
Mẫu màn hình nhập dữ liệu dạng danh sách
Hình 5.35 Mẫu màn hình nhập dữ liệu dạng danh sách
Ví dụ
Trang 37Hình 5.36 Màn hình nhập thể loại sách
3) Thiết kế màn hình nhập dữ liệu dạng hồ sơ
- Màn hình nhập liệu có dạng hồ sơ với nhiều thông tin chi tiết, thích hợp nhu cầu nhập liệu các hồ sơ của đối tƣợng Ví dụ hồ sơ sinh viên, hồ sơ đội bóng, hồ sơ khách hàng, …
- Thành phần xử lý:
+ Thêm: Yêu cầu thêm hồ sơ mới
+ Sửa: Sửa hồ sơ
+ Xóa: Xóa hồ sơ hiện hành
+ Tìm: Chuyển sang màn hình tra cứu, tìm kiếm theo các tiêu chí để xem, sửa, xóa
dụ thêm mặt hàng mới, thêm tác giả mới, thêm nhà xuất bản mới
Một mẫu màn hình nhập dữ liệu dạng hồ sơ:
Hình 5.37 Mẫu màn hình nhập dữ liệu dạng hồ sơ
Trang 38Hình 5.40 Màn hình nhập thông tin đội bóng
4) Thiết kế màn hình nhập dữ liệu dạng phiếu
- Màn hình nhập dữ liệu có dạng phiếu với nhiều dòng chi tiết, thích hợp khi cần nhập dữ liệu cho các phiếu ghi nhận thông tin về hoạt động các đối tượng Ví dụ hóa đơn bán hàng, phiếu nhập hàng,…
- Thành phần xử lý:
+ Thêm: Yêu cầu thêm một phiếu mới
+ Thêm chi tiết: Yêu cầu thêm một dòng chi tiết mới của phiếu
+ Ghi (Lưu dữ liệu): Chấp nhận thay đổi trên hồ sơ mới cập nhật và lưu hồ sơ mới thêm vào
+ Xóa: Xóa phiếu hiện hành
Trang 39+ Xóa chi tiết: Xóa dòng chi tiết được chọn
+ Tìm: Chuyển sang màn hình tra cứu để tìm và cập nhật lại hoặc xóa dữ liệuộphiếu
+ Lưu chi tiết: Cập nhật dòng chi tiết được chọn
+ Sửa: Chuyển sang màn hình tra cứu để tìm và cập nhật lại
+ Sửa chi tiết: Cập nhật dòng chương trình được chọn
+ Thoát: Quay về màn hình trước đó
Hình 5.41 Mẫu 1-Màn hình nhập dữ liệu dạng phiếu
Hình 5.42 Mẫu 2-Màn hình nhập dữ liệu dạng phiếu
Hình 5.43 Mẫu 3-Màn hình nhập dữ liệu dạng phiếu
Trang 40Hình 5.44 Mẫu 4-Màn hình nhập dữ liệu dạng phiếu