1. Trang chủ
  2. » Luận Văn - Báo Cáo

(LUẬN VĂN THẠC SĨ) Phân tích và thiết kế hướng mẫu Luận văn ThS Công nghệ thông tin 1 01 10

125 2 0

Đ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 125
Dung lượng 2,12 MB

Cấu trúc

  • 1.1. Giới thiệu chung (7)
  • 1.2. Chúng ta tái sử dụng cái gì? (8)
  • 1.3. Biên soạn mẫu thiết kế (9)
  • 1.4. Các thành phần của mẫu thiết kế (11)
  • 1.5. Mô tả mẫu thiết kế (12)
  • 1.7. Phân tích thiết kế hướng đối tượng là một giải pháp (17)
  • 1.8. Mẫu thiết kế và kỹ nghệ phần mềm (19)
  • 1.9. Đặc điểm chung của mẫu (27)
  • 1.10. Những cách tiếp cận thành phần mẫu thiết kế (28)
  • Chương 2 Error! Bookmark not defined. CÁC LOẠI MẪU THIẾT KẾ (29)
    • 2.1. Phân loại mẫu (29)
    • 2.2. Mẫu thiết kế với từng bài toán (29)
    • 2.3. Mẫu chế tạo (31)
    • 2.4. Mẫu chế tạo trừu tượng (Abstractfactory pattern) (0)
    • 2.5. Mẫu đơn chiếc (34)
    • 2.6. Mẫu uỷ nhiệm (38)
    • 2.7. Mẫu thích nghi (40)
    • 2.8. Mẫu bao bọc (42)
    • 2.9. Mẫu phức hợp (43)
    • 2.10. Sơ đồ mối liên kết các mẫu thiết kế (44)
  • Chương 3 (45)
    • 3.1. Mô tả bài toán (45)
    • 3.2. Phát triển hệ thống quản lý (51)
    • 3.3. Mô tả các ca sử dụng của hệ thống (58)
    • 3.4. Phân tích hệ thống (83)
    • 3.5. Hợp đồng cho các thao tác hệ thống (100)
    • 3.6. Biểu đồ lớp (111)
    • 3.7. Mô tả chi tiết các lớp đối tượng (118)
    • 3.8. Thiết kế giao diện (122)
  • KẾT LUẬN (124)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

Giới thiệu chung

Trong xây dựng phần mềm, thách thức lớn nhất không nằm ở việc mã hóa, mà chính là những quyết định thiết kế ban đầu và các lựa chọn trong quá trình thiết kế Những quyết định này có ảnh hưởng sâu rộng đến toàn bộ quá trình phát triển hệ thống, cũng như đến các đặc điểm quan trọng như tính dễ bảo trì, độ tin cậy và tính an toàn của hệ thống.

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á

Thiết kế đóng vai trò quyết định trong vòng đời phát triển hệ thống phần mềm, ảnh hưởng trực tiếp đến chất lượng sản phẩm cuối cùng Một thiết kế tốt không chỉ tạo ra sản phẩm chất lượng mà còn giúp quá trình phát triển diễn ra suôn sẻ Vậy làm thế nào để đạt được một bản thiết kế tốt? Ngoài ra, việc đánh giá chất lượng thiết kế khi chưa có sản phẩm cuối cùng để kiểm định cũng là một thách thức lớn trong quá trình này.

Yêu cầu về kiến trúc phần mềm đã chỉ ra nghịch lý giữa mô hình thác nước và các vòng đời nguyễn mẫu Trong mọi tổ chức, nguyên mẫu luôn được đánh giá kỹ lưỡng để xác định khả năng thực hiện ý tưởng Việc giảm thiểu lỗi trong giai đoạn kiểm thử cho thấy nhiều vấn đề phát sinh trong giai đoạn cuối của quá trình triển khai và mã hóa, mà thường không được nhận thức từ giai đoạn thiết kế.

Việc tìm kiếm một người đáng tin cậy để thảo luận và nhận các phản hồi hữu ích là rất khó khăn Những câu trả lời như “tôi đã triển khai cái này trước” hay “cách này có ưu điểm và nhược điểm” thường mang lại giá trị lớn Để có được những đáp án tốt cho các câu hỏi, việc xây dựng theo các mẫu thiết kế (patterns) là một giải pháp hiệu quả Các mẫu này không chỉ là hướng dẫn từ các chuyên gia mà còn chứa đựng sức mạnh của sự trừu tượng trong thực tế Kinh nghiệm của các nhà thiết kế và phát triển phần mềm được tích hợp vào các mẫu, giúp giảm thiểu các vấn đề trong quá trình thiết kế cho người sử dụng và phát triển sau này Những mẫu thiết kế này tổng hợp kinh nghiệm và cung cấp định dạng rõ ràng về các vấn đề cần giải quyết, cách thức giải quyết và lý do tại sao phương pháp đó là tốt, cùng với những thách thức trong quá trình triển khai giải pháp.

Mẫu thiết kế là kết quả kinh nghiệm của các nhà phát triển và thiết kế phần mềm trong quá trình triển khai nhiều ứng dụng Những mẫu này được tóm lược trong giai đoạn thiết kế và kèm theo ví dụ cụ thể, giúp các nhà thiết kế khác áp dụng và phát triển các ứng dụng mới hiệu quả hơn.

Quyết định trong pha thiết kế là yếu tố then chốt để phát triển ứng dụng hiệu quả Để đưa ra những quyết định thiết kế tốt, cần có kinh nghiệm về các vấn đề cụ thể Các nhà thiết kế và phát triển phần mềm dày dạn kinh nghiệm đã tạo ra các mẫu thiết kế, giúp cho những nhà thiết kế sau này dễ dàng tìm kiếm và áp dụng các mẫu phù hợp với mục đích của họ Nhờ đó, họ có thể tiết kiệm thời gian và công sức trong quá trình thiết kế mà vẫn đạt được mục tiêu đề ra Việc thiết kế các mẫu không chỉ nâng cao hiệu quả mà còn gia tăng mức độ tái sử dụng trong phát triển ứng dụng.

Chúng ta tái sử dụng cái gì?

Việc tái sử dụng phần mềm là một chiến lược hiệu quả nhằm thúc đẩy quá trình phát triển phần mềm Câu hỏi quan trọng là chúng ta có thể tái sử dụng những gì và thực hiện như thế nào Trong nhiều năm qua, mã lệnh đã trở thành đối tượng phổ biến nhất được sử dụng lại trong lĩnh vực này.

Trước khi phát triển phần mềm, việc tìm kiếm mã nguồn mở trên Internet để mượn, sửa đổi và tái sử dụng là rất quan trọng Tuy nhiên, việc tái sử dụng thiết kế thường ít phổ biến hơn so với mã, do sự phức tạp và khó khăn trong việc xây dựng và khởi tạo thiết kế Hơn nữa, mã dễ dàng hơn để sử dụng lại, ngay cả khi chỉ cần thực hiện một số thay đổi nhỏ hoặc không thay đổi gì.

Việc tìm kiếm một hộp đen với các thành phần đáp ứng tất cả yêu cầu là điều không chắc chắn và việc sửa đổi mã nguồn có thể gây rủi ro, làm mất đi sự liên kết giữa các thành phần và chức năng ban đầu Do đó, nhiều nhà phát triển phần mềm chọn tái sử dụng ý tưởng từ các giải pháp có sẵn Các thiết kế này thường được trình bày ở cấp độ cao hơn trong các mẫu thiết kế, và những mẫu này cần được cài đặt và thực thi để phát huy hiệu quả.

Mẫu thiết kế đã khuyến khích việc tái sử dụng sản phẩm trong quá trình thiết kế nhờ vào việc cung cấp các mô hình có thể áp dụng lại Điều này không chỉ mở rộng khả năng sử dụng mà còn tạo ra sự linh hoạt cao trong thiết kế.

Biên soạn mẫu thiết kế

Khi xem xét công việc và tài liệu hiện có cho các mẫu thiết kế, chúng ta nhận thấy rằng phần lớn công sức được dành cho việc tìm kiếm và tạo lập tài liệu cho các mẫu Chỉ một phần nhỏ công việc liên quan đến việc áp dụng hệ thống các thiết kế đã được sử dụng lại để phát triển các ứng dụng mới Điều quan trọng là cần chú ý đến cách biên soạn các mẫu thiết kế nhằm phát triển phần mềm, đồng thời tìm hiểu cách kết hợp chúng để tối ưu hóa sự hỗ trợ từ các mô hình thiết kế trong ngôn ngữ mô hình hóa thống nhất (UML) Các cách tiếp cận để thiết kế ứng dụng sử dụng mẫu có thể được phân loại theo nhiều khía cạnh khác nhau.

1.3.1 Xác định hay tuỳ hứng

Một mẫu thiết kế cung cấp một giải pháp cùng với tập hợp các đối tượng và các hệ quả nhằm áp dụng giải pháp này

Một cách tiếp cận có hệ thống trong thiết kế mẫu là áp dụng theo một trình tự nhất định Các phương pháp này được phân loại để đảm bảo tính nhất quán và hiệu quả trong quá trình thiết kế.

Ngôn ngữ mẫu là một công cụ quan trọng cung cấp các mẫu giải quyết vấn đề trong các lĩnh vực cụ thể Không chỉ đơn thuần là một bộ sưu tập mẫu, ngôn ngữ mẫu còn thiết lập mối quan hệ giữa chúng, giúp người dùng hiểu rõ cách áp dụng Qua đó, ngôn ngữ mẫu hướng dẫn các tiến trình nhằm giải quyết triệt để một tập hợp các vấn đề thiết kế cụ thể.

Một tiến trình phát triển có hệ thống định nghĩa cách tiếp cận các mẫu hợp thành, bao gồm các bước phân tích và thiết kế, thiết kế các mẫu, cùng với các công cụ tự động hóa cho các bước phát triển.

Chúng ta cần áp dụng một quy trình phát triển hệ thống để tạo ra các mẫu thiết kế, điều này giúp cải thiện hiệu quả thực thi trong phát triển phần mềm Định nghĩa kỹ thuật hợp thành có thể được sử dụng để xây dựng ứng dụng thông qua việc biên soạn các mẫu thiết kế và hỗ trợ các kỹ thuật hợp thành với các mô hình ngôn ngữ và khung nhìn riêng biệt.

Các thành phần của mẫu thiết kế

Mẫu thiết kế (Design Pattern) là giải pháp cho những bài toán thường gặp, cung cấp các yếu tố cơ bản để giải quyết vấn đề một cách có thể áp dụng lại Các mẫu thiết kế bao gồm những thành phần thiết yếu giúp tối ưu hóa quá trình phát triển phần mềm.

Tên mẫu thiết kế (Design Pattern Name) giúp hình dung bài toán cần giải quyết và giải pháp thực hiện Việc đặt tên này cho phép mô tả ngắn gọn các vấn đề và giải pháp, tạo thành một ngôn ngữ chung trong cộng đồng thiết kế Chẳng hạn, khi nhắc đến mẫu thiết kế "Facade", chúng ta ngay lập tức nghĩ đến mô hình thiết kế một đối tượng đóng vai trò là "interface" cho một tập hợp các thành phần nhỏ hơn.

Vấn đề (Problem) cho phép xác định trong trường hợp nào thì áp dụng mẫu thông qua mô tả bài toán và ngữ cảnh của bài toán đó

Giải pháp mô tả các thành phần cấu thành mẫu thiết kế cùng với mối quan hệ, vai trò và cách phối hợp giữa chúng Nó không đi sâu vào các phương pháp thiết kế hay thực hiện cụ thể, mà thay vào đó, cung cấp một cái nhìn tổng quát về cách tổ chức các thành phần nhằm giải quyết vấn đề Giải pháp này có thể áp dụng cho nhiều tình huống khác nhau, thể hiện tính linh hoạt và khái quát cao trong việc tổ chức các yếu tố thiết kế.

Hệ quả cho thấy hiệu quả của các giải pháp được áp dụng để giải quyết vấn đề Điều này giúp bạn lựa chọn phương án phù hợp và tối ưu nhất cho tình huống của mình.

Mô tả mẫu thiết kế

Cách mô tả đóng vai trò quan trọng trong việc hiểu và áp dụng mẫu thiết kế Các tiêu chí cơ bản cần chú ý khi mô tả bao gồm sự đơn giản, chính xác và đầy đủ Do đó, cần có một khuôn dạng mô tả phù hợp để đáp ứng các mẫu thiết kế khác nhau, giúp người xây dựng và người sử dụng có chung cách nhìn và tiếp cận đối với mẫu thiết kế.

Theo GOF (Gang of Five), một mẫu thiết kế được mô tả với các nội dung sau:

1.5.1 Tên gọi và phân loại

Tên gọi của mẫu thiết kế cần phản ánh các yếu tố cơ bản và thường chỉ gồm một hoặc hai từ Nó sẽ trở thành một phần trong bộ từ vựng giao tiếp về các mô hình thiết kế, do đó cần được lựa chọn cẩn thận Việc phân loại giúp xác định mẫu thiết kế thuộc nhóm nào Theo GOF, các mẫu thiết kế được chia thành ba nhóm chính: nhóm tạo (creational), nhóm cấu trúc (structural) và nhóm hành vi (behavioral).

Mẫu thiết kế cho biết:

— Mẫu thiết kế có chức năng gì

— Lý do và mục đích của mẫu thiết kế

— Mẫu thiết kế giải quyết bài toán cụ thể nào

Mẫu thiết kế có thể mang nhiều tên gọi khác nhau tùy thuộc vào cách gọi của người thiết kế Chẳng hạn, mẫu thiết kế Factory Method còn được biết đến với tên gọi Virtual Constructor Cả hai tên gọi này đều chính xác khi chỉ đến mô hình thiết kế tạo ra một giao diện cho việc khởi tạo các đối tượng, trong khi việc tạo ra các đối tượng cụ thể được thực hiện bởi các lớp triển khai giao diện đó.

Mẫu này mô tả một ngữ cảnh cụ thể liên quan đến bài toán thiết kế, đồng thời trình bày cách thức giải quyết vấn đề thông qua các lớp và đối tượng được thiết kế theo mẫu.

Mẫu này có thể áp dụng trong nhiều trường hợp khác nhau, đồng thời giúp khắc phục những thiết kế chưa đạt yêu cầu Bài viết cũng chỉ ra cách nhận biết các lỗi thiết kế, từ đó nâng cao chất lượng sản phẩm.

Cấu trúc mẫu là mô tả bằng hình ảnh của các đối tượng được sử dụng trong thiết kế mẫu

Các thành phần tham gia, các lớp/ đối tượng tham gia vào mẫu và vai trò của chúng

– Thiết kế mẫu này có tác động thế nào tới mục tiêu thiết kế

– Những ràng buộc giữa các yếu tố và kết quả trong mẫu

– Những yếu tố của kiến trúc hệ thống có thể thay đổi mà không ảnh hưởng đến thiết kế mẫu

– Những khó khăn, những dấu hiệu hoặc những công nghệ cần phải lưu ý khi triển khai mô hình

– Có những yếu tố phụ thuộc vào từng ngôn ngữ cụ thể hay không

Mặc dù có nhiều nghiên cứu và thực tiễn nhằm phát triển các mẫu dáng thiết kế mới, nhưng vẫn còn thiếu sót trong việc giải quyết các tiến trình hệ thống liên quan đến sự gắn kết và biên soạn mẫu thiết kế cho ứng dụng phần mềm Chương này sẽ tập trung vào vấn đề này và cung cấp một phương pháp luận thực hành để biên soạn và triển khai các mẫu thiết kế hiệu quả.

Phân tích và thiết kế hướng mẫu (Pattern – Oriented Analysis and Design - POAD) là một phương pháp kiến trúc nhằm kết nối các mẫu thiết kế trong giai đoạn thiết kế Phương pháp này áp dụng các khái niệm về cấu trúc của mẫu thiết kế, coi chúng như các thành phần thiết kế có giao diện rõ ràng.

Phân tích và thiết kế hướng mẫu dựa trên tiền đề cho thấy rằng ở một mức thiết kế nhất định, người thiết kế có thể xác định các mẫu có thể áp dụng trong ứng dụng mà không làm ảnh hưởng đến công việc thiết kế chi tiết bên trong mỗi mẫu.

1.6.1 Vai trò của mẫu trong phát triển phần mềm

Khi sự phức tạp của hệ thống phần mềm gia tăng, việc đơn giản hóa phát triển ứng dụng trở nên cần thiết Các mẫu thiết kế mang lại lợi ích tái sử dụng trong vòng đời phát triển Để tận dụng những giải pháp thiết kế đã được khẳng định, cần định nghĩa các kỹ thuật cấu thành thiết kế cho ứng dụng Phát triển các mô hình thiết kế linh hoạt là điều quan trọng để hỗ trợ cho kỹ thuật này.

Tái sử dụng phần mềm trong ứng dụng thực tế là một thách thức quan trọng, giúp giảm công sức phát triển và nâng cao chất lượng phần mềm Các mẫu thiết kế đóng vai trò quan trọng trong việc khuyến khích sự tái sử dụng sản phẩm trong giai đoạn thiết kế, cung cấp từ vựng chung và ngữ nghĩa rõ ràng cho việc hiểu các thiết kế Chúng cũng chỉ ra các khối xây dựng từ những ứng dụng phức tạp đã được phát triển Việc tập hợp nhiều danh mục mẫu sẵn có đã thúc đẩy ý tưởng về việc sử dụng các giải pháp tin cậy để phát triển ứng dụng Mặc dù có nhiều nỗ lực trong việc tạo ra tài liệu chất lượng cao cho các mẫu thiết kế, các kỹ thuật triển khai và tích hợp giải pháp thiết kế vẫn thiếu hệ thống hỗ trợ hiệu quả.

Việc thiết kế ứng dụng thông qua việc triển khai có hệ thống các mẫu thiết kế không phải là một quy trình đơn giản Dù rằng phương pháp sử dụng công nghệ mẫu cấu thành đã được giới thiệu, nhưng vẫn thiếu một tiến trình hệ thống để giúp rút ngắn thời gian đạt được mục tiêu.

1.6.2 Mục đích của phân tích thiết kế hướng mẫu

Khi nhu cầu về hệ thống phần mềm gia tăng, các nhà nghiên cứu và thực hành đã tìm kiếm các phương pháp và công nghệ để tự động hóa quy trình sản xuất phần mềm, đồng thời cải thiện việc bảo trì hệ thống Gần đây, các công nghệ mới như mẫu thiết kế và khung làm việc đã xuất hiện Đặc biệt, trong bối cảnh này, sự phát triển của các phương pháp luận để xây dựng các hệ thống phức tạp quy mô lớn trở nên cần thiết, giúp học hỏi từ kinh nghiệm của các nhà thiết kế hệ thống khác trong việc giải quyết các vấn đề thiết kế lặp lại.

Mẫu thiết kế chi tiết cung cấp hướng dẫn về cách sử dụng, cấu trúc, hành vi của người tham gia, các phần tử, hệ quả và nguyên tắc triển khai Hiểu rõ về lỗi và cách biên soạn các mẫu này là cần thiết để phát triển ứng dụng Một hệ thống hoàn chỉnh không thể chỉ dựa vào một mẫu đơn lẻ; nó cần sự kết hợp và cấu thành từ nhiều mẫu khác nhau để tạo nên một hệ thống hoàn chỉnh.

Chúng ta có thể xây dựng các mẫu ở cùng một cấp độ lớp hoặc đối tượng, với mô hình lớp tập trung vào triển khai và bảo trì, trong khi mô hình đối tượng nhấn mạnh thực hiện, hành vi và vai trò Các nhà nghiên cứu và thực thi đang quan tâm đến việc kết hợp vai trò của mẫu và mô hình nghiệp vụ, mặc dù vấn đề soạn mẫu cho các lớp thành phần thường bị bỏ qua Chúng tôi tin rằng các mẫu không chỉ phản ánh hành vi và vai trò, mà còn bao gồm các khía cạnh cấu trúc, điều này đã được áp dụng trong lập trình truyền thống với ngôn ngữ hướng đối tượng Mối quan hệ giữa các đối tượng dễ hiểu hơn khi sử dụng mô hình hành vi, và việc thực hiện các hành vi này trở nên đơn giản hơn khi có mô hình cấu trúc của các lớp và quan hệ của chúng Việc các nhà thiết kế và phát triển sử dụng ngôn ngữ lập trình hướng đối tượng như C++ hay Java là rất quan trọng, trong khi việc sử dụng ngôn ngữ cấu trúc không chuẩn có thể không hấp dẫn Do đó, việc tiếp cận một mẫu hợp thành với mô hình cấu trúc tương ứng với cấu trúc chương trình như mô hình lớp là cần thiết.

Mục đích của phân tích và thiết kế hướng mẫu là thúc đẩy quá trình phát triển trên nền mẫu, nhằm khuyến khích nhiều nhà thiết kế áp dụng các mẫu một cách hiệu quả hơn Chúng ta mong muốn thu hút các nhà thiết kế mới, giúp họ dễ dàng sử dụng các mẫu theo từng bước trong quy trình thiết kế Để đạt được điều này, cần định nghĩa những cách tiếp cận cấu thành dễ sử dụng, từ đó nâng cao sự phát triển trên nền mẫu.

Phân tích thiết kế hướng đối tượng là một giải pháp

Chúng tôi phát triển phân tích thiết kế hướng đối tượng nhằm giải quyết các vấn đề đã nêu Trong quá trình này, các mẫu thiết kế cao cấp được áp dụng và các thành phần của chúng sẽ được tích hợp trong các giai đoạn thiết kế tiếp theo.

Chúng giao tiếp như thế nào?

Người quan sát mẫu Mẫuchiến lược

Có thể sử dụng các mẫu thiết kế để soạn thảo các thiết kế một cách đầy đủ và chính xác Phương pháp phân tích thiết kế hướng đối tượng mang lại những giải pháp hiệu quả cho việc này.

1.7.1 Mô hình mẫu cho các thành phần thiết kế

Khi các mẫu được xem là các khối hợp nhất trong thiết kế, cần nắm rõ đặc trưng của thành phần, tức là khả năng soạn mẫu trong giai đoạn thiết kế Định nghĩa giao diện mẫu và các thuộc tính cần thiết là điều quan trọng để mẫu trở thành thành phần thiết kế POAD giới thiệu một kiểu mẫu đặc biệt gọi là cấu trúc mẫu thiết kế, định nghĩa nhiều mức trừu tượng và khung nhìn logic trong thiết kế với cấu trúc các mẫu Ngoài ra, POAD cũng chỉ ra cách mà các mức thiết kế hiện tại có thể liên kết với các mức thiết kế thấp hơn dưới dạng các lớp.

1.7.2 Một phương pháp luận thiết kế

Chúng ta sẽ thảo luận về một phương pháp luận thiết kế nhằm xây dựng các thiết kế hướng mẫu POAD minh chứng cho việc học các mẫu là vấn đề cốt lõi trong thiết kế hướng đối tượng Qua POAD, chúng ta rút ra kinh nghiệm từ phương pháp phân tích thiết kế hướng đối tượng và định nghĩa một phương thức hướng mẫu mới dựa trên cú pháp và ngữ nghĩa của ngôn ngữ UML Những thiết kế ứng dụng phát triển theo phương pháp này được gọi là thiết kế hướng mẫu.

1.7.3 Ứng dụng POAD trong thế giới thực

Mục tiêu chính của POAD là cải thiện việc triển khai mẫu thiết kế trong phát triển ứng dụng một cách có hệ thống Chúng tôi tin rằng các vấn đề cần được phát hiện và ngăn chặn ngay từ giai đoạn phân tích và thiết kế trong vòng đời phát triển Phương pháp luận POAD được phát triển nhằm xây dựng các khối thiết kế hướng đối tượng, sử dụng các mẫu thiết kế như những khối hợp nhất Ba vấn đề chính mà POAD tập trung vào là công nghệ, tiến trình, và các khía cạnh tổ chức.

Các khía cạnh công nghệ đóng vai trò quan trọng trong việc xác định nền tảng của phương pháp thiết kế, bao gồm các khái niệm, ký pháp, mô hình trực quan và hình thức Định nghĩa về mô hình trực quan giúp gắn kết cấu trúc các mẫu để phát triển thiết kế hướng mẫu Bài viết sẽ giới thiệu các khái niệm giao diện mẫu và thảo luận về mối liên hệ giữa các thành phần và kiến trúc phần mềm Ngoài ra, cú pháp và ngữ nghĩa của UML cũng sẽ được thảo luận trong bối cảnh phương pháp luận POAD.

Khía cạnh này xác định nhiệm vụ và các bước cần thiết để phát triển thiết kế mẫu Dựa vào các mô hình trực quan, quá trình phân tích và thiết kế được xác định rõ ràng, cùng với sản phẩm đầu ra và cách phân phối chúng trong từng bước.

1.7.3.2 Các Khía cạnh tổ chức

Vấn đề này được xác định như thế nào để việc tổ chức thực hiện đạt được hiệu quả mà phương pháp đem lại.

Mẫu thiết kế và kỹ nghệ phần mềm

Nhiều nhà thiết kế ứng dụng được khuyến khích sử dụng các thành phần có thể tái sử dụng để tiết kiệm thời gian và công sức trong quá trình phát triển phần mềm Mức độ tái sử dụng này phụ thuộc vào quyết định của các nhà phát triển Các quyết định thiết kế đơn giản như việc sử dụng lại thư viện lớp hoặc giao diện lập trình ứng dụng (API) là rất phổ biến và dễ thực hiện Ở mức độ phức tạp hơn, việc tái sử dụng các mẫu và khung làm việc cho phép nhà thiết kế tiếp cận một bộ sưu tập phong phú các mẫu với nội dung đa dạng hơn so với các quyết định thiết kế thông thường.

Vòng đời phát triển phần mềm bao gồm các pha như phân tích, thiết kế, trình bày chi tiết thiết kế, triển khai và kiểm thử Các mẫu đóng vai trò quan trọng trong từng pha của quá trình này Mặc dù ban đầu, các mẫu chỉ được giới thiệu để hỗ trợ việc sử dụng lại trong pha thiết kế, nhưng nhiều nhà triển khai đã áp dụng chúng trong tất cả các pha của vòng đời phát triển phần mềm để tối ưu hóa hiệu quả.

Các mẫu thiết kế có tính bền vững cao và ngày càng được nhiều nhà thiết kế và nhà phát triển áp dụng Sự đa dạng trong các ứng dụng sử dụng các mẫu thiết kế này chứng minh rằng chúng là một phần thiết yếu trong mọi quy trình phát triển phần mềm Hữu ích và hiệu quả, các mẫu thiết kế không chỉ tồn tại lâu dài mà còn góp phần nâng cao chất lượng sản phẩm.

Phiên bản tiếp theo của các ứng dụng hướng đối tượng và khung làm việc sẽ bao gồm các mẫu rõ ràng, được sử dụng làm tài liệu mẫu cho nội dung Các miền và chủ đề chính sẽ hưởng lợi từ việc tập hợp các mẫu nhỏ, bao gồm phân phối các đối tượng trong các ứng dụng tính toán song song và đối tượng được nối mạng Hệ thống thời gian thực và hệ thống nhúng, chiếm ưu thế trong các ứng dụng như điều khiển tự động và thiết bị cầm tay, đang gia tăng Nhiều hệ thống này yêu cầu tính toán chặt chẽ với tài nguyên hạn chế, đặc biệt là trong việc theo dõi và quản lý thời gian sử dụng.

Phát triển các hệ thống nhúng và hệ thống thời gian thực với chất lượng cao là một điều rất khó và nó hơi nghiêng về “nghệ thuật đen”

Với xu hướng ngày càng gia tăng trong việc khám phá và thiết kế mẫu ở nhiều lĩnh vực ứng dụng, việc áp dụng mẫu trong phát triển phần mềm đang trở nên phổ biến hơn bao giờ hết Do đó, các phương pháp phát triển phần mềm trở nên vô cùng quan trọng để đáp ứng nhu cầu này.

1.8.2 POAD và công nghệ hướng đối tượng

Trong hai thập niên qua, đã có sự phát triển đáng kể trong các phương pháp luận phân tích và thiết kế hướng đối tượng Nhiều phương pháp mới đã được giới thiệu, mỗi phương pháp có cách tiếp cận khác nhau đối với không gian miền, tạo ra các mẫu phân tích và thiết kế riêng biệt Sự đa dạng này cũng thể hiện qua các loại mô hình mà từng phương pháp tạo ra.

Sự đa dạng trong phương pháp phân tích và thiết kế hướng đối tượng đã thúc đẩy sự phát triển của ngôn ngữ mô hình hóa thống nhất (UML), nhằm chi tiết hóa và trực quan hóa các hệ thống phần mềm UML cung cấp tài liệu đặc tả có cấu trúc cho cả mô hình nghiệp vụ và các hệ thống không phần mềm khác Trước khi có UML, đã tồn tại một số ngôn ngữ mô hình, nhưng chúng chủ yếu chia sẻ các khái niệm đã được công nhận và được biểu diễn theo nhiều cách khác nhau.

UML không chỉ là ngôn ngữ trực quan để mô tả, mà còn bao gồm cú pháp và khả năng ngữ nghĩa Các ký pháp của UML biểu thị cú pháp đồ họa, giúp thể hiện ngữ nghĩa trong siêu mô hình UML cơ sở.

Siêu mô hình UML cung cấp định nghĩa rõ ràng về cú pháp và ngữ nghĩa của các phần tử trong UML Biểu đồ ca sử dụng (Use case diagram) định nghĩa kịch bản hệ thống, giúp phân tích và tạo ra các kịch bản có thể, đồng thời thể hiện mối quan hệ giữa các chức năng của ứng dụng Biểu đồ lớp (Class diagram) mô tả cấu trúc ứng dụng, bao gồm các lớp, thuộc tính, kiểu và phương thức, đóng vai trò quan trọng trong phân tích thiết kế hướng đối tượng Biểu đồ hoạt động (Activity diagram) thể hiện luồng hoạt động trong hệ thống, nhấn mạnh việc chuyển đổi điều khiển giữa các đối tượng Biểu đồ trạng thái (State diagram) mô hình hóa hành vi trong các hệ thống lớn và phức tạp, trong khi biểu đồ tương tác (Interaction diagram) bao gồm biểu đồ tuần tự và biểu đồ cộng tác, giúp mô tả các tương tác giữa các đối tượng trong hệ thống.

Biểu đồ tuần tự (Sequence diagram) là công cụ hữu ích để ghi lại các quyết định thiết kế thông qua việc khảo sát sự tương tác giữa các đối tượng trong ứng dụng theo thời gian và hành vi Mỗi ca sử dụng thường đi kèm với một hoặc nhiều kịch bản, giúp minh họa rõ ràng các quy trình và tương tác trong hệ thống.

Biểu đồ cộng tác (Collaboration diagram) thể hiện cách các đối tượng tương tác và gửi thông điệp cho nhau mà không phụ thuộc vào yêu cầu tuần tự thời gian Trong khi đó, biểu đồ triển khai (Implementation diagram) mô tả kịch bản theo thời gian của ứng dụng, thể hiện kiến trúc vật lý của hệ thống qua các node và mối quan hệ giữa chúng, đồng thời liên quan đến các biểu đồ thành phần bên trong các node Cuối cùng, biểu đồ thành phần (Component diagram) hiển thị các thành phần ứng dụng và cách chúng tương tác, mô tả khía cạnh tĩnh của hệ thống và liên quan đến các biểu đồ lớp, giúp xác định mối quan hệ giữa các phần có thể thực thi và ứng dụng trong bối cảnh thời gian vận hành.

Trong phát triển phần mềm hiện đại, kiến trúc tổng thể của dự án đóng vai trò quan trọng, đặc biệt là trong việc lựa chọn khung làm việc (framework) và mẫu thiết kế.

Mẫu thiết kế là những giải pháp tái sử dụng cho các vấn đề thường gặp trong quá trình thiết kế và triển khai phần mềm Chúng không chỉ giúp truyền đạt kiến thức và kinh nghiệm của các chuyên gia mà còn là công cụ hữu ích cho những người mới học, nâng cao khả năng thiết kế thực tiễn.

Mẫu thiết kế là giải pháp chung cho các vấn đề thường gặp trong thiết kế, thường được áp dụng lặp đi lặp lại trong nhiều dự án Nó có thể được coi như một "khuôn dạng" linh hoạt, có thể sử dụng cho nhiều tình huống khác nhau để giải quyết vấn đề cụ thể Trong các hệ thống phần mềm hướng đối tượng, các vấn đề lặp lại này thường xuất hiện và cần được giải quyết thông qua các mẫu phân tích.

Các mẫu phân tích (Analysis Patterns) giúp hiểu rõ các vấn đề từ yêu cầu bên ngoài Theo Martin Fowler, các mẫu phân tích được định nghĩa là “Nhóm những khái niệm đại diện cho một cấu trúc chung trong các mô hình nghiệp vụ” Bên cạnh đó, các mẫu kiến trúc cũng đóng vai trò quan trọng trong việc thiết kế hệ thống.

Đặc điểm chung của mẫu

Mẫu được định nghĩa là việc tái sử dụng ý tưởng thay vì chỉ là mã lệnh, giúp các nhà thiết kế hợp tác hiệu quả hơn trong việc giải quyết vấn đề mà không tốn nhiều thời gian cho việc thảo luận Trong nhiều trường hợp, điều này rất hữu ích cho các dự án phần mềm.

Hình 1.2 Minh hoạ vòng đời của mẫu

Các tác giả cộng đồng xây dựng mẫu

Người dùng mẫu thất bại thường do các nhà phát triển thiếu hiểu biết chung về kiến trúc phần mềm Mẫu cung cấp các thuật ngữ và khái niệm thiết kế, giúp người hiểu biết có thể nhanh chóng hình dung giải pháp Nếu áp dụng mẫu hiệu quả, việc bảo trì phần mềm sẽ dễ dàng hơn và việc nắm bắt kiến trúc hệ thống cũng nhanh chóng hơn.

Mẫu hỗ trợ tái sử dụng kiến trúc và mô hình thiết kế phần mềm quy mô lớn là một công cụ quan trọng giúp phân biệt giữa mẫu thiết kế và khung làm việc Khung làm việc tập trung vào việc tái sử dụng mô hình thiết kế và mã nguồn ở mức chi tiết, trong khi mẫu thiết kế cung cấp cái nhìn tổng quát hơn Điều này cho phép các nhà phát triển hình dung và nhận diện các cấu trúc tĩnh và động, cũng như mối quan hệ tương tác giữa các giải pháp trong quá trình thiết kế ứng dụng cho các chuyên khu riêng biệt.

Mẫu đa tương thích: Mẫu không phụ thuộc vào ngôn ngữ lập trình, công nghệ hoặc các nền tảng lớn như J2W của Sun hay Microsofft, NET framework

Mẫu thiết kế có tiềm năng ứng dụng rộng rãi, đặc biệt trong các phần mềm mã nguồn mở Nhiều ứng dụng này sử dụng các tên lớp với tiền tố hoặc hậu tố như Factory và Proxy, giúp nhận diện và tổ chức mã nguồn một cách hiệu quả.

Những cách tiếp cận thành phần mẫu thiết kế

Việc áp dụng mẫu trong thiết kế ứng dụng đã đạt được nhiều thành công, với nhiều nhà phân tích sử dụng khung làm việc để phát triển ứng dụng theo cách hướng mẫu Tuy nhiên, một số tác giả khác lại lựa chọn áp dụng mẫu thiết kế thông qua ngôn ngữ mô hình hóa UML.

Error! Bookmark not defined CÁC LOẠI MẪU THIẾT KẾ

Phân loại mẫu

Mẫu được phân loại ra làm 3 nhóm chính sau đây: a Các mẫu tạo

Creational patterns, including Factory, Abstract Factory, Singleton, Prototype, and Builder, focus on the process of creating specific objects from abstract definitions such as abstract classes and interfaces These patterns are essential for managing object creation in a flexible and efficient manner.

Structural patterns, including Proxy, Adapter, Wrapper, Bridge, Facade, Flyweight, and Visitor, focus on how classes and objects collaborate to form larger structures These design patterns are essential for enhancing the organization and scalability of software architecture.

Các mẫu hành vi (Behavioral pattern) observer, state, command, Interator…Mô tả cách thức để các lớp hoặc các đối tượng có thể giao tiếp với nhau.

Mẫu thiết kế với từng bài toán

Trong thiết kế hệ thống, sự phụ thuộc giữa các đối tượng là điều thường gặp, giúp giải quyết nhanh chóng các vấn đề hiện tại Tuy nhiên, phần mềm không chỉ nhằm mục đích xử lý những vấn đề trước mắt, mà còn cần phải thích ứng với các yêu cầu thay đổi chức năng, bao gồm cả việc cập nhật và bổ sung các chức năng mới.

Khi phần mềm cần thêm yêu cầu mới, việc thiết kế, cài đặt và kiểm thử lại thường tốn nhiều thời gian và chi phí, do phải đảm bảo tính tương thích giữa các chức năng mới và cũ Mục tiêu của các nhà thiết kế phần mềm là dự đoán những thay đổi trong tương lai để thiết kế hệ thống sao cho bất kỳ sự thay đổi nào cũng không ảnh hưởng đến các phần còn lại của hệ thống.

Một phần mềm không kiên định và phức tạp với quá nhiều thành phần phụ thuộc lẫn nhau cần được thiết kế lại do những nguyên nhân sau: sự khó khăn trong việc bảo trì, khả năng mở rộng hạn chế, và trải nghiệm người dùng không tốt.

Các đối tượng được xây dựng từ các lớp cụ thể thay vì sử dụng lớp ảo (interface), điều này có thể làm cho việc thay đổi và cập nhật trong tương lai trở nên phức tạp hơn.

Vì vậy sử dụng các mẫu: Abstract Factory, Factory Method, Prototype

Phần mềm cần phải linh hoạt và không phụ thuộc vào hệ điều hành hay phần cứng cụ thể Một chương trình được phát triển trên Windows sẽ không hoạt động hiệu quả trên Linux do sự khác biệt trong các hàm API và nền tảng Do đó, việc thiết kế phần mềm phải đảm bảo khả năng chuyển đổi giữa các hệ điều hành và phần cứng khác nhau.

Vì vậy sử dụng các mẫu: Abstrac Factory, Bridge

Phần mềm cần ẩn giấu thông tin không cần thiết về đối tượng để giảm thiểu sự phụ thuộc và thay đổi từ phía client Điều này có thể đạt được thông qua các mẫu thiết kế như Abstract Factory, Bridge, Memento và Proxy, giúp quản lý cách thức hoạt động, lưu trữ và thực thi của đối tượng một cách hiệu quả.

Để giải quyết một bài toán hiện tại, cần xem xét việc mở rộng, thay thế hoặc tối ưu hóa phương pháp Sự phụ thuộc vào một vấn đề cụ thể có thể làm thay đổi các đối tượng liên quan và gây ra sự thay đổi dây chuyền Do đó, việc sử dụng các thuật toán độc lập sẽ giúp hạn chế sự ràng buộc Các mẫu thiết kế như Builder, Iterator, Strategy, Template Method và Visitor là những công cụ hữu ích để đạt được điều này.

Phần mềm thường có sự phụ thuộc chặt chẽ giữa các đối tượng, khiến cho việc thay đổi lớp đối tượng A trở nên khó khăn nếu không nắm rõ lớp đối tượng B Để giải quyết vấn đề này, việc áp dụng các mẫu thiết kế như Abstract Factory và Bridge là rất cần thiết.

Mẫu thiết kế đề xuất giải pháp nhằm khắc phục các vấn đề hiện tại, cho phép xây dựng các kiến trúc độc lập Điều này đảm bảo rằng bất kỳ thay đổi nào trong một phần của hệ thống sẽ không ảnh hưởng hoặc chỉ ảnh hưởng rất ít đến các phần còn lại, từ đó nâng cao tính kiên định và linh hoạt của phần mềm.

Mẫu chế tạo

Mẫu chế tạo (Factory Pattern) là một thiết kế phần mềm định nghĩa một lớp (interface, abstract, class) hoạt động như một "nhà xưởng" để trừu tượng hóa quá trình khởi tạo đối tượng cụ thể trong ứng dụng Trong giai đoạn thiết kế, đối tượng được định nghĩa ở mức độ trừu tượng, giúp hệ thống không phụ thuộc vào cách thức tạo ra, xây dựng và thể hiện đối tượng.

Mẫu chế tạo giúp kiểm soát hoạt động trong suốt chu kỳ sống của đối tượng, từ khởi tạo đến huỷ bỏ, đảm bảo an toàn cho các đối tượng trong quá trình thực thi Nó cung cấp thông tin chi tiết về các đối tượng được tạo ra và cách thức khởi tạo chúng, giúp quản lý hiệu quả và an toàn hơn so với Factory Các đối tượng trong Factory thường mang tên theo các chuẩn khác nhau, nhưng vẫn dễ dàng nhận diện thiết kế Factory, chẳng hạn như BankFactory.

Mẫu Factory thể hiện rõ tính chất đóng gói, với các thông tin liên quan đến việc truy cập đối tượng được bảo vệ bên trong Thiết kế của mẫu Factory luôn bao gồm một thủ tục khởi tạo đối tượng, chẳng hạn như creatObject().

Mẫu Factory luôn tuân thủ nguyên tắc thiết kế (Dependency inversion Principle -

DIP) không nên phụ thuộc vào những thứ quá cụ thể

Mẫu Factory có thể được thiết kế theo hai cách chính: thứ nhất là lớp cơ sở (Base-class), trong đó sử dụng tính chất thừa kế để phân loại các đối tượng được tạo ra; thứ hai là đối tượng cơ sở (Base-object), áp dụng mối quan hệ kết hợp để tham chiếu đến một đối tượng sẽ được tạo ra Đối tượng này sẽ trở thành một phần hoặc thuộc tính của lớp Factory, thường thấy trong mẫu chế tạo trừu tượng (Abstract Factory Pattern).

2.3.4 Một biểu đồ lớp bằng UML của mẫu chế tạo

Hình 2.1 Biểu đồ lớp cuả mẫu chế tạo

2.4 Mẫu chế tạo trừu tƣợng (Abstractfactory pattern) 2.4.1 Định nghĩa

Mẫu Abstract Factory cung cấp một giao diện lớp cho phép tạo ra một bộ các đối tượng liên quan hoặc phụ thuộc lẫn nhau mà không cần xác định các lớp cụ thể trong quá trình thiết kế.

Mẫu Abstract Factory khác với mẫu Factory ở chỗ đối tượng factory không được xác định cụ thể trong thiết kế, mà chỉ là một giao diện hoặc lớp trừu tượng Trong khi mẫu Factory phân loại đối tượng dựa trên tham số đầu vào, mẫu Abstract Factory lại yêu cầu thủ tục createObject() phụ thuộc vào các yếu tố phụ khác như môi trường hệ điều hành Mỗi yếu tố phụ này sẽ tương ứng với một lớp Factory cụ thể.

2.4.2 Thiết kế động với mẫu chế tạo trừu tượng

Khung giao diện Abstract Factory thường xuyên phải sửa đổi, chẳng hạn như khi bổ sung thủ tục mới, dẫn đến việc các lớp cụ thể thực thi giao diện này cần được dịch và triển khai lại Để giảm thiểu vấn đề này, việc thiết kế giao diện Abstract Factory một cách linh hoạt là rất quan trọng.

2.4.3 Biểu đồ lớp bằng UML của mẫu

The Singleton Pattern, also known as the Static Factory Pattern, ensures that a class has only one instance created while providing global access to that instance.

Hình 2.2 Biểu đồ lớp của mẫu chế tạo trừu tượng

Hình 2.3 Minh hoạ biểu đồ lớp của mẫu đơn chiếc

Mẫu đơn chiếc đảm bảo rằng mỗi lớp chỉ có một thể hiện duy nhất, cung cấp cổng giao tiếp chung nhất để truy cập vào lớp đó.

Hộp thoại Find, là ví dụ cụ thể cho mẫu đơn chiếc chỉ một hộp thoại duy nhất xuất hiện dù chọn menu nhiều lần

Hình 2.4 Ví dụ mẫu đơn chiếcMột số ví dụ về mẫu Singleton: file system, file manager, window manager

Việc sử dụng mẫu Singleton đem lại các lợi ích sau:

— Quản lý việc truy cập tốt hơn vì chỉ có một thể hiện đơn nhất

Cho phép cải tiến các tác vụ và các thể hiện thông qua khả năng kế thừa và tùy biến của mẫu, nhờ vào việc sử dụng thể hiện của lớp con.

— Quản lý số lượng thể hiện của một lớp, không nhất thiết chỉ có một thể hiện mà có số thể hiện xác định

Mẫu đơn chiếc linh hoạt hơn so với lớp tĩnh, vì lớp tĩnh chỉ cho phép một thể hiện duy nhất, trong khi mẫu đơn chiếc hỗ trợ quản lý nhiều thể hiện và tùy biến theo các điều kiện cụ thể.

Ta có thể sử dụng mẫu đơn chiếc trong những trường hợp sau:

— Chỉ cần một thể hiện duy nhất của một lớp

Khi sử dụng thể hiện thừa kế, người dùng có thể thay đổi duy nhất mà không cần chỉnh sửa mã nguồn của chương trình.

Thực hiện mẫu đơn chiếc theo các bước sau:

— Định nghĩa một thuộc tính riêng (Private) và tĩnh (static) trong các lớp Singleton: instance

— Định nghĩa tất cả các constructor thành các protected hoặc các private để người dùng không thể tạo thực thể trực tiếp từ lớp

— Định nghĩa một accessor Public và static trong lớp: getInstance()

Thực hiện "Lazy initialization" giúp khởi động chậm và chỉ khởi tạo đối tượng khi cần thiết trong phương thức getInstance() Phương thức này sẽ trả về một thể hiện mới hoặc giá trị rỗng (null) dựa trên một biến boolean, biến này hoạt động như một cờ hiệu để xác định xem lớp đã có thể hiện hay chưa.

— Client chỉ dùng getInstance() để tạo đối tượng của lớp Singleton

Thừa kế trong lập trình hỗ trợ việc truy cập đến các phương thức, nhưng không cho phép nạp chồng (overridden) Đối với các phương thức tĩnh, lớp cơ sở cần được khai báo là bạn (friend) với lớp dẫn xuất để có thể truy cập vào constructor protected.

Trong chế độ đa luồng, mẫu Singleton có thể gặp vấn đề khi hai thread gọi phương thức tạo đối tượng đồng thời, dẫn đến việc tạo ra hai thể hiện khác nhau.

Mẫu đơn chiếc

The Singleton Pattern, also known as the Static Factory Pattern, ensures that a class has only one instance while providing global access to that instance.

Hình 2.2 Biểu đồ lớp của mẫu chế tạo trừu tượng

Hình 2.3 Minh hoạ biểu đồ lớp của mẫu đơn chiếc

Mẫu đơn chiếc đảm bảo rằng mỗi lớp chỉ có một thể hiện duy nhất, cung cấp một cổng giao tiếp chung để truy cập vào lớp đó.

Hộp thoại Find, là ví dụ cụ thể cho mẫu đơn chiếc chỉ một hộp thoại duy nhất xuất hiện dù chọn menu nhiều lần

Hình 2.4 Ví dụ mẫu đơn chiếcMột số ví dụ về mẫu Singleton: file system, file manager, window manager

Việc sử dụng mẫu Singleton đem lại các lợi ích sau:

— Quản lý việc truy cập tốt hơn vì chỉ có một thể hiện đơn nhất

Mẫu cho phép cải tiến các tác vụ và thể hiện thông qua việc kế thừa và tùy biến lại từ lớp con.

— Quản lý số lượng thể hiện của một lớp, không nhất thiết chỉ có một thể hiện mà có số thể hiện xác định

Sử dụng mẫu đơn chiếc giúp linh hoạt hơn so với lớp tĩnh, vì lớp tĩnh chỉ cho phép một thể hiện duy nhất Mẫu đơn chiếc cho phép quản lý nhiều thể hiện một cách hiệu quả và tùy biến theo các điều kiện cụ thể.

Ta có thể sử dụng mẫu đơn chiếc trong những trường hợp sau:

— Chỉ cần một thể hiện duy nhất của một lớp

Khi thể hiện duy nhất có thể thay đổi thông qua việc thừa kế, người dùng có thể sử dụng thể hiện thừa kế mà không cần chỉnh sửa mã nguồn của chương trình.

Thực hiện mẫu đơn chiếc theo các bước sau:

— Định nghĩa một thuộc tính riêng (Private) và tĩnh (static) trong các lớp Singleton: instance

— Định nghĩa tất cả các constructor thành các protected hoặc các private để người dùng không thể tạo thực thể trực tiếp từ lớp

— Định nghĩa một accessor Public và static trong lớp: getInstance()

Thực hiện "Lazzy initialization" trong phương thức getInstance() cho phép khởi động chậm, chỉ khởi tạo khi cần thiết Phương thức này sẽ trả về một thể hiện mới hoặc giá trị rỗng (null) dựa vào một biến boolean, đóng vai trò như cờ hiệu để xác định xem lớp đã có thể hiện hay chưa.

— Client chỉ dùng getInstance() để tạo đối tượng của lớp Singleton

Thừa kế được hỗ trợ nhưng không cho phép ghi đè (overridden) các phương thức Đối với phương thức tĩnh, lớp cơ sở cần được khai báo là bạn (friend) với lớp dẫn xuất để có thể truy cập vào constructor protected.

Trong môi trường đa luồng, mẫu Singleton có thể gặp vấn đề khi hai luồng gọi phương thức tạo đối tượng đồng thời, dẫn đến việc tạo ra hai thể hiện khác nhau.

2.5.5 Ứng dụng của mẫu đơn chiếc Ứng dụng rõ rệt nhất của mẫu đơn chiếc có thể thấy trong dịch vụ web khi triệu gọi các đối tượng từ xa, ở đó đối tượng nằm trên server hoặc sẽ phục vụ chung cho tất cả các ứng dụng khách (singleton) hoặc sẽ chỉ đáp ứng một ứng dụng khách riêng lẻ nào đó rồi tự bị phá huỷ sau đó(single call)

Khi có nhiều đối tượng sở hữu cùng một số tính chất, việc tạo ra chúng để đáp ứng yêu cầu từ khách hàng sẽ làm tăng độ phức tạp và tiêu tốn nhiều bộ nhớ hơn Mẫu đơn chiếc là một giải pháp đặc biệt trong thiết kế, nơi mà đối tượng được sinh ra trở thành điểm truy cập toàn cục.

Hình 2.5 Biểu đồ lớp trong mẫu đơn chiếc

Mọi chương trình gọi đến đều chia sẻ một đối tượng duy nhất, nghĩa là tất cả các khách hàng gọi đến đều được gán chung một đối tượng.

Mẫu uỷ nhiệm

Mẫu uỷ nhiệm (proxy pattern) là một mẫu thiết kế cho phép tất cả các truy cập trực tiếp đến một đối tượng được chuyển hướng qua một đối tượng trung gian, gọi là lớp uỷ nhiệm (proxy class).

Mẫu ủy nhiệm không chỉ giúp quản lý đối tượng hiệu quả mà còn bảo vệ việc truy cập thông qua proxy, cho phép truy cập gián tiếp Mẫu Proxy được ủy quyền từ phía ứng dụng khách tạo điều kiện tương tác với đối tượng đích, bao gồm việc gửi yêu cầu dịch vụ, theo dõi trạng thái và vòng đời của đối tượng, cũng như xây dựng lớp bảo vệ cho đối tượng Ví dụ, khi phát hiện một thư viện DLL có thể bị khai thác, mà không thể mở mã nguồn để sửa lỗi, giải pháp là xây dựng một proxy để ngăn chặn truy cập vào các trường nhạy cảm và biên dịch thành một DLL mới.

2.6.2 Phân loại Độ phức tạp của giải pháp sử dụng mẫu uỷ nhiệm phụ thuộc vào tình huống bài toán đưa ra

Ủy nhiệm từ xa (Remote Proxy) cho phép máy khách truy cập vào các đối tượng được bảo vệ bên ngoài ứng dụng, như dịch vụ Windows, dịch vụ web và ứng dụng từ xa Mô hình này "che giấu" vị trí thực sự của đối tượng, khiến client có cảm giác như đang truy cập vào đối tượng nằm trong cùng một miền làm việc.

Uỷ nhiệm ảo (Virtual Proxy) là một kỹ thuật tạo ra một đối tượng trung gian khi có yêu cầu trong quá trình thực thi ứng dụng, giúp nâng cao hiệu suất hoạt động của ứng dụng.

Uỷ nhiệm màn hình (Monitor Proxy) thiết lập ràng buộc bảo mật cho đối tượng cần bảo vệ, ngăn chặn client truy cập vào các trường quan trọng của đối tượng.

Uỷ nhiệm bảo vệ (Protection Proxy) là loại proxy cho phép kiểm soát quyền truy cập của các client khác nhau Khi có dịch vụ được yêu cầu, Protection Proxy sẽ thực hiện kiểm tra quyền truy cập của từng client để đảm bảo an toàn và bảo mật.

Bộ đệm uỷ nhiệm (Cache proxy) là một giải pháp lưu trữ tạm thời cho các kết quả trả về từ một đối tượng cụ thể Giải pháp này cho phép tái sử dụng kết quả cho nhiều client có cùng yêu cầu, từ đó nâng cao hiệu suất hoạt động của chương trình một cách đáng kể.

— Uỷ nhiệm bức tường lửa (Firewall proxy): Bảo vệ đối tượng từ chối các yêu cầu xuất xứ từ các client không tín nhiệm

Uỷ nhiệm tham chiếu thông minh (Smart reference proxy) là một công cụ quản lý hiệu quả các hoạt động liên quan đến đối tượng được tham chiếu Nó giúp kiểm soát vòng đời của đối tượng và ghi lại số lần tham chiếu vào đối tượng, từ đó nâng cao khả năng quản lý tài nguyên trong hệ thống.

Uỷ nhiệm đồng bộ (Synchronization Proxy) cho phép nhiều client truy cập vào cùng một đối tượng mà không gây xung đột, điều này rất quan trọng trong thiết kế hệ thống Khi một Synchronization proxy được thiết lập, nó kiểm soát các yêu cầu cập nhật dữ liệu đồng thời, với chỉ một client ưu tiên cao nhất được cấp khoá, trong khi các client khác phải chờ đến lượt Mặc dù phương pháp này hiệu quả và phổ biến trong các bài toán đa tuyến, nhưng có thể xảy ra tình trạng tắc nghẽn khi một client giữ khoá quá lâu, dẫn đến việc tăng số lượng client trong hàng đợi và làm ngưng trệ hoạt động của hệ thống Để khắc phục vấn đề này, thiết kế phức tạp hơn như Copy_on_write proxy đã được phát triển.

Uỷ nhiệm sao chép ghi ra (Copy-on-write proxy) đảm bảo rằng không có client nào phải chờ đợi vô thời hạn Thiết kế này rất phức tạp và chỉ nên được áp dụng thay thế cho synchronization proxy khi hệ thống dự kiến thường xuyên bị ngưng trệ hoặc gặp phải hiện tượng tắc nghẽn.

Mẫu Proxy có những đặc điểm chung sau đây:

— Cung cấp mức truy cập gián tiếp vào một đối tượng

— Tham chiếu vào đối tượng đích và chuyển tiếp các yêu cầu đến đối tượng đó

Cả Proxy và đối tượng đích đều kế thừa hoặc thực thi chung một lớp giao diện, giúp mã máy dịch cho lớp giao diện trở nên "nhẹ" hơn so với các lớp cụ thể Điều này góp phần giảm thời gian tải dữ liệu giữa server và client.

2.6.4 Biểu đồ lớp bằng UML của mẫu

Hình 2.6 Biểu đồ lớp mẫu uỷ nhiệm

Mẫu thích nghi

Mẫu thích nghi (adapter pattern) chuyển đổi giao diện của một lớp thành giao diện khác dễ hiểu cho các đối tượng client Lớp mới tạo ra với giao diện này được gọi là Adapter Nguyên tắc chính của mẫu thích nghi là cho phép các lớp có giao diện không tương thích tương tác hiệu quả với nhau.

Nguyên lý xây dựng mẫu thích nghi là tạo ra một lớp với giao diện mong muốn, cho phép nó giao tiếp hiệu quả với một lớp đã có, tương ứng với một giao diện khác.

Mẫu thích nghi (Adapter) không quản lý tập trung các đối tượng tương tự như mẫu chế tạo, mà kết nối với nhiều lớp không liên quan Ví dụ, lớp A có thể kết nối với lớp B thông qua kế thừa hoặc liên kết đối tượng sau khi thực thi giao diện của nó Mẫu Adapter tương tự như mẫu proxy ở chỗ tận dụng tính chất “ủy quyền” một cách tối đa.

Mẫu Adapter tập trung vào việc giải quyết vấn đề tương thích giữa hai giao diện hiện có, giúp giảm thiểu tối đa công sức cần thiết để viết lại mã lệnh.

— Tái sử dụng giao diện cũ và mẫu adapter chỉ thực sự cần thiết khi mọi thứ đã được thiết kế từ trước

Mẫu Adapter được ứng dụng trong các trường hợp sau :

— Cần tích hợp một vài module vào chương trình

— Không thể sát nhập trực tiếp module vào chương trình

— Module đang tồn tại không có giao diện như mong muốn

— Cần hơn nhiều phương thức cho module đó

— Một số phương thức có thể được nạp chồng

2.7.4 Biểu đồ lớp bằng UML của mẫu

Hình 2.7 Biểu đồ lớp mẫu thích nghi

Mẫu bao bọc

Mẫu bao bọc (Wrapper pattern) là một trường hợp đặc biệt của mẫu Adapter

Mẫu Adapter cho phép các lớp với giao diện không tương thích hoạt động cùng nhau, và khi chỉ đơn thuần "nhúng" các lớp này, nó được gọi là Wrapper pattern Trong trường hợp này, lớp adapter cũng được xem là một wrapper, thể hiện mối quan hệ "có một" với một giao diện khác.

2.8.2 Đặc điểm Đối tượng bao bọc mô phỏng tất cả các hành vi của giao diện được nhúng bởi các các hành vi với tên y hệt Thí dụ ở lớp được nhúng A có thủ tục SpecificRequest() thì ở lớp wrapper cũng phải có thủ tục SpecificRequest() tham chiếu đến thủ tục cùng tên cuả A Điều này nói lên rằng không tham chiếu một đối tượng sâu hơn một lớp

Các phương thức trong adapter được tích hợp vào wrapper thông qua việc truyền lời gọi và các tham số đến phương thức tương ứng trong adapter, và trả về kết quả tương tự Các thành viên như thuộc tính, trường và sự kiện được nhúng trong wrapper có đặc tính giống hệt như trong các lớp gốc.

Mẫu wrapper cho phép một module chương trình tương tác hiệu quả trong nhiều môi trường khác nhau, khác với môi trường phát triển ban đầu của module, chẳng hạn như giữa C++ và Java.

2.8.3 Khác biệt giữa mẫu bao bọc và mẫu thích nghi

Sự khác biệt giữa mẫu bao bọc và mẫu thích nghi chủ yếu nằm ở mục đích sử dụng Mẫu thích nghi hướng dẫn một đối tượng hiện có để tương tác hiệu quả với các đối tượng khác và có khả năng biến đổi logic Ngược lại, mẫu bao bọc chỉ đơn giản cung cấp một giao diện để kết hợp các đối tượng được phát triển từ một ngôn ngữ hoặc ngôn ngữ khác, hoạt động trên cùng một hệ điều hành hoặc trên các hệ điều hành khác nhau.

Mẫu phức hợp

Mẫu phức hợp (Composite pattern) là một thiết kế cho phép tổ chức các đối tượng thành cấu trúc cây, thể hiện mối quan hệ bộ phận và tổng thể Mẫu này giúp mã khách hàng có thể xử lý cả đối tượng đơn lẻ và các đối tượng hợp thành từ những đối tượng đơn lẻ một cách đồng nhất.

Việc không phân biệt giữa đối tượng đơn lẻ và đối tượng phức hợp giúp đơn giản hóa chương trình xử lý Mục tiêu này được thực hiện thông qua việc tận dụng tính đa hình trong lập trình hướng đối tượng, trong đó một lớp trừu tượng hoặc giao diện được sử dụng để đại diện cho cả hai loại đối tượng.

2.9.2 Biểu đồ lớp bằng UML của mẫu

Hình 2.8 Hình minh hoạ các phần tử của mẫu phức hợp

Sơ đồ mối liên kết các mẫu thiết kế

Hình dưới đây cho ta các mẫu thiết kế khác nhau và mối quan hệ liên kết giữa chúng

Hình 2.10 Sơ đồ mối liên kết các mẫu thiết kế

Mô tả bài toán

Trường Đại học Quản lý và Kinh Doanh Hà Nội là trường dân lập, trực thuộc Hội Khoa học Kinh tế Việt Nam, hiện có gần 10.000 sinh viên theo học với đa dạng hệ đào tạo và ngành nghề.

Trong quá trình đào tạo và quản lý sinh viên, nhiều phòng ban như phòng giáo vụ, phòng công tác sinh viên và phòng kế toán đều có vai trò quan trọng Việc quản lý sinh viên trở nên khó khăn và phức tạp do số lượng sinh viên nhập học ngày càng tăng Hơn nữa, việc giữ lại dữ liệu của những sinh viên đã tốt nghiệp là bắt buộc, dẫn đến kho dữ liệu ngày càng mở rộng.

Dữ liệu hiện tại chỉ được lưu trữ để khai thác theo các khía cạnh tĩnh, thay thế cho các hoạt động thủ công hàng ngày Để quản lý sinh viên hiệu quả, cần chú trọng đến các hoạt động tích cực hơn, bao gồm theo dõi dịch vụ, hoạt động ngoại khóa, thông tin thực tập và việc làm, cũng như cung cấp các dịch vụ trực tuyến.

3.1.2 Thực trạng và vấn đề cần giải quyết

3.1.2.1 Thực trạng a Cơ cấu tổ chức của ĐHQTKDHN b Bậc và loại hình đào tạo

Trường có các hệ và các bậc đào tạo:

 Bậc đào tạo: trung cấp, cao đẳng, đại học và sau đại học

 Loại hình đào tạo: Chính quy, văn bằng hai c Hoạt động nghiệp vụ Quản lý sinh viên

Công tác Quản lý sinh viên chủ yếu gồm những công việc sau: stt Tên công việc Mô tả

1 Quản lý hồ sơ nhập học

Quản lý các thông tin – Lý lịch

– Chính sách xã hội (đối tượng)

– Địa chỉ tạm chú – Địa chỉ liên lạc với phụ huynh

