1. Trang chủ
  2. » Tất cả

Slide 1

31 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 1,03 MB

Nội dung

Slide 1 1 Bài 6 Thiết kế chi tiết Phân tích và thiết kế hướng đối tượng với UML Nội dung  Phân tích là để trả lời câu hỏi “what” và chỉ tập trung đáp ứng các yêu cầu chức năng đối với hệ thống,  Thi[.]

Phân tích thiết kế hướng đối tượng với UML Bài Thiết kế chi tiết Nội dung  Phân tích để trả lời câu hỏi “what” tập trung đáp ứng yêu cầu chức hệ thống,  Thiết kế để trả lời câu hỏi “how” lại tập trung đáp ứng yêu cầu phi chức (tiện dùng, hiệu năng, thích ứng với phần cứng…) hệ thống  Thiết kế chi tiết đưa thêm vào mơ hình phân tích nhiều lớp để đáp ứng yêu cầu phi chức  Trật tự trình bày: I Mục đích thiết kế chi tiết II Quy trình thiết kế chi tiết III Thiết kế chi tiết tầng IV Bài tập tổng hợp I Mục đích thiết kế chi tiết  Trong phân tích, ta tập trung nghiên cứu cấu trúc lôgic thông tin, cần thiết cho việc xây dựng giải pháp nghiệp vụ Nói cách khác phân tích ln ln triển khai theo nhãn quan ứng dụng, chưa tính tới điều kiện công nghệ  Trong thiết kế, đặc biệt thiết kế chi tiết, ta cần nghiên cứu phương cách tốt để cài đặt cấu trúc lơgic nói trên, nhằm tối ưu hố hiệu ứng dụng Như thiết kế lại phải triển khai theo nhãn quan kỹ thuật lệ thuộc vào khả hạn chế máy tính I Mục đích thiết kế chi tiết (tt)  Việc thiết kế chi tiết tiếp nhận đầu vào mơ hình thiết lập từ bước phân tích thiết kế hệ thống trước đây, bao gồm mơ hình cấu trúc (các biểu đồ lớp, thành phần, hệ con, kiến trúc phân tầng nút) mơ hình động thái (các biểu đồ ca sử dụng, tương tác, máy trạng thái giao diện người dùng)  Kết đầu thiết kế chi tiết phải mơ hình sẵn sàng cho lập trình, nghĩa phải bao gồm định cài đặt, thích ứng với ngơn ngữ lập trình mơi trường cài đặt chọn lựa (hay sẵn có) Mơ hình lại diễn tả thơng qua biểu đồ UML (kết hợp với tư liệu văn tự) II Quy trình thiết kế chi tiết  Bước thiết kế chi tiết tiến hành theo quy trình lặp diễn tả hình sau: II Quy trình thiết kế chi tiết Thiết kế lớp Thiết kế lớp đưa nhiều thay đổi lớp phân tích Đó là: a) Phân bổ lại hay giải phóng bớt trách nhiệm cho lớp phân tích  Khi phân tích, lớp đưa theo nhu cầu, mà chưa tính đến hiệu hay thích ứng với điều kiện kỹ thuật Vì thiết kế cần có phân bổ lại trách nhiệm, theo nhiều mục đích khác nhau, như: • Rút nhiệm vụ có tính chất kỹ thuật khỏi lớp phân tích; • Phân bổ lại trách nhiệm, đặc biệt trao đổi thông điệp kiện, cho phù hợp với yêu cầu kiến trúc phân tầng; • Chuyển việc lưu giữ kết trung gian hay việc thực nhiệm vụ cấp thấp cho lớp II Quy trình thiết kế chi tiết (tt) b) Thêm lớp để cài đặt cấu trúc liệu  Khi phân tích, nhiều cấu trúc liệu xem mặc định Trong thiết kế, cấu trúc liệu phải xem xét việc cài đặt  Thường nhiều cấu trúc liệu có sẵn thư viện ngơn ngữ lập trình, mảng, danh sách, hàng đợi, ngăn xếp, tập hợp, túi (bag), từ điển (dictionary), II Quy trình thiết kế chi tiết (tt) c) Thêm lớp để cài đặt khái niệm phân tích  Có nhiều khái niệm dùng phân tích, khơng có ngơn ngữ lập trình, cần phải tìm cách để cài đặt chúng lớp thiết kế  Một thí dụ điển hình máy trạng thái • Có nhiều cách để cài đặt máy trạng thái Trong ngôn ngữ lập trình theo thủ tục, máy trạng thái cài đặt cách mô phỏng, cách điều khiển bảng • Trong khn khổ ngơn ngữ lập trình hướng đối tượng, ta cài đặt theo mẫu thiết kế State II Quy trình thiết kế chi tiết (tt) d) Thêm lớp mục đích tối ưu hố Nhiều biện pháp tối ưu hoá thực cách đưa thêm lớp  Các siêu lớp: Ta gọi siêu lớp (metaclasse) lớp mà đối tượng lại lớp • Khi xem xét lớp XX, mà ta thấy trách nhiệm nó, có trách nhiệm khơng thuộc riêng đối tượng, mà thuộc vào nhóm (loại) đối tượng, ta thêm lớp LoạiXX (hay KiểuXX) phân bố lại thuộc tính liên kết hai lớp II Quy trình thiết kế chi tiết (tt) d) Thêm lớp mục đích tối ưu hố (tt) • Kết nối lớp XX với lớp LoạiXX liên kết nhiều-1, thường chiều, hướng tới LoạiXX Lớp LoạiXX siêu lớp, đối tượng (một loại) lại tập hợp đối tượng • Ưu điểm giải pháp tránh lặp lại nhiều lần giá trị thuộc tính siêu lớp đối tượng lớp XX II Quy trình thiết kế chi tiết (tt)  Các lớp dẫn xuất: Nếu ta muốn loại bỏ tính tốn lại, để tăng hiệu năng, ta lập đối tượng/lớp để lưu giữ thuộc tính (dữ liệu) dẫn xuất Tuy nhiên cần nhớ phải cập nhật thuộc tính dẫn xuất thuộc tính sở thay đổi Việc thực cách sau: • Mã tường minh: Đưa thêm mã vào phương thức cập nhật thuộc tính lớp sở Các mã lệnh thêm cập nhật cách tường minh thuộc tính dẫn xuất, thuộc tính sở cập nhật • Tính tốn lại cách định kỳ: Khi giá trị sở thay đổi đồng loạt (không lẻ tẻ), ta thực tính tốn lại cách định kỳ sau giá trị sở thay đổi II Quy trình thiết kế chi tiết (tt) • Triggers: Khi thuộc tính sở có nhiều thuộc tính dẫn xuất từ cập nhật, trigger (một thủ tục tự khởi động kiện định trước xẩy ra) kích hoạt báo cho đối tượng chứa thuộc tính dẫn xuất biết thuộc tính sở thay đổi giá trị Sau đối tượng chứa thuộc tính dẫn xuất có trách nhiệm cập nhật thuộc tính dẫn xuất II Quy trình thiết kế chi tiết (tt)  Các lớp cha: Khi có thao tác hay thuộc tính phát nhiều lớp khác nhau, đưa vào lớp cha để lớp nói sử dụng theo cách thừa kế • Tuy nhiên, thao tác lớp khác thường tương tự nhau, chưa thực đồng Bấy ta phải điều chỉnh tiêu đề thao tác nhiều (đổi tên, thêm tham số…) quy dịch vụ tương tự vào một, để tổ chức thành thừa kế • Các biện pháp tổ chức thừa kế nói có ích theo mục đích tối ưu hố Tuy nhiên ta khơng nên lạm dụng biện pháp kỹ thuật tuý để "cưỡng bức" lớp xa lạ với ngữ nghĩa vào phả hệ Điều dẫn tới hiệu ứng phụ khó mà lường trước II Quy trình thiết kế chi tiết (tt) Thiết kế liên kết  Khái niệm liên kết khơng có sẵn ngơn ngữ lập trình Ta phải biến đổi thành thuộc tính hay bảng thuộc tính, tuỳ theo số Cùng với thuộc tính đưa thêm đó, lại phải có thêm thao tác để sử dụng quản lý thuộc tính II Quy trình thiết kế chi tiết (tt)  Nếu liên kết chiều (như hình vừa rồi), thuộc tính đưa vào phía (phía gốc lưu hành) Nhưng liên kết hai chiều, thuộc tính cài đặt phải đưa vào hai phía (nhưng đưa vào phía thực tìm kiếm phía kia)  Khi đưa thuộc tính thể liên kết vào hai phía, lại phải bảo đảm tính đồng Chẳng hạn, với liên kết hai chiều lớp Sinhviên lớp TrườngĐH, ta phải bảo đảm sinh viên biết trường mà học, trường phải có sinh viên danh sách sinh viên trường Tính đồng phải bảo đảm thao tác quản lý thuộc tính thể liên kết II Quy trình thiết kế chi tiết (tt)  Các liên kết lại thường kèm theo nhiều ràng buộc Chẳng hạn số (quy định số lượng tối đa tối thiểu), hợp thành (ràng buộc tồn đồng thời toàn thể phận), hạn định (cho phép thu hẹp số) tính chất {OR}, {AND}, {subset} Các ràng buộc phải bảo đảm thao tác sử dụng quản lý thuộc tính thể liên kết II Quy trình thiết kế chi tiết (tt)  Chẳng hạn, ta cài đặt liên kết kết nhập khơng có khác biệt, cài đặt hợp thành, lại phải ý lần huỷ bỏ tồn thể, phải huỷ bỏ phận  Hạn định cài đặt cách thay vectơ bảng băm (Hashtable) mà khố có kiểu hạn định II Quy trình thiết kế chi tiết (tt)  Khi liên kết có thuộc tính, khơng có thao tác, liên kết cài đặt sau: • Nếu liên kết một-một, thuộc tính liên kết đưa vào hai lớp tham gia liên kết; • Nếu liên kết nhiều-một, thuộc tính liên kết đưa vào lớp đầu nhiều • Nếu liên kết nhiều-nhiều, tốt lập riêng lớp liên kết chứa thuộc tính liên kết  Với trường hợp liên kết hai ngơi có thuộc tính thao tác, với trường hợp liên kết nhiều ngôi, ta phải lập thành lớp liên kết Một lớp liên kết tập hợp đôi (hay n) đối tượng thuộc lớp tham gia liên kết II Quy trình thiết kế chi tiết (tt) Thiết kế thuộc tính  Việc thiết kế thuộc tính chủ yếu định nghĩa kiểu cho thuộc tính đưa phân tích • Mặc dù phần lớn thuộc tính thuộc kiểu sở có sẵn ngơn ngữ lập trình, song có thuộc tính tương ứng với cấu trúc liệu cần làm rõ • Các cấu trúc liệu diễn tả lớp, song để phân biệt chúng với lớp bình thường, ta đưa thêm khn dập Với kiểu liệt kê, ta dùng khn dập • Trong cấu trúc liệu này, thuộc tính cơng cộng, cần có thêm thao tác liên quan II Quy trình thiết kế chi tiết (tt)  Thiết kế thuộc tính cịn xác định tầm nhìn cách truy cập vào chúng • Mặc định, thuộc tính riêng tư • Các tính chất UML gắn cho thuộc tính {frozen}, {changeable} hay {readOnly} cần thực ngầm thao tác truy cập: - Các thuộc tính {changeable} cần có thao tác truy cập set get - Tính chất {frozen} địi hỏi phải khởi tạo thuộc tính cấu tử (constructor) lớp Điều thường thực thông qua tham số khởi tạo - Với thuộc tính {readOnly} có thao tác get mà khơng có thao tác set 10 III Thiết kế chi tiết tầng (tt) b) Tối ưu hố việc tải nạp thơng tin từ thực thể  Trong hệ phân tán, đối tượng thực thể thường cư trú cách phân tán, làm cho việc truy cập vào chúng trở nên tốn Để tối ưu hố việc tải nạp thơng tin từ thực thể tới tầng ứng dụng (cho tài liệu), ta phải tìm cách giảm thiểu số lần truy cập Muốn thế, ta phải ghi nhớ thông tin tải nạp, để tránh việc truy cập lặp lặp lại thực thể III Thiết kế chi tiết tầng (tt) b) Tối ưu hoá việc tải nạp thông tin từ thực thể (tt)  Người ta dùng catalô tham chiếu đối tượng thực thể theo OID (Object identifier) chúng • Để tối ưu hố, catalơ tổ chức thành catalơ con, xếp theo tên lớp, để từ tìm đến đối tượng theo OID • Giao diện "ThthểThànhphần" biểu diễn cho thực thể đến từ thành phần phân tán Khi tải nạp thực thể, đối tượng giao diện ThthểThànhphần tạo lập để ghi nhận thơng tin tải nạp • Nhờ lần tải nạp sau tìm lại thông tin (trong catalô) mà truy cập trực tiếp vào thực tế 17 III Thiết kế chi tiết tầng (tt) Tổ chức catalô để lưu giữ thông tin tải nạp: III Thiết kế chi tiết tầng (tt) c) Tổ chức kiểm sốt chặt chẽ q trình tương tác với người dùng  Khi làm việc với cửa sổ, người dùng phát lệnh (command) cách kích vào nút hay kích vào khoản đơn chọn Lệnh có mục đích gọi thao tác đối tượng tài liệu, ứng với cửa sổ đó: 18 III Thiết kế chi tiết tầng (tt)  Tuy nhiên lệnh phát từ cửa sổ truyền trực tiếp tới lài liệu (nơi nhận lệnh), nhiều lý do: • Lệnh cần bị chặn lại để kiểm tra quyền sử dụng; • Lệnh phải lưu giữ lại, để đưa vào hàng đợi, đến lượt thực hiện; • Dãy lệnh thực liên tiếp cần phải quản lý ghi nhớ để cần trở lại (undo), hay phục hồi (redo) • Có lệnh cịn phải tham số hố để thích ứng theo hồn cảnh cụ thể  Tất u cầu quản lý lệnh khơng thể giao cho cửa sổ phụ trách được, cửa sổ thiết kế theo dụng cụ (toolkit), phải giữ tính độc lập với ứng dụng Vậy ứng dụng phải tổ chức lấy việc quản lý lệnh cách chặt chẽ sát với yêu cầu III Thiết kế chi tiết tầng (tt) Thiết kế tầng nghiệp vụ  Tầng nghiệp vụ nơi trú ngụ lớp thực thể phản ảnh lĩnh vực ứng dụng Đây tầng ổn định (ít bay biến) có khả tái sử dụng cao  Bước đầu, lớp thực thể bao gồm thuộc tính thao tác phát giai đoạn trước Tuy nhiên sau ta phải đưa thêm: • Các thao tác get (lấy) let (đặt) cho thuộc tính, thuộc tính khai báo riêng tư; • Các dịch vụ mà lớp thực thể phải cung ứng, nhằm đáp ứng yêu cầu tìm kiếm thơng tin theo sắc thái hệ thống; • Các thao tác đáp lại yêu cầu cập nhật, cách chuyển tác dụng cập nhật xuống tầng (tầng lưu trữ liệu) 19 III Thiết kế chi tiết tầng (tt) Thiết kế việc lưu trữ liệu  Có đối tượng cần phải lưu trữ lại cách lâu dài (trên nhớ ngồi), khơng thể để với kết thúc chương trình Gọi đối tượng trường cữu (persistent) Thường đối tượng thực thể, đối tượng biên (giao diện) hay đối tượng điều khiển III Thiết kế chi tiết tầng (tt) a) Chọn lựa cách lưu trữ liệu  Việc mơ hình hố hệ thống lớp đối tượng tạo nhiều thuận lợi cho việc lưu trữ liệu Tuy nhiên ngày có ba cách lưu trữ dùng:  Các hệ thống tệp (tập tin): Đó phương tiện lưu trữ thơ sơ Lưu trữ liệu tệp không gây nên tốn Tuy nhiên cho phép đọc viết đối tượng, mà khơng có khả đặt câu hỏi tìm kiếm liệu phức tạp Vì dùng với hệ thống có tầm quan trọng đáng kể 20 ... giao diện theo kiện kích hoạt từ phía người dùng Có tương ứng 1- 1 View Controller Thông thường View + Controller tạo nên tầng trình bày 14 III Thiết kế chi tiết tầng (tt) Thiết kế tầng ứng dụng ... "tài liệu" (document), giao diện người dùng truy cập vào tài liệu để lấy tin Thường có tương ứng 1- 1 khung nhìn tài liệu, song tài liệu tương ứng với hay nhiều đối tượng thực thể III Thiết kế chi... đích đề cập mục thiết kế lớp II Quy trình thiết kế chi tiết (tt)  Thí dụ: Thiết kế thuộc tính 11 II Quy trình thiết kế chi tiết (tt) Thiết kế thao tác  Thiết kế thao tác bước cuối vòng lặp

Ngày đăng: 26/11/2022, 16:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN