Các góc nhìn của hệ thống cần môhình hóa § Chức năng functionality: hệ thống làm gì hoặc được yêu cầu làm gìví dụ, xử lý dữ liệu, cộng tác/tương tác với ai/thiết bị/hệ thống khácnhư thế
Trang 23.1 Mô hình hóa hệ thống
§ Khái niệm “mô hình” (model): mô hình là một sự thể hiện của mộtđối tượng trong thế giới thực hoặc một hệ thống đang tồn tại hoặc sẽ
có trong tương lai
§ Khái niệm “mô hình hóa” (modelling): là hành động xây dựng môhình của đối tượng hay xây dựng mô hình của hệ thống
76
Trang 4Các góc nhìn của hệ thống cần mô
hình hóa
§ Chức năng (functionality): hệ thống làm gì hoặc được yêu cầu làm gì(ví dụ, xử lý dữ liệu), cộng tác/tương tác với ai/thiết bị/hệ thống khácnhư thế nào
§ Dữ liệu (data): mô hình hóa dữ liệu vào, thao tác, lưu trữ và xuất dữliệu ra
§ Sự kiện (sự kiện): mô hình hóa các sự kiện mà kích hoạt các tínhnăng của hệ thống
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 78
Trang 5Các kỹ thuật mô hình hóa truyền
thống (trước khi có UML)
§ Chức năng
— Biểu đồ/ Sơ đồ phân rã chức năng (Function Decomposition Diagram - FDD)
— Biểu đồ/ Sơ đồ luồng dữ liệu ( Data Flow Diagram - DFD)
— Biểu đồ/ Sơ đồ luồng (Flow chart )
— Biểu đồ/ Sơ đồ cấu trúc Jackson (Jackson structure chart)
§ Dữ liệu
— Sơ đồ thực thể liên kết ( Entity Relationship Diagram - ERD)
— Sơ đồ cây phân cấp ( Hierarchical tree diagram )
— Biểu đồ/ Sơ đồ bong bóng (Bubble diagram)
§ Sự kiện
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 79
Trang 6Mô hình hóa bằng UML
§ Chức năng
§ Dữ liệu
§ Sự kiện
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 80
Trang 7Mô hình chức năng
§ Mô tả các chức năng cần có trong phần mềm và mối quan hệ giữacác chức năng
— Định danh các chức năng (biến đổi dữ liệu thành thông tin)
— Xác định cách thức dữ liệu (thông tin) di chuyển trong hệ thống
— Xác định các tác nhân đưa vào dữ liệu và tác nhân nhận thông tin
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 81
Trang 8Biểu đồ phân rã chức năng
(Function Decomposition Diagram)
§ Xác định phạm vi của hệ thống
§ Phân hoạch chức năng
§ Tạo nền tảng cho thiết kế kiến trúc hệ thống
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 82
chức năng
liên kết
Trang 9Biểu đồ luồng dữ liệu
(Data Flow Diagram)
§ Dùng để mô hình hóa việc xử lý dữ liệu trong hệ thống.
§ Mô tả các bước xử lý khi dữ liệu chảy qua một hệ thống từ khi vào hệ thống cho đến khi ra khỏi hệ thống (end-to-end).
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 83
Trang 10Biểu đồ luồng dữ liệu
(Data Flow diagram)
§ Tiến trình (chức năng)
§ Tác nhân
§ Kho dữ liệu
§ Luồng di chuyển của
dữ liệu/ thông tin vào/
ra 1 tiến trình.
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 84
Trang 11Mô hình dữ liệu
§ Mô hình hóa hệ thống từ phương diện dữ liệu
§ Lưu vết và làm tài liệu về mối quan hệ giữa dữ liệu và một tiến trình
§ Có thể dùng để minh họa sự trao đổi dữ liệu giữa một hệ thống vàcác hệ thống khác
— Biểu đồ luồng dữ liệu
— Sơ đồ thực thể - liên kết
— Từ điển dữ liệu
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 85
Trang 12Sơ đồ thực thể liên kết
(Entity Relationship Diagram)
§ Dùng để mô tả cấu trúc lô-gic của dữ liệu mà hệ thống xử lý.
§ Sơ đồ thực thể - liên kết mô tả các thực thể trong hệ thống, quan hệ giữa chúng và các thuộc tính của chúng.
§ Dùng rộng rãi trong thiết kế cơ sở dữ liệu, có thể cài đặt được ngay bằng CSDL quan hệ.
§ UML không cung cấp kí pháp cụ thể nhưng có thể dùng các đối tượng (object) và quan hệ (association).
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 86
Trang 13Sơ đồ thực thể liên kết
(Entity Relationship Diagram)
§ Thực thể
§ Thuộc tính của thực thể
§ Mối quan hệ: tên mối quan hệ
§ Loại mối quan hệ: 1-1, 1-N, N-N
§ Số lượng bản thể tham gia vào mối
Trang 14Từ điển dữ liệu
(Data dictionary)
§ Từ điển dữ liệu là danh sách tất cả các tên gọi được sử dụng trong các mô hình hệ thống Đó có thể là các thực thể, quan hệ và các thuộc tính.
§ Sử dụng từ điển dữ liệu làm công cụ bổ trợ.
§ Ưu điểm của từ điển dữ liệu là:
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 88
Trang 15Từ điển dữ liệu
(Data dictionary)
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 89
Trang 16Mô hình chức năng bằng UML Biểu đồ ca sử dụng (Use case diagram)
Tổng quan về biểu đồ use case
View Report Card
Trang 17Mô hình chức năng bằng Biểu đồ hoạt động (Activity diagram)
§ Thể hiện luồng các hoạt
động mà hệ thống cần thực
hiện với mỗi ca sử dụng
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 91
Phân chia một chiều
Trang 18Mô hình đối tượng bằng Biểu đồ lớp (Class diagram)
§ Là cách tự nhiên phản ánh các thực thể trong thế giới thực mà hệthống xử lý
§ Các đối tượng càng trừu tượng thì càng khó dùng loại mô hình này
§ Việc xác định các lớp là một quy trình khó, đòi hỏi hiểu biết sâu về miền ứng dụng.
§ Có thể tái sử dụng các lớp đối tượng phản ánh các thực thể của miềnứng dụng cho các hệ thống khác
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 92
Trang 19Mô hình đối tượng bằng Biểu đồ lớp (Class diagram)
§ Mỗi lớp là một hình
chữ nhật với:
dưới.
§ Quan hệ giữa các lớp thể hiện bằng
các đường nối giữa các đối tượng.
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 93
Trang 21Mô hình hành vi bằng Biểu đồ tuần tự (sequence diagram)
§ Tác nhân
§ Các đối tượng trong
hệ thống
§ Thông điệp được trao
đổi giữa các đối
if (product.value>$10K) careful.dispatch
else regular.dispatch end if
end for
if (needsConfirmation) messenger.confirm end procedure
Trang 22Mô hình hành vi bằng Biểu đồ cộng tác (collaboration diagram)
9/5/22 Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020 96
2: get course offerings( )
3: get course offerings(forSemester)
4: get course offerings( )
Trang 23Mô hình sự kiện
bên trong và bên ngoài.
kiện là các cung nối các nút.
— Khi một sự kiện xảy ra, hệ thống chuyển từ trạng thái này sang trạng thái khác.
97
Trang 24Mô hình sự kiện bằng Biểu đồ trạng thái (state chart / state machine)
Trang 25§ Là hoạt động thiết kế cấu hình phần cứng và cấu trúc phần mềm(gồm cả chức năng và dữ liệu) để có được hệ thống thỏa mãn cácyêu cầu đề ra.
Trang 26Phân biệt hai giai đoạn
§ Xác định, phân tích, đặc tả yêu cầu
— Hiểu rõ và mô tả đầy đủ Hệ thống làm gì (What?)
— Hành vi của hệ thống, những gì có thể quan sát được từ bên ngoài
§ Thiết kế
— Mô tả giải pháp Hệ thống làm như thế nào (How?)
— Hành vi bên trong của hệ thống, bên trong hệ thống gồm những thành phần
gì và chúng tương tác với nhau như thế nào.
Trang 27Xây dựng mô hình biểu diễn, lưu trữ thông tin
Thiết kế thủ tục, thuật toán để thực hiện chức năng
Xác định các bước thực hiện/tính toán
Thiết kế giao diện người dùng
Giao diện thực đơn, giao diện dòng lệnh, kéo thả, …
Tổng quan thiết kế
Trang 29Mô hình dữ liệu tập trung
Trang 32Mô hình Client – Server
Trang 34§ Ưu điểm
— Chia sẻ tài nguyên
— Hiệu quả sử dụng cao
— Dễ dàng mở rộng thêm dịch vụ
— Dễ dàng nâng cấp
— Thuận tiện cho bảo trì
— Dữ liệu được giữ ở server nên được bảo vệ tốt hơn
§ Nhược điểm
— Số lượng client có thể tăng giảm mà phía server không biết
— Nghiệp vụ và dữ liệu thường để chung phía server
— Server bị hỏng
Trang 36Mô hình phân tầng
Trang 37§ Ưu điểm
— Cho phép thay thế từng tầng một (giữ nguyên giao diện với các tầng khác)
— Thuận tiện cho việc kiểm thử
— Dễ quản lý, dễ thay đổi
— Khả năng tái sử dụng cao
§ Nhược điểm
— Hiệu năng
— Tương tác giữa các tầng theo thiết kế
111
Trang 38Mô hình phân tầng
§ Bố trí các tầng như thế nào?
Trang 39Mô hình phân tầng
§ Bố trí các tầng như thế nào?
Trang 40Mô hình phân tầng
§ Bố trí các tầng như thế nào?
Trang 41Kiến trúc hướng đối tượng
§ Che giấu thông tin
§ Hệ thống được phân rã thành một tập các đối tượng có tương tác với nhau
Trang 42Mô hình MVC
§ Model View Controller
— 1 Model, nhiều View
— Mỗi View có một Controller
Trang 43Các quyết định khi thiết kế
§ Có kiến trúc mẫu nào không? (của một ứng dụng đang được sử dụng nào đó)
§ Làm thế nào để tổ chức ứng dụng? (nghĩa là chia ứng dụng thành các phân hệ)
§ Tương tác giữa các phân hệ như thế nào?
§ Phân rã các phân hệ như thế nào?
§ Những tài liệu mô tả kiến trúc?
§ Làm thế nào để đánh giá?
Trang 443.2.3.Thiết kế chương trình
§ Nội dung chủ yếu trong giai đoạn thiết kế chương trình là:
— Phân chia chương trình thành các mô đun phần mềm
— Xác định mối liên quan giữa các mô đun đó (thông qua lời gọi và các thông tin trao đổi)
— Đặc tả chi tiết thuật toán cho mỗi mô đun
— Gộp các mô đun thành chương trình
— Thiết kế các trường hợp kiểm thử mức đơn vị (unit tests)
118
Trang 453.2.4 Thiết kế các tập tin dữ liệu
— Mô hình thực thể liên kết E-R
— Biểu đồ luồng dữ liệu trong đó đặc biệt quan tâm đến kho dữ liệu
— Hệ Quản trị CSDL có sẵn: Mỗi hệ quản trị CSDL đều có ngôn
ngữ định nghĩa dữ liệu sẵn
Trang 463.2.4 Thiết kế các tập tin dữ liệu
truy cập đến các tập tin dữ liệu phải thuận tiện, tốc độ nhanh.
— Bổ sung thêm một số thuộc tính tính toán, lặp lại một số thuộc tính, ghép một số thực thể (bảng)
— Đôi khi đã chuẩn hóa dữ liệu đạt chuẩn 3 NF, BCNF nhưng để phục
vụ các thao tác tìm kiếm, xử lý nhanh chóng, thì các chuẩn trên có thể
bị phá vỡ thành các chuẩn mức thấp hơn.
Trang 473.2.5 Thiết kế giao diện
§ Các vấn đề khi thiết kế giao diện
§ Quy trình thiết kế giao diện
§ Tạo bản mẫu thiết kế giao diện
§ Biểu diễn thông tin
§ Sử dung màu sắc và thông báo lỗi
121
Trang 48Các vấn đề khi thiết kế giao diện
§ Nên được thiết kế cho phù hợp với kĩ năng, kinh nghiệm và sự trôngđợi của người dùng tương lai của hệ thống
§ Người dùng hệ thống thường đánh giá một hệ thống theo giao diệnthay vì chức năng
§ Một giao diện thiết kế tồi
Trang 49không thích hợp có thể làm người sử dụng căng thẳng và do đó, càng xảy ra nhiều lỗi hơn.
phù hợp với những khả năng của chính họ.
7 loại thông tin Nếu biểu diễn nhiều hơn 7 loại, thì có thể khiến người sử dụng không nhớ hết và gây ra các lỗi.
Các vấn đề khi thiết kế giao diện
Trang 50§ Các nguyên tắc thiết kế giao diên:
sử dụng có thể hiểu được hơn là những khái niệm liên quan đến máy tính.
• Ví dụ: hệ thống văn phòng nên sử dụng các khái niệm như thư, tài liệu, cặp giấy … không nên sử dụng những khái niệm như thư mục, danh mục.
• Ví dụ: các câu lệnh và menu nên có cùng định dạng.
người sử dụng có thể dự đoán các thao tác của những yêu cầu tương tư.
124
Trang 51§ Các nguyên tắc thiết kế giao diện (t):
— Khả năng phục hồi: Hệ thống nên cung cấp một số khả năng phục hồi từ lỗi của người sử dụng và cho phép người sử dụng khôi phục lại từ chỗ bị lỗi Khả năng này bao gồm cho phép làm lại, hỏi lại những hành động như xoá, huỷ …
— Hướng dẫn người sử dụng như hệ thống trợ giúp, hướng dẫn trực tuyến …
— Tính đa dạng: Hỗ trợ nhiều loại tương tác cho nhiều loại người sử dung khác nhau Ví dụ: nên hiển thị phông chữ lớn với những người cận thị.
125
Các vấn đề khi thiết kế giao diện
Trang 52Quy trình thiết kế giao diện
§ Cần sự bàn luận giữa người dùng và nhà thiết kế
§ Phân tích người dùng
— Người dùng sẽ làm gì với hệ thống
§ Làm bản mẫu
§ Đánh giá giao diện
— Người dùng dùng thử để đánh giá hiệu quả
Trang 53Tạo bản mẫu thiết kế giao diện
§ Mục tiêu của bản mẫu là cho phép người dùng có được trải nghiệmtrực tiếp đối với giao diện
§ Nếu không có trải nghiệm trực tiếp, không thể đánh giá khả năng sửdụng một giao diện
§ Quy trình làm bản mẫu có thể có 2 bước:
— Lúc đầu, có thể dùng bản mẫu trên giấy
— Sau đó tinh chỉnh thiết kế, và phát triển các bản mẫu tự động hóa với
độ phức tạp ngày càng tăng.
Trang 54Bản mẫu trên giấy
§ Dùng các bản vẽ nháp về giao diện để duyệt qua các kịch bản
§ Dùng storyboard để trình bày một chuỗi tương tác với hệ thống
§ Bản mẫu giấy là cách thu thập phản ứng của người dùng đối với một
đề xuất thiết kế
Trang 55Bản mẫu trên máy
Trang 56Đánh giá giao diện
§ Cần thực hiện một số đánh giá giao diện để đánh giá mức độ thíchhợp
§ Đánh giá đầy đủ và toàn bộ thì quá đắt và không thực tế cho hầu hếtcác hệ thống
§ Về lí tưởng, một giao diện cần được đánh giá theo một đặc tả về khảnăng sử dụng Tuy nhiên, người ta hiếm khi viết các đặc tả đó
Trang 57Đánh giá giao diện
§ Câu hỏi điều tra để lấy phản hồi của người dùng
§ Quay video về việc sử dụng hệ thống rồi sau đó đánh giá nội dung
§ Cài các đoạn mã thu thập thông tin về các tiện ích được sử dụng vàlỗi của người dùng
§ Phần mềm có chức năng thu thập phản hồi trực tuyến của ngườidùng
Trang 58Biểu diễn thông tin
§ Biểu diễn thông tin có liên quan tới việc hiển thị các thông tin trong hệ thống tới người sử dụng Thông tin có thể được biểu diễn một cách trực tiếp hoặc có thể được chuyển thành nhiều dạng hiển thị khác như: dạng đồ hoạ, âm thanh
Trang 59Biểu diễn thông tin
§ Hai phần cần xem xét khi thiết kế giao diện:
— Người dùng đưa dữ liệu/thông tin vào hệ thống như thế nào
• Các kiểu tương tác để người dùng đưa dữ liệu vào
— Hệ thống cung cấp và biểu diễn dữ liệu ra cho người dùng như thế nào
• Cách biểu diễn thông tin ra cho người dùng
Trang 61Có thể khó cài đặt.
Chỉ thích hợp khi có ẩn dụ hình ảnh cho các tác vụ và đối tượng.
Trò chơi điện tử Các hệ thống dùng drag-n-drop
(Lựa chọn bằng thực
đơn)
Menu selection
Tránh lỗi người dung, không phải gõ nhiều
Chậm chạp đối với người dùng nhiều kinh nghiệm.
Có thể phức tạp nếu có nhiều lựa chọn menu.
Đa số các hệ thống thông dụng
(Điền biểu mẫu)
Form fill-in
Nhập dữ liệu đơn giản, dễ học, kiểm tra được
Tốn không gian màn hình.
Gây rắc rối khi các lựa chọn của người dùng không khớp với các trường của form.
Trang 62Biểu diễn thông tin
§ Người dùng quan tâm đến giá trị hay mối quan hệ dữ liệu
§ Tốc độ thay đổi giá trị
§ Hiển thị dạng văn bản/ số hoặc đồ hoạ
Trang 63Information to be displayed Presentation software
Biểu diễn thông tin
§ Trình bày thông tin hệ thống như thế nào cho người dùng
§ Thông tin có thể được trình bày trực tiếp (ví dụ text trong một trìnhsoạn thảo) hoặc được biến đổi thành một dạng biểu diễn khác (ví dụdạng đồ họa)
Trang 64Biểu diễn thông tin
§ Thông tin tĩnh
— Khởi tạo ở đầu phiên làm việc (session) Không thay đổi trong suốt session.
— Có thể là số hoặc văn bản text.
§ Thông tin động
— Thay đổi trong session và phải được thông báo với người dùng.
— Có thể là số hoặc văn bản text.
Trang 65Biểu diễn thông tin
0
1 000
2 000 3000 4000
Trang 66Biểu diễn thông tin
Trang 68Sử dụng màu sắc
§ Dùng kí hiệu màu để hỗ trợ công việc người dùng đang cố làm.
— Làm nổi bật những điểm người dùng cần chú ý
§ Dùng sự thay đổi màu để báo hiệu thay đổi trạng thái hệ thống Dùng kí hiệu màu một cách cẩn trọng và nhất quán.
— Nếu màu đỏ được dùng cho các thông báo lỗi không nên dùng màu đỏ cho các thông báo dạng khác để tránh người dùng nhầm lẫn các thông báo màu đỏ là thông báo lỗi.
§ Hạn chế số màu và mức độ sặc sỡ Cẩn thận về hiệu ứng cặp đôi của màu sắc.
— Một số tổ hợp màu gây khó đọc Ví dụ người ta không thể cùng lúc chú ý cả màu đỏ và màu xanh lam.
Trang 69Thông báo lỗi
§ Thiết kế thông báo lỗi là phần việc quan trọng
§ Nội dung thông báo nên lịch sự, rõ ràng, nhất quán và có tính xâydựng
§ Thiết kế thông báo lỗi sao cho phù hợp với kỹ năng và kinh nghiệmcủa người dùng
Trang 703.3.1 Khái niệm
§ Lập trình là quá trình chuyển đổi từ thiết kế chi tiết sang mã lệnh
§ Lựa chọn ngôn ngữ lập trình
— Phụ thuộc vào cấu hình máy
— Phụ thuộc vào số lượng ngôn ngữ lập trình sẵn có
— Phụ thuộc vào thói quen sử dụng ngôn ngữ lập trình
— Phụ thuộc vào khách hàng
Trang 73Lập trình tuyến tính
§ Chương trình được viết tuần tự với các câu lệnh thực hiện từ đầu đếncuối
§ Khó biểu diễn cú pháp có cấu trúc (for, while )
§ Thiếu khả năng khai báo biến cục bộ
§ Ngôn ngữ lập trình: assembly,
147
Trang 74Lập trình cấu trúc
§ Phương pháp lập trình thủ tục hay lập trình cấu trúc:
— Hệ thống chia các chức năng (hàm) thành các chức năng nhỏ hơn Các chức năng nhỏ này lại được chia tiếp thành các chức năng nhỏ hơn nữa cho đến khi được các khối (hàm) chương trình đủ nhỏ.
— Việc phân tích này được thể hiện trực quan theo sơ đồ khối.
— Chương trình được tổ chức thành các chương trình con.
§ Chương trình = Cấu trúc dữ liệu + giải thuật