Bài 8 Lập trình

78 310 1
Bài 8 Lập trình

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN Email: vynv@coltech.vnu.vn K ngh phn mm Software Engeneering B môn Công ngh phn mm – HCN 2 NguynVnV Ni dung Bài 8: Lp trình ̈ Ng«n ng÷ lËp tr×nh ̈ Phong c¸ch lËp tr×nh ̈ LËp tr×nh tr¸nh lçi ̈ LËp tr×nh h−íng hiÖu qu¶ B môn Công ngh phn mm – HCN 3 NguynVnV TÀI LiU THAM KHO 1. Nguyn Vn V, Nguyn Vit Hà. Giáo trình k ngh phn mm. Nhà xut bn i hc Quc gia Hà ni, 2008 2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling language User Guid. Addison-Wesley, 1998. 3. M. Ould. Managing Software Quality and Business Risk, John Wiley and Sons, 1999. 4. Roger S.Pressman, Software Engineering, a Practitioner’s Approach. Fifth Edition, McGraw Hill, 2001. 5. Ian Sommerville, Software Engineering. Sixth Edition, Addison- Wasley, 2001. 6. Nguyn Vn V. Phân tích thit k h thng thông tin hin đi. Hng cu trúc và hng đi tng, NXB Thng kê, 2002, Hà Ni. B mụn Cụng ngh phn mm HCN 4 NguynVnV Khái niệm lập trình hiệu quả Sản phẩm phần mềm tốt khi phân tích tốt thiết kế tốt lập trình tốt kiểm thử chặt chẽ kỹ thuật lập trình tốt chuyên nghiệp (tuân theo các chuẩn) ổn định hiệu quả B mụn Cụng ngh phn mm HCN 5 NguynVnV Lập trình hiệu quả hơn, sản phẩm rẻ tiền hơn Tốc độ phát triển cao hơn năng lực biểu diễn cao hơn khả năng sử dụng lại cao hơn Dễ bảo trì hơn dễ hiểu, dễ sửa đổi, thích nghi Chất lợng cao hơn sử dụng các cấu trúc an ton hơn chơng trình cần dễ hiểu Khái niệm lập trình hiệu quả B mụn Cụng ngh phn mm HCN 6 NguynVnV Tốc độ viết mã nguồn Tốc độ phát triển cao lm ngắn chơng trình nguồn Tốc độ không tỷ lệ thuận với số dòng lệnh Câu lệnh phức tạp lm giảm độ dễ hiểu Ngôn ngữ mức cao (4GL) năng lực biểu diễn cao tốc độ phát triển nhanh B mụn Cụng ngh phn mm HCN 7 NguynVnV Tiến hóa của kỹ thuật lập trình Lập trình tuần tự (tuyến tính) Lập trình có cấu trúc (thủ tục) Lập trình hớng chức năng Lập trình hớng đối tợng Kỹ thuật thế hệ thứ 4 B mụn Cụng ngh phn mm HCN 8 NguynVnV Lập trình tuần tự không có/thiếu các lệnh có cấu trúc (for, while, do while) lạm dụng các lệnh GOTO thiếu khả năng khai báo biến cục bộ độ ghép nối cao chơng trình khó hiểu, khó sửa, dễ sinh lỗi Ngôn ngữ dùng : thế hệ 1, 2: assembly, basic, B môn Công ngh phn mm – HCN 9 NguynVnV LËp tr×nh cã cÊu tróc  sö dông c¸c lÖnh cã cÊu tróc (for, while, do while)  h¹n chÕ/cÊm dïng GOTO  sö dông ch−¬ng tr×nh con, biÕn côc bé dÔ hiÓu h¬n, an toμn h¬n Ng«n ng÷ dïng: thÕ hÖ 2, 3: Fortran, Pascal, C, B mụn Cụng ngh phn mm HCN 10 NguynVnV Lập trình hớng chức năng Dựa trên nguyên tắc ghép nối dữ liệu trao đổi dữ liệu bằng tham số v giátrị trảlại loại bỏ hon ton dữ liệu dùng chung Loại bỏ các hiệu ứng phụ khi sửa đổi các mođun chơng trình; nâng cao tính tái sử dụng Ví dụ: Lisp [...]... liên quan B mụn Cụng ngh ph n m m HCN 33 Phong cách lập trình tốt Nguy nV nV Tuân theo các chuẩn thông dụng Chuẩn đ ợc chấp nhận rộng rãi hơn dễ hiểu hơn Chú giải đầy đủ mỗi khi không tuân theo chuẩn "Ng ời khác có hiểu đ ợc không?" B mụn Cụng ngh ph n m m HCN 34 Kỹ thuật lập trình tránh lỗi Nguy nV nV Kỹ thuật lập trình tốt dựa trên các yếu tố lập trình có cấu trúc dùng các lệnh có cấu trúc mođun... HCN 18 Miền ứng dụng v ngôn ngữ (t) Nguy nV nV Phần mềm nghiệp vụ: CSDL: Oracle, DB2, SQL Server, MySQL ngôn ngữ: FoxPro, COBOL, VB, VC++ Trí tuệ nhân tạo: Lisp, Prolog, OPS5, Lập trình Web/CGI: Perl, ASP, PHP, Java, Java script, Python B mụn Cụng ngh ph n m m HCN 19 Phong cách lập trình Nguy nV nV Bao gồm các yếu tố: cách đặt tên h m v biến cách xây dựng câu lệnh, cấu trúc ch ơng trình. . .Lập trình h ớng đối t ợng Nguy nV nV Bao gói & che dấu thông tin thao tác với dữ liệu qua các giao diện xác định kế thừa cục bộ hơn dễ tái sử dụng hơn thuận tiện cho các ứng dụng lớn Ngôn ngữ h ớng đối t ợng: C++, Java, C# B mụn Cụng ngh ph n m m HCN 11 Lập trình logic Nguy nV nV Tách tri thức về b i toán khỏi kỹ thuật lập trình Mô tả tri thức các qui tắc ... Cụng ngh ph n m m HCN 27 convert.c Nguy nV nV void main() { int count = 0; char buf[1 28] ; while (NULL != scanf(%s, buf)) { upcase(buf); printf(%s, buf); count += strlen(buf); } fprintf(stderr, number of chars: %d\n, count); } #convert < normal.txt > uppercase.txt number of chars: 6 78 B mụn Cụng ngh ph n m m HCN 28 Xử lý lỗi trong h m th viện Nguy nV nV Ng ời viết v ng ời sử dụng th viện l khác nhau... B mụn Cụng ngh ph n m m HCN 13 Lựa chọn ngôn ngữ Đặc tr ng của ngôn ngữ Nguy nV nV năng lực (kiểu biến, các cấu trúc) tính khả chuyển mức độ hỗ trợ của các công cụ Miền ứng dụng của ngôn ngữ lập trình hệ thống nghiệp vụ, kinh doanh khoa học kỹ thuật trí tuệ nhân tạo Năng lực, kinh nghiệm của nhóm phát triển Yêu cầu của khách h ng B mụn Cụng ngh ph n m m HCN 14 Năng lực của ngôn ngữ Nguy nV... các sự thực mục tiêu Hệ thống tự chứng minh tìm đ ờng đi đến mục tiêu Ví dụ:Prolog B mụn Cụng ngh ph n m m HCN 12 Ví d Prolog: 8 hậu Nguy nV nV member(X,[X|L]) member(X,[Y|L]):-member(X,L) solution([]) solution([X/Y|Other]):solution(Other), member(Y, [1,2,3,4,5,6,7 ,8] ), noattack(X/Y, Other) noattack(_,[]) noattack(X/Y, [X1/Y1 | Other]):Y =\= Y1, Y1-Y =\= X1-X, Y1-Y =\= X-X1, noattack(X/Y , Other)... quả của h m, biểu thức printf("%s", strcpy(des, src)); Tránh các cấu trúc phức tạp: các lệnh if lồng nhau điều kiện phủ định if not B mụn Cụng ngh ph n m m HCN 24 H m v biến cục bộ Nguy nV nV Ch ơng trình cần đ ợc chia th nh nhiều mô đ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ều biến cục bộ không thể theo dõi đồng... đổi OS Java khả chuyển Các ngôn ngữ thông dịch (script) khả chuyển sử dụng các tính năng chuẩn của ngôn ngữ sử dụng script khi có thể B mụn Cụng ngh ph n m m HCN 16 Có công cụ hiệu quả Nguy nV nV Trình biên dịch hiệu quả biên dịch tốc độ cao khả năng tối u cao khai thác các tập lệnh, kiến trúc phần cứng mới Các công cụ trợ giúp hiệu quả editor, debugger, linker, make IDE (Integrated Develop... ngữ h ớng đối t ợng môđun xử lý ném ra một ngoại lệ (đối t ợng chứa thông tin lỗi) môđun điều khiển bắt ngoại lệ (nếu có) Tách phần xử lý lỗi khỏi phần c i đặt thuật toán thông th ờng, l m cho ch ơng trình dễ đọc hơn Dễ dùng hơn, an to n hơn B mụn Cụng ngh ph n m m HCN 30 Ném ngoại lệ Nguy nV nV double MyDivide(double num, double denom) { if (denom == 0.0) { throw invalid_argument(The denom cannot... tốn thời gian, chi phí cao tác giả phải bảo trì suốt vòng đời của phần mềm bản thân tác giả cũng không hiểu B mụn Cụng ngh ph n m m HCN 21 Chú thích Nguy nV nV Mọi điều đ ợc Chú thích trong ch ơng trình Mục đích sử dụng của các biến Chức năng của khối lệnh, câu lệnh các lệnh điều khiển các lệnh phức tạp Chú thích các mô đun mục đích, chức năng của mô đun tham số, giá trị trả lại (giao diện)

Ngày đăng: 12/05/2014, 11:11

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