Tải bản đầy đủ (.pdf) (5 trang)

Tài liệu Kỹ nghệ phần mềm pptx

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 (227.9 KB, 5 trang )

B mụn Cụng ngh phnmm Khoa CNTT- HCN- HQGHN K ngh phnmm Slide 1
K NGH PHN MM
CHNG 7:
Lập trình
B mụn Cụng ngh phnmm Khoa CNTT- HCN- HQGHN K ngh phnmm Slide 2
NI DUNG

Giithiutng quan

Ph
ng phỏp
lptrỡnh

Ngôn ngữ lập trình

Phong cách lập trình

K thutlp trỡnh
B mụn Cụng ngh phnmm Khoa CNTT- HCN- HQGHN K ngh phnmm Slide 3
GII THIU
Thiết kế
mô hình
thông tin
mô hình
chức năng
các yêu
cầu khác
Lập trình
thiết kế
kiến trúc
cấu trúc


dữ liệu
thiết kế
thuật toán
Mô đun
chơng trình
Chunmó
húa
Mụ hỡnh ci t
B mụn Cụng ngh phnmm Khoa CNTT- HCN- HQGHN K ngh phnmm Slide 4
GII THIU (2) Vớ d
H thng con 1
ôtraceằ
ôfileằ
Area.class
ôcompilationằ
AnotherClass
ôfileằ
readme.txt
ôexplainằ
ôfileằ
impl.jar
ôcompressằ
ôfileằ
Area.java
Area
H thng con 1
Mụhỡnhcit
Mụhỡnhthi
tk
B mụn Cụng ngh phnmm Khoa CNTT- HCN- HQGHN K ngh phnmm Slide 5

PHNG PHP LP TRèNH
z
Lptrỡnhtunt (tuyn tớnh)
z
Lptrỡnhcúcutrỳc(th tc)
z
Lptrỡnhhng chcnng
z
Lptrỡnhhng itng
z
Lp trỡnh Logic
B mụn Cụng ngh phnmm Khoa CNTT- HCN- HQGHN K ngh phnmm Slide 6

ctrng cangụnng

Min ng dng ca ngụn ng

Lachnngụnng
NGễN NG LP TRèNH
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 7

năng lực(kiểubiến, các cấutrúc)

tính khả chuyển

mức độ hỗ trợ củacáccôngcụ
NGÔN NGỮ LẬP TRÌNH -
Đặctrưng
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 8


Năng lựccủangônngữ
• Có cấutrúc, câulệnh phong phú
• Hỗ trợ nhiềukiểudữ liệu
• Hỗ trợ con trỏ, đệ qui
• Hỗ trợ hướng đốitượng
• Thư viện phong phú
NGÔN NGỮ LẬP TRÌNH -
Đặctrưng
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 9

thay đổiphầncứng
• thay đổiOS
Ví dụ: C, Java l
à các ngôn ngữ khả chuyển
NGÔN NGỮ LẬP TRÌNH -
Đặctrưng

Tính khả chuyển
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 10

Trìnhbiêndịch hiệuquả

biên dịch tốc độ cao
•khả năng tối ưucao
• khai thác các tậplệnh, kiếntrúcphầncứng mới
• Các công cụ trợ giúp hiệuquả

editor, debugger, linker, make...
• IDE (Integrated Develop Environment)
NGÔN NGỮ LẬP TRÌNH -

Đặctrưng

Hỗ trợ củacôngcụ
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 11
NGÔN NGỮ LẬP TRÌNH -
Miền ứng dụng
z
Phầnmềmhệ thống

C, C++
z
Hệ thờigianthực

C, C++, Ada, Assembly
z
Phầnmềm nhúng

C++, Java, Assembly
z
Phầnmềmkhoahọckỹ thuật

Fortran
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 12
z
Phầnmềm nghiệpvụ

CSDL: Oracle, DB2, SQL Server, MySQL...

ngôn ngữ: FoxPro, COBOL, VB, VC++
z

Trí tuệ nhân tạo

Lisp, Prolog, OPS5,...
z
Lập trình Web/CGI

Perl, ASP, PHP, Java, Java script, Python...
NGÔN NGỮ LẬP TRÌNH -
Miền ứng dụng
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 13
z
Đặctrưng của ngôn ngữ
z
Miền ứng dụng của ngôn ngữ
z
Năng lực, kinh nghiệmcủa nhóm phát
triển
z
Yêu cầucủa khách hàng
NGÔN NGỮ LẬP TRÌNH
-
Lựachọn ngôn ngữ
Dựavào:
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 14
PHONG CÁCH LẬP TRÌNH

Hướng tới phong cách làm cho mã nguồn
• dễ hiểu, dễ sửa đổi
• an toàn (ít lỗi)


Bao gồmcácyếutố:

cách đặt tên hàm và biến
• cách xây dựng câu lệnh, cấutrúcchương trình
• cách viết chú thích
• cách xử lý lỗi
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 15
Mọi điều được Chú thích trong chương trình

Mục đích sử dụng củacácbiến

Chứcnăng củakhốilệnh, câu lệnh
• các lệnh điềukhiển
• các lệnh phứctạp
PHONG CÁCH LẬP TRÌNH – Chú thích
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 16
Mọi điều được Chú thích trong chương trình

