Nghiên cứu mẫu thiết kế kiến trúc phần mềm trong java

74 11 0
Nghiên cứu mẫu thiết kế kiến trúc phần mềm trong java

Đ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

ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN QUANG HUY NGHIÊN CỨU MẪU THIẾT KẾ KIẾN TRÚC PHẦN MỀM TRONG JAVA LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Ngun - 2010 Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN QUANG HUY NGHIÊN CỨU MẪU THIẾT KẾ KIẾN TRÚC PHẦN MỀM TRONG JAVA Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC PGS TS Đặng Văn Đức Thái Nguyên - 2010 Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn -i- LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Nghiên cứu mẫu thiết kế kiến trúc phần mềm Java” công trình nghiên cứu tơi hướng dẫn khoa học PGS.TS Đặng Văn Đức, tham khảo nguồn tài liệu rõ trích dẫn danh mục tài liệu tham khảo Các nội dung công bố kết trình bày luận văn trung thực chưa công bố cơng trình Thái Ngun, tháng 10 năm 2010 Nguyễn Quang Huy Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - ii - Lời cảm ơn Tôi xin gửi lời cảm ơn sâu sắc tới PGS.TS Đặng Văn Đức – Viện Công nghệ thơng tin, người tận tình có bảo cần thiết để giúp đỡ suốt trình nghiên cứu phát triển luận văn Xin chân thành cảm ơn quý Thầy cô khoa Sau đại học trường Đại học Thái Nguyên nhiệt tình giảng dạy, trang bị cho kiến thức quý báu suốt thời gian học tập trường Xin chân thành cảm ơn bạn lớp, đồng nghiệp đơn vị nơi công tác tạo điều kiện cho tơi hồn thành luận văn Xin gửi lời cảm ơn tới gia đình tơi động viên tơi suốt q trình học hồn thành luận văn Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - iii - MỤC LỤC LỜI CAM ĐOAN i MỤC LỤC iii DANH MỤC CÁC TỪ VIẾT TẮT v MỞ ĐẦU CHƢƠNG I TỔNG QUAN VỀ MẪU THIẾT KẾ VÀ NGÔN NGỮ MƠ HÌNH HĨA THỐNG NHẤT UML 1.1 Tổng quan mẫu thiết kế 1.1.1 Vấn đề thiết kế phần mềm hướng đối tượng 1.1.2 Lịch sử Mẫu thiết kế 1.1.3 Mẫu thiết kế ? 1.1.4 Một số vấn đề mẫu thiết kế 1.2 Ngơn ngữ mơ hình hóa thống UML 1.2.1 Khái quát UML 1.2.2 Biểu đồ lớp (Class Diagrams) 1.2.3 Lược đồ trình tự (Sequence Diagrams) 14 Chƣơng II CÁC MẪU THIẾT KẾ KIẾN TRÚC PHẦN MỀM TRONG JAVA 16 2.1 Mẫu khởi tạo 16 2.1.1 Factory Method 16 2.1.2 Singleton 17 2.1.3 Abstract Factory 18 2.1.4 Prototype 20 2.1.5 Builder 20 2.2 Mẫu cấu trúc 22 2.2.1 Decorator 22 2.2.2 Adapter 23 2.2.3 Faỗade 24 2.2.4 Proxy 25 2.2.5 Bridge 26 2.2.6 Composite 28 Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - iv - 2.2.7 Flyweight 30 2.3 Mẫu hành vi 31 2.3.1 Mẫu Chain of Responsibility 32 2.3.2 Command 35 2.3.3 Interperter 37 2.3.4 Iterator 38 2.3.5 Mediator 39 2.3.6 Memento 40 2.3.7 Observer 41 2.3.8 Sate 42 2.3.9 Strategy 43 2.3.10 Template Method 44 2.3.11 Visitor 45 2.4 Mẫu tương tranh 46 2.4.1 Critical Section 46 2.4.2 Consistent Lock Order 49 2.4.3 Guarded Suspension 51 2.4.4 Read-Write Lock 52 Chƣơng III PHÁT TRIỂN CHƢƠNG TRÌNH THỬ NGHIỆM 55 3.1 Cơ sở lý thuyết 55 3.1.1 Giao dịch phân tán 55 3.1.2 Các vấn đề xung đột liệu số giải thuật điều khiển 56 3.2 Xây dựng chương trình thử nghiệm 60 3.2.1 Sơ đồ UML 60 3.2.2 Lập trình mođun demo 62 3.2.3 Đánh giá kết thu 64 KẾT LUẬN 65 HƢỚNG PHÁT TRIỂN 66 TÀI LIỆU THAM KHẢO 67 Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn -v- DANH MỤC CÁC TỪ VIẾT TẮT UML Unified Modeling Language CSDL Cơ sở liệu DBMS Database Management System (Hệ quản trị CSDL) V Validation (Thẩm tra) R Read (Đọc) C Computation (Tính tốn) W Write (Ghi) Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn -1- MỞ ĐẦU Ngơn ngữ lập trình Java Sun Microsystems giới thiệu vào tháng năm 1995 Từ đó, trở thành cơng cụ lập trình lập trình viên chuyên nghiệp Java sử dụng rộng rãi để viết chương trình chạy Internet Nó ngơn ngữ lập trình hướng đối tượng độc lập thiết bị, khơng phụ thuộc vào hệ điều hành Nó khơng dùng để viết ứng dụng chạy đơn lẻ hay mạng mà cịn để xây dựng trình điều khiển thiết bị cho điện thoại di động, PDA, … Các phương pháp phân tích thiết kế hướng đối tượng phát triển mạnh mẽ góp phần đáng kể vào việc cải tiến chất lượng phần mềm nhờ vào khả xây dựng lớp đối tượng có tính tái sử dụng cao, dễ bảo trì mở rộng Ngôn ngữ UML (Unified Modeling Language) đề xuất để sử dụng ngôn ngữ chuẩn để mơ hình hóa thành tố phần mềm q trình phân tích thiết kế hướng đối tượng Tuy nhiên, phương pháp hướng đối tượng tập trung chủ yếu vào hoạt động tổng thể tiến trình phát triển phần mềm hướng đối tượng Những phương pháp thường không giải vấn đề chi tiết nảy sinh trình thiết kế phần mềm Để bổ sung cho phương pháp hướng đối tượng, mẫu thiết hướng đối tượng tiếp cận độc đáo, đề xuất để giải vấn đề nảy sinh trình thiết kế phần mềm hướng đối tượng Các mẫu GoF có tầm quan trọng ảnh hưởng lớn giới nghiên cứu giới cơng nghiệp phần mềm Rất nhiều cơng trình đặc sắc khác mẫu thiết kế hướng đối tượng đề xuất để giải nhiều vấn đề đặc thù cho lĩnh vực ứng dụng phần mềm Trong đó, tơi quan tâm đến việc nghiên cứu mẫu thiết kế để áp dụng trình phát triển phần mềm hướng đối tượng, đặc biệt giải vấn đề cài đặt giao diện người dùng vấn đề liên quan đến ứng dụng Java Vì thế, thực đề tài luận văn: “Nghiên cứu mẫu thiết kế kiến trúc phần mềm Java” Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn -2- Mục tiêu đề tài nghiên cứu, nắm vững phương pháp phân tích thiết kế hướng đối tượng ngơn ngữ mơ hình hóa thống UML (Unified Modeling Language) Đồng thời sử dụng số mẫu thiết kế vào công đoạn xây dựng kiến trúc phần mềm ngôn ngữ Java Bố cục luận văn bao gồm phần mở đầu, phần kết luận ba chương nội dung tổ chức sau: Chương I Tổng quan mẫu thiết kế ngơn ngữ mơ hình hóa thống UML Chương trình bày tổng quan mẫu thiết kế kiến trúc phần mềm hướng đối tượng, lịch sử phát triển, định nghĩa mẫu thiết kế số vấn đề mẫu Khái qt ngơn ngữ mơ hình hóa thống UML, biểu đồ cấu trúc, biểu đồ hành vi, biểu đồ quản lý mơ hình, ký pháp UML… Chương II Các mẫu thiết kế kiến trúc phần mềm Java Trong chương tập trung vào trình bày mẫu thiết kế kiến trúc phần mềm Java bao gồm mẫu khởi tạo, mẫu cấu trúc, mẫu hành vi, mẫu tương tranh Các mẫu mơ tả, định nghĩa đưa mơ hình UML sau ví dụ áp dụng Chương III Phát triển chương trình thử nghiệm Trong chương phát triển ứng dụng sử dụng mẫu thiết kế, chủ yếu tập trung minh họa việc sử dụng mẫu tương tranh để giải xung đột môi trường mạng, môi trường đa tiến trình Chương trình phân tích thiết kế UML lập trình mơ-đun demo Java Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn -3- CHƢƠNG I TỔNG QUAN VỀ MẪU THIẾT KẾ VÀ NGƠN NGỮ MƠ HÌNH HĨA THỐNG NHẤT UML 1.1 Tổng quan mẫu thiết kế 1.1.1 Vấn đề thiết kế phần mềm hướng đối tượng Việc thiết kế phần mềm hướng đối tượng cơng việc khó, việc thiết kế một phần mềm hướng đối tượng phục vụ cho mục đích dùng lại cịn khó Chúng ta phải tìm đối tượng phù hợp, đại diện cho lớp đối tượng Sau thiết kế giao diện kế thừa cho chúng, thiết lập mối quan hệ chúng Thiết kế phải đảm bảo giải vấn đề tại, tiến hành mở rộng tương lai mà tránh phải thiết kế lại phần mềm Và tiêu trí quan trọng phải nhỏ gọn Thiết kế phần mềm hướng đối tượng phục vụ cho mục đích dùng lại cơng việc khó, phức tạp khơng thể mong chờ thiết kế đúng, đảm bảo tiêu trí Thực tế cần phải thử nghiệm sau vài lần sau sửa chữa lại Đứng trước vấn đề, người phân tích thiết kế tốt đưa nhiều phương án giải quyết, phải duyệt qua tất phương án chọn cho phương án tốt Phương án tốt dùng dùng lại nhiều lần, dùng gặp vấn đề tương tự Mà phân tích thiết kế phần mềm hướng đối tượng ta gặp lại vấn đề tương tự 1.1.2 Lịch sử Mẫu thiết kế Ý tưởng dùng mẫu xuất phát từ ngành kiến trúc, Alexander, Ishikawa, Silverstein, Jacobson, Fiksdahl-King Angel (1977) lần đưa ý tưởng dùng mẫu chuẩn thiết kế xây dựng truyền thông Họ xác định lập sưu liệu mẫu có liên quan để dùng để giải vấn đề thường xảy thiết kế cao ốc Mỗi mẫu cách thiết kế, chúng phát triển hàng trăm năm giải pháp cho vấn đề mà người ta làm lĩnh vực xây dựng thường gặp Các giải pháp tốt có ngày hơm qua trình sàng lọc tự nhiên Mặc dù nghành cơng nghệ phần mềm khơng có lịch sử Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 53 - số tiến trình truy cập vào tài nguyên quan tâm đến việc đọc giá trị hay trạng thái tài nguyên mà khơng thay đổi Trong trường hợp vậy, khơng có hiệu để ngăn tiến trình không cho truy cập vào tài nguyên để đọc giá trị tiến trình khác đọc giá trị tài ngun Bởi q trình đọc khơng thay đổi giá trị tài ngun, đa tiến trình phép truy cập vào tài nguyên cách an toàn thời điểm tất tiến trình quan tâm đến việc đọc giá trị tài nguyên Loại thiết kế cải thiện tính tương tác tồn ứng dụng mà hoạt động mức CPU giảm Có nghĩa là, tiến trình nhận khoá để đơn giản đọc giá trị tài ngun, khơng nên chặn tiến trình khác khơng truy cập vào tài nguyên để đọc giá trị tài ngun Nói cách khác, khố đọc cần chia sẻ Nếu tiến trình phép đọc liệu tài nguyên tiến trình khác cập nhật tài ngun đó, tiến trình đọc liệu nhận phản ánh trái ngược Việc cho phép tiến trình cập nhật giá trị tài ngun dẫn đến kết khơng đốn trước Khi số tiến trình đọc giá trị tài nguyên, số tiến trình khác truy cập vào tài nguyên để đọc cập nhật giá trị Để loại bỏ vấn đề xảy này, tiến trình cần truy cập vào tài nguyên để đọc cập nhật giá trị, phải nhận khoá ghi lên đối tượng đại diện cho tài ngun Một khố ghi khố riêng lên đối tượng tránh không cho tất tiến trình khác truy cập vào tài ngun lúc Hơn nữa, khoá đọc ghi yêu cầu lên đối tượng lúc, khố ghi ưu tiên trước Khoá ghi đưa khơng cịn tiến trình giữ khố đọc lên đối tượng Bảng đưa tiêu chí để đưa khoá đọc – ghi Khoá Nguyên tắc Khóa đọc Một khóa đọc cấp khơng có khóa ghi thời cấp khơng cịn tiến trình đợi khố ghi Khóa ghi Một khố ghi đưa khơng cịn tiến trình thời cấp khoá (đọc ghi) lên đối tượng Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 54 - Trong Java, khơng có sẵn tính thực thi khố đọc - ghi Nhưng lớp tạo với khả cấp khoá đọc - ghi lên đối tượng đến tiến trình khác ứng dụng Thiết kế bật lớp ReadWriteLock Lock Statistics (Thống kê khóa) ReadWriteLock trì kiện khố biến lớp sau:  totalReadLocksGiven – để lưu số khoá đọc cấp đối tượng  writeLockIssued – để xem khoá ghi đưa chưa  threatsWaitingForWriteLock – để theo dõi số tiến trình thời đợi khố ghi Giá trị đến lượt sử dụng phương thức đưa khoá – getReadLock getWriteLock Lock Methods (Phương thức khoá ) ReadWriteLock cung cấp hai phương thức getReadLock getWriteLock mà sử dụng đối tượng khách để nhận khoá đọc ghi lên đối tượng cách Như phần việc thực thi hai phương thức này, phương thức ReadWriteLock đưa khoá đọc-ghi theo quy tắc liệt kê bảng Lock Release (Nhả khoá) Một đối tượng khách thời giữ khố nhả khố việc gọi phương thức done Phương thức done cập nhật kiện khố thích hợp cho phép khố đưa cho tiến trình đợi theo quy tắc nêu bảng Lớp ReadWriteLock thực thi chung cho việc đưa khoá đọc - ghi sẵn sàng sử dụng ứng dụng Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 55 - Chƣơng III PHÁT TRIỂN CHƢƠNG TRÌNH THỬ NGHIỆM 3.1 Cơ sở lý thuyết 3.1.1 Giao dịch phân tán - Định nghĩa giao dịch  Định nghĩa giao dịch Giao dịch (transaction) đơn vị nguyên tố truy xuất sở liệu bao gồm dãy thao tác đọc ghi bước tính toán sở liệu Kết thúc giao dịch, thao tác thực đầy đủ khơng thực  Tình kết thúc giao dịch Một giao dịch ln phải kết thúc có xảy cố Nếu giao dịch hồn tất thành cơng tác vụ nó, ta nói giao dịch có uỷ thác (commit) Ngược lại giao dịch phải ngừng lại chưa hồn tất cơng việc, ta nói bị huỷ bỏ (abort) Khi giao dịch bị huỷ bỏ, trình thực thi ngừng tất hành động thực phải phục hồi lại, đưa sở liệu trạng thái trước thực giao dịch - Các tính chất giao dịch  Tính nguyên tử Tính nguyên tử (automicity) liên quan đến kiện giao dịch xử lý đơn vị hoạt tác Chính mà hành động giao dịch, tất hoàn tất khơng hành động hồn tất Tính ngun tử đòi hỏi việc thực thi giao dịch bị cắt ngang loại cố hệ quản trị sở liệu chịu trách nhiệm xác định công việc cần thực giao dịch để khôi phục lại sau cố Có hai chiều hướng hành động: kết thúc cách hồn tất hành động cịn lại, kết thúc cách hồi phục lại tất hành động thực  Tính quán Tính quán (consistency) giao dịch đơn giản phản ánh tính đắn Nói cách khác, giao dịch chương trình đắn ánh Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 56 - xạ CSDL từ trạng thái quán sang trạng thái quán khác  Tính biệt lập Biệt lập (isolation) tính chất giao dịch, địi hỏi giao dịch phải ln nhìn thấy sở liệu quán Nói cách khác, giao dịch thực thi làm lộ kết cho giao dịch khác hoạt động trước uỷ thác  Tính bền vững Tính bền vững (durability) muốn nói đến tính chất giao dịch, bảo đảm giao dịch uỷ thác, kết trì cố định khơng bị xố khỏi sở liệu Vì hệ quản trị sở liệu bảo đảm kết giao dịch tồn dù có xảy cố hệ thống 3.1.2 Các vấn đề xung đột liệu số giải thuật điều khiển - Lý thuyết khả Hai giao tác Oij Okl (i k không thiết phải phân biệt) truy cập đến thực thể CSDL x gọi có tương tranh chúng thao tác ghi (write) Có hai vấn đề mà cần lưu ý là, trước tiên hai giao tác đọc khơng tương tranh với Vì nói hai loại tương tranh: đọc - ghi (read - write) ghi - ghi (write - write) Thứ hai, hai giao tác thuộc giao dịch thuộc hai giao dịch khác Trong trường hợp sau, hai giao dịch gọi có tương tranh Về trực quan, tồn tương tranh hai giao tác cho thấy thứ tự thực chúng quan trọng Việc thứ tự cho hai giao tác đọc không cần thiết - Phân loại chế điều khiển đồng thời Chúng ta xếp chế điều khiển đồng thời làm hai nhóm lớn: phương pháp điều khiển đồng thời lạc quan phương pháp điều khiển đồng thời bi quan Các thuật toán bi quan đồng hoá việc thực đồng thời giao dịch trước thực thi chúng, thuật tốn lạc quan để việc đồng hoá giao dịch đến chúng kết thúc Nhóm lạc quan gồm có thuật tốn dựa theo khóa chốt (locking-based algorithm), thuật tốn dựa theo thứ tự Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 57 - giao dịch thuật toán lai (hybrid algorithm) Tương tự, nhóm lạc quan phân loại thành thuật toán dựa khoá chốt thuật toán theo thứ tự thời gian Trong cách tiếp cận dùng khố chốt, việc đồng hố giao dịch có cách sử dụng khoá chốt vật lý logic phần sở liệu Lớp chế chia nhỏ tuỳ theo vị trí thực hoạt động quản lý khố: Trong lối khố tập quyền, vị trí mạng định làm vị trí chính, lưu trữ bảng khố cho tồn sở liệu chịu trách nhiệm trao khóa cho giao dịch Theo lối khố ngược lại (nếu có nhiều bản) đơn vị khoá định làm (primary copy) bị khố giao dịch truy xuất đến đơn vị Nếu sở liệu không nhân (nghĩa đơn vị khố có nhất), chế khố phân phối trách nhiệm quản lý khố cho số vị trí Theo lối khoá phi tập trung, nhiệm vụ quản lý khố tất vị trí mạng Trong trường hợp này, thực giao dịch có tham gia điều phối xếp lịch nhiều vị trí Mỗi xếp lịch cục chịu trách nhiệm đơn vị khoá nằm cục vị trí Lớp chế theo thứ tự thời dấu (timestamp ordering, TO) phải tổ chức thứ tự thực giao dịch nhằm trì tính quán lẫn tương hỗ vị trí (liên quán) Việc xếp thứ tự trì cách gán thời dấu cho giao dịch lẫn mục liệu lưu sở liệu Những thuật tốn thuộc loại (basic TO), đa (multiversion TO), bảo tồn (conservative TO) - Các thuật tốn điều khiển đồng thời khóa chốt Ý tưởng việc điều khiển đồng thời khoá chốt đảm bảo liệu dùng chung cho thao tác tương tranh truy xuất lần giao dịch Điều thực cách liên kết khoá chốt (lock) với đơn vị khoá Khoá giao dịch đặt trước truy xuất điều chỉnh Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 58 - lại vào lúc hết sử dụng Một đơn vị khố khơng thể truy xuất bị khoá giao dịch khác Vì vậy, u cầu khố giao dịch trao khoá kèm khơng bị giao dịch giữ Có hai loại khoá chốt (thường gọi thể thức khoá, lock mode) kèm với đơn vị khoá: khoá đọc (read lock) khoá ghi (write lock) Một giao dịch Ti muốn đọc mục liệu chứa đơn vị khoá x nhận khoá đọc x [ký hiệu rli(x)] tương tự thao tác ghi Hai thể thức khố tương thích (compatibility) hai giao dịch truy xuất đến mục liệu nhận khố mục liệu lúc Các khố đọc tương thích với cịn khố đọc - ghi, ghi - ghi khơng Vì vậy, hai giao dịch đồng thời đọc mục liệu - Các thuật tốn điều khiển đồng thời thời dấu Khơng giống thuật toán dựa vào khoá, thuật toán điều khiển đồng thời thời đấu không cố gắng trì tính khả phương pháp độc quyền truy xuất Thay vào đó, chúng chọn trước thứ tự hoá thực giao dịch theo thứ tự Để làm điều này, quản lý giao dịch gán cho giao dịch Ti thời dấu (timestamp) ts(Ti) vào lúc khởi Thời dấu định danh đơn giản dùng để nhận giao dịch cách xếp thứ tự chúng Thời dấu hai ngơi có dạng (giá trị đếm cục bộ, định danh vị trí) - Các thuật tốn điều khiển đồng thời lạc quan Các thuật toán biết phần trước chất thuộc loại bi quan (pesimistic) Nói cách khác, giả định tương tranh giao dịch hay xảy không cho phép giao dịch truy xuất mục liệu có giao dịch tương tranh truy xuất mục liệu Vì việc thực thao tác giao dịch trải qua dãy pha: thẩm tra (validation, V), đọc (read, R), tính tốn (computation, C), ghi (write, W) Nói chung dãy thao tác có giá trị giao dịch cập nhật thao tác Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 59 - Ngược lại, giao dịch lạc quan (optimistic) trì hỗn pha thẩm tra trước pha ghi Vì thao tác trao cho xếp lịch lạc quan khơng bị trì hỗn Các thao tác đọc, tính tốn, ghi thực tự mà không cập nhật vào sở liệu thực Mỗi giao dịch lúc đầu cập nhật cục mục liệu Pha thẩm tra bao gồm việc kiểm xem cập nhật có trì tính qn sở liệu hay khơng Nếu có, thay đổi thực thực (nghĩa ghi vào sở liệu thực tế) Ngược lại, giao dịch bị huỷ bỏ phải khởi động lại - Quản lý khóa  Khoá chốt (lock) Khoá chốt đặc quyền truy xuất mục liệu mà quản lý khố chốt trao cho giao tác hay thu hồi lại Một giao tác muốn truy xuất tới mục liệu u cầu khố chốt cho mục liệu đó, sau trao khố hồn thành thao tác cần thiết phải mở khố (unlock) để giao tác khác lại truy xuất tới mục liệu  Khố sống (life lock) Khố sống tượng giao tác T1 yêu cầu khoá mục liệu đồng thời có giao tác T2 u cầu khố đó, hệ thống trao khoá cho giao tác T2, giao tác T2 thực xong thao tác mục liệu mở khố lại có giao tác T3 khác yêu cầu khoá, hệ thống lại trao khoá cho giao tác này… trình tiếp tục xảy ra, T1 phải chờ đợi cách hồi vọng Hiện tượng khố sống khắc phục cách sử dụng chiến lược “đến trước phục vụ trước”, chiến lược lại gây hiệu trái ngược  Khố chết (deadlock) Khố chết tình mà thành viên tập S gồm hai hay nhiều giao tác đợi nhận khoá mục liệu bị khoá giao tác khác tập S Bởi giao tác tập S đợi, nên khơng thể mở khố cho mục liệu mà giao tác khác cần, tất giao Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 60 - tác tiếp tục phải đợi mãi Việc khắc phục tượng khoá chết vấn đề ln nghiên cứu, có số giải pháp cho vấn đề 3.2 Xây dựng chƣơng trình thử nghiệm 3.2.1 Sơ đồ UML - Sơ đồ UML ứng dụng truyền file Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 61 - - Sơ đồ UML ứng dụng Bán sách qua mạng Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 62 - Thay đổi file, thư mục máy cục Máy cơc bé Trun file Ng­êi sư dơng FTP Server Tạo kết nối Thay đổi file, thư mục m¸y chđ Khãa file 3.2.2 Lập trình mođun demo Trong ví dụ có sử dụng mẫu tương tranh (Concurrency Patterns) như: Critical Section, Consistent Lock Order, Guarded Suspension, Read-Write Lock  Chương trình Truyền file xây dựng mơ hình Client – Server - Giao diện chương trình bên phía trình chủ đăng ký tên máy chủ số hiệu cổng - Giao diện chương trình bên phía trình khách Chương trình cho phép truy cập vào trình chủ để Download, Upload liệu, đổi tên, xóa file, nén – giải nén Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 63 - file, … bên phía trình chủ khách Chương trình có nhiều tuyến đoạn chạy độc lập chiếm dụng tài ngun bên phía trình chủ  Chương trình Bán sách qua mạng xây dựng mơ hình Client – Server, CSDL tập trung xử lý phân tán - Giao diện chương trình bên phía trình chủ Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 64 - - Chương trình bên phía trình khách truy cập vào trình chủ truy xuất CSDL Trong trình thực giao dịch chiếm dụng tồn CSDL thao tác ghi, cập nhật, xóa, … 3.2.3 Đánh giá kết thu Chương trình minh họa phần nhỏ việc sử dụng mẫu hướng đối tượng để xây dựng phần mềm Hai ví dụ thể rõ việc sử dụng mẫu tương tranh để giải xung đột trình truy cập truy xuất tài nguyên mạng Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 65 - KẾT LUẬN Như vậy, để bổ sung cho phương pháp hướng đối tượng, mẫu thiết hướng đối tượng tiếp cận độc đáo, đề xuất để giải vấn đề nảy sinh trình thiết kế phần mềm hướng đối tượng Các mẫu GoF có tầm quan trọng ảnh hưởng lớn giới nghiên cứu giới cơng nghiệp phần mềm Rất nhiều cơng trình đặc sắc khác mẫu thiết kế hướng đối tượng đề xuất để giải nhiều vấn đề đặc thù cho lĩnh vực ứng dụng phần mềm Do đặc điểm công nghệ, việc xây dựng phần mềm Java đối diện với nhiều vấn đề nảy sinh khác Trong luận văn, giới hạn vấn đề xoay quanh ứng dụng mẫu thiết kế trình phát triển phần mềm Java Trong thực tế nhiều vấn đề quan trọng thách thức khác kể mặt công nghệ mặt nghiên cứu phương pháp luận Trong khuôn khổ luận văn thu số kết sau đây:  Trình bày tổng quan mẫu thiết kế ngơn ngữ mơ hình hóa thống UML  Tìm hiểu trình bày số mẫu thiết kế mẫu khởi tạo, mẫu cấu trúc, mẫu hành vi, mẫu tương tranh Java  Tìm hiểu ngơn ngữ lập trình Java, ngơn ngữ mơ hình hóa thống UML, phương pháp phân tích thiết kế lập trình hướng đối tượng  Xây dựng chương trình thử nghiệm ngơn ngữ lập trình Java sử dụng mẫu thiết kế mà bật sử dụng mẫu tương tranh để giải vấn đề xung đột môi trường mạng, mơi trường đa tiến trình Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 66 - HƢỚNG PHÁT TRIỂN Để phát triển hướng nghiên cứu này, định hướng vào công việc sau: • Nghiên cứu tiếp mẫu thiết kế giải vấn đề khác phát triển ứng dụng Java, hệ thống hóa phân loại để định hướng áp dụng; • Áp dụng cách hệ thống mẫu thiết kế vào việc triển khai thử nghiệm hệ thống phần mềm Java để rút nguyên tắc phương pháp luận cần thiết cho việc vận dụng mẫu này; • Xây dựng cơng cụ cần thiết nhằm tích hợp hỗ trợ việc sử dụng mẫu thiết kế trình phát triển phần mềm Java Mặc dù cố gắng, nỗ lực thời gian trình độ có hạn chế định nên luận văn khơng tránh khỏi thiếu sót Trong tương lai, tơi cố gắng hồn thiện hạn chế phát triển vấn đề nêu trên, để mang lại kết khả quan Rất mong nhận đóng góp ý kiến thầy bạn để luận văn ngày hồn thiện Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - 67 - TÀI LIỆU THAM KHẢO Tiếng Việt [1] Đặng Văn Đức, Phân tích thiết kế hướng đối tượng UML, NXB Giáo dục, 2002 [2] Phương Lan số tác giả, Design Patterns, Nhà Xuất Bản Phương Đơng [3] Phương Lan, Hồng Đức Hải, Java, Nhà xuất thống kê, 2004 [4] Nguyễn Phương Lan, Java lập trình mạng, Nhà xuất Lao động xã hội, 2006 Tiếng Anh [5] Craig Larman, Applying UML and Pattterns, Amazon, 2004 [6] Kuchana, Partha, Software Architecture Design Patterns in Java, CRC Press LLC, 2004 [7] KevinZhang, Design Patterns Elements of Reusable Object-Oriented Software, [8] D Bonura, R Culmone, E Merelli, Patterns for web applications, ACM International Conference Proceeding Series, Vol 27, p 739 - 746, (2002) [9] F Buschmann, Pattern-oriented Software Architecture - A System of Patterns, John Wiley & Sons, (1996) [10] J W Cooper, The design patterns Java companion, Addison-Wesley, (1998) [11] P Eeles, K Houston, W Kozaczynski, Building J2EE Applications with the Rational Unified Process, Addison-Wesley, (2002) [12] M Ewiss, „Patterns for Web Applications‟, Pattern Languages of Programs conference 2003 (PLoP 2003) Website http://www.sqlsecurity.com/faq-inj.asp http://www.objectmentor.com/mentoring/OOPrinciples http://www.object-arts.com/EducationCentre/Patterns/AccessorMethods.htm http://www.object-arts.com/OldStuff/Patterns/PrivateMethods.htm http://java.sun.com http://www.javaworld.com/javaworld/jw-10-2001/jw-1012-deadlock.html http://www.research.ibm.com/designpatterns/pubs/7habits.html Số hóa Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ... kiến trúc phần mềm Java Trong chương tập trung vào trình bày mẫu thiết kế kiến trúc phần mềm Java bao gồm mẫu khởi tạo, mẫu cấu trúc, mẫu hành vi, mẫu tương tranh Các mẫu mơ tả, định nghĩa đưa... THỐNG NHẤT UML 1.1 Tổng quan mẫu thiết kế 1.1.1 Vấn đề thiết kế phần mềm hướng đối tượng Việc thiết kế phần mềm hướng đối tượng cơng việc khó, việc thiết kế một phần mềm hướng đối tượng phục vụ... bao gồm phần mở đầu, phần kết luận ba chương nội dung tổ chức sau: Chương I Tổng quan mẫu thiết kế ngơn ngữ mơ hình hóa thống UML Chương trình bày tổng quan mẫu thiết kế kiến trúc phần mềm hướng

Ngày đăng: 24/03/2021, 17:36

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan