PHÂN TÍCH và THIẾT kế THEO HƯỚNG đối TƯỢNG UNIFIED MODELING LANGUAGE bài tập một số mẫu THIẾT kế TRONG PHÁT TRIỂN PHẦN mềm HƯỚNG đối TƯỢNG

20 18 0
PHÂN TÍCH và THIẾT kế THEO HƯỚNG đối TƯỢNG UNIFIED MODELING LANGUAGE bài tập một số mẫu THIẾT kế TRONG PHÁT TRIỂN PHẦN mềm HƯỚNG đối TƯỢNG

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC TÂY NGUYÊN KHOA KHTN & CN BÁO CÁO BÀI TẬP MƠN: PHÂN TÍCH VÀ THIẾT KẾ THEO HƯỚNG ĐỐI TƯỢNG UNIFIED MODELING LANGUAGE BÀI TẬP: MỘT SỐ MẪU THIẾT KẾ TRONG PHÁT TRIỂN PHẦN MỀM HƯỚNG ĐỐI TƯỢNG GVHD: ThS Vũ Anh Tuấn Sinh viên: Kiều Ngọc Hồng Hịa Lớp: Cơng nghệ thơng tin K18 Đắk Lắk – 09/2021 18103041 MỤC LỤC MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT CHƯƠNG I: GIỚI THIỆU 1.1.Việc chuyển từ lập trình hướng cấu trúc 1.2 Ngôn ngữ UML CHƯƠNG II: MỘT SỐ SƠ ĐỒ TRONG UML 2.1.Giới thiệu toán 2.2.Sơ đồ Use Case 2.3.Mô tả UC chi tiết 2.4.Sơ đồ trình tự 2.5.Sơ đồ cộng tác 2.6.Sơ đồ lớp 2.7.Phát sinh mã CHƯƠNG III: DESIGN PATTERN 3.1.Giới thiệu 3.2.Các design pattern 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 CHƯƠNG IV: KẾT LUẬN TÀI LIỆU THAM KHẢO DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt POP OOP UML UC CHƯƠNG I: GIỚI THIỆU I.1 Việc chuyển từ lập trình hướng cấu trúc qua hướng đối tượng Lập trình hướng cấu trúc: Lập trình hướng cấu trúc hay cịn gọi lập trình hướng thủ tục (Procedure Oriented Programming - POP): kỹ thuật lập trình truyền thống, chương trình chia thành hàm (chương trình con) Mỗi chương trình cịn chia nhiều chương trình khác để đơn giản hóa cơng việc chúng.[1] Lập trình hướng đối tượng: Lập trình hướng đối tượng (Object Oriented Programming – OOP): kỹ thuật lập trình, chương trình chia thành phần nhỏ gọi đối tượng (Object) Đối tượng lập trình hướng đối tượng tương ứng với thực thể tốn, có thuộc tính (attribute), hành động (method) Các đối tượng tương tác với trao đổi liệu qua lại với nhau.[1] Việc chuyển từ lập trình hướng cấu trúc qua hướng đối tượng: POP hướng tới việc thực thi, gắn chặt với kiến trúc vi xử lý, chúng kiểu chuyển đổi cho người hiểu ngơn ngữ máy tính Thế chúng ln tồn tính Tuyến tính việc thực thi POP sử dụng ngơn ngữ bậc thấp, can thiệp trực tiếp tới vi xử lý, vi điều khiển OOP hướng tới việc phát triển ứng dụng, hệ thống thông tin phục vụ nhu cầu người Chúng bỏ qua lớp giao tiếp với máy mà giúp người phát triển ứng dụng cách nhanh chóng mà khơng cần quan tâm đến q trình xử lý thơng tin máy tính Vậy nên OOP thân thiện với người dễ dàng học tập phát triển phần mềm Khi chuyển từ lập trình hướng cấu trúc sang hướng đối tượng cho phép xây dựng hệ thống lớn với quan hệ liên quan đến đối tượng, giúp việc xử lý tập trung vào tương tác đối tượng Việc phân tách chức hệ thống thông tin tập trung vào đối tượng gần với giới thực so với logic thủ tục lập trình hướng cấu trúc Mặt khác, hướng đối tượng cho phép tái sử dụng lại chương trình, kế thừa phát triển từ lớp tính chất kế thừa, đa hình, tính bảo mật cao nhờ vào modifier: Private, Public, Protected, Default Lập trình theo hướng đối tượng cho phép điều khiển liệu hạn chế quyền truy cập đối tượng khác, lập trình theo hướng cấu trúc bảo mật hàm gọi lại đâu khả tái sử dụng đoạn chương trình khơng cao OOP.[2] I.2 Ngơn ngữ UML Ngơn ngữ mơ hình hóa thống - Unified Modeling Language, viết tắt UML ngơn ngữ mơ hình gồm ký hiệu đồ họa mà phương pháp hướng đối tượng sử dụng để thiết kế hệ thống thông tin cách nhanh chóng Cách xây dựng mơ hình UML phù hợp mô tả hệ thống thông tin cấu trúc hoạt động Cách tiếp cận theo mơ hình UML giúp ích nhiều cho người thiết kế xây dựng hệ thống thông tin người sử dụng UML tạo nên nhìn bao quát đầy đủ hệ thống thơng tin dự định xây dựng Cách nhìn bao quát giúp nắm bắt trọn vẹn yêu cầu người dùng, phục vụ từ giai đoạn phân tích đến việc thiết kế, thẩm định kiểm tra sản phẩm ứng dụng công nghệ thông tin Các mô hình hướng đối tượng lập sở cho việc ứng dụng chương trình tự động sinh mã ngơn ngữ lập trình hướng đối tượng, chẳng hạn ngôn ngữ C++, C#, Java, PHP, … Phương pháp mơ hình hữu dụng lập trình hướng đối tượng Các mơ hình sử dụng bao gồm Mơ hình đối tượng (mơ hình tĩnh) Mơ hình động UML sử dụng hệ thống ký hiệu thống biểu diễn thành phần mô hình (model elements) Tập hợp thành phần mơ hình tạo thành Sơ đồ UML (UML diagrams) Có loại sơ đồ UML chủ yếu sau: Sơ đồ lớp (Class Diagram) Sơ đồ đối tượng (Object Diagram) Sơ đồ tình sử dụng (Use Cases Diagram) Sơ đồ trình tự (Sequence Diagram) Sơ đồ cộng tác (Collaboration Diagram Composite Structure Diagram) Sơ đồ trạng thái (State Machine Diagram) Sơ đồ thành phần (Component Diagram) Sơ đồ hoạt động (Activity Diagram) Sơ đồ triển khai (Deployment Diagram) Sơ đồ gói (Package Diagram) Sơ đồ liên lạc (Communication Diagram) Sơ đồ tương tác (Interaction Overview Diagram - UML 2.0) Sơ đồ phối hợp thời gian (Timing Diagram - UML 2.0) Trong sơ đồ thường dùng cho người phát triển phần mềm Use Case, sơ đồ trình tự, cộng tác sơ đồ lớp.[3] CHƯƠNG II: MỘT SỐ SƠ ĐỒ TRONG UML II.1 Giới thiệu toán Đề tài: Thiết kế trang web bán thiết bị điện tử công nghệ Mô tả chi tiết: Trang web bán thiết bị điện tử công nghệ, kinh doanh thiết bị công nghệ điện thoại, laptop, phụ kiện công nghệ, linh kiện máy tính hình, chuột, bàn phím Cung cấp cho khách hàng chức tìm kiếm lựa chọn sản phầm, đăng ký đăng nhập, thêm vào giỏ hàng toán Đối với người quản lý nhân viên cung cấp chức trang quản trị, quản lý thông tin khách hàng đăng ký, quản lý sản phẩm, xử lý đơn hàng thống kê doanh thu II.2 Sơ đồ Use Case Sơ đồ UC khách hàng truy cập vào trang web Sơ đồ UC quản lý sản phẩm: Sơ đồ UC xử lý đơn hàng: II.3 Mô tả UC chi tiết UC Nhân viên quản lý sản phẩm Tác nhân Mục đích Mơ tả Tiền điều kiện Hậu điều kiện II.4 Sơ đồ trình tự Sơ đồ trình tự nhân viên nhập sản phẩm: II.5 Sơ đồ cộng tác Sơ đồ cộng tác nhập sản phẩm: II.6 Sơ đồ lớp II.7 Phát sinh mã / // // / Generated by StarUML(tm) C+ + Add-In / / / / @ @ @ @ Project : Untitled File Name : NguoiDung.h Date : 25/09/2021 Author : // // class NguoiDung { public: int MaNguoiDung; int HoTen; int TenDangNhap; int MatKhau; int Email; int VaiTro; int DiaChi; int SoDienThoai; int NgaySinh; }; // // / / @ Project : Untitled / @ File Name : DanhMuc.h / @ Date : 25/09/2021 / @ Author : // // #if !defined(_DANHMUC_H) #define _DANHMUC_H #if !defined(_NGUOIDUNG_H) #define _NGUOIDUNG_H #endif / Generated by StarUML(tm) C++ Add-In //_NGUOIDUNG_H class DanhMuc { public: int MaDanhMuc; int TenDanhMuc; }; #endif //_DANHMUC_H // // / In #endif Generated by StarUML(tm) C++ Add/ / / / / @ @ @ @ Project : Untitled File Name : San pham.h Date : 25/09/2021 Author : // // #if !defined(_SAN PHAM_H) #define _SAN PHAM_H class San public: int int int int int int int int int int }; //_SAN PHAM_H // // / Generated by StarUML(tm) C+ + Add-In / / @ Project : Untitled / @ File Name : DonHang.h / @ Date : 25/09/2021 / @ Author : // // #if !defined(_DONHANG_H) #define _DONHANG_H pham { MaSanPham; TenSanPham; MoTaChiTiet; Gia; GhiChu; SoLuong; Model; KhoiLuong; NhaCungCap; MaDanhMuc; class DonHang { public: int MaDonHang; int MaKhachHang; int SoLuong; int TinhTrang; int TongGiaTri; int NgayDat; }; #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 CHƯƠNG III: DESIGN PATTERN III.1 Giới thiệu Theo định nghĩa, design pattern giải pháp tái sử dụng cho vấn đề thường xảy (trong trình thiết kế phần mềm) Các design pattern bắt đầu trở thành phương pháp hay áp dụng lặp lặp lại cho vấn đề tương tự gặp phải trường hợp khác Chúng trở nên phổ biến sau chúng tổng hợp sách Gang Of Four năm 1994 Ban đầu xuất với design pattern dành cho C ++, design pattern phổ biến Java C # áp dụng tất ngôn ngữ hướng đối tượng Trong ngôn ngữ chức Scala, số mẫu định khơng cịn cần thiết nữa.[5] Các design pattern giải pháp điển hình cho vấn đề thường xảy thiết kế phần mềm Chúng giống thiết kế tạo sẵn tùy chỉnh để giải vấn đề thiết kế lặp lại code Các design pattern thể chép vào chương trình hàm hay thư viện có sẵn Design pattern đoạn code cụ thể, mà khái niệm chung để giải vấn đề cụ thể Design pattern cung cấp hướng dẫn triển khai giải pháp phù hợp với thực tế chương trình khác Các design pattern thường bị nhầm lẫn với thuật tốn, hai khái niệm mô tả giải pháp điển hình cho số vấn đề biết Mặc dù thuật tốn ln xác định tập hợp hành động rõ ràng đạt số mục tiêu, design pattern mô tả cấp cao giải pháp Code design pattern áp dụng cho hai chương trình khác khác Một thuật tốn tương tự công thức nấu ăn: hai có bước rõ ràng để đạt mục tiêu Mặt khác, design pattern giống thiết kế: bạn xem kết tính nó, thứ tự thực xác tùy thuộc vào bạn.[4] III.2 Các design pattern III.2.1 Singleton Single Pattern design pattern đảm bảo class có instance (khởi tạo) cung cấp cách toan câu để truy cấp tới instance Ví dụ sử dụng singleton Android: Khi ứng dụng Android sử dụng mạng liên tục, cách hiệu tạo kết nối truy cập để kéo dài thời gian truy cập ứng dụng, nghĩa kết nối không bị khởi tạo lại nhiều lần Cách tiếp cận đề xuất triển khai lớp singleton có RequestQueue chức đóng gói chức khác Volley RequestQueue phải khởi tạo với Application, Activity (màn hình hoạt động) Điều đảm bảo tùy chọn RequestQueue tồn suốt thời gian ứng dụng hoạt động, thay tạo lại hoạt động tạo lại (ví dụ: người dùng xoay thiết bị) III.2.2 Factory method Factory method pattern thuộc nhóm creational patterns Định nghĩa interface giúp client tạo object ủy quyền cho concreate factory để xác định class trả cho client Được sử dụng với mục đích đưa tồn logic việc tạo object vào factory, che giấu logic việc khởi tạo, giảm phụ thuộc nhằm tăng tính mở rộng III.2.3 Strategy Strategy Pattern sử dụng tình thuật tốn hành vi class hành vi động (có thể thay đổi) Điều có nghĩa hành vi thuật tốn thay đổi thời gian chạy, dựa vào đầu vào client Tương tự State Pattern, Strategy Pattern sử dụng nhiều object xác định, tùy thuộc vào mục tiêu khác Khi nên sử dụng strategy pattern: Chúng ta thấy kiểu design phù hợp cho trường hợp cần có nhiều kiểu xử lý cho yêu cầu đó, thay đổi chúng runtime Có nhiều class tương tự khác vài xử lý Tính giá sản phẩm ví dụ Tách logic xử lý class ẩn class Cách thức implement Xác định logic cần tách nhóm strategy riêng từ class gốc Định nghĩa strategy Tạo concrete class strategy interface Ở class gốc, tạo reference tới strategy interface (không phải concrete class) Cung cấp cách thức để khởi tạo concrete class cho class gốc III.2.4 Observer Observer Pattern sử dụng để theo dõi trạng thái object định Thường nhóm mối quan hệ - nhiều Trong trường hợp vậy, hầu hết thời gian trạng thái thay đổi object ảnh hưởng đến trạng thái phần cịn lại Vì vậy, phải có hệ thống ghi nhận lại thay đổi, thông báo cho object khác III.2.5 Builder Builder pattern Design Pattern thuộc nhóm Creational Design Pattern sử dụng để xây dựng object phức tạp với số lượng lớn class tham số Nó thật khơng hữu ích class nhỏ, đơn giản khơng có nhiều constructor Khi chương trình có nhiều class, tham số, có nhiều constructor việc sử dụng Factory Pattern hay Abstract Factory Pattern phức tạp Vì sử dụng Builder Pattern để khắc phục III.2.6 Adapter Adapter Pattern mẫu cấu trúc (Structural Pattern) Adapter Pattern cho phép interface khơng liên quan tới làm việc Đối tượng giúp kết nối interface gọi Adapter Ví dụ sống: Cái sạc điện thoại hoạt động giống adapter kết nối nguồn điện điện thoại 3V với nguồn điện lưới 240V Cái phích cắm điện có chân ổ điện có lỗ phải dùng thêm chuyển để chuyển từ chân sang chân – chuyển gọi adapter… Client đưa yêu cầu cho adapter cách gọi phương thức giao diện đích Adapter dịch u cầu adapter giao diện adapter Client nhận kết gọi diện adapter The adapter pattern chuyển đổi giao diện lớp thành giao diện khác mà client mong đợi, cho phép lớp làm việc mà giao diện khơng tương thích với 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ử dụng DataGridView để thay đổi bảng chuyển thành truy SQL cập nhật vào database thông qua SqlAdapter biến thay đổi giao diện bảng thành code SQL cập nhật lên SQL Server III.2.7 State State Pattern mẫu thiết kế thuộc nhóm Behavioral Design Patterns cho phép object biến đổi hành vi có thay đổi trạng thái nội Mẫu thiết kế hiểu gần giống Strategy, chuyển đổi chiến lược thơng qua phương thức định nghĩa interface Ứng dụng State Pattern: State Pattern sử dụng trường hợp sau: Hành vi đối tượng phụ thuộc vào trạng thái Tại thời điểm runtime, đối tượng thực hành vi, trạng thái thay đổi theo Đối tượng có nhiều trường hợp sử dụng với hành vi nó, nhiều hành vi phụ thuộc vào trạng thái đối tượng Hay nói cách khác, đối tượng có nhiều trạng thái, trạng thái có hành vi khác Ví dụ state pattern React Js: Ví dụ có form nhập input type text trường Form giữ lại trạng thái dựa liệu đầu vào người dùng (user input) Nếu đầu vào người dùng thay đổi, trạng thái text input thay đổi, nguyên nhân cần re-rendering component tất component Và sử dụng state Sử dụng state component: CHƯƠNG IV: KẾT LUẬN Ngôn ngữ UML giúp giải vấn đề thiết kế hệ thống trình phát triển phần mềm 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ý thao tác đối tượng giảm thiểu gánh nặng xử lý thủ tục máy tính, giúp xây dựng hệ thống hỗ trợ nhiều thiết bị đa tảng UML 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 kiểm thử phần mềm Design Pattern giúp giải số tốn thường gặp lập trình hướng đối tượng cung cấp hướng dẫn để giải vấn đề TÀI LIỆU THAM KHẢO Tiếng Việt [1] [2] nao Tiếng Anh https://stackjava.com/faq/oop-vs-pop.html https://codelearn.io/sharing/pop-va-oop-khac-nhau-nhu-the- https://www.visual-paradigm.com/guide/uml-unifiedmodeling-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[3] software-design-patterns-d60e546afb0e Ý KIÊN CỦA NGUỜI HUƠNG DÂN Nhạn xét: Đôi vơi khóa luạn tôt nghiẹp (Đanh dâu sau): va ky ten vao y kiên chon lưa Ký tên Đồng ý thông qua báo cáo Không đồng ý thông qua báo cáo Buon Ma Thuọt, thang nam 2021 NGUỜI HUƠNG DÂN (Ky va ghi ro ho ten) Ho va ten sinh vien: Hoàng Ngọc Thành Can bọ huơng dân (ghi ro hoc ham hoc vi): Thạc sĩ Vũ Anh Tuấn Ten đồ á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: Đak Lak, thang nam 2021 SINH VIÊN (Ky va ghi ro ho ten) CAN BỌ HUƠNG DÂN (Ky va ghi ro ho ten) ... IV: KẾT LUẬN Ngôn ngữ UML giúp giải vấn đề thiết kế hệ thống trình phát triển phần mềm 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... trình hướng đối tượng: Lập trình hướng đối tượng (Object Oriented Programming – OOP): kỹ thuật lập trình, chương trình chia thành phần nhỏ gọi đối tượng (Object) Đối tượng lập trình hướng đối tượng. .. ngôn ngữ hướng đối tượng Trong ngôn ngữ chức Scala, số mẫu định khơng cịn cần thiết nữa.[5] Các design pattern giải pháp điển hình cho vấn đề thường xảy thiết kế phần mềm Chúng giống thiết kế tạo

Ngày đăng: 03/03/2022, 19:50

Từ khóa liên quan

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

Tài liệu liên quan