Phân lớp, đề nghị cán bộ lớp

– Phân sinh viên vào các lớp thích hợp

Xét học tiếp, ngừng học, , thôi,học, chuyển,lớp, chuyển ngành, chuyển trường

– Dựa vào kết quả học tập của các sinh viên trong những năm trước và quy chế của bộ giáo dục để xét học tiếp, ngừng học, thôi học

– Cập nhật thông tin sinh viên chuyển lớp, chuyển ngành, chuyển trường

Quản lý học phí, ưu tiên, khen thưởng, kỷ luật

– Lên danh sách thu học phí – Cập nhật tình hình thu học phí

– Cập nhật sinh viên được khen thưởng Cập nhật các thành tích khen thưởng

– Cập nhật các sinh viên bị kỷ luật, cập nhật các hình thức kỷ luật

Hoàn chỉnh hồ sơ sinh viên thi và làm tốt nghiệp, thanh toán học phí, thanh toán thư viện

Thực,,hiện công tác tốt nghiệp

– Ghi nhận các sinh viên được công nhận tốt nghiệp – In bằng, in hồ sơ tốt nghiệp, in bảng điểm

– Theo dõi phát bằng, phát hồ sơ tốt nghiệp – Lưu trữ vĩnh viễn hồ sơ tốt nghiệp

– Theo dõi sinh viên ra công tác d Hiện trạng hệ thống đã tin học hóa

Hệ thống quản lý sinh viên tại trung tâm tin học ĐHQTKDHN hiện được phát triển bằng ngôn ngữ Visual Basic và sử dụng Access cho quản trị cơ sở dữ liệu, dẫn đến nhiều hạn chế trong hiệu suất và tính năng.

 Những chức năng đã có

Nhập trường Nhập trường bổ sung Phân lớp

Chuyển lớp Không lần vết được các lần chuyển lớp

Danh sách học viên là một phần quan trọng trong việc quản lý giáo dục, bao gồm việc cập nhật địa chỉ tạm trú và lý lịch học viên Quản lý diện chính sách giúp đảm bảo quyền lợi cho học viên, trong khi việc quản lý hồ sơ học viên cần được thực hiện một cách chính xác và hiệu quả Ngoài ra, việc theo dõi học viên thôi học và ngừng học cũng rất cần thiết, cùng với chính sách miễn giảm học phí để hỗ trợ những học viên có hoàn cảnh khó khăn.

Lập cán bộ lớp, cán bộ đoàn Thống kê tốt nghiệp

Thống kê số lượng sinh viên Thống kê theo điểm

 Những chức năng chưa có

Theo dõi tình hình nộp học phí là rất quan trọng để đảm bảo quyền lợi học tập Cần thường xuyên cập nhật thông tin về xét tốt nghiệp để nắm rõ tiến trình và yêu cầu Bên cạnh đó, việc cập nhật tiêu chuẩn xét tốt nghiệp và tiêu chuẩn xếp loại tốt nghiệp giúp sinh viên chuẩn bị tốt nhất cho kỳ thi cuối khóa Cuối cùng, việc lưu hồ sơ đã tốt nghiệp là cần thiết để có thể sử dụng cho các cơ hội nghề nghiệp sau này.

Theo dõi sinh viên trong quá trình công tác và thực tập là rất quan trọng để đảm bảo sự phát triển và hỗ trợ kịp thời Việc cập nhật thông tin liên lạc với phụ huynh cũng giúp tạo mối liên kết chặt chẽ giữa nhà trường và gia đình Đồng thời, việc theo dõi khen thưởng và kỷ luật sẽ đảm bảo rằng sinh viên nhận được sự công nhận xứng đáng và khuyến khích hành vi tích cực trong học tập và công việc.

– Tận dụng được các cơ sở dữ liệu cũ – Đã hỗ trợ nhiều chức năng quản lý sinh viên – Giao diện dễ dùng,

– Bảo mật kém – Còn một số chức năng quản lý sinh viên chưa được hỗ trợ

Chức năng Xét thôi học và ngừng học chỉ cho phép in danh sách từng lớp, tuy nhiên, thực tế yêu cầu cần thống kê và in danh sách cho toàn bộ khóa học và tất cả các năm học.

Chưa cho phép các báo cáo, thống kê có thể kết xuất ra các trình soạn thảo như

Word, Exel để người dùng dễ dàng chỉnh sửa trước khi in

Hiện nay, tất cả thông tin liên quan đến sinh viên như quy chế, cơ cấu tổ chức, chương trình đào tạo, chế độ chính sách, bảng điểm và thời khoá biểu đều được công bố trên website của trường, giúp người dùng dễ dàng tra cứu Tuy nhiên, do chưa có sự liên kết giữa hệ thống quản lý sinh viên và các hệ thống này, việc cập nhật thông tin chưa được tự động hóa, dẫn đến thiếu tính kịp thời và thuận tiện.

Hiện tại, việc giao tiếp chưa được hỗ trợ bằng các công nghệ mới như thẻ từ và thiết bị di động, điều này dẫn đến việc xử lý các thủ tục hành chính trở nên khó khăn và tốn thời gian.

– Hệ thống này được xây dựng trên những công cụ và phương pháp cũ nên việc nâng cấp và bảo trì hệ thống khó

3.1.2.2 Vấn đề cần giải quyết

1 Hoàn chỉnh các chức năng nghiệp vụ của công tác quản lý sinh viên

Bổ sung các chức năng chưa có và sửa đổi các chức năng đã có nhưng chưa thuận tiện cho người dùng

2 Hỗ trợ các dịch vụ trực tuyến và môi trường giao tiếp tiện ích

– Dịch vụ tra cứu và tư vấn: Cung cấp và giải đáp các thông tin sinh viên – Dịch vụ giới thiệu và định hướng việc làm

Cung cấp một môi trường giao tiếp hiệu quả giữa nhà trường, sinh viên và cựu sinh viên, cùng với các doanh nghiệp, nhằm thường xuyên trao đổi và cập nhật thông tin về việc làm, chuyên môn, cũng như nhu cầu nhân lực tại các công ty và tổ chức khác.

Giao tiếp hiện đại dựa trên công nghệ mới, như thẻ từ và thiết bị di động, giúp đơn giản hóa quy trình xử lý, đặc biệt là các thủ tục hành chính, từ đó tiết kiệm thời gian hiệu quả.

Hệ thống quản lý sinh viên cần được tích hợp với các hệ thống thông tin khác trong đơn vị nhằm hỗ trợ quản lý dịch vụ một cách đồng bộ và hiệu quả.

– Sử dụng được cơ sở dữ liệu đã có và tương tác với hệ thống đã có

Hỗ trợ các chuẩn dữ liệu là rất quan trọng trong việc xử lý lượng dữ liệu lớn cho các bài toán tổng thể Truy xuất dữ liệu thường phức tạp và tốn thời gian, do đó, cải thiện tốc độ truy xuất và bổ sung các thuật toán mới là cần thiết để nâng cao hiệu suất hiển thị và thao tác.

Vấn đề bảo mật và an toàn dữ liệu là yếu tố quan trọng trong việc lựa chọn công nghệ lưu trữ dữ liệu, nhằm đảm bảo tốc độ xử lý và bảo vệ thông tin Việc đảm bảo an toàn dữ liệu trong hệ thống quản lý sinh viên và điểm không chỉ giúp tránh sai sót cho người quản trị mà còn ngăn chặn các hành vi gian lận điểm từ bên ngoài.

3.1.3 Các giải pháp được đề xuất

3.1.3.1 Các giải pháp về CSDL

Phát triển hệ thống quản lý

Hệ thống hỗ trợ quản lý hiệu quả, giảm thiểu thao tác thủ công, đồng thời cung cấp nhiều tiện ích thiết thực cho dịch vụ giáo dục và đào tạo, đặc biệt hướng đến sinh viên và các đối tượng liên quan.

3.2.2 Các chức năng hệ thống

R.1 Cập nhật thông tin sinh viên R.1.1 Lưu thông tin một sinh viên mới R.1.2 Sửa thông tin sinh viên

R.1.3 Xoá thông tin sinh viên R.1.4 Tìm kiếm sinh viên và tạo danh sách R.1.5 In thông tin chi tiết về sinh viên R.2 Tổ chức tuyển sinh và phân lớp

R.3 Phân lớp R.4 Quản lý học phí R.4.1 Tính toán tiền học phí của mỗi sinh viên theo kỳ R.4.2 Cập nhật tình hình nộp học phí theo đợt / khóa học (course) R.5 Quản lý khen thưởng, kỷ luật

R.5.1 Cập nhật thông tin khen thưởng, kỷ luật R.5.2 Cập nhật tiêu chuẩn cộng điểm thưởng R.5.3 Cộng điểm thưởng

R.6 Xét lên lớp/ lưu ban, thôi học, ngừng học

R.6.1 Quyết định những sinh viên lên lớp, thôi học, ngừng học R.6.2 Lưu lại kết quả xét lên lớp, thôi học, ngừng học

R.6.3 Cập nhật thông tin lớp học cho những sinh viên phải thôi học, ngừng học

R.7 Quản lý sinh viên học trả nợ

R.7.1 Cập nhật thông tin sinh viên đăng ký học trả nợ R.7.2 Phân lớp học trả nợ (cập nhật thông tin lớp) R.7.3 Cập nhật điểm môn học trả nợ

R.8 Quản lý sinh viên làm khoá luận tốt nghiệp

R.8.1 Lên danh sách sinh viên đủ điều kiện làm khoá luận tốt nghiệp R.8.2 Cập nhật đề tài khoá luận tốt nghiệp

R.8.3 Cập nhật thông tin sinh viên làm khoá luận tốt nghiệp R.8.4 In các mẫu biểu

R.9 Quản lý xét tốt nghiệp

R.9.1 Cập nhật thông tin xét tốt nghiệp cho mỗi sinh viên: Cập nhật các chứng chỉ, học phí, thư viện

R.9.2 Cập nhật tiêu chuẩn xét tốt nghiệp hàng năm R.9.3 Cập nhật tiêu chuẩn xếp loại tốt nghiệp hàng năm R.9.4 Xếp loại tốt nghiệp

R.9.5 In số liệu xét tốt nghiệp R.9.6 Ghi nhận các sinh viên được công nhận tốt nghiệp R.9.7 Thống kê báo cáo tình hình tốt nghiệp

R.9.8 In bằng, in hồ sơ tốt nghiệp, in bảng điểm

R.9.9 Theo dõi phát bằng, phát hồ sơ tốt nghiệp R.10 Lưu trữ hồ sơ của các sinh viên đã tốt nghiệp

— Dễ sử dụng, không cần đào tạo nhiều

— Đảm bảo tốc độ và an toàn trong lưu trữ và xử lý dữ liệu

— Có khả năng liên tác với các hệ thống khác, khả năng nâng cấp bảo trì dễ dàng

— Cấu hình máy chủ : Tối thiểu PIII 500, >256 MB Ram, dung lượng ổ cứng >10

GB Hệ quản trị CSDL được cài là SQL Server hoặc My SQL hoặc oracle

— Cấu hình máy trạm : Tối thiểu C 433, >64 MB Ram Có cài đặt IE 4 trở lên

3.2.4 Các khái niệm và mô hình lĩnh vực

Trường Ngành Chuyên ngành Khoá học

Sĩ số lớp Năm học Học kỳ Đối tượng (Đối tượng ưu tiên) Tiêu chuẩn xét tốt nghiệp Tiêu chuẩn xếp loại tốt nghiệp

Hồ sơ tốt nghiệp Bằng tốt nghiệp Chứng chỉ giáo dục thể chất

Kỷ luật Học phí chương trình đào tạo Tình hình đóng góp học phí ,phí

3.2.4.2 Mô hình khái niệm lĩnh vực nghiệp vụ

Hình 3.2.1: Mô hình khái niệm (hình 1)

Hình 3.2.2 Mô hình khái niệm (hình 2)

Hình 3.2.3 : Mô hình khái niệm (hình 3)

Mô tả các ca sử dụng của hệ thống

Tác nhân Vai trò Kết quả

1.,Nhân viên phòng công,,tác sinh viên

Thêm sinh viên Các thông tin về sinh viên mới được lưu Sửa sinh viên Thông tin mới về sinh viên được bổ sung

Tìm sinh viên Danh sách sinh viên thoả mãn điều kiện tìm kiếm được hiện lên màn hình

Xóa sinh viên Xoá các sinh viên đã chọn khỏi hệ thống

In thông tin sinh viên Thông tin chi tiết về sinh viên đã chọn lên màn hình và ra giấy

In hồ sơ tốt nghiệp In ra giấy hồ sơ tốt nghiệp cho mỗi sinh viên

(giấy giới thiệu của khoa/ trường, sơ yếu lý lịch, )

Cập nhật thông tin xét tốt nghiệp

Cập nhật tình hình sinh viên nộp hồ sơ, phục vụ cho việc xét tốt nghiệp

Phân lớp Phân các sinh viên mới vào các lớp thích hợp và ghi nhận kết quả

Cập nhật khen thưởng, kỷ luật (thêm, sửa, xóa, tìm kiếm)

Ghi nhận những sinh viên được khen thưởng, kỷ luật

Chuyển lớp, chuyển trường, chuyển ngành

Ghi nhận những sinh viên chuyển lớp, chuyển trường, chuyển ngành Cập nhật những thông tin liên quan

Tổ chức lưu trữ vĩnh viễn hồ sơ đã tốt nghiệp

Hồ sơ của các sinh viên đã tốt nghiệp được lưu ở một nơi khác để khi cần thiết có thể lấy ra

2.,,Nhân viên phòng đào tạo

Cập nhật khen thưởng, kỷ luật

Ghi nhận những sinh viên được khen thưởng, kỷ luật

Xét lên lớp, dừng học, thôi học

Xét lên lớp, dừng học, thôi học Cập nhật kết quả

Cập nhật thông tin xét tốt nghiệp

Ghi nhận các thông tin về sinh viên phục vụ cho việc xét tốt nghiệp

Cập nhật tiêu chuẩn xếp loại tốt nghiệp

Ghi nhận một tiêu chuẩn xếp loại tốt nghiệp mới

Sửa các thông tin về một tiêu chuẩn xếp loại tốt nghiệp

Xoá bỏ một tiêu chuẩn xếp loại tốt nghiệp

Xếp loại tốt nghiệp Xếp loại tốt nghiệp và ghi nhận kết quả

Cập nhật tiêu chuẩn tốt nghiệp

Nhập tiêu chuẩn xét tốt nghiệp (gồm điểm chuẩn và điểm đạt) cho khoá học hiện xét

In số liệu xét tốt nghiệp

Bản danh sách sinh viên đủ điều kiện tốt nghiệp sẽ bao gồm các sinh viên năm cuối và những sinh viên từ các khóa trước chưa tốt nghiệp, kèm theo tài liệu học tập của họ Ngoài ra, sẽ có thống kê tỷ lệ xét tốt nghiệp theo từng phân loại tốt nghiệp.

Tìm kiếm sinh viên Hiển thị các sinh viên thoả mãn điều kiện tìm kiếm lên màn hình

Thống kê, báo cáo In ra giấy bản báo cáo về tỷ lệ tốt nghiệp/ ch- ưa tốt nghiệp theo từng xếp loại tốt nghiệp

Cập nhật thông tin tốt nghiệp, phát bằng, phát hồ sơ

Lưu thông tin tốt nghiệp, phát bằng, phát hồ sơ tốt nghiệp

Tổ chức lưu trữ hồ sơ vĩnh viễn

Hồ sơ của các sinh viên đã tốt nghiệp được lưu ở một nơi khác để khi cần thiết có thể lấy ra

Xét duyệt, ký nhận các báo cáo, đơn từ về sinh viên được gửi từ phòng công tác sinh viên và phòng đào tạo

Các báo cáo, đơn từ về sinh viên được xét duyệt và ký nhận

