CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1.Tổng quan về odoo - Odoo [1] là một phần mềm quản lý tất cả trong một, cung cấp một loạt các ứng dụng kinh doanh tạo thành một bộ hoàn chỉnh các ứng dụng quản lý doanh nghiệp, nhắm đến các công ty thuộc mọi quy mô. Odoo là một phần mềm kinh doanh tất cả trong một bao gồm CRM, trang web/ thương mại điện tử, thanh toán, kế toán, xuất kho, kho- quản lý dự án và hàng tồn kho. - Từ khi thành lập, Odoo SA / OpenERP SA đã phát hành phần mềm dưới dạng nguồn mở nhưng bắt đầu với phiên bản V9.0, công ty đã chuyển sang mô hình lõi mở cung cấp phần mềm doanh nghiệp độc quyền dựa trên thuê bao và phần mềm lưu trữ đám mây dưới dạng dịch vụ và một phiên bản cộng đồng cắt giảm. - Lợi ích chính của Odoo là kiến trúc mở rộng của nó.
Một số lượng lớn các dịch giả tự do và tổ chức phát triển ứng dụng hoặc modul Odoo và đặt chúng trên thị trường để bán hoặc được tải xuống miễn phí. Các thành phần chính của Odoo là khung OpenObject, khoảng 30 mô-đun lõi (còn gọi là mô-đun chính thức) và hơn 5000 mô- đun cộng đồng. Hầu hết các mô-đun Odoo đều có sẵn trên thị trường của Odoo SA nơi cộng đồng có thể mua hoặc tải xuống nhiều mô-đun miễn phí. Theo ngày 9 tháng 7 năm 2018,15759 Ứng dụng hoặc mô-đun đã được tìm thấy trên thị trường trong các danh mục khác nhau.
Hầu hết các mô-đun được phục vụ trong tất cả các phiên bản hoạt động của 9. - Odoo sử dụng Python scripting và PostgreSQL cơ sở dữ liệu. Phần mềm được truy cập thông qua trình duyệt web trong ứng dụng một trang được phát triển bằng JavaScript. Kho lưu trữ phiên bản Cộng đồng có trên GitHub.
SVTH: Phan Thị Quỳnh Hương 4 Khóa Luận Tốt Nghiệp GVHD: ThS. Nguyễn Hữu Hoàng Thọ Hình 1: Giao diện Odoo 1.Tổng quan về ngôn ngữ lập trình Python - Python [2] là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, được tạo ra bởi Guido van Rossum - Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. - Nó được sử dụng cho: Phát triển web (phía máy chủ) Phát triển phần mềm Toán học Kịch bản hệ thống - Python có thể làm gì Python có thể được sử dụng trên một máy chủ để tạo các ứng dụng web.
Python có thể được sử dụng cùng với phần mềm để tạo quy trình công việc. Python có thể kết nối với các hệ thống cơ sở dữ liệu. Nó cũng có thể đọc và sửa đổi các tập tin. Python có thể được sử dụng để sử lý dữ liệu lớn và thực hiện toán học phức tạp.
SVTH: Phan Thị Quỳnh Hương 5 Khóa Luận Tốt Nghiệp GVHD: ThS. Nguyễn Hữu Hoàng Thọ Python có thể được sử dụng để tạo mẫu nhanh hoặc để phát triển phần mềm sẵn sang sản xuất. - Tại sao nên chọn Python Python hoạt động trên các nền tảng khác nhau (Windows, Mac, Linux, Paspberry Pi, …) Python có một cú pháp đơn giản tương tự như ngôn ngữ tiếng Anh. Python có cú pháp cho phép các nhà phát triển viết chương trình với ít dòng hơn một số ngôn ngữ lập trình khác.
Python chạy trên một hệ thống thông dịch, nghĩa là mã có thể được thực hiện ngay khi được viết. Điều này có nghĩa là tạo mẫu có thể rất nhanh. Python có thể được xử lý theo cách thủ tục, cách hướng dẫn đối tượng hoặc cách chức năng. - Cú pháp Python so với các ngôn ngữ lập trình khác Python được thiết kế để dễ đọc và có một số điểm tương đồng với ngôn ngữ tiếng Anh với ảnh hưởng từ toán học.
Python sử dụng các dòng mới để hoàn thành 1 lệnh, trái ngược với các ngôn ngữ lập trình khác thường sử dụng dấm chấm phẩy hoặc dấu ngoặc đơn Python dựa vào thụt lề, sử dụng khoảng trắng, để xác định phạm vi, chẳng hạn như phạm vi của các vòng lặp, chức năng và các lớp. Các ngôn ngữ lập trình khác thường sử dụng dấu ngoặc nhọn cho mục đích này.Công cụ lập trình Pycharm - Pycharm [3] là một môi trường phát triển tích hợp (IDE) được sử dụng trong lập trình máy tính , đặc biệt dành cho ngôn ngữ Python. - Hỗ trợ và phân tích mã hóa , với việc hoàn thành mã , tô sáng cú pháp và lỗi, tích hợp kẻ nói dối và sửa lỗi nhanh - Điều hướng dự án và mã: chế độ xem dự án chuyên biệt, chế độ xem cấu trúc tệp và chuyển nhanh giữa các tệp, lớp, phương thức và tập quán - Tái cấu trúc Python : bao gồm đổi tên, phương thức trích xuất, giới thiệu biến, giới thiệu hằng, kéo lên, đẩy xuống và các thứ khác - Hỗ trợ cho các khung web: Django , web2py và Flask SVTH: Phan Thị Quỳnh Hương 6 Khóa Luận Tốt Nghiệp GVHD: ThS. Nguyễn Hữu Hoàng Thọ - Trình gỡ lỗi Python tích hợp - Kiểm thử đơn vị tích hợp , với phạm vi bảo hiểm mã theo từng dòng - Phát triển Python của Google App Engine - Tích hợp kiểm soát phiên bản: giao diện người dùng thống nhất cho Mercurial , Git , Subversion , Perforce và CVS với các thay đổi và hợp nhất.
Hình 2: Giao diện PyCharm Hình 3: Giao diện code Python trong Pycharm SVTH: Phan Thị Quỳnh Hương 7 Khóa Luận Tốt Nghiệp GVHD: ThS. Nguyễn Hữu Hoàng Thọ 1.Tổng quan về hệ cơ sở dữ liệu PGAdmin - PostgreSQL [4] là một hệ thống quản trị cơ sở dữ liệu quan hệ-đối tượng (object-relational database management system) có mục đích chung, hệ thống cơ sở dữ liệu mã nguồn mở tiên tiến nhất hiện nay. - PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX. Tuy nhiên, PostgreSQL sau đó cũng được điều chỉnh linh động để có thể chạy được trên nhiều nền tảng khác nhau như Mac OS X, Solaris và Windows.
- Là hệ thống quản lý cơ sở dữ liệu quan hệ đối tượng, PostgreSQL cho phép thêm vào các tính năng tùy chỉnh được phát triển bằng các ngôn ngữ chương trình khác nhau như C/C, Java,. - PostgreSQL là một phần mềm mã nguồn mở miễn phí. Mã nguồn của phần mềm khả dụng theo license của PostgreSQL, một license nguồn mở tự do. Theo đó, bạn sẽ được tự do sử dụng, sửa đổi và phân phối PostgreSQL dưới mọi hình thức.
- PostgreSQL tuân theo tiêu chuẩn SQL nhưng không mâu thuẫn với các tính năng truyền thống hay có thể dẫn đến các quyết định kiến trúc gây hại. Nhiều tính năng theo tiêu chuẩn SQL được hỗ trợ, tuy nhiên đôi khi có thể có cú pháp hoặc hàm hơi khác một chút. - Trên thị trường, có nhiều công ty đã xây dựng và cung cấp các sản phẩm, giải pháp sử dụng PostgreSQL. Một số công ty nổi bật trong số đó là Apple, Fujitsu, Red Hat, Cisco, Juniper Network, v.
Hình 4: Giao diện PGAdmin 4 SVTH: Phan Thị Quỳnh Hương 8 Khóa Luận Tốt Nghiệp GVHD: ThS. Nguyễn Hữu Hoàng Thọ 1.Biểu đồ UML - UML [5] là ngôn ngữ mô hình hóa thống nhất (tiếng Anh: Unified Modeling Language, viết tắt thành UML), gồm các kí hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh chóng - Cách xây dựng các mô hình trong UML phù hợp mô tả các hệ thống thông tin cả về cấu trúc cũng như hoạt động. Cách tiếp cận theo mô hình của UML giúp ích rất nhiều cho những người thiết kế và thực hiện hệ thống thông tin cũng như những người sử dụng nó; tạo nên một cái nhìn bao quát và đầy đủ về hệ thống thông tin dự định xây dựng. Cách nhìn bao quát này giúp nắm bắt trọn vẹn các yêu cầu của người dùng; phục vụ từ giai đoạn phân tích đến việc thiết kế, thẩm định và kiểm tra sản phẩm ứng dụng công nghệ thông tin.
- UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các Phần tử mô hình (model elements). Tập hợp các phần tử mô hình tạo thành các Sơ đồ UML (UML diagrams). Có các loại sơ đồ UML chủ yếu sau: - Sơ đồ lớp (Class Diagram) - Sơ đồ đối tượng (Object Diagram) - Sơ đồ tình huống sử dụng (Use Case Diagram) - Sơ đồ trình tự (Sequence Diagram) - Sơ đồ cộng tác (Collaboration Diagram hay là 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) SVTH: Phan Thị Quỳnh Hương 9 Khóa Luận Tốt Nghiệp GVHD: ThS. Nguyễn Hữu Hoàng Thọ 1.Sơ lược về sơ đồ Use Case 1.Khái niệm biểu đồ Use Case Use Case Diagram [6] chỉ ra một số lượng các tác nhân ngoại cảnh và mối liên kết của chúng đối với Use case mà hệ thống cung cấp.
Một Use case là một lời miêu tả của một chức năng mà hệ thống cung cấp. Lời miêu tả Use case thường là một văn bản tài liệu, nhưng kèm theo đó cũng có thể là một biểu đồ hoạt động. Các Use case được miêu tả duy nhất theo hướng nhìn từ ngoài vào của các tác nhân (hành vi của hệ thống theo như sự mong đợi của người sử dụng), không miêu tả chức năng được cung cấp sẽ hoạt động nội bộ bên trong hệ thống ra sao. Các Use case định nghĩa các yêu cầu về mặt chức năng đối với hệ thống.Tác nhân (Actor), Use Case và các mối liên hệ giữa các Actor và Use Case Tác nhân được dùng để hiển thị thay người dùng, thiết bị phần cứng hoặc một hệ thống phần mềm khác,.
được kí hiệu: hoặc Các use case: Đây là thành phần cơ bản của biểu đồ use case. Các use case được biểu diễn bởi các hình elip. Tên các use case thể hiện một chức năng xác định của hệ thống. Các Use case được kí hiệu bằng hình elips.
SVTH: Phan Thị Quỳnh Hương 10 Khóa Luận Tốt Nghiệp GVHD: ThS. Nguyễn Hữu Hoàng Thọ Mối liên hệ: Giữa các Actor với nhau: khái quát hóa giao tiếp Giữa Actor và Use Case: Giao tiếp Giữa các Use Case với nhau: Generalization (khái quát hóa), include (bao hàm), extent (mở rộng). SVTH: Phan Thị Quỳnh Hương 11 Khóa Luận Tốt Nghiệp GVHD: ThS.