3. Dự kiến kết quả
2.3.2. Dữ liệu phục vụ chức năng công cấp công cụ hỗ trợ rèn luyện kỹ năng
năng.
Nhƣ đã phân tích ở trên, dữ liệu nguồn phục vụ cho chức năng này không thay đổi trong quá trình hệ thống làm việc. Hệ thống chỉ nhận bản văn của ngƣời dùng và tạo file âm thanh tƣơng ứng với bản văn hoặc chọn các hình ảnh tƣơng ứng với bản văn đƣợc nhập.
Đối với dữ liệu âm thanh cho công cụ rèn luyện Morse, ta sẻ tạo các âm thanh nguồn là âm tích và âm te và các âm thanh phụ khác nhƣ khoảng thời gian nghĩ giữa 2 từ, đoạn âm thanh mở đầu và kết thúc. Các âm thanh này đƣợc lƣu sẳn trong thƣ mục của phần mềm và khi chạy, hệ thống sẻ lấy các âm thanh này và ghép lại theo thứ tự tƣơng ứng trong bản văn để tạo thành một file âm thanh hoàn chỉnh thê hiện bản văn. Ở công cụ này, ngƣời sữ dụng đƣợc phép chọn cấp độ phát bản tin của phần mềm, do đó đối với mỗi cấp độ ta phải tạo các bộ âm thanh riêng tốc độ phát khác nhau.
Đối với dữ liệu dạng hình ảnh cho công cụ rèn luyện Semaphore, ta sẻ tạo các hình ảnh tƣơng ứng với các kí tự. Những hình ảnh này sẻ đƣợc lƣu sẵn trong thƣ mực của phần mềm. Khi chạy, hệ thống sẻ dựa theo thứ tự các kí tự trong bản văn mà lấy các hình ảnh này để cho xuất hiện trên cửa sổ luyện tập. Ở công cụ này, cấp độ phát phụ thuộc vào thời gian nghĩ giữa 2 hình ảnh, do đó ta chỉ cần một bộ hình ảnh là đủ.
CHƢƠNG III: XÂY DỰNG HỆ THỐNG 3.1. Lựa chọn công cụ xây dựng hệ thống
Sau khi phân tích hệ thống, tôi tiến hành tìm hiểu các công cụ xây dựng phần mềm. Qua quá trình tìm hiểu, tôi nhận thấy sử dụng ngôn ngữ lập trình C# trong bộ công cụ Visual Studio 2010 là thích hợp để xây dựng giao diện hệ thống và lập trình chức năng cho hệ thống. Thông tin về tài liệu tƣơng đối đơn giản, do đó có thể dùng công cụ Microsoft Office Access trong bộ công cụ Microsoft Offive của Mircosoft. Ngôn ngữ C# kết hợp với thƣ viện .NetFramework hỗ trợ tốt cho việc lập trình giao diện, xữ lý tốt nhiều loại dữ liệu nhƣ văn bản, hình ảnh, âm thanh.
Ngôn ngữ lập trình C#, bộ thƣ viện .Netframework và công cụ Microsoft Office Access có những đặc điểm sau:
3.1.1. Ngôn ngữ lập trình C#
C# là một ngôn ngữ lập trình hƣớng đối tƣợng đƣợc phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhƣng theo ECMA là C#, chỉ bao gồm dấu số thƣờng. Microsoft phát triển C# dựa trên C++ và Java. C# đƣợc miêu tả là ngôn ngữ có đƣợc sự cân bằng giữa C++, Visual Basic, Delphi và Java.
C# là một ngôn ngữ mang những đặc điểm của C++, có phong cách lập trình nhƣ Java và có mô hình ứng dụng nhƣ Basic.
Đặc điểm ngôn ngữ.
C# là ngôn ngữ lập trình phản ánh trực tiếp nhất đến .NET Framework mà tất cả các chƣơng trình .NET chạy, và nó phụ thuộc mạnh mẽ vào Framework này. Mọi dữ liệu cơ sở đều là đối tƣợng, đƣợc cấp phát và hủy bỏ bởi trình dọn rác Garbage- Collector (GC), và nhiều kiểu trừu tƣợng khác chẳng hạn nhƣ class, delegate, interface, exception, v.v, phản ánh rõ ràng những đặc trƣng của .NET runtime.
Ngôn ngữ C# là một ngôn ngữ đƣợc dẫn xuất từ C và C++, nhƣng nó đƣợc tạo từ nền tảng phát triển hơn. Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tínhmới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều trong số những đặc tính này khá giốngvới những đặc tính có trong ngôn ngữ Java. Không dừng lại ở đó, Microsoft đƣa ra một sốmục đích khi xây dựng ngôn ngữ này. Những mục đích này bao gồm:
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ nhƣ Java và c++, bao gồmviệc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class).Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến những vấn đề cho các ngƣờiphát triển C++.
Ngôn ngữ C# đơn giản, vì nó dựa trên nền tảng C và C++. Nếu chúng ta thân thiện với Cvà C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểuthức, toán tử và những chức năng khác đƣợc lấy trực tiếp từ ngôn ngữ C
và C++, nhƣng nó đã đƣợc cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài trong các sự cải tiến là loại bỏ các dƣ thừa, hay là thêm vào những cú pháp thay đổi.
C# chứa tất cả những đặc tính nhƣ là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính đƣợc mong đợi trong một ngôn ngữ hiện đại.
C# hỗ trợ những đặc điểm chính của ngôn ngữ hƣớng đối tƣợng (Object-oriented
language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism).
C# đƣợc sử dụng cho nhiều các dự án khác nhau nhƣ là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác
3.1.2. Thƣ viện .Netframework.
.NET Framework là một nền tảng lập trình và cũng là một nền tảng thực thi ứng dụng chủ yếu trên hệ điều hành Microsoft Windows đƣợc phát triển bởi Microsoft. Các chƣơng trình đƣợc viết trên nền .NET Framework sẽ đƣợc triển khai trong môi trƣờng phần mềm (ngƣợc lại với môi trƣờng phần cứng) đƣợc biết đến với tên Common Language Runtime (CLR). Môi trƣờng phần mềm này là một máy ảo trong đó cung cấp các dịch vụ nhƣ an ninh phần mềm (security), quản lý bộ nhớ (memory management), và các xử lý lỗi ngoại lệ (exception handling).
.NET framework bao gồm tập các thƣ viện lập trình lớn, và những thƣ viện này hỗ trợ việc xây dựng các chƣơng trình phần mềm nhƣ lập trình giao diện; truy cập, kết nối cơ sở dữ liệu; ứng dụng web; các giải thuật, cấu trúc dữ liệu; giao tiếp mạng... CLR cùng với bộ thƣ viện này là 2 thành phần chính của .NET framework.
.NET framework đơn giản hóa việc viết ứng dụng bằng cách cung cấp nhiều thành phần đƣợc thiết kế sẵn, ngƣời lập trình chỉ cần học cách sử dụng và tùy theo sự sáng tạo mà gắn kết các thành phần đó lại với nhau. Nhiều công cụ đƣợc tạo ra để hỗ trợ xây dựng ứng dụng .NET, và IDE (Integrated Developement Environment) đƣợc phát triển và hỗ trợ bởi chính Microsoft là Visual Studio.
3.1.2.1. Tổng quan về kiến trúc của .NET Framework
.NET Framework đƣợc thiết kế nhƣ là môi trƣờng tích hợp để đơn giản hóa việc phát triển và thực thi các ứng dụng trên Internet, trên desktop dƣới dạng Windows Forms, hoặc thậm chí là trên cả các thiết bị di động (với Compact Framework). Các mục tiêu chính mà .NET framework hƣớng đến là:
- Cung cấp một môi trƣờng hƣớng đối tƣợng nhất quán cho nhiều loại ứng dụng
- Cung cấp một môi trƣờng giảm tối thiểu sự xung đột phiên bản (“DLL
Hell” – Địa ngục DLL) từng làm điêu đứng các lập trình viên Windows (COM), và đơn giản hóa quá trình triển khai/cài đặt.
- Cung cấp một môi trƣờng linh động, dựa trên các chuẩn đã đƣợc chứng nhận để có thể chứa trên bất cứ hệ điều hành nào. C# và một phần chính của môi trƣờng thực thi .NET, CLI (Common Language Infrastructure – Hạ tầng ngôn ngữ chung) đã đƣợc chuẩn hóa bởi ECMA.
- Để cung cấp một môi trƣờng quản lý đƣợc, trong đó mã đƣợc dễ dàng xác thực
để thực thi an toàn.
Kiến trúc của .NET Framework đƣợc thiết kế thành 2 phần: CLR (Common Language Runtime – Khối thức thi ngôn ngữ chung) và FCL (Framework Class Library – Thƣ viện lớp khung) nhƣ hình dƣới:
Hình 3.1: Kiến trúc .Netframework
3.1.2.2. Môi trường thực thi ngôn ngữ chung CLR (Common Language Runtime)
CLR (Common Languge Runtime – Môi trƣờng thực thi ngôn ngữ chung) quản lý toàn bộ vòng đời của một ứng dụng: nó nạp các lớp có liên quan, quản lý sự thực thi của các lớp, và đảm bảo quản lý bộ nhớ một cách tự động. Ngoài ra, CLR còn hỗ trợ tích hợp giữa các ngôn ngữ để cho phép mã lệnh đƣợc sinh ra bởi các ngôn ngữ khác nhau có thể tƣơng tác với nhau một cách liền mạch.
a. Biên dịch mã lệnh .NET
Trình biên dịch tƣơng thích với CLR sẽ sinh mã thực thi cho môi trƣờng thực thi chứ không phải là mã thực thi cho CPU cụ thể. Mã thực thi này đƣợc biết đến qua tên gọi CIL (Common Intermediate Language – Ngôn ngữ trung gian chung), hay MSIL (Microsoft Intermediate Language – Ngôn ngữ trung gian của Microsoft); đó là ngôn ngữ kiểu assembler đƣợc đóng gói trong các file EXE hoặc DLL. Các file này không phải thuộc dạng file có thể thực thi nhƣ thông thƣờng, chúng cần trình biên dịch JIT (Just-in-Time) của môi trƣờng thực thi để chuyển đối IL chứa trong nó sang dạng mã lệnh cụ thể của máy khi ứng dụng thực sự thực thi.
Quá trình biên dịch, thực thi một chƣơng trình trong .NET framework có thể tóm tắt nhƣ sau:
- Chƣơng trình nguồn trƣớc hết sẽ đƣợc biên dịch và đóng gói thành một khối gọi là assembly. Khối này sẽ chứa các mã lệnh ngôn ngữ trung gian và các metadata mô tả thông tin cần thiết cho sự hoạt động của khối.
- Mỗi khi có yêu cầu thực thi assembly nói trên, CLR sẽ chuyển đối mã lệnh ngôn ngữ trung gian trong assembly thành mã lệnh tƣơng thích với CPU cụ thể trƣớc khi có thể thực thi.
Nhƣ vậy, lập trình viên có thể sử dụng bất cứ ngôn ngữ nào để phát triển ứng dụng trên .NET framework, miễn là ngôn ngữ đó có hỗ trợ .NET framework. Điều đặc biệt là, do sử dụng chung hệ thống kiểu dữ liệu, nên tính năng liên thông giữa các ngôn ngữ trên .NET framework là rất cao.
b. Hệ thống kiểu dữ liệu chung CTS (Common Type System)
CTS cung cấp một tập cơ sở các kiểu dữ liệu cho mỗi ngôn ngữ hoạt động trên .NET platform. Ngoài ra, nó đặc tả cách khai báo và tạo các kiểu dữ liệu tùy biến, cách quản lý vòng đời của một thể hiện của những kiểu dữ liệu này.
Mọi kiểu dữ liệu trong .NET đều đƣợc kế thừa từ kiểu dữ liệuS
ystem.Object. Các kiểu dữ liệu đƣợc chia làm hai loại: kiểu tham chiếu và kiểu giá trị. Kiểu dữ liệu tham chiếu đƣợc xử lý trong một vùng nhớ đặc biệt gọi là heap thông qua các con trỏ. Kiểu dữ liệu giá trị đƣợc tham chiếu trực tiếp trong stack của chƣơng trình.
c. Assemblies
Tất cả các mã đƣợc quản lý thực thi trong .NET đều phải đƣợc chứa trong một assembly. Một assembly đƣợc xem nhƣ là một file EXE hoặc DLL. Một asembly có thể chứa một tập hợp gồm một hay nhiều file chứa phần mã lệnh hoặc tài nguyên (nhƣ ảnh hoặc dữ liệu XML).
Một assembly đƣợc tạo ra khi trình biên dịch tƣơng thích với .NET chuyển một file chứa mã nguồn thành một file DLL hoặc EXE. Nhƣ minh họa trong hình 1.4, một assembly chứa một manifest, metadata, và ngôn ngữ trung gian sinh bởi trình biên dịch cụ thể.
Manifest: Mỗi assembly phải có một file chứa một manifest. Manifest này là một tập hợp các bảng chứa các metadata trong đó liệt kê tên của tất cả các file trong assembly, tham chiếu đến các assembly bên ngoài, và các thông tin nhƣ tên, phiên bản để định danh assembly đó. Một số assembly còn có cả chữ ký điện tử duy nhất (unique digital signature). Khi một assembly đƣợc nạp, nhiệm vụ đầu tiên của CLR là mở file chứa manifest để có thể định danh các thành viên có trong assembly.
Metadata: Ngoài các bảng trong manifest vừa định nghĩa, trình biên dịch C# còn sinh ra các bảng định nghĩa và bảng tham chiếu. Bảng định nghĩa cung cấp một ghi chú đầy đủvề các kiểu chứa trong IL. Ví dụ, có các bảng định nghĩa kiểu, phƣơng thức, trƣờng dữ liệu, tham số, và thuộc tính. Bảng tham chiếu chứa các thông tin về
tất cả các tham chiếu về kiểu và các assembly khác. Trình biên dịch JIT phụ thuộc vào các bảng này để chuyển IL sang mã máy.
3.1.3. Công cụ Microsoft Office Access.
3.1.3.1. Đặc điểm chung.
Microsoft Office Access, thƣờng đƣợc gọi tắt là MS Access hoặc đơn giản là Access, là một phần mềm quản lý cơ sở dữ liệu quan hệ do hãng Microsoft giữ bản quyền. Access thƣờng đƣợc đóng gói cùng các phần mềm khác trong bộ Microsoft Office và đƣợc sử dụng rộng rãi trong các máy tính cài hệ điều hành Windows.
Các file Microsoft Access thƣờng có phần mở rộng (đuôi) là mdb hay mdbx hay accdb.
Các nhà phát triển phần mềm và thiết kế dữ liệu có thể sử dụng Microsoft Access để phát triển các phần mềm ứng dụng , ngƣời quản lý có thể sử dụng nó để xây dựng các ứng dụng phần mềm. MS Access đƣợc hỗ trợ bởi Visual Basic cho việc lập trình các ứng dụng , một hƣớng đối tƣợng ngôn ngữ lập trình có thể tham khảo một loạt các đối tƣợng bao gồm cả DAO (Data Access Objects), ActiveX Data Objects, và nhiều thành phần ActiveX khác. Đối tƣợng trực quan đƣợc sử dụng trong các hình thức và báo cáo tiếp xúc với các phƣơng pháp và tài nguyên của chúng trong môi trƣờng lập trình VBA, và mô-đun mã VBA có thể gọi các hàm của hệ điều hành Windows.
3.1.3.2. Lịch sử phát triển:
- 1992: Microsoft phát hành phiên bản Access 1.0 vào 13 tháng 11 năm 1992, và
phiên bản 1.1 vào tháng 5 năm 1993 để cải thiện khả năng tƣơng thích với các sản phẩm khác của Microsoft bao gồm các ngôn ngữ lập trình khác.
- 1993: Microsoft quy định các yêu cầu phần cứng tối thiểu để truy cập v2.0.
- Ban đầu, phần mềm này làm việc tốt với cơ sở dữ liệu tƣơng đối nhỏ nhƣng thử
nghiệm cho thấy, một số trƣờng hợp gây ra lỗi dữ liệu . Cùng với sự giảm dần lƣợng sử dụng của Windows 95, 98 và ME, độ tin cậy mạng đƣợc cải thiện, và Microsoft đã phát hành 8 gói dịch vụ cho các Jet Database Engine , độ tin cậy của cơ sở dữ liệu truy cập đã đƣợc cải thiện và nó hỗ trợ cả nhiều dữ liệu và một số lƣợng lớn của ngƣời sử dụng.
- Với bộ MS Office 95, Microsoft Access 7.0 (hay còn gọi là "Access 95") đã trở thành một phần của Microsoft Office Professional Suite, gia nhập Microsoft Excel, Word và PowerPoint và chuyển từ Access Basic thành Visual Basic for Applications (VBA). Kể từ đó, Microsoft đã phát hành phiên bản mới của Microsoft Access với mỗi phiên bản của Microsoft Office.
- Phiên bản 3.0 của Microsoft Jet database engine đã có một vấn đề quan trọng về
yêu cầu cấu hình bộ nhớ trong. Microsoft đã sữa lỗi này ở phiên bản 3.5 của Microsoft Jet database engine.
- Các định dạng cơ sở dữ liệu cũng đã phát triển. Định dạng bao gồm Access 1.0, 1.1, 2.0, 7.0, 97, 2000, 2002, 2007, và 2010. Quá trình chuyển đổi quan trọng nhất là từ truy cập 97 sang định dạng Access 2000, đó là không tƣơng thích ngƣợc với các phiên bản trƣớc đó của Access. Nhƣ năm 2011 tất cả các phiên bản mới hơn của Access hỗ trợ định dạng Access 2000. Tính năng mới đƣợc thêm vào các định dạng Access 2002 có thể đƣợc sử dụng bởi Access 2002, 2003, 2007, và 2010.
3.1.3.3. Tính năng.
- Ngƣời dùng có thể tạo ra các bảng, truy vấn, biểu mẫu, báo cáo, và kết nối chúng lại với nhau với các macro . Ngƣời dùng cao cấp có thể sử dụng VBA để viết các giải pháp tiên tiến phong phú với thao tác dữ liệu và điều khiển ngƣời dùng. Truy cập cũng có tính năng tạo báo cáo có thể làm việc với bất kỳ nguồn dữ liệu Access có thể "truy cập".
- Access cho phép ngƣời dùng cuối để có thể "truy cập" dữ liệu từ bất cứ nguồn
nào. Các tính năng khác bao gồm: nhập và xuất dữ liệu với nhiều định dạng bao gồm Excel , Outlook , ASCII , dBase , Paradox , FoxPro , SQL Server , Oracle , ODBC , vv Nó cũng có khả năng liên kết dữ liệu hiện tại của mình để xem, truy vấn, chỉnh sửa, và báo cáo. Điều này cho phép các dữ liệu hiện có có thể thay đổi khi Access sử dụng các dữ liệu mới nhất.
- Ngoài ra còn có các đinh dạng Jet Database (MDB hoặc ACCDB trong Access
2007) có thể chứa các ứng dụng và dữ liệu trong một tập tin. Điều này rất thuận