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

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

Đang tải... (xem toàn văn)

Thông tin tài liệu

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 . 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. 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

Ngày đăng: 20/12/2013, 19:15

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan