Tải bản đầy đủ (.docx) (58 trang)

Bài Tập Lớn Phát triển phần mềm hướng cấu phần

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.63 MB, 58 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----------

BÁO CÁO BÀI TẬP LỚN
Phát triển phần mềm hướng cấu phần
Đề tài: Xây dựng phần mềm quản lý điểm sinh viên
theo hệ thống tín chỉ
Giáo viên hướng dẫn:

Th.S Nguyễn Thái Cường

Sinh viên thực hiện:

Nhóm 8
1. Lê Tuấn Anh
2. Phạm Gia Khánh
3. Đào Sỹ Nam Anh

Hà Nội – tháng 12 năm 2016


MỤC LỤC

DANH MỤC BẢNG

2


DANH MỤC HÌNH ẢNH


3


LỜI CẢM ƠN
Bài tập lớn là môn học đánh khả năng làm việc theo nhóm của sinh viên,cũng
như tạo cho sinh viên tạo cho sinh viên tính tự lập đánh dấu sự trưởng thành của một
sinh viên, và khả năng làm việc dựa vào hướng dẫn của giáo viên, tạo điều kiện cho
sinh viên nghiên cứu Khóa luận tốt nghiệp Kỹ sư sau này và là sự chuyển tiếp trong
quá trình phấn đấu, học tập và rèn luyện của một sinh viên để trở thành một Kỹ sư
Công nghệ thông tin. Quá trình làm đồ án quá trình học tập, tích lũy và kiểm tra lại
kiến thức đã học và đem những kiến thức đó áp dụng vào thực tế.
Em xin chân thành cảm ơn thầy Nguyễn Thái Cường. Thầy đã trực tiếp hướng
dẫn nhóm em làm Bài Tập Lớn này . Trong quá trình thực hiện Bài Tập Lớn, thầy đã
tận tình định hướng, hướng dẫn và giúp đỡ nhóm em giải quyết các khó khăn trong
quá trình thực hiện bài tập lớn.
Lời cuối cùng, nhóm em xin chân thành cảm ơn thầy. Chúc thầy và toàn thể gia
đình sức khỏe và thành đạt.

Hà Nội, tháng 12 năm 2016.

4


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................

...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
...................................................................................................................
Hà Nội, ngày … tháng … năm 2016
Giáo viên hướng dẫn
Thạc Sĩ: NGUYỄN THÁI CƯỜNG

5


LỜI NÓI ĐẦU
Sau khi kết thúc môn học “Phát triển phần mềm hướng cấu phần”, với vốn kiến
thức đã tích lũy được trong quá trình học và thực hành, nhóm em thực hiện đề
tài :“Xây dựng chương trình quản lý điểm sinh viên theo hệ thống tín chỉ ”.
Với sự hứng thú và đam mê môn học em không ngừng tìm tòi sáng tạo thêm cái
mới, cái hay đưa vào đề tài của mình, và hoàn thiệt đề tài một cách tối ưu và tốt nhất.

Đó cũng là những kinh nghiêm cho các thành viên trong nhóm, để vẫn dụng trong
cuộc sống và rèn luyện bản thân cho ngày mai lập nghiệp.
Nhóm em xin gửi lời cảm ơn đến thầy giáo Nguyễn Thái Cường, thầy đã tận
tình chỉ bảo và có những bài giải hay để em hoàn thành tốt đề tài của mình. Trong quá
trình thực hiện đề tài không tránh khỏi việc vẫn có nhiều sai sót, khuyết điểm. Vì thế
em hy vọng nhận được sự đánh giá và đóng góp nhiệt tình từ phía thầy cô và các bạn
để bài của nhóm em được hoàn thiện hơn.

Nhóm 8 chúng em xin chân thành cảm ơn!

6


CHƯƠNG 1: GIỚI THIỆU SƠ BỘ VỀ ĐỀ TÀI
1. Tên đề tài
Xây dựng chương trình quản lý điểm sinh viên theo hệ thống tín chỉ

2. Lý do chọn đề tài
Hiện nay, ngành Công nghệ thông tin đã có những bước phát triển nhanh chóng
về ứng dụng của nó trong mọi lĩnh vực trong cuộc sống trên phạm vi toàn thế giới nói
chung và việt nam nói riêng. Công nghệ thông tin là một phần không thể thiếu của
cuộc sống văn minh, góp phần đẩy mạnh công cuộc công nghiệp hóa hiện đại hóa đất
nước. Việc ứng dụng những thành quả của khoa học công nghệ vào trong đời sống,
trong công tác là hết sức thiết yếu. Ứng dụng của công nghệ thông tin kết hợp với
truyền thông hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt
động của công ty, các tổ chức… nó đóng vai trò quan trọng và không thể thiếu. Công
nghệ thông tin và truyền thông hóa góp phần làm thay đổi suy nghĩ, lối mòn tư duy
của mỗi con người, nó giúp con người năng động hơn, kết nối nhanh hơn ở mọi lúc
mọi nơi làm tăng mức độ hiệu quả, năng suất của công việc.
Trước đây để có thể quản lý kết quản học tập của sinh viên phòng quản lý của

