TRƯỜNG ĐẠI HỌC CÔNG NGHỆ B¶o vÖ luËn v¨n th¹c sÜ Phân tích và thiết kế hướng mẫu Học viên : Chu Thị Hồng Hải Người hướng dẫn : PGS.TS Nguyễn Văn Vỵ Chu Thị Hồng Hải – Luận văn Thạc sĩ z CÁC THUẬT NGỮ VIẾT TẮT Design pettern Mẫu thiết kế Coding Mã hóa Code Mã lệnh Incidental or ad hoc Sự xác định hay tuỳ hứng GOF(gang of five) Nhóm 5 thành viên Creational Patterns Các mẫu tạo Structual Patterns Các mẫu cấu trúc Behavioral Pattern Các mẫu hành vi POAD Phân tích và thiết kế hướng mẫu Use case diagram Biểu đồ ca sử dụng Class diagram Biểu đồ lớp Activity diagram Biểu đồ hành động Collaboration diagram Biểu đồ cộng tác Sequence diagram Biểu đồ tuần tự Implementation diagram Biểu đồ thực thi Component diagram Biểu đồ thành phần Framework Khung làm việc IDOMS Thành ngữ Abstract factory pattern Mẫu chế tạo trừu tượng FactoryPattern Mẫu chế tạo Base- class Lớp cơ sở Singleton Pattern Mẫu đơn chiếc PROXY PATTERN Mẫu uỷ nhiệm proxy class Lớp uỷ nhiệm Remote Proxy Uỷ nhiệm từ xa Virtual Proxy Uỷ nhiệm ảo Monitor Proxy Uỷ nhiệm màn hình Protection proxy Chống uỷ nhiệm Cache proxy Không gian lưu trữ tạm thời Firewall proxy Uỷ nhiệm bảo vệ Smart reference proxy Kiểm soát các đối tượng bổ sung Synchoronization Proxy Uỷ nhiệm đồng bộ Copy_ on_write proxy. Cho phép ghi vaò đĩa mọi lúc Adapter pattern Mẫu thích nghi wrapper pattern Mẫu bao bọc z DANH MỤC BẢNG BIỂU Hình1.1 Chúng ta có thể biên soạn các thiết kế bằng việc sử dụng các mẫu thiết kế không? Hình 1. Minh hoạ vòng đời của mẫu Hình 2.1 Biểu đồ lớp cuả mẫu chế tạo Hình 2.2 Biểu đồ lớp của mẫu chế tạo trừu tượng Hình 2.3 Biểu đồ lớp trong mẫu đơn chiếc Hình 2.4 Ví dụ mẫu đơn chiếc Hình 2.5 Ví dụ biểu đồ lớp đơn chiếc Hình 2.6 Biểu đồ lớp mẫu uỷ nhiệm Hình 2.7 Biểu đồ lớp mẫu thích nghi Hình 2.8 Hình minh hoạ các phần tử mẫu phức hợp Hình 2.9 Minh hoạ các phần tử của Composite pattern Hình 2.10 Sơ đồ mối liên kết các mẫu thiết kế Hình 3.1 Sơ đồ tổ chức trường đại học quản trị kinh doanh HN Hình 3.1 Mô hình khái niệm (hình 1) Hình 3.2 Mô hình khái niệm (hình 2) Hình 3.3 Mô hình khái niệm (hình 3) Hình 3.3 Biểu đồ ca sử dụng gói “Cập nhật sinh viên ” Hình 3.4 Biểu đồ ca sử dụng gói “Quản lý lớp học ” Hình 3.5 Biểu đồ ca sử dụng gói “quản lý học phí” Hình 3.6 Biểu đồ ca sử dụng gói “Quản lý khen thưởng kỷ luật” Hình 3.7 Biểu đồ ca sử dụng gói “Quản lý thực tập” Hình 3.8 Biểu đồ ca sử dụng gói “Quản lý sinh viên trả nợ” Hình 3.9 Biểu đồ ca sử dụng gói “Quản lý sinh viên làm khoá luận tốt nghiệp” Hình 3.10 Biểu đồ ca sử dụng gói “Quản lý công tác tốt nghiệp” Hình 3.11 Biểu đồ tuần t ự hệ thống “cập nhật sinh viên” z Hình 3.12 Biểu đồ lớp gói “ Cập nhật sinh viên” Hình 3.13 Biểu đồ tuần tự khái niệm “ Cập nhật sinh viên” Hình 3.14 Biểu đồ tuần tự gói “Thông tin lớp học” Hình 3. Biểu đồ lớp gói “Thông tin lớp học” Hình 3.16 Biểu đồ tuần tự khái niệm “Phân lớp” Hình 3.17 Biểu đồ tuần tự khái niệm “quản lý học phí” Hình 3.18 Biểu đồ lớp “quản lý học phí” Hình 3.19 Biểu đồ tuần tự khái niệm lớp “Khen thưởng kỷ luật” Hình 3.20 Biểu đồ lớp “Khen thưởng kỷ luật” Hình 3.21 Biểu đồ tuần tự khái niệm “Khen thưởng kỷ luật” Hình 3.22 Biểu đồ tuần tự hệ thống “Quản lý học viên trả nợ” Hình 3.23 Biểu đồ lớp “Quản lý học viên trả nợ” Hình 3.24 Biểu đồ tu ần t ự “Quản lý học viên trả nợ” Hình 3.25 Biểu đồ tuần tự khái niệm lớp “Quản lý khoá luận tốt nghiệp” Hình 3.26 Biểu đồ lớp “Quản lý khoá luận tốt nghiệp” Hình 3.27 Biểu đồ tuần tự lớp “Quản lý sinh viên thực tập” Hình 3.28 Biểu đồ lớp “Quản lý sinh viên thực tập” Hình 3.29 Biểu đồ tu ần t ự “Quản lý sinh viên thực tập” Hình 3.30 Biểu đồ tu ần t ự “Quản lý công tác tốt nghiệp” Hình 3.31 Biểu đồ l ớp “Quản lý công tác tốt nghiệp” Hình 3.32 Sơ đồ thiết kế lớp sinh viên ban đầu Hình 3.33 Sơ đồ thiết kế lớp sinh viên sau khi biến đổi Hình 3.34 Sơ đồ thiết kế lớp sinh viên Hình 3.35 Sơ đồ thiết kế lớp sinh viên áp d ụng mẫu Bridge Hình 3.36 Biểu đồ lớp “ Quản lý học phí” Hình 3.37 Biểu đồ lớp có áp dụng mẫu “ Quản lý học phí” z Hình 3.38 Biểu đồ lớp có áp dụng mẫu “ Quản lý học phí” Hình 3.39 Giao diện cập nhật sinh viên z 1 MỤC LỤC MỤC LỤC.
Error! Bookmark not defined. MẪU THIẾT KẾ VÀ PHÂN TÍCH HƯỚNG MẪU. Giới thiệu chung. Chúng ta tái sử dụng cái gì?.
Biên soạn mẫu thiết kế. Các thành phần của mẫu thiết kế. Mô tả mẫu thiết kế.Thiết kế hướng mẫu. Phân tích thiết kế hướng đối tượng là một giải pháp.
Mẫu thiết kế và kỹ nghệ phần mềm. Đặc điểm chung của mẫu. Những cách tiếp cận thành phần mẫu thiết kế. Error! Bookmark not defined.
CÁC LOẠI MẪU THIẾT KẾ. Phân loại mẫu. Mẫu thiết kế với từng bài toán. Mẫu chế tạo.
Mẫu chế tạo trừu tượng (Abstractfactory pattern). Mẫu uỷ nhiệm. Mẫu thích nghi. Mẫu bao bọc.
Mẫu phức hợp. Sơ đồ mối liên kết các mẫu thiết kế. 40 ỨNG DỤNG MẪU. 40 Phân tích thiết kế hệ thống Quản Lý Sinh Viên.
Mô tả bài toán. Phát triển hệ thống quản lý. Mô tả các ca sử dụng của hệ thống. Phân tích hệ thống.
Hợp đồng cho các thao tác hệ thống. Mô tả chi tiết các lớp đối tượng. Thiết kế giao diện. 119 TÀI LIỆU THAM KHẢO.
120 z 2 CHƢƠNG 1 MẪU THIẾT KẾ VÀ PHÂN TÍCH HƢỚNG MẪU 1. Giới thiệu chung Chúng ta đã biết, cái khó nhất trong xây dựng phần mềm không phải là mã hoá, mà là những quyết định thiết kế ban đầu và các quyết định đi theo từng bước trong quá trình thiết kế. Những quyết định này ảnh hưởng tới toàn bộ quá trình xây dựng và phát triển hệ thống cũng như các đặc trưng quan trọng của hệ thống được xây dựng : tính dễ bảo trì, độ tin cậy, tính an toàn… Nhận xét trên có thể làm cho nhiều nhà phát triển phần mềm không hài lòng vì họ phần lớn là những chuyên gia mã hoá. Chúng ta biết rằng, thiết kế là một giai đoạn có vai trò quyết định trong vòng đời phát triển của hệ thống phần mềm.
Một thiết kế tốt sẽ cho một sản phẩm tốt và nói chung một bản thiết kế tồi sẽ ảnh hưởng tới chất lượng cuối cùng của sản phẩm. Câu hỏi đặt ra ở đây là: làm thế nào để có được bản thiết kế tốt? Và làm thế nào để đánh giá được một thiết kế của ta là tốt trong khi chưa có sản phẩm cuối cùng để kiểm định từng quyết định của chúng ta trong từng giai đoạn thiết kế. Yêu cầu về kiến trúc phần mềm đã nhận ra nghịch lý này từ rất lâu. Sự thay đổi từ một vòng đời phát triển trong mô hình thác nước tới quá trình gia tăng của các vòng đời nguyễn mẫu là một minh chứng đặc biệt.
Trong bất kỳ một tổ chức nào thì nguyên mẫu luôn luôn được đánh giá kỹ. Khi mà bạn không biết liệu ý tưởng của bạn có thực hiện được không, và cố gắng làm giảm các lỗi xuất hiện khi kiểm thử thì chúng ta biết được mọi thứ nảy sinh trong giai đoạn cuối của quá trình triển khai và mã hoá đã có nhiều vấn đề mà ta không ý thức được từ giai đoạn thiết kế. Thật là khó để có được một người chúng ta tin tưởng và chúng ta có thể nêu ra vấn đề và nhận lại được các câu trả lời hữu ích như: “ tôi đã triển khai cái này trước, nó không làm việc bởi vì…” hoặc “ Tôi đã triển khai nó trước và chỉ có cách này để thực z 3 hiện nó. Hơn nữa triển khai theo cách này cũng có một số ưu điểm và một số nhược điểm”.
Để có được đáp án tốt cho các câu hỏi đặt ra như trên, không có phương án nào tốt hơn là xây dựng theo các mẫu thiết kế (patterns). Các mẫu này được giới thiệu để sử dụng như một lời chỉ dẫn từ các chuyên gia. Sức mạnh thực sự đằng sau các mẫu chính là sự trừu tượng của chúng trong thế giới thực. Kinh nghiệm của các nhà thiết kế và phát triển phần mềm cũng như các giải pháp thiết kế đã được đưa và trong các mẫu nhằm giảm bớt các vấn đề của pha thiết kế cho người sử dụng và phát triển sau này.
Những mẫu thiết kế đã chứa đựng những kinh nghiệm của họ và giới thiệu chúng tới tất cả các nhà thiết kế khác bằng các định dạng mà chúng xác định những vấn đề cần được giải quyết, và đã được giải quyết như thế nào? tại sao giải quyết bằng cách này là tốt và những vấn đề liên quan đến quá trình triển khai các giải pháp đó. Do đó, mẫu thiết kế chính là kinh nghiệm đúc kết của các nhà phát triển và thiết kế phần mềm trong suốt quá trình triển khai hàng loạt các ứng dụng, sau đó được tóm lược lại ở giai đoạn thiết kế có thể đi cùng với một vài ví dụ. Từ đó những nhà thiết kế khác sử dụng và triển khai các mẫu cho việc phát triển của các ứng dụng mới. Những quyết định trong pha thiết kế là nhân tố chính để phát triển ứng dụng.
Chúng ta cần phải đưa ra những quyết định thiết kế tốt. Trong thực tế, chúng ta không thể đưa ra được quyết định thiết kế tốt trừ khi chúng ta có kinh nghiệm về các vấn đề chúng ta đang giải quyết. Các nhà thiết kế và phát triển phần mềm có kinh nghiệm đã chuyển những kinh nghiệm của mình thành mẫu thiết kế. Sau đó những nhà thiết kế sau này chỉ cần tìm các mẫu phù hợp với mục đích của mình rồi áp dụng mà không cần tốn nhiều công sức trong pha thiết kế mà vẫn đạt được mục tiêu thiết kế.
Vậy, thiết kế các mẫu giúp tăng mức độ tái sử dụng. Chúng ta tái sử dụng cái gì? Việc sử dụng lại phần mềm là một cách tiếp cận để xúc tiến quá trình phát triển phần mềm. Câu hỏi đặt ra là, chúng ta có thể sử dụng lạI những cái gì? và sử dụng như thế nào? Đã từ lâu mã lệnh là đối tượng được sử dụng lại thường xuyên nhất.