Chương 1:  TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM
1. Các khái niệm cơ bản
2. Qui trình công nghệ phần mềm
3. Các phương pháp xây dựng phần mềm
4. Công cụ và môi trường phát triển phần mềm
Chương 2: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU
1. Tổng quan
2. Mô hình hóa yêu cầu hệ thống
Chương 3:  THIẾT KẾ PHẦN MỀM
1.Tổng quan về thiết kế
2.Kiến trúc phần mềm
3.Phương pháp thiết kế phần mềm
4.Ví dụ minh họa
Chương 4: THIẾT KẾ DỮ LIỆU
1.Tổng quan
2.Kết quả của thiết kế
3.Quá trình thiết kế
4.Phương pháp thiết kế dữ liệu
5.Thiết kế dữ liệu với tính đúng đắn
6.Thiết kế dữ liệu và yêu cầu chất lượng
Chương 5 : THIẾT KẾ GIAO DIỆN
1.Tổng quan
2.Thiết kế màn hình
3.Thiết kế màn hình tra cứu
4.Thiết kế màn hình nhập liệu
Chương 6:  CÀI ĐẶT
1.Tổng quan
2.Môi trường lập trình
3.Phong cách lập trình
4.Đánh giá chất lượng công việc
5.Ví dụ minh họa
Chương 7:  KIỂM THỬ PHẦN MỀM
1.Tổng quan
2.Yêu cầu đối với kiểm thử
3.Các kỹ thuật kiểm thử
4.Các giai đoạn và chiến lược kiểm thử
5.Ví dụ minh họa
Chương 8: SƯU LIỆU
1.Tổng quan
2.Sưu liệu người dùng
3.Sưu liệu hệ thống
4.Chất lượng của sưu liệu
5.Bảotrì sưu liệu
6.Các mẫu sưu liệu cho qui trình làm phần mềm
Phụ Lục A
1.Câu hỏi lý thuyết
2.Nội dung và yêu cầu bài tập
3.Bài tập nâng cao
4. Biểu mẫu thực hiện đồ án môn học
PHỤC LỤC B
1. Phần mềm quản lý thư viên
2. Phần mềm quản lý giải vô địch bóng đá
                
              
                                            
                                
            
                       
            
                 11 trang
11 trang | 
Chia sẻ: diunt88 | Lượt xem: 2921 | Lượt tải: 3 
              
            Bạn đang xem nội dung tài liệu Giáo trình Công nghệ phần mềm - Phần 8: Lập trình, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1Lập trình và ngôn 
ngữ lập trình (8)
Nguyễn Thanh Bình
Khoa Công nghệ Thông tin
Trường ðại học Bách khoa
ðại học ðà Nẵng
2
Lập trình
 kỹ năng cá nhân
 năng lực cá nhân
 hiểu biết các công cụ lập trình
 lập trình viên cần
 nguyên tắc lập trình
 kinh nghiệm
 lập trình viên tốt
 viết chương trình
• ñúng ñắn
• dễ hiểu
• dễ bảo trì, phát triển
23
Ngôn ngữ lập trình
 Có nhiều phương pháp lập trình khác nhau
 nhiều ngôn ngữ lập trình khác nhau
 ðiểm chung của các ngôn ngữ lập trình 
(NNLT)
 dễ diễn ñạt
 dễ hiểu
 dễ thực thi trên máy tính
 Một số tính chất của NNLT
 kiểu và kiểm tra kiểu
 mô-ñun hóa
4
Kiểu
 Hầu hết các NNLT ñều có khái niệm 
kiểu
 kiểu số, kiểu lô-gíc...
 một biến có kiểu dữ liệu xác ñịnh
 Kiểm tra kiểu
 ñảm bảo một toán tử/hàm chỉ áp dụng 
cho những toán tử/tham số có kiểu 
cho phép
35
Kiểu
 Ngôn ngữ ñịnh kiểu (types languages)
 có hệ thống kiểu
 cho phép kiểm tra sử dụng kiểu phù hợp mà
không cần thực thi chương trình
• kiểm tra tĩnh
 Ngôn ngữ ñịnh kiểu cho phép
 phát hiện sớm một số lỗi liên quan ñến kiểu
 Ngôn ngữ ñịnh kiểu
 C, Java, C++...
6
ða hình
 Ưu ñiểm của hệ thống kiểu và kiểm tra kiểu
 chặt chẽ
 dễ kiểm tra
 Tuy nhiên
 hệ thống kiểu phải mềm dẽo trong sử dụng
• ña hình
47
ða hình
 Một số tình huống ña hình
 Viết hàm áp dụng cho các mảng có số phần 
tử khác nhau
• kiểu mảng ñược kiểm tra khi biên dịch
• số phần tử của mảng ñược kiểm tra khi thực thi
 Áp dụng hàm cho các kiểu dữ liệu khác 
nhau
• xây dựng nhiều phiên bản của hàm tương ứng với 
các kiểu khác nhau
• hoặc chỉ xây dựng một phiên bản của hàm, xử lý 
khác nhau ñược thực hiện khi thực thi
• template (C++), generic (Java)
8
ða hình
 Một số tình huống ña hình
 Viết hàm áp dụng cho các mảng có số phần tử khác 
