Bài giảng Nhập môn công nghệ phần mềm - Chương 4: Cài đặt phần mềm cung cấp cho người đọc các kiến thức về kiến trúc của một application, mô hình 1 lớp (1–tier), mô hình 1 lớp (2 –tier), mô hình 1 lớp (3 –tier). Mời các bạn cùng tham khảo.
Trang 1Chương 4 – CÀI ĐẶT PHẦN MỀM
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
Trang 3Mô hình phần mềm
Trang 41 Các kiểu kiến trúc của một application
Trang 5Mô hình kiến trúc 1 lớp
CSDL
1 Nhập dữ liệu
2 Kiểm tra, xử lý tính toán
Trang 6Mô hình kiến trúc 1 lớp
Trang 7Ví dụ
Trang 9Mô hình kiến trúc 2 lớp
Trang 10Ví dụ
10
Trang 11Mô hình kiến trúc 3 lớp
CSDL
1 Nhập dữ liệu
2 Kiểm tra, xử lý tính toán
Trang 12Mô hình 3 tier
12
Trang 13Mô hình 3 tier
Trang 14Mô hình 3 tier
14
Trang 15Mở rộng: Lập trình CSDL với Visual Basic & ADODB
a) CSDL trong ứng dụng quản lý
Trang 16Mở rộng: Lập trình CSDL với Visual Basic & ADODB
Trang 17Ví dụ hệ thống quản lý học sinh
Thành phần giao diện
Trang 192 Lập trình CSDL với Visual Basic & ADODB
b) CSDL trong ứng dụng quản lý
Mở rộng: Lập trình CSDL với Visual Basic & ADODB
Trang 20ADO Object Model
20
Trang 22Kết nối data source
22
Trang 23ADO Object - Connection
Trang 24ADO Object - Connection
24
Khai báo biến quản lý connection
Dim con As New ADODB.Connection
Kết nối CSDL với Access
Ví dụ:
Trang 25ADO Object - Connection
Kết nối CSDL với Access
Trang 26ADO Object - Connection
26
Cú pháp:
Ví dụ
Trang 27ADO Object - Connection
Kết nối CSDL với SQL Server
Trang 28ADO Object - Connection
28
Đóng kết nối CSDL
Trang 29Tương tác dữ liệu: thêm/xóa/sửa…
Trang 30Thực thi câu lệnh Insert/Delete/Update,…
30
Trang 31ADO Object - Command
Trang 32 Khai báo biến quản lý Command
Dim cmd As New ADODB.Command
Kết nối CSDL qua connection
Thực thi câu lệnh SQL (insert/delete/update)
Ví dụ: thực thi một câu lệnh SQL xóa dữ liệu từ Table HS
ADO Object - Command
Trang 33• Thực thi câu lệnh Select
• Ví dụ: thực thi một câu lệnh SQL Select dữ liệu từ Table HS
ADO Object - Command
Trang 34ADO Object – Recordset
34
Trang 35 Khai báo biến quản lý RecordSet
Dim cmd As New ADODB.RecordSet
Thực thi câu lệnh SQL (Select)
Ví dụ: thực thi một câu lệnh SQL xóa dữ liệu từ Table HS
ADO Object - recordset
Trang 37ADO Object - recordset
Các phương thức duyệt mẫu tin
Trang 38ADO Object - recordset
38
Các phương thức duyệt mẫu tin
Trang 39ADO Object - recordset
Các phương thức duyệt mẫu tin
Trang 40ADO Object - recordset
40
Các phương thức duyệt mẫu tin
Trang 41ADO Object - recordset
Các phương thức duyệt mẫu tin
Trang 42 Chúng ta nên có kế hoạch tìm hiểu một ngôn ngữ lập trình mới mỗi năm hoặc lâu hơn.
1 Lựa chọn ngôn ngữ lập trình
Một số vấn đề trong phong cách lập trình
Trang 43 Trong số các NNLT cấp cao, chúng ta nên biết:
Ngôn ngữ logic: Prolog
1 Lựa chọn ngôn ngữ lập trình
Trang 441 Lựa chọn ngôn ngữ lập trình
Trang 45 Khi tạo một phần mềm (có ứng dụng quan trọng), chúng ta nênchọn 1 ngôn ngữ với các chuẩn bởi các tổ chức tiêu chuẩn hóa(ISO, ANSI, IEEE, …).
(hoặc tệ hơn bởi một cá nhân nào đó) Nó có thể thay đổi theonhững cách mà một đầu tư lớn thành vô giá trị sau một đêm
1 Lựa chọn ngôn ngữ lập trình
Trang 461 Lựa chọn ngôn ngữ lập trình
• Một số ngôn ngữ không chuẩn:
– Java
– Python
– Ruby
Trang 47 Một số nhà sản xuất (đơn) cung cấp ngô ngữ đóng gói:
Trang 48 Maintainable code (Bảo trì code)
Để việc bảo trì code được thuận lợi, code cần thỏa những tiêuchuẩn sau:
Trang 49 Understandable code
Code được đọc bởi:
the compiler (trình biên dịch)
The text editor (chương trình soạn thảo)
Other tools (các công cụ khác)
Maintainers (người bảo trì)
1 Lựa chọn ngôn ngữ lập trình
Trang 50 Understandable code
Code được đọc bởi:
the compiler (trình biên dịch).
Code cần tuân thủ theo cú pháp và ngữ nghĩa của NNLT.
The text editor (chương trình soạn thảo).
Code cần thuân thủ thêm những cú pháp riêng.
Other tools (các công cụ khác).
Code phải chịu thêm những ràng buộc khác.
Maintainers (người bảo trì)
1 Lựa chọn ngôn ngữ lập trình
Trang 51a Indentation (thụt đầu dòng)
- Là yếu tố cần thiết để làm code dễ hiểu
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 52Cách đặt dấu ngoặc:
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 53b Spacing (khoảng trống)
thiết để làm code dễ hiểu
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 54b Spacing (khoảng trống)
Chúng ta xét cách viết code trên JAVA, C, C++ : đối với các phép toán số học hoặc logic, nên có khoảng trống ở mỗi bên.
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 55b Spacing (khoảng trống)
Chúng ta xét cách viết code trên JAVA, C, C++ : một dấu , hoặc ; không đứng sau 1 khoảng trống nhưng luôn đứng trước 1 khoảng trống
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 56b Spacing (khoảng trống)
Chúng ta xét cách viết code trên JAVA, C, C++ : một dấu , hoặc ; không đứng sau 1 khoảng trống nhưng luôn đứng trước 1 khoảng trống
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 58b Spacing (khoảng trống)
Chúng ta xét cách viết code trên JAVA, C, C++ : nên có khoảng
trống giữa các từ khóa if, while, for với biểu thức sau nó.
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 60c Cấu trúc lệnh
Chúng ta xét cách viết code trên JAVA, C, C++ : dùng cấu trúc lệnh rõ ràng nhất.
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 62d Lệnh Return
Chúng ta xét cách viết code trên JAVA, C, C++ : return không phải là một hàm nên không cần đặt giá trị vào trong dấu ngoặc
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 63d Lệnh Return
Khi dùng biểu thức điều kiện, nếu có thể cần tránh lặp lại code.
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 64e Định danh – identifier
- Thường dùng danh từ để đặt tên lớp (class) Ví dụ: person, vehicle,
course,… Vì lớp là đối tượng không thể là hành động, nếu dùng động từ thì sẽ nhằm lẫn với các phương thức.
- Hàm và phương thức dùng để thực hiện một việc nào đó, nên tên thường
bắt đầu bằng động từ.
- Có 2 mẫu để định danh:
• Viết hoa các ký tự đầu của từ (đối với phương thức thì viết thường cho ký tự đầu tiên).
Ví dụ: c omputeNextItemInList, FourWheelVehicle.
• Dùng dấu underscore để phân cách các từ.
Ví dụ compute_next_item_in_list, four_wheel_vehicle
- Nên chọn 1 mẫu và tuân thủ trong cả chương trình.
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 65e Định danh – identifier
- Chúng ta không nên đặt tên quá dài hoặc quá ngắn Tùy trường hợp mà
định danh cho phù hợp.
- Ví dụ:
• Tên dài tốt hơn tên ngắn, chẳng hạn temperature rõ ràng hơn temp hoặc t.
• Tên ngắn tốt hơn, chẳng hạn x, y để chỉ 2 số bất kỳ thay vì
theFirstArbitraryNumber, theSecondArbitraryNumber.
• Hoặc i, j là biến chạy cho cho for hoặc chỉ số mảng thay vì arrayInDexes.
Tương tự ta dùng n chỉ số thành phần của mảng thay vì
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 66f Chú thích - comment
- Mục đích của chú thích để làm rõ nghĩa những đoạn code khó Nhưng nó
không nhằm mục đích giải thích cho tất cả mọi người ở mức không cần thiết (ví dụ manager, client…)
- Chú thích còn dùng để ghi nhận lại tác giả, và ngày tạo hoặc chỉnh sửa
chương trình.
Ví dụ
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 69g Tránh viết code “xoắn” nhau – avoid convoluted code
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 70h Tránh viết code “xoắn” nhau – avoid convoluted code
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 71h Tránh viết code “xoắn” nhau – avoid convoluted code
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 72i Nên dùng hằng (constant) thay vì ghi giá trị trực tiếp
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 73j Nên gán giá trị cho biến ngay khi mới khai báo (nếu có thể)
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 74j Giảm phạm vi của biến (nếu có thể)
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 75k Tránh lặp lại code (code duplication)
vì phải tìm tất cả các đoạn code đó để xem xét và sẽ chữa
10 Nên dùng nhiều hàm và phương thức con (nếu có thể).
Đây là cách hiệu quả để chia nhỏ bài toán, nhằm giúp đơngiản hóa vấn đề và dễ dàng quản lý các đối tượng, phươngthức trong chương trình
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 76l Tối ưu trình biên dịch và bộ xử lý
2 Một số vấn đề trong khi viết chương trình (coding)
Trang 77Bài tập
chưa hay? Vì sao?
Bạn hãy chỉnh sửa những vấn đề đó để code hiểu và tối ưu hơn
t=a[i];
a[i]=a[i+1];
Trang 78Câu 3:
/* Hàm tìm max của mang a và cho biết max đó có là số nguyên tố */
void tim_max(int a[100],int n)
{
int max=a[0];
for(int i=0;i<=n-1;i++) {
{ printf("\n max khong phai la so nguyen to"); return;
} printf("\n max la so nguyen to");
}
Trang 80InsertNode(root-80