Phương pháp nghiên cứu Để nghiên cứu và xây dựng phần mềm quản lý phù hợp với yêu cầu thực tế hiệnnay ở Công ty Ngọc Thảo, đề tài đã sử dụng các phương pháp sau: - Phương pháp thu thập t
Trang 1MỤC LỤC
MỤC LỤC i
DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT v
DANH MỤC HÌNH ẢNH, SƠ ĐỒ, BIỂU ĐỒ vi
DANH MỤC BẢNG BIỂU viii
PHẦN MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu nghiên cứu 2
3 Đối tượng, phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 3
5 Dự kiến kết quả đạt được 3
6 Kết cấu của đề tài 4
NỘI DUNG NGHIÊN CỨU 5
CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ XÂY DỰNG 5
1.1 Tổng quan về hệ thống thông tin quản lý 5
1.1.1 Khái niệm về hệ thống và hệ thống thông tin quản lý 5
1.1.1.1 Hệ thống và hệ thống quản lý 5
1.1.1.2 Hệ thống thông tin quản lý 5
1.1.1.3 Các loại thông tin quản lý 6
1.1.2 Cấu trúc hệ thống thông tin quản lý 6
1.1.3 Quy trình phát triển hệ thống thông tin quản lý 7
1.1.3.1 Khái niệm về quy trình phát triển hệ thống thông tin quản lý 7
1.1.3.2 Giới thiệu về mô hình thác nước 7
1.2 Hệ quản trị cơ sở dữ liệu SQL Server 9
1.2.1 Ngôn ngữ truy vấn dữ liệu có cấu trúc (SQL – Structure Query Language) 9
1.2.1.1 Khái niệm về SQL 9
Đại học Kinh tế Huế
Trang 21.2.1.2 Đặc điểm của SQL 10
1.2.1.3 Vai trò của SQL 10
1.2.2 Microsoft SQL Server 11
1.2.2.1 Tổng quan về Microsoft SQL Server 11
1.2.2.2 Thành phần của Microsoft SQL Server 11
1.3 Tổng quan về nền tảng lập trình NET Framework 12
1.3.1 Giới thiệu về NET Framework 12
1.3.2 Các tính năng của NET Framework 4.0 13
1.4 Ngôn ngữ lập trình C# 15
1.4.1 Giới thiệt ngôn ngữ lập trình C# 15
1.4.2 Mô hình ba lớp 17
1.4.2.1 Presentation Layer (Lớp giao tiếp người dùng) 17
1.4.2.2 Bussiness Logic Layer (Lớp xử lý chính dữ liệu) 18
1.4.2.3 Data Access Layer (Lớp thao tác trực tiếp với cơ sở dữ liệu) 18
1.4.2.4 Quy trình hoạt động 18
1.4.3 Tổng quan về lập trình hướng chức năng 20
1.4.3.1 Giới thiệu 20
1.4.3.2 Các khái niệm 20
CHƯƠNG 2: BÀI TOÁN QUẢN LÝ HOẠT ĐỘNG BÁN HÀNG TẠI CÔNG TY TNHH SX TM & DV NGỌC THẢO 23
2.1 Tổng quan về Công ty Ngọc Thảo 23
2.1.1 Thông tin tổng quan về Công ty 23
2.1.2 Cơ cấu tổ chức của Công ty Ngọc Thảo 24
2.1.3 Nhiệm vụ của các bộ phận 24
2.1.4 Tình hình hoạt động sản xuất kinh doanh 25
2.1.5 Tình hình ứng dụng công nghệ thông tin của công ty 26
Đại học Kinh tế Huế
Trang 32.2 Quy trình hoạt động quản lý bán hàng của Công ty 27
CHƯƠNG 3 : XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG CHO CÔNG TY TNHH SX TM & DV NGỌC THẢO 29
3.1 Phân tích hệ thống Quản lý bán hàng Công ty TNHH SX TM & DV Ngọc Thảo 29
3.1.1 Phân tích yêu cầu 29
3.1.1.1 Quản lý hệ thống 29
3.1.1.2 Quản lý thông tin các đối tượng 30
3.1.1.3 Quản lý xuất nhập 30
3.1.1.4 Tìm kiếm 30
3.1.1.5 Báo cáo, thống kê 30
3.1.2 Sơ đồ chức năng (BFD- Business Function Diagram) 30
3.1.3 Sơ đồ ngữ cảnh(CD- Context Diagram) 33
3.1.4 Sơ đồ luồng dữ liệu(DFD- Data Flow Diagram) 34
3.1.4.1 Sơ đồ phân rã mức 0 35
3.1.4.2 Sơ đồ phân ra mức 1 cho chức năng 1.0 36
3.1.4.3 Sơ đồ luồng dữ liệu mức 1 cho chức năng 2.0 36
3.1.4.4 Sơ đồ luồng dữ liệu mức 1 cho chức năng 3.0 37
3.1.4.5 Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0 37
3.1.4.6 Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0 38
3.1.5 Sơ đồ luồng thông tin(IFD- Information Flow Diagram) 39
3.1.5.1 Sơ đồ luồng thông tin nhập kho 39
3.1.5.2 Sơ đồ luồng thông tin bán hàng 39
3.2 Thiết kế cơ sở dữ liệu 40
3.2.1 Sơ đồ thực thể mối quan hệ (ERD – Entity Relationship Diagram) 41
3.2.2 Chuyển các mối quan hệ thành lược đồ quan hệ 41
Đại học Kinh tế Huế
Trang 43.2.3 Chuẩn hóa cơ sở dữ liệu 42
3.3 Thiết kế thuật toán 46
3.3.1 Kí hiệu sử dụng 46
3.3.2 Một số giải thuật trong chương trình 47
3.3.2.1 Giải thuật đăng nhập 47
3.3.2.2 Giải thuật cập nhật dữ liệu 47
3.3.2.3 Giải thuật xóa dữ liệu 48
3.3.2.4 Giải thuật nhập kho 48
3.3.2.5 Giải thuật bán hàng 49
3.4 Thiết kế giao diện 49
PHẦN KẾT LUẬN 51
TÀI LIỆU THAM KHẢO 53
Đại học Kinh tế Huế
Trang 5DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT
Ký hiệu
(viết tắt) Diễn giải
BLL Business Logic Layers (lớp logic nghiệp vụ)
DAL Data Access Layers (lớp truy cập dữ liệu)
TM & DV Thương mại và dịch vụ
Đại học Kinh tế Huế
Trang 6DANH MỤC HÌNH ẢNH, SƠ ĐỒ, BIỂU ĐỒ
Trang
Hình 1.1 Mô hình thác nước 7
Hình 1.2 Kiến trúc của NET Framework 13
Hình 2.1 Sơ đồ tổ chức Công ty TNHH SX TM & DV Ngọc Thảo 24
Hình 3.1 Sơ đồ chức năng Quản lý bán hàng tại công ty Ngọc Thảo 31
Hình 3.2 Sơ đồ chức năng Quản lý hệ thống 31
Hình 3.3 Sơ đồ chức năng Quản lý danh mục 32
Hình 3.4 Sơ đồ chức năng Quản lý xuất nhập 32
Hình 3.5 Sơ đồ chức năng Tìm kiếm 33
Hình 3.6 Sơ đồ chức năng Báo cáo thống kê 33
Hình 3.7 Sơ đồ ngữ cảnh hệ thống quản lý bán hàng tại Công ty Ngọc Thảo 34
Hình 3.8 Sơ đồ luồng dữ liệu mức 0 35
Hình 3.9 Sơ đồ luồng dữ liệu mức 1 cho chức năng 1.0 36
Hình 3.10 Sơ đồ luồng dữ liệu mức 1 cho chức năng 2.0 36
Hình 3.11 Sơ đồ luồng dữ liệu mức 1 cho chức năng 3.0 37
Hình 3.12 Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0 37
Hình 3.13 Sơ đồ luồng dữ liệu mức 1 cho chức năng 4.0 38
Hình 3.14 Sơ đồ luồng thông tin nhập kho 39
Hình 3.15 Sơ đồ luồng thông tin bán hàng 39
Hình 3.16 Sơ đồ thực thể mối quan hệ 41
Hình 3.17 Lược đồ cơ sở dữ liệu 46
Hình 3.18 Giải thuật đăng nhập 47
Hình 3.19 Giải thuật cập nhật dữ liệu 47
Đại học Kinh tế Huế
Trang 7Hình 3.20 Giải thuật xóa dữ liệu 48
Hình 3.21 Giải thuật nhập kho 48
Hình 3.22 Giải thuật bán hàng 49
Hình 3.23 Giao diện trang chủ 49
Hình 3.24 Giao diện thống kê tồn kho 50
Hình 3.25 Giao diện thống kê khách hàng 50
Đại học Kinh tế Huế
Trang 8DANH MỤC BẢNG BIỂU
Trang
Bảng 3.1 Cấu trúc dữ liệu bảng HoaDonBan 42
Bảng 3.2 Cấu trúc dữ liệu bảng ChiTietHoaDonBan 43
Bảng 3.3 Cấu trúc dữ liệu bảng HoaDonNhap 43
Bảng 3.4 Cấu trúc dữ liệu bảng ChiTietHoaDonNhap 43
Bảng 3.5 Cấu trúc dữ liệu bảng KhachHang 43
Bảng 3.6 Cấu trúc dữ liệu bảng LoaiHang 44
Bảng 3.7 Cấu trúc dữ liệu bảng MatHang 44
Bảng 3.8 Cấu trúc dữ liệu bảng NhaCungCap 44
Bảng 3.9 Cấu trúc dữ liệu bảng NhanVien 45
Bảng 3.10 Cấu trúc dữ liệu bảng DangNhap 45
Bảng 3.11 Bảng kí hiệu sơ đồ thuật toán 46
Đại học Kinh tế Huế
Trang 9PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Trong những năm gần đây, khoa học công nghệ Việt Nam đã từng bước hội nhậpvào dòng chảy của khoa học và công nghệ tiên tiến trên thế giới Công nghệ thông tin ởnước ta tuy mới, song tốc độ phát triển của nó rất nhanh và mạnh, đã chiếm một vị tríquan trọng trong các ngành khoa học công nghệ, len lỏi vào tất cả các khía cạnh trongđời sống xã hội cũng như trong công tác tổ chức, sản xuất quản lý
Một trong những lĩnh vực đang được ứng dụng tin học hóa rất phổ biến ở nước
ta là lĩnh vực quản lý Tin học hóa trong quản lý đã giúp cho các nhà quản lý điều hànhcông việc một cách khoa học, chính xác và hiệu quả Tất cả các cơ quan, công ty, tổchức đều muốn tin học hóa vào các hoạt động của mình
Hiện nay, các công ty làm về các mảng sản xuất, buôn bán và dịch vụ có quy môngày càng lớn Với nhiều khâu, trải qua nhiều công đoạn Lượng hàng hóa thì sản xuất
và bán ra ngày càng nhiều Số lượng khách hàng ngày càng tăng và thay đổi liên tục.Với sự phát triển về quy mô của công ty qua các năm thì công tác quản lý ngày càngtrở nên phức tạp Vì vậy, việc áp dụng công nghệ thông tin vào công việc quản lý đangtrở thành một nhu cầu thiết yếu và sống còn đối với mỗi công ty
Với việc có nhiều hơn một cơ sở, mỗi lần bán hàng phải viết lại một hóa đơn vàlưu trữ chúng Nếu muốn tìm lại những hóa đơn đó thì cần phải mất nhiều thời gian mà
có khi còn không tìm được đúng hóa đơn đó
Việc thống kê báo cáo hàng tháng, hàng năm sẽ gặp rất nhiều khó khăn vì lượnghóa đơn bán tăng quá nhiều Nếu hàng ngày cứ lặp đi lặp lại nhiều lần như vậy thìngười quản lý sẽ gặp rất nhiều khó khăn trong công tác lưu trữ và quản lý
Quản lý bán hàng là một vấn đề mà bất cứ công ty bán hàng nào cũng phải quantâm và phát triển nó hoàn thiện, tương thích với việc bán hàng của mình Chúng ta luônthấy có những sai sót trong bán hàng, nhập hàng hay là những thông tin về khách hàng,
Đại học Kinh tế Huế
Trang 10nhà cung cấp Vì vậy yêu cầu đặt ra ở đây là làm thế nào cho việc bán hàng trở nênhiệu quả nhất, giúp cho việc quản lý dễ dàng.
Tại Công ty TNHH SX TM & DV Ngọc Thảo, các quy trình quản lý bán hànghay quy trình kế toán vẫn đang rất thủ công và giám đốc công ty cũng như các nhânviên bán hàng rất mong muốn có một phần mềm để nhằm giảm sức lao động của nhânviên, giúp công tác quản lý nhanh chóng và nâng cao hiệu quả kinh doanh của công ty.Chính vì các lý do trên mà em đã quyết định chọn đề tài“Xây dựng phần mềm quản lý
bán hàng cho Công ty Trách nhi ệm hữu hạn Sản xuất Thương mại và Dịch vụ Ngọc
Th ảo” để nghiên cứu trong quá trình thực tập này.
2 Mục tiêu nghiên cứu
- Nghiên cứu và nắm vững quy trình bán hàng, nhập hàng, quản lý thông tin
- Nghiên cứu các công cụ, nền tảng lập trình được sử dụng để xây dựng hệ thống:
C Sharp, MS SQL Server 2012, ADO.NET
- Nắm vững cơ sở lý thuyết về phát triển hệ thống thông tin quản lý
-Xây dựng phần mềm quản lý hoạt động bán hàng cho công ty Ngọc Thảo
3 Đối tượng, phạm vi nghiên cứu
* Đối tượng nghiên cứu:
- Cơ chế, cách thức hoạt động của các nghiệp vụ bán hàng, quản lý thông tin, nhậphàng tại Công ty Ngọc Thảo
- Các công cụ, nền tảng lập trình để xây dựng hệ thống: ADO.NET, C Sharp, MSSQL Server 2012
- Quy trình xây dựng, phát triển hệ thống thông tin quản lý
Đại học Kinh tế Huế
Trang 11* Ph ạm vi nghiên cứu:
- Không gian: Hệ thống được xây dựng dựa trên việc khảo sát thực tế tại Công tyNgọc Thảo
- Thời gian:18/01/2016 – 15/5/2016
4 Phương pháp nghiên cứu
Để nghiên cứu và xây dựng phần mềm quản lý phù hợp với yêu cầu thực tế hiệnnay ở Công ty Ngọc Thảo, đề tài đã sử dụng các phương pháp sau:
- Phương pháp thu thập thông tin:
+ Phương pháp quan sát trực tiếp: Trực tiếp quan sát tại công ty
+ Phương pháp thu thập tài liệu: Thông qua các nguồn thu thập tài liệu như sáchbáo, mạng internet, tổng hợp các tài liệu, ngôn ngữ và công nghệ liên quan giúp nắmvững quy định quản lý kinh doanh ở Công ty, từ đó xây dựng hệ thống hoàn thiện hơn
+ Phương pháp phỏng vấn: Hỏi đáp nhân viên đang sử dụng phần mềm hiện tại,nhu cầu và mong muốn của các nhân viên trong việc quản lý nhằm khắc phục và nângcao hiệu quả hơn trong quá trình quản lý
- Phương pháp mô hình hóa: Sử dụng các mô hình, sơ đồ mô tả lại các quy
trình, nghiệp vụ quản lý hoạt động kinh doanh tại Công ty
- Phương pháp phát triển hệ thống thông tin: Dựa trên những thông tin đã thu
thập tiến hành phân tích, thiết kế hệ thống bao gồm các chức năng chính của phầnmềm sẽ xây dựng, chuẩn hóa cơ sở dữ liệu và mã hóa để đưa ra sản phẩm phần mềmphù hợp yêu cầu
5 Dự kiến kết quả đạt được
- Nắm vững các quy trình nghiệp vụ bán hàng
- Hiểu rõ các thông tin về hóa đơn nhập, xuất
- Nắm rõ các công cụ, nền tảng lập trình được sử dụng để xây dựng hệ thống
- Hiểu rõ quy trình xây dựng và phát triển hệ thống thông tin
- Phần mềm Quản lý bán hàng cho Công ty Ngọc Thảo
Đại học Kinh tế Huế
Trang 126 Kết cấu của đề tài
Ngoài phần mở đầu và kết luận, nội dung của khóa luận được kết cấu thành 3chương như sau:
Chương 1: Cơ sở lý luận về xây dựng phần mềm quản lý bán hàng
Chương 2: Bài toán quản lý hoạt động bán hàng tại Công ty TNHH SX TM & DVNgọc Thảo
Chương 3: Xây dựng phần mềm quản lý bán hàng cho Công ty TNHH SX TM
& DV Ngọc Thảo
Đại học Kinh tế Huế
Trang 13NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ XÂY DỰNG
PHẦN MỀM QUẢN LÝ BÁN HÀNG 1.1 Tổng quan về hệ thống thông tin quản lý
1.1.1 Khái ni ệm về hệ thống và hệ thống thông tin quản lý
1.1.1.1 Hệ thống và hệ thống quản lý
Hệ thống là tập hợp các phần tử tương tác được tổ chức nhằm thực hiện mộtmục đích xác định Các phần tử ở đây là tập hợp các phương tiện vật chất và nhân lực
Tổ chức tạo thành một hệ thống mở, nghĩa là liên hệ với một môi trường Một số phần
tử của hệ thống có sự tương tác với bên ngoài (cung ứng, thương mại, v.v…)
Đặc điểm cơ bản của hệ thống là tính tự động Hệ thống quản lý là một hệ thống
có mục đích mang lại lợi nhuận hoặc lợi ích nào đó Đặc điểm của hệ thống là có sựtham gia của con người và có trao đổi thông tin
1.1.1.2 Hệ thống thông tin quản lý
Hệ thống thông tin quản lý là hệ thống cung cấp thông tin cho công tác quản lýcủa tổ chức Hệ thống bao gồm con người, thiết bị và quy trình thu thập, phân tích,đánh giá và phân phối những thông tin cần thiết, kịp thời và chính xác cho nhữngngười soạn thảo các quyết định trong tổ chức
Hệ thống thông tin quản lý cũng là tên gọi của một chuyên ngành khoa học.Ngành khoa học này thường được xem là một phân ngành của khoa học quản lý vàquản trị kinh doanh Ngoài ra, do ngày nay việc xử lý dữ liệu thành thông tin và quản
lý thông tin liên quan đến công nghệ thông tin, nó cũng được coi là một phân ngànhtrong toán học, nghiên cứu việc tích hợp hệ thống máy tính vào mục đích tổ chức
Đại học Kinh tế Huế
Trang 141.1.1.3 Các loại thông tin quản lý
Thông tin quản lý là những dữ liệu được xử lý và sẵn sang phục vụ công tácquản lý tổ chức Có 3 loại thông tin quản lý trong một tổ chức, đó là thông tin chiếnlược, thông tin chiến thuật và thông tin điều hành
* Thông tin chi ến lược: là thông tin sử dụng cho chính sách dài hạn của tổ
chức, chủ yếu phục vụ cho các nhà quản lý cao cấp khi dự đoán tương lai
* Thông tin chi ến thuật: là thông tin sử dụng cho chính sách ngắn hạn, chủ yếu
phục vụ cho nhà quản lý phòng ban trong tổ chức
* T hông tin điều hành: sử dụng cho công tác điều hành tổ chức hàng ngày và
chủ yếu phục vụ cho người giám sát hoạt động tác nghiệp của tổ chức
1.1.2 Cấu trúc hệ thống thông tin quản lý
Một hệ thống thông tin quản lý được thiết kế cấu trúc tốt gồm bốn hệ thống con, đó
là các hệ thống ghi chép nội bộ, hệ thống tình báo, hệ thống nghiên cứu và hệ thống hỗtrợ quyết định
* H ệ thống ghi chép nội bộ: Đảm bảo cung cấp những số liệu hiện thời, nhiều tổ
chức đã phát triển những hệ thống ghi chép nội bộ tiên tiến có sử dụng máy tính để có thểcung cấp thông tin nhanh và đầy đủ hơn
* H ệ thống tình báo: Cung cấp cho các nhà quản lý những thông tin hàng ngày,
tình hình đang diễn ra về những diễn biến của môi trường bên ngoài
* H ệ thống nghiên cứu thông tin: Thu thập những thông tin liên quan đến một
vấn đề cụ thể đặt ra trước tổ chức, đặc điểm của việc nghiên cứu thông tin tốt là cóphương pháp khoa học, sử dụng nhiều phương pháp, xây dựng mô hình, lượng định tỷ lệchi phí/lợi ích của giá trị của thông tin
* Hệ thống hỗ trợ quyết định: Gồm các phương pháp thống kê và các mô hình
quyết định để hỗ trợ các nhà quản lý ban hành các quyết định đúng đắn hơn
Đại học Kinh tế Huế
Trang 151.1.3 Quy trình phát triển hệ thống thông tin quản lý
1.1.3.1 Khái ni ệm về quy trình phát triển hệ thống thông tin quản lý
Quy trình phát triển hệ thống là một tập hợp các hoạt động, phương pháp, thựcnghiệm, kết quả và các công cụ tự động hóa mà các nhân sự sử dụng để phát triển vàcải thiện không ngừng hệ thống thông tin và phần mềm
M ột quy trình phù hợp để phát triển hệ thống phải bảo đảm:
- Hiệu quả để cho phép nhà quản lý điều chuyển nguồn lực giữa các dự án.
- Tài liệu nhất quán nhằm giảm chi phí thời gian sống để bảo trì hệ thống (bởi các
đội phát triển khác) về sau
- Chất lượng nhất quán xuyên suốt các dự án.
1.1.3.2 Giới thiệu về mô hình thác nước
Để xây dựng phần mềm, khóa luận này lựa chọn áp dụng mô hình thác nước Môhình thác nước (waterfall model) là một mô hình của quy trình phát triển phần mềm, trong
đó quy trình phát triển giống như một dòng chảy, với các pha được thực hiện theo trật tựnghiêm ngặt và không có sự nhảy vượt
Hình 1.1 Mô hình thác nước
Nguồn: Mô hình thác nước (Waterfall model) - http://trantronglekhanh.wordpress.com
Đại học Kinh tế Huế
Trang 16Mô hình thác nước có ưu điểm là: Dễ quản lý; Thời gian hoàn thành dự án thườngđược dự báo với độ chính xác hơn; Các tài liệu đầu ra của từng giai đoạn cũng được xâydựng đầy đủ và hệ thống hơn là: phân tích yêu cầu, thiết kế triển khai thực hiện, kiểm thử,liên kết và bảo trì Dựa vào mô hình thác nước trên ta sẽ có 6 bước để xây dựng một phầnmềm:
Bước 1: Khảo sát tìm hiểu yêu cầu
Mô tả trừu tượng các dịch vụ mà hệ thống được mong đợi phải cung cấp và cácràng buộc mà hệ thống phải tuân thủ khi vận hành Nó chỉ có các đặc tả bên ngoài của hệthống mà không liên quan đến các đặc tính thiết kế Nó phải được viết sao cho người ta cóthể hiểu được mà không cần một kiến thức chuyên môn đặc biệt nào
Bước 2: Phân tích các yêu cầu
Bước này là bước rất quan trọng vì nó là bước đầu tiên để hình thành nên một phầnmềm Với sản phẩm phần mềm được xây dựng, việc hiểu đầy đủ các đặc điểm của nó làđiều không dễ Quá trình xác định các chức năng và các ràng buộc của phần mềm gọi làtìm hiểu và xác định yêu cầu Để có được điều này thì cần phải trả lời câu hỏi "cái gì? -what?" chứ không phải là "như thế nào? - how?" Tìm hiểu, xác định và phân tích yêu cầu
là bước hình thành bài toán, do vậy các yêu cầu của bài toán cần phải được tìm hiểu vàphân tích theo chiều rộng (ngang) và theo chiều sâu Vì vậy ta cần phải tìm hiểu và phântích đầy đủ các tất cả các yêu cầu một cách tối ưu nhất để dễ dàng tiến hành các bước tiếptheo
Bước 3: Thiết kế phần mềm và hệ thống
Xây dựng ứng dụng phần mềm là một dây chuyền các chuyển đổi, mà ở đó phântích nhằm xác định ứng dụng sẽ thực hiện cái gì (what?) còn thiết kế nhằm để trả lời câuhỏi phần mềm cụ thể sẽ như thế nào (how?) Tức là xác định cách thức thực hiện những gì
đã được đặt ra ở phần phân tích Trong ba giai đoạn: thiết kế, cài đặt và bảo trì thì thiết kế
là giai đoạn quan trọng nhất, chịu trách nhiệm đến 80% đối với sự thành công của một sảnphẩm Quá trình thiết kế tốt là cơ sở để quản lý và giảm chi phí cho công việc bảo trì phầnmềm sau này
Đại học Kinh tế Huế
Trang 17Bước 4: Cài đặt và thử nghiệm đơn thể phần mềm
Cài đặt là việc thực thi những gì đã thiết kế Nếu trong quá trình cài đặt có xuất hiệnvấn đề thì phải quay lại sửa bản thiết kế Cài đặt là một công đoạn trong việc phát triểnphần mềm và nó được xem là một hệ quả tất yếu của thiết kế Tuy vậy, phong cách lập trình
và các đặc trưng của ngôn ngữ lập trình có ảnh hưởng lớn đến chất lượng của phần mềm.Một chương trình được cài đặt tốt đem lại cho ta thuận lợi trong việc bảo trì sau này
Bước 5: Thử nghiệm tổng quát phần mềm
Sản phẩm phần mềm được gọi là đúng nếu nó thực hiện được chính xác những tiêuchuẩn mà người thiết kế đã đặt ra Để có một đánh giá chính xác về cấp độ đúng của phầnmềm, ta phải kiểm tra chất lượng phần mềm Như thế, kiểm tra là quá trình tìm lỗi và nó
là một đánh giá cuối cùng về các đặc tả, thiết kế và mã hoá Mục đích của kiểm tra là đảmbảo rằng tất cả các thành phần của ứng dụng ăn khớp, vận hành như mong đợi và phù hợpcác tiêu chuẩn thiết kế
Bước 6: Bảo trì và phát triển phần mềm
Bảo trì là giai đoạn cuối cùng của một chu trình phát triển phần mềm Các chươngtrình máy tính luôn thay đổi - phải mở rộng, sửa lỗi, tối ưu hoá và theo thống kê thì bảotrì chiếm đến 70% toàn bộ công sức bỏ ra cho một dự án phần mềm Do vậy, bảo trì làmột hoạt động phức tạp nhưng nó lại là vô cùng cần thiết trong chu trình sống của sảnphẩm phần mềm để đảm bảo cho phần mềm phù hợp với người sử dụng
1.2 Hệ quản trị cơ sở dữ liệu SQL Server
1.2.1 Ngôn ng ữ truy vấn dữ liệu có cấu trúc (SQL – Structure Query Language)
1.2.1.1 Khái niệm về SQL
SQL (Structure Query Language) là một công cụ quản lý dữ liệu được sử dụng phổbiến ở nhiều lĩnh vực và nó bao gồm tập các câu lệnh sử dụng để tương tác với cơ sở dữliệu quan hệ Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL như Visual Basic,Oracle, C++, C#…
Đại học Kinh tế Huế
Trang 18SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở dữliệu cung cấp cho người dùng bao gồm: định nghĩa dữ liệu, truy xuất và thao tác dữliệu, điều khiển và truy cập.
SQL là một ngôn ngữ hoàn thiện được sử dụng trong các hệ thống cơ sở dữ liệu và
là một thành phần không thể thiếu trong các hệ quản trị cơ sở dữ liệu
1.2.1.2 Đặc điểm của SQL
SQL là ngôn ngữ tựa tiếng Anh
- SQL là ngôn ngữ phi thủ tục, nó không yêu cầu cách thức truy nhập cơ sở dữ liệunhư thế nào, tất cả các thông báo của SQL rất dễ sử dụng và ít khả năng mắc lỗi
- SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp dữ liệu
- Chèn, cập nhật, xóa các hàm trong một quan hệ
- Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của cơ sở dữ liệu đểđảm bảo tính bảo mật của cơ sở dữ liệu
- Đảm bảo tính nhất quán và sự ràng buộc của cơ sở dữ liệu
- : Integer, number (n,p), varchar(n), char(n), nvarchar(n), data, …
1.2.1.3 Vai trò của SQL
SQL là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiện trong các hệ quản trị
cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếp giữa người sử dụng và hệ quảntrị cơ sở dữ liệu SQL có vai trò như sau:
- SQL là ngôn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ dàng thông quacác trình tiện ích để gửi các yêu cầu dưới dạng các câu lệnh SQL đến cơ sở dữ liệu vànhận kết quả trả về từ cơ sở dữ liệu
- SQL là ngôn ngữ lập trình cơ sở dữ liệu: Thông qua SQL, người quản trị cơ sở dữliệu có thể quản lý được cơ sở dữ liệu, định nghĩa các cấu trúc lưu trữ dữ liệu, điều khiểntruy cập cơ sở dữ liệu
- SQL là ngôn ngữ truy cập dữ liệu trên Internet: SQL với vai trò là ngôn ngữ đểtương tác với dữ liệu trong các cơ sở dữ liệu trên Internet
Đại học Kinh tế Huế
Trang 19- SQL là ngôn ngữ cơ sở dữ liệu phân tán: Đối với các hệ quản trị cơ sở dữ liệuphân tán, mỗi hệ thống sử dụng SQL để giao tiếp với các hệ thống khác trên mạng, gửi vànhận các yêu cầu truy xuất dữ liệu với nhau.
- SQL là ngôn ngữ sử dụng cho các cổng giao tiếp cơ sở dữ liệu: SQL thường đượcdùng như là một chuẩn ngôn ngữ để giao tiếp giữa các hệ quản trị cơ sở dữ liệu khi hệthống máy tính có nhiều hệ quản trị cơ sở dữ liệu khác nhau
1.2.2 Microsoft SQL Server
1.2.2.1 Tổng quan về Microsoft SQL Server
SQL là một hệ thống quản trị CSDL quan hệ nhiều người dùng kiểu khách/chủ.Đây là hệ thống cơ bản dùng lưu trữ dữ liệu cho hầu hết các ứng dụng lớn hiện nay
SQL server sử dụng ngôn ngữ lập trình và truy vấn CSDL Transact - SQL, mộtphiên bản của SQL Với Transact - SQL, có thể truy xuất dữ liệu, cập nhật và quản lý hệthống CSDL quan hệ
Với mỗi máy chủ chỉ có một hệ thống quản trị CSDL SQL Server Nếu muốn cónhiều hệ thống quản trị CSDL cần có nhiều máy chủ tương ứng
1.2.2.2 Thành ph ần của Microsoft SQL Server
- Bảng dữ liệu (Tables): Bảng dữ liệu là đối tượng chính của CSDL dùng lưu trữ
dữ liệu cần quản lý Mỗi bảng dữ liệu có một hay nhiều trường Mỗi trường ứng với mộtloại dữ liệu cần lưu trữ
Bảng dữ liệu còn có các thành phần liên quan như:
- Ràng buộc - Constraint: Constraint là các chỉ định ràng buộc dữ liệu trong bảng
dữ liệu hoặc các bảng dữ liệu khác nhau theo một quy tắc nào đó
- Bẫy lỗi - Triggers: Bẫy lỗi thường chứa các mã lệnh kiểm tra dữ liệu, có tínhnăng tự động thực hiện khi có hành động nào đó xảy ra đối với dữ liệu trong bảng dữ liệunhư thêm, sửa, xóa
- Chỉ mục - Indexs: Hỗ trợ cho việc sắp xếp và tìm kiếm nhanh thông tin trên bảng
dữ liệu
Đại học Kinh tế Huế
Trang 20- Sơ đồ quan hệ - Diagram: Thể hiện mối quan hệ dữ liệu giữa các bảng dữ liệu.
- Khung nhìn hay bảng dữ liệu ảo - Views: Là đối tượng dùng hiển thị dữ liệu đượcrút trích, tính toán từ các bảng dữ liệu theo nhu cầu của người dùng
- Thủ tục thường trú - Stored Procedure: Chứa các lệnh T - SQL dùng thực hiệnmột số tác vụ nào đó Thủ tục thường trú có thể nhận và truyền tham số Thủ tục thườngtrú được biên dịch trước, do đó thời gian được thực hiện nhanh khi được gọi Có nhiềuthủ tục thường trú hệ thống được định nghĩa với tiền tố “sp_” có nhiệm vụ thu thập thôngtin từ các bảng dữ liệu hệ thống và rất có ích cho việc quản trị
- Hàm do người dùng định nghĩa - User Defined Function
- Người dùng - User: Chứa danh sách người dùng sử dụng CSDL Người quản trị
hệ thống cao nhất có tên người dùng là dbo, tên đăng nhập hệ thống mặc định là sa Tàikhoản sa luôn tồn tại và không thể bỏ đi Để thay đổi mật khẩu của sa, cách nhanh nhất là:
Mở trình Query Analyzer (phân tích truy vấn), thực hiện thủ tục hệ thống: EXECSP_PASSWORD NULL, <NewPass>
- Các qui định vai trò và chức năng người dùng trong hệ thống tại máy chủ - Roles
- Các qui tắc ràng buộc dữ liệu được lưu trữ trên bảng dữ liệu - Rules
- Các khai báo giá trị mặc định - Defaults
- Kiểu dữ liệu cho người dùng tự định nghĩa - User Defined Data Type
- Tập phân loại dữ liệu văn bản - Full Text Catalogs
1.3 Tổng quan về nền tảng lập trình NET Framework
1.3.1 Gi ới thiệu về NET Framework
.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
Đại học Kinh tế Huế
Trang 21cá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ànhphầ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 – Môi trường phát triển tích hợp) được phát triển và hỗ trợ bởi chính Microsoft là Visual Studio.
Hình 1.2 Kiến trúc của NET Framework
Nguồn: Net Framework: 10 năm nhìn lại - http://www.pcworld.com.vn
1.3.2 Các tính năng của NET Framework 4.0
Trang 22như cài đặt ứng dụng mới, xóa ứng dụng cũ, dung lượng của các ổ đĩa có liên quan trong
hệ thống
* Thư viện lập trình lớn:
Đây là nơi lưu trữ một lượng khá lớn các mã để xử lý các hoạt động ở mức độ thấpthông thường để sử dụng khi cần thiết thay vì phải viết một lượng lớn các mã thôngthường Nó cho phép bạn thiết lập kết nối cơ sở dữ liệu, truy cập Web, thực hiện các giảithuật, cấu trúc dữ liệu, giao tiếp thông qua mạng và nhiều tính năng khác nữa
* T ạo nguồn phát triển công nghệ:
.NET Framework bao gồm các thư viện cho các khu vực cụ thể phát triển ứngdụng như: ASP NET cho ứng dụng web, ADO NET để truy cập dữ liệu, và WindowsCommunication Foundation cho các ứng dụng hướng dịch vụ
* Ngôn ng ữ có khả năng tương tác lớn:
Với tính năng này, thói quen viết bằng một ngôn ngữ có thể truy cập vào các ngônngữ khác, và các lập trình viên có thể tập trung vào việc tạo ra các ứng dụng trong ngônngữ hoặc ngôn ngữ ưa thích của họ
* Cung c ấp môi trường lập trình phù hợp:
Chương trình được thiết kế giúp cung cấp môi trường lập trình hướng đối tượngđối với các mã phù hợp, cung cấp môi trường mã nhằm thúc đẩy thực thi an toàn
* Ch ỉ thực hiện tắt khi lập trình và tự động tắt:
.NET Framework 4.0 sẽ tự động hoạt động khi bạn thực hiện những công việc liênquan đến việc thiết kế Web, sử dụng những ngôn ngữ lập trình như Visual Basic, C# Chương trình sẽ tự động tắt ngay khi công việc của bạn kết thúc
* T ự động nâng cấp phiên bản mới:
Một thông báo sẽ được hiển thị ngay khi nhà sản xuất đưa ra thị trường phiên bảnmới nhất, bạn có thể dựa theo những thông tin này để tải về máy phiên bản mới nhất để sửdụng những tính năng mới mà nhà sản xuất cung cấp Bạn sẽ không phải mất công lên
Đại học Kinh tế Huế
Trang 23mạng tìm kiếm những phiên bản mới mà có thể download ngay lập tức nhờ việc clickchuột vào thông báo này.
* H ỗ trợ nhiều loại ngôn ngữ khác nhau:
Với việc liên tục cập nhật những phiên bản mới nhất giúp người dùng lựa chọn sửdụng loại ngôn ngữ nào phù hợp nhất với mình Chương trình cung cấp các loại ngôn ngữkhác nhau như Anh, Pháp, Đức, Ý, Nhật, Tây Ban Nha, Hy Lạp Ngoài ra, sau khi cài đặt,chương trình cũng được mặc định mở bằng giao diện Tiếng Anh
* Tương thích với hệ điều hành của Windows:
Microsoft NET Framework 4.0 hoàn toàn tương thích với mọi phiên bản của hệđiều hành Windown như Windows 9x/ME, Windows XP, Windows Vista, Windows 7 và
cả phiên bản mới nhất Windows 8
1.4 Ngôn ngữ lập trình C#
1.4.1 Giới thiệt ngôn ngữ lập trình C#
Ngôn ngữ C Sharp (C#) được xây dựng và kiến trúc bởi Anders Hejlsberg và độithiết kế của ông, người đã viết nên trình biên dịch Pascal và có nhiều đóng góp choDelphi cũng như Java C# là một trong rất nhiều ngôn ngữ lập trình được hỗ trợ bởi NETFramework (như C++, Java…) Có thể hiểu đơn giản đây là một trung tâm biên dịch,trong đó tất cả các ngôn ngữ được hỗ trợ bởi NET Framework sẽ được chuyển đổi raMSIL (một dạng mã trung gian) rồi từ đấy mới được biên dịch tức thời (Just in timeCompiler – JIT Compiler) thành các file thực thi như exe Một thành tố quan trọng nữatrong kiến trúc NET Framework chính là CLR (.NET Common Language Runtime), khốichức năng cung cấp tất cả các dịch vụ mà chương trình cần giao tiếp với phần cứng, với
hệ điều hành
* Các tính năng cơ bản của ngôn ngữ lập trình C#:
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ Java, VB, C và C++, nhưng nóđược tạo nên 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++
Đại học Kinh tế Huế
Trang 24và thêm vào những đặc tính mớ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ống với những đặc tính có trong ngôn ngữ Java Không dừnglại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này Những mục đíchnày được tóm tắt như sau:
- C# là ngôn ngữ đơn giản và hiện đại
- C# là ngôn ngữ hướng đối tượng
- C# là ngôn ngữ mạnh mẽ và mềm dẻo
- C# là ngôn ngữ có ít từ khóa
- C# là ngôn ngữ hướng module
- C# loại bỏ một vài sự phức tạp 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 baseclass) 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 đề chocác người phát triển C++
- Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ Diện mạo, cú pháp,biểu thứ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
* Các ứng dụng của C#
C# có thể sử dụng để viết các kiểu ứng dụng khác nhau như:
- Các ứng dụng game
- Các ứng dụng cho doanh nghiệp
- Các ứng dụng cho thiết bị di động: PC Pocket, PDA, cell phone
- Các ứng dụng quản lý đơn giản
- Các ứng dụng phân tán phức tạp trải rộng qua nhiều thành phố, đất nước
* Các l ợi ích của C#
- Cross Language Support hỗ trợ khả năng chuyển đổi dễ dàng giữa các ngôn ngữ
- Hỗ trợ các giao thức Internet chung
- Triển khai đơn giản
Đại học Kinh tế Huế
Trang 25- Hỗ trợ tài liệu XML: các chú thích XML có thể được thêm vào các đoạn code vàsau đó có thể được chiết xuất để làm tài liệu cho các đoạn code để cho phép các lập trìnhviên khi sử dụng biết được ý nghĩa của các đoạn code đã viết.
1.4.2 Mô hình ba lớp
Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũng nhưkhông bị ảnh hưởng về các thay đổi, người ta hay nhóm các thành phần có cùng chứcnăng lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc không bị chồngchéo và ảnh hưởng lẫn nhau
Trong phát triển phần mềm, người ta cũng áp dụng cách phân chia chức năng này.Thuật ngữ kiến trúc đa tầng/nhiều lớp, mỗi lớp sẽ thực hiện một số chức năng nào đó,trong đó mô hình ba lớp là phổ biến nhất
Ba lớp đó là: Presentation Layer (Lớp giao tiếp người dùng), Bussines Logic (Lớp
sử lý chính dữ liệu) và Data Accses (Lớp thao tác) Các lớp này sẽ giao tiếp với nhau quathông qua các dịch vụ mà mỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cầnbiết lớp kia làm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó màthôi
1.4.2.1 Presentation Layer (L ớp giao tiếp người dùng)
Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thịkết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng Lớp này sẽ sửdụng các dịch vụ do lớp Bussiness Logic cung cấp
Trong nền tảng NET thì có thể dùng Windows Forms, ASP.NET để hiện thực lớpnày
+ Là những phần tử chịu trách nhiệm thu thập và hiển thị thông tin cho người dùngcuối Trong Windows Forms đó là các TextBox, các Button, DataGridView…
+ Có nhiệm vụ kiểm tra, xử lý các dữ liệu nhập vào (ví dụ như TextBox nhập sốđiện thoại thì chỉ nhập được số…)
Đại học Kinh tế Huế
Trang 26+ Tiếp nhận các Event của người dùng, kiểm tra dữ liệu được nhập vào, gửi yêucầu xử lý xuống tầng kế tiếp.
Với lớp giao tiếp người dùng chúng ta không nên sử dụng trực tiếp dịch vụ của lớpData Access mà nên sử dụng thông qua các dịch vụ của lớp Bussiness Logic vì khi bạn sửdụng trực tiếp như vậy, bạn có thể bỏ qua các rang buộc, các logic nghiệp vụ mà ứngdụng cần có
1.4.2.2 Bussiness Logic Layer (L ớp xử lý chính dữ liệu)
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớpData Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation Lớp này cũng có thể
sử dụng các dịch vụ của các nhà cung cấp thứ 3 để thực hiện công việc của mình
Đây là lớp chính xử lý các dữ liệu trước khi được đưa lên hiển thị trên màn hìnhhoặc xử lý các dữ liệu trước khi lưu dữ liệu xuống cơ sở dữ liệu Đây là nơi kiểm tra cácyêu cầu nghiệp vụ, tính toán các yêu cầu nghiệp vụ
1.4.2.3 Data Access Layer (L ớp thao tác trực tiếp với cơ sở dữ liệu)
Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy suất dữ liệu của ứngdụng Thường lớp này sử dụng dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server,Ocracle… để thực hiện các nhiệm vụ của mình Trong lớp này các thành phần chính làData Access Logic, Data Soucres
Lớp này có nhiệm vụ chính là đọc cơ sở dữ liệu lên, cập nhật cơ sở dữ liệu, sửa cơ
sở dữ liệu…
1.4.2.4 Quy trình ho ạt động
* Quy trình hiển thị dữ liệu
Data Access Layer sẽ kết nối với Database và lấy dữ liệu có thể bằng câu lệnhselect hoặc từ một thủ tục Proceduce, sau khi lấy được dữ liệu nó sẽ đẩy lên Bussinesslayer, tại đây Bussiness điều chỉnh tùy biến phù hợp với yêu cầu rồi đẩy nó lên GUI và tạiGUI nó sẽ hiển thị lên cho người dùng
Đại học Kinh tế Huế
Trang 27* Quy trình đưa dữ liệu xuống
Người dùng thao tác với GUI layer sau đó ra lệnh thực hiện (ví dụ như insert) sau
đó hệ thống sẽ kiểm tra các thông tin người dùng nhập vào nếu thảo điều kiện thì đixuống tiếp Bussiness layer để tiếp tục thực hiện các nghiệp vụ trong đó, sau khi xong thì
dữ liệu được đẩy xuống Data Access Layer sau đó Data Access Layer sẽ thực thi nóxuống database
* Nh ững ưu điểm khi sử dụng mô hình ba lớp
Trước hết phải nói rằng việc tổ chức dự án phần mềm dưới dạng mô hình 3 lớp sẽgiúp cho dự án có cấu trúc sáng sủa, rõ ràng, dễ dùng lại Từ đó việc phát triển và bảo trì
hệ thống sẽ thuận lợi hơn Điều này giúp chúng ta tiết kiệm nhiều thời gian hơn khi mởrộng chương trình trong tương lai Khi dự án thay đổi hệ quản trị cơ sở dữ liệu hoặcchuyển ứng dụng từ dạng webform sang dạng winform thì chúng ta chỉ tốn ít thời gian đểthay đổi trên lớp DAL hoặc GUI mà thôi, giữ nguyên hai lớp còn lại mà không cần phảithay đổi toàn bộ dự án
Một điều cũng vô cùng quan trọng đối với người lập trình viên đó là việc xử lý vàbẫy các lỗi thời gian chạy Mô hình ba lớp hỗ trợ cho người lập trình xác định loại lỗixuất hiện tại lớp nào và dễ dàng đưa ra cách xử lý chúng ở từng lớp cụ thể
Ngoài ra, mô hình này còn tạo ra một không gian làm việc rất tốt để người thiết kếgiao diện lẫn người lập trình có thể làm việc chung với nhau một cách dễ dàng Việc phânứng dụng ra thành ba lớp cũng thuận lợi cho việc phân chia nhiệm vụ của các lập trìnhviên theo các lớp khác nhau
* Cách x ử lý lỗi trong mô hình ba lớp
Mỗi khi gặp lỗi (các trường hợp không đúng dữ liệu) thì đang ở lớp nào thì đưa lêntrên lớp cao hơn nó một bậc cho tới GUI thì sẽ đưa ra có người dùng biết
Đại học Kinh tế Huế
Trang 281.4.3 Tổng quan về lập trình hướng chức năng
1.4.3.1 Gi ới thiệu
Lập trình hướng chức năng (Procedure – Oriented Programming, viết tắt là POP).Khi máy tính được phát minh lần đầu tiên, chúng cần được lập trình một cách rõ ràng vớinhững cấu trúc đơn giản và “phần mềm” chỉ đơn thuần là một tập hợp của các lệnh rấtđơn giản này kết hợp với nhau mà có thể chạy theo trình tự
Phương pháp lập trình thủ tục chính là cách thực hiện phương pháp hướng chứcnăng kể trên Phương pháp thủ tục chia một chương trình (chức năng) lớn thành các khốichức năng hay hàm (thủ tục) đủ nhỏ để dễ lập trình và kiểm tra Mỗi hàm có một điểm bắtđầu và một điểm kết thúc, có dữ liệu và logic riêng Trong một hệ thống chương tình, cácbiến có các phạm vi nhìn thấy nhất định Trong chương trình, các hàm làm việc độc lậpvới nhau Dữ liệu được chuyển đổi qua lại thông qua các tham số gọi hàm
Việc chia chương trình thành các hàm cho phép nhiều người có thể tham gia vàoviệc xây dựng chương trình Mỗi người xây dựng một hoặc một số các hàm độc lập vớinhau Phương pháp này dẫn đến một khái niệm mới – sự trừu tượng hóa Sự trừu tượnghóa có thể xem như khả năng quan sát một sự việc mà không cần xem xét đến các chi tiếtbên trong của nó Trong một chương trình thủ tục, chúng ta chỉ cần biết một hàm nào đó
có thể làm được những công việc cụ thể gì là đủ Còn làm thế nào để thực hiện công việc
đó là không quan trọng, chừng nào hàm còn tin cậy được thì còn có thể dùng nó màkhông cần phải biết nó thực hiện đúng đắn chức năng của mình như thế nào Điều này gọi
là sự trừu tượng hóa theo chức năng (functional abstraction) (hay còn gọi là sự chuyênmôn hóa) và là nền tảng của lập trình thủ tục
Trang 29làm việc với khái niệm và thuật ngữ quen thuộc trong môi trường vấn đề mà không phảibiến đổi chúng thành một cấu trúc không quen thuộc.
Khi xét vấn đề cho việc tìm ra giải pháp module, chúng ta có thể đặt ra nhiều mức
độ trừu tượng Tại mức trừu tượng cao nhất: phát biểu bằng ngôn ngữ môi trường của vấn
đề Tại mức trừu tượng thấp hơn, thường lấy khuynh hướng thủ tục Tại mức thấp nhất,giải pháp được phát biểu theo cách có thể cài đặt trực tiếp
Trong mỗi bước của tiến trình đều là sự làm mịn cho một mức trừu tượng của giảipháp Khi chuyển qua các mức trừu tượng khác nhau, chúng ta làm việc để tạo ra các trừutượng thủ tục, trừu tượng dữ liệu và trừu tượng điều khiển
* Chương trình con
Một chương trình con (hay được gọi là hàm, thủ tục, hay thủ tục con) là một chuỗi
mã để thực thi một thao tác đặc thù nào đó như là một phần của chương trình lớn hơn.Đây là các câu lệnh được nhóm vào một khối và được đặt tên và tên này tùy theo ngônngữ có thể được gán cho một kiểu dữ liệu Những khối mã này có thể được tập trung lạilàm thành các thư viện phần mềm Các chương trình con có thể được gọi ra để thi hành(thường là qua tên của chương trình con đó) Điều này cho phép các chương trình dùngtới những chương trình con nhiều lần mà không cần phải lặp lại các khối mã giống nhaumột khi đã hoàn tất việc viết mã cho các chương trình con đó chỉ một lần
* L ập trình cấu trúc
Là một tập hợp con của lập trình thủ tục Trong một chương trình máy tính, cáckhối chức năng có thể được thực hiện không chỉ theo trình tự mà còn có thể theo các tìnhhuống và lặp lại nhiều lần Phương pháp lập trình cấu trúc được dựa trên các mô hình toánhọc của Bohm và Guiseppe Theo đó, một chương trình máy tính có thể được viết dựatrên ba cấu trúc: trình tự, quyết định và vòng lặp
- Trình tự nghĩa là các câu lệnh được thực hiện theo trình tự nhất định: trên xuống
- Quyết định là sự quy định sẽ thực hiện chương trình như thế nào phụ thuộc vào
sự thỏa mãn các điều kiện nhất định
Đại học Kinh tế Huế
Trang 30- Vòng lặp thể hiện sự thực hiện có tính lặp lại một số đoạn lệnh của chương trìnhkhi các điều kiện nào đó vẫn được thỏa mãn Thông qua các cấu trúc trên, mã chươngtrình trở nên sáng sủa và dễ đọc.
Phương pháp lập trình thủ tục hay lập trình cấu trúc đường đi đối với phương phápphân tích trên xuống (top – down) Theo phương pháp này, người thiết kế hệ thống chiacác chức năng (hàm) chính của hệ thống thành các chức năng nhỏ hơn, đến lượt mình, cácchức năng nhỏ này lại được chia tiếp thành các chức năng nhỏ hơn nữa cho đến khi đượccác khối (hàm) chương trình đủ nhỏ Việc phân tích này được thể hiện trực quan theo sơ
đồ khối
Đại học Kinh tế Huế