Xem thông tin về sinh viên

Thông tin chi tiết về sinh viên đã chọn lên màn hình và ra giấy

Xét duyệt, ký nhận các báo cáo về sinh viên được gửi từ các đơn vị trực thuộc

Các báo cáo, đơn từ về sinh viên được xét duyệt và ký nhận

Xem thông tin về sinh viên

Thông tin sinh viên cần xem hiện lên màn hình và có thể in ra

Bổ sung thông tin sinh viên

Thông tin bổ sung cá nhân sinh viên được lưu vào hồ sơ sinh viên

Xem điểm, xem các quy chế, các quyết định liên quan tới sinh viên

Thông tin về sinh viên, bao gồm quyền lợi và nghĩa vụ, rất quan trọng Sinh viên nên đăng ký tham gia các dịch vụ do nhà trường tổ chức để tận dụng tối đa các cơ hội học tập và phát triển bản thân.

Theo dõi tình hình học tập của sinh viên

Xem các thông tin liên quan đến tình hình học tập của con em họ

7.,,Nhân viên phòng tài vụ

Thu học phí và cập nhật tình hình nộp học phí

Thu học phí theo mức học phí đã tính cho mỗi khoá học và mỗi kỳ học của các sinh viên

8.,,Người quản trị dữ liệu

Cập nhật các danh mục

Các danh mục và thông tin liên quan được lưu trữ và xử lý (Danh mục Trường, Lớp, Khoa, Ngành, Hệ, Khóa học, Đối tượng,…)

3.3.2 Xác định các ca sử dụng

1 Gói cập nhật sinh viên uc1 Thêm sinh viên uc2 Sửa sinh viên uc3 Xoá sinh viên uc4 Tìm kiếm sinh viên

2 Gói quản lý lớp học uc5 Phân lớp và cập nhật thông tin lớp uc6 Chuyển lớp, chuyển ngành, chuyển trường uc7 Xét lên lớp, ngừng học, thôi học

3 Quản lý học phí uc8 Lên danh sách nộp học phí theo đợt (miễn giảm học phí) uc9 Cập nhật tình hình nộp học phí theo đợt

4 Quản lý khen thưởng, kỷ luật uc10 Cập nhật mức khen thưởng uc11 Cập nhật sinh viên được khen thưởng uc12 Cập nhật sinh viên bị kỷ luật uc13 Cập nhật tiêu chuẩn cộng điểm thưởng

5 Quản lý thực tập uc14 Cập nhật thông tin sinh viên thực tập

6 Quản lý sinh viên học trả nợ uc15 Cập nhật thông tin sinh viên đăng ký học trả nợ uc16 Cập nhật tình hình thu lệ phí học trả nợ uc17 Phân lớp và cập nhật thông tin lớp học trả nợ

7 Quản lý sinh viên làm khoá luận tốt nghiệp uc18 Cập nhật tiêu chuẩn làm khoá luận tốt nghiệp uc19 Lên và in danh sách sinh viên đủ điều kiện làm khoá luận tốt nghiệp uc20 Cập nhật đề tài khoá luận tốt nghiệp uc21 Cập nhật thông tin sinh viên đăng ký làm khoá luận tốt nghiệp

8 Quản lý công tác tốt nghiệp uc22 Cập nhật thông tin xét tốt nghiệp cho mỗi sinh viên: Cập nhật các chứng chỉ, học phí, ký túc xá, thư viện uc23 Cập nhật tiêu chuẩn xét tốt nghiệp hàng năm uc24 Cập nhật tiêu chuẩn xếp loại tốt nghiệp hàng năm uc25 Xếp loại tốt nghiệp uc26 In số liệu xét tốt nghiệp uc27 Ghi nhận các sinh viên được công nhận tốt nghiệp uc28 Thống kê báo cáo tình hình tốt nghiệp uc29 In bằng, in hồ sơ tốt nghiệp, in bảng điểm uc30 Theo dõi và cập nhật thông tin phát bằng, phát hồ sơ tốt nghiệp uc31 Tổ chức lưu trữ vĩnh viễn hồ sơ của các sinh viên đã tốt nghiệp uc32 Tổ chức xét tốt nghiệp bổ sung

9 Gói cập nhật danh mục uc33 Cập nhật Khoa uc34 Cập nhật Ngành uc35 Cập nhật Chuyên ngành uc36 Cập nhật Hệ đào tạo uc37 Cập nhật Khoá học uc38 Cập nhật Lớp uc39 Cập nhật Đối tượng uc40 Cập nhật Hình thức khen thưởng uc41 Cập nhật Hình thức kỷ luật

3.3.3 Biểu đồ ca sử dụng theo gói

1 Gói cập nhật sinh viên

Hình 3.3 Biểu đồ ca sử dụng gói “Cập nhật sinh viên”

2 Gói cập nhật lớp học

Hình 3.4 Biểu đồ ca sử dụng gói “Cập nhật lớp học”

3 Gói quản lý học phí

Hình 3.5: Biểu đồ ca sử dụng gói “quản lý học phí”

4 Quản lý khen thưởng, kỷ luật

6 Quản lý sinh viên học trả nợ

Hình 3.6: Biểu đồ ca sử dụng gói “Quản lý thực tập”

Hình 3.7 Biểu đồ ca sử dụng gói “Quản lý sinh viên thực tập”

6 Quản lý sinh viên học trả nợ

Hình 3.8 Biểu đồ ca sử dụng gói “Quản lý sinh viên trả nợ”

7 Quản lý sinh viên làm khoá luận tốt nghiệp

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”

8 Quản lý công tác 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”

3.3.4 Mô tả chi tiết các ca sử dụng

Uc1 Thêm mới sinh viên

Tên ca sử dụng: Thêm sinh viên

- Tác nhân: Nhân viên phòng công tác sinh viên

- Mục đích: Cập nhật thông tin về sinh viên mới vào hệ thống

- Mô tả khái quát: Nhập trực tiếp thông tin về sinh và yêu cầu hệ thống ghi nhận

Nếu thông tin bị thiếu hoặc không chính xác, yêu cầu người dùng nhập lại hoặc dừng lại Trong trường hợp thông tin trùng với một sinh viên đã tồn tại, cần yêu cầu kiểm tra lại hoặc dừng lại.

Hành động của tác nhân Hồi đáp của hệ thống dữ liệu lien quan

1 Yêu cầu nhập sinh viên mới 2 Hiện form nhập

3 Nhập các thông tin cần thiết về sinh viên mới, yêu cầu ghi nhận

4 Ghi nhận và thông báo kết quả hồ sơ sinh viên, tỉnh, lớp, ngành, đối tượng

Uc2 Sửa thông tin sinh viên

- Tên ca sử dụng: Sửa sinh viên

- Tác nhân: Nhân viên phòng công tác sinh viên

- Mục đích: Sửa các thông tin về một sinh viên đang tồn tại trong hệ thống

Để cập nhật thông tin sinh viên, cần thực hiện việc sửa đổi hoặc xóa các dữ liệu cũ và nhập các thông tin mới Hệ thống sẽ ghi nhận những thay đổi này để đảm bảo thông tin sinh viên luôn chính xác và cập nhật.

Hành động của tác nhân

Hồi đáp của hệ thống

1 Yêu cầu sửa thông tin sinh viên

2 Hiện form nhập điều kiện tìm kiếm

3 Nhập thông tin về sinh viên cần sửa,

4 Tìm kiếm và hiển thị danh sách sinh viên tìm được

Hồ sơ sinh viên, tỉnh, lớp, ngành, đối tượng

5 Chọn sinh viên cần sửa trong danh sách

6 Hiển thị thông tin về sinh viên đã chọn

Hồ sơ sinh viên, tỉnh, lớp, ngành, đối tượng

7 Tiến hành sửa, yêu cầu ghi lại

8 Kiểm tra, ghi lại thông tin mới và thông báo kết quả ghi nhận

Hồ sơ sinh viên, tỉnh, lớp, ngành, đối tượng

Ngoại lệ: Bước 5: Không tìm thấy sinh viên cần sửa kết thúc giao dịch

- Tên ca sử dụng: Xoá sinh viên

- Tác nhân: Nhân viên phòng công tác sinh viên

- Mục đích: Xoá tất cả các thông tin trong hệ thống mà liên quan đến sinh viên cần xoá

- Mô tả khái quát: Tìm đến sinh viên cần xoá và tiến hành xoá tất cả thông tin liên quan đến sinh viên đó

Hành động của tác nhân

Hồi đáp của hệ thống dữ liệu liên quan

1 Yêu cầu xóa thông tin sinh viên

2 Hiện form nhập điều kiện tìm kiếm

3 Nhập thông tin về sinh viên cần tìm

4 Hiển thị danh sách sinh viên tìm được

5 Chọn sinh viên cần xóa trong danh sách

6 Hiển thị thông tin về sinh viên được chọn

7 Yêu cầu hệ thống xóa 8 Xoá và thông báo kết quả

- Tên ca sử dụng: Phân lớp

- Tác nhân: Nhân viên phòng công tác sinh viên

- Mục đích Phân sinh viên vào các lớp và lưu lại kết quả phân lớp

- Mô tả khái quát Phân các sinh viên mới nhập học vào các lớp học phù hợp theo quy định chung của khoa

Hành động của tác nhân

Hành động của hệ thống

1 Chọn chức năng phân lớp

2 Hiện form phân lớp theo ngành và lớp

3 Chọn ngành, lớp 4 Hiện sinh viên mới nhập thuộc ngành

-DS hồ sơ -Sinh viên -Khoá học -Ngành học -Khoa

5 Chọn sinh viên cho lớp

6 Hiện form chọn -DS hồ sơ

-Sinh viên -Khoá học -Ngành học -Khoa

7 Kết thúc và yêu cầu lưu lại hệ thống

-DS hồ sơ -Sinh viên -Khoá học -Ngành học -Khoa

Ngoại lệ: - Lặp lại các bước 5-6 nhiều lần cho đến khi sắp hết các sinh viên vào lớp thuộc ngành

- Bước 7: Nếu chọn hết các sinh viên vào ngành thì cho phép lựa ngành mới và lớp mới ( trở về 3)

Uc5 Lên danh sách thu học phí

- Tên ca sử dụng: Lên danh sách thu học phí

- Tác nhân: Nhân viên phòng tài vụ

- Mục đích Lên danh sách sinh viên và số tiền học phí phải nộp của mỗi sinh viên theo học kỳ

- Mô tả khái quát Tính toán học phí phải nộp theo đợt của mỗi sinh viên Lập danh sách thu theo lớp

- Mô tả diễn biến Hành động của tác Hành động của hệ Dữ liệu liên quan nhân thống

1 Chọn chức năng tính học phí

2 Hiện form tính học phí yêu cầu chọn lớp và chọn khoa

- Khoa -Khoá học -Ngành học

- Danh sách sinh viên miến giảm học phí

3 Chọn lớp, chọn khoa 4 Hiện số tiền của từng sinh viên phải đóng theo khoa, theo lớp học kỳ

- Khoa -Khoá học -Ngành học

- Danh sách sinh viên miến giảm học phí

5.Kết thúc, yêu cầu hệ thống lưu lại

Uc6 Cập nhật tình hình nộp học phí

- Tên ca sử dụng: Cập nhật tình hình nộp học phí theo đợt

- Tác nhân: Nhân viên phòng tài vụ

- Mục đích Ghi lại tình hình nộp học phí theo đợt

- Mô tả khái quát Ca sử dụng bắt đầu khi sinh viên đến nộp học phí

Nhân viên phòng tài vụ ghi nhận số tiền học phí mà sinh viên nộp

Hành động của tác nhân

Hành động của hệ thống

1 Chọn chức năng đóng học phí

2 Hiện giao diện đóng học phí theo khoa, theo lớp

- danh sách sinh viên đã nộp học phí

- danh sách sinh viên chưa nộp học phí

3 Chọn khoa, lớp 4 Xác nhận sinh viên đã đóng tiền

5 Kết thúc, yêu cầu hệ thống nghi nhận

Ngoại lệ: Bước3: Không tìm thấy lớp hoặc tên sinh viên cần đóng tiền thì kết thúc giao dịch

Uc7 Xét lên lớp, ngừng học, thôi học

- Tên ca sử dụng: Xét lên lớp, ngừng học, thôi học

- Tác nhân: Nhân viên phòng công tác sinh viên

- Mục đích Xét lên lớp, thôi học, ngừng học

Danh sách sinh viên đủ điều kiện học tiếp sẽ được công bố, trong đó bao gồm các trường hợp phải thôi học hoặc ngừng học để hoàn trả nợ các môn học còn thiếu Kết quả này sẽ được lưu giữ để đảm bảo tính minh bạch và hỗ trợ sinh viên trong việc theo dõi tình hình học tập của mình.

Hành động của tác nhân

Hành động của hệ thống

1.Chọn chức năng xét học tiếp hay ngừng học hay thôi học

2.Yêu cầu chọn lớp - Danh sách sinh viên theo lớp

- Bảng điểm các môn học trong năm

- Danh sách sinh viên bị kỹ luật

- Danh sách sinh viên chưa đóng học phí

3 Chọn lớp, đưa ra danh sách thôi học ngừng học

Uc8 Cập nhật sinh viên thực tập

- Tên ca sử dụng: Cập nhật sinh viên thực tập

- Tác nhân: Nhân viên phòng công tác sinh viên

- Mục đích Theo dõi tình hình thực tập của các sinh viên trong khoa

- Mô tả khái quát cập nhật tình hình thực tập của sinh viên, nơi sinh viên thực tập và thời gian sinh viên thực tập

Hành động của tác nhân

Hành động của hệ thống

1 Nhập thông tin về tình hình thực tập của mỗi sinh viên Yêu cầu hệ thống ghi nhận

Ghi nhận và hiện kết quả ghi nhận

- Danh sách sinh viên năm cuối

- Danh sách sinh viên đủ điều kiện đi thực tập

3 Chọn lớp 4 Hiện danh sách sinh viên theo lớp

- Danh sách sinh viên năm cuối

- Danh sách sinh viên đủ điều kiện đi thực tập

5 Chọn sinh viên 6 Hiện thông tin của sinh viên được chọn

- Danh sách sinh viên năm cuối

- Danh sách sinh viên đủ điều kiện đi thực tập

7 Cập nhật thông tin thực tập của sinh viên, yêu cầu ghi lại

8 Lưu thông tin cập nhật vàomáy

- Danh sách sinh viên năm cuối

- Danh sách sinh viên đủ điều kiện đi thực tập

Uc9 Lên danh sách sinh viên đủ điều kiện làm khoá luận tốt nghiệp

- Tên ca sử dụng: Lên danh sách sinh viên đủ điều kiện làm khoá luận

- Tác nhân: Nhân viên phòng đào tạo

- Mục đích Lọc ra các sinh viên đủ điều kiện làm khoá luận tốt nghiệp

Nhân viên phòng đào tạo đánh giá kết quả học tập của sinh viên sau tám kỳ học, từ đó lập danh sách những sinh viên đủ điều kiện thực hiện khóa luận tốt nghiệp.

Hành động của tác nhân

Hành động của hệ thống

1 Chọn chức năng 2 Hiển thị danh sách lớp - Danh sách sinh viên theo lớp

- Tiêu chuẩn làm khoá luận

3 Chọn lớp 4 Hiển thị các tiêu chuẩn làm KLTN

- Danh sách sinh viên theo lớp

- Tiêu chuẩn làm khoá luận

6 Hiển thị danh sách các sinh viên thoả mãn

- danh sách sinh viên được làm khoá luận

7 Yêu cầu ghi lại 8 Hệ thống ghi lại và thông báo

Uc10 Cập nhật thông tin sinh viên đăng ký làm KLTN

- Tên ca sử dụng: Cập nhật thông tin sinh viên đăng ký làm khoá luận

- Tác nhân: Nhân viên phòng đào tạo

