Rất nhiều ngân hàng đầu tư toàn cầu như Goldman Sachs, Citigroup, Barclays, Standard Charted và các ngân hàng khác sử dụng Java để viết các hệ thống giao dịch điện tử, các hệ thống xác n
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN HỌC PHẦN: Lập trình hướng đối tượng với Java
Đề tài: XÂY DỰNG CLASS QUẢN LÝ KHO HÀNG
Sinh viên thực hiện Lớp Khóa
Nguyễn Thanh Hùng DCCNTT.14.6 K14
Bắc Ninh, năm 2024
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN HỌC PHẦN: MẠNG MÁY TÍNH
Đề tài: 7 Xây dựng hệ thống mạng công ty TRIBECO
STT Sinh viên thực hiện Mã sinh
viên Điểm bằng số Điểm bằng chữ
1 Nguyễn Thanh Hùng 2023239
CÁN BỘ CHẤM 1
(Ký và ghi rõ họ tên)
CÁN BỘ CHẤM 2
(Ký và ghi rõ họ tên)
Trang 3MỤC LỤC (Trình bầy trong trang riêng)
Contents
LỜI CẢM ƠN 4
Chương 1 Tổng quan về mạng máy tính 5
1.Mạng máy tính là gì ? 5
2.Các bộ phận của hệ thống mạng máy tính 5
3.Phân loại mạng máy tính theo chức năng 5
4.Mô hình mạng ngang hàng (Peer-to-Peer) 6
5.Mô hình lai (hybrid) 7
6 Phân loại mạng máy tính theo mô hình kết nối 8
7 Lợi ích và hạn chế của các loại mạng hiện nay 10
Kết luận 14
Kết quả đạt được 14
Hướng phát triển 14
Trang 4LỜI CẢM ƠN
Đề tài “Thiết kế triển khai mạng doanh nghiệp” là nội dung chúng em
nghiên cứu và làm dự án cuối kỳ sau khi được học những chương trình, những kiến thức quý báu của thầy
Để hoàn thành quá trình nghiên cứu và hoàn thiện tiểu luận này, lời đầu tiên chúng em xin chân thành cảm ơn sâu sắc đến Thầy Hồ Văn Phúng thuộc Khoa Công nghệ Thông tin Kinh doanh – Trường Công Nghệ và Thiết Kế (UEH) Thầy
đã chỉ bảo và hướng dẫn chúng em trong quá trình nghiên cứu để nhóm 6 chúng
em hoàn thiện dự án tiểu luận này
Trong quá trình hoàn thành dự án, vì chưa có nhiều kinh nghiệm và kiến thức chuyên sâu cho nên chúng em không tránh khỏi thiếu sót Song, chúng em cũng đã có nhiều buổi họp với nhau và cùng đưa ra các hướng giải quyết để có thể làm trọn vẹn dự án này Nhóm chúng em đã sử dụng những kiến thức quý báu mà thầy đã giảng dạy qua những buổi học vui vẻ với thầy và mỗi thành viên của nhóm
em rất cố gắng trong việc ứng dụng những kiến thức đó vào bài làm này
Vì vậy, nhóm 6 chúng em mong được có những lời góp ý giá trị của thầy
để chúng em có thể hoàn thiện bản thân hơn trong tương lai và hơn hết là dùng những kiến thức đó để tạo ra nhiều dự án liên quan khác Cuối cùng, một lần nữa nhóm chúng em xin chân thành cảm ơn thầy Hồ Văn Phúng và chúc thầy khỏe mạnh, ngày càng thành công hơn trên con đường giảng dạy
cũng như là sự nghiệp của thầy
Trân trọng!
Trang 5Chương 1 Java Lập trình hướng đối tượng
1 Java là gì?
Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp (class), ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995 Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy
2 Đặc điểm của Java
Hướng đối tượng - Trong Java, mọi thứ đều là một Object Java có thể dễ dàng mở rộng
và bảo trì vì nó được xây dựng dựa trên mô hình Object
Nền tảng độc lập - Không giống nhiều ngôn ngữ lập trình khác bao gồm cả C và C ++, khi Java được biên dịch, nó không được biên dịch thành ngôn ngữ máy nền tảng cụ thể, thay vào mã byte - nền tảng độc lập Mã byte này được thông dịch bởi máy ảo (JVM) trên nền tảng nào đó mà nó đang chạy
Đơn giản - Java được thiết kế để dễ học Nếu bạn hiểu khái niệm cơ bản về OOP Java, sẽ rất dễ để trở thành master về java
Bảo mật - Với tính năng an toàn của Java, nó cho phép phát triển các hệ thống không có virut, giả mạo Các kỹ thuật xác thực dựa trên mã hoá khóa công khai
Kiến trúc - trung lập - Trình biên dịch Java tạo ra định dạng tệp đối tượng kiến trúc trung lập, làm cho mã biên dịch được thực thi trên nhiều bộ vi xử lý, với sự hiện diện của hệ điều hành Java
Portable - Là kiến trúc tập trung và không có khía cạnh thực hiện phụ thuộc của đặc tả này làm cho Java khả chuyển Trình biên dịch trong Java được viết bằng ANSI C, đó là một tập con POSIX
Mạnh mẽ - Java làm nỗ lực để loại trừ các tình huống dễ bị lỗi bằng cách kiểm tra lỗi tại thời gian biên dịch và kiểm tra lỗi tại runtime
Đa luồng - Với tính năng đa luồng của Java có thể viết các chương trình có thể thực hiện nhiều tác vụ đồng thời Tính năng thiết kế này cho phép các nhà phát triển xây dựng các ứng dụng tương tác có thể chạy trơn tru hơn
Thông dịch - Mã byte Java được dịch trực tiếp tới các máy tính gốc và không được lưu trữ ở bất cứ đâu
Hiệu năng cao - Với việc sử dụng trình biên dịch Just-In-Time, Java cho phép thực hiện hiệu năng cao
Phân tán - Java được thiết kế cho môi trường phân tán của Internet
Năng động - Java là năng động hơn C hoặc C++ vì nó được thiết kế để thích nghi với môi trường đang phát triển Các chương trình Java có thể mang một lượng lớn thông tin tại runtime mà có thể được sử dụng để xác minh và giải quyết các truy cập vào các đối tượng tại runtime
3 Java được dùng ở đâu
a Các ứng dụng Android
Nếu bạn muốn nhìn thấy nơi Java được sử dụng, thì bạn chẳng phải đi đâu xa xôi cả Hãy
mở điện thoại Android của bạn lên với bất kỳ ứng dụng nào, chúng đều được viết bằng ngôn ngữ lập trình Java, với Android API của Google, cái tương tự như JDK Vài năm gần đây Android đã phát triển rất nhanh và nhiều lập trình viên Java đã trở thành các nhà
Trang 6phát triển ứng dụng Android Android sử dụng máy ảo JVM và các package khác, nhưng phần code thì vẫn được viết bằng Java
b Ứng dụng máy chủ dùng cho dịch vụ tài chính
Java đóng vai trò rất lớn trong các dịch vụ tài chính Rất nhiều ngân hàng đầu tư toàn cầu như Goldman Sachs, Citigroup, Barclays, Standard Charted và các ngân hàng khác sử dụng Java để viết các hệ thống giao dịch điện tử, các hệ thống xác nhận và kiểm toán, các
dự án xử lý dữ liệu và một số công việc quan trọng khác Java chủ yếu được sử dụng để viết các ứng dụng phía máy chủ, hầu như không có bất kỳ phần front-end nào, nó nhận
dữ liệu từ một máy chủ (upstream), xử lý nó và gửi dữ liệu đến một quy trình khác (downstream) Java Swing cũng được dùng phổ biến để tạo ra các phần giao diện người dùng
c Các ứng dụng web Java
Java cũng được sử dụng nhiều trong các ứng dụng web và thương mại điện tử Bạn có rất nhiều RESTfull services được tạo ra sử dụng Spring MVC, Struts 2.0 và các framework tương tự Ngay cả các ứng dụng web đơn giản dựa trên Servlet, JSP và Struts cũng khá phổ biến trong các dự án chính phủ Nhiều tổ chức chính phủ, y tế, bảo hiểm, giáo dục, quốc phòng và một số bộ phận khác có ứng dụng web được xây dựng bằng Java
d Các công cụ phần mềm
Nhiều công cụ phát triển và phần mềm hữu ích được viết bằng Java, ví dụ: Eclipse, InetelliJ Idea và Netbans IDE Tôi nghĩ rằng chúng cũng là những ứng dụng desktop viết bằng Java được sử dụng nhiều nhất Mặc dù có những thời điểm Swing đã rất phổ biến, chủ yếu là trong lĩnh vực ngân hàng và dịch vụ đầu tư tài chính Nhưng hiện nay, Java
FX là khá phổ biến nhưng vẫn chưa thể thay thế được Swing
e Các ứng dụng thương mại
Các ứng dụng thương mại của bên thứ ba (third party), chiếm một phần lớn trong ngành công nghiệp dịch vụ tài chính, cũng sử dụng Java Các ứng dụng thương mại nổi tiếng như Murex, được sử dụng tại nhiều ngân hàng để kết nối từ trong ra ngoài, cũng được viết bằng Java
f Các ứng dụng J2ME
Mặc dù sự ra đời của iOS và Android gần như giết chết thị trường J2ME, nhưng vẫn còn
là thị trường lớn đối với các dòng điện thoại cấu hình thấp của Nokia và Samsung sử dụng J2ME Có thời điểm khi gần như tất cả các trò game, ứng dụng trên Android được viết bằng MIDP và CLDC, một phần của nền tảng J2ME J2ME vẫn còn phổ biến trên các sản phẩm như đĩa Blu-ray, Cards, Set top boxes v.v Một trong những lý do mà WhatsApp trở nên phổ biến là bởi vì nó cũng có sẵn trên J2ME cho tất cả những thiết bị cầm tay của Nokia mà hiện vẫn còn khá lớn
g Không gian nhúng
Java cũng được sử dụng nhiều trong lĩnh vực embedded (nhúng) Nó cho thấy khả năng của nền tảng này, bạn chỉ cần 130 KB để có thể sử dụng công nghệ Java (trên một smart card hoặc cảm biến) Ban đầu Java được thiết kế dành cho các thiết bị nhúng Trong thực
tế, đây là một phần trong chiến dịch ban đầu của Java "viết một lần, chạy mọi nơi" và có
vẻ như nó đang mang lại nhiều lợi ích to lớn
Trang 7h Các công nghệ Big Data
Hadoop và các công nghệ big data khác cũng đang sử dụng Java theo cách này hay cách khác, ví dụ: HBase, Accumulo (mã nguồn mở) và ElasticSearch của Apache dựa trên Java Mặc dù Java không phải là thống trị trong lĩnh vực này, vì có những công nghệ như MongoDB được viết bằng C++ Nhưng Java có tiềm năng chiếm được thị phần lớn hơn trong lĩnh vực này nếu Hadoop hoặc ElasticSearch trở nên lớn hơn
i Trong lĩnh vực giao dịch chứng khoán
Nền tảng Java đã được cải thiện hiệu năng rất nhiều với các JIT hiện đại, nó có khả năng đạt được hiệu suất ngang với mức C++ Vì lý do này, Java cũng được sử dụng rất phổ biến để viết các hệ thống hiệu suất cao, bởi vì mặc dù hiệu suất có thua chút ít so với ngôn ngữ native, nhưng bạn lại có được sự an toàn, linh động và bảo trì với tốc độ nhanh hơn
k Các ứng dụng khoa học
Hiện nay Java thường là một lựa chọn mặc định cho các ứng dụng khoa học, bao gồm cả
xử lý ngôn ngữ tự nhiên Lý do chính của việc này là bởi vì Java an toàn hơn, portable, dễ bảo trì và đi kèm với các công cụ tốt hơn so với C ++ hoặc bất kỳ ngôn ngữ nào khác Trong những năm 1990 Java đóng vai trò khá lớn trên Internet nhờ Applet, nhưng trong những năm qua, Applet mất dần sự phổ biến, chủ yếu là do các vấn đề an ninh khác nhau trên mô hình sand box của Applet Java là ngôn ngữ mặc định trong ngành phát triển phần mềm, và được sử dụng nhiều trong ngành công nghiệp dịch vụ tài chính, ngân hàng
và thương mại điện tử Java 8 đã củng cố thêm niềm tin rằng Java sẽ tiếp tục thống trị lĩnh vực phát triển phần mềm trong nhiều năm tới
Trang 8Chương 2: Tổng Quan Và Phân Tích Bài Toán
1, Tổng quan về đề tài.
Công ty ISALE là một doanh nghiệp chuyên về sản xuất và xuất khẩu thời trang, với sản phẩm chính là quần áo và phụ kiện thời trang Với khối lượng hàng hóa lớn và các giao dịch xuất nhập thường xuyên, ISALE xác định rằng quản lý kho hàng là một hoạt động cốt lõi giúp đảm bảo hiệu quả kinh doanh và giữ vững vị thế trên thị trường quốc tế
Quản lý kho hàng tại ISALE
Mỗi kho hàng của ISALE được đặt tại một địa điểm riêng biệt, gần các khu vực trọng điểm như trung tâm sản xuất, cảng xuất khẩu hoặc các trung tâm phân phối lớn Điều này đảm bảo tối ưu hóa chi phí vận chuyển và lưu trữ hàng hóa Quy trình quản lý kho hàng tại ISALE được thực hiện theo các bước sau:
a Quy trình nhập kho
Yêu cầu nhập hàng: Khi có thông báo nhập hàng từ phòng kế hoạch hoặc từ chủ cửa hàng, các thông tin chi tiết về lô hàng sẽ được ghi trong phiếu nhập kho, bao gồm:
o Mã sản phẩm
o Số lượng nhập
o Nhà cung cấp
o Quy cách đóng gói
o Ngày nhập kho
Kiểm tra hàng hóa:
o Nhân viên kho tiến hành kiểm tra thực tế lô hàng để đảm bảo số lượng và quy cách khớp với thông tin trên phiếu nhập
o Nếu phát hiện sai lệch, nhân viên kho sẽ lập biên bản và báo cáo ngay cho phòng kế toán hoặc nhà cung cấp để xử lý
Xác nhận nhập kho:
o Thủ kho kiểm tra lại toàn bộ thông tin trên phiếu nhập, ký xác nhận và lưu trữ phiếu nhập kho
o Hàng hóa sau đó được ghi nhận vào hệ thống quản lý kho và đưa vào vị trí lưu trữ phù hợp
b Quy trình xuất kho
Yêu cầu xuất hàng: Khi nhận được yêu cầu xuất hàng từ khách hàng hoặc từ bộ phận kinh doanh, thủ kho lập phiếu xuất kho ghi rõ:
o Mã sản phẩm
o Số lượng xuất
o Địa điểm giao hàng
o Thông tin khách hàng
o Ngày xuất kho
Kiểm tra hàng hóa:
o Nhân viên kho kiểm tra số lượng và chất lượng hàng hóa trước khi xuất kho
o Đảm bảo hàng hóa không bị hư hỏng, đủ số lượng và đúng mã hàng theo yêu cầu trên phiếu
Xác nhận xuất kho:
Trang 9o Thủ kho ký vào phiếu xuất kho sau khi kiểm tra xong.
o Hàng hóa được ghi nhận trong hệ thống quản lý và bàn giao cho đơn vị vận chuyển hoặc khách hàng
c Quản lý tồn kho
Theo dõi tồn kho hàng ngày:
o Cuối mỗi ngày, thủ kho kiểm tra số liệu tồn kho thực tế và so sánh với số liệu trên hệ thống quản lý
o Nếu có chênh lệch, thủ kho sẽ lập biên bản điều chỉnh và báo cáo lên ban quản lý
Lập báo cáo tồn kho:
o Hệ thống tự động tạo các báo cáo tồn kho định kỳ (theo ngày, tuần, tháng) dựa trên dữ liệu nhập xuất
o Các báo cáo này hỗ trợ ban lãnh đạo đưa ra các quyết định kinh doanh và tối ưu hóa quản lý
d Quản lý nhà cung cấp và khách hàng
Hàng hóa nhập vào kho đến từ nhiều nhà cung cấp uy tín, được chọn lọc kỹ lưỡng
để đảm bảo chất lượng
Sản phẩm được xuất kho và giao đến khách hàng thông qua các đơn vị vận chuyển hoặc hệ thống cửa hàng phân phối của ISALE Mỗi giao dịch đều được lưu trữ đầy đủ trong hệ thống
Mục tiêu của hệ thống quản lý kho ISALE
Đảm bảo an toàn hàng hóa:
o Lưu trữ hàng hóa đúng quy cách, tránh hư hỏng hoặc thất thoát
o Sử dụng hệ thống theo dõi nhiệt độ, độ ẩm trong kho để bảo quản tốt nhất cho từng loại sản phẩm
Đáp ứng nhu cầu khách hàng:
o Xử lý đơn hàng nhanh chóng và chính xác, đảm bảo khách hàng nhận được sản phẩm đúng hẹn
Tối ưu hóa chi phí:
o Giảm chi phí lưu trữ thông qua quản lý tồn kho hiệu quả
o Hạn chế tồn đọng hàng hóa, tối ưu hóa dòng tiền
Các giải pháp hỗ trợ quản lý kho
i Ứng dụng công nghệ hiện đại:
o Sử dụng phần mềm quản lý kho tự động để theo dõi và kiểm soát toàn bộ quy trình nhập, xuất, tồn kho
o Tích hợp hệ thống mã vạch và RFID để quản lý sản phẩm chi tiết
ii Đào tạo nhân sự chuyên nghiệp:
o Nhân viên kho được đào tạo bài bản về kỹ năng kiểm tra, xử lý hàng hóa và
sử dụng các công cụ hỗ trợ hiện đại
iii Báo cáo và phân tích dữ liệu:
o Hệ thống cung cấp báo cáo chi tiết theo thời gian thực, giúp ban lãnh đạo ISALE nắm bắt nhanh chóng tình hình hàng hóa và tồn kho
2 Các yêu cầu của hệ thống quản lý kho của Công ty ISALE
a Yêu cầu chung
Trang 10 Hệ thống phải cung cấp một giao diện thân thiện và dễ sử dụng để quản lý thông tin nhập và xuất kho
Dữ liệu trong hệ thống phải được bảo mật và chỉ người được ủy quyền mới có quyền truy cập
Hệ thống cần hỗ trợ quản lý nhiều kho hàng nằm tại các địa điểm khác nhau
Có khả năng đồng bộ hóa thông tin giữa các kho hàng theo thời gian thực
b Yêu cầu về quản lý nhập kho
Ghi nhận đầy đủ thông tin về hàng hóa, bao gồm mã hàng, nguồn gốc, nhà cung cấp,
và ngày nhập
Cho phép kiểm tra thông tin hàng hóa trước khi xác nhận nhập kho
Tự động cập nhật số lượng hàng hóa trong kho sau mỗi lần nhập
Hỗ trợ xử lý các tình huống nhập sai hoặc không khớp thông tin
c Yêu cầu về quản lý xuất kho
Lưu trữ chi tiết các yêu cầu xuất kho, bao gồm mã hàng, số lượng và thông tin khách hàng
Đảm bảo xác minh tính chính xác của dữ liệu trước khi xuất hàng
Cung cấp chức năng tra cứu lịch sử xuất kho để dễ dàng theo dõi
Hệ thống cần ghi nhận và theo dõi các lô hàng đã xuất, bao gồm thời gian và đơn vị vận chuyển
d Yêu cầu về theo dõi tồn kho
Cập nhật liên tục số lượng hàng hóa hiện có trong kho
Hiển thị trạng thái hàng hóa, bao gồm số lượng còn lại, mức tối đa và mức tối thiểu cần duy trì
Hỗ trợ cảnh báo khi lượng tồn kho xuống thấp hoặc vượt quá mức cho phép
Cung cấp báo cáo chi tiết về tồn kho theo thời gian thực
e Yêu cầu về báo cáo
Tạo báo cáo theo định kỳ hoặc theo yêu cầu về tình hình nhập, xuất, và tồn kho
Hỗ trợ xuất dữ liệu ra các định dạng phổ biến (PDF, Excel, v.v.) để phục vụ phân tích
Báo cáo cần có khả năng tùy chỉnh theo từng tiêu chí như thời gian, mặt hàng, hoặc nhà cung cấp
Cung cấp thông tin phân tích xu hướng tồn kho để hỗ trợ đưa ra quyết định
f Yêu cầu về quản lý nhà cung cấp và khách hàng
Quản lý danh sách nhà cung cấp, bao gồm thông tin liên lạc và lịch sử giao dịch
Theo dõi thông tin khách hàng và tình trạng công nợ
Hỗ trợ quản lý đơn đặt hàng từ khách hàng và yêu cầu nhập hàng từ nhà cung cấp
g Yêu cầu về tích hợp và mở rộng
Tích hợp với các hệ thống khác như phần mềm kế toán hoặc hệ thống quản lý vận chuyển
Hỗ trợ tính năng mở rộng, cho phép bổ sung thêm kho hoặc mặt hàng mới khi cần thiết
Đảm bảo khả năng nâng cấp hệ thống khi quy mô kinh doanh tăng
h Yêu cầu về kiểm soát và bảo mật
Cấp quyền sử dụng theo vai trò, ví dụ: quản lý, nhân viên kho, kế toán
Lưu trữ lịch sử hoạt động để kiểm tra và giám sát các thay đổi
Đảm bảo sao lưu dữ liệu định kỳ và khôi phục nhanh chóng khi có sự cố