Chú thích các mô đun

mục đích, chứcnăng củamôđun
– tham số, giá trị trả lại (giao diện)
–cácmôđun thuộccấp
–cấutrúc, thuật toán
– nhiệmvụ của các biếncụcbộ
– tác giả, ngườikiểm tra, thờigian
PHONG CÁCH LẬP TRÌNH – Chú thích
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 17
Đặt tên biến, tên hàm có nghĩa, gợinhớ
 Sử dụngcáckýhiệu, từ tiếng Anh có

nghĩa
 Làm cho dễđọc
• dùng DateOfBirth hoặc date_of_birth
• không viết dateofbirth
 Tránh đặt tên quá dài
• không đặttêndàivớicácbiếncụcbộ
 Thống nhất cách dùng
• i cho vòng lặp, tmp cho các giá trị tạm
thời...
PHONG CÁCH LẬP TRÌNH -
Đặttên
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 18

Chương trình cần được chia thành nhiềumôđun (hàm
 Không viết hàm quá dài
• không quá 2 trang màn hình
• tạo ra các hàm thứ cấp để giảm độ dài từng hàm
 Không dùng quá nhiềubiếncụcbộ
• không thể theo dõi đồng thờihoạt động của nhiềubiến
(vd. không quá 7 biếncụcbộ)
PHONG CÁCH LẬP TRÌNH -
Cấutrúcchương trình
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 19

Các câu lệnh phảimôtả cấutrúc
• tụtlề, dễđọc, dễ hiểu
 Làm đơngiảncáclệnh
• mỗilệnh trên một dòng
• triển khai các biểuthứcphứctạp
• hạnchế truyền tham số là kếtquả của hàm, biểuthức

printf("%s", strcpy(des, src));
 Tránh các cấutrúcphứctạp
• các lệnh if lồng nhau
• điềukiệnphủđịnh if not
PHONG CÁCH LẬP TRÌNH – Câu lệnh
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 20

Có thể phát hiệnlỗi trong khi thựchiện
• lỗichia0
• lỗi input/output, …
 Xử lý lỗi
• nhất quán trong xử lý
• phân loạilỗi
• thống nhất định dạng thông báo,…
• phân biệt output và thông báo lỗi
PHONG CÁCH LẬP TRÌNH – X
ử lý lỗi
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 21
z
Là cách thứcxử lý lỗitiếntiến trong các ngôn
ngữ hướng đốitượng

môđun xử lý ném ra một ngoạilệ (đốitượng chứa
thông tin lỗi)

môđun điềukhiểnbắt ngoạilệ (nếucó)
z
Tách phầnxử lý lỗikhỏiphầncàiđặtthuật toán
thông thường, làm cho chương trình dễđọchơn
z

Dễ dùng hơn, an toàn hơn
PHONG CÁCH LẬP TRÌNH – Xử lý lỗi
Ngoạilệ
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 22
double MyDivide(double num, double denom)
{
if (denom == 0.0) {
throw invalid_argument(”The denom cannot be 0.”);
}
else {
return num / denom;
}
}
PHONG CÁCH LẬP TRÌNH – Xử lý lỗi
Ngoạilệ:
ném ngoạilệ
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 23
try {
result = MyDivide(x, y);
}
catch (invalid_argument& e) {
cerr << e.what() << endl;
... // mã xử lý với ngoạilệ
};
PHONG CÁCH LẬP TRÌNH – Xử lý lỗi
Ngoạilệ:
bắt ngoạilệ
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 24

Tuân theo các chuẩnthôngdụng


Chú giải đầy đủ mỗi khi không tuân theo chuẩn
PHONG CÁCH LẬP TRÌNH
Phong cách lậptrìnhtốt
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 25
KỸ THUẬT LẬP TRÌNH
z
Tránh lỗi
z
Phòng thủ
z
Thứ lỗi
Xây dựng hệ thống tin cậy
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 26
Tránh các cấu trúc nguy hiểm
KỸ THUẬT LẬP TRÌNH – tr
ánh lỗi
z
Số thực
z
Con trỏ
z
Cấpphátbộ nhớ
z
Đệ quy
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 27
KỸ THUẬT LẬP TRÌNH –
phòng thủ
Defensive programming
z

Dự đoán khả năng xuấthiệnlỗi

Lệnh vào ra

Các phép toán

Thao tác vớibộ nhớ
z
Khắcphụclỗi

lưutrạng thái an toàn

quay lạitrạng thái an toàn gầnnhất
FILE* fp;
fp = fopen("data",
"r");
FILE* fp;
if (NULL == (fp =
fopen("data", "r")) {
fprintf(stderr, "can not
open file...");
...
}
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 28
Fault tolerance programming
KỸ THUẬT LẬP TRÌNH –
thứ lỗi
z
Phát hiệnlỗi
z

Định ra mức độ thiệthại
z
Hồiphụcsaukhigặplỗi
z
Chữalỗi
version 1
version 2
version 3
comparison
N - v
ersion
Bộ môn Công nghệ phầnmềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phầnmềm Slide 29
TỔNG KẾT
z
Lựachọnphương pháp lậptrình
z
Lựachọnngônngữ lậptrình
z
Lập trình theo phong cách tốt
z
Áp dụng kỹ thuậtlập trình phù hợp

×