Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng

38 436 0
Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng

Đ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

MỤC LỤC BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - DANH MỤC THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT i DANH MỤC CÁC BẢNG ii DANH MỤC CÁC HÌNH VẼ v MỞ ĐẦU LUẬN VĂN THẠC SĨ KHOA HỌC Chương GIỚI THIỆU QUY TRÌNH PHÁT TRIỂN PHẦN MỀM VÀ NGƠN NGỮ MƠ HÌNH HĨA 1.1 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM NGHIÊN CỨU VÀ ỨNG DỤNG MẪU THIẾT KẾ TRONG PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG NGÀNH : CÔNG NGHỆ THÔNG TIN MÃ SỐ : 1.1.1 Định nghĩa 1.1.2 Phương pháp phát triển phần mềm hướng đối tượng 1.1.3 Chu trình phát triển phần mềm xoắn ốc 1.1.4 Tiến trình phát triển phần mềm RUP 1.2 NGƠN NGỮ MƠ HÌNH HĨA THỐNG NHẤT - UML 10 1.2.1 Các đặc trưng UML 10 NGƠ THỊ THANH TÂM 1.2.2 Mơ hình khái niệm UML 11 1.2.3 Kiến trúc hệ thống 12 Chương MẪU THIẾT KẾ 15 2.1 KHÁI NIỆM CƠ BẢN VỀ MẪU THIẾT KẾ 15 Người hướng dẫn khoa học : PGS.TS ĐẶNG VĂN ĐỨC 2.1.1 Một số định nghĩa 15 2.1.2 Đặc điểm mẫu thiết kế 15 2.1.3 Các yếu tố xác định mẫu thiết kế 15 2.2 MỘT SỐ MẪU THIẾT KẾ 16 2.2.1 Mẫu GRASP 17 2.2.2 Mẫu Gang of Four 27 Chương ỨNG DỤNG PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG VÀ HÀ NỘI 2007 MẪU THIẾT KẾ XÂY DỰNG PHẦN MỀM QUẢN LÝ THẺ ĐIỆN THOẠI 66 ii 3.1 GIỚI THIỆU BÀI TOÁN 66 MỞ ĐẦU 3.1.1 Phát biểu toán 67 3.1.2 Các thành phần hệ thống 67 3.1.3 Kiến trúc môi trường hệ thống 68 3.2 THU THẬP VÀ PHÂN TÍCH U CẦU - MƠ HÌNH USE CASE 69 3.2.1 Mục tiêu hệ thống 69 3.2.2 Đặc tả chức hệ thống 69 3.2.3 Nhận biết mô tả tác nhân trường hợp sử dụng 71 3.2.4 Biểu đồ Use cases 77 3.2.5 Mơ hình hóa nghiệp vụ 77 3.3 THU THẬP VÀ PHÂN TÍCH U CẦU - MƠ HÌNH KHÁI NIỆM 82 3.3.1 Nhận biết khái niệm (đối tượng) 83 3.3.2 Thuộc tính lớp 84 Phát triển phần mềm ngày trở lên phức tạp Việc thay đổi giao diện chương trình từ xâu ký tự sang giao diện đồ họa xu kiện, từ kiến trúc hệ thống đơn tầng, sở liệu tập trung sang kiến trúc hệ thống đa tầng khách/chủ, sở liệu phân tán, môi trường Internet làm tăng độ phức tạp hệ thống phần mềm Thách thức 20 năm tới việc xây dựng hệ thống phần mềm tốc độ thực chương trình, kinh phí hay sức mạnh mà vấn đề độ phức tạp Vậy loại bỏ độ phức tạp cách nào? Các phương pháp tiếp cận hướng cấu trúc, tiếp cận hướng logíc, tiếp cận hướng đối tượng tiếp cận hướng tác tử giải vấn đề mức độ khác 3.3.3 Nhận biết quan hệ khái niệm 85 Tiếp cận hướng đối tượng tỏ lợi lập trình hệ thống phức tạp 3.4 HÀNH VI HỆ THỐNG - CÁC BIỂU ĐỒ TRÌNH TỰ 87 Thực tế cho thấy phát triển phần mềm hướng đối tượng đem lại 3.4.1 Biểu đồ trình tự hệ thống 87 phần mềm thương mại chất lượng cao, tin cậy, dễ mở rộng, dễ sử dụng lại, phù 3.4.2 Giao kèo thao tác hệ thống 88 hợp với yêu cầu người dùng mong đợi Chúng cho khả hoàn thành 3.5 THIẾT KẾ HỆ THỐNG 92 phần mềm thời hạn với kinh phí thường phù hợp với dự kiến ban đầu 3.5.1 Các biểu đồ cộng tác 92 Với mong muốn tìm hiểu ứng dụng phương pháp phát triển phần mềm 3.5.2 Biểu đồ lớp thiết kế 99 hướng đối tượng để xây dựng ứng dụng hiệu cho ngành bưu 3.5.3 Thiết kế triển khai 102 điện, học viên lựa chọn tập trung nghiên cứu phương pháp phân tích 3.5.4 Bổ sung thiết kế 106 thiết kế hướng đối tượng 3.5.5 Mơ hình hóa liệu 114 Mục đích luận văn là: nghiên cứu, nắm vững phương pháp phân 3.6 CÀI ĐẶT THIẾT KẾ 115 tích thiết kế hướng đối tượng, mẫu thiết kế, sử dụng ngơn ngữ mơ hình hóa 3.6.1 Biểu đồ thành phần 115 thống UML (Unified Modeling Language) công cụ phần mềm hỗ trợ xây 3.6.2 Biểu đồ triển khai 116 dựng mơ hình hệ thống Rational Rose Đồng thời sử dụng số mẫu PHẦN KẾT LUẬN 118 thiết kế vào cơng đoạn xây dựng mơ hình lớp q trình phân tích, thiết kế hệ TÀI LIỆU THAM KHẢO 119 thống phần mềm theo hướng đối tượng Bố cục luận văn gồm chương, phần mở đầu phần kết luận - Chương 1: Giới thiệu phương pháp quy trình phát triển phần mềm có, tiến trình phát triển phần mềm RUP (Rational Unified Process) ngôn ngữ mô hình hóa thống UML - Chương 2: Trình bày khái niệm mẫu thiết kế, ứng dụng mẫu thiết kế giới thiệu số mẫu GRASP (General Responsibility Assignment Software Patterns) GoF (Gang of Four) - Chương 3: Trình bày ứng dụng phương pháp phân tích thiết kế hướng đối tượng số mẫu thiết kế vào toán Quản lý thẻ trả trước Bưu điện Thành phố Hà Nội Các kết luận án bước đầu triển khai ứng dụng thử nghiệm hệ thống kinh doanh Thẻ trả trước Bưu điện thành phố Hà Nội Tuy nhiên với thời gian có hạn, luận văn cịn nhiều thiếu sót, mong nhận ý kiến đóng góp thầy cô giáo bạn bè đồng nghiệp Chương GIỚI THIỆU QUY TRÌNH PHÁT TRIỂN PHẦN MỀM VÀ NGƠN NGỮ MƠ HÌNH HĨA 1.1 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM 1.1.1 ĐỊNH NGHĨA Quy trình phương pháp thực sản xuất sản phẩm Quy trình phát triển phần mềm (Software development/Engineering Process-SEP) phương pháp phát triển hay sản xuất sản phẩm phần mềm Có thể nói quy trình phát triển phần mềm có tính chất định để tạo sản phẩm chất luợng tốt với chi phí thấp suất cao Thơng thường quy trình bao gồm yếu tố sau: - Thủ tục - Danh sách kiểm định - Hướng dẫn công việc - Công cụ hỗ trợ - Biểu mẫu Với nhóm cơng việc chính: • Đặc tả yêu cầu: “đòi hỏi” cho yêu cầu chức phi chức • Phát triển phần mềm: Tạo phần mềm thỏa mãn yêu cầu “Đặc tả yêu cầu” • Kiểm thử phần mềm: Để bảo đảm phần mềm sản xuất đáp ứng “đòi hỏi” “Đặc tả yêu cầu” • Thay đổi phần mềm: Đáp ứng nhu cầu thay đổi khách hàng Tùy theo mơ hình phát triển phần mềm, nhóm cơng việc triển khai theo cách khác Để sản xuất sản phẩm phần mềm người ta dùng mơ hình khác Tuy nhiên khơng phải tất quy trình phát triển phần mềm (cịn gọi chu trình) tiếp nối thời kỳ mơ hình thích hợp cho ứng dụng phát triển hệ thống Có nhiều loại chu trình phát triển phần mềm khác 1.1.2 PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM HƯỚNG ĐỐI TƯỢNG chu trình thác nước, chu trình chữ V, chu trình tăng trưởng, chu trình xoắn ốc, [1] Trong chu trình xoắn ốc mơ hình tổng qt nhất, tất Quan điểm hướng đối tượng hình thành sở tiếp cận hướng hệ thống, mơ hình khác xem thực mơ hình tổng qt này, coi hệ thống thực thể tổ chức từ thành phần mà xác hay xem mơ hình tổng hợp mơ hình khác Đặc biệt, chu định thừa nhận có quan hệ với thành phần khác Phương pháp tách trình xoắn ốc ứng dụng khơng phát triển phần mềm mà vấn đề giải để hiểu chúng không dựa cở sở hệ thống phát triển phần cứng làm mà cịn dựa việc tích hợp hệ thống hệ thống làm Theo cách tiếp cận hướng đối tượng chức hệ thống biểu diễn thông qua cộng tác đối tượng, việc thay đổi, tiến hoá chức không ảnh hưởng đến cấu trúc tĩnh phần mềm Sức mạnh tiếp cận hướng đối tượng Xác định mục tiêu, phương án ràng buộc Đánh giá phương án Thử nghiệm nguyên mẫu Thiết kế tạo lập nguyên mẫu việc tách (chia) nhập (thống nhất) thực nhờ tập phong phú chế tích hợp chúng; khả thống cao tách để xây dựng thực thể phức tạp từ thực thể đơn giản Tiếp cận hướng đối tượng tỏ lợi lập trình hệ thống phức tạp Những người phát triển phần mềm nhận thấy phát triển phần mềm hướng đối tượng đem lại phần mềm thương mại chất lượng cao, tin cậy dễ mở rộng dẽ sử dụng lại, phù hợp với yêu cầu người dùng mong đợi Chúng cho khả hoàn thành phần mềm thời hạn khơng vượt q kinh phí dự kiến ban đầu Phương pháp hướng đối tượng đời từ năm 1990 đến năm 1997 quy chuẩn qua ngơn ngữ mơ hình hóa thống UML 1.1.3 CHU TRÌNH PHÁT TRIỂN PHẦN MỀM XOẮN ỐC Mọi hệ thống phải trải qua khởi đầu, triển khai, xây dựng, khai Hình 1.1 Chu trình xoắn ốc Quy trình xoắn ốc (hình 1.1) hay quy trình lặp có đặc điểm : - Tiến trình lặp lặp lại dãy giai đoạn định - Qua vịng lặp, tạo phiên hồn thiện dần - Nhấn mạnh khắc phục nguy (một nguy bắt nguồn từ sai sót đặc tả nhu cầu) thác, bảo dưỡng kết thúc, vịng đời Khi quan tâm đến triển Quy trình xoắn ốc cung cấp phần hệ thống để khách hàng đưa khai xây dựng tức quan tâm đến phát triển hệ thống, khía cạnh vào sử dụng môi trường hoạt động sản xuất thực mà không cần chờ toàn hệ thống hồn thành Để khách hàng sử dụng, RUP tiến trình phát triển phần mềm hãng Rational xây dựng, phiên phải thực quy trình đầy đủ công việc từ cung cấp nguyên tắc tiếp cận để gán nhiệm vụ trách nhiệm tổ phân tích yêu cầu với khả bổ sung hay thay đổi, thiết kế, thực chức phát triển Mục tiêu đảm bảo sản phẩm phần mềm chất lượng cao mà kiểm nghiệm xem quy trình (chu trình) Các chu trình thoả mãn nhu cầu người sử dụng, kế hoạch kinh phí [8] sử dụng mơ hình khác (thơng thường mơ hình thác nước) RUP bắt kịp nhiều phương pháp tốt việc phát triển phần mềm Mục tiêu phiên phát triển phần lõi nhóm chức đại với mẫu phù hợp với nhiều dự án tổ chức Nó mơ tả cách tiếp quan trọng Sau phiên đưa vào sử dụng, kết đánh giá cận thử nghiệm phương diện thương mại để triển khai có hiệu phản hồi lập kế hoạch cho chu trình phiên để tới việc phát triển phần mềm cho nhóm phát triển phần mềm thực hiện: • Những thay đổi cho phiên trước nhằm đáp ứng nhu cầu khách hàng tốt RUP cung cấp cho thành viên nhóm hướng dẫn, khn mẫu, cơng cụ hướng dẫn cần thiết cho nhóm để tận dụng thực hành tối ưu sau : i) Phát triển lặp: RUP chia trình phát triển thành chu kỳ khác • Có thể thêm chức đặc điểm bổ sung nhau, chu kỳ đầu lựa chọn phát triển trước chức mấu Các vòng lặp tiếp tục xét thấy nguyên mẫu tốt để có chốt, định tồn thành cơng hay thất bại dự án, chu kỳ thể chuyển sang sản xuất sinh phiên thi hành ứng dụng phát triển Đây mơ hình tổng qt nhất, tất mơ hình khác ii) Quản lý yêu cầu: Đảm bảo giải vấn đề gặp phải xây xem thực mơ hình tổng qt này, hay xem mơ dựng hệ thống cần xây dựng; quản trị yêu cầu cho phép theo vết hình tổng hợp mơ hình khác Đặc biệt, chu trình xoắn ốc ứng dụng vấn đề đặt từ nhu cầu người sử dụng hệ thống đến đặc tính hệ khơng phát triển phần mềm mà phát triển phần cứng thống, chức năng, vấn đề phân tích, thiết kế kịch thử nghiệm Quy trình phát triển RUP mà luận văn giới thiệu phần ví dụ điển hình quy trình iii) Sử dụng kiến thức thành phần: Chia nhỏ hệ thống phần mềm thành phần nhỏ tương đối độc lập lại có quan hệ với theo nguyên tắc định 1.1.4 TIẾN TRÌNH PHÁT TRIỂN PHẦN MỀM RUP 1.1.4.1 Tổng quan quy trình phát triển RUP Một quy trình chuẩn cơng nhận q trình phân tích thiết kế, iv) Mơ hình trực quan phần mềm: RUP Sử dụng ngơn ngữ chuẩn UML để mơ hình hóa tồn hệ thống phần mềm cần phát triển v) Kiểm tra chất lượng phần mềm: RUP cho phép việc kiểm tra thử phát triển, thử nghiệm, triển khai chương trình định chất lượng nghiệm thực tất chu kỳ phát triển ứng dụng kiểm tra chương trình thời điểm tiến hành triển khai thử nghiệm mặt chính: kiểm tra mặt chức ứng dụng (thử nghiệm tất kịch tình sử dụng), kiểm tra tốc độ (hiệu năng) kiểm tra độ tin cậy ứng dụng Quy trình phát triển phần mềm theo RUP gồm pha (pha khởi đầu, pha chi tiết, pha xây dựng pha chuyển giao) giai đoạn công việc mà đội thực vi) Điều khiển thay đổi tới phần mềm : Khả quản lý thay đổi, trì ổn định có biến động hay phát biến động cần dự án cần tuân theo Kết thúc pha mốc xác định rõ ràng, thời điểm phải đưa định quan trọng để đạt mục tiêu mấu chốt thiết RUP cho cách tìm ra, kiểm sốt xử lý biến đổi RUP Pha khởi đầu (Inception): Trong pha này, nhà phát triển hình thành ca hướng dẫn cách thành lập vùng làm việc an toàn cho lĩnh vực việc nghiệp vụ cho hệ thống phân định phạm vi dự án Để thực điều nhà tách rời biến động từ phận khác nhau, kiểm soát biến động phát triển phải nhận thực thể tương tác với hệ thống (tác nhân) chế tác phần mềm Do nhóm hoạt động đơn vị độc lập và xác định chất tương tác Việc dẫn đến nhận dạng ca tự động tương tác xây dựng quản lý nghiệp vụ bao gồm tiêu chí thắng lợi, đánh giá rủi ro, dự báo tài nguyên cần 1.1.4.2 Quy trình phát triển phần mềm theo RUP thiết kế hoạch pha mốc Kết pha xác định Tiến trình RUP mơ tả theo hai chiều (hai trục) (hình 1.2): Trục hồnh mục đích dự án đưa bước cần thiết để tiếp tục phát triển dự án thể thời gian khía cạnh động tiến trình Trục tung biểu diễn Pha chi tiết (Elaboration): Pha chi tiết bắt đầu phân tích yêu cầu khía cạnh tĩnh tiến trình, mơ tả hoạt động, chế tác, nhân viên luồng mơ hình hóa lĩnh vực Mục tiêu pha phân tích vấn đề, lựa chọn cơng việc hình thành lên tảng kiến trúc, hạn chế nguyên nhân rủi ro dự án, xác định kế hoạch đầy đủ cho nhiệm vụ phát triển hệ thống phần mềm Để đạt mục đích định kiến trúc phải thực để hiểu toàn hệ thống bao gồm: phạm vi, chức chính, yêu cầu phi chức Pha chi tiết pha quan trọng bốn pha Kết thúc pha này, vấn đề kỹ nghệ phải xem xét đầy đủ, dự án phải tính tốn kỹ để định có hay khơng cam kết thực pha xây dựng chuyển giao Các hoạt động pha chi tiết đảm bảo kiến trúc, yêu cầu kế hoạch đủ ổn định, rủi bị hạn chế, dự báo giá cả, thời gian để hoàn thành việc phát triển Pha xây dựng (Construction): Trong pha này, thành phần lại đặc trưng ứng dụng phát triển tích hợp vào ứng dụng, đặc trưng Hình 1.2 Tiến trình RUP phải kiểm thử Pha xây dựng tập trung vào quản lý tài nguyên thực công việc tối ưu giá cả, thời gian chất lượng Nhiều dự án có hoạt động song song đẩy nhanh kết có giá trị Kiến trúc kế hoạch có 10 11 mối quan hệ chặt chẽ Nói cách khác chất lượng cao kiến trúc thuận UML ngơn ngữ đặc tả có cấu trúc UML cho phép mơ tả mơ hình lợi cho xây dựng Đây lý phát triển thăng kiến trúc xác, khơng nhập nhằng hoàn thiện UML hướng tới đặc tả thiết kế, kế hoạch nhấn mạnh pha chi tiết phân tích định cài đặt q trình phát triển triển khai hệ thống Kết pha xây dựng sản phẩm sẵn sàng đặt tay người sử dụng Nó bao gồm: Sản phẩm phần mềm tích hợp, Tài liệu hướng dẫn sử dụng, Mô tả phiên hành phần mềm UML ngôn ngữ để xây dựng UML ngôn ngữ lập trình trực quan, mơ hình kết nối trực tiếp với ngơn ngữ lập trình Pha chuyển giao (Transition): Mục đích pha chuyển giao sản khác việc ánh xạ mơ hình UML tới ngơn ngữ lập trình khác phẩm đến cộng đồng người sử dụng Một sản phẩm đến tay người dùng JAVA, C++ hay bảng sở liệu (CSDL) quan hệ , CSDL nhiệm vụ địi hỏi ta phải phát triển phiên mới, sửa lỗi có hay kết thúc hướng đối tượng đặc trưng chưa hoàn thành Pha bắt đầu sở tương đối hoàn chỉnh để triển khai UML ngôn ngữ làm tài liệu UML hướng tới làm tài liệu kiến trúc hệ thống chi tiết UML cho khả biểu diễn yêu cầu, thử đến người dùng cuối Những yêu cầu thức mà số sản phẩm thử nghiệm, mơ hình hố hoạt động lập kế hoạch quản lý sản phầm nghiệm hệ thống hoàn thiện đạt yêu cầu chất lượng mà chuyển giao 1.2.2 MƠ HÌNH KHÁI NIỆM CỦA UML cho người sử dụng tạo kết tích cực cho tất bên Mơ hình khái niệm UML gồm ba vấn đề chính: phần tử để 1.2 NGƠN NGỮ MƠ HÌNH HĨA THỐNG NHẤT - UML UML ngơn ngữ mơ hình hóa thống Nó ngơn ngữ mơ hình hóa chuẩn để thiết kế phần mềm hướng đối tượng, dùng để đặc tả, trực quan hóa, xây dựng làm tài liệu cho hệ thống phần mềm [10] 1.2.1 CÁC ĐẶC TRƯNG CỦA UML xây dựng mơ hình, quy tắc liên kết chế chung sử dụng cho ngơn ngữ Các khối để hình thành mơ hình UML bao gồm: Phần tử, Quan hệ Biểu đồ i) Các phần tử UML gồm loại: - Phần tử cấu trúc gồm có: lớp, giao diện, phần tử cộng tác, trường hợp sử UML cịn ngơn ngữ đồ họa với tập quy tắc ngữ nghĩa, cho ta biết cách tạo đọc hiểu mơ hình thiết kế cách rõ ràng UML ngôn ngữ làm trực quan Những điều suy nghĩ hình dung hệ thống cần xây dựng từ khía cạnh khác biểu diễn ký hiệu đồ hoạ biểu diễn sơ đồ với giải thích văn kèm dụng (Use case), lớp tích cực (active class), thành phần nút (node) - Phần tử hành vi gồm có: tương tác, máy trạng thái - Phần tử nhóm có phần tử gói (package) - Chú thích (annotational) 12 13 ii) Các quan hệ UML bao gồm loại: quan hệ phụ thuộc (dependency), quan hệ kết hợp (association), quan hệ khái quát hóa (generalization) quan hệ thực hóa (realization) cộng tác gói Khung nhìn tập trung vào mức cao hệ thống làm, không quan tâm đến hệ thống làm ii) Khung nhìn thiết kế tập trung vào việc hệ thống cài đặt hành vi iii) Biểu đồ UML gồm có: biểu đồ trường hợp sử dụng (User case - UC), Use Case Nó bao gồm lớp, biểu đồ lớp, biểu đồ đối tượng biểu đồ trình tự (sequence), biểu đồ cộng tác (collaboration), biểu đồ lớp (class), (khía cạnh tĩnh khung nhìn), biểu đồ tương tác, biểu đồ biến đổi trạng thái biểu đồ chuyển trạng thái (state transition), biểu đồ thành phần (component) (khía cạnh động hệ thống) gói Thông thường đội ngũ phát triển phần biểu đồ triển khai (deployment) mềm tiếp cận khung nhìn thiết kế theo hai bước: Chi tiết khối để hình thành mơ hình UML mơ tả chi tiết tài liệu [2, 7] - Bước thứ nhất: Nhận lớp phân tích lớp độc lập với ngơn ngữ lập trình - Bước thứ hai: Chuyển lớp phân tích sang lớp thiết kế lớp 1.2.3 KIẾN TRÚC HỆ THỐNG phụ thuộc ngôn ngữ lập trình Kiến trúc phần mềm cho phép nhìn khái quát hệ thống phần mềm góc độ khác Kiến trúc hệ thống phần mềm mơ tả năm loại khung nhìn tương tác với (hình 1.3) Mỗi khung nhìn phản ánh khía cạnh tổ chức cấu trúc hệ thống tập trung vào mặt cụ thể giúp cho việc hiểu sử dụng hệ thống tốt Khung nhìn thiết kế tập trung vào cấu trúc logic hệ thống Trong khung nhìn ta nhận phận hệ thống, khảo sát thông tin hành vi, khảo sát quan hệ phận iii) Khung nhìn cài đặt hay khung nhìn thành phần gồm thành phần mô-đun vật lý hay tệp mã trình để lắp ráp thành hệ thống vật lý Khung nhìn Khung nhìn thiết kế Khung nhìn triển khai Khung nhìn Use Case Khung nhìn tiến trình thành phần bao gồm thành phần, biểu đồ thành phần gói iv) Khung nhìn tiến trình hệ thống chứa đựng luồng tiến trình Khung nhìn cài đặt Hình 1.3 Mơ hình hố kiến trúc hệ thống công việc tạo nên chế hoạt động tương tranh đồng hệ thống v) Khung nhìn triển khai tập trung vào phân bổ vật lý tài nguyên phân bổ nhiệm vụ tài nguyên Khung nhìn tiến trình i) Khung nhìn Use Case đứng trước khung nhìn khác Nó hình thiết bị mạng kết nối vật lý chúng thành từ giai đoạn phân tích yêu cầu sử dụng để điều khiển thúc đẩy Tuy nhiên tất hệ thống đòi hỏi đầy đủ khung phần việc cịn lại thiết kế Khung nhìn mơ tả hành vi hệ thống theo nhìn mơ tả Ví dụ: hệ thống máy tính riêng lẻ bỏ khung nhìn cách nhìn khách hàng, nhà phân tích người kiểm thử Khung nhìn triển khai, hệ đơn xử lý bỏ khung nhìn tiến trình, chương trình nhỏ Use Case chứa tác nhân: UC, biểu đồ UC, vài biểu đồ trình tự, biểu đồ bỏ khung nhìn cài đặt 14 15 Tóm lược: Chương trình bày nội dung nghiên cứu tổng quan phương pháp quy trình phát triển phần mềm, ngơn ngữ mơ hình hóa UML Trong luận án tập trung nghiên cứu phương pháp phát triển phần mềm hướng đối tượng tiến trình phát triển phần mềm RUP MỞ ĐẦU Chương GIỚI THIỆU QUY TRÌNH PHÁT TRIỂN PHẦN MỀM VÀ NGƠN NGỮ MƠ HÌNH HĨA 1.1 Quy trình phát triỂn phẦn mỀm 1.1.1 ĐỊnh nghĩa 1.1.2 phương pháp phát triỂn phẦn mỀm HƯỚNG ĐỐI TƯỢNG 1.1.3 CHU trình phát triỂn phẦn mỀm XOẮN ỐC 1.1.4 TiẾn trình phát triỂn phẦn mỀm RUP 1.1.4.1 Tổng quan quy trình phát triển RUP 1.1.4.2 Quy trình phát triển phần mềm theo RUP 1.2 Ngơn ngỮ mơ hình hóa thỐng nhẤt - UML 10 1.2.1 Các đẶc trưng cỦa UML 10 1.2.2 Mơ hình khái niỆm cỦa UML 11 1.2.3 KIẾN TRÚC HỆ THỐNG 12 16 Hình 1.1 Chu trình xoắn ốc Hình 1.2 Tiến trình RUP 66 Chương ỨNG DỤNG PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG VÀ MẪU THIẾT KẾ XÂY DỰNG PHẦN MỀM QUẢN LÝ THẺ ĐIỆN THOẠI Hình 1.3 Mơ hình hố kiến trúc hệ thống 13 Chương trình bày việc ứng dụng quy trình RUP phương pháp hướng đối tượng mẫu thiết kế việc phân tích, thiết kế xây dựng Hệ thống quản lý thẻ điện thoại trả trước Bưu điện Thành phố Hà Nội 3.1 GIỚI THIỆU BÀI TỐN Trong phát triển chung, với địi hỏi thị trường ngày cao, dịch vụ viễn thông trọng hàng đầu để đem lại thuận lợi, thoải mái cho người sử dụng Các dịch vụ bán hàng trả trước đời đáp ứng nhu cầu phận lớn người tiêu dùng có bước đột phát số lượng khách hàng so với dịch vụ khác thời Với tiện dụng hòa mạng ban đầu, với cách tính cước rõ ràng chủ động cao sử dụng, dịch vụ thẻ trả trước: Vinaphone card, Internet card chiếm ưu việc gia tăng số lượng người sử dụng hàng ngày dịch vụ Bưu điện Thành phố Hà Nội Theo số liệu thống kê Bưu điện Hà Nội, số thuê bao di động trả trước chiếm tới gần 80% số thuê bao mạng di động VinaPhone MobilePhone Đối với Bưu điện tỉnh thành Bưu điện thành phố Hà Nội, việc nhận thẻ, bán thẻ quản lý thẻ trước chủ yếu thực sổ sách, số liệu nhập quản lý Hệ quản trị CSDL FoxPro cách rời rạc Tuy nhiên với phát triển nhanh dịch vụ, việc giảm thiểu nhân gia tăng không ngừng số lượng thẻ, số lượng đại lý dẫn đến nhu cầu hệ thống quản lý đại lý quản lý thẻ trả trước cách thống nhất, tạo thuận lợi cho 93 liên kết với PhieuNhap, theo trách nhiệm gán cho PhieuNhap 94 3.5.1.3 Biểu đồ cộng tác cho Hợp đồng xuất thẻ Tương tự hợp đồng nhập thẻ, biểu đồ cộng tác hợp đồng xuất thẻ thiết kế hình 3.15 Trong trách nhiệm 1:xuatThe() gán cho lớp Hethongthe; trách nhiệm 7:taoDongthexuat() 8:create() gán cho lớp PhieuXuat; trách nhiệm lấy thông tin loại thẻ 4:specification() gán cho lớp Danhmucthe trách nhiệm lấy mã đại lý 6:madaily() gán cho lớp Daily Trách nhiệm tạo instance TheXuat liên kết với PhieuXuat, gán cho PhieuXuat theo mẫu Low Coupling Hình 3.13 Biểu đồ cộng tác hợp đồng nhập thẻ 3.5.1.2 Biểu đồ cộng tác cho Hợp đồng kết thúc phiên nhập thẻ Biểu đồ cộng tác hợp đồng kết thúc phiên nhập thẻ thiết kế hình 3.14 Hình 3.15 Biểu đồ cộng tác xuất thẻ Hình 3.14 Biểu đồ cộng tác hợp đồng kết thúc phiên nhập thẻ 3.5.1.4 Biểu đồ cộng tác cho Hợp đồng kết thúc phiên xuất thẻ Biểu đồ cộng tác hợp đồng kết thúc phiên xuất thẻ thể Áp dụng mẫu Controller mẫu Expert GRASP, trách nhiệm ketthucNhapthe() gán cho lớp Hethongthe, trách nhiệm inPhieunhap() chuyenKetthuc() gán cho lớp PhieuNhap hình 3.16 Áp dụng mẫu Controller mẫu Expert GRASP, trách nhiệm ketthucXuatthe() gán cho lớp Hethongthe, trách inPhieuxuat() chuyenKetthuc() gán cho lớp PhieuXuat nhiệm 95 96 Hình 3.16 Biểu đồ cộng tác hợp đồng kết thúc phiên xuất thẻ 3.5.1.5 Biểu đồ cộng tác cho Hợp đồng tính dư nợ đại lý Hợp đồng tính dư nợ thực chất tính tổng tiền mà đại lý phải toán Tổng tiền toán tổng giá trị đợt xuất thẻ cho đại lý số tiền đại lý cịn nợ lần tốn trước Biểu đồ cộng tác tính dư nợ thể thơng qua hai biểu đồ cộng tác thành phần thể hình 3.17 hình 3.18 Hình 3.18 Biểu đồ cộng tác tính dư nợ Để thực cơng việc toán tiền đại lý bán thẻ, đối tượng điều khiển phải có khả lấy tất hợp đồng xuất thẻ cho đại lý kể từ lần toán cuối đến thời điểm tốn, áp dụng mẫu điều khiển - GRASP Controller, hợp đồng tính dư nợ Duno(maDL) gán cho lớp điều khiển Hethongthe Áp dụng mẫu chuyên gia - GRASP Expert, trách nhiệm gán cho lớp Thanhtoan, Xuatthe, TheXuat, Loaithe, Daily bảng 3.2 Lớp thiết kế Hình 3.17 Biểu đồ cộng tác khởi tạo dư nợ Trách nhiệm/nhiệm vụ Phieuthanhtoan Biết tổng tiền nợ đại lý (Tongthanhtoan(maDL)) Xuatthe Biết tổng tiền hóa đơn xuất (tongHoadon()) TheXuat Biết tổng tiền loại loại thẻ xuất (subtotal()) Loaithe Biết giá bán cho đại lý loại thẻ (giaban()) Daily Biết số tiền đại lý cịn nợ lần tốn trước (nocu()) Bảng 3.2 Trách nhiệm gán cho lớp Phieuthanhtoan, Xuatthe, TheXuat, Loaithe, Daily 97 Khi hàm tổng tongtien(), tongHoadon() subtotal() thực sau: 98 3.5.1.7 Biểu đồ cộng tác cho Hợp đồng khởi động hệ thống Việc khởi động hệ thống việc hệ thống phải thực hiện, Phieuthanhtoan Tongthanhtoan() { ttien:=0 for each PhieuXuat, px ttien:=ttien + px.tongHoadon() return ttien + Daily.nocu() } PhieuXuat tongHoadon() { thd:=0 for each TheXuat, tx thd:=thd + tx.subtotal() return thd } thiết kế, hợp đồng thiết kế sau để đảm bảo thông tin liên quan đến hoạt động sau hệ thống xác định Biểu đồ cộng tác KhoidongHT xảy đối tượng miền ứng dụng tạo Nghĩa hệ thống phải gán trách nhiệm create() cho lớp Hethongthe Căn vào hợp đồng KhoidongHT mẫu GRASP, biểu đồ cộng tác cho KhoidongHT hình 3.20 TheXuat subtotal() { return soluong*lt.giaban() } 3.5.1.6 Biểu đồ cộng tác cho Hợp đồng tốn tiền mặt Hình 3.19 Biểu đồ cộng tác tính dư nợ Biểu đồ cơng tác hợp đồng trả tiền mặt thể hình 3.19 Một cơng việc việc tốn tiền mặt tính tiền chênh lệch số tiền mặt trả tổng số nợ đại lý (Balance()) Phần công việc gán trách nhiệm cho lớp Phieuthanhtoan Phieuthanhtoan Balance() { return sotientra - Tongthanhtoan(); } Hình 3.20 Biểu đồ cộng tác khởi động hệ thống 99 100 3.5.2.2 Bổ sung quan hệ lớp 3.5.2 BIỂU ĐỒ LỚP THIẾT KẾ Thiết kế biểu đồ lớp việc xác định mối quan hệ lớp Mối quan 3.5.2.1 Thiết kế lớp Các lớp thiết kế thiết kế dựa việc biến đổi lớp phân tích (từ mơ hình khái niệm) thành lớp thiết kế Tiếp theo bổ sung phương thức hay hệ lớp biểu diễn mũi tên từ lớp nguồn đến lớp đích Trên mũi tên có thơng tin xác định quan hệ tên mối quan hệ thao tác kiểu liệu chúng cho lớp dựa theo thiết kế biểu đồ cộng tác Từ mơ hình khái niệm biểu đồ cộng tác theo thiết kế trên, nhapThe() ketthucNhapthe() xuatThe() ketthucxuatthe() Duno() TrabangTienmat() Danhmucthe Hang : S tring maDaily() nocu() NhapThe Loait he maloai : String Menhgia : Integer Giaban : Integer hansudung : Date find() giaban() DaiLy maDL : String TenDL : String Diachi : String nocu : Double themPhieunhap() TheNhap NhapThe (from Core) themPhieuxuat () TheXuat tuSeri : SN denSeri : SN subtotal() taoDongthexuat() inPhieuxuat() chuyenKetthuc() tongHoadon() chua Hang : String 1 specificati on() napLoaithe() * quan-ly nhapThe() kett hucNhapthe() x uatT he() kett hucxuatthe() Duno() TrabangTienmat () TrabangThe() TrabangSec () PhieuNhap 1 * * TheNhap (from The) chua tuSeri : SN denSeri : SN * TheXuat (from The) quan-ly cung-cap XuatThe PhieuXuat : Date isComplete : Boolean ghi-nhan (from Core) .* themPhieuxuat() themPhieuthanhtoan() taoDongthenhap() create() inPhieunhap() chuyenKetthuc() taoDongthexuat() inPhieuxuat() chuyenKetthuc() tongHoadon() quan-ly * chua tuSeri : SN denSeri : SN subtotal() ban-cho * cung-cap * Hình 3.21 Các lớp thiết kế hệ thống maDL : String : Date ghi-nhan (from Core) themPhieuthanhtoan() thanh-toan-boi Phieuthanhtoan Thanhtoan * thanh-toan-cho napPhieuxuat () Balance() Tongthanht oan() mo-ta mo-ta PhieuNhap : Date isComplete : Boolean * (from Core) : Date isComplete : Boolean Phieuthanhtoan maDL : St ring : Date find() giaban() ghi-nhan Hethongthe tuSeri : SN denSeri : SN Phieu Xuat : Date isComplete : Boolean (from The) (from The) maloai : String Menhgia : Integer Giaban : Integer hansudung : Date 1 Thanhtoan XuatThe Loaithe Danhmucthe su-dung t hemPhieunhap() 1 cung-cap specification() napLoaithe() taoDongthenhap() create() inPhieunhap() chuyenKetthuc() 1 lớp thiết kế hệ thống quản lý thẻ thể hình 3.21 Hethongthe sudung su-dung napPhieuxuat() Balance() Tongthanhtoan() Hình 3.22 Biểu đồ lớp thiết kế hệ thống DaiLy maDL : St ri ng TenDL : String Diachi : String nocu : Double maDaily() nocu() 101 102 Mối quan hệ lớp xác định sở mối quan hệ mô Quan hệ phụ thuộc việc thành phần biết thành phần khác hình khái niệm trình tương tác đối tượng mơ hình Trong biểu đồ lớp quan hệ phụ thuộc hiệu để mơ tả khả ‘nhìn thấy’ cộng tác Thông thường mối quan hệ hai lớp A B xác lập A gửi lớp Khả nhìn thấy đối tượng gồm: tầm nhìn thuộc thơng điệp cho B và/hoặc A tạo instance B A cần trì liên kết tính, tầm nhìn tham số, tầm nhìn khai báo cục tầm nhìn tồn cục với B Biểu đồ lớp hệ thống quản lý thẻ xây dựng thể hình 3.22 Trong hệ thống quản lý thẻ lớp Hethongthe tiếp nhận đối tượng trả lại kiểu Loaithe từ thông điệp mà gửi cho Danhmucthe, Hethongthe có khả nhìn thấy Loaithe Lớp PhieuNhap PhieuXuat 3.5.2.3 Bổ sung quan hệ phụ thuộc tiếp nhận Loaithe tham số phương thức taoDongthenhap() sudung su-dung 1 NhapThe ( from The) Danhmucthe (from The) su-dung (from Core) themPhieunhap() 1 cung-cap chua Hang : String taoDongthexuat() Như Hethongthe, PhieuNhap, PhieuXuat có quan Loai the specification() napLoaithe() * maloai : String Menhgia : Integer Giaban : Integer hansudung : Date hệ phụ thuộc tới Loaithe Bổ sung quan hệ phụ thuộc, biểu đồ lớp thiết kế ghi-nhan 1 Hethongthe quan-ly nhapThe() ketthucNhapthe() xuatThe() ketthucxuatthe() Duno() TrabangTienmat() TrabangThe() TrabangSec() 1 (from Core) (from The) tuSeri : SN denSeri : SN .* (from The) quan-ly PhieuXuat : Date isComplete : Boolean ghi-nhan taoDongthexuat() inPhieuxuat() chuyenKetthuc() tongHoadon() * quan-ly * chua t uSeri : SN denSeri : SN 1 ban-cho Thanhtoan (from Core) themPhieuthanhtoan() ghi-nhan thanh-toan-boi Phieuthanhtoan maDL : String : Date Tầng trình bày subtot al() thanh-toan-cho * * 1 * cung-cap Hệ thống quản lý thẻ điện thoại thiết kế triển khai theo kiến trúc ba TheNhap chua TheXuat 1 cung-cap XuatThe themPhieuxuat() taoDongthenhap() create() inPhieunhap() chuyenKetthuc() * 3.5.3 THIẾT KẾ TRIỂN KHAI * : Date isComplete : Boolean (from Core) mo-ta mo-ta Phi euNhap * hệ thống thể hình 3.23 find() giaban() DaiLy maDL : String TenDL : String Diachi : String nocu : Double maDaily() nocu() Tầng ứng dụng Ghi nhận nhập thẻ, xuất thẻ, toán Xác thực toán Tầng liệu CSDL napPhieuxuat() Balance() Tongthanhtoan() Hình 3.23 Biểu đồ lớp thiết kế bổ sung quan hệ phụ thuộc hệ thống Hình 3.24 Kiến trúc ba tầng hệ thống tầng bao gồm tầng trình bày, tầng ứng dụng tầng lưu trữ hình 3.24 103 104 Mối liên hệ tầng trình bày tầng ứng dụng thực thông qua lớp HethongtheApplet ví dụ hình 3.25 Gói thiết kế Các lớp Hệ thống quản lý thẻ tổ chức lại thành gói khái niệm (package) nhằm làm cho việc quan sát mơ hình thiết kế trở nên đơn giản Các nhấn phím Nhap gói khái niệm Hệ thống quản lý thẻ thiết kế bao gồm: Domain Concepts, onNhap() Tầng trình bày Core, NhapThe, XuatThe, The, Thanhtoan (Hình 3.27 - hình 3.32) : HethongtheApplet Domain Concepts 1:nhapThe(maloai, seri1, seri2) Core Tầng ứng dụng Au tho riza tion Trans actions Thanhtoan Hình 3.25 Liên kết tầng trình bày tầng ứng dụng Hệ thống tiếp tục phân chia thành lớp mịn hình 3.26 Hình 3.27 Gói Domain Concepts Tầng ứng dụng lúc bao gồm lớp sau: Core Hethongthe - Domain Objects - Các lớp biểu diễn khái niệm lĩnh vực, ví dụ: NhapThe, XuatThe, Thanhtoan NhapThe cung-cap themPhieunhap() - Services - Các đối tượng phục vụ cho hàm trao đổi với CSDL, 1 Xuat The nhapThe() ketthucNhapthe() xuatThe() ketthucxuatthe() Duno() TrabangTienmat() TrabangThe() TrabangSec() cung-cap themPhieuxuat() báo cáo, liên kết, an toàn, XuatThe themPhieuthanhtoan() The Danhm uc the N hapThe NhapThe Thanhtoan cung -cap Hình 3.28 Gói Core Hethongthe Applet Tầng trình bày The XuatThe NhapThe ht : Hethongthe Thanhtoan Tầng ứng dụng su -d u n g (fro m C ore ) Khái niệm lĩnh vực 1 th e m P h ie un h a p () H a n g : S tri n g sp e ci fi ca ti o n () n a p L o a i th e () XuatThe su -d u n g (fro m C o re ) 1 th e m P h i e u xu a t() c hu a * Giao diện CSDL Dịch vụ (fro m X u a tT h e ) tu S e ri : S N d e n S e ri : S N Tầng liệu su b to ta l () CSDL Hình 3.26 Kiến trúc ba tầng hệ thống Lo aith e TheXuat mo -ta * m a l o a i : S tri n g M e n h g i a : In te g e r G i a b a n : In te g e r h a n su d u n g : D a te TheN hap mo -ta fi n d () g i a b a n () Hình 3.29 Gói The * (fro m N h a p T h e ) tu S e ri : S N d e n S e ri : S N 105 106 NhapThe Thanhtoan Hethongthe NhapThe (from Core) (from Core) cung-cap nhapThe() ketthucNhapthe() xuatThe() ketthucxuatthe() Duno() TrabangTienmat() TrabangThe() TrabangSec() 1 xac-thuc-thanh-toan Phieuthanhtoan themPhieunhap() ghi-nhan * : Date isComplete : Boolean taoDongthenhap() create() inPhieunhap() chuyenKetthuc() * * tuSeri : SN denSeri : SN tra-b oi TrabangTienmat sotientra diachi hoten dienthoai Check TheNhap chua Authori za ti onSe rvice merchanID themPhieuthanhtoan() napPhieuxuat() Balance() Tongthanhtoan() PhieuNhap quan-ly Service Contract (from Core) maDL : String : Date Tongthanhtoan 1 * Thanhtoan TrabangThe TrabangSec name Check Authoriza ti on * xac-thuc-b oi * * * Credit Authorization * xac-thuc-b oi DriverLicense number Hình 3.30 Gói NhapThe Account Receivable 1 CreditCard DaiLy number expiryDate XuatThe Hethongthe (from Core) ban-cho quan-ly (from Core) them Phieuxuat() ghi-nhan 1 * maDL : String TenDL : String Diachi : String nocu : Double maDaily() nocu() Hình 3.32 Gói Thanhtoan PhieuXuat XuatThe m aDL : String T enDL : String Diachi : String nocu : Double m aDaily() nocu() cung-cap su-dung-b oi (from Logical View) nhapT he() ketthucNhapthe() xuatT he() ketthucxuatthe() Duno() T rabangT ienm at() T rabangT he() T rabangSec() (from Logical View) DaiLy dinh-danh : Date isCom plete : Boolean TheXuat taoDongthexuat() inPhieuxuat() chuyenKetthuc() tongHoadon() * chua tuSeri : SN denSeri : SN subtotal() Ở hệ thống bổ sung khả cho phép đại lý toán (trả) thẻ tín dụng séc Do hệ thống thiết kế bổ sung lớp TrabangTienmat, CreditCard, Hình 3.31 Gói XuatThe TrabangThe, DriverLicense, TrabangSec, Check, AccountReceivable, CheckAuthorization, CreditAuthorization, AuthorizationService, ServiceContract 3.5.4 BỔ SUNG THIẾT KẾ 3.5.4.1 Bổ sung biểu đồ trình tự tốn thẻ tín dụng séc Khi tốn, đại lý trả thẻ tín dụng Thẻ tín dụng xác định thông qua số hiệu thẻ (ccNum) hạn sử dụng (expiryDate) Điều thể 107 việc gửi thông điệp TrabangThe(ccNum, expirryDate) cho hệ thống Hệ thống gửi yêu cầu kiểm duyệt thẻ requestApproval(request) tới phận kiểm duyệt thẻ tín dụng tác nhân hệ thống Hệ thống dựa vào kết trả lời phận kiểm duyệt để toán với khách hàng cách trừ số tiền mua hàng thẻ tín dụng hợp pháp, nghĩa thực handleCreditReply() (xử lý thẻ kiểm duyệt), dựa vào kết phận kiểm duyệt Biểu đồ trình tự mơ tả tương tác người tiếp đón, hệ thống phận kiểm duyệt thẻ Authorization thiết lập hình 3.33 108 Tương tự, ta thiết kế biểu đồ trình tự thành tốn séc hình 3.34 3.5.4.2 Bổ sung hợp đồng tốn thẻ tín dụng séc Hợp đồng tốn thẻ tín dụng Tên gọi: TrabangThe(ccNum, expiryDate) Trách nhiệm: Tạo yêu cầu chứng thực cho việc toán thẻ Kiểu / Lớp: System (Hệ thống) Tham chiếu tới: Use case Thanh toán Kết quả: Một yêu cầu toán gửi đến cho phận kiểm duyệt thẻ Post-conditions: + Một toán thẻ pmt tạo + pmt liên kết với phiên toán + Một thẻ cc tạo ra, cc.number = ccNum, cc.expiryDate = expiryDate + cc liên kết với pmt + Một yêu cầu toán thẻ cpr tạo + pmt liên kết với cpr + cpr liên kết với dịch vụ xác thực thẻ CreditAuthorization Hình 3.33 Biểu đồ trình tự tốn thẻ tín dụng Hợp đồng thao tác phản hồi kiểm tra thẻ Hình 3.34 Biểu đồ trình tự tốn séc Tên gọi: HandleCreditReply(reply: CreditPaymentReply) Trách nhiệm: Phản hồi trả lời kiểm duyệt từ phận kiểm duyệt Nếu chấp nhận hồn thành ghi nhận toán Kiểu / Lớp: System (Hệ thống) Tham chiếu tới: Use case Thanh toán Kết quả: Nếu chấp nhận, phản hồi chấp nhận toán thẻ (creditPaymentApprovalReply) gửi đến cho phận tiếp nhận tài khoản (AccountReceivable) 109 Post-conditions: Nếu trả lời chấp nhận thì: + Một trả lời chấp nhận tốn thẻ approval tạo + approval liên kết với AccountReceivable Nếu không chấp nhận: + Một trả lời từ chối toán thẻ denial tạo Hợp đồng toán bằng séc 110 Nếu trả lời chấp nhận thì: + Một trả lời chấp nhận toán séc approval tạo Post-conditions: Nếu không chấp nhận: + Một trả lời từ chối toán séc denial tạo Khi thực hợp đồng TrabangThe, TrabangSec công việc chung cần thực kiểm tra xác thực - Authorize() Áp dụng mẫu Polymorphism Tên gọi: TrabangSec(driversLicenceNum) GRASP, lớp phục vụ tốn gói Thanhtoan thiết kế Trách nhiệm: Tạo yêu cầu chứng thực cho việc tốn séc hình 3.35 Mỗi hình thức tốn phải tự thực việc kiểm tra xác Kiểu / Lớp: System (Hệ thống) thực toán Tham chiếu tới: Use case Thanh toán Tiền điều kiện Phiên tiếp đón hồn thành Post-conditions: + Một toán séc pmt tạo PhieuThanhtoan Tongthanhtoan + pmt liên kết với phiên toán TrabangTienm at TrabangThe Trabangsec + Một drivers License dl tạo ra, dl.number = Authorize() Authorize() Authorize() driversLicenseNum + dl liên kết với pmt Polym orphism + Một yêu cầu toán séc cpr tạo + pmt liên kết với cpr Hình 3.35 Polymorphism xác thực toán + cpr liên kết với CreditAuthorizationService Hợp đồng thao tác phản hồi kiểm tra séc 3.5.4.3 Bổ sung biểu đồ cộng tác Biểu đồ cộng tác khởi tạo hợp đồng TrabangThe hợp đồng TrabangSec Tên gọi: HandleCheckReply(reply: CheckPaymentReply) Trách nhiệm: Phản hồi trả lời kiểm duyệt từ phận kiểm duyệt Nếu chấp nhận hồn thành phiên tốn ghi nhận tốn Kiểu / Lớp: System (Hệ thống) Tham chiếu tới: Use case Thanh toán Tiền điều kiện: Yêu cầu kiểm tra séc gửi đến phận kiểm tra séc thiết kế hình 3.36 hình 3.37 Mẫu Creator Polymorphism áp dụng trình thiết kế để gán trách nhiệm cho lớp 111 112 3.5.4.4 Áp dụng thêm mẫu thiết kế i) Áp dụng mẫu GoF Singleton Để bảo đảm suốt trình làm việc hệ thống, lớp XuatThe Thanhtoan tạo thể để tránh việc có nhiều phiên xuất thẻ xuất cho đại lý có nhiều phiên toán thực cho đại lý, mẫu GoF Singleton áp dụng cho việc thiết kế lớp (Hình 3.38) Hình 3.36 Biểu đồ cộng tác khởi tạo hợp đồng TrabangThe Hình 3.37 Biểu đồ cộng tác khởi tạo hợp đồng TrabangSec Hình 3.38 Áp dụng Mẫu Singleton thiết kế lớp XuatThe Thanhtoan 113 114 trường hợp này, theo mẫu GoF Remote Proxy, ta tạo lớp nội ii) Áp dụng mẫu GoF Remote Proxy Proxy làm đại diện liên lạc với dịch vụ thực đối tượng CreditAuthorizationService sử dụng để giao tiếp với bên Khi thực tốn thẻ, hệ thống cần tìm dịch vụ xác thực thẻ, sau sở remote proxy đề nghị dịch vụ giao dịch với dịch vụ thực tế Hình 3.39 thể biểu đồ cộng tác thực việc tìm dịch vụ tốn thẻ tín dụng, sử dụng mẫu Remote proxy hành động (a) 3.5.5 MƠ HÌNH HĨA DỮ LIỆU Trên sở phân tích thiết kế, phần sở liệu Hệ thống quản lý thẻ thiết kế hình 3.40 (b) (c) Hình 3.39 Áp dụng mẫu Remote proxy: (a) tìm dịch vụ xác thực, (b) sử dụng Remote proxy (c) hành động Remote proxy Hình 3.40 Biểu đồ quan hệ liệu hệ thống Trong việc tốn thẻ tín dụng, hệ thống cần phải giao dịch với dịch vụ xác thực thẻ bên - CreditAuthorizationService Trong 115 3.6 CÀI ĐẶT THIẾT KẾ 3.6.1 BIỂU ĐỒ THÀNH PHẦN 116 Thành phần mô đun vật lý mã trình, thành phần phần mềm thư viện mã nguồn tệp chạy Mặc định lớp thiết kế có phần đặc tả phần thân Đặc tả chứa ghép nối lớp, thân chứa cài đặt lớp Biểu đồ thành phần thể thành phần hệ thống phụ thuộc chúng Biểu đồ thành phần hệ thống quản lý thẻ thiết kế hình 3.41 3.6.2 BIỂU ĐỒ TRIỂN KHAI Biểu đồ triển khai mô tả kiến trúc hệ thống phần cứng khác xử lý, thiết bị thành phần phần mềm thực kiến trúc Mạng LAN Bưu điện Tp HN Hình 3.42 Biểu đồ triển khai hệ thống Hệ thống Quản lý thẻ Bưu điện Thành phố Hà Nội triển khai đầy đủ xây dựng theo biểu đồ triển khai hình 3.41, đó: Hình 3.41 Biểu đồ thành phần Hệ thống quản lý thẻ - Máy Dich vu CSDL: Là máy chứa CSDL hệ thống quản lý thẻ 117 - Máy May1, May2: máy trạm Bưu điện Tp.HN thực chương trình quản lý thẻ - Máy Dich vu Datmua: Chứa trình dịch vụ Internet phục vụ việc đặt mua thẻ qua mạng - ISP: Nhà cung cấp dịch vụ Internet - Máy Dai ly: Là máy tính đại lý có kết nối Internet để đặt mua thẻ qua Internet 119 ii) Biểu đồ trình tự xuất thẻ 87 iii) Biểu đồ trình tự tốn tiền mặt 88 3.4.2 giao kèo thao tác cỦa hỆ thỐng 88 3.4.2.1 Hợp đồng nhập thẻ 89 3.4.2.2 Hợp đồng kết thúc phiên nhập thẻ 89 3.4.2.3 Hợp đồng xuất thẻ 90 Tóm lược: Chương trình bày kết ứng dụng phương pháp hướng đối 3.4.2.4 Hợp đồng kết thúc phiên xuất thẻ 90 tượng, quy trình RUP mẫu thiết kế vào việc phân tích, thiết kế, xây dựng Hệ 3.4.2.5 Hợp đồng tính dư nợ 91 thống quản lý thẻ điện thoại trả trước Bưu điện Thành phố Hà Nội Đặc biệt việc ứng dụng mẫu thiết kế hỗ trợ nhiều cho việc định gán trách nhiệm cho lớp thiết kế, xây dựng cấu trúc mối quan hệ lớp để làm cho hệ thống có khả tái sử dụng cao 3.4.2.6 Hợp đồng trả tiền mặt 91 3.4.2.7 Hợp đồng khởi động hệ thống 92 3.5 ThiẾt kẾ hỆ thỐng 92 3.5.1 Các biỂu đỒ cỘng tác 92 3.5.1.1 Biểu đồ cộng tác cho Hợp đồng nhập thẻ 92 3.5.1.2 Biểu đồ cộng tác cho Hợp đồng kết thúc phiên nhập thẻ 93 3.5.1.3 Biểu đồ cộng tác cho Hợp đồng xuất thẻ 94 3.5.1.4 Biểu đồ cộng tác cho Hợp đồng kết thúc phiên xuất thẻ 94 3.5.1.5 Biểu đồ cộng tác cho Hợp đồng tính dư nợ đại lý 95 3.5.1.6 Biểu đồ cộng tác cho Hợp đồng toán tiền mặt 97 3.5.1.7 Biểu đồ cộng tác cho Hợp đồng khởi động hệ thống 98 3.5.2 BiỂu đỒ lỚp THIẾT KẾ 99 3.5.2.1 Thiết kế lớp 99 3.5.2.2 Bổ sung quan hệ lớp 100 3.5.2.3 Bổ sung quan hệ phụ thuộc 101 121 122 Hình 3.36 Biểu đồ cộng tác khởi tạo hợp đồng TrabangThe 111 Hình: Hình 3.37 Biểu đồ cộng tác khởi tạo hợp đồng TrabangSec 111 Bảng 3.1 Các chức Hệ thống quản lý thẻ 70 Hình 3.38 Áp dụng Mẫu Singleton thiết kế lớp XuatThe Thanhtoan 112 Hình 3.3 Biểu đồ UC hệ thống 77 Hình 3.39 Áp dụng mẫu Remote proxy: (a) tìm dịch vụ xác thực, (b) sử dụng Hình 3.4 Giao diện cho việc nhập thẻ 78 Remote proxy (c) hành động Remote proxy 113 Hình 3.5 Giao diện cho việc xuất thẻ 79 Hình 3.40 Biểu đồ quan hệ liệu hệ thống 114 Hình 3.6 Giao diện cho việc tốn 80 Hình 3.41 Biểu đồ thành phần Hệ thống quản lý thẻ 115 Hình 3.10 Biểu đồ trình tự nhập thẻ 87 Hình 3.42 Biểu đồ triển khai hệ thống 116 Hình 3.11 Biểu đồ trình tự xuất thẻ 87 Hình 3.12 Biểu đồ trình tự toán tiền mặt 88 Hình 3.13 Biểu đồ cộng tác hợp đồng nhập thẻ 93 Hình 3.14 Biểu đồ cộng tác hợp đồng kết thúc phiên nhập thẻ 93 Hình 3.15 Biểu đồ cộng tác xuất thẻ 94 Hình 3.16 Biểu đồ cộng tác hợp đồng kết thúc phiên xuất thẻ 95 Hình 3.17 Biểu đồ cộng tác khởi tạo dư nợ 95 Hình 3.18 Biểu đồ cộng tác tính dư nợ 96 Hình 3.19 Biểu đồ cộng tác tính dư nợ 97 Hình 3.20 Biểu đồ cộng tác khởi động hệ thống 98 Hình 3.27 Gói Domain Concepts 104 Hình 3.33 Biểu đồ trình tự tốn thẻ tín dụng 107 Hình 3.34 Biểu đồ trình tự tốn séc 107 Hình 3.35 Polymorphism xác thực toán 110 118 119 TÀI LIỆU THAM KHẢO PHẦN KẾT LUẬN Luận văn trình bày nghiên cứu phương pháp phân tích, thiết kế hướng đối tượng, tiến trình phát triển phần mềm RUP (Rational Unified Tiếng Việt trình bày mẫu GRASP (mẫu nguyên tắc chung ấn định Đặng Văn Đức (2002), Phân tích thiết kế hướng đối tượng UML, NXB Giáo dục trách nhiệm) GoF (Gang of Four) Các kết nghiên cứu ứng dụng vào việc phân tích, thiết kế, xây Nguyễn Văn Ba (2005), Phân tích thiết kế hệ thống thông tin, NXB Đại học quốc gia Hà Nội Process) mẫu thiết kế Trong đó, phần mẫu thiết kế tập trung nghiên cứu Nguyễn Quý Minh, Tăng Nguyễn Trung Hiếu, Phạm Anh Vũ, Lê Hải Dương, Phương Lan (2005), Design patterns, NXB Phương đông dựng thử nghiệm Hệ thống quản lý thẻ điện thoại trả trước Bưu điện Thành phố Hà Nội Hệ thống xây dựng theo phương pháp lập trình hướng đối Tiếng Anh tượng Việc phân tích, thiết kế thể ngôn ngữ UML thông qua C Larman (1998), Applying UML and Patterns, Prentice Hall PTR cơng cụ Rational Rose thực theo quy trình RUP Việc áp dụng số E Gamma, R Helm, R Johnson, J Vlissides (1994), Design Patterns: mẫu thiết kế GRASP GoF làm cho phân tích, thiết kế thuận lợi hiệu hơn, giúp cho chương trình có khả tái sử dụng cao Elements of Reusable Object-Oriented Software, Addison-Wesley Pattern-Oriented Software Architecture - A System of Patterns (Vol.1), Tuy nhiên với thời gian có hạn nhiều kiến thức cịn nên luận văn Wiley and Sons chắn nhiều hạn chế Chính thời gian tới em mong muốn tiếp tục nghiên cứu, tìm hiểu sâu mẫu thiết kế áp dụng thực F Buschmann, R Meunier, H Rohnert, P Sommerlad, M Stal (1996), G Booch, J Rumbaugh, I Jacobson (1999), The Unified Modeling Language User Guide, Addison Wesley quy trình RUP cho việc xây dựng toán lớn quan P Kruchten (2000), The Rational Unified Process: An Introduction (2nd Edition), Addison-Wesley Professional W Pree (1995), Design Patterns for Object-Oriented Software Development, Addison-Wesley 10 Z Liu (2002), Object-Oriented Software Development with UML, UNU/IIST Report No.259

Ngày đăng: 06/08/2016, 22:54

Từ khóa liên quan

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

Tài liệu liên quan