Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
305,5 KB
Nội dung
Chương 5: Cài đặt phần mềm CHƯƠNG CÀI ĐẶT PHẦN MỀM Cài đặt công đoạn việc phát triển phần mềm xem hệ tất yếu thiết kế Tuy vậy, phong cách lập trình đặc trưng ngơn ngữ lập trình có ảnh hưởng lớn đến chất lượng phần mềm Một chương trình cài đặt tốt đem lại cho ta thuận lợi việc bảo trì sau 5.1 PHONG CÁCH CÀI ĐẶT CHƯƠNG TRÌNH Sau sinh chương trình đích, chức module phải rõ ràng, không cần tham khảo tới đặc tả thiết kế - nói cách khác, chương trình phải dễ hiểu Phong cách lập trình bao hàm triết lý lập trình nhấn mạnh tới tính đơn giản rõ ràng Viết chương trình máy tính viết dãy câu lệnh ngơn ngữ có Cách thức mệnh đề diễn tả chừng mực xác định tính dễ hiểu tồn chương trình Các yếu tố phong cách bao gồm tài liệu bên trong, phương pháp khai báo liệu, cách tiếp cận đến việc xây dựng câu lệnh, kỹ thuật vào/ra 5.1.1 Tài liệu chương trình Tài liệu chương trình hiểu tài liệu bên chương trình gốc Nó bắt đầu với việc chọn lựa tên gọi định danh, tiếp đến vị trí thành phần việc thích, kết luận với cách tổ chức trực quan chương trình Việc lựa chọn tên gọi định danh có nghĩa điều chủ chốt cho việc hiểu chương trình Những ngơn ngữ giới hạn tên biến hay nhãn có vài ký tự nên tự mang nghĩa mơ hồ Nhưng ý nghĩa thông thường phải áp dụng tên gọi chọn, tên gọi dài không cần thiết đôi lúc đưa tiềm lỗi Các nghiên cứu cho dù chương trình nhỏ tên gọi có nghĩa làm tăng tính dễ hiểu Theo ngơn từ mơ hình cú pháp/ngữ nghĩa, tên có ý nghĩa làm "đơn giản hố việc chuyển đổi từ cú pháp chương trình sang cấu trúc ngữ nghĩa bên trong" Khả diễn tả lời thích theo ngơn ngữ tự nhiên phần in chương trình gốc ngơn ngữ lập trình cung cấp Tuy nhiên, số vấn đề nảy sinh: • Bao nhiêu thích "đủ"? • Nên đặt thích vào đâu? • Chú thích có che mờ luồng logic khơng? • Chú thích có làm lạc hướng độc giả khơng? 87 Chương 5: Cài đặt phần mềm • Liệu có thích "khơng bảo trì" khơng, khơng tin cậy được? Tuy vậy, điều rõ ràng: phần mềm phải chứa tài liệu bên Lời thích cung cấp cho người phát triển ý nghĩa truyền thông với độc giả khác chương trình gốc Lời thích cung cấp hướng dẫn rõ rệt, dễ hiểu khâu bảo trì cơng nghệ phần mềm Có nhiều hướng dẫn đề nghị cho việc viết lời thích Các thích mở đầu thích chức hai phạm trù địi hỏi cách tiếp cận có khác Lời thích mở đầu nên xuất đầu module Định dạng cho lời thích là: Một phát biểu mục đích rõ chức module Mô tả giao diện bao gồm: a) Mẫu lời gọi, b) Mô tả đối số, c) Danh sách tất module thuộc cấp Thảo luận liệu thích hợp biến quan trọng hạn chế giới hạn cách dùng chúng, thông tin quan trọng khác Lịch sử phát triển bao gồm: a) Tên người thiết kế module (tác giả), b) Tên người xét duyệt (kiểm toán) ngày tháng, c) Ngày tháng sửa đổi mơ tả sửa đổi, Các thích mơ tả nhúng vào bên thân chương trình gốc dùng để mô tả cho hàm xử lý Lời thích nên đưa điều phụ trợ, khơng lời diễn giải chương trình Bên cạnh đó, lời thích mơ tả nên: • Mơ tả khối chương trình, thay thích cho dịng • Dùng dịng trống hay thụt cấp lời thích phân biệt với chương trình • Phải đắn; lời thích khơng hay gây hiểu sai cịn tồi tệ khơng có thích Với tên gọi tượng trưng đắn việc thích tốt, việc làm tài liệu bên thích hợp đảm bảo Khi thiết kế thủ tục chi tiết biểu diễn cách dùng ngơn ngữ thiết kế chương trình tài liệu thiết kế nhúng trực tiếp vào văn chương trình gốc câu thích Kỹ thuật đặc biệt có ích việc làm tài liệu thực hợp ngữ giúp đảm bảo chương trình thiết kế bảo trì thay đổi thực cho hai Việc viết thụt cấp chương trình gốc kết cấu khối logic chương trình cho thuộc tính thấy so với lề bên trái Giống việc thích, cách tiếp cận tốt tới việc thụt cấp nên để mở cho tranh luận Việc thụt cấp thủ cơng trở nên phức tạp có sửa đổi chương trình kinh nghiệm tích luỹ đủ hiểu biết tăng cường việc để lề cho khớp Có lẽ cách tiếp cận tốt dùng định dạng chương trình tự động (như cơng cụ CASE) đặt việc thụt cấp cho chương trình gốc Nó xố bỏ gánh nặng việc làm thụt cấp cho người lập trình, cải thiện khn dạng chương trình với tương đối nổ lực 88 Chương 5: Cài đặt phần mềm 5.1.2 Khai báo liệu Độ phức tạp việc tổ chức cấu trúc liệu xác định bước thiết kế phong cách khai báo liệu thiết lập chương trình sinh Thứ tự khai báo liệu nên chuẩn hố cho dù ngơn ngữ lập trình khơng có u cầu bắt buộc Điều tạo điều kiện thuận lợi cho việc kiểm thử, gỡ rối bảo trì Thậm chí, có nhiều định danh khai báo câu lệnh việc xếp theo trật tự chữ cho tên gọi có giá trị Nếu thiết kế có mơ tả trước cấu trúc liệu phức tạp nên dùng thích để giải thích điểm đặc thù cài đặt ngơn ngữ lập trình 5.1.3 Xây dựng câu lệnh Mặc dầu việc xây dựng luồng logic phần mềm thiết lập thiết kế việc xây dựng câu lệnh nằm bước lập trình Thực tế chứng minh, việc xây dựng câu lệnh chương trình nên tuân theo phong cách lập trình cấu trúc Các câu lệnh nên đơn giản trực tiếp, không bị xoắn vào để đảm bảo hiệu Trong thể chương trình, cách xây dựng câu lệnh đơn việc thụt cấp chương trình minh hoạ cho đặc trưng logic chức giai đoạn này, nên tuân theo dẫn: + Tránh dùng phép kiểm tra điều kiện phức tạp, + Khử bỏ phép kiểm tra điều kiện phủ định, + Tránh lồng điều kiện hay chu trình, + Dùng dấu ngoặc để làm sáng tỏ biểu thức, + Dùng dấu cách ký hiệu dễ đọc để làm sáng tỏ nội dung câu lệnh, 5.1.4 Vào Phong cách vào/ra thiết lập phân tích thiết kế phần mềm cách thức cài đặt vào/ra lại ảnh hưởng lớn đến người sử dụng hệ thống Phong cách vào/ra thay đổi theo mức độ tương tác người Với vào/ra theo lơ cách tổ chức vào logic, kiểm tra lỗi vào/ra có nghĩa, phục hồi lỗi vào/ra tốt định dạng báo cáo hợp lý đặc trưng mong muốn Với vào/ra tương tác sơ đồ đưa vào có hướng dẫn, đơn giản, việc kiểm tra lỗi kỹ lưỡng phục hồi, quán định dạng vào/ra lại mối quan tâm chủ yếu Khi cài đặt vào/ra, cần thoả mãn tiêu chí sau: + Làm hợp lệ vào, + Kiểm tra tin cậy tổ hợp liệu vào quan trọng, + Giữ cho định dạng liệu vào đơn giản, + Dùng báo cuối liệu thay yêu cầu người sử dụng xác định số khoản mục vào, + Đặt nhãn cho liệu vào, + Giữ định dạng liệu vào thống nhất, 89 Chương 5: Cài đặt phần mềm 5.2 NỀN TẢNG CỦA NGƠN NGỮ LẬP TRÌNH 5.2.1 Kiểu liệu, định nghĩa kiểu liệu kiểm tra kiểu liệu Kiểu liệu loại liệu định nghĩa từ trước ngôn ngữ ngôn ngữ hỗ trợ số kiểu liệu Tất ngôn ngữ hỗ trợ biến, số dùng liệu số liệu ký tự Kiểu liệu hỗ trợ chung là: số nguyên, số thực xâu ký tự Một số ngơn ngữ hỗ trợ kiểu liệu khác như: Logical, Boolean, Pointer, Object, Bit, Date, kiểu liệu tự định nghĩa Kiểu Boolean sinh giá trị nhị phân True, False dựa so sánh logic Pointer địa chương trình khác cấu trúc liệu mà dùng để tham chiếu đến chương trình Object xây dựng để đóng gói liệu phương thức Kiểu liệu Date định nghĩa ngày tháng năm khuôn dạng hợp lệ - thay cho việc phải viết chương trình để xử lý kiểu Date, ta sử dụng thủ tục có sẵn ngôn ngữ Các cấu trúc liệu mảng, bảng, danh sách tuyến tính, loại thứ ba cấu trúc liệu ngôn ngữ Các ngôn ngữ hỗ trợ khơng hỗ trợ kiểu Tuy nhiên, kiểu liệu đơn giản mảng, danh sách tuyến tính, thường hầu hết ngôn ngữ hỗ trợ Cuối cùng, kiểu liệu tự định nghĩa kiểu liệu lập trình viên định nghĩa có giá trị chương trình ứng dụng định Kiểu liệu tự định nghĩa dùng để định nghĩa kiểu liệu ngôn ngữ không hỗ trợ kiểu liệu Kiểm tra kiểu liệu việc ngơn ngữ kiểm tra phù hợp kiểu liệu định nghĩa phép toán học tốn tử logic Có bốn mức kiểm tra kiểu, từ không kiểm tra kiểu đến kiểm tra chặt, mức độ chặt chẽ kiểm tra phụ thuộc vào dạng ứng dụng Nói chung tiến trình cần xác, qn ổn định địi hỏi mức độ kiểm tra kiểu chặt chẽ Trong lập trình hướng đối tượng, kiểm tra kiểu quan trọng tính đa hình cho phép nhiều module thực chức nhiều kiểu liệu khác nhau, kiểm tra kiểu chặt chẽ làm giảm khả chương trình gặp lỗi + Khơng kiểm tra kiểu (typeless checking) nghĩa không tiến hành kiểm tra kiểu cách tường minh Ví dụ: Trong ngơn ngữ khơng kiểu Basic Cobol, kí tự phép gán integer, gây lỗi trường tham chiếu số ngun Khơng có bảo đảm việc khơng gặp lỗi ta thao tác trường không kiểu Các ngơn ngữ chương trình dịch có cách xử lý trường không kiểu không thống 90 Chương 5: Cài đặt phần mềm + Mức kiểm tra kiểu ép kiểu tự động (automatic type coercion), nhiều kiểu liệu phép dùng chung, khơng phải tất dẫn đến lỗi chuyển đổi kiểu khơng tương thích Mức kiểm tra kiểu cịn có tên kiểm tra kiểu dạng hỗn hợp (mixed mode type checking), kiểu liệu khác thuộc phân loại chuyển sang kiểu đích tốn tử kiểu hỗn hợp Ví dụ, Fortran, trộn lẫn số thực số nguyên toán tử toán học dẫn đến kết khơng thể dự đốn kiểu đích (target type) định việc định nghĩa trường kết Nếu trường kết định nghĩa thực, kết tính tốn số thực Nếu trường kết định nghĩa integer, tiến trình làm tròn câu trả lời (số thực) đưa kết integer + Kiểm tra kiểu giả chặt (Pseudostrong type checking) mức thứ ba kiểm tra kiểu, cho phép thao tác đối tượng liệu thuộc kiểu liệu, phép kiểm tra kiểu áp dụng chúng định nghĩa module Pascal ngôn ngữ có kiểm tra kiểu giả chặt, hỗ trợ kiểm tra kiểu chặt chẽ module, không hỗ trợ chéo module Cho nên, liệu truyền từ module sang module khác chuyển sang kiểu liệu khác mà không bị bắt lỗi + Ở mức cao kiểm tra kiểu ngôn ngữ, kiểm tra kiểu chặt chẽ cho phép thao tác đối tượng liệu có kiểu xác định từ trước, nằm khác module Nếu module có kiểu liệu không hợp lệ, ứng dụng dừng đưa thông báo lỗi Ada ngôn ngữ cung cấp kiểm tra kiểu chặt chẽ 5.2.2 Chương trình Sự tinh tế ngôn ngữ thể mức độ hỗ trợ module hoá quản lý nhớ Module hố cách thức tạo chương trình hàm Các ngôn ngữ khác cách hỗ trợ chương trình liệu Trước hết, khả định nghĩa chương trình con, hàm quan trọng để có đặc trưng chương trình mong muốn Thứ hai, liệu module quản lý nào? Dữ liệu cục tổng thể Khả có liệu cục quan trọng việc che giấu thông tin giảm thiểu việc liên kết Phạm vi liệu tổng thể cần giới hạn để đảm bảo chất lượng chương trình việc giấu thơng tin liên kết Trong ngơn ngữ, chương trình gọi thơng qua tên Tuỳ chọn cho xử lý việc gọi bao gồm việc truyền liệu biến, tên, địa chỉ, giá trị Truyền giá trị đòi hỏi định nghĩa liệu cục truyền liệu tên địa sử dụng với liệu cục liệu tổng thể Nói chung, sử dụng chương trình con, module gọi chương trình làm việc trả lại kết cho module Khả hỗ trợ xử lý chương trình địi hỏi nhiều mục vào điểm thoát Xử lý Exit Return quan trọng chuyển quyền điều khiển module Trong trường hợp, nhiều hội để vào thoát khỏi module xác định trước, 91 Chương 5: Cài đặt phần mềm lập trình viên cần thành thạo, đảm bảo khả xử lý thành thạo, đảm bảo khả xử lý hồn hảo Theo nhà lập trình cấu trúc, module thiết kế tốt nên có điểm vào điểm Module vào gây lỗi so với module có nhiều mục vào, điểm 5.2.3 Cấu trúc điều khiển Về chất, chương trình máy tính mã hoá thuật toán Ở đây, đối tượng chịu thao tác mô tả kiến trúc thơng qua cấu trúc liệu cịn thao tác mô tả thông qua cấu trúc điều khiển Như vậy, cấu trúc điều khiển ngôn ngữ yếu tố định thao tác thao tác liệu mô tả Chúng cung cấp khả xử lý: tuần tự, lặp cách thức lựa chọn cấu trúc liệu Sự có hai dạng: dịng lệnh dịng lệnh Lập trình viên điều khiển dòng lệnh (between-command sequencing) trật tự lệnh, dịng lệnh thứ tự ưu tiên phép toán -operator precendence- dùng thao tác liệu, ngơn ngữ quy định sẵn Với hai khối lệnh A, B tuân theo phương thức xử lý với R số lần thực khối lệnh ta có R A=RB=1 Cấu trúc ngơn ngữ lập trình thường tuân theo trật tự từ trái sang phải từ xuống Cấu trúc lựa chọn ngôn ngữ lập trình thường mơ tả từ khố If Case Với biểu thức điều kiện lựa chọn E khối lệnh lựa chọn A1,A2, ,An, theo ký hiệu ta có 1=RE>=RA1+ +RAn Cấu trúc lặp ngơn ngữ lập trình hỗ trợ dạng: lặp biết trước số lần lặp (For), lặp với kiểm tra điều kiện lặp trước - lính canh đặt trước (While do), lặp với kiểm tra điều kiện lặp sau (Do .while) Lặp biết trước số lần lặp đánh dấu biểu thức đếm đầu (D) đến cuối (C) Với khối lệnh A thân vịng lặp, ta có R C=RD=1 RA=C-D+1 C>=D, ngược lại RA=0 C