Lời đầu tiên tôi xin gửi lời cảm ơn chân thành đến quý lãnh đạo công ty TNHH BeeSight Soft đã tạo điều kiện cho tôi được thực tập ở công ty. Bên cạnh đó tôi cũng rất cảm ơn các anhchị nhân viên trong công ty đã giúp đỡ, hỗ trợ tôi và đặc biệt tôi xin gửi lời cảm ơn sâu sắc đến anh Hoàng Minh Huy đã tận tình hướng dẫn, chỉ dạy cho tôi trong suốt quá trình được thực tập ở công ty. Về phía nhà trường tôi xin trân trọng cảm ơn các thầycô khoa Mạng máy tính và truyền thông, trường Đại học Công Nghệ Thông Tin – Đại học Quốc Gia TP.HCM đã giúp đỡ, tạo điều kiện cho tôi được thực hiện tốt khóa thực tập. Tôi xin gửi lời cảm ơn chân thành đến thầy Đàm Quang Hồng Hải – trưởng khoa Mạng máy tính và truyền thông, thầy Vũ Trí Dũng – cố vấn học tập lớp MMT04 đã kịp thời hỗ trợ, cung cấp những thông tin cần thiết cho tôi để tôi có thể hoàn thành tốt khóa thực tập doanh nghiệp này. Và cuối cùng, tôi xin gửi lời cảm ơn chân thành đến gia đình, bạn bè và những người thân đã giúp đỡ, động viên và tạo điều kiện thuận lợi cho tôi trong thời gian thực tập.
Báo cáo thực tập doanh nghiệp Cao Đại Hoàng Hùng LỜI CẢM ƠN Lời xin gửi lời cảm ơn chân thành đến quý lãnh đạo công ty TNHH BeeSight Soft tạo điều kiện cho thực tập cơng ty Bên cạnh tơi cảm ơn anh/chị nhân viên công ty giúp đỡ, hỗ trợ đặc biệt xin gửi lời cảm ơn sâu sắc đến anh Hồng Minh Huy tận tình hướng dẫn, dạy cho tơi suốt q trình thực tập cơng ty Về phía nhà trường tơi xin trân trọng cảm ơn thầy/cơ khoa Mạng máy tính truyền thông, trường Đại học Công Nghệ Thông Tin – Đại học Quốc Gia TP.HCM giúp đỡ, tạo điều kiện cho tơi thực tốt khóa thực tập Tơi xin gửi lời cảm ơn chân thành đến thầy Đàm Quang Hồng Hải – trưởng khoa Mạng máy tính truyền thơng, thầy Vũ Trí Dũng – cố vấn học tập lớp MMT04 kịp thời hỗ trợ, cung cấp thơng tin cần thiết cho tơi để tơi hồn thành tốt khóa thực tập doanh nghiệp Và cuối cùng, xin gửi lời cảm ơn chân thành đến gia đình, bạn bè người thân giúp đỡ, động viên tạo điều kiện thuận lợi cho thời gian thực tập Một lần xin chân thành cảm ơn! Sinh viên thực tập Cao Đại Hoàng Hùng Báo cáo thực tập doanh nghiệp MỤC LỤC DANH MỤC SƠ ĐỒ, HÌNH ẢNH Cao Đại Hoàng Hùng Báo cáo thực tập doanh nghiệp Cao Đại Hoàng Hùng PHẦN I: GIỚI THIỆU TỔNG QUAN VỀ DOANH NGHIỆP Giới thiệu công ty TNHH BeeSight Soft 1.1 Sơ lược công ty - Tên công ty: Công ty TNHH BeeSight Soft - Tên tiếng anh: BeeSight Soft Limited Company - Địa chỉ: 31/16 Phạm Phú Thứ, phường 11, quận Tân Bình, TP.HCM - Điện thoại: (+84) 838 658 397 (+84) 908 558 815 - Email: hr@beesightsoft.com - Website: www.beesightsoft.com Công ty TNHH BeeSight Soft thành lập vào năm 2010, doanh nghiệp chuyên nghiên cứu, phát triển cung cấp giải pháp công nghệ thông tin cho khách hàng ngồi nước Các lĩnh vực cơng ty bao gồm: • • • • Phát triển ứng dụng Phát triển web Cung cấp giải pháp công nghệ thông tin Nghiên cứu phát triển khoa học máy tính Các nhân viên công ty có năm kinh nghiệm cơng việc phát triển phần mềm, làm việc cho công ty phần mềm có uy tín Việt Nam Các thành viên khác tuyển chọn cách nghiêm ngặt đào tạo từ trường đại học hàng đầu Việt Nam 1.2 Nhiệm vụ chức công ty 1.2.1 Phát triển phần mềm - Xây dựng ứng dụng NET Winform, WPF, LinQ, WCF - Xây dựng ứng dụng C++ MFC, ứng dụng hệ thống, driver - Xây dựng ứng dụng Java J2SE J2EE - Xây dựng ứng dụng đa tảng (Windows MacOS) Mono, QT Báo cáo thực tập doanh nghiệp Cao Đại Hoàng Hùng 1.2.2 Phát triển web - Xây dựng phát triển hệ thống Website PHP (Joomla, Wordpress), ASP.NET (DotNetNuke, NopCommerce), Silverlight, Javascript, Flash, - Cung cấp giải pháp kiến trúc Client-Server cho hệ thống mạng ổn định mở rộng - Cung cấp dịch vụ thiết kế website chuyên nghiệp bao gồm: thiết kế layout, thiết kế đồ họa v.v Tất sản phẩm theo chuẩn XHTML W3C Đặc biệt công ty cập nhật cơng nghệ cho sản phẩm, ví dụ CSS3 HTML5 1.2.3 Cung cấp giải pháp công nghệ thông tin Công ty BeeSight Soft cập nhật kiến thức phát triển phần mềm theo xu để cung cấp cho khách hàng giải pháp tốt Các giải pháp công ty cung cấp bao gồm: - Cơ sở hạ tầng cho hệ thống phần mềm - Các giải pháp xây dựng lại hệ thống - Các giải pháp tối ưu hóa hiệu suất - Các công nghệ 1.2.4 Nghiên cứu phát triển khoa học máy tính - Nghiên cứu phát triển mạnh công ty Công ty sở hữu số kỹ sư chuyên ngành thuật toán toán tin đào tạo từ trường đại học hàng đầu Việt Nam Một số dự án công ty thực như: hệ thống đồ họa dùng cho việc vẽ hình đơn giản cho NET framework, hệ thống sở liệu nhúng cho NET framework - Bên cạnh đó, cơng ty nghiên cứu xây dựng thư viện riêng cho ORM (tương tự với NHibernate), thư viện serialization tùy biến Báo cáo thực tập doanh nghiệp Cao Đại Hoàng Hùng 1.3 Cơ cấu tổ chức công ty Giám Đốc Trợ Lý Giám Đốc Phòng Phát Triển Phần Mềm Phòng Phát Triển Web Phòng Tư Vấn Giải Pháp Phòng Nghiên Cứu Phát Triển Sơ đồ 1: Cơ cấu tổ chức công ty TNHH BeeSight Sof 1.4 Một số đặc điểm công ty - Công ty TNHH BeeSight Soft chuyên cung cấp cho khách hàng giải pháp công nghệ thông tin với công nghệ khác phù hợp với nhu cầu khách hàng với giá hợp lý - Công ty ưu tiên sử dụng dự án mã nguồn mở cho dự án mình, tiết kiệm chi phí việc sử dụng dự án mã nguồn mở giúp cho việc phát triển linh động dễ mở rộng - Ngồi quy trình phát triển phần mềm truyền thống, cơng ty áp dụng quy trình phát triển phần mềm theo mơ hình linh hoạt (Agile - quy trình SCRUM) Đây cơng nghệ cung cấp nhiều phương pháp luận, quy trình thực nghiệm cho việc phát triển phần mềm trở nên nhanh chóng dễ dàng - Công ty cập nhật cơng nghệ cách thành lập nhóm tự học vào thứ hàng tuần Tất thành viên công ty tự tổ chức buổi thuyết trình cơng nghệ mà quan tâm Từ đó, thành viên khơng tự nâng cao kiến thức, kỹ mà cập nhật cơng nghệ mới, kiến thức để phát triển khả Báo cáo thực tập doanh nghiệp Cao Đại Hồng Hùng Giới thiệu phòng Phát triển phần mềm 2.1 Cơ cấu tổ chức Trưởng Phòng Lập Trình Viên Kiểm Thử Sơ đồ 2: Cơ cấu tổ chức phòng phát triển phần mềm 2.2 Nhiệm vụ chức - Nhiệm vụ chức trưởng phòng Phát triển phần mềm: • Quản lý, đào tạo xây dựng đội ngũ nhân viên phần mềm phục vụ dự án cho hoạt động công ty • Tổ chức, quản lý phòng Phát triển phần mềm, chịu trách nhiệm phân công công việc hỗ trợ nhân viên hoàn thành nhiệm vụ giao • Phân tích yêu cầu thiết kế giải pháp hệ thống, lên kế hoạch chịu trách nhiệm tổ chức thực dự án công ty • Nghiên cứu soạn thảo quy trình tiêu chuẩn chất lượng liên quan đến dự án phần mềm công ty - Nhiêm vụ chức lập trình viên: • Lập trình phần mềm ứng dụng theo dự án giao • Phát triển phần mềm ngôn nữ NET, C++, Java • Hỗ trợ khách hàng • Thực nhiệm vụ khác theo yêu cầu trưởng phòng Phát triển phần mềm - Nhiệm vụ chức nhân viên kiểm thử: • Kiểm thử dự án phần mềm • Phân tích u cầu dự án • Tạo Test Plan, Test Schedule Báo cáo thực tập doanh nghiệp • • • Cao Đại Hồng Hùng Viết Test Case, Test Data, TestScript Log Bug, Verify Report Bug Thực công việc khác trưởng phòng Phát triển phần mềm phân cơng Giới thiệu cơng việc thực tập 3.1 Vị trí thực tập Sinh viên thực tập vào vị trí lập trình viên phòng Phát triển phần mềm 3.2 Cơng việc thực tập - Tìm hiểu quy trình phát triển phần mềm - Tìm hiểu NET, ngơn ngữ lập trình C#, C++ - Tìm hiểu số cơng nghệ hỗ trợ NET: Log4net NHibernate - Tìm hiểu QT framework thực dự án xây dựng ứng dụng FinalTorrent QT framework theo yêu cầu khách hàng 3.3 Yêu cầu sinh viên thực tập - Nắm quy trình phát triển phần mềm có khả ứng dụng vào dự án thực tế - Nắm kiến thức số kiến thức nâng cao NET ngôn ngữ lập trình C#, C++ - Hiểu chức biết cách sử dụng chương trình mã nguồn mở hỗ trợ cho NET: Log4net NHibernate Đồng thời, tự xây dựng cho chương trình tương tự - Nắm cấu trúc QT framework, cách sử dụng ứng dụng vào dự án FinalTorrent - Thực dự án xây dựng phát triển ứng dụng tải tập tin torrent mang tên FinalTorrent hệ điều hành Windows MacOS QT framework 3.4 Nhiệm vụ sinh viên thực tập - Hoàn thành đầy đủ yêu cầu người hướng dẫn thực tập đưa - Thực theo quy trình phát triển phần mềm cơng ty - Đảm bảo hoàn thành dự án theo yêu cầu thời gian quy định Báo cáo thực tập doanh nghiệp 3.5 Thời gian thực tập Khóa thực tập kéo dài tháng: - Ngày bắt đầu: 1/6/2012 - Ngày kết thúc: 31/8/2012 Cao Đại Hoàng Hùng Báo cáo thực tập doanh nghiệp Cao Đại Hoàng Hùng PHẦN II: NỘI DUNG THỰC TẬP Nhiệm vụ sinh viên giao - Tìm hiểu quy trình phát triển phần mềm áp dụng cơng ty - Tìm hiểu kiến thức nâng cao NET ngơn ngữ lập trình C# hướng dẫn người hướng dẫn thực tập - Tìm hiểu số dự án mã nguồn mở hỗ trợ cho NET bao gồm: Log4net NHibernate Xây dựng dự án tương tự theo hướng dẫn người hướng dẫn thực tập - Tìm hiểu QT framework thực dự án xây dựng ứng dụng FinalTorrent theo yêu cầu khách hàng Các kiến thức tìm hiểu cơng nghệ tiếp xúc, làm việc 2.1 Quy trình phát triển phần mềm theo mơ hình thác nước (tuyến tính) Mơ hình xem q trình xây dựng sản phẩm phần mềm bao gồm nhiều giai đoạn tách biệt, sau hoàn tất giai đoạn chuyển đến giai đoạn sau Mơ hình biểu diễn sau: Báo cáo thực tập doanh nghiệp 10 Cao Đại Hoàng Hùng Đặc tả yêu cầu Thiết kế hệ thống lập trình Cài đặt kiểm thử đơn vị Tích hợp kiểm thử hệ thống Vận hành bảo trì Sơ đồ 3: Quy trình phát triển phần mềm theo mơ hình thác nước - Đặc tả yêu cầu: Xác định đặc điểm mà hệ thống phải cung cấp, ràng buộc trình vận hành phát triển, đồng thời xác định mục tiêu đặt hệ thống thông qua yêu cầu khách hàng Sau đó, ta tư liệu hóa yêu cầu thu tài liệu - Thiết kế hệ thống lập trình: Phân chia yêu cầu cho hệ thống phần mềm, sau thiết lập nên kiến trúc hệ thống phần mềm Tiếp theo ta tiến hành thiết kế phần mềm cách xây dựng mô tả hệ thống phần mềm cấu thành nên phần mềm cần xây dựng mối quan hệ hệ thống - Cài đặt kiểm thử đơn vị: Chuyển thiết kế phần mềm thành tập hợp chương trình đơn vị chương trình, sau thực hoạt động kiểm thử đơn vị để phát khiếm khuyết, sửa khiếm khuyết chúng cài đặt theo tài liệu đặc tả - Tích hợp kiểm thử hệ thống: Các đơn vị chương trình tích hợp lại với thành hệ thống hồn chỉnh Sau tiến hành hoạt động kiểm thử hệ thống nhằm kiểm tra ăn khớp thành phần phần mềm đáp ứng yêu cầu người dùng xây dựng theo tài liệu đặc tả - Vận hành bảo trì: Đưa phần mềm vào sử dụng thực tế tiến hành sửa đổi cần thiết người dùng phát khiếm khuyết Báo cáo thực tập doanh nghiệp 11 Cao Đại Hồng Hùng Trong mơ hình thác nước này, năm pha phải thực cách tuần tự, kết thúc pha trước thực pha Ưu điểm: - Dễ phân công công việc, phân bổ chi phí, giám sát cơng việc - Kiến trúc hệ thống hàng đợi ổn định Nhược điểm: - Mối quan hệ giai đoạn - Hệ thống phải kết thúc giai đoạn, khó thực đầy đủ u cầu khách hàng mơ hình khó khăn việc thay đổi pha thực - Chỉ tiếp xúc với khách hàng pha nên phần mềm không đáp ứng hết yêu cầu khách hàng - Chi phí phát triển dự án tương đối lớn - Khả thất bại cao 2.2 Log4net 2.2.1 Tổng quan Log4net cơng cụ giúp người lập trình ghi lại thông tin lúc chạy ứng dụng xây dựng NET Nó phiên chuyển thể từ Log4j tiếp tục phát triển kể từ năm 2001 Trong trường hợp ứng dụng có lỗi mà khơng tìm ngun nhân, Log4net giúp ta xác định nơi gây lỗi Ngồi ra, Log4net thay đổi trạng thái log lúc chương trình chạy mà khơng cần ngừng chương trình Bên cạnh đó, sử dụng Log4net khơng ảnh hưởng đáng kể đến hiệu suất ứng dụng, Log4net thiết kế với tính linh hoạt cao, mở rộng bổ sung thứ muốn vào thư viện Log4net, chẳng hạn cách thức log, định dạng log 2.2.2 Các cấp độ log Có tất cấp độ log, nhiên ta gọi sử dụng loại Các cấp độ log theo thứ tự gồm: OFF - khơng log (ta khơng sử dụng cấp độ này) Báo cáo thực tập doanh nghiệp 12 Cao Đại Hoàng Hùng FATAL ERROR WARN INFO DEBUG ALL - log tất (ta không sử dụng cấp độ này) Các cấp độ sử dụng nhiều lần mã lập trình tập tin cấu hình 2.2.3.Cài đặt Download phiên Log4net từ địa Website http://logging.apache.org/log4net/ (các ví dụ sử dụng phiên Log4net 1.2.10) thêm Reference vào project: Hình 1: Cài đặt Log4net 2.2.4 Cấu hình - Thêm dòng vào file AssemblyInfo.cs (trong thư mục Property project): [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4netSam ple.exe.config", Watch = true)] - Thêm đoạn code vào tập tin AssemblyInfo.cs giúp Log4net tìm thấy thơng tin cấu hình tập tin App.config Ở ta thấy ConfigFile=“Log4netSample.exe.config” tập tin cấu hình ta App.config Nguyên nhân tập tin cấu hình ứng dụng tự động build thành dạng Báo cáo thực tập doanh nghiệp 13 Cao Đại Hoàng Hùng tên_assembly.config Ví dụ chương trình thực có tên Log4netSample.exe nên ta chọn tên tập tin cấu hình Log4netSample.exe.config Đối với ứng dụng web ta thiết lập tên tập tin cấu hình ConfigFile=“Web.config” (Web tên ứng dụng) tập tin cấu hình cho ứng dụng web không bị đổi tên - Nếu project chưa có tập tin App.config ta tự thêm vào tập tin Đây tập tin cấu hình cho ứng dụng Sau thêm vào tập tin App.config thẻ sau: Nội dung tập tin cấu hình: Trong tập tin cấu hình ta sử dụng RollingFileAppender để ghi nội dung log vào tập tin Có nhiều loại Appender xây dựng sẵn thư viện Log4net, ví dụ ta sử dụng ConsoleAppender để ghi nội dung log cửa sổ console Mỗi loại có cơng dụng ghi nội dung log vào nơi khác Thông tin log ghi vào tập tin Log4netSampleLog.txt, tập tin nằm thư mục với tập tin thực thi ứng dụng Nếu ta muốn lưu tập tin log vào vị trí khác, ta dùng đường dẫn tuyệt đối để xác định thư mục muốn lưu Báo cáo thực tập doanh nghiệp 14 Cao Đại Hoàng Hùng Dữ liệu log lưu vào tập tin ta sử dụng RollingFileAppender Khi kích thước tập tin vượt mức Log4net tự động đổi tên tập tin cũ ghi vào tập tin Tổng số lượng tập tin tối đa 10 tập tin cũ bị xóa số lượng tập tin vượt 10 Kích thước tập tin log tối đa 1MB Đây phần quy định định dạng nội dung log ghi vào ngày, tháng, năm, thread id, tên lớp,… Ta tùy biến định dạng theo ý riêng Quy định cấp độ log, mặc định cấp Debug cho tất log Nghĩa ta khai báo tồn log ghi vào tập tin ghi với cấp độ Debug, cấp độ Debug cấp độ thấp mà ta sử dụng Nếu ta thiết lập giá trị Error thay cho Debug có log có cấp độ cao cấp độ Error ghi xuống tập tin (xem thứ tự cấp độ phần trước) Khi deploy chương trình cho khách hàng, thường thiết lập cấp độ mặc định Error, sử dụng có lỗi ta yêu cầu khách hàng sửa lại thành Debug cần thiết 2.2.5 Sử dụng - Thêm namespace log4net vào nơi mà ta muốn sử dụng Log4net - Thêm đoạn code lớp có sử dụng Log4net: private static readonly ILog logger = LogManager.GetLogger(typeof(TênLớp).Name); sử dụng cách tổng quát: private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod ().DeclaringType); - Khi cần ghi log ta dùng đoạn code sau: logger.Debug("Logger started"); hoặc: logger.Error("Logger started"); Trên thực tế, để tăng tối đa tốc độ ta nên khai báo biến boolean để kiểm tra xem có cần log hay khơng, có gọi hàm log: Báo cáo thực tập doanh nghiệp 15 Cao Đại Hoàng Hùng bool isLogEnabled = logger.IsDebugEnabled; if (isLogEnabled) { logger.Debug("Logger started"); } Ngoài khả ghi đoạn log vào tập tin trên, Log4net cho phép ta ghi log vào sở liệu, ghi cửa sổ console chí email cho Bên cạnh đó, Log4net dự án mã nguồn mở, ta kế thừa, mở rộng phát triển thêm 2.3 Nhibernate 2.3.1 ORM Framework - Framework khái niệm phát triển phần mềm dùng để “cấu trúc hỗ trợ định nghĩa” mà dự án phần mềm khác xếp vào phát triển - ORM (Object Relational Mapping) framework chế cho phép người lập trình thao tác với database cách hồn tồn tự nhiên thơng qua đối tượng Lập trình viên hồn tồn khơng quan tâm đến loại database sử dụng 2.3.2 Persistence Layer - “Tier” “Layer”: tier thường gắn với phần cứng mặt vật lý (physical) layer dính đến vấn đề cách thức tổ chức bên ứng dụng Việc phân chia tier “trong suốt” (transparent) ứng dụng mặt luận lý (logical) Điều có nghĩa ta phát triển ứng dụng, không bận tâm đến thành phần (component) triển khai (deploy) mà ý tổ chức ứng dụng thành layer - Persistence layer: ứng dụng chia làm phần sau: giao diện người dùng (presentation layer), phần xử lý nghiệp vụ (business layer) phần chứa liệu (data layer) Cụ thể ra, business layer chia nhỏ thành layer business logic layer (các tính tốn nhằm thỏa mãn u cầu người dùng) persistence layer Persistence layer chịu trách nhiệm giao tiếp với data layer (thường hệ quản trị sở liệu quan hệ - Relational DBMS) Persistence đảm nhiệm nhiệm vụ mở kết nối, truy xuất lưu trữ liệu vào Relational DBMS 2.3.3 Hibernate Framework - Là giải pháp kĩ thuật ánh xạ từ mơ hình hướng đối tượng xuống sở liệu quan hệ (Object-relational mapping (ORM)) cho tảng Microsoft.NET - Cung cấp giải pháp để mapping đến sở liệu cách dễ dàng Báo cáo thực tập doanh nghiệp 16 Cao Đại Hoàng Hùng - Cung cấp cho phương thức thao tác với sở liệu tạo liệu chuẩn dạng object thao tác với liệu thông qua object - Tất liệu lấy lên lưu lại lưu vào nhớ máy load lại đẩy xuống thực đẩy xuống load sở liệu Sơ đồ 4: Cấu trúc chương trình sử dụng NHibernate Báo cáo thực tập doanh nghiệp 17 Cao Đại Hoàng Hùng 2.4 Qt Framework 2.4.1 Giới thiệu Qt Framework - Qt Framework cho phép xây dựng ứng dụng có giao diện chạy nhiều tảng: bao gồm hệ điều hành Symbian, Meego, Windows, Linux, Mac - Qt Framework bao gồm thư viện hỗ trợ chạy đa nền, tích hợp với công cụ phát triển IDE Với Qt Framework bạn lập trình ứng dụng Windows biên dịch để chúng chạy Linux Mac mà khơng phải thay đổi mã nguồn chương trình - Qt hỗ trợ đa ngơn ngữ lập trình, ngồi phiên thức hỗ trợ cho C++, Qt có phiên binding cho ngơn ngữ khác Pascal, C#, Python, Ruby v.v 2.4.2 Lịch sử phát triển Qt framework - Qt framework khởi xướng Haavard Nord (CEO công ty Trolltech's) Eirik Chambe-Eng (giám đốc công ty Trolltech) từ năm 1991 (ban đầu họ lập trình viên bình thường) Đến năm 1995 phiên Qt cơng bố cộng đồng, phiên Qt 0.9.0 - Năm 1999 Qt giành giải thưởng Linux World cho thư viện/công cụ tốt Và khoảng thời gian này, công ty Trolltech thành lập - Năm 2008 Nokia mua lại Trolltech, từ Qt sở hữu phát triển Nokia Mã nguồn Qt công bố cho cộng đồng mã nguồn mở - Hiện Qt có phiên bản: Môt phiên mã nguồn mở phiên thương mại Với phiên thương mại người lập trình khơng phải cơng bố mã nguồn với cộng đồng 2.4.3 Các thành phần Qt - QtOpenGl: Hỗ trợ đồ họa - QtSvg: Hỗ trợ tạo hiển thị tập tin SVG - QtWebkit: Hỗ trợ web - QtXmlPattern: Hỗ trợ XPath, XQuery, XSLT, - Qt3Support: Hỗ trợ chức Qt3 - QtGui: Hỗ trợ giao diện người dùng - QtNetwork: Hỗ trợ tương tác mạng - QtSql: Hỗ trợ sử dụng sở liệu - QtXml: Hỗ trợ làm việc với Xml - QtScript.: Hỗ trợ làm việc với script Báo cáo thực tập doanh nghiệp - 18 Cao Đại Hoàng Hùng Phonon: Hỗ trợ ứng dụng multimedia 2.4.4 Các ưu điểm Qt - Code lần chạy khắp nơi: code Windows, chạy Linux, Mac, thiết bị di động, thiết bị nhúng, - Các thư viện trực quan, đơn giản dễ sử dụng - Tạo code dễ đọc, dễ mở rộng dễ tái sử dụng - Ứng dụng tạo có hiệu suất xử lý cao chạy nhanh - OpenWebkit cho phép xây dựng chạy ứng dụng dựa web, ví dụ game viết Html5, Css, JavaScript Dự án thực tập - xây dựng ứng dụng FinalTorrent Qt Framework 3.1 Yêu cầu - Xây dựng ứng dụng tải tập tin torrent ngôn ngữ C++ dựa Qt Framework - Ứng dụng phải có đầy đủ chức giao diện tương tự phần mềm FinalTorrent (http://www.finaltorrent.com) - Ứng dụng phải xây dựng hai hệ điều hành Windows MacOS - Sử dụng thư viện torrent libtorrent-rasterbar (tải http://www.rasterbar com/products/libtorrent) để thực chức tải tập tin torrent cho ứng dụng - Dự án coi hoàn tất ứng dụng đáp ứng đầy đủ yêu cầu đặt tải tập tin torrent cách xác 3.2 Các bước thực 3.2.1 Xác định yêu cầu Tìm hiểu yêu cầu dự án, nắm rõ công việc phải làm lên kế hoạch thực 3.2.2 Xây dựng cửa sổ cho chương trình Cửa sổ chương trình bao gồm: - Thanh menu - Thanh button, chứa button tương ứng với module (Home, Search, Library, Downloads) - Vùng làm việc chứa module Báo cáo thực tập doanh nghiệp - 19 Cao Đại Hoàng Hùng Thanh trạng thái Hình 2: Cửa sổ chương trình FinalTorrent 3.2.3 Xây dựng module Home Module Home gồm thành phần: - Phần giới thiệu: Giới thiệu chương trình - Phần tìm kiếm: Cho phép nhập từ tập tin torrent hiển thị kết tìm kiếm Search khóa tìm kiếm module - Phần mở tập tin torrent: Cho phép mở tập tin torrent từ hệ thống tiến hành tải nội dung tập tin torrent vừa mở 3.2.4 Xây dựng module Downloads Hình 3: Module Home Module Downloads xem module quan trọng chương trình thực thao tác tải tập tin torrent cách sử dụng thư viện libtorrent-rasterbar có sẵn Module gồm có thành phần sau: - Danh sách tập tin torrent Danh sách liệt kê chi tiết trình tải gồm: tên tập tin torrent, kích thước tập tin, trình tải về, tốc độ tải về, số lượng máy lại v.v… - tải tập tin torrent bao trạng thái, chia sẻ, thời gian Các button hỗ trợ chức cho việc tải bao gồm: • Start: Bắt đầu tải tập tin tiếp tục tải tập tin bị tạm dừng Hình 4: Module Downloads Báo cáo thực tập doanh nghiệp 20 Cao Đại Hoàng Hùng • Pause: Tạm dừng q trình tải • Cancel: Hủy trình tải Chú ý trình tải thành cơng nội dung tải tồn • Delete: Xóa q trình tải Chú ý q trình tải thành cơng nội dung tải bị xóa - Ngồi có menu ngữ cảnh xuất nhấp chuột phải vào mục danh sách tải với chức tương tự với button 3.2.5 Xây dựng module Library Các thành phần module Library bao gồm: - Danh sách tập tin tải (tên tập tin, kích thước, đường dẫn) Khi nhấp đúp vào tập tin chương trình mở tập tin tương ứng cửa sổ Windows Explorer - Danh sách tập tin torrent trình lưu (tên tập tin, kích thước, đường dẫn) vào tập tin torrent, chương trình mở tập tin torrent - chương Khi nhấp đúp thư mục chứa Các button hỗ trợ chức bao gồm: • Open: Mở tập tin tương ứng từ danh dách • Remove: Xóa tập tin tương ứng danh sách Hình 5: Module Library - Ngồi có menu ngữ cảnh xuất nhấp chuột phải vào tập tin danh sách với chức tương tự button 3.2.6 Xây dựng module Search Module Search xây dựng cách sử dụng trang web tìm kiếm tập tin torrent phổ biến www.mininova.org www.legittorrents.info Yêu cầu khách hàng nhúng trình duyệt web vào phần kết tìm kiếm Tuy nhiên, QT Framework, muốn sử dụng trình duyệt web nhúng ta phải sử dụng thư viện Webkit, mà thư viện lại có kích thước lớn (hơn 12MB) Do đó, ta khơng thể dùng trình duyệt nhúng mà thay vào đó, ta sử dụng QTextBrowser – dạng text hiển thị thẻ HTML – để hiển thị kết tìm kiếm cho người dùng Các thành phần module Search gồm: Báo cáo thực tập doanh nghiệp 21 Cao Đại Hồng Hùng - Khung nhập từ khóa tìm kiếm button tìm kiếm - Danh sách lựa chọn trang web mà người sử dụng muốn tìm kiếm - Khung kết tìm kiếm Kết tìm kiếm trả bảng kết tìm kiếm từ trang web tương ứng Hình 6: Module Search 3.2.7 Xây dựng chức tùy chỉnh cho chương trình Chức giúp người sử dụng thay đổi tùy chỉnh chương trình theo ý muốn Các tùy chỉnh chia thành tab: - - File locations (vị trí lưu tập tin): • Vị trí lưu tập tin tải tập tin chưa tải hồn tất • Vị trí lưu tập tin sau tải thành cơng • Vị trí lưu tập tin torrent Danh sách tập tin torrent module Library ghi nhận lại vị trí xác định Connection (tùy chỉnh kết nối): • • - Hình 7: Tab File locations Thiết lập số hiệu port cho việc tải tập tin Có thể lựa chọn số hiệu nhiên chương trình khởi port động ngẫu Tùy chỉnh băng thông tải lên tải xuống Bittorrent: Hình 8: Tab Connection • Thiết lập số lượng kết nối tối đa • Thiết lập số lượng máy trạm kết torrent • Thiết lập số lượng vị trí upload cho torrent • Thiết lập số lượng tối đa tiến trình tải hoạt động hàng đợi • Thiết lập số lượng tối đa torrent hoạt động hàng đợi nối tối đa cho Hình 9: Tab Bittorrent Báo cáo thực tập doanh nghiệp 22 Cao Đại Hoàng Hùng - Miscellaneous (thiết lập khác): • Thiết lập phần tự động mở tập tin có phần torrent chương trình Thiết lập thay đổi Registry ta nên chạy phần mềm với dùng Administrator để thực chức bật tắc chức mở rộng FinalTorrent hệ thống cấp đợ người 3.2.8 Xây dựng chương trình kiểm thử - Sau xây dựng xong module Hình 10: Tab Miscellaneous thành phần khác, tiến hành xây dựng đóng gói chương trình Sau đó, kiểm tra hoạt động chương trình theo yêu cầu đặt ban đầu - Sau kiểm tra sơ lược, gửi chương trình cho phận kiểm thử, phận kiểm thử kiểm tra lỗi chương trình cách tồn diện Nếu có lỗi xảy ra, phận kiểm thử có trách nhiệm log bug cho lập trình viên để sửa chữa - Nếu trình kiểm thử đạt u cầu, chương trình đóng gói cẩn thận, loại bỏ log (nếu có) trước gửi cho khách hàng phiên chạy thử Nếu chương trình đạt u cầu, ta tiến hành đóng gói thức 3.3 Kết đạt - Xây dựng phát triển ứng dụng tải tập tin torrent mang tên FinalTorrent hệ điều hành Windows Linux - Hiểu cách thức làm việc với Qt Framework với thư viện mã nguồn mở libtorrent-rasterbar - Hồn thành dự án cho cơng ty thời hạn Nhận xét, đánh giá doanh nghiệp số góp ý sinh viên 4.1 Về môi trường làm việc - Công ty TNHH BeeSight Soft nhìn chung giống cơng ty gia đình, số lượng nhân viên tương đối nên thành viên công ty thân thiện, biết quan tâm giúp đỡ lẫn Điều tạo điều kiện thuận lợi cho thành viên công ty hỗ trợ lẫn nhau, tạo cảm giác thoải mái cho nhân viên làm việc công ty Báo cáo thực tập doanh nghiệp 23 Cao Đại Hoàng Hùng - Bên cạnh đó, cơng ty có số lượng nhân viên khơng q lớn nên xung đột không xảy Điều tạo điều kiện tốt cho mối quan hệ thành viên cơng ty, giúp thành viên gắn bó thân thiết với nhau, san sẻ cơng việc cho nhau, tạo điều kiện cho công ty ngày phát triển 4.2 Về điều kiện làm việc - Tuy cơng ty nằm gọn tòa nhà nhỏ điều kiện sở vật chất đầu tư đầy đủ tiện nghi, đáp ứng nhu cầu làm việc nhân viên - Mỗi nhân viên có khơng gian làm việc riêng thoải mái, trang bị máy cấu hình cao, đường truyền cáp quang phục vụ tốt cho nhu cầu công việc Khi cần thiết nhân viên trao đổi dễ dàng với nhau, tìm cách hiệu để đạt mục đích cơng việc - Mỗi tháng công ty tổ chức cho nhân viên công ty thư giãn với buổi xem phim Điều giúp cho nhân viên giải tỏa căng thẳng mệt mỏi sau làm việc căng thằng mà thể quan tâm, sách ưu đãi cơng ty dành cho nhân viên.Ngoài ra, thực tốt dự án, nhân viên công ty khen thưởng xứng đáng - Tuy nhiên bên cạnh đó, giấc làm việc cơng ty theo tơi bất cập Cơng ty bắt đầu làm việc lúc 30 phút sáng kết thúc lúc chiều Khoảng thời gian làm việc buổi sáng rưỡi buổi chiều khoảng thời gian làm việc kéo dài đến rưỡi, thời gian làm việc buổi chiều dài kết thúc làm trễ nên nhân viên thường cảm thấy mệt mỏi Điều gây hiệu suất làm việc nhân viên giảm Mong thời gian tới cơng ty có biện pháp điều chỉnh giấc làm việc cho cân để chất lượng công việc sức khỏe nhân viên đảm bảo 4.3 Về số lượng nhân viên - Cơng ty có số lượng nhân viên tương đối thấp, đáp ứng công việc dừng lại dự án nhỏ Do thời gian tới cơng ty cần tuyển dụng thêm nhiều nhân viên để đáp ứng nhu cầu phát triển công ty - Chất lượng quản lý công việc công ty chưa thật tốt số lượng nhân viên quản lý ít, khơng thể đảm đương nhiều công việc lúc Đây vấn đề mà cơng ty cần quan tâm q trình phát triển tương lai 4.4 Về quy mô công ty Báo cáo thực tập doanh nghiệp 24 Cao Đại Hoàng Hùng - Do thành lập chưa lâu nên quy mô cơng ty tương đối nhỏ Các dự án thực mang tính cá nhân, tập thể độc lập, công ty chưa thể thực dự án có quy mơ lớn - Bên cạnh việc quảng bá thương hiệu công ty chưa trọng mức, phần thiếu thốn nhân lực quy mô công ty chưa đủ lớn Vì muốn phát triển tốt tương lai, công ty cần trọng đẩy mạnh phát triển quy mô công ty tăng cường quảng bá thương hiệu, khẳng định tên tuổi uy tín cơng ty lĩnh vực cơng nghệ thơng tin Việt Nam nước ngồi, góp phần đưa công nghệ thông tin nước nói chung cơng ty nói riêng ngày lên 4.5 Về tình hình kinh doanh cơng ty - Với xu ngành công nghệ thông tin ngày phát triển năm gần đây, lĩnh vực nghiên cứu phát triển phần mềm trọng Do đó, dự án công ty TNHH BeeSight Soft ngày phong phú đa dạng - Hiện xu di động phát triển cách nhanh chóng lĩnh vực công nghệ thông tin, từ smartphone máy tính bảng, tất nằm gọn lòng bàn tay Nắm tình hình này, cơng ty đầu tư phát triển ứng dụng phần mềm ứng dụng web tảng di động, từ IOS Android với đội ngũ nhân viên chất lượng cao tuyển dụng từ trường đại học hàng đầu Việt Nam Điều cho thấy cơng ty có định hướng đắn cho đường phát triển ... Cao Đại Hồng Hùng Báo cáo thực tập doanh nghiệp Cao Đại Hoàng Hùng PHẦN I: GIỚI THIỆU TỔNG QUAN VỀ DOANH NGHIỆP Giới thiệu công ty TNHH BeeSight Soft 1.1 Sơ lược công ty - Tên công ty: Công ty. .. đồ 1: Cơ cấu tổ chức công ty TNHH BeeSight Sof 1.4 Một số đặc điểm công ty - Công ty TNHH BeeSight Soft chuyên cung cấp cho khách hàng giải pháp công nghệ thông tin với công nghệ khác phù hợp... 815 - Email: hr@beesightsoft.com - Website: www.beesightsoft.com Công ty TNHH BeeSight Soft thành lập vào năm 2010, doanh nghiệp chuyên nghiên cứu, phát triển cung cấp giải pháp công nghệ thông