nhà trường phải in rất nhiều học bạ, mất rất nhiều thời gian và chi phí chưa kể một
trường đại học đông sinh viên như trường “Đại Học Công Nghiệp”. Để phục vụ cho
nhu cầu quản lý tốt kết quả học tập của sinh viên vừa đáp ứng được yêu cầu của nhà
trường. Nhóm 8 chúng em đã quyết định thực hiện đề tài: “Xây dựng chương trình
quản lý điểm theo hệ thống tín chỉ. ”

3. Mục tiêu – mục đích
• Mục tiêu
+ Xây dựng được bộ cơ sở dữ liệu chính xác, cập nhật, ổn định
+ Giao diện chương trình: bắt mắt với người dùng, thiết kế đầy đủ 1 số chức năng:
- Quản lý lớp học
- Quản lý môn học
7


- Quản lý học kỳ
- Quản lý thông tin sinh viên
- Quản lý điểm cho sinh viên
- Quản lý hệ thống
+ Đơn giản hóa cách thức tính điểm trung bình học kỳ và trung bình tích lũy của sinh
viên.

• Mục đích
Xây dựng chương trình hoàn thiện về mặt nội dung cũng như giao diện, góp
phần nâng cao về chất lượng, giúp bộ phận quản lý chất lượng dễ dàng quản lý hơn.

4. Bố cục của đề tài
Nội dung chính chia làm 3 chương:

• CHƯƠNG I : Giới thiệu sơ bộ về đề tài

• CHƯƠNG II: Cơ sở lý thuyết
• CHƯƠNG III: Phân tích thiết kế hệ thống
• CHƯƠNG IV: Thiết kế xây dựng hệ thống

5. Phương pháp thực hiện
- Hệ quản trị cơ sở dữ liệu: SQL Server 2008
- Ngôn ngữ : C#
- Visual Studio 2013
- Framework: .NET Framwork 4

8


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1.

Mô tả bài toán

• Một sinh viên khi mới vào trường sẽ được nhập thông tin cá nhân vào hệ
thống các thông tin gồm: Mã sinh viên, họ và tên, giới tính, ngày sinh, nơi
sinh và dân tộc.

• Vào đầu khóa học sinh viên sẽ được đăng ký các lớp học tại trang:
dttc.haui.edu.vn

• Với mỗi lớp sẽ lưu trữ các thông tin về mã lớp và tên lớp.
• Tiêu chuẩn xếp loại học lực theo học kỳ và theo khóa học:
 Loại Xuất Sắc
 Điểm trung bình trung tích lũy đạt từ 3.6 trở lên.
 Loại Giỏi

 Điểm trung bình trung tích lũy đạt từ 3.2 đến 3.59
 Loại khá
 Điểm trung bình trung tích lũy đạt từ 2.5 đến 3.19
 Loại trung bình
 Điểm trung bình trung tích lũy đạt từ 2.0 đến 2.49
 Loại yếu
 Điểm trung bình trung tích lũy đạt dưới 2.0
• Điểm trung bình trung tích lũy là điểm trung bình có trọng số của các học

phần đạt điểm A,B,C hoặc D mà sinh viên đã tích lũy được,tính từ đầu khóa
học cho tới thời điểm được xem xét vào kết thúc mỗi học kỳ.
• Sau mỗi học kỳ, sinh viên bị buộc thôi học nếu rơi vào một trong các trường
hợp sau:
a) Có điểm trung bình chung học kỳ đạt dưới 0,80 đối với học kỳ đầu của
khóa học; đạt dưới 1,00 đối với các học kỳ tiếp theo hoặc đạt
dưới 1,10 đối với 2học kỳ liên tiếp;
b) Có điểm trung bình chung tích lũy đạt dưới 1,20 đối với sinh viên năm
thứ nhất; dưới 1,40 đối với sinh viên năm thứ hai; dưới 1,60 đối với sinh
viên năm thứ ba hoặc dưới 1,80 đối với sinh viên các năm tiếp theo và
cuối khoá;
c) Vượt quá thời gian tối đa được phép học tại trường quy định tại khoản 3
Điều 6 của Quy chế này;

9


d) Bị kỷ luật lần thứ hai vì lý do đi thi hộ hoặc nhờ người thi hộ theo quy

định tại khoản 2 Điều 29 của Quy chế này hoặc bị kỷ luật ở mức xoá tên
khỏi danh sách sinh viên của trường.


10


2.2.

Các giải pháp công nghệ

2.2.1. .NET framework là gì ?
.NET Framework của Microsoft là một nền tảng lập trình tập hợp các thư viện
lập trình có thể được cài thêm hoặc đã có sẵn trong các hệ điều hành Windows.
Nó cung cấp những giải pháp thiết yếu cho những yêu cầu thông thường của
các chương trình điện toán như lập trình giao diện người dùng, truy cập dữ liệu,
kết nối cơ sở dữ liệu, ứng dụng web, các giải thuật số học và giao tiếp mạng.
Ngoài ra, .NET Framework quản lý việc thực thi các chương trình được viết
dựa trên .NET Frameworkdo đó người dùng cần phải cài .NET
Framework để có thể chạy các chương trình được viết trên nền .NET.

Chẳng hạn, để thiết kế một trò chơi đua xe, nếu không có bộ Framework
chuyên dụng cho game, người lập trình game phải tự tạo ra: khung xe, bánh xe,
người, đường đi, cây, biển báo... rồi mới tính đến chuyện “lắp ghép” chúng lại
với nhau để tạo ra không gian cho game; trong khi cũng với dạng trò chơi này,
nhưng nếu dùng bộ Framework có sẵn đã được phát triển thì người lập trình
viên chỉ cần viết các lệnh để lấy chúng ra từ Framework và ghép chúng lại.
Không phải mọi ngôn ngữ lập trình đều khai thác được Framework, muốn sử
dụng các “vật liệu” trong bộ Framework, đòi hỏi người lập trình viên phải dùng
các ngôn ngữ lập trình có hỗ trợ công nghệ .NET như VB.NET, C#.NET,
ASP.NET...
Framework có 2 thành phần chính là:


1. Common Language Runtime (CLR)

11


CLR là thành phần kết nối giữa các phần khác trong .NET Framework với
hệ điều hành. CLR là chương trình viết bằng .NET, không được biên dịch
ra mã máy mà nó được dịch ra một ngôn ngữ trung gian Microsoft
Intermediate Language (MSIL). Khi chạy chương trình, CLR sẽ dịch MSIL
ra mã máy để thực thi các tính năng, đảm bảo ứng dụng không chiếm dụng
và sử dụng tràn lan tài nguyên của hệ thống. Nó cũng không cho phép các
lệnh nguy hiểm được thi hành. Các chức năng này được thực thi bởi các
thành phần bên trong CLR như Class loader, Just In Time
compiler, Garbage collector, Exception handler, COM
marshaller, Security engine, …
Trong các phiên bản hệ điều hành Windows mới như XP.Net và Windows
2003, CLR được gắn kèm với hệ điều hành. Điều này đảm bảo ứng dụng
viết ra trên máy tính của bạn sẽ chạy trên các máy tính khác mà không cần
cài đặt.

2. NET Framework class library
12


NET Framework class library cung cấp thư viện lập trình như cho ứng
dụng, cơ sở dữ liệu, dịch vụ web...


Base class library – thư viện các lớp cơ sở
Đây là thư viện các lớp cơ bản nhất, được dùng trong khi lập trình hay bản

thân những người xây dựng .NET Framework cũng phải dùng nó để xây
dựng các lớp cao hơn. Ví dụ các lớp trong thư viện này
là String, Interger, Exception, …



ADO.NET và XLM
Bộ thư viện này gồm các lớp dùng để xử lý dữ liệu. ADO.NET thay
thế ADO để trong việc thao tác với các dữ liệu thông thường. Các lớp đối
tượng XML được cung cấp để bạn xử lý các dữ liệu theo định dạng
mới : XML. Các ví dụ cho bộ thư viện này
là SqlDataAdapter, SqlCommand, DataSet, XMLReader, XMLWriter,




ASP.NET
Ứng dụng Web xây dựng bằng ASP.NET tận dụng được toàn bộ khả năng
của .NET Framework. Bên cạnh đó là một phong cách lập trình mới mà
Microsoft đặt cho nó một tên gọi là code behind. Đây là cách mà lập trình
viên xây dựng các ứng dụng Windows based thường sử dụng – giao diện
và lệnh được tách tiêng. Tuy nhiên, nếu bạn đã từng quen với việc lập trình
ứng dụng web, đây là việc mà bạn giải phóng khỏi các lệnh HTML.
Sự xuất hiện của ASP.NET làm cân xứng giữa quá trình xây dựng ứng
dụng trên Windows và Web. ASP.Net cung cấp một bộ các Server
Control để lập trình viên bắt sự kiện và xử lý dữ liệu của ứng dụng như
đang làm việc với ứng dụng của Windows. Nó cũng cho phép bạn chuyển
một ứng dụng trước đây viết chỉ chạy trên Windows thành một ứng dụng
Web khá dễ dàng. Ví dụ cho các lớp trong thư viện này
là WebControl, HTML Control, …


13




Web services
Web services là các dịch vụ được cung cấp qua Web (hay Internet). Dịch
vụ được coi là Web service không nhằm vào người dùng mà nhằm vào
người xây dựng phần mềm. Web services có thể dùng để cung cấp các dữ
liệu hay một chức năng tính toán.



Windows form
Bộ thư viện về Windows form gồm các lớp đối tượng dành cho việc xây
dựng các ứng dụng Windows based. Việc xây dựng ứng dụng loại này vẫn
được hỗ trợ tốt từ trước đến nay bởi các công cụ và ngôn ngữ lập trình của
Microsoft. Giờ đây, ứng dụng chỉ chạy trên Windows sẽ có thể làm việc với
ứng dụng Web dựa vào Web service. Ví dụ về các lớp trong thư viện này
là Form, UserControl, …

14


2.2.2. Kiến trúc .NET Framework
.NET Framework bao gồm 2 phần chính là Common Language
Runtime (CLR) và Base Class Libraries (BCL), nhưng trên thực tế thì BCL
bao gồm ASP.NET và Windows Forms, nên một số tài liệu đã giới thiệu .NET
Framework bao gồm ba phần là bộ thực thi ngôn ngữ chung (Common

Language Runtime), các lớp lập trình hợp nhất hay còn gọi là các thư viện lớp
cơ sở (Base Class Libraries) và một phiên bản cấu thành của Microsoft Active
Server Pages gọi là Microsoftđ ASP.NET Một trong các thành phần này đều có
vai trò cực kỳ quan trọng trong việc phát triển các dịch vụ và các ứng
dụng .NET
Common Language Runtime (gọi tắt là bộ thực thi) được xây dựng trên các
dịch vụ hệ điều hành. Nó chịu trách nhiệm thực hiện các ứng dụng và đảm bảo
các phần liên quan đến ứng dụng đều được đáp ứng như quản lí bộ nhớ, an ninh
bảo mật, tích hợp ngôn ngữ..v.v. Bộ thực thi bao gồm nhiều dịch vụ hỗ trợ phát
triển và triển khai ứng dụng cũng như cải thiện tính đáng tin cậy của ứng dụng.
Tuy vậy, những nhà phát triển trên thực tế không tương tác với CLR. Họ sử
dụng một tập các thư viện lớp cơ sở được xây dựng bên trên bộ thực thi này
thông qua các ngôn ngữ lập trình. Như là một phần của các lớp cơ sở, .NET
Framework còn cung cấp một mô hình lập trình ứng dụng Web ASP.NET và
Windows Forms (để xây dựng các ứng dụng trên Windows).
Riêng ASP.NET cung cấp các thành phần và các dịch vụ ở mức cao hơn nhằm
mục đích phát triển các dịch vụ và các ứng dụng Web XML.

15


Common Language Runtime
Như các bạn đã biết, các ngôn ngữ lập trình khác nhau đều cung cấp
một runtime (bộ thực thi) và .NET Framework không phải là một ngoại lệ.
Tuy vậy bạn sẽ thấy bộ runtime này là khá đặc biệt so với phần lớn
các runtime chúng ta vẫn sử dụng.
Common Language Runtime trong .NET Framework quản lý sự thực hiện
mã và cung cấp sự truy cập vào nhiều loại dịch vụ giúp cho quá trình phát
triển được dễ dàng hơn. CLR đã được phát triển ở tầm cao hơn so với các
runtime trước đây như VB-runtime chẳng hạn, bởi nó đạt được những khả

nǎng như tích hợp các ngôn ngữ, bảo mật truy cập mã, quản lý thời gian sống
của đối tượng và hỗ trợ gỡ lỗi.

16


Mã được biên dịch và hướng tới CLR có tên "managed code". "Managed
code" cung cấp siêu dữ liệu (metadata) cần thiết cho CLR để cung cấp các
dịch vụ hỗ trợ đa ngôn ngữ, bảo mật mã, quản lý thời gian sống của đối tượng
và quản lý bộ nhớ.

Biên dịch mã quản lý (managed code)
.NET Framework đòi hỏi bạn phải sử dụng một trình biên dịch ngôn ngữ
"nhắm" vào CLR như trình biên dịch Visual Basic .NET, C# .NET, C++ .NET
hay JScript .NET của Microsoft. Chú ý rằng có nhiều trình biên dịch của đối
tác thứ ba có trên thị trường như COBOL và Perl.
Sau khi sử dụng một trong các trình biên dịch ngôn ngữ, mã của bạn được
biên dịch sang Microsoft Intermediate Language (MSIL hay đơn giản
IL). IL là một tập các lệnh độc lập CPU có thể được chuyển đổi dễ dàng sang
"native code". Siêu dữ liệu cũng được chứa bên trong IL.
IL độc lập với CPU có nghĩa mã IL không đáng tin cậy trên máy tính đặc thù
sinh ra nó. Nói cách khác, nó có thể được chuyển từ một máy này sang một
máy khác (miễn là máy tính hỗ trợ .NET Framework) mà không gặp bất cứ
khó khǎn nào. Sau IL, mã mà bạn bắt đầu với nó sẽ được biên dịch bởi trình
biên dịch JIT (Just-In-Time) tới mã máy hay "native code". IL chứa đựng mọi
thứ cần thiết để làm điều này như nạp các chỉ lệnh và gọi các hàm (call
methods) và một số các thao tác khác.

Trình biên dịch JIT
.NET Framework chứa đựng một hay nhiều trình biên dịch JIT có thể biên

dịch mã IL của bạn ra mã máy hay mã cho CPU cụ thể. Điều đó được thực
hiện khi ứng dụng chạy lần đầu tiên.

17


Bạn hãy chú ý quá trình này khi bạn xây dựng trang ASP.NET đầu tiên của
mình. Sau khi bạn xây dựng một trang ASP.NET bất kỳ, bạn biên dịch trang
này sang IL. Khi sử dụng trình duyệt và gọi trang bằng cách gõ URL của nó
vào thanh địa chỉ, bạn chú ý một sự tạm dừng không đáng kể khoảng vài giây.
Trên thực tế nó đang gọi mã IL và chuyển nó với một trình biên dịch JIT để
để biên dịch sang mã máy. Điều đó chỉ xảy ra lần đầu khi một ai đó yêu cầu
trang này. Sau lần đầu, bạn có thể gõ F5 để "refresh" lại trạng này và trang
được thực hiện ngay lập tức. Trang đã được chuyển đổi sang mã máy và bây
giờ được lưu giữ trong bộ nhớ. CLR biết rằng trình biên dịch JIT đã biên dịch
trang. Chính vì thế, nó nhận được đầu ra của trang từ bộ nhớ. Nếu về sau bạn
làm một sự thay đổi trang ASP.NET của bạn, hãy biên dịch lại, sau đó chạy
trang lần nữa, CLR phát hiện ra có sự thay đổi file gốc. Nó sử dụng trình biên
dịch JIT một lần nữa để biên dịch mã IL sang mã máy.
Trình biên dịch JIT đảm bảo, trong quá trình biên dịch sang mã máy, mã
được an toàn kiểu (type safe). Điều đó có nghĩa những đối tượng luôn tách rời
và chúng không cố ý làm hỏng một đối tượng khác.

Các Assembly
Trong các ứng dụng bạn xây dựng bên trong .NET Framework,
các assembly luôn đóng một vai trò quan trọng. Các assembly có thể được
hiểu như các khối hợp nhất (building block) của các ứng dụng của bạn. Nếu
thiếu một assembly liên quan, mã sẽ không thể biên dịch được từ IL. Khi bạn
đang sử dụng trình biên dịch để biên dịch mã từ mã được quản lý (managed
code) sang mã máy, trình biên dịch JIT sẽ tìm kiếm mã IL được cất giữ trong

một file PE cùng "assembly manifest" (bản kê khai assembly) có liên quan.
Cứ mỗi lần bạn tạo một ứng dụng Web Form hay Windows Form trong .NET,
thực tế bạn đang tạo ra một assembly. Cứ mỗi ứng dụng trong các ứng dụng
này có chứa tối thiểu một assembly.

18


Trong Windows DNA, nơi các DLL và EXE là những "khối hợp nhất"
(building block) của các ứng dụng, trong .NET, nó là assembly được sử dụng
như một cơ sở cho các ứng dụng.
Trong Windows DNA và COM, có những trường hợp được tham chiếu đến
như DLL hell. Các thành phần COM nói chung được thiết kế để chỉ có một
phiên bản của thành phần COM này trên một máy tính tại bất kỳ thời gian đã
cho nào. Bởi vì đặc tả COM không bao gồm cả thông tin phụ thuộc trong một
định nghĩa kiểu của thành phần. Với .NET, điều đó bây giờ có thể có nhiều
phiên bản của các component, hay các assembly, chạy trên cùng một server
cạnh nhau. Một ứng dụng sẽ luôn luôn tìm kiếm assembly xây dựng nó.
Khi một ứng dụng được bắt đầu trong .NET, ứng dụng sẽ tìm kiếm
một assembly trong thư mục cài đặt. Các assembly được lưu giữ trong một
thư mục cài đặt được trỏ đến đến các private assembly. Nếu ứng dụng không
tìm ra assembly trong thư mục cài đặt, ứng dụng sẽ quay ra GAC (Global
Assembly Cache) để tìm chúng.
Cấu trúc của một assembly:
Các assembly chứa mã được thực hiện bởi Common Language Runtime.
Cái được lớn nhất của assembly là chúng "tự mô tả" (self-describing). Tất cả
những chi tiết về assembly được cất giữ bên trong bản thân assembly đó.
Trong Windows DNA, COM cất giữ tất cả dữ liệu "tự mô tả" của nó trong
nơi đăng ký (registry) của server, và như vậy việc cài đặt cũng như loại bỏ các
thành phần COM có nghĩa dừng hoạt động (shutting down) IIS. Bởi vì một

assembly .NET cất giữ thông tin này bên trong bản thân nó, nó có thể thực
hiện chức nǎng XCOPY. Cài đặt một assembly cũng đơn giản như copy nó và
điều đó là không cần thiết để dừng hay bắt đầu IIS trong nó đang hoạt động.
Các assembly được tạo ra bởi các phần sau :
Bản kê khai assembly (Assembly manifest)
Kiểu siêu dữ liệu (Type metadata)
Mã MSIL (Microsoft Intermediate Language code)

19


Assembly manifest là nơi các chi tiết của assembly được cất giữ.
Còn assembly được cất giữ bên trong bản thân DLL hay EXE.
Các assembly có thể là những file assembly đơn hay nhiều file, và bởi
vậy assembly các assembly manifest được cất giữ trong assembly hay
trong một file rời. assembly manifest cũng cất giữ số phiên bản
của assembly để đảm bảo rằng ứng dụng luôn luôn được sử dụng đúng
phiên bản. Khi bạn có nhiều phiên bản của một assembly trên cùng một
máy tính, điều đó là rất quan trọng để gán nhãn chúng thật cẩn thận, như
vậy CLR biết được phiên bản nào đang được sử dụng.
Các số phiên bản trong các assembly được xây dựng theo các cách
sau: Kiểu siêu dữ liệu (Type metadata) đã được hiểu như "dữ liệu về dữ
liệu" (data about data). Siêu dữ liệu này chứa thông tin trên những kiểu
được đưa ra bởi assembly như thông tin cho phép bảo mật, thông tin về giao
diện và lớp và các thông tin về assembly khác.
Garbage collection (gom rác)
.NET Framework là một môi trường "gom rác". "Gom rác" là quá
trình của sự phát hiện khi các đối tượng không còn được sử dụng và tự động
phá hủy các đối tượng này, như vậy bộ nhớ được giải phóng.
"Gom rác" không phải là một khái niệm mới. Nó đã được sử dụng trong

các ngôn ngữ khác từ khá lâu rồi. Trong thực tế, Java đã có một hệ thống "gom
rác" đúng chỗ. Các ngôn ngữ khác như C++ không có "gom rác". Những nhà
phát triển C++ được yêu cầu rất cẩn thận khi hủy bỏ một đối tượng và giải
phóng bộ nhớ. Điều đó dẫn đến một số vấn đề thiếu hụt bộ nhớ. Nếu nhà phát
triển quên giải phóng các đối tượng từ ứng dụng, việc cấp phát bộ nhớ của ứng
dụng ngày càng tǎng, đôi khi là rất đáng kể. Việc giải phóng các đối tượng quá
sớm sẽ nảy sinh lỗi ứng dụng; các kiểu lỗi này, trong phần lớn trường hợp,
thường rất khó để theo dõi.
Trong .NET, bộ "gom rác" cho phép bạn khi làm việc mà không phải
theo dõi mã cho những đối tượng không cần thiết và phá hủy chúng. bộ "gom
rác" sẽ chú ý tất cả những điều này cho bạn. "Gom rác" không xảy ra ngay lập

20


tức, nhưng thay vào đó bộ "gom rác" thỉnh thoảng sẽ "vun đống" để xác định
những đối tượng nào sẽ phải phá hủy. Hệ thống mới này hoàn toàn miễn trách
nhiệm cho người phát triển luôn phải tìm cách để sử dụng cũng như giải phóng
bộ nhớ.
Với bộ "gom rác" mới này, bạn có thể điều khiển những khía cạnh nhất
định của những hàm của nó, như nó làm việc "sau hậu trường" trong ứng dụng
của bạn. Trong SDK documentation, tìm lớp System.GC để có thêm thông tin.
Base Class Libraries
Thư viện các lớp cơ sở .NET Framework cung cấp một tập các lớp
("APIs"), hướng đối tượng, có thứ bậc và có thể mở rộng và chúng được sử
dụng bởi bất cứ ngôn ngữ lập trình nào. Như vậy, tất cả các ngôn ngữ từ Jscript
cho tới C++ trở nên bình đẳng, và các nhà phát triển có thể tự do lựa chọn ngôn
ngữ mà họ vẫn quen dùng.
Tập các lớp, các kiểu giá trị và giao diện này được tổ chức bằng một hệ
thống các Namespace (xem định nghĩa phần dưới). Bảng 1 dưới đây đưa ra một

mô tả chi tiết những Namespace có sẵn trong .NET Framework. Một điều rất
quan trọng là chúng ta không chỉ giới hạn ở các Namespace này. Bạn có thể tự
tạo ra Namespace và sử dụng chúng trong ứng dụng của bạn hay cũng có thể
sử dụng các Namespace của đối tác thứ ba đang có đầy trên thị trường. Một ví
dụ cho trường hợp này là Namespace System.Data.Oracle.

2.2.3. Ngôn ngữ C#
C# là một ngôn ngữ lập trình đơn giản, hiện đại, mục đích tổng quát, hướng đối
tượng được phát triển bởi Microsoft và được phê chuẩn bởi European Computer
Manufacturers Association (ECMA) và International Standards Organization (ISO).
C# được phát triển bởi Anders Hejlsberg và team của ông trong khi phát
triển .Net Framework.
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm
Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ
high-level đa dạng trên các nền tảng và cấu trúc máy tính khác nhau.

21


Dưới đây là các lý do làm C# là ngôn ngữ lập trình chuyên nghiệp được sử dụng rộng
rãi:


Nó là một ngôn ngữ lập trình hiện đại, mục đích tổng quát.



Nó là hướng đối tượng.




Nó dễ dàng để học.



Nó là một ngôn ngữ được cấu trúc.



Nó tạo các chương trình hiệu quả.



Nó có thể được biên dịch trên nhiều nền tảng máy tính khác nhau.



Nó là một phần của .Net Framework.

Các đặc điểm lập trình mạnh mẽ của C# :
Cấu trúc C# khá gần với các ngôn ngữ high-level truyền thống, C và C++, và là
một ngôn ngữ lập trình hướng đối tượng. Nó có sự giống nhau mạnh mẽ với Java, nó
có nhiều đặc điểm lập trình mạnh mẽ mà làm cho nó trở nên ưa thích với các lập trình
viên trên toàn thế giới.
Dưới đây là các đặc điểm quan trọng của C#:


Điều kiện Boolean




Tự động dọn rác bởi Garbage-Collector (GC)



Thư viện chuẩn (Standard Library)



Assembly



Property và sự kiện (Event)



Delegate Quản lý sự kiện



Dễ dàng để sử dụng Generic



Indexer



Biên dịch có điều kiện (Conditional Compilation)




Đa luồng dễ dàng (Multithreading)



LINQ và Lambda Expression



Tích hợp với Windows

22


2.2.4. Microsoft SQL server 2008
SQL Server 2008 là một hệ quản trị cơ sở dữ liệu (Relational Database
Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa
Client computer và SQL Server computer. Một RDBMS bao gồm databases, database
engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong
RDBMS.
SQL Server 2008 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn
(Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho
hàng ngàn user. SQL Server 2008 có thể hoạt động kết hợp tốt với các server khác
như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server....
SQL Server 2008 được cấu tạo bởi nhiều thành phần như Relational Database
Engine, Analysis Service và English Query.... Các thành phần này khi phối hợp với
nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu
một cách dễ dàng.


2.2.5. Linq to SQL
• Với SQLExpress để truy vấn dữ liệu ta phải dùng đến các câu lệnh - Query khá
phức tạp. Hơn nữa để sử dụng trong ứng dụng C# lại thêm 1 tầng phức tạp nữa
với các câu lệnh: dùng ConnectionStringkhởi tạo kết nối tới DataBase, tự khai
báo các biến để chạy 1 lệnh - command, rồi còn phải tính toán đầu ra của câu
lệnh... Thật là quá phức tạp nếu như ta có 1 chương trình "khủng".
• Vậy làm sao để giải quyết vấn đề này?
• Một đề xuất là sử dụng Linq to SQL.
• Không chỉ áp dụng cho truy vấn SQL mà LinQ còn có khả năng hỗ trợ trên
nhiều nền tảng khác: XML, SQLite, Excel...
1. LinQ là gì?
Để giảm gánh nặng thao tác trên nhiều ngôn ngữ khác nhau và cải thiện năng
suất lập trình, Microsoft đã phát triển giải pháp tích hợp dữ liệu cho .NET
Framework có tên gọi là LINQ(Language Integrated Query), đây là thư viện mở
rộng cho các ngôn ngữ lập trình C# và Visual Basic.NET (có thể mở rộng cho các
ngôn ngữ khác) cung cấp khả năng truy vấn trực tiếp dữ liệu Object, CSDL và
XML.
LINQ là một tập hợp các thành phần mở rộng cho phép viết các câu truy vấn dữ
liệu ngay trong một ngôn ngữ lập trình, như C# hoặc VB.NET. Khi tạo một đối
tượng LINQ thì Visual Studio sẽ tự động sinh ra các lớp có các thành phần tương

23


ứng với CSDL của chúng ta. Khi muốn truy vấn, làm việc với CSDL ta chỉ việc gọi
và truy xuất các hàm, thủ tục tương ứng của LINQ mà không cần quan tâm đến các
câu lệnh SQL thông thường.
Tóm lại LINQ ra đời để giảm công sức cho những quá trình đơn giản và
“chung chung” trước đây.

Điểm mạnh (chưa chắc về độ mạnh, nhưng hay) của LINQ là “viết truy vấn
cho rất nhiều các đối tượng dữ liệu”. Từ CSDL, XML Data Object … thậm chí là
viết truy vấn cho một biến mảng đã tạo ra trước đó. Vì vậy mới có các khái niệm
LinQ to SQL, LinQ to XML, ….
Tuy nhiên so với mô hình Entity (Entity Framework), LINQ có yếu điểm là
chậm và thiếu nhất quán (hiện đại tất phải hại điện).
LINQ có từ bản .NET 3.5, vậy nên tối thiểu chương trình của bạn phải chạy
trên nền tảng này.
Visual Studio 2008, hoặc các phiên bản Express của nó là các bộ công cụ
phát triển tiêu biểu cho ứng dụng dùng LINQ.

2.3.

Giới thiệu về COP

2.3.1. Kiến trúc của hướng cấu phần
Nền tảng phát triển phần mềm là hướng thành phần
Phát triển phầm mềm hướng cấu phần COP Component-Oriented
Programming là quy trình xây dựng phần mềm từ những khối có sẵn và tái xử dụng,
giúp phần mềm giảm bớt độ phức tạp, và kích thước của phần mềm.
Đặc tính của phát triển phầm mềm hướng thành phần

 Là cho phép chương trình được xây dựng từ các thành phần phần mềm xây
dựng sẵn, trong đó có thể tái sử dụng , các khối độc lập với nhau.

 Các thành phần phải được xác định trường theo tiêu chuẩn bao gồm: giao diện,
kết nối, phiên bản và triển khai.

 Các thành phần có các dạng và kích thước khác nhau.
 COP phát triển phần mêm theo hướng lấp ráp các thành phần, COP nhấn mạnh

vào các giao diện và thành phần.
COP là một loại lập trình giao diện dựa trên khách hàng

24


CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH QUẢN
LÝ ĐIỂM THEO TÍN CHỈ
3.1.

Xác định yêu cầu của chương trình

Chương trình cần đạt đạt được những yêu cầu sau:

 Giao diện thân thiện dễ sử dụng
 Nhập thông tin sinh viên khi mới vào khoa.
 Phân lớp sinh viên vào đầu khóa học.
 Nhập điểm cho sinh viên.
 Tính điểm trung bình môn, trung bình học kỳ và trung bình trung tích
lũy theo hệ thống tín chỉ hiện nay.

 Thống kê danh sách sinh viên theo từng môn học,từng lớp học.
 Tìm kiếm sinh viên.
 Xếp loại tốt nghiệp cho từng sinh viên.

3.2.

Tác nhân của hệ thống
Tác Nhân


Mô Tả

Giáo viên

Là những người có tài khoản trong cơ sở
dữ liệu và tham gia vào việc thiết lập
thông tin và cập nhật điểm cho sinh viên.

Quản trị hệ thống

Là người có quyền cao nhất trong hệ
thống, quản lý hệ thống và quản lý cơ sở
dữ liệu của toàn bộ hệ thống.

Bảng 3.1: Các tác nhân của hệ thống

3.3.





Các ca sử dụng của hệ thống

Đăng nhập
Tìm kiếm sinh viên
Quản lý lớp học
Quản lý môn học

25



×