nhau
• kiểu mảng ñược kiểm tra khi biên dịch
• số phần tử của mảng ñược kiểm tra khi thực thi
 Áp dụng hàm cho các kiểu dữ liệu khác nhau
• xây dựng nhiều phiên bản của hàm tương ứng với các 
kiểu khác nhau
• hoặc chỉ xây dựng một phiên bản của hàm, xử lý khác 
nhau ñược thực hiện khi thực thi
• template (C++), generic (Java)
• hoặc sử dụng kiểu con/lớp con
• ña hình trong ngôn ngữ lập trình hướng ñối tượng
59
Mô-ñun hóa
 Xuất hiện vào những năm 70
 ðóng vai trò quan trọng ñể tạo ra phần 
mềm chất lượng
 Thiết kế hướng mô-ñun
 phần mềm = tập hợp các mô-ñun và quan 
hệ giữa chúng
 Hầu hết các NNLT ñều hỗ trợ mô-ñun hóa
10
Mô-ñun hóa
 Một mô-ñun gồm hai phần
 Phần giao diện
• giao tiếp với bên ngoài mô-ñun ay mô-
ñun khác
 Phần thân
• nội dung của mô-ñun
• cục bộ ñối với mỗi mô-ñun, che dấu ñối 
với mô-ñun khác
611
Mô-ñun hóa
 Các mô-ñun chỉ trao ñổi dữ liệu qua phần 
giao diện
 không sử dụng biến toàn cục
 Nếu thay ñổi phần thân thì ít ảnh hưởng 
(hoặc không ảnh hưởng) ñến các mô-ñun 
khác
 Trong ngôn ngữ lập trình cấu trúc
 mô-ñun = hàm
 Trong ngôn ngữ lập trình hướng ñối tượng
 mô-ñun = lớp / phương thức
12
Các phương pháp lập trình 
cơ bản
 Lập trình thủ tục/cấu trúc (procedural 
programming)
 Lập trình hướng ñối tượng (object-oriented 
programming)
 Lập trình hàm (functional programming)
 Lập trình lô-gíc (logic programming)
713
Lập trình thủ tục
 ñược sử dụng phổ biến
 lập trình có cấu trúc
 phù hợp với thiết kế hướng chức 
năng
 NNLT thủ tục
 Fortran, Ada, Pascal, C...
14
Lập trình hướng ñối tượng 
 khái niệm cơ bản
 ñối tượng, lớp
 ñóng gói
 thừa kế
 ña hình
 xu hướng phát triển của các NNLT hiện ñại
 NNLT hướng ñối tượng
 Smalltalk, C++, Java, Delphi...
815
Lập trình hàm
 tính toán các biểu thức
 hàm tính toán dựa trên các giá trị của tham 
số
 thao tác trên danh sách
 áp dụng 
 lĩnh vực tính toán
 trí tuệ nhân tạo
 NNLT hàm
 LISP, Scheme...
16
Lập trình lô-gíc
 thực hiện các biểu thức lô-gíc
 khái niệm hợp giải (resolution)
• tìm kiếm giá trị của các biến sao cho biểu thức lô-
gíc có giá trị ñúng
 ứng dụng
 xây dựng hệ chuyên gia
 xử lý ngôn ngữ tự nhiên
 NNLT lô-gíc
 Prolog
917
Chọn NNLT
 quyết ñịnh quan trọng trong phát triển 
phần mềm
 giảm chi phí
 mã nguồn chất lượng
 dễ bảo trì, phát triển
18
Chọn NNLT
 dựa vào nhiều yếu tố (1)
 yêu cầu của khách hàng
• khách hàng tự bảo trì sản phẩm
 chương trình dịch
• cần có chương trình dịch có chất lượng tốt
 công cụ hỗ trợ
• dễ dàng quá trình lập trình, bảo trì
 kinh nghiệm của lập trình viên
• chọn NNLT mà lập trình làm chủ
10
19
Chọn NNLT
 dựa vào nhiều yếu tố (2)
 yêu cầu tính khả chuyển (portability)
• thực hiện trên nhiều máy tính/plaform khác nhau
 lĩnh vực ứng dụng
• hệ thống nhúng: C, Assembly...
• hệ thống quản lý: .NET, VB, C++...
• hệ chuyên gia: Prolog
• mạng: Java, .NET...
• website: PHP, ASP...
• không tồn tại ngôn ngữ ña năng cho mọi ứng 
dụng
20
Phong cách lập trình
 Cần có chương trình dễ hiểu
 phụ thuộc vào ñặc ñiểm NNLT
 phong cách của người lập trình
 Phong cách lập trình không do lập trình viên tự ñặt ra 
mà do tổ chức/doanh nghiệp/dự án ñặt ra
 các luật lập trình
 các quy ước lập trình
 Mục ñích
 mã nguồn dễ hiểu, dễ kiểm thử, dễ bảo trì
 ít lỗi
11
21
Phong cách lập trình
 Một số nguyên tắc lập trình
 ñặt tên
• có ý nghĩa, gợi nhớ
 trình bày
• rỏ ràng, dễ hiểu
 chú thích
• ñầy ñủ, dễ ñọc
 hạn chế sử dụng cấu trúc khó hiểu
• break, continue, goto...
 ví dụ
• quy ước lập trình C++