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ỉ ”.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
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
Trang 2MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU SƠ BỘ VỀ ĐỀ TÀI 9
1 Tên đề tài 9
2 Lý do chọn đề tài 9
3 Mục tiêu – mục đích 9
4 Bố cục của đề tài 10
5 Phương pháp thực hiện 10
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 11
2.1 Mô tả bài toán 11
2.2 Các giải pháp công nghệ 12
2.2.1 .NET framework là gì ? 12
2.2.2 Kiến trúc NET Framework 15
2.2.3 Ngôn ngữ C# 21
2.2.4 Microsoft SQL server 2008 23
2.2.5 Linq to SQL 23
2.3 Giới thiệu về COP 24
2.3.1 Kiến trúc của hướng cấu phần 24
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ 25
3.1 Xác định yêu cầu của chương trình 25
3.2 Tác nhân của hệ thống 25
3.3 Các ca sử dụng của hệ thống 25
3.4 Biểu đồ ca sử dụng 27
3.4.1 Biểu đồ ca sử dụng chính 27
Trang 33.4.3 Biểu đồ ca sử dụng quản trị hệ thống 29
3.5 Đặc tả ca sử dụng 29
3.5.1 Ca sử dụng “Đăng nhập” 30
3.5.2 Ca sử dụng quản lý điểm 32
3.5.3 Ca sử dụng QuanLyMonHoc 33
3.5.4 Ca sử dụng QuanLyLop 36
3.5.5 Ca sử dụng quản lý SinhVien 38
3.5.6 Ca sử dụng QuanLyHocKy 40
3.5.7 Ca sử dụng bảng điểm chi tiết 42
3.6 Lược đồ trình tự chi tiết 43
CHƯƠNG 4: THIẾT KẾ XÂY DỰNG 49
4.1 Kiến trúc tổng quan 49
4.1.1 Phân tích hệ thống phía bên Người quản trị 50
4.1.2 Phân tích hệ thống phía Giáo viên 50
4.2 Xây dựng các Module 50
4.2.1 Module đăng nhập 51
4.2.2 Module tìm kiếm 51
4.3 Giới thiệu sản phẩm 52
KẾT LUẬN 57
1 Kết quả đạt được 57
2 Một số đề xuất hướng phát triển 57
TÀI LIỆU THAM KHẢO 58
Trang 4DANH MỤC BẢNG
Bảng 3.1: Các tác nhân của hệ thống 30
Bảng 3.2: Các ca sử dụng của hệ thống 31
Bảng 3.3: Đặc tả ca sử dụng Đăng nhập 35
Bảng 3.6.1: Bảng CSDL DangNhap 50
Bảng 3.6.2: Bảng CSDL DiemHP 51
Bảng 3.6.3: Bảng CSDL HocKy 51
Bảng 3.6.4: Bảng CSDL Lop 51
Bảng 3.6.5: Bảng CSDL MonHP 52
Bảng 3.6.6: Bảng CSDL SinhVien 52
Bảng 3.6.7: Bảng CSDL TacGia 53
Bảng 3.6.8: Bảng CSDL ThongTinHeThong 53
Trang 5DANH MỤC HÌNH ẢNH
Hình 3.1: Biểu đồ ca sử dụng chính 28
Hình 3.4.1: Biểu đồ hoạt động của ca sử dụng Đăng nhập 32
Hình 3.4.2: Biểu đồ lớp tham gia ca sử dụng Đăng nhập 32
Hình 3.4.3: Biểu đồ trình tự của ca sử dụng xem sản phẩm 32
Hình 3.5.1: Biểu đồ hoạt động của ca sử dụng sửa điểm 34
Hình 3.6.1: Biểu đồ hoạt động của ca sử dụng quản lý sản phẩm 35
Hình 4.1: Sơ đồ kiến trúc tổng quát 50
Hình 4.2: Module đăng nhập 52
Hình 4.3: Module tìm kiếm 53
Hình 4.4: Giao diện chính của chương trình 55
Hình 4.5: Giao diện quản lý lớp, quản lý sinh viên 56
Hình 4.6: Giao diện quản lý học kỳ, môn học phần 56
Hình 4.7: Giao diện bảng điểm chi tiết của sinh viên 57
Hình 4.8: Giao diện quản lý thông tin hệ thống 57
Trang 6LỜ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ũngnhư 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ộtsinh 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 chosinh 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 trongquá 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ạikiế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ướngdẫ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 trongquá 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.
Trang 7NHẬ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
Trang 8LỜ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ếnthứ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áimớ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 trongcuộ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ậntì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!
Trang 9CHƯƠ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óichung 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ủacuộ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 đấtnướ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ớitruyề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ôngnghệ 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ư duycủ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úcmọ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ủanhà 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ộttrường đại học đông sinh viên như trường “Đại Học Công Nghiệp” Để phục vụ chonhu 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
Trang 10- Quản lý học kỳ
- Quản lý thông tin sinh viên
- Quản lý điểm cho sinh viên
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
Trang 11CHƯƠ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ơisinh 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:
Đ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ọcphần đạt điểm A,B,C hoặc D mà sinh viên đã tích lũy được,tính từ đầu khóahọ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ườnghợ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ămthứ nhất; dưới 1,40 đối với sinh viên năm thứ hai; dưới 1,60 đối với sinhviê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;
Trang 12d) 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ênkhỏi danh sách sinh viên của trường.
Trang 132.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)
Trang 14CLR 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
Trang 15NET 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, …
Trang 16 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
Trang 172.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 ninhbả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
Trang 18Common 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
Trang 19Mã đượ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
Trang 20Bạ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.
Trang 21Trong 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ácthà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)
Trang 22Mã MSIL (Microsoft Intermediate Language code)
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á
Trang 23Trong 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 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 đốitượng được phát triển bởi Microsoft và được phê chuẩn bởi European ComputerManufacturers Association (ECMA) và International Standards Organization (ISO)
Trang 24C# được phát triển bởi Anders Hejlsberg và team của ông trong khi pháttriển Net Framework.
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồmExecutable 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
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ộngrã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
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
Trang 25 Đa luồng dễ dàng (Multithreading)
LINQ và Lambda Expression
Tích hợp với Windows
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 chohà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ộtcá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âulệ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?
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
Trang 26ngô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 ứ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áccâ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
1.
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
Trang 27 COP phát triển phần mêm theo hướng lấp ráp các thành phần, COP nhấnmạ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
Trang 28CHƯƠ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
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ậpthông tin và cập nhật điểm cho sinh viên
Trang 29 Quản lý thông tin sinh viên
Quản lý điểm sinh viên
Quản trị hệ thống
Đăng nhậpTìm kiếm sinh viênQuản lý lớp họcQuản lý môn họcQuản lý thông tin sinh viênQuản lý điểm sinh viênQuản lý học kỳ
Quản lý hệ thống
Bảng 3.2: Các ca sử dụng của hệ thống
Trang 303.4 Biểu đồ ca sử dụng
3.4.1 Biểu đồ ca sử dụng chính
Hình 3.1: Biểu đồ ca sử dụng chính
Trang 313.4.2 Biểu đồ ca sử dụng giáo viên
Hình 3.2: Biểu đồ ca sử dụng giáo viên