- Mục đích Quản lý sinh viên làm khoá luận tốt nghiệp

- Mô tả khái quát Ca sử dụng bắt đầu khi sinh viên đến đăng ký làm khoá luận tốt nghiệp

Hành động của tác nhân

Hành động của hệ thống

1 Chọn chức nănng 2 Hiện danh sách lớp - Danh sách sinh viên được làm khoá luận

- Bảng thông tin sinh viên đăng ký làm khoá luận

3 Chọn lớp 4.,Hiển thị các tiêu - Danh sách sinh viên được làm chuẩn làm để được làm KLTN cho lớp đã chọn khoá luận

- Bảng thông tin sinh viên đăng ký làm khoá luận

5.,Chọn các tiêu chuẩn Yêu cầu hệ thống lên danh sách các sinh viên trong lớp mà thoả mãn các tiêu chuẩn đã chọn

6 Hiển thị danh sách các sinh viên thoả mãn

- Danh sách sinh viên đăng ký hợp lệ

Uc11.Cập nhật thông tin xét tốt nghiệp

- Tên ca sử dụng: Cập nhật thông tin xét tốt nghiệp

- Tác nhân: Nhân viên phòng đào tạo

- Mục đích: Cập nhật các thông tin về sinh viên phục vụ cho công tác xét tốt nghiệp

- Mô tả khái quát: Tìm ra các sinh viên cần cập nhật hồ sơ xét tốt nghiệp

Hành động của tác nhân

Phản ứng của hệ thống

1 Chọn chức năng cập nhật thông tin xét tốt nghiệp

2.,Hiện form nhập thông tin tìm kiếm

3 Nhập thông tin về sinh viên cần tìm Yêu cầu tìm kiếm

4 Ðưa ra thiết bị danh sách sinh viên thoả mãn điều kiện tìm kiếm

-Danh sách sinh viên đã bảo vệ luận văn

-Danh sách sinh viên tốt nghiệp

5 Sửa thông tin xét tốt nghiệp Yêu cầu ghi nhận

6 Ghi nhận thông tin xét tốt nghiệp

- Danh sách sinh viên tốt nghiệp

Uc12 Cập nhật tiêu chuẩn tốt nghiệp

- Tên ca sử dụng: Cập nhật tiêu chuẩn tốt nghiệp

- Tác nhân: Nhân viên phòng đào tạo

- Mục đích: Cập nhật tiêu chuẩn tốt nghiệp cho mỗi khoá học

- Mô tả khái quát: Thêm một tiêu chuẩn tốt nghiệp mới hoặc sửa/xóa thông tin về một tiêu chuẩn đang có trong hệ thống

Hành động của tác nhân

Phản ứng của hệ thống

1 Chọn chức năng cập nhật tiêu chuẩn xét tốt nghiệp

2.,Hiện form chọn nhập mới/ sửa/ xoá tiêu chuẩn tốt nghiệp

3.,Chọn chức năng thêm mới

4 Hiện form thêm tiêu chuẩn tốt nghiệp mới

5 Nhập thông tin cho tiêu chuẩn tốt nghiệp mới Yêu cầu ghi nhận

6 Kiểm tra thông tin mới và ghi nhận

Thông báo kết quả ghi nhận

Uc12 Cập nhật tiêu chuẩn xếp loại tốt nghiệp

- Tên ca sử dụng: Cập nhật tiêu chuẩn xếp loại tốt nghiệp

- Tác nhân: Nhân viên phòng đào tạo

- Mục đích: Cập nhật tiêu chuẩn xếp loại tốt nghiệp cho mỗi khoá học

- Mô tả khái quát: Nhập tiêu chuẩn xếp loại tốt nghiệp mới cho một khoá học

Hành động của tác nhân

Phản ứng của hệ thống

1 Chọn chức năng cập 2.,Hiện form chọn - Tiêu chuẩn tốt nghiệp nhật tiêu chuẩn xếp loại tốt nghiệp nhập mới/ sửa/ xoá tiêu chuẩn xếp loại tốt nghiệp

3.,Chọn chức năng thêm mới

4 Hiện form thêm tiêu chuẩn xếp loại tốt nghiệp mới

5 Nhập thông tin cho tiêu chuẩn xếp loại tốt nghiệp mới Yêu cầu ghi nhận

6 Kiểm tra thông tin mới và ghi nhận

Thông báo kết quả ghi nhận

Uc13 Xếp loại tốt nghiệp

- Tên ca sử dụng: Xếp loại tốt nghiệp

- Tác nhân: Nhân viên phòng đào tạo

- Mục đích: Xếp loại tốt nghiệp cho những sinh viên đủ điều kiện tốt nghiệp

Dựa vào các tiêu chuẩn xếp loại tốt nghiệp và điểm tổng kết toàn khóa học, chúng tôi tiến hành xếp loại tốt nghiệp cho từng sinh viên Quy trình này đảm bảo tính công bằng và minh bạch trong việc đánh giá thành tích học tập của mỗi cá nhân.

Hành động của tác nhân

Phản ứng của hệ thống

1 Chọn chức năng Xếp loại tốt nghiệp

2 Hiện form chọn phạm vi xếp loại tốt nghiệp

- Danh sách sinh viên -Bảng Điểm

3 Chọn phạm vi xếp loại tốt nghiệp Yêu cầu xếp loại tốt nghiệp

4 Xếp loại tốt nghiệp và đưa ra thiết bị kết quả xếp loại tốt nghiệp

- Danh sách sinh viên -Bảng Điểm

Uc14 In số liệu xét tốt nghiệp

- Tên ca sử dụng: In số liệu xét tốt nghiệp

- Tác nhân: Nhân viên phòng đào tạo

- Mục đích: In số liệu tốt nghiệp để trình lên ban chủ nhiệm khoa và ÐHQLKD xét duyệt

Để đạt tiêu chuẩn tốt nghiệp, cần phân tích danh sách sinh viên (DSSV) thỏa mãn yêu cầu tốt nghiệp, cùng với danh sách sinh viên chưa đạt và lý do cụ thể Bên cạnh đó, cần xem xét danh sách sinh viên thỏa mãn tiêu chuẩn xét tốt nghiệp bổ sung và cung cấp diễn giải chi tiết Cuối cùng, thống kê tỷ lệ xét tốt nghiệp sẽ giúp đánh giá hiệu quả và chất lượng của quá trình đào tạo.

Hành động của tác nhân

Phản ứng của hệ thống

1 Chọn chức năng In số liệu xét tốt nghiệp

2 Hiện form nhập các thông tin cần thiết cho số liệu cần in

- danh sách sinh viên tốt nghiệp

- Danh sách sinh viên tốt nghiệp theo loại tốt nghiệp

3 Nhập thông tin cho số liệu Yêu cầu đưa ra thiết bị số liệu xét tốt nghiệp

4 Ðưa ra thiết bị các số liệu xét tốt nghiệp

Danh sách sinh viên tốt nghiệp theo loại tốt nghiệp

Phân tích hệ thống

a Biểu đồ tuần tự hệ thống cập nhật sinh viên

Hình 3.11: Biểu đồ tuần t ự hệ thống “cập nhật sinh viên” b.Mô hình khái niệm “Gói cập nhật sinh viên”

 Tác nhân: Nhân viên phòng Công tác sinh viên

 Lớp giao diện: Lớp giao diện Gd_Capnhat_SV cho phép tác nhân

 Lớp điều khiển: Dk_Capnhat_SV

 Lớp thực thể: Lop, Sinh vien, Doi tuong, Khoa, Tỉnh, Ngành

Hình 3.12 Biểu đồ lớp phân tích thực thi gói “Cập nhật sinh viên”

C Biểu đồ tuần tự đối tượng khái niệm

+ Nhập thêm sinh viên mới

Hình 3.13 Biểu đồ tuần tự khái niệm gói “Cập nhật sinh viên”

3.4.2 Gói quản lý thông tin lớp học a.Biểu đồ tuần tự gói thông tin lớp b.Mô hình khái niệm “Gói quản lý thông tin lớp ”

 Tác nhân: Nhân viên phòng đào tạo

 Lớp giao diện: Gd_Phanlop

 Lớp điều khiển: Dk_Phanlop

 Lớp thực thể: Sinh vien, Lop

Hình 3.14 Biểu đồ tuần tự gói “Thông tin lớp” c Biểu đồ tuần tự khái niệm “ phân lớp”

Hình 3.15 Biểu đồ lớp gói “Thông tin lớp học”

3.4.3 Gói quản lý học phí a Biểu đồ tuần tự khái niệm hệ thống“Quản lý học phí”

Hình 3.17 Biểu đồ tuần tự khái niệm “Quản lý học ph í” b Mô hình khái niệm “Gói quản lý học phí”

 Tác nhân: Nhân viên phòng tài vụ

 Lớp giao diện: Gd_QLhocphi

 Lớp điều khiển: Dk_QLhocphi

 Lớp thực thể: Sinh vien,Hoc phi, Lop, DS_Thu hoc phi

 Biểu đồ lớp phân tích thực thi gói

Hình 3.16 Biểu đồ tuần tự khái niệm “Phan lop” c Biểu đồ tuần tự khái niệm “ Quản lý học phí”

Hình 3.20 : Biểu đồ tuần tự khái niệm “quản lý lớp học”

3.4.4 Gói quản lý khen thưởng, kỷ luật a Biểu đồ tuần tự hệ thống b Mô hình lớp khái niệm “Gói quản lý khen thưởng kỷ luật”

 Tác nhân: Nhân viên phòng đào tạo, Nhân viên phòng Công tác sinh viên

 Lớp giao diện: Gd_QL_Khenthuong_Kyluat

 Lớp điều khiển: Dk_QL_Khenthuong_Kyluat

 Lớp thực thể: Sinh vien, Thanh tich khen thuong, Ky luat Biểu đồ lớp phân tích thực thi gói

Biểu đồ tuần tự khái niệm lớp "Khen thưởng kỷ luật" thể hiện mối quan hệ và quy trình liên quan đến việc khen thưởng và kỷ luật trong một tổ chức Nội dung của biểu đồ giúp làm rõ các bước và tiêu chí cần thiết để áp dụng các hình thức khen thưởng và kỷ luật một cách hiệu quả.

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”

3.4.5 Gói Quản lý sinh viên học trả nợ a Biểu đồ tuần tự hệ thống b.Mô hình lớp khái niệm “Gói quản lý sinh viên học trả nợ”

 Tác nhân: NV phòng DT

 Lớp giao diện: Gd_QL hoc tra no

 Lớp điều khiển: Dk_QL hoc tra no

 Lớp thực thể: Sinh vien, Lop, Dang ky hoc tra no, Mon hoc

 Biểu đồ lớp phân tích thực thi gói

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ợ”

C Biểu đồ tuần tự khái niệm “ Quản lý sinh viên trả nợ”

Hình 3.24 Biểu đồ tu ần tự khái niệm “Quản lý học viên trả nợ”

3.4.6 Quản lý sinh viên làm khoá luận tốt nghiệp a.Biểu đồ tuần tự hệ thống b Mô hình lớp khái niệm “Gói quản lý sinh viên làm khoá luận tốt nghiệp”

 Tác nhân: NV phòng DT

 Lớp giao diện: Gd_QL_KLTN

 Lớp điều khiển: Dk_QL_KLTN

 Lớp thực thể: Sinh viên, Lop, Tieu chuan lam KLTN, Tong ket hoc ky, Diem thi, De tai KLTN, Dang ky lam KLTN

Biểu đồ lớp phân tích thực thi gói

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”

3.4.7.Quản lý sinh viên thực tập a Biểu đồ tuần tự hệ thống

Hình 3.26 Biểu đồ lớp “Quản lý khoá luận tốt nghiệp” b Mô hình lớp khái niệm “Gói quản lý sinh viên thực tập”

 Tác nhân: NV phòng DT

 Lớp giao diện: Gd_QL thuc tap

 Lớp điều khiển: Dk_QL thuc tap

Lớp thực thể trong quản lý sinh viên thực tập bao gồm hai đối tượng chính: sinh viên và thực tập Biểu đồ lớp phân tích thực thi gói cung cấp cái nhìn tổng quan về cấu trúc dữ liệu và mối quan hệ giữa các lớp Hình 3.27 minh họa biểu đồ tuần tự của lớp "Quản lý sinh viên thực tập", giúp hiểu rõ hơn về quy trình và các tương tác trong hệ thống quản lý này.

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”

3.4.8 Quản l ý công tác tốt nghiệp a Biểu đồ tuần tự hệ thống

Hình 3.30 Biểu đồ tuần tự “Quản lý công tác tốt nghiệp” b M ô hình lớp khái niệm gói ” Quản lý công tác tốt nghiệp”

 Tác nhân: NV phong DT, NV phong CTSV, NV phong Tai vu

 Lớp giao diện: Gd_QLtot nghiep

 Lớp điều khiển: Dk_QLtot nghiep

 Lớp thực thể: Sinh vien, Tong ket hoc ky, Diem thi, Lop Biểu đồ lớp phân tích thực thi gói

Hình 3.31 Biểu đồ l ớp “Quản lý công tác tốt nghiệp”

Hợp đồng cho các thao tác hệ thống

Trách nhiệm Thêm một sinh viên mới Tham chiếu uc1

Nếu dữ liệu về sinh viên mới thiếu hoặc không chính xác, hệ thống sẽ thông báo lỗi và yêu cầu người dùng nhập lại thông tin hoặc dừng quá trình Kết quả đầu ra sẽ hiển thị thông báo xác nhận việc thêm sinh viên mới thành công.

Hậu điều kiện Đối tượng Sinh vien được tạo

Tên Tim kiem sinh vien

Trách nhiệm Nhận thông tin tìm kiếm Tìm các sinh viên thoả mãn điều kiện tìm kiếm Thông báo kết quả tìm kiếm

Ngoại lệ Nếu thông tin tìm kiếm chứa ký tự đặc biệt thì báo lỗi

Yêu cầu nhập lại hoặc dừng Đầu ra Kết quả tìm kiếm được đưa ra thiết bị Tiền điều kiện

3.5.3 Xem thông tin chi tiết về sinh viên

Tên Xem thong tin sinh vien

Trách nhiệm của chúng tôi là hiển thị thông tin chi tiết về sinh viên đã chọn, tham chiếu đến Uc2 và Uc3 Đầu ra sẽ cung cấp thông tin chi tiết về sinh viên, với điều kiện là đối tượng sinh viên đó và các thông tin liên quan đã được lưu trữ trong hệ thống.

Tên S ửa thông tin sinh viên

Trách nhiệm Cập nhật thông tin mới về sinh viên

Nếu dữ liệu mới không chính xác hoặc người dùng xóa dữ liệu cũ mà không cung cấp đủ dữ liệu mới, hệ thống sẽ hiển thị thông báo lỗi Người dùng cần nhập lại dữ liệu hoặc dừng lại Kết quả đầu ra sẽ là thông báo về việc cập nhật.

Tiền điều kiện Đã có sinh viên đó trong hệ thống Hậu điều kiện Các thuộc tính của một đối tượng Sinh vien được sửa

Các liên kết giữa đối tượng Sinh vien đó với các đối tượng khác được cập nhật

Trách nhiệm Hiện thông báo yêu cầu xác nhận việc xoá sinh viên Xoá một sinh viên khỏi hệ thống nếu người dùng đã xác nhận xoá

Nếu người dùng không xác nhận việc xoá, quá trình sẽ dừng lại Kết quả xoá sẽ được thông báo cho người dùng Điều kiện tiên quyết là đối tượng sinh viên cần xoá phải tồn tại trong hệ thống Sau khi hoàn tất, đối tượng sinh viên này sẽ bị xoá khỏi hệ thống.

Các liên kết giữa đối tượng Sinh viên đó và các đối tượng khác trong hệ thống bị xoá

3.5.6 Lên danh sách thu học phí

Tên Lên danh sách thu học phí

Trách nhiệm Tính tống số học phí phải nộp của mỗi sinh viên trong học kỳ và lên danh sách theo lớp

Tham chiếu Uc7 Đầu ra Danh sách thu học phí theo lớp Tiền điều kiện Đã có các đối tượng Hoc phi trong hệ thống Hậu điều kiện

3.5.7 Cập nhật học phí đã nộp

Tên Cập nhật học phí đã nộp

Trách nhiệm Lưu thông tin về tình hình nộp học phí của các sinh viên

Tham chiếu Uc8 đã cập nhật thông báo kết quả đầu ra Tiền điều kiện cho thấy đã có các đối tượng học phí trong hệ thống Hậu điều kiện xác nhận rằng giá trị của các thuộc tính đã nộp của các đối tượng học phí đã được cập nhật.

3.5.8 Thêm sinh viên có thành tích khen thưởng

Tên Them sinh vien co thanh tich khen thuong Trách nhiệm Tạo các đối tượng Khen thuong

Tham chiếu Uc10 cho biết kết quả bổ sung một đối tượng Khen thưởng Điều kiện cần thiết là đã có các đối tượng Thanh tích khen thưởng và Sinh viên trong hệ thống.

Hậu điều kiện Đối tượng Khen thuong mới được tạo

Liên kết giữa đối tượng Khen thưởng mới và đối tượng Sinh viên, cũng như giữa đối tượng Khen thưởng mới và các đối tượng Thành tích khen thưởng đã được tạo ra, là rất quan trọng trong việc quản lý và ghi nhận thành tích Việc thiết lập mối quan hệ này giúp tối ưu hóa quy trình khen thưởng và nâng cao hiệu quả trong việc công nhận những nỗ lực của sinh viên.

3.5.9 Tìm kiếm thông tin khen thưởng

Tên Tìm kiếm thông tin khen thưởng

Trách nhiệm Nhận thông tin tìm kiếm Tìm các sinh viên thoả mãn điều kiện tìm kiếm Thông báo kết quả tìm kiếm

Tham chiếu Uc10 Đầu ra Kết quả tìm kiếm được đưa ra thiết bị

3.5.10 Sửa thông tin khen thưởng

Tên Sửa thông tin khen thưởng

Trách nhiệm Cập nhật thông tin mới về sinh viên được khen thưởng

Nếu dữ liệu mới không chính xác hoặc người dùng xóa dữ liệu cũ mà không nhập đủ dữ liệu mới, hệ thống sẽ thông báo lỗi Người dùng cần nhập lại thông tin hoặc dừng lại Kết quả đầu ra sẽ là thông báo kết quả cập nhật Tiền điều kiện yêu cầu phải có đối tượng khen thưởng cần sửa trong hệ thống, và hậu điều kiện là các thuộc tính của đối tượng khen thưởng sẽ được sửa đổi.

Các liên kết giữa đối tượng Khen thuong đó với các đối tượng khác được cập nhật

3.5.11 Xoá thành tích khen thưởng của một sinh viên

Tên Xoa thanh tich khen thuong cua sinh vien

Trách nhiệm Hiện thông báo yêu cầu xác nhận việc xoá Xoá một đối tượng Khen thuong nếu người dùng đã xác nhận xoá

Nếu người dùng không xác nhận việc xóa, quá trình sẽ dừng lại Kết quả của thao tác này là thông báo về việc xóa Điều kiện tiên quyết là phải có đối tượng khen thưởng cần xóa Sau khi thực hiện, đối tượng khen thưởng sẽ bị xóa khỏi hệ thống.

Các liên kết giữa đối tượng Khen thuong và đối tượng

Sinh viên và các đối tượng Thanh tích khen thuong tương ứng bị xoá

Trách nhiệm Phân các sinh viên mới vào lớp

Tham chiếu Uc4 Đầu ra Danh sách sinh viên

Tiền điều kiện Đã có các đối tượng lớp học và các đối tượng sinh viên

Hậu điều kiện Liên kết được thiết lập giữa một đối tượng lớp và một đối tượng sinh viên

Trách nhiệm Chuyển được sinh viên từ lớp này sang lớp khác

Tham chiếu Uc5 Đầu ra Thông báo kết quả

Tiền điều kiện Các đối tượng lớp

Các đối tượng sinh viên Đối tượng sinh viên được xét chuyển lớp phải có một liên kết có sẵn với một đối tượng lớp khác

Hậu điều kiện Liên kết của sinh viên đã được xem xét và hủy bỏ, dẫn đến việc hình thành một liên kết mới giữa sinh viên và một lớp học khác trong hệ thống.

Trách nhiệm Xem xét điểm tổng kết, điểm thi môn cùng với tiêu chuẩn học tiếp để quyết định sinh viên nào được học tiếp hay không

Tham chiếu Uc6 Đầu ra Danh sách sinh viên được lên lớp Tiền điều kiện Các đối tượng Sinh viên

Các đối tượng Lớp Các đối tượng Điểm tổng kết Các đối tượng Điểm thi Hậu điều kiện Các đối tượng Thuộc lớp mới được tạo ra

Liên kết giữa các đối tượng Sinh viên được học tiếp với các đối tượng Thuộc lớp mới được hình thành

Liên kết giữa các đối tượng Lớp với các đối tượng Thuộc lớp mới được hình thành

Liên kết giữa các đối tượng Học kỳ được học tiếp với các đối tượng Thuộc lớp mới được hình thành

Trách nhiệm Xem xét điểm tổng kết, điểm thi môn cùng với tiêu chuẩn học tiếp để quyết định sinh viên nào phải dừng học để trả nợ môn

Tham chiếu Uc6 Đầu ra Danh sách sinh viên phải dừng học Tiền điều kiện Các đối tượng Sinh viên

Các đối tượng Lớp Các đối tượng Điểm tổng kết Các đối tượng Điểm thi Hậu điều kiện

Trách nhiệm Xem xét điểm tổng kết, điểm thi môn cùng với tiêu chuẩn học tiếp để quyết định sinh viên nào phải thôi học

Tham chiếu Uc6 Đầu ra Danh sách sinh viên phải thôi học Tiền điều kiện Các đối tượng Sinh viên

Các đối tượng Lớp Các đối tượng Điểm tổng kết Các đối tượng Điểm thi Hậu điều kiện

3.5.17 Đăng ký học trả nợ

Tên Đăng ký học trả nợ

Trách nhiệm Cập nhật thông tin sinh viên đăng ký học trả nợ

Ngoại lệ về việc thông báo cập nhật thông tin sinh viên đăng ký học trả nợ đã được thiết lập Tiền điều kiện đã được xác định cho các đối tượng sinh viên và môn học liên quan.

Hậu điều kiện Một đối tượng Đăng ký học trả nợ mới được tạo ra

Liên kết giữa Sinh viên đăng ký học trả nợ với đối tượng Đăng ký học trả nợ mới được hình thành

Liên kết giữa môn học mà sinh viên đăng ký học trả nợ và đối tượng đăng ký học trả nợ mới đã được hình thành Tương tự, mối liên kết giữa học kỳ mà sinh viên chọn để học trả nợ cũng đã được thiết lập với đối tượng đăng ký học trả nợ mới.

3.5.18 Phân lớp học trả nợ

Tên Phân lớp học trả nợ

Trách nhiệm Chọn lớp học trả nợ cho sinh viên đăng ký học trả nợ

Tham chiếu Uc19 là một yếu tố quan trọng trong việc thông báo kết quả đầu ra Tiền điều kiện đã được xác định cho các đối tượng như sinh viên, lớp học và môn học Hậu điều kiện cũng cần được xem xét để đảm bảo tính chính xác và hiệu quả trong quá trình đánh giá.

3.5.19 Thu lệ phí học trả nợ

Tên Thu lệ phí học trả nợ

Trách nhiệm Ghi nhận những sinh viên đã nộp lệ phí học trả nợ theo môn học

Tham chiếu Uc18 Đầu ra Thông báo kết quả cập nhật Tiền điều kiện Các đối tượng sinh viên đăng ký học trả nợ

Hậu điều kiện Thuộc tính Da nop le phi được cập nhật

3.5.20 Thêm tiêu chuẩn làm khoá luận tốt nghiệp

Tên Thêm tiêu chuẩn làm khó luận tốt nghiệp Trách nhiệm Ghi nhận thông tin về tiêu chuẩn làm khóa luận mới

Tham chiếu Uc20 cho biết về việc thông báo kết quả thêm mới, bao gồm tiền điều kiện và đối tượng tiêu chuẩn làm KLTN Hậu điều kiện liên quan đến việc thiết lập thêm một đối tượng tiêu chuẩn làm KLTN.

3.5.21 Tìm kiếm tiêu chuẩn làm khoá luận tốt nghiệp

Tên Tìm kiếm tiêu chuẩn làm khoá luận tốt nghiệp Trách nhiệm Nhận thông tin tìm kiếm Tìm các Tieu chuan lam

KLTN thoả mãn điều kiện tìm kiếm Thông báo kết quả tìm kiếm

Tham chiếu Uc20 Đầu ra Danh sách các đối tượng Tieu chuan lam KLTN

3.5.22 Sửa tiêu chuẩn làm khoá luận tốt nghiệp

Tên Sửa tiêu chuẩn làm khóa luận TN Trách nhiệm Cập nhật thông tin mới về Tieu chuan lam KLTN

Nếu dữ liệu mới không chính xác hoặc người dùng xóa dữ liệu cũ mà không nhập đủ dữ liệu mới, hệ thống sẽ thông báo lỗi và yêu cầu nhập lại hoặc dừng lại Kết quả cập nhật sẽ được thông báo khi đã có đối tượng tiêu chuẩn làm KLTN cần sửa trong hệ thống.

Hậu điều kiện Các thuộc tính của một đối tượng Tieu chuan lam KLTN được sửa

Các liên kết giữa đối tượng Tieu chuan lam KLTN đó với các đối tượng khác được cập nhật

3.5.23 Xoá tiêu chuẩn làm khoá luận tốt nghiệp

Biểu đồ lớp

Trong thiết kế hướng đối tượng, thành phần thường bao gồm hai phần: thành phần ảo (abstraction) định nghĩa các chức năng và phần thực thi (implementation) thực hiện các chức năng đó Hai phần này liên kết qua quan hệ kế thừa, nhưng việc thay đổi abstraction có thể ảnh hưởng đến implementation Mẫu Bridge được áp dụng để tách biệt abstraction và implementation, cho phép chúng thay đổi độc lập và linh hoạt Thay vì phụ thuộc vào quan hệ kế thừa, hai phần này kết nối thông qua quan hệ chứa trong “aggregation”.

Trong hệ thống cơ sở dữ liệu cũ của trường, lớp đối tượng SINHVIEN (SV) lưu trữ thông tin sinh viên đã trở nên không đủ do số lượng sinh viên ngày càng tăng Để cải thiện quản lý thông tin, lớp đối tượng này cần được thay đổi thành PIMSV (personal info manager) Phương án đầu tiên là nhóm các đối tượng thừa kế từ SV, mỗi đối tượng sẽ đảm nhận chức năng liệt kê khác nhau, nhằm nâng cao tính tiện lợi trong việc quản lý thông tin sinh viên.

Hình 3.32 Sơ đồ thiết kế lớp sinh viên ban đầu

Giải pháp này không thực tế do có nhiều cách kết hợp để tạo thành kiểu SV mới Dù cùng hiển thị thông tin nhiệm vụ (TaskSV), nhưng có hai cách hiển thị khác nhau là unorderSV và prioritizedtaskSV Việc tạo ra kiểu mới yêu cầu thêm kiểu kế thừa, dẫn đến tốn thời gian và thiết kế phức tạp, đồng thời gây ra sự trùng lặp.

Với thiết kế hiệu quả, việc sử dụng các lớp NameSV, TaskSV, unorderSV và PrioritizedSV giúp tiết kiệm thời gian và chi phí Sự kết hợp này đảm bảo rằng các yêu cầu và chức năng được thực hiện chính xác và đầy đủ Một giải pháp khả thi là tách mỗi lớp đối tượng SV thành hai phần.

+ Svimterface (abstraction): Định nghĩa các chức năng hiển thị cơ bản như hiển thị theo tên, theo chức danh, theo nhiệm vụ

+ Svimplementation (implementation): Thực thi các cách hiển thị theo thứ tự, độ ưu tiên

Hình 3.33 Sơ đồ thiết kế lớp sinh viên sau khi biến đổi

Các chức năng bên SVInterface sẽ không làm gì hết mà uỷ quyền thực hiện việc hiển thị cho SVimplementer

3 Cấu trúc mẫu + Biểu đồ lớp chưa áp dụng mẫu

Hình 3.34 Sơ đồ thiết kế lớp sinh viên+ Biểu đồ lớp sau khi dùng mẫu

Hình 3.35 Sơ đồ thiết kế lớp sinh viên áp d ụng mẫu Bridge

4 Thuận lợi và hạn chế

Mẫu Bridge giúp hệ thống linh hoạt hơn bằng cách tách biệt thành phần trình diễn và thành phần thực thi Điều này cho phép dễ dàng thêm tính năng và chấp nhận các thay đổi mà không ảnh hưởng lớn đến các thành phần khác.

Mẫu Bridge là sự kết hợp giữa các thành phần Abstraction và Implementation độc lập Một vấn đề thường gặp khi sử dụng Bridge là sự không phân biệt rõ ràng trách nhiệm giữa Abstraction và Implementation trong quá trình thiết kế Khi mở rộng hệ thống, nếu trách nhiệm được đặt sai chỗ, sẽ dẫn đến việc không thực hiện đúng ngữ nghĩa như mong đợi Việc tái tổ chức lại hệ thống để khắc phục vấn đề này không chỉ tốn thời gian và chi phí, mà còn có nguy cơ gây ra thay đổi ở các thành phần khác.

3.6.2 Áp dụng mẫu Bridge thiết kế sơ đồ lớp cho ca sử dụng “Quản lý học phí”

+ Biểu đồ lớp trước khi áp dụng mẫu

Hình 3.36 Biểu đồ lớp “ Quản lý học phí”

+ Biểu đồ lớp sau khi áp dụng mẫu

Hình 3.37 Biểu đồ lớp có áp dụng mẫu “ Quản lý học phí”

3.6.3 Áp dụng Singleton thiết kế chức năng “Tìm kiếm sinh viên”

Mẫu Singleton được thiết kế để đảm bảo một lớp chỉ có thể tạo một thể hiện duy nhất

Trong quá trình triển khai chức năng "tìm kiếm sinh viên", chương trình cần đảm bảo rằng chỉ có một hộp thoại tìm kiếm duy nhất hiển thị trên màn hình, mặc dù tính năng này được sử dụng nhiều lần và trong nhiều tình huống khác nhau.

Lớp thiết kế có khả năng tự kiểm soát thể hiện của nó, đảm bảo không có thể hiện nào khác được tạo ra từ lớp này Thông thường, để tạo mới một đối tượng từ lớp, người dùng phải thông qua hàm dựng (constructor) Để ngăn chặn việc gọi hàm dựng, lớp cung cấp một phương thức tĩnh nhằm tạo mới đối tượng Giải pháp này giúp lớp duy trì chỉ một thể hiện duy nhất, và client có thể truy xuất instance thông qua hàm khởi tạo đã chỉ định.

Hình 3.38 Biểu đồ lớp “ Tìm kiếm”

Các thành phần tham gia

– Định nghĩa một phương thức tĩnh để User truy xuất đến thể hiện duy nhất của nó

– Phương thức này tuỳ từng trường hợp mà tạo mới hay trả về Instance tương ứng.

Mô tả chi tiết các lớp đối tượng

Stt Tên trường Tiêu đề Kiểu Miền giá trị Ràng buộc

1 MSV Mã sinh viên text < Khoá chính

2 Ten Tên sinh viên text

Ngày đăng: 17/12/2023, 02:07

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN