Bài giảng Công nghệ phần mềm - Nguyễn Khắc Quốc - Chương 4: Lập trình

-Ngônngữlập trình là phươngtiện đểliên lạc giữa

conngườivàmáytính.

-Tiếntrình lập trình -sựliên lạc thông quangônngữ

lập trình-làmộthoạtđộngcủaconngười.

- Lậptrình là bướccốtlõi trong tiến trình côngnghệ

phầnmềm.

pdf51 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1846 | Lượt tải: 5download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm - Nguyễn Khắc Quốc - Chương 4: Lập trình, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
iểu if để xây dựng lệnh điều khiển
- và trong thiết kế thì dùng cách tiếp cận trên - xuống.
-Việc thừa nhận lập trình có cấu trúc là quan trọng bởi
vì nó là bước đầu tiên từ cách tiếp cận không khuôn
phép tới phát triển phần mềm.
4.3 Lập trình tránh lỗi (tt)
-Lập trình có cấu trúc buộc người lập trình phải nghĩ cẩn
thận về chương trình
-vì vậy nó ít tạo ra sai lầm trong khi phát triển.
- làm cho chương trình có thể được đọc một cách tuần
tự và do đó dễ hiểu và dễ kiểm tra.
-Tuy nhiên nó chỉ là bước đầu tiên trong việc lập trình
nhằm đạt độ tin cậy tốt.
4.3 Lập trình tránh lỗi (tt)
Có một vài khái niệm khác cũng hay dẫn tới các lỗi phần
mềm:
i) Các số thực dấu chấm động
ii) Các con trỏ và bộ nhớ động
iii) Song song
iv) Đệ quy.
v) Các ngắt.
Các cấu trúc này có ích, nhưng người lập trình nên dùng
chúng một cách cẩn thận.
4.3 Lập trình tránh lỗi (tt)
Phân quyền truy cập dữ liệu:
-Khi lập trình người ta cũng tuân theo một nguyên lý
tương tự cho việc truy cập dữ liệu hệ thống.
- Mỗi thành phần chương trình chỉ được phép truy cập
đến dữ liệu nào cần thiết để thực hiện chức năng của
nó.
4.3 Lập trình tránh lỗi (tt)
- Ưu điểm của việc che dấu thông tin là các thông tin bị
che dấu không thể bị sập đổ (thao tác trái phép) bởi các
thành phần chương trình mà được xem là không dùng
đến thông tin đó.
- Tiến hóa của sự phân quyền truy cập là che dấu thông
tin, hay nói chính xác hơn là che dấu cấu trúc thông tin.
- Khi đó, chúng ta có thể thay đổi cấu trúc thông tin mà
không phải thay đổi các thành phần khác có sử dụng
thông tin đó.
4.3 Lập trình tránh lỗi (tt)
Đối với các hệ thống đòi hỏi độ tin cậy rất cao như hệ
thống điều khiển “máy bay” thì cần phải có khả năng
dung thứ lỗi ,
- tức là khả năng đảm bảo cho hệ thống vẫn hoạt động
chính xác ngay cả khi có thành phần sinh lỗi.
i) Phát hiện lỗi.
ii) Định ra mức độ thiệt hại.
iii) Hồi phục sau khi gặp lỗi
iv) Chữa lỗi
4.3.1 Lập trình thứ lỗi
- Thứ lỗi được thực hiện bằng cách song song hóa
các chức năng,
- Kết hợp với bộ điều khiển thứ lỗi.
- Bộ điều khiển sẽ so sánh kết quả của các khối
chương trình thực hiện cùng nhiệm vụ và sử dụng
nguyên tắc đa số để chọn kết quả.
4.3.1 Lập trình thứ lỗi (tt)
- Là cách phát triển chương trình mà người lập trình
giả định các mâu thuẫn hoặc các lỗi chưa được phát
hiện có thể tồn tại trong chương trình.
- Phải có phần mềm kiểm tra trạng thái hệ thống sau
khi biến đổi và phải đảm bảo sự biến đổi trạng thái là
kiên định.
- Nếu phát hiện một mâu thuẫn thì việc biến đổi trạng
thái là phải rút lại và trạng thái phải trở về trạng thái
đúng đắn trước đó.
4.3.2 Lập trình phòng thủ
Nhìn chung một lỗi cũng gây ra một sự sụp đổ trạng
thái
-Các biến trạng thái được gán các trị không hợp luật.
-Ngôn ngữ Ada cho phép phát hiện ra các lỗi đó ngay
trong khi biên dịch.
-Việc kiểm tra biên dịch chỉ hạn chế cho các giá trị tĩnh
và một vài phép kiểm tra thời gian thực là không thể
tránh được.
-Một cách để phát hiện lỗi trong chương trình Ada là
dùng cơ chế xử lý bất thường kết hợp với đặc tả miền
trị.
4.3.2 Lập trình phòng thủ (tt)
Hồi phục lỗi là một quá trình cải biên không gian trạng
thái của hệ thống sao cho ảnh hưởng của lỗi là nhỏ nhất
và hệ thống có thể tiếp tục vận hành,
+ Hồi phục tiến: liên quan đến việc cố gắng chỉnh lại
trạng thái hệ thống.
+ Hồi phục lùi: liên quan đến việc lưu trạng thái của hệ
thống ở một trạng thái đúng đã biết.
Hồi phục tiến thường là một chuyên biệt ứng dụng.
4.3.2 Lập trình phòng thủ (tt)
Có hai tình thế chung khi hồi phục tiến có thể thành
công:
• Khi dữ liệu mã bị sụp đổ: Việc sử dụng kỹ thuật
mã hóa thích hợp bằng cách thêm các dữ liệu dư
thừa vào dữ liệu cho phép sửa sai khi phát hiện lỗi.
2) Khi cấu trúc nối bị sụp đổ: Nếu các con trỏ tiến và
lùi đã có trong cấu trúc dữ liệu thì cấu trúc đó có thể
tái tạo nếu như còn đủ các con trỏ chưa bị sụp.
- Kỹ thuật này thường được dùng cho việc sửa chữa
hệ thống tệp và cơ sở dữ liệu.
4.3.2 Lập trình phòng thủ (tt)
Hồi phục lùi là một kỹ thuật đơn giản liên quan đến việc
duy trì các chi tiết của trạng thái an toàn và cất giữ
trạng thái đó khi mà sai lầm đã bị phát hiện.
Hầu hết các hệ quản trị cơ sở dữ liệu đều có bộ hồi
phục lỗi.
CSDL chỉ cập nhật dữ liệu một khi giao dịch đã hoàn
tất và không phát hiện được vấn đề gì.
Nếu giao dịch thất bại thì CSDL không được cập nhật.
4.3.2 Lập trình phòng thủ (tt)
Một kỹ thuật khác là thiết lập các điểm kiểm tra thường
kỳ mà chúng là các bản sao của trạng thái hệ thống.
Khi một lỗi được phát hiện thì trạng thái an toàn đó
được tái lưu kho từ điểm kiểm tra gần nhất.
Trường hợp hệ thống dính líu tới nhiều quá trình hợp
tác thì dãy các giao tiếp có thể là các điểm kiểm tra
của các quá trình đó không đồng bộ và để hồi phục thì
mỗi quá trình phải trở lại trạng thái ban đầu của nó.
4.3.2 Lập trình phòng thủ (tt)
-Tính hiệu quả của chương trình gốc có liên hệ trực
tiếp với tính hiệu quả của thuật toán được xác định
trong thiết kế chi tiết.
-Phong cách lập trình có thể có một tác động đến tốc
độ thực hiện và yêu cầu bộ nhớ.
-Tập hợp các hướng dẫn áp dụng khi thiết kế chi tiết
được dịch thành chương trình
- Đơn giản hóa các biểu thức số học và lôgic trước khi
đi vào lập trình.
- Tính cẩn thận từng chu kỳ lồng nhau để xác định liệu
các câu lệnh hay biểu thức có thể được chuyển ra
ngoài hay không
4.4 Lập trình hướng hiệu quả thực hiện
4.4.1 Tính hiệu quả chương trình
-Khi có thể, hãy tránh dùng:
+ mảng nhiều chiều
+ dùng con trỏ và danh sách phức tạp
+ Dùng các phép toán số học “nhanh”
+ Không trộn lẫn các kiểu dữ liệu, cho dù ngôn
ngữ có cho phép điều đó
- Dùng các biểu thức số học và logic bất kì khi nào có
thể được
4.4.1 Tính hiệu quả chương trình (tt)
Nhiều trình biên dịch có tính năng tối ưu tự động sinh ra
chương trình hiệu quả bằng cách:
-dồn nén các biểu thức lặp,
- thực hiện tính chu trình,
-dùng số học nhanh
- áp dụng các thuật toán có hiệu quả liên quan khác.
Với những ứng dụng trong đó tính hiệu quả có ý nghĩa
quan trọng, những trình biên dịch như thế là công cụ
lập trình không thể thiếu được.
4.4.1 Tính hiệu quả chương trình (tt)
-Tính hiệu quả bộ nhớ phải được tính vào đặc trưng
phân trang của hệ điều hành.
-Tính cục bộ của chương trình hay việc bảo trì lĩnh
vực chức năng qua các kết cấu có cấu trúc là một
phương pháp tuyệt vời làm giảm việc phân trang và
do đó làm tăng tính hiệu quả.
- Hạn chế bộ nhớ trong phát triển phần mềm nhúng
là mối quan tâm rất thực tế,
- một phương kế cuối cùng, có thể phải dùng tới hợp
ngữ.
4.4.2 Hiệu quả bộ nhớ
Các thiết bị vào ra thường có tốc độ chậm hơn rất nhiều so
với khả năng tính toán của máy tính và tốc độ truy cập bộ
nhớ trong.
- Việc tối ưu vào ra có thể làm tăng đáng kể tốc độ thực
hiện.
• Số các yêu cầu vào/ra nên giữ mức tối thiểu
• Mọi việc vào/ra nên qua bộ đệm để làm giảm phí tổn liên
lạc.
• Với bộ nhớ phụ (như đĩa) nên lựa chọn và dùng phương
pháp thâm nhập đơn giản nhất chấp nhận được.
• Nên xếp khối vào/ra với các thiết bị bộ nhớ phụ.
• Việc vào/ra với thiết bị cuối nên nhận diện các tính năng
của thiết bị có thể cải tiến chất lượng hay tốc độ.
4.4.3 Hiệu quả vào/ra
Xét phần mềm hỗ trợ giải bài tập chương trình đại số
với 4 yêu cầu: Soạn đề bài, Sọan đáp án, Giải bài tập,
Chấm điểm
Các giai đoạn thực hiện trong quy trình:
Giai đoạn 1: Xác định yêu cầu
Yêu cầu 1: Soạn đề bài với quy định soạn đề bài
Yêu cầu 2: Soạn đáp án với quy định soạn và biểu
mẫu soạn đáp án
Yêu cầu 3: Giải bài tập với quy định về giải bài tập và
biểu mẫu giải bài tập.
Yêu cầu 4: Chấm điểm với quy định về chấm điểm
4.5. Ví dụ minh họa
Giai đoạn 2:
Sơ đồ luồng dữ liệu cho công việc
soạn đề bài
Giáo viên
Soạn 
đề bài
D1
D4
Sơ đồ luồng dữ liệu cho công việc 
soạn đáp án
Giáo viên
Soạn 
đáp án
D1
D3 D4
4.5. Ví dụ minh họa (tt)
Sơ đồ luồng dữ liệu cho công việc
giải bài tập
Sơ đồ luồng dữ liệu cho công việc
chấm điểm 
Học sinh
Giải 
Bài tập
D1
D3 D4
Học sinh
Chấm điểm
D1
D3 D4
4.5. Ví dụ minh họa (tt)
4.5. Ví dụ minh họa (tt)
Giai đoạn 3: Phân tích yêu cầu chức năng
Giai đoạn 4: Thiết kế phần mềm
Giai đoạn 5: Thực hiện phần mềm
+ Hệ thống lớp đối tượng: SACH_BAI_TAP;
BAI_TAP - (Visual Basic, Visual C++, Java…)
+ Hệ thống giao diện: Tạo lập các màn hình giao
diện (màn hình chính, màn hình soạn đề bài, màn hình
soạn đáp án, màn hình giải bài tập, màn hình chấm
điểm) - (Visual Basic, Visual C++, Java…)
+Hệ thống lưu trữ: các bảng SACH_BAI_TAP,
BAI_TAP, BAI_GIAI, BUOC_GIAI-(Access, SQL Server,
Oracle,…)
Giai đoạn 6: Kiểm thử phần mềm (xem ở chương sau)
Một cài đặt tốt phản ánh những quyết định của thiết kế, cài
đặt nên đảm bảo các yêu cầu sau:
- Cấu trúc, CTDL và những định nghĩa được lựa chọn và
thiết lập trong suốt thủ tục thiết kế cần được tổ chức dễ
dàng nhận biết.
- Mức trừu tượng của thiết kế (lớp, mô đun, thuật toán,
CTDL, kiểu dữ liệu) cũng phải linh động trong thực hiện.
- Giao diện giữa các thành phần của hệ thống phần mềm
được mô tả rõ ràng trong thực hiện.
- Quá trình thực hiện cũng có thể kiểm tra độ tin cậy của
đối tượng và thao tác với trình biên dịch.
Tóm lại
Bước lập trình là một tiến trình dịch (chuyển hóa) thiết kế
chi tiết thành chương trình mà cuối cùng được biến đổi
thành các lệnh mã máy thực hiện được.
Các đặc trưng của ngôn ngữ lập trình có ảnh hưởng lớn
đến quá trình xây dựng, kiểm thử cũng như bảo trì phần
mềm.
Phong cách lập trình quyết định tính dễ hiểu của chương
trình gốc.
Các yếu tố của phong cách bao gồm việc làm tài liệu bên
trong, phương pháp khai báo dữ liệu, thủ tục xây dựng
câu lệnh, và kỹ thuật lập trình vào/ra.
Kết chương
Lập trình cần hướng tới hiệu quả thực hiện, tức là tích
kiệm tài nguyên phần cứng (mức độ sử dụng CPU, bộ
nhớ...).
Mặc dầu tính hiệu quả có thể là yêu cầu cực kì quan
trọng, chúng ta nên nhớ rằng một chương trình hoạt
động hiệu quả mà lại không dễ hiểu dẫn đến khó bảo trì
thì giá trị của nó cũng bị hạn chế.
Kết chương

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm - Nguyễn Khắc Quốc - Chương 4 Lập trình.pdf
Tài liệu liên quan