Tải bản đầy đủ - 0 (trang)
PHẦN II: NỘI DUNG THỰC TẬP

PHẦN II: NỘI DUNG THỰC TẬP

Tải bản đầy đủ - 0trang

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 và lập trình



Cài đặt và kiểm thử đơn vị



Tích hợp và kiểm thử hệ thống



Vận hành và 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ả u cầu: Xác định các đặc điểm mà hệ thống phải cung cấp, các ràng

buộc trong quá trình vận hành và phát triển, đồng thời xác định mục tiêu đặt ra đối với hệ

thống thông qua yêu cầu của khách hàng. Sau đó, ta tư liệu hóa các yêu cầu thu được

trong tài liệu.

- Thiết kế hệ thống và lập trình: Phân chia các yêu cầu cho hệ thống phần mềm,

sau đó thiết lập nên các 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 bằng cách xây dựng và mô tả các hệ thống phần mềm con cấu thành nên phần mềm

cần được xây dựng và mối quan hệ giữa các hệ thống.

- Cài đặt và kiểm thử đơn vị: Chuyển bản thiết kế phần mềm thành một tập hợp

các chương trình hoặc đơn vị chương trình, sau đó thực hiện hoạt động kiểm thử đơn vị

để phát hiện các khiếm khuyết, sửa các khiếm khuyết này và chỉ ra rằng chúng đã được

cài đặt theo đúng tài liệu đặc tả.

- Tích hợp và kiểm thử hệ thống: Các đơn vị chương trình được tích hợp lại với

nhau 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 sự ăn khớp giữa các thành phần và chỉ ra rằng phần mềm đã đáp ứng được yêu

cầu người dùng và nó được xây dựng theo đúng tài liệu đặc tả.

- Vận hành và bảo trì: Đưa phần mềm vào sử dụng trong thực tế và tiến hành các

sửa đổi cần thiết nếu người dùng phát hiện ra 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 trên phải được thực hiện một cách tuần tự,

kết thúc pha trước mới được thực hiện pha tiếp theo.

 Ư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ệ giữa các giai đoạn không được thể hiện.



- Hệ thống phải được kết thúc ở từng giai đoạn, do vậy rất khó thực hiện được

đầy đủ những yêu cầu của khách hàng vì trong mơ hình này rất khó khăn trong

việc thay đổi các pha đã thực hiện.

- Chỉ tiếp xúc với khách hàng ở pha đầu tiên nên phần mềm không đáp ứng được

hết các yêu cầu của khách hàng.

-



Chi phí phát triển dự án tương đối lớn.



-



Khả năng thất bại cao.



2.2. Log4net.

2.2.1. Tổng quan.

Log4net là một công cụ giúp người lập trình ghi lại những thơng tin trong lúc chạy

ứng dụng được xây dựng bằng .NET. Nó chính là một phiên bản chuyển thể từ Log4j và

vẫn tiếp tục được phát triển kể từ năm 2001. Trong trường hợp ứng dụng có lỗi mà vẫn

khơng tìm được ngun nhân, Log4net có thể giúp ta xác định nơi gây lỗi. Ngồi ra,

Log4net còn có thể 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 đó, khi sử dụng Log4net sẽ khơng ảnh hưởng đáng kể đến hiệu

suất của ứng dụng, Log4net còn được thiết kế với tính linh hoạt rất cao, chúng ta có thể

mở rộng và bổ sung những thứ mình muốn vào thư viện Log4net, chẳng hạn như cách

thức log, định dạng log.

2.2.2. Các cấp độ log.

Có tất cả 7 cấp độ log, tuy nhiên ta chỉ có thể gọi sử dụng được 5 loại. Các cấp độ

log theo thứ tự gồm:

1. OFF - khơng log gì cả (ta khơng sử dụng được cấp độ này).



Báo cáo thực tập doanh nghiệp



12



Cao Đại Hoàng Hùng



2. FATAL

3. ERROR

4. WARN

5. INFO

6. DEBUG

7. ALL - log tất cả (ta không sử dụng được cấp độ này).

Các cấp độ này đều có thể sử dụng nhiều lần cả trong mã lập trình cũng như trong

tập tin cấu hình.

2.2.3.Cài đặt.

Download phiên bản mới nhất của Log4net từ địa chỉ Website

http://logging.apache.org/log4net/ (các ví dụ dưới đây sử dụng phiên bản Log4net 1.2.10)

và thêm Reference vào project:



Hình 1: Cài đặt Log4net



2.2.4. Cấu hình

- Thêm dòng dưới đây vào file AssemblyInfo.cs (trong thư mục Property của

project):

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4netSam

ple.exe.config", Watch = true)]



-



Thêm đoạn code trên vào tập tin AssemblyInfo.cs sẽ giúp Log4net tìm thấy các

thơng tin cấu hình của nó ở tập tin App.config. Ở đây ta thấy

ConfigFile=“Log4netSample.exe.config” trong khi tập tin cấu hình của ta là App.config.

Nguyên nhân là do tập tin cấu hình của ứng dụng sẽ tự động build thành dạng



Báo cáo thực tập doanh nghiệp



13



Cao Đại Hồng Hùng



tên_assembly.config. Ví dụ chương trình đang thực hiện có tên là Log4netSample.exe

nên ở đây ta chọn tên tập tin cấu hình là Log4netSample.exe.config. Đối với ứng dụng

web ta sẽ thiết lập tên tập tin cấu hình ConfigFile=“Web.config” (Web là tên của ứng

dụng) vì tập tin cấu hình cho ứng dụng web sẽ không bị đổi tên.

- Nếu project chưa có tập tin App.config thì ta sẽ tự thêm vào tập tin này. Đây là

tập tin cấu hình cho ứng dụng. Sau đó thêm vào tập tin App.config các thẻ như sau:




type="log4net.Config.Log4NetConfigurationSectionHandler,

log4net" />






type="log4net.Appender.RollingFileAppender">

































Nội dung tập tin cấu hình:

Trong tập tin cấu hình trên ta sử dụng RollingFileAppender để ghi nội dung log

vào tập tin. Có rất nhiều loại Appender được xây dựng sẵn trong thư viện Log4net, ví dụ

như ta còn có thể sử dụng ConsoleAppender để ghi nội dung log ra cửa sổ console. Mỗi

loại có cơng dụng ghi nội dung log vào một nơi khác nhau.





 Thông tin log sẽ được ghi vào tập tin Log4netSampleLog.txt, tập tin này nằm cùng



thư mục với tập tin thực thi của ứng dụng. Nếu ta muốn lưu tập tin log này vào vị

trí khác, ta có thể 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 sẽ được lưu vào tập tin vì ta đang sử dụng RollingFileAppender. Khi

kích thước tập tin vượt quá một mức nào đó thì Log4net sẽ tự động đổi tên tập tin

cũ và ghi vào tập tin mới. Tổng số lượng tập tin tối đa sẽ là 10 và những tập tin cũ

nhất sẽ bị xóa nếu số lượng tập tin vượt quá 10.









Kích thước tập tin log tối đa là 1MB.









 Đây là phần quy định định dạng của nội dung log được ghi vào như ngày, tháng,



năm, thread id, tên lớp,… Ta có thể tùy biến định dạng theo ý riêng của mình.











 Quy định cấp độ log, mặc định sẽ là cấp Debug cho tất cả các log. Nghĩa là nếu ta



khai báo như trên thì toàn bộ các log ghi vào tập tin đều được ghi với cấp độ

Debug, cấp độ Debug là cấp độ thấp nhất mà ta có thể sử dụng được. Nếu ta thiết

lập giá trị Error thay cho Debug thì chỉ có những log nào có cấp độ cao hơn hoặc

bằng cấp độ Error mới được ghi xuống tập tin (xem thứ tự các cấp độ ở phần

trước). Khi deploy chương trình cho khách hàng, thường chúng ta sẽ thiết lập cấp

độ mặc định là Error, khi sử dụng có lỗi ta sẽ yêu cầu khách hàng sửa lại thành

Debug nếu cần thiết.

2.2.5. Sử dụng.

- Thêm namespace log4net vào những nơi mà ta muốn sử dụng Log4net.

- Thêm đoạn code dưới đây trong lớp nào có sử dụng Log4net:

private static readonly ILog logger

= LogManager.GetLogger(typeof(TênLớp).Name);



hoặc có thể 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 sẽ dùng đoạn code như 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 một biến boolean để kiểm tra

xem có cần log hay khơng, nếu có thì mới 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ả năng ghi những đoạn log vào tập tin như trên, Log4net còn cho phép ta

ghi log vào cơ sở dữ liệu, ghi ra cửa sổ console và thậm chí là có thể email cho chúng ta.

Bên cạnh đó, Log4net là một dự án mã nguồn mở, do đó ta có thể kế thừa, mở rộng và

phát triển thêm.

2.3. Nhibernate.

2.3.1. ORM Framework.

- Framework là một khái niệm trong phát triển phần mềm dùng để chỉ những

“cấu trúc hỗ trợ được định nghĩa” mà trong đó những dự án phần mềm khác có thể được

sắp xếp vào đó và phát triển.

- ORM (Object Relational Mapping) framework là một cơ chế cho phép người

lập trình thao tác với database một cách hồn tồn tự nhiên thơng qua các đố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” và “Layer”: tier thường được gắn với phần cứng về mặt vật lý (physical)

còn layer thì dính đến vấn đề cách thức tổ chức bên trong của ứng dụng. Việc phân chia

tier là “trong suốt” (transparent) đối với ứng dụng về mặt luận lý (logical). Điều này có

nghĩa là khi ta phát triển một ứng dụng, chúng ta không bận tâm đến các thành phần

(component) sẽ triển khai (deploy) ra sao mà chỉ chú ý là chúng ta sẽ tổ chức ứng dụng

thành những layer như thế nào.

- Persistence layer: một ứng dụng có thể được chia làm 3 phần như sau: giao

diện người dùng (presentation layer), phần xử lý nghiệp vụ (business layer) và phần chứa

dữ liệu (data layer). Cụ thể ra, business layer có thể được chia nhỏ thành 2 layer con là

business logic layer (các tính tốn nhằm thỏa mãn u cầu người dùng) và persistence

layer. Persistence layer chịu trách nhiệm giao tiếp với data layer (thường là một hệ quản

trị cơ sở dữ liệu quan hệ - Relational DBMS). Persistence sẽ đảm nhiệm các nhiệm vụ

mở kết nối, truy xuất và lưu trữ dữ liệu vào các Relational DBMS.

2.3.3. Hibernate Framework.

- Là một giải pháp kĩ thuật ánh xạ từ mơ hình hướng đối tượng xuống cơ sở dữ

liệu quan hệ (Object-relational mapping (ORM)) cho nền tảng Microsoft.NET.

-



Cung cấp một giải pháp để mapping đến cơ sở dữ liệu một 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 chúng ta các phương thức thao tác với cơ sở dữ liệu và tạo ra các

dữ liệu chuẩn dưới dạng các object. khi đó chúng ta sẽ thao tác với dữ liệu thông qua các

object.

- Tất cả các dữ liệu được lấy lên hoặc lưu lại sẽ được lưu vào bộ nhớ của máy và

sẽ được load lại hoặc đẩy xuống khi chúng ta thực hiện đẩy xuống hoặc load cơ sở dữ

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 về Qt Framework.

- Qt là một Framework cho phép xây dựng các ứng dụng có giao diện chạy

trên nhiều nền tảng: bao gồm hệ điều hành Symbian, Meego, Windows, Linux, Mac.

- Qt Framework bao gồm một thư viện hỗ trợ chạy đa nền, tích hợp với các

công cụ phát triển và các IDE. Với Qt Framework bạn có thể lập trình một ứng dụng trên

Windows và biên dịch để chúng chạy trên Linux hoặc Mac mà khơng phải thay đổi mã

nguồn của chương trình.

- Qt cũng hỗ trợ đa ngơn ngữ lập trình, ngồi phiên bản chính thức hỗ trợ cho

C++, Qt còn có các phiên bản binding cho các ngôn ngữ khác như Pascal, C#, Python,

Ruby v.v...

2.4.2. Lịch sử phát triển của Qt framework.

- Qt framework được khởi xướng bởi Haavard Nord (CEO công ty Trolltech's)

và Eirik Chambe-Eng (giám đốc công ty Trolltech) từ năm 1991 (ban đầu họ chỉ là những

lập trình viên bình thường). Đến năm 1995 phiên bản đầu tiên của Qt được cơng bố ra

cộng đồng, đó là phiên bản Qt 0.9.0.

- Năm 1999 Qt giành được giải thưởng Linux World cho thư viện/công cụ tốt

nhất. Và cũng trong khoảng thời gian này, công ty Trolltech được thành lập.

- Năm 2008 Nokia mua lại Trolltech, từ đây Qt được sở hữu và phát triển bởi

Nokia. Mã nguồn của Qt cũng được công bố cho cộng đồng mã nguồn mở.

- Hiện nay Qt có 2 phiên bản: Mơt phiên bản mã nguồn mở và một phiên bản

thương mại. Với phiên bản thương mại thì 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 của Qt.

-



QtOpenGl: Hỗ trợ đồ họa.



-



QtSvg: Hỗ trợ tạo và hiển thị các tập tin SVG.



-



QtWebkit: Hỗ trợ web.



-



QtXmlPattern: Hỗ trợ XPath, XQuery, XSLT,...



-



Qt3Support: Hỗ trợ các chức năng trong Qt3.



-



QtGui: Hỗ trợ giao diện người dùng.



-



QtNetwork: Hỗ trợ các tương tác trên mạng.



-



QtSql: Hỗ trợ sử dụng cơ sở dữ liệu.



-



QtXml: Hỗ trợ làm việc với Xml.



-



QtScript.: Hỗ trợ làm việc với các script.



Báo cáo thực tập doanh nghiệp

-



18



Cao Đại Hoàng Hùng



Phonon: Hỗ trợ các ứng dụng multimedia.

2.4.4. Các ưu điểm của Qt.

- Code một lần và chạy khắp mọi nơi: code trên Windows, chạy trên Linux,

Mac, thiết bị di động, thiết bị nhúng,...

-



Các thư viện trực quan, đơn giản và dễ sử dụng.



-



Tạo ra code dễ đọc, dễ mở rộng và dễ tái sử dụng.



-



Ứng dụng tạo ra có hiệu suất xử lý cao và chạy khá nhanh.



- OpenWebkit cho phép xây dựng và chạy các ứng dụng dựa trên nền web, ví dụ

như game viết bằng Html5, Css, JavaScript.

3. Dự án thực tập - xây dựng ứng dụng FinalTorrent bằng Qt Framework.

3.1. Yêu cầu.

- Xây dựng ứng dụng tải tập tin torrent bằng ngôn ngữ C++ dựa trên Qt

Framework.

- Ứng dụng phải có đầy đủ các chức năng và giao diện tương tự như phần mềm

FinalTorrent (http://www.finaltorrent.com).

-



Ứng dụng phải được xây dựng trên cả hai hệ điều hành Windows và MacOS.



- Sử dụng thư viện torrent libtorrent-rasterbar (tải về tại http://www.rasterbar

.com/products/libtorrent) để thực hiện các chức năng tải tập tin torrent cho ứng dụng.

- Dự án được coi là hoàn tất chỉ khi ứng dụng đáp ứng đầy đủ các yêu cầu đặt ra

và có thể tải tập tin torrent một cách chính xác.

3.2. Các bước thực hiện.

3.2.1. Xác định yêu cầu.

Tìm hiểu các yêu cầu của dự án, nắm rõ các công việc phải làm và lên kế hoạch

thực hiện.

3.2.2. Xây dựng cửa sổ chính cho chương trình.

Cửa sổ chính của chương trình bao gồm:

-



Thanh menu.



- Thanh button, chứa các button tương ứng với mỗi module (Home, Search,

Library, Downloads).

-



Vùng làm việc chứa các module.



Báo cáo thực tập doanh nghiệp



-



19



Cao Đại Hồng Hùng



Thanh trạng thái.



Hình 2: Cửa sổ chính chương trình FinalTorrent



3.2.3. Xây dựng module Home.

Module Home gồm các thành phần:

-



Phần giới thiệu: Giới thiệu về



chương trình.



- Phần tìm kiếm: Cho phép nhập từ

tập tin torrent và hiển thị kết quả tìm kiếm

Search.



khóa tìm kiếm

trong module



- Phần mở tập tin torrent: Cho phép mở tập tin torrent từ hệ thống và 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 được xem là

module quan trọng nhất của chương trình vì nó thực hiện các thao tác tải tập tin torrent

bằng cách sử dụng thư viện libtorrent-rasterbar có sẵn. Module này gồm có các thành

phần như sau:

- Danh sách các tập tin torrent đã

Danh sách này liệt kê chi tiết về quá 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 đang

còn lại v.v…

-



hoặc đang tải về.

tập tin torrent bao

trạng thái, quá

chia sẻ, thời gian



Các button hỗ trợ chức năng cho việc tải về bao gồm:





Start: Bắt đầu tải tập tin hoặc tiếp

tục tải nếu tập tin đang bị tạm

dừng.



Hình 4: Module Downloads



Báo cáo thực tập doanh nghiệp



20



Cao Đại Hồng Hùng







Pause: Tạm dừng q trình tải.







Cancel: Hủy q trình tải. Chú ý nếu q trình tải đã thành cơng thì nội

dung tải về vẫn còn tồn tại.







Delete: Xóa q trình tải. Chú ý nếu q trình tải đã thành cơng thì nội

dung tải về cũng sẽ bị xóa đi.



- Ngồi ra còn có một menu ngữ cảnh xuất hiện khi nhấp chuột phải vào các

mục trong danh sách tải về với các chức năng tương tự với các button.

3.2.5. Xây dựng module Library.

Các thành phần của module Library bao gồm:

- Danh sách các tập tin đã tải về (tên tập tin, kích thước, đường dẫn). Khi nhấp

đúp vào một tập tin chương trình sẽ mở ra tập tin tương ứng trong cửa sổ Windows

Explorer.

- Danh sách các tập tin torrent đã

trình lưu (tên tập tin, kích thước, đường dẫn).

vào một tập tin torrent, chương trình sẽ mở

tập tin torrent.

-



được

chương

Khi nhấp đúp

thư mục chứa các



Các button hỗ trợ chức năng bao gồm:





Open: Mở tập tin tương ứng từ danh dách.







Remove: Xóa tập tin tương ứng

trong danh sách.



Hình 5: Module Library



- Ngồi ra còn có một menu ngữ cảnh xuất hiện khi nhấp chuột phải vào các tập

tin trong danh sách với các chức năng tương tự như các button.

3.2.6. Xây dựng module Search.

Module Search được xây dựng bằng

cách sử dụng 2

trang web tìm kiếm tập tin torrent khá phổ

biến



www.mininova.org và www.legittorrents.info.

Yêu cầu của

khách hàng là nhúng một trình duyệt web vào

phần kết quả tìm

kiếm. Tuy nhiên, do đối với QT Framework,

nếu muốn sử

dụng một trình duyệt web nhúng thì ta phải sử dụng thư viện Webkit, mà thư viện này lại

có kích thước khá lớn (hơn 12MB). Do đó, ta khơng thể dùng trình duyệt nhúng được mà

thay vào đó, ta sử dụng một QTextBrowser – một dạng text có thể hiển thị các thẻ HTML

– để hiển thị các kết quả tìm kiếm cho người dùng. Các thành phần của module Search

gồm:



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

PHẦN II: NỘI DUNG THỰC TẬP

Tải bản đầy đủ ngay(0 tr)

×