Professional Documents
Culture Documents
Bao Cao Tong Ket Mon UML
Bao Cao Tong Ket Mon UML
MỤC LỤC........................................................................................................2
DANH MỤC CÁC TỪ VIẾT TẮT................................................................3
CHƯƠNG I: GIỚI THIỆU............................................................................3
1.1. Việc chuyển từ lập trình hướng cấu trúc qua hướng đối tượng.............3
1.2. Ngôn ngữ UML......................................................................................4
CHƯƠNG II: MỘT SỐ SƠ ĐỒ TRONG UML...........................................5
2.1. Giới thiệu bài toán..................................................................................5
2.2. Sơ đồ Use Case.......................................................................................6
2.3. Mô tả một UC chi tiết.............................................................................7
2.4. Sơ đồ trình tự..........................................................................................8
2.5. Sơ đồ cộng tác........................................................................................8
2.6. Sơ đồ lớp................................................................................................9
2.7. Phát sinh mã.........................................................................................10
CHƯƠNG III: DESIGN PATTERN...........................................................11
3.1. Giới thiệu..............................................................................................11
3.2. Các design pattern................................................................................12
3.2.1. Singleton....................................................................................12
3.2.2. Factory method..........................................................................13
3.2.3. Strategy......................................................................................13
3.2.4. Observer....................................................................................14
3.2.5. Builder.......................................................................................15
3.2.6. Adapter......................................................................................15
3.2.7. State...........................................................................................16
CHƯƠNG IV: KẾT LUẬN..........................................................................17
TÀI LIỆU THAM KHẢO............................................................................17
DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Tên đầy đủ Nghĩa của tên
Procedure Oriented Lập trình hướng cấu
POP
Programming trúc
Object Oriented Lập trình hướng đối
OOP
Programming tượng
Ngôn ngữ mô hình hóa Unified Modeling
UML
thống nhất Language
UC Use Case Sơ đồ ca sử dụng
Sơ đồ UC xử lý đơn hàng:
II.3. Mô tả một UC chi tiết
UC Nhân viên quản lý sản phẩm
Tác nhân Nhân viên bán hàng
Mục đích Cập nhật thông tin sản phẩm vào hệ
thống
Mô tả Nhân viên đăng nhập vào hệ thống,
nhập đầy đủ các thông tin về sản
phẩm và lưu sản phẩm. Cập nhật
thông tin về giá và khuyến mại cho
các sản phẩm, đề xuất sản phẩm trên
trang chủ
Tiền điều kiện Nhân viên phải đăng nhập vào hệ
thống
Hậu điều kiện Cập nhật thông tin hàng hóa, khuyến
mại.
II.4. Sơ đồ trình tự
Sơ đồ trình tự nhân viên nhập sản phẩm:
// //
// //
// Generated by StarUML(tm) C++ // Generated by StarUML(tm) C+
Add-In + Add-In
// //
// @ Project : Untitled // @ Project : Untitled
// @ File Name : DanhMuc.h // @ File Name : DonHang.h
// @ Date : 25/09/2021 // @ Date : 25/09/2021
// @ Author : // @ Author :
// //
// //
#endif //_DONHANG_H
//
//
// Generated by StarUML(tm) C++ Add-In
//
// @ Project : Untitled
// @ File Name : ChiTietDonHang.h
// @ Date : 25/09/2021
// @ Author :
//
//
#if !defined(_CHITIETDONHANG_H)
#define _CHITIETDONHANG_H
class ChiTietDonHang {
public:
int MaChiTiet;
int MaDonHang;
int MaSanPham;
int SoLuong;
int DonGia;
};
#endif //_CHITIETDONHANG_H
III.2.3. Strategy
Strategy Pattern được sử dụng trong các tình huống các thuật toán hoặc
hành vi của class là các hành vi động (có thể thay đổi). Điều này có nghĩa là
cả hành vi và thuật toán đều có thể thay đổi trong thời gian chạy, dựa vào đầu
vào của client.
Tương tự như State Pattern, Strategy Pattern sử dụng nhiều object xác định,
tùy thuộc vào các mục tiêu khác nhau.
Khi nào nên sử dụng strategy pattern:
Chúng ta có thể thấy kiểu design phù hợp cho trường hợp cần có nhiều
kiểu xử lý cho một yêu cầu nào đó, và có thể thay đổi chúng trong
runtime
Có nhiều class tương tự nhau nhưng khác nhau về ở một vài xử lý nào
đó. Tính giá sản phẩm ở trên là một ví dụ
Tách logic xử lý của một class nào đó và ẩn nó trong một class mới
Cách thức implement
Xác định logic cần tách ra 1 nhóm strategy riêng từ class gốc
Định nghĩa strategy
Tạo các concrete class của strategy interface trên
Ở class gốc, tạo 1 reference tới strategy interface (không phải concrete
class). Cung cấp 1 cách thức để khởi tạo concrete class cho class gốc.
III.2.4. Observer
Observer Pattern được sử dụng để theo dõi trạng thái của một object
nhất định. Thường là trong một nhóm hoặc một mối quan hệ một - nhiều.
Trong những trường hợp như vậy, hầu hết thời gian và trạng thái thay
đổi của một object sẽ ảnh hưởng đến trạng thái của phần còn lại. Vì vậy, phải
có một hệ thống ghi nhận lại những thay đổi, và thông báo cho các object
khác.
III.2.5. Builder
Builder pattern là một trong những Design Pattern thuộc nhóm
Creational Design Pattern được sử dụng để xây dựng các object phức tạp với
số lượng lớn các class và tham số. Nó thật sự không hữu ích lắm trong các
class nhỏ, đơn giản không có nhiều constructor.
Khi một chương trình có nhiều class, tham số, cũng như có nhiều
constructor thì việc sử dụng Factory Pattern hay Abstract Factory Pattern thì
sẽ rất phức tạp. Vì vậy chúng ta có thể sử dụng Builder Pattern để khắc phục.
III.2.6. Adapter
Adapter Pattern là một mẫu cấu trúc (Structural Pattern).
Adapter Pattern cho phép các interface không liên quan tới nhau có thể làm
việc cùng nhau.
Đối tượng giúp kết nối các interface gọi là Adapter.
Ví dụ trong cuộc sống:
Cái sạc điện thoại hoạt động giống như adapter kết nối giữa nguồn điện
của điện thoại là 3V với nguồn điện lưới là 240V.
Cái phích cắm điện có 3 chân nhưng ổ điện chỉ có 2 lỗ thì phải dùng
thêm 1 cái bộ chuyển để chuyển từ 3 chân sang 2 chân – bộ chuyển này
cũng được gọi là adapter…
Sử dụng adapter:
Client đưa ra yêu cầu cho adapter bằng cách gọi một phương thức trên
nó bằng giao diện đích.
Adapter dịch yêu cầu đó trên adapter bằng giao diện của adapter.
Client nhận được kết quả của cuộc gọi và không biết về sự hiện diện
của adapter.
The adapter pattern chuyển đổi giao diện của một lớp thành một giao
diện khác mà client mong đợi, nó cho phép các lớp làm việc cùng nhau
mà các giao diện đó không tương thích với nhau.
Ví dụ sử dụng Adapter Pattern:
Trong C# để kết nối đến SQL Server thông qua chuỗi kết nối chứa
thông tin database, sau đó hiển thị lên bảng sẽ sử dụng DataGridView để mọi
thay đổi trên bảng có thể chuyển thành truy vẫn SQL cập nhật vào database
thông qua SqlAdapter biến sự thay đổi trên giao diện bảng thành code SQL
cập nhật lên SQL Server.
III.2.7. State
State Pattern là một trong những mẫu thiết kế thuộc nhóm Behavioral
Design Patterns cho phép một object có thể biến đổi hành vi của nó khi có
những sự thay đổi trạng thái nội bộ.
Mẫu thiết kế này có thể được hiểu gần giống như Strategy, nó có thể
chuyển đổi các chiến lược thông qua các phương thức được định nghĩa trong
interface.
Ứng dụng của State Pattern:
State Pattern sử dụng trong các trường hợp như sau:
Hành vi của một đối tượng phụ thuộc vào trạng thái của nó. Tại thời
điểm runtime, khi đối tượng thực hiện hành vi, trạng thái của nó sẽ thay đổi
theo.
Đối tượng có nhiều trường hợp sử dụng với các hành vi của nó, nhiều
hành vi phụ thuộc vào trạng thái của đối tượng. Hay nói cách khác, đối tượng
có nhiều trạng thái, mỗi trạng thái có những hành vi khác nhau.
Ví dụ về state pattern trong React Js:
Ví dụ như khi có một form nhập input type text mỗi trường trong Form
sẽ giữ lại trạng thái của nó dựa trên dữ liệu đầu vào của người dùng (user
input). Nếu đầu vào của người dùng thay đổi, trạng thái của các text input sẽ
thay đổi, đây là nguyên nhân cần re-rendering của component và tất cả các
component con của nó. Và khi này chúng ta sẽ sử dụng state.
Sử dụng state trong component:
CHƯƠNG IV: KẾT LUẬN
Ngôn ngữ UML giúp giải quyết các vấn đề về thiết kế hệ thống trong
quá trình phát triển phần mềm khi lập trình theo hướng đối tượng. Nhờ vào
lập trình hướng đối tượng việc phát triển phần mềm tập trung vào xử lý các
thao tác trên đối tượng giảm thiểu gánh nặng về các xử lý thủ tục trên máy
tính, giúp xây dựng các hệ thống hỗ trợ nhiều thiết bị và đa nền tảng. UML
cũng cung cấp nhiều giải pháp để thiết kế hệ thống từ bước tiếp cận đến bước
lập trình và kiểm thử phần mềm. Design Pattern giúp giải quyết một số bài
toán thường gặp trong lập trình hướng đối tượng cung cấp hướng dẫn để giải
quyết các vấn đề đó.
Tiếng Anh
[3]. https://www.visual-paradigm.com/guide/uml-unified-modeling-
language/what-is-uml/
[4]. https://refactoring.guru/design-patterns/what-is-pattern
[5]. https://www.oodesign.com/
[6]. https://medium.com/educative/the-7-most-important-software-design-
patterns-d60e546afb0e
Ý KIẾN CỦA NGƯỜI HƯỚNG DẪN
Nhận xét:
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
Đối với khóa luận tốt nghiệp (Đánh dấu và ký tên vào ý kiến chọn lựa
sau):
Ký tên
Tên đồ án: MỘT SỐ MẪU THIẾT KẾ TRONG PHÁT TRIỂN PHẦN MỀM
HƯỚNG ĐỐI TƯỢNG
Điểm:
SINH VIÊN
XÁC NHẬN
(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)