Được áp dụng với các quy trình có giai đoạn phân tích , việc thiết kế chỉ nhận 1 phần kết quả từ giai đoạn xác định yêu cầu , phần chính được nhận từ giai đoạn phân tí[r]
(1)(2)1 Tổng quan thiết kế 2 Kiến trúc phần mềm
3 Phương pháp thiết kế phần mền 4 Ví dụ minh họa
(3)Jens Martensson
Jens Martensson
Mục tiêu việc thiết kế là định hình hệ thống tìm dạng thức
của phần mềm đáp ứng yêu cầu
Dữ liệu đầu vào giai đọn thiết kế: Kết thu từ bước
phân tích trước đó.
3
(4)Mục đích thiết kế:
Hiểu rõ yêu cầu và ràng buộc có liên quan, khả tái sử dụng thành phần
Tạo đầu vào thích hợp điểm xuất phát cho hoạt động thực
Có thể phân rã việc cài đặt thành phần nhỏ dễ quản lý để nhiều nhóm phát triển xử lý đồng thời
Lựa chọn kiến trúc phù hợp với hệ thống
(5)Jens Martensson
Jens Martensson
Có hai phương pháp chính: Thiết kế từ xuống (Top- Down) Thiết kế từ lên (Bottom – Up)
5
(6)Quá trình thiết kế bắt đầu thành phần tổng
quan hệ thống.
Triển khai thành module nhỏ hơn, trình lặp
lại nhiệm vụ trở nên đơn giản cho thuật tốn tính tốn giải được.
(7)Jens Martensson
Jens Martensson
Thiết kế từ lên bắt đầu từ công việc nhỏ cụ
thể, phát triển liên tiếp thành thành phần trừu tượng khi đạt kết mà chức theo yêu cầu người dùng.
7
(8)Thiết kế hệ thống phần mềm có ba cấp độ kết quả:
Thiết kế kiến trúc: Thiết kế kiến trúc phiên trừu tượng cao hệ thống Nó xác định phần mềm hệ thống có nhiều thành phần tương tác với
Thiết kế cấp cao: Thiết kế cấp cao tập trung vào cách hệ thống với tất thành phần thực dạng mô-đun Thiết kế chi tiết: Thiết kế chi tiết liên quan đến phần thực hệ
thống hệ thống con, xác định cấu trúc logic mô-đun giao diện chúng để giao tiếp với module khác
(9)Jens Martensson
Jens Martensson
Thiết kế mẫu: tạo giao diện sơ bộ, bản thiết kế phác
thảo cho người dùng tham khảo trước thiết kế chi tiết
Các thiết kế thực dạng tài liệu kỹ phần mềm thiết kế nhanh MS Visio, MS Visual Basic / C# / C++, MS Front Page / Visual Interdev …
Đây bước đệm trước vào thực chi tiết.
9
(10)Phân rã thiết kế giúp thực hóa phần thiết
mức chi tiết Các nhóm phương pháp phân rã gồm:
Phân rã hướng chức năng Phân rã hướng liệu
(11)Jens Martensson
Jens Martensson
Phân rã hướng chức
Dựa yêu cầu chức để phân rã hướng đến tác nhiệm toàn hệ thống
Sử dụng Sơ đồ phân rã chức (FDD):
– Xác định chức dựa mơ tả tính chất đầu vào đầu – Xác định phạm vi hệ thống
– Phân hoạch chức
– Tạo tảng cho thiết kế kiến trúc hệ thống
11
(12)Phân rã hướng liệu
Tiến trình thiết kế tập trung vào liệu
Chiến lược thiết kế hướng đến đối tượng liệu cần thực Việc phân rã hệ thống dựa việc phân tích liệu, bao gồm sơ đồ luồng
dữ liệu (Data flow diagram - DFD), giúp xem toàn luồng liệu bên hệ thống cách liệu xử lý theo nhiều mức chi tiết khác nhiều biến thể mở rộng khác
(13)Jens Martensson
Jens Martensson
Ví dụ: DFD hệ thống bán vé
13
(14)3.1.1.5 Phân rã thiết kế
Tiếp cận từ xuống (top-down)
Lập sơ đồ luồng liệu cấp (xét tất luồng liệu nhập xuất, tất yêu cầu xử lý)
Phân rã sơ đồ luồng liệu cấp thành sơ đồ luồng liệu cấp 1:
– Phân rã các xử lý thành nhiều xử lý và định luồng liệu tương ứng
– Phân rã các luồng liệu nhập xuất thành nhiều luồng liệu và định xử lý tương ứng
(15)Jens Martensson
Jens Martensson
Nhận xét: Cách tiếp cận từ xuống
Thích hợp với phần mềm có số lượng người dùng, số lượng yêu cầu (nếu ngược lại sơ đồ cấp phức tạp khó lập xác)
Đặc biệt thích hợp với loại phần mềm mà yêu cầu chưa xác định rõ từ đầu (ví dụ phần mềm hệ thống) sử dụng
15
(16)Tiếp cận từ lên (bottom-up)
Lập sơ đồ luồng liệu mức cao nhất.
Tích hợp sơ đồ để tạo sơ đồ có cấp nhỏ theo cách:
– Tích hợp xử lý sơ đồ cấp k vào sơ đồ cấp k-1 giữ nguyên luồng liệu sơ đồ cấp k
– Tích hợp đồng thời xử lý luồng liệu sơ đồ cấp k để tạo lập sơ đồ cấp k-1
– Quá trình kết thúc đạt đến sơ đồ cấp
(17)Jens Martensson
Jens Martensson
Nhận xét: Cách tiếp cận từ lên
Thích hợp với phần mềm có yêu cầu chi tiết, cụ thể có quy mơ trung bình
Khó thực với dự án có quy mơ lớn yêu cầu chưa rõ ràng chi tiết
17
(18)Hướng tiếp cận phối hợp:
Lập sơ đồ luồng liệu cấp k theo tiêu chí xác định
Phân rã sơ đồ cấp k thành nhiều sơ đồ cấp k+1 tiếp tục đạt sơ đồ
Tích hợp sơ đồ cấp k thành sơ đồ cấp k-1 tiếp tục đạt sơ đồ cấp
Nhận xét
Cách tiếp cận phối hợp thích hợp cho phần mềm có quy mơ u cầu lớn, phức tạp
Được dùng nhiều thực tế.
(19)Jens Martensson
Jens Martensson
Lập sơ đồ luồng liệu cho công việc
Việc lập sơ đồ luồng liệu cho toàn phần mềm trở thành lập sơ đồ luồng liệu cho công việc.
Sau tích hợp để có sơ đồ cấp 0.
Quá trình lập sơ đồ luồng liệu cho công việc tiến hành qua bước
– Xác định liệu nhập – Xác định liệu xuất – Mô tả cách xử lý
19
(20)Bước 1: Xác định liệu nhập, dữ liệu nhập phải thỏa điều kiện sau:
– Khơng nhập vào liệu tính tốn dựa quy định hay cơng thức có
– Khơng nhập vào liệu lưu trữ trước
– Dữ liệu nhập từ thiết bị nhập khác xem xét có yêu cầu đặc biệt số phần mềm đặc biệt như: hệ thống thời gian thực, hệ thống đồ, nhập qua điện thoại tổng đài …
(21)Jens Martensson
Jens Martensson
Bước 2: Xác định liệu xuất
Cần phải có thơng báo giúp người dùng biết kết xử lý hệ thống Ví dụ thơng báo việc mượn sách không hợp lệ …
Tăng tính tiện dụng: tất xử lý (kể xử lý lưu trữ, tính tốn) cần phải xuất cho người dùng thông tin kết
Tất liệu xuất hình phải xuất máy in Đối với loại thiết bị xuất khác cần phải có loại phần mềm đặc biệt
21
(22)Bước 3: Mô tả Xử lý
– Chỉ mô tả cách xử lý mà không cần ý đến cách thực nhập xuất – Khi mô tả cách sử dụng liệu nhập để tạo liệu xuất, việc mô tả
chi tiết việc thiết kế xử lý dễ dàng – Chỉ trọng đến tính đắn
– Mơ tả xác thứ tự nhập/xuất
(23)Jens Martensson
Jens Martensson
Xây dựng mô hình thực thể kết hợp (ERD)
Mơ hình ERD dạng sơ đồ giúp thể đối tượng liệu
được đặc tả yêu cầu phần mềm, tạo tảng cho việc thiết kế chi tiết sở liệu cho phần mềm.
23
(24)Phân rã hướng đối tượng
Một hệ thống phần mềm được xem tập hợp đối tượng, đối tượng có cấu trúc liệu hành vi
Phân rã hướng đối tượng hướng đến tính đồng liệu, hành vi dựa che dấu thống tin dẫn xuất kế thừa
(25)Jens Martensson
Jens Martensson
Thiết kế giao diện người dùng
Thiết kế giao diện được hỗ trợ phần thiết kế dạng mơ hình
bản mẫu (prototype) nhằm làm rỏ yêu cầu từ người dùng đáp ứng yêu cầu giao diện
Nếu khách hàng đồng ý với mẫu đưa giai đoạn xác định yêu cầu, kỹ sư thiết kế hồn chỉnh thêm để đảm bảo xác u cầu người dùng
25
(26)Các yếu tố cần quan tâm thiết kế giao diện
Chế độ (modes):
– Trường hợp mà người dùng thực số thao tác giới hạn
– Kỹ thuật tạo/sử dụng cửa sổ cung cấp dịch vụ có giá trị biểu diễn chế độ chương trình, giúp thực thao tác cửa sổ khác thể chế độ chương trình khác
(27)Jens Martensson
Jens Martensson
Thanh menu: giúp người dùng chọn lệnh chương trình Có hai dạng menu
– Dạng Pop-up menu: menu xuất vị trí
– Dạng Pull-down menu: là dạng mở rộng tập lệnh dễ dàng sử dụng Có thể phân loại menu theo tập lệnh thao tác với tham số, tập lệnh chuyển
đối chế độ người dùng
27
(28)Dialog window: dạng hộp thoại giúp người dùng tương tác với chương trình linh hoạt
– Khi thiết kế hộp thoại, ta cần đảm bảo tính đồng giao diện người dùng, nên ngắn gọn cô động cách đặt nhãn Label, Checkbox, Button, List box
Màu sắc Màu dùng nơi cần làm bật yêu cầu cần nhấn mạnh nội dung, dấu hiệu cảnh báo nguy hiểm
– Nên sử dụng màu hài hòa toàn hệ thống
– Sử dụng màu phải phù hợp với loại giao diện chương trình
(29)Jens Martensson
Jens Martensson
Âm Thanh cách tốt tập trung ý người dùng Chúng phần mềm phù hợp tình xử lý lỗi, kiện không chắn, tạm thời
– Nên tạo âm khác với kiện khác nhau, tránh dùng âm gây ồn
Tính kiên định
– Thanh lệnh: với chức giống nên có vị trí giống
– Phím tắt: nên dùng cho số chức phần mềm nên cố định – Nút lệnh chức tương tự nên có nhãn vị trí giống nhau
29
(30)Thiết kế hướng chức năng: tập trung vào thuật toán để giải
quyết vấn đề
Xem thuật tốn như hàm tính tốn với tham số đầu vào Tại thời điểm bắt đầu giai đoạn thiết kế, thuật toán chưa xác định
Cần xây dựng thuật toán để giải tác nhiệm khó phức tạp phần mềm
Việc module hóa để phân rã công việc thành các công việc độc lập dựa vào thuật tốn xử lý cơng việc
Kết chung của giải pháp dựa thuật toán gộp lại.
(31)Jens Martensson
Jens Martensson
Thiết kế hướng đối tượng tổ chức thiết kế xoay quanh
đối tượng mối liên hệ chúng, bao gồm:
Thiết kế lớp đối tượng: xây dựng lớp đối tượng bao gồm thuộc tính hành vi đối tượng,
Thiết kế giao diện: xây dựng giao diện (interface) lớp đối tượng tương ứng với trách nhiệm lớp đối tượng
Thiết kế liệu: thiết kế cách thức tổ chức lưu trữ đối tượng nhớ phụ
Khả tái sử dụng: đóng vai trị quan trọng lập trình hướng đối tượng
31
(32)Kiến trúc phần mềm chương trình máy tính cấu trúc
của thành phần bên hệ thống, mối quan hệ (cấu trúc) cách tương tác thành phần với nhau.
Kiến trúc phần mềm bao gồm phần tử chức năng, thuộc tính mối quan hệ chúng
Kiến trúc phần mềm giúp việc định mức cao thiết kế phần mềm dễ dàng cho phép tái sử dụng các thành phần mẫu thiết kế dự án
(33)Jens Martensson
Jens Martensson 33
(34)Kiến trúc phần mềm bao gồm thành phần bản: Giao
diện, Xử lý, Dữ liệu
Khi thiết kế phần mềm, nhóm thiết kế phải chọn lựa định “vật liệu” dùng thành phần
Kết trình bày bảng vẽ, dạng tài liệu kỹ thuật, tạo thành mơ hình phần mềm
(35)Jens Martensson
Jens Martensson
Thành phần Giao diện
Nội dung hình thức trình bày chức giao tiếp
Các thao tác người dùng giao diện để thực giao tiếp chức xử lý
Thành phần Xử lý:
Các kiểu liệu mô tả cách tổ chức lưu trữ nhớ
Các hàm thực xử lý (ví dụ kiểm tra tính hợp lệ việc cho mượn sách, ghi vào sổ việc cho mượn sách …)
35
(36)Thành phần Dữ liệu:
cách tổ chức lưu trữ liệu nhớ
Cách lưu trữ liệu sử dụng phần mềm,
Hệ thống thành phần lưu trữ mối quan hệ liệu.
(37)Jens Martensson
Jens Martensson
Một số mơ hình kiến trúc mẫu Model-ViewController – MVC
Kiến trúc phân tầng Kiến trúc client-server
37
(38)Kiến trúc Model-View-Controller – MVC
Hệ thống cấu trúc thành ba thành phần logic tương tác với nhau. – Model : quản lý liệu hệ thống thao tác liệu
– View : định nghĩa quản lý cách liệu hiển thị cho người dùng – Controller: Quản lý tương tác người dùng (VD, ấn phím, nhấp chuột, )
và chuyển tương tác tới View Model
(39)Jens Martensson
Jens Martensson
Kiến trúc Model-View-Controller – MVC
Hoạt động MVC
Controller chuyển yêu cầu liệu người dùng cho Model. Model Lấy liệu chuyển cho Controller.
Controller chuyển liệu cho View
View Hiển thị thông tin cho người dùng.
39
(40)Kiến trúc Client-Server (máy khách-máy chủ) là mơ hình
máy tính, máy chủ (server), cung cấp quản lý hầu hết các nguồn lực dịch vụ cho máy khách (client).
(41)Jens Martensson
Jens Martensson
Kiến trúc Layer: gồm có thành phần: Presentation Layers,
Business Logic Layers, Data Access Layers
Presentation Layers: làm nhiệm vụ giao tiếp với người dùng cuối để thu thập liệu hiển thị kết giao diện
Busines Logic Layers: xử lý liệu trước chuyển xuống Data Access Layer để lưu liệu xuống sở liệu
Data Access Layers: thực nghiệp vụ liên quan đến lưu trữ truy xuất liệu ứng dụng đọc, lưu, cập nhật sở liệu
41
(42)Kiến trúc Layer: Cách vận hành:
Người dùng giao tiếp với tầng giao diện (GUI) để gửi yêu cầu, thông tin kiểm tra, OK, liệu chuyển xuống tầng nghiệp vụ (BLL)
Tại BLL, thông tin xử lý, không cần đến Database BLL gửi trả kết GUI, ngược lại liệu đưa xuống tầng truy cập liệu (DAL)
DAL thao tác với Database trả kết cho BLL, BLL kiểm tra gửi cho GUI để hiển thị cho người dùng
(43)Jens Martensson
Jens Martensson
Phương pháp trực tiếp
Phương pháp áp dụng thực phần mềm không qua giai đoạn phân tích, việc thiết kế nhận kết đươc chuyển giao trực tiếp từ giai đoạn xác định yêu cầu
Đối với phương pháp trực tiếp: Thiết kế phần mềm trình chuyển đổi từ các u cầu đến mơ hình phần mềm tương ứng
Cách tiếp cận rất khó phần mềm có quy mơ lớn
43
(44)Phương pháp gián tiếp
Được áp dụng với các quy trình có giai đoạn phân tích, việc thiết kế nhận phần kết từ giai đoạn xác định yêu cầu, phần nhận từ giai đoạn phân tích, PM xây dựng dựa mơ hình giai đoạn phân tích
Cách tiếp cận thích hợp với phần mềm có quy mơ lớn
Đối với phương pháp gián tiếp: Thiết kế PM trình chuyển từ kết
giai đoạn phân tích đến mơ hình phần mêm tương ứng
(45)Jens Martensson
Jens Martensson
Ví dụ minh họa trình thiết kế phần mềm sau thực giai
đoạn mơ hình hóa yêu cầu.
Thiết kế phần mềm quản lý thư viện với 4 yêu cầu: Lập thẻ đọc giả, Nhận sách, Cho mượn sách, Trả sách
Mơ hình hóa u cầu:
45
(46)Thiết kế phần mềm: Hệ thống hình giao diện
Màn hình
Nội dung: Thông tin thư viện, Thông tin độc giả, Thông tin sách Thao tác người dùng: Tra cứu chọn độc giả, Tra cứu chọn sách
Màn hình Lập thẻ
Nội dung: Thông tin thẻ độc giả
Thao tác người dùng: Nhập thông tin thẻ, Yêu cầu lập thẻ
(47)Jens Martensson
Jens Martensson
Màn hình cho mượn sách
Nội dung: Thông tin thẻ độc giả (Ngày mượn sách, Danh mục sách) Thao tác người dùng: Nhập thông tin mượn sách, Yêu cầu mượn sách.
Màn hình Nhận sách
Nội dung: Ngày nhận sách, Danh mục sách nhận & thông tin liên quan
Thao tác người dùng: Nhập thông tin việc cho nhận sách, Yêu cầu cho nhận sách
Màn hình Trả sách
Nội dung: Ngày trả sách, Thơng tin việc trả sách
Thao tác người dùng: Nhập thông tin trả sách, Yêu cầu trả sách.
47
(48)Hệ thống hàm xử lý
Hàm lập thẻ: Kiểm tra tính hợp lệ lưu thẻ vào kho
Hàm Tra cứu độc giả: Tìm thẻ độc giả theo tiêu chuẩn khác
phép cập nhật hay xóa thẻ
Hàm Xóa thẻ: Xóa thẻ kho
Hàm Nhập sách: Kiểm tra tính hợp lệ sách lưu sách vào kho Hàm Xóa sách: Xóa sách kho
Hàm Cho mượn sách: Kiểm tra tính hợp lệ việc cho mượn sách ghi
nhận thông tin cho mượn sách vào kho
Hàm Tra cứu sách: Tìm sách theo tiêu chuẩn khác phép cập
(49)Jens Martensson
Jens Martensson
Hàm Tính số sách độc giả mượn: tổng số sách độc giả mượn
Hàm Kiểm tra độc giả mượn sách hạn: Kiểm tra độc giả có sách mượn
quá hạn trả đúng, sai
Hàm Kiểm tra tình trạng sách: Kiểm tra sách mượn, hàm trả
nếu sai
Hàm Tra cứu phiếu cho mượn sách: Tra cứu phiếu mượn sách theo
nhiều tiêu chuẩn để cập nhật hay số phiếu cho mượn
Hàm Xóa phiếu cho mượn sách: Xóa thông tin việc mượn sách kho Hàm Trả sách: Ghi nhận việc trả sách kho
Hàm Tính tiền phạt: Tính tiền phạt độc giả trả sách trễ hạn
49
(50)Hệ thống bảng liệu
Bảng THU_VIEN: thông tin thư viện Bảng DOC_GIA: thông tin độc giả Bảng SACH: thông tin sách
Bảng MUON_SACH: thông tin mượn trả sách
(51)Jens Martensson
Jens Martensson
1 Theo nguyên tắc, Kỷ luật thứ ba gì?
A Triển khai B Thực
C Mơ hình hóa kinh doanh D Thiết kế
51
(52)2 Các bước gọi Quy trình hợp (UP) gì
A Lặp lại (Iterations)
B Vòng đời phát triển hệ thống(System Development Life Cycle) C Kỷ luật (Disciplines)
D Kiến trúc thông tin (Information Architecture)
(53)Jens Martensson
Jens Martensson
3 KHÔNG phải hoạt động thiết kế chi tiết?
A Thiết kế phần mềm ứng dụng
B Thiết kế chế lưu phục hồi hệ thống
C Thiết kế giao diện người dùng hệ thống bên D Thiết kế kiến trúc
53
(54)4 yêu cầu ràng buộc xác định đặc điểm quan trọng tài nguyên xử lý thông tin cách chúng tương tác.
A Kiến trúc hệ thống B Kiến trúc thông tin
C Kiến trúc Internet D Thực