GIÁO TRÌNH tóm tắt CÔNG NGHỆ PHẦN mềm

131 6 0
GIÁO TRÌNH tóm tắt CÔNG NGHỆ PHẦN mềm

Đ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

Giáo trình tóm tắt Cơng Nghệ Phần Mềm Giáo trình tóm tắt Cơng nghệ phần mềm Giáo trình tóm tắt Công Nghệ Phần Mềm MỤC LỤC MỞ ĐẦU CHƯƠNG PHẦN MỀM VÀ KỸ NGHỆ PHẦN MỀM .7 Phần mềm .7 1.1 Khái niệm phần mềm 1.2 Q trình tiến hố phần mềm .7 1.3 Các đặc trưng phần mềm 1.4 Phân loại phần mềm 1.5 Các thành phần phần mềm .10 1.6 Việc ứng dụng phần mềm 16 1.7 Các thách thức phần mềm máy tính 17 Kỹ nghệ phần mềm 18 2.1 Định nghĩa 18 2.2 Cách tiếp cận 1: Mơ hình vịng đời cổ điển .18 2.3 Cách tiếp cận 2: Mơ hình làm mẫu 20 2.4 Cách tiếp cận 3: Mơ hình xoắn ốc 21 2.5 Cách tiếp cận 4: Kỹ thuật hệ thứ tư 22 2.6 Cách tiếp cận 5: Tổ hợp khuôn cảnh 24 Các giai đoạn tiến trình kỹ nghệ phần mềm 25 3.1 Giai đoạn xác định: 25 3.2 Giai đoạn phát triển 25 3.3 Giai đoạn bảo trì .25 CHƯƠNG PHÂN TÍCH YÊU CẦU VÀ ĐẶC TẢ PHẦN MỀM 27 Người phân tích 27 Nhiệm vụ phân tích yêu cầu 27 Việc hình thành yêu cầu Error! Bookmark not defined Xác định yêu cầu 30 Đặc tả phần mềm 30 5.1 Cách đặc tả biểu diễn 31 5.1.1 Đặc tả 31 5.1.2 Biểu diễn 31 5.2 Các nguyên lý đặc tả 32 5.3 Các mức trừu tượng đặc tả .35 5.4 Đặc tả yêu cầu 35 5.4.1 Những hạn chế việc đặc tả ngôn ngữ tự nhiên 36 5.4.2 Các yêu cầu phi chức 36 5.4.3 Khó khăn việc xác định đặc tả yêu cầu 36 5.4.4 Thẩm định yêu cầu 37 5.5 Dàn đặc tả yêu cầu phần mềm 37 5.6 Xét duyệt đặc tả 38 Giáo trình tóm tắt Cơng Nghệ Phần Mềm 5.6.1 Mức vĩ mô 38 5.6.2 Mức chi tiết 39 Kỹ nghệ hệ thống tạo nguyên mẫu .40 6.1 Kỹ nghệ hệ thống 40 6.1.1 Các hoạt động tiến trình phân tích hệ thống 40 6.1.2 Đặc tả hệ thống 42 6.2 Tạo nguyên mẫu (prototype) 45 6.2.1 Lợi ích việc phát triển nguyên mẫu .45 6.2.2 Các giai đoạn việc phát triển nguyên mẫu 46 6.2.3 Tạo nguyên mẫu tiến trình phần mềm .46 6.2.4 Hạn chế cách tiếp cận tạo nguyên mẫu 47 6.2.5 Các bước tiến hành làm nguyên mẫu phần mềm 48 6.2.6 Các phương pháp công cụ làm nguyên mẫu 49 CHƯƠNG THIẾT KẾ PHẦN MỀM 51 1.Thiết kế phần mềm 51 1.1 Thiết kế phần mềm kỹ nghệ phần mềm 51 1.2 Các giai đoạn thiết kế phần mềm 52 1.3 Quá trình thiết kế .52 I.3.1 Các hoạt động thiết kế 52 1.3.2 Việc mô tả thiết kế 54 1.4 Phương pháp thiết kế .55 1.4.1 Phương pháp thiết kế 55 1.4.2 Các khái niệm tảng cho thiết kế 56 1.4.3 Các chiến lược thiết kế 64 1.4.3.1 Thiết kế chức 64 1.4.3.2 Thiết kế hướng đối tượng 64 1.4.4 Chất lượng thiết kế 65 1.4.4.1 Sự kết dính (Cohension) 65 1.4.4.2 Sự ghép nối (Coupling) .66 1.4.4.3 Sự hiểu (Understandability) .66 1.4.4.4 Sự thích nghi (Adaptability) .67 Thiết kế hướng đối tượng (Object Oriented Design) .67 2.1 Cách tiếp cận hướng đối tượng .67 2.2 Đặc trưng thiết kế hướng đối tượng 68 2.3 Các ưu nhược điểm thiết kế hướng đối tượng 68 2.4 Phân biệt thiết kế hướng đối tượng lập trình hướng đối tượng .68 Thiết kế hướng cấu trúc .68 3.1 Cách tiếp cận hướng cấu trúc 68 3.2 Biểu đồ luồng liệu 69 3.3 Lược đồ cấu trúc .70 Giáo trình tóm tắt Cơng Nghệ Phần Mềm 3.4 Từ điển liệu 70 Giao diện người sử dụng 71 4.1 Nhân tố người tương tác người máy 71 4.2 Thiết kế giao diện người - máy 72 4.2.1 Mơ hình thiết kế giao diện 72 4.2.2 Phân tích mơ hình hóa nhiệm vụ thiết kế giao diện 73 4.2.3 Các vấn đề thiết kế giao diện .73 4.2.3.1 Thời gian hệ thống đáp ứng .73 4.2.3.2 Tiện nghi giúp đỡ người dùng 74 4.2.3.3 Giải thông tin lỗi .74 4.2.3.4 Gắn nhãn lệnh .75 4.2.4 Công cụ cài đặt .75 4.2.5 Tiến hóa thiết kế 76 4.3 Hướng dẫn thiết kế giao diện 77 4.3.1 Tương tác chung 77 4.3.2 Hiển thị thông tin 78 4.3.3 Vào liệu .79 4.4 Chuẩn giao diện 79 Tài liệu thiết kế phần mềm 80 CHƯƠNG ĐẢM BẢO, KIỂM THỬ VÀ BẢO TRÌ PHẦN MỀM 84 Đảm bảo chất lượng phần mềm 84 1.1 Các nhân tố chất lượng phần mềm 84 1.2 Độ đo chất lượng phần mềm 86 1.2.1 Chỉ số chất lượng phần mềm 86 1.2.2 Khoa học phần mềm HALSTEAD 87 1.2.3 Đo độ phức tạp Thomas McCabe 89 1.3 Độ tin cậy phần mềm 90 1.4 Cách tiếp cận bảo đảm chất lượng phần mềm .91 1.4.1 Xem xét nhu cầu cho SQA 91 1.4.2 Lập kế hoạch SQA chuẩn 92 Kiểm thử phần mềm 93 2.1 Nền tảng kiểm thử phần mềm 93 2.1.1 Mục đích kiểm thử 93 2.1.2 Luồng thông tin kiểm thử .94 2.2 Chiến lược kiểm thử phần mềm 94 2.2.1 Cách tiếp cận chiến lược tới kiểm thử phần mềm .94 2.2.2 Chiến lược kiểm thử phần mềm 95 2.2.3 Tổ chức việc kiểm thử phần mềm 96 2.2.3.1 Kiểm thử đơn vị 96 2.2.3.2 Kiểm thử tích hợp .97 Giáo trình tóm tắt Cơng Nghệ Phần Mềm 2.2.3.3 Kiểm thử hợp lệ 100 2.2.3.4 Kiểm thử hệ thống (System Test) .101 Bảo trì phần mềm .102 3.1 Định nghĩa bảo trì phần mềm 102 3.2 Các đặc trưng bảo trì .103 3.2.1 Bảo trì có cấu trúc so với phi cấu trúc .103 3.2.2 Chi phí bảo trì 104 3.3 Tổ chức bảo trì 105 3.4 Luồng kiện 105 3.5 Bảo trì chương trình xa lạ 107 CHƯƠNG LẬP TRÌNH HIỆU QUẢ 110 Các đặc trưng ngôn ngữ lập trình 110 1.1 Đặc trưng tâm lý ngơn ngữ lập trình 110 1.2 Mơ hình cú pháp ngữ nghĩa 111 1.3 Hướng quan điểm kỹ nghệ .111 1.4 Việc chọn ngôn ngữ 112 1.5 Ngơn ngữ lập trình kỹ nghệ phần mềm 113 Nền tảng ngơn ngữ lập trình .114 2.1 Kiểu liệu định kiểu liệu 114 2.2 Chương trình 114 2.3 Cấu trúc điều khiển 115 2.4 Cách tiếp cận hướng đối tượng 115 2.5 Các lớp ngôn ngữ 115 2.6 Các cơng cụ lập trình 116 2.6.1 Cơng trình phần mềm có máy tính hỗ trợ 116 2.6.2 Môi trường phát triển phần mềm .117 Phong cách lập trình 118 3.1 Tài liệu chương trình 118 3.2 Khai báo liệu 119 3.3 Xây dựng câu lệnh 120 3.4 Vào/ra 120 Tính hiệu .121 4.1 Kỹ thuật lập trình hướng hiệu qủa .121 4.2 Một vài hướng dẫn lập trình hướng hiệu 124 Thẩm định xác minh 125 5.1 Đại cương việc thẩm định xác minh 125 5.2 Sơ lược tiến trình kiểm thử phần mềm 126 TÀI LIỆU THAM KHẢO Giáo trình tóm tắt Cơng Nghệ Phần Mềm MỞ ĐẦU Sau gần nửa kỷ phát triển, ngành kỹ nghệ phần mềm (SE – Software Engineering) đến thừa nhận mơn thống Các phương pháp, thủ tục công cụ kỹ nghệ phần mềm chấp nhận ứng dụng thành công nhiều lĩnh vực công nghiệp Các nhà quản lý chuyên gia công nghệ thông tin nhận nhu cầu cách tiếp cận có nguyên tắc tới việc phát triển phần mềm Mục đích ngành kỹ nghệ phần mềm việc sản sinh phần mềm cụ thể mà việc sản sinh sản phẩm cách hiệu với hạn chế nguồn lực thời gian Giáo trình Nhập môn Kỹ nghệ phần mềm trang bị cho sinh viên khoa Công nghệ thông tin khái niệm phần mềm cách chế tạo phần mềm; giúp sinh viên tiếp cận có nguyên tắc tới việc phát triển phần mềm thông qua phương pháp, thủ tục công cụ kỹ nghệ phần mềm cuối xây dựng phần mềm cách hiệu Giáo trình tóm tắt Cơng Nghệ Phần Mềm CHƯƠNG PHẦN MỀM VÀ KỸ NGHỆ PHẦN MỀM 0.Đối tượng nghiên cứu mơn học Mục đích mơn học “Công nghệ phần mềm” để sản sinh phần mềm cụ thể mà liên quan đến việc sản sinh sản phẩm cách hiệu Môn học trang bị cho học viên :  khái niệm phần mềm  cách chế tạo phần mềm;  phương pháp, thủ tục công cụ phát triển phần mềm để xây dựng phần mềm cách hiệu I Phần mềm- Software 1.1 Khái niệm phần mềm Phần mềm sản phẩm có thành phần : - Các mã lệnh, thực máy tính thực thi hoạt động đưa kết mong muốn - Các cấu trúc liệu sở liệu mà mã lệnh thực thi chúng; - Các tài liệu mô tả thao tác cách dùng phần mềm 1.2 Quá trình tiến hoá phần mềm 1.Những năm đầu (1950-1960) Trong năm đầu việc phát triển hệ thống máy tính, việc lập trình coi "nghệ thuật" theo năng, chưa có phương pháp luận phát triển phần mềm Phần mềm thiết kế theo đơn đặt hàng cho ứng dụng Mơi trường phần mềm có tính cá nhân, việc thiết kế tiến trình thường thực đầu người lập trình thường khơng có tài liệu 2.Giai đọan thứ hai (1960 - năm 1970) Các hệ thống đa chương trình(multi-programming) đa nhiệm (multi-tasking) đưa khái niệm tương tác người – máy(Interactive Man-Machine), mở giới cho ứng dụng mức độ độ tinh vi cho phần cứng phần mềm Các hệ thống thời gian thực thu thập, phân tích biến đổi liệu từ nhiều nguồn khác nhau, kiểm sốt tiến trình sản xuất "output" phần nghìn giây thay nhiều phút Những tiến lưu trữ trực tuyến dẫn tới hệ hệ quản trị sở liệu Phần mềm phát triển để phân phối theo quy mô rộng thị trường nhiều bên tham dự Khi số lượng hệ thống dựa máy tính tăng lên thư viện phần mềm bắt đầu mở rộng, hàng chục ngàn câu lệnh gốc chương trình bổ sung hàng ngày Một khủng hoảng phần mềm bắt đầu “ló dạng chân trời”: Tất câu lệnh gốc này, Giáo trình tóm tắt Cơng Nghệ Phần Mềm chương trình phải sửa lại người ta phát lỗi, phải sửa lại yêu cầu người dùng thay đổi, phải thích nghi với phần cứng vừa mua (gọi chung bảo trì phần mềm); nhiên, chất cá nhân nhiều phần mềm làm cho chúng thực tế khơng thể bảo trì 3.Giai đọan thứ ba (giữa năm 1970 - 1990) Xuất hệ thống phân tán (là hệ thống nhiều máy tính, máy thực chức tương tranh liên lạc với máy khác) làm tăng dần độ phức tạp hệ thống dựa máy tính Mạng tồn cục(WAN), mạng cục bộ(LAN), liên lạc số giải thông cao, nhu cầu thâm nhập liệu "lập tức" đặt yêu cầu lớn cho người lập trình Sự tiến phổ cập sử dụng vi xử lý, máy tính cá nhân máy trạm để bàn mạnh Phần cứng giá rẻ nhanh chóng trở thành hàng hố tiêu dùng Chi phí cho phần mếm có khuynh hướng tăng lên so với chi phí mua phần cứng 4.Giai đọan thứ tư (1990 đến nay) Kỹ nghệ hướng đối tượng (Object oriented) nhanh chóng thay nhiều cách tiếp cận phát triển phần mềm truyền thống lĩnh vực ứng dụng Xuất kỹ thuật làm thay đổi cách thức phát triển phần mềm, hướng xây dựng phần mềm có khả tạo phần mềm Hệ chuyên gia phần mềm trí tuệ nhân tạo cuối đưa vào ứng dụng thực tế Phần mềm mạng nơ ron nhân tạo mở khả nhận dạng thực khả xử lý thông tin kiểu người 1.3 Các đặc trưng phần mềm Phần mềm sản phẩm trình tư logic có đặc trưng khác biệt đáng kể so với phần cứng Phần mềm phát triển hay kỹ nghệ hố, khơng chế tạo theo nghĩa cổ điển Chi phí phần mềm tập trung vào kỹ nghệ, nghĩa dự án phần mềm dường dự án chế tạo Vài thập kỷ qua, khái niệm "xưởng phần mềm" đề cập nhiều, khái niệm khuyến cáo việc sử dụng cơng cụ tự động hố cho việc phát triển phần mềm Phần mềm không hỏng mà bị lỗi thời Tuy nhiên, rõ ràng rằng, phần mềm khơng mịn cũ lại bị lạc hậu Thực tế, phần mềm trải qua thay đổi bảo trì Khi thay đổi thực phát sinh số khiếm khuyết mới, phần mềm bị thối hố thay đổi Khi yếu tố phần cứng mịn có "vật tư thay thế" Mọi hỏng hóc phần mềm lỗi trình thiết kế Do vậy, việc bảo trì phần mềm bao gồm thêm độ phức tạp phụ đáng kể so với phần cứng Phần lớn phần mềm xây dựng theo đơn đặt hàng, lắp ráp từ thành phần có sẵn Giáo trình tóm tắt Cơng Nghệ Phần Mềm Đối với phần mềm, nhìn chung danh mục thành phần phần mềm khơng có sẵn Có thể đặt hàng đơn vị phần mềm hồn chỉnh, khơng phải thành phần lắp ráp thành chương trình (Tuy nhiên điều thay đổi nhanh chóng) 1.4 Phân loại phần mềm Nhóm 1: Các hệ điều hành - Các driver (chương trình điều khiển) - Các Monitor - Các hệ quản lý tệp - Các hệ thống quản lý thư viện chương trình chương trình dịch - Các hệ thống quản lý mạng máy tính … Nhóm 2: Các ngơn ngữ lập trình PASCAL, C, C++, Visual Basic,FORTRAN, ADA v.v Nhóm 3: Các phần mềm hệ thống - Các chương trình soạn thảo văn - Các chương trình điều khiển thiết bị ngoại vi - Các chương trình mở rộng chức quản lý tệp: xếp, chép, cập nhật - Các chương trình đồ hoạ - Các giao diện thân thiện người sử dụng hệ điều hành … Nhóm 4: Các hệ quản trị sở liệu, quản lý tri thức chương trình mở rộng tương ứng Nhóm 5: Các phần mềm ứng dụng - Các chương trình xử lý liệu đa - Các chương trình phục vụ cho u cầu tính tốn sở - Các chương trình tối ưu hố - Các hệ chun gia hệ tương tự - Các hệ mô - Các lớp ngôn ngữ liệu tri thức phục vụ cho việc khai thác sở liệu tri thức - Các hệ tự động hố quản lý chương trình - Các hệ tự động hoá thiết kế - Các hệ thống dạy học - Các hệ thống tự học - Các hệ thống tự động phát sinh chương trình kiểm thử sửa chương trình - Các hệ chương trình nhận dạng, phân tích tổng hợp tiếng nói, hình ảnh, tín hiệu,… - Các hệ chương trình điều khiển qui trình thiết bị cơng nghiệp … Nhóm 6: Các chương trình tiện ích –Utilities trị chơi Games Giáo trình tóm tắt Cơng Nghệ Phần Mềm - Các chương trình xử lý bảng tính điện tử - Các chương trình chuyển đổi (tiền dịch) ngông ngữ, dịch chéo, khôi phục - Các chương trình chống diệt virus máy tính - Các chương trình trị chơi giải trí … 1.5 Các Các ngơn ngữ lập trình Phần mềm máy tính thông tin tồn hai dạng bản: thành phần máy không thực thành phần máy thực Ta xét thành phần phần mềm xây dựng cách dùng ngôn ngữ nhân tạo với vốn từ vựng hạn chế, văn phạm xác định rõ quy tắc chặt chẽ cú pháp, ngữ nghĩa Các thuộc tính ngôn ngữ cho việc dịch thành mã máy Các dạng ngôn ngữ dùng là: a) Ngơn ngữ máy : Ngơn ngữ máy (cịn gọi máy ngữ hay mã máy; tiếng Anh machine language hay machine code) loại ngôn ngữ lập trình đó, thị biểu diễn số nhị phân Đây ngơn ngữ lập trình hệ Tuy khó đọc khó sử dụng, ngơn ngữ máy ngơn ngữ mà vi xử lí nhận biết thực cách trực tiếp (tức khơng cần dịch sang ngơn ngữ khác) Ngôn ngữ máy (mã máy) ngôn ngữ tảng vi xử lý Các chương trình viết tất loại ngôn ngữ khác cuối chuyển thành ngôn ngữ máy trước chương trình thi hành Lợi điểm viết chương trình ngơn ngữ máy lập trình viên điều khiển máy tính trực tiếp đạt xác điều muốn làm Do đó, chương trình ngơn ngữ máy viết tốt chương trình hiệu (tốc độ thi hành nhanh, kích thước nhỏ) Bất lợi chương trình ngơn ngữ máy thông thường nhiều thời gian để viết, khó đọc, theo dõi để tìm lỗi Thêm vào đó, chương trình viết tập lệnh phụ thuộc vào vi xử lý nên chương trình chạy máy tính có vi xử lý mà thơi Ngơn ngữ máy gọi ngôn ngữ cấp thấp (low-level language) Nếu phần mềm viết tốt, bảo trì có tư liệu tốt ngơn ngữ máy làm cho việc sử dụng nhớ tối ưu tốc độ thực chương trình hiệu Ví dụ tập lệnh ngơn ngữ máy Minsk-32: 10 1000 1002 11 1000 1002 12 13 b).Hợp ngữ Assembler Hợp ngữ phát triển nhằm giúp lập trình viên dễ nhớ thị chương trình Hợp ngữ tương tự ngơn ngữ máy lại sử dụng ký hiệu gợi nhớ (mnemonics hay mã lệnh hình thức - symbolic operation code) để biểu diễn cho mã lệnh máy Một đặc điểm khác hợp ngữ thông thường cho phép định địa hình thức (symbolic addressing), nghĩa vị trí nhớ máy tính tham chiếu tới thông qua tên ký hiệu, chẳng hạn TOTAL thay phải sử dụng địa thực (bằng số nhị phân) ngơn ngữ máy Các chương trình hợp ngữ cịn bao gồm thị vĩ mơ (macro instruction) tạo nhiều lệnh mã máy Các chương trình hợp ngữ chuyển sang mã máy thơng qua chương trình đặc biệt gọi trình hợp dịch (assembler) Mặc dù hợp ngữ tương đối dễ dùng mã máy hợp ngữ xem ngơn ngữ cấp thấp cịn gần với thiết kế máy tính 10 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Mức 4: Kiểm tra kiểu mạnh 2.2 Chương trình Chương trình thành phần chương trình dịch tách biệt có chứa liệu cấu trúc điều khiển Module cách biểu tổng quát chương trình Tuỳ theo ngơn ngữ lập trình mà chương trình gọi trình con, thủ tục, hàm hay tên gọi đặc biệt Bất kể đến tên nó, chương trình bộc lộ tập đặc trưng tổng quát: (1) Phần mơ tả có chứa tên mơ tả giao diện (2) Phần cài đặt có chứa liệu cấu trúc điều khiển (3) Một chế kích hoạt làm cho chương trình gọi tời từ nơi khác chương trình Trong ngơn ngữ lập trình quy ước, chương trình thân thực thể, vận hành liệu theo cách đạo cấu trúc điều khiển chương trình lớn Trong ngơn ngữ lập trình hướng đối tượng, cách nhìn lớp chương trình thay đối tượng 2.3 Cấu trúc điều khiển Tại mức bản, ngơn ngữ lập trình đại cho phép người lập trình biểu diễn tuần tự, tuyển chọn lặp – kết cấu logic lập trình có cấu trúc Phần lớn ngôn ngữ đại đưa cú pháp cho đặc tả trực tiếp if-then-else, do-while, repeatuntill Các ngôn ngữ khác LISP APL địi hỏi người lập trình phải mơ kết cấu bên giới hạn cú pháp ngơn ngữ Bên cạnh kết cấu thủ tục sở lập trình có cấu trúc, cấu trúc điều khiển khác Đệ quy tạo kích hoạt lần thứ hai chương trình lần kích hoạt thứ Tức là, chương trình gọi tới hay kích hoạt thân phần thủ tục xác định Tương tranh đưa hỗ trợ cho việc tạo nhiều nhiệm vụ, đồng hóa nhiệm vụ liên lạc nói chung nhiệm vụ Tính ngơn ngữ vơ giá phải thực ứng dụng hệ thống hay thời gian thực Có tính ngơn ngữ lập trình đặt bẫy điều kiện lỗi hệ thống người dùng truyền điều khiển cho điều khiển đặc biệt để xử lý 2.4 Cách tiếp cận hướng đối tượng Về lý thuyết, việc tạo đối tượng kết cấu phần mềm hướng đối tượng thực cách dùng ngôn ngữ lập trình quy ước (như C hay Pascal) Nhưng thực tế, việc hỗ trợ cho cách tiếp cận hướng đối tượng nên xây dựng trực tiếp bên ngơn ngữ lập trình, dùng để cài đặt thiết kế hướng đối tượng Ngôn ngữ lập trình hướng đối tượng nên cung cấp hỗ trợ trực tiếp cho định nghĩa lớp, kế thừa, bao gói truyền thơng báo Định nghĩa lớp sở cho cách tiếp cận hướng đối tượng Ngôn ngữ lập trình hướng đối tượng định nghĩa tên lớp xác định thành phần chung riêng lớp Một lớp suy dẫn từ định nghĩa lớp sở Các đối tượng suy từ lớp dùng tất phương pháp xác định cho “lớp cha” Định nghĩa lớp bao quát bao quát trừu tượng liệu thành phần chương trình vận hành chúng 117 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Các chi tiết cài đặt thuật ngữ cho định nghĩa lớp, kế thừa, bao gói truyền thơng báo thay đổi từ ngôn ngữ sang ngôn ngữ kia, khái niệm tảng lớp không thay đổi Tương tự kế thừa, bao gói truyền thông báo cài đặt với cú pháp khác, tảng Mỗi kết cấu có sẵn ngôn ngữ thực hướng đối tượng 2.5 Các lớp ngơn ngữ Có hàng trăm ngơn ngữ lập trình sử dụng vào lúc lúc khác nỗ lực phát triển phần mềm nghiêm chỉnh Có hệ ngơn ngữ lập trình đại diện: Ngôn ngữ hệ thứ nhất: Thế hệ ngơn ngữ thứ lập trình theo mức mã máy (một số công việc với ngôn ngữ hệ thứ tiếp tục đến ngày nay) Chương trình mã máy dạng tương đương dễ học cho người Hợp ngữ biểu thị cho hệ ngôn ngữ thứ Các ngôn ngữ phụ thuộc máy biểu mức độ trừu tượng thấp mà chương trình biểu diễn Ngôn ngữ hệ hai: Ngôn ngữ hệ hai phát triển từ cuối năm 1950 đầu năm 1960 phục vụ tảng cho ngơn ngữ lập trình đại (thế hệ ba) Các ngôn ngữ hệ hai đặc trưng việc sử dụng rộng rãi thư viện phần mềm quen thuộc: Fortran, Cobol, Algol, Basic ngôn ngữ tảng Ngôn ngữ hệ ba (Ngơn ngữ lập trình có cấu trúc): Ngơn ngữ hệ ba, đặc trưng khả cấu trúc liệu thủ tục mạnh Các ngôn ngữ lớp chia thành ba phạm trù lớn: ngôn ngữ cấp cao vạn năng, ngôn ngữ cấp cao hướng đối tượng ngôn ngữ chuyên dụng Ngôn ngữ cao cấp vạn năng: bao gồm PL/I, Pascal, C, Modula-2 (a) Các ngôn ngữ hướng đối tượng: Các ngôn ngữ hướng đối tượng làm cho người kỹ sư phần mềm cài đặt mơ hình phân tích thiết kế tạo cách dùng OOA OOD Mặc dầu có hàng chục ngơn ngữ hướng đối tượng đưa hàng thập kỷ qua có số ngơn ngữ có chỗ đứng có ý nghĩa thị trường dị C (C++, Objective C), Smalltalk Eiffel (b) Các ngôn ngữ chuyên dụng: Các ngôn ngữ chuyên dụng đặc trưng dạng cú pháp bất thường đặc biệt thiế kế cho ứng dụng riêng Trong hàng trăm ngơn ngữ chun dụng dùng, có số ngôn ngữ phổ biến kỹ nghệ phần mềm Lisp, Prolog, Apl, Forth 118 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Ngơn ngữ hệ thứ tư (4GL – the fourth Generation Technology): Trong toàn lịch sử phát triển phần mềm, có ý định phát triển chương trình máy tính mức trừu tượng ngày cao Các ngôn ngữ hệ thứ làm việc mức tập lệnh máy, mức trừu tượng thấp Các ngơn ngữ lập trình hế hai ba nâng mức độ biểu diễn chương trình máy tính, cịn phải xác định thủ tục thuật tốn chi tiết phân biệt Trong thập kỷ qua, ngôn ngữ hệ thứ tư (4GL) nâng mức độ trừu tượng lên cao Ngôn ngữ hệ thứ tư, giống ngơn ngữ nhân tạo khác, có chứa cú pháp phân biệt để biểu diễn điều khiển cấu trúc liệu Một 4GL biểu thị cấu trúc mức độ trừu tượng cao cách xoá bỏ yêu cầu xác định chi tiết thuật tốn Các ngơn ngữ hệ bốn tổ hợp đặc trưng thủ tục phi thủ tục Tức là, ngơn ngữ có khả cho phép người dùng xác định điều kiện hành động tương ứng (thành phần thủ tục) đồng thời cổ vũ người dùng kết mong muốn (thành phần phi thủ tục) áp dụng tri thức chuyên ngành để điền cho tiết thủ tục 2.6 Các cơng cụ lập trình 2.6.1 Cơng trình phần mềm có máy tính hỗ trợ CASE bốn chữ đầu cụm từ tiếng Anh nghĩa cơng trình phần mềm hỗ trợ máy tính Hiện có nhiều cơng cụ CASE Có hai cách để phân loại công cụ CASE: (1) Hướng hoạt động: dựa hoạt động trình như: đặc tả yêu cầu, thiết kế, thực (2) Hướng chức năng: dựa chức công cụ khơng phải dựa mục tiêu trợ giúp 2.6.2 Môi trường phát triển phần mềm a Đại cương Một môi trường phát triển phần mềm công cụ phần cứng phần mềm chúng kết lại để sản sinh hệ thống phần mềm miền ứng dụng chuyên biệt Có hai điểm quan trọng: a Mơi trường phát triển phần mềm bao gồm cơng cụ phần cứng b Môi trường phát triển phần mềm thường xuyên chuyên dụng khái quát Môi trường phát triển phần mềm vận hành hệ thống máy tính host phần mềm phát triển nhằm vào máy tính mục tiêu, có vài lý mơ hình máy chủ máy khách lại thích hợp với môi trường phát triển phần mềm: a Trong số trường hợp phần mềm ứng dụng phát triển dành cho máy khơng có tiện ích phần mềm b Máy khách hướng ứng dụng khơng thích hợp với mơi trường phát triển phần mềm c Máy khách dành cho việc vận hành ứng dụng đặc biệt phải có tính ưu tiên phát triển phần mềm (chẳng hạn hệ xử lý giao tác) 119 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Ưu điểm cách thức máy chủ - máy khách tiện ích thành phần cho người phát triển dùng mơi trường khơng thể hợp tác với hệ thống ứng dụng phân phối Có thể phân loại mơi trường phát triển phần mềm sau: Mơi trường lập trình: Trợ giúp cho lập trình, thử nghiệm, gỡ lỗi Hạn chế việc xác định yêu cầu, đặc tả, thiết kế phần mềm Bàn thợ CASE: Đây môi trường chủ yếu hướng đặc tả phần mềm thiết kế Nó thường cung cấp trợ giúp lập trình thơ sơ (chẳng hạn ngơn ngữ lập trình hệ thứ tư) Nó thường thích hợp với máy tính cá nhân kết hợp với mơi trường lập trình Mơi trường cơng trình phần mềm: Nó trợ giúp sản sinh hệ thống lớn, thọ mà chi phí cho việc bảo trì cịn vượt q chi phí phát triền sản sinh đội người lập trình riêng rẽ Nó trợ giúp cho tất hoạt động phát triển bảo trì Thực tế biên giới loại khơng rõ ràng b.Các mơi trường lập trình Các mơi trường lập trình nhóm lại thành lớp sau: i) Các mơi trường mục đính khái qt ii) Các mơi truờng hướng ngơn ngữ Mơi trường lập trình có cơng cụ sau: i) Phần mềm giao tiếp máy chủ - máy khách ii) Phần mềm bắt chước máy khách iii) Các biên dịch chéo iv) Các công cụ thử nghiệm gỡ lỗi v) Các công cụ quản lý cấu hình vi) Các cơng cụ giao tiếp c.Bàn thợ CASE Các thành phần điển hình bàn thợ CASE là: i) Tỷ lệ soạn thảo biểu đồ ii) Các tiện ích phân tích thiết kế kiểm tra iii) Các tiện ích ngơn ngữ hỏi iv) Các tiên ích từ điển liệu v) Các tiện ích sinh báo cáo vi) Các công cụ tạo dạng cho phép việc định dạng hình tư liệu đặc tả vii) Các tiện ích xuất nhập viii) Trợ giúp sinh mã cốt tự động từ thiết kế có kho trung tâm Các hệ bàn thợ CASE thường chủ yếu dùng dể phát triển hệ thống lý liệu Có người minh định số khiếm bàn thợ CASE sau: i) Nó khơng thích hợp với cơng cụ chuẩn bị tư liệu khác Tiện ích xuất nhập thường gắn với văn ASCII ii) Thiếu chuẩn hố, trao đổi thơng tin bàn thợ khác khó khăn khơng thể 120 Giáo trình tóm tắt Cơng Nghệ Phần Mềm iii)Thiếu tiện ích cho phép kết nối vào ứng dụng lớp ứng dụng iv) Tiện ích để tạo tài liệu chất lượng cao thiếu tổng quát v) Tiện ích lập biểu đồ chậm chạp Phong cách lập trình 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 Các yếu tố phong cách lập trình bao gồm tài liệu (mức chương trình gốc) bên trong, phương pháp khai báo liệu, xây dựng câu lệnh, vào/ra 3.1 Tài liệu chương trình Tài liệu bên chương trình gốc bắt đầu với việc chọn lựa các tên gọi định danh (biến nhãn), vị trí thành phần việc thích, cách tổ chức trực quan chương trình Việc lựa chọn tên gọi định danh/tên điều kiện chủ chốt cho việc hiểu chương trình Những ngơn ngữ gịới hạn tên biến hay nhãn vài kí tự tự mang ý nghĩa mơ hồ 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ữ nghiã, tên có ý nghĩa làm "đơn giản việc chuyển đổi từ cú pháp chương trình sang cấu trúc ngữ nghĩa bên trong" Rõ ràng là: 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 phương tiện 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àng dễ hiểu pha cuối kỹ nghệ phần mềm bảo trì 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 thành phần đòi hỏi cách tiếp cận khác nhau: Lời thích mở đầu nên xuất đầu modul Định dạng cho lời thích sau: Một phát biểu mục đích rõ chức modul Mơ tả giao diện bao gồm: a) Một mẫu "dãy lời gọi" b) Mô tả đối tượng c) Danh sách tất modul thuộc cấp Thảo luận liệu tương ứng (như 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ế modul (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 chức nhúng vào bên thân chương trình gốc dùng để mơ tả cho hàm xử lý 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 tụt lề lời thích thuận tiện 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 121 Giáo trình tóm tắt Công Nghệ Phần Mềm 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 bảo đảm 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 Tổ chức trực quan chương trình gốc in đóng góp quan trọng cho tính dễ đọc Việc tụt lề 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ề trái Giống việc thích, cách tiếp cận tốt nên để mở cho tranh luận Việc tụt lề 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 cuờ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: Visual Basic, Visual Studio, Edit Plus …) đặt việc tụt lề cho chương tình gốc Bằng cách xố bỏ gánh nặng việc làm tụt lề cho người lập trình, cải thiện khn dạng chương trình với tương đối công sức 3.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 Một số hướng dẫn tương đối đơn giản lập để làm cho liệu dễ hiểu đơn giản bảo trì Thứ tự khai báo liệu nên chuẩn hoá cho dù ngơn ngữ lập trình khơng có u cầu bắt buộc diều Chẳng hạn, thứ tự khai báo cho modul FOTRAN là: Mọi khai báo tường minh (để có chất lượng cao, biến nên khai báo): INTEGER, REAL, DOUBLE, PRECISION, Mọi khối liệu toàn cục: COMMON/tên khối/ Mọi mảng cục bộ: DIMENSION tên mảng chiều Mọi khai báo tệp: DEFINE, OPEN, CLOSE Thứ tự tạo thuộc tính để dễ tìm, cho phép xúc tiến kiểm thử, gỡ lỗi bảo trì Khi có nhiều tên biến khai báo câu lệnh việc xếp theo trật tự chữ cho tên gọi có có giá trị Tương tự, liệu tồn cục có nhãn (như khối chung FOTRAN) nên lập thứ tự theo bảng chữ Nếu thiết kế có mơ tả trước cấu trúc liệu phức tạp nên thích điểm đặc thù cố hữu việc cài đặt ngôn ngữ lập trình Chẳng hạn, cấu trúc liệu danh sách móc nối C hay kiểu liệu người dùng xác định PASCAL yêu cầu tài liệu bổ sung có chứa lời thích 3.3 Xây dựng câu lệnh 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 nhiên lại phần bước lập trình Việc xây dựng câu lệnh nên tuân theo qui tắc quan trọng: câu lệnh nên đơn giản trực tiếp chương trình khơng nên bị xoắn tít để đạt tính hiệu Nhiều ngơn ngữ lập trình cho phép nhiều câu lệnh dịng Khía cạnh tiết kiệm khơng gian tính khó mà biện minh tính khó đọc nảy sinh 122 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Cấu trúc chương trình phép tốn điều kiện chứa đoạn bị che lấp cách xây dựng nhiều câu lệnh dòng Cách xây dựng câu lệnh đơn việc tụt lề minh hoạ cho đặc trưng logic chức đoạn Các câu lệnh chương trình gốc riêng lẻ đơn giản hố:  Việc tránh dùng phép kiểm tra liệu phức tạp  Khử bỏ phép kiểm tra điều kiện phủ định  Tránh lồng nhiều điều kiện hay chu trình  Dùng dấu ngoặc để làm sáng tỏ biểu thức số học hay logic  Dùng dấu cách và/hoặc ký hiệu dễ đọc để làm sáng tỏ nội dung câu lệnh  Suy nghĩ: Liệu ta hiểu điều ta khơng người lập trình cho khơng?  Từng hướng dẫn cố gắng "giữ cho đơn giản" 3.4 Vào/ra Phong cách vào thiết lập phân tích thiết kế u cầu phần mềm, khơng phải lập trình Tuy cách thức vào cài đặt đặc trưng xác định việc cộng đồng người sử dụng chấp nhận hệ thống Phong cách vào thay đổi theo mức độ tương tác người Với vào 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 ứng, 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 chúng, quán định dạng vào trở thành mối quan tâm chủ yếu Bất kể tới chất theo lô hay tương tác phần mềm, số hướng dẫn phong cách vào/ra nên xét tới thiết kế lập trình:  Làm hợp lệ vào  Kiểm tra tin cậy tổ hợp khoản mục vào quan trọng  Giữ cho định dạng vào đơn giản  Dùng báo cuối liệu thay yêu cầu người dùng xác định số khoản mục  Đặt nhãn cho yêu cầu vào tương tác, xác định chọn lựa có sẵn hay gắn giá trị  Giữ cho định dạng vào thống ngơn ngữ lập trình có yêu cầu định dạng nghiêm ngặt Phong cách vào/ra bị ảnh hưởng nhiều đặc trưng khác thiết bị vào/ra (như kiểu thiết bị cuối hay trạm làm việc, thiết bị đồ hoạ máy tính, chuột v.v ), độ phức tạp người dùng môi trường truyền thống Tính hiệu Trong hệ thống kỹ nghệ tốt, có khuynh hướng tự nhiên dùng tài nguyên chủ chốt cách hiệu Các chu trìnnh xử lí vị trí nhớ thường coi tài nguyên chủ chốt Thứ nhất, tính hiệu u cầu hồn thiện nên thiết lập phân tích yêu cầu phần mềm Thứ hai tính hiệu cải thiện với thiết kế tốt Thứ ba tính hiệu chương trình tính đơn giản chương trình đơi với Nói chung, khơng nên gạt bỏ tính rõ ràng, dễ đọc hay tính đắn để có cải thiện nho nhỏ tính hiệu 4.1 Kỹ thuật lập trình hướng hiệu qủa 123 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Lập trình nghề thủ cơng Nó phụ thuộc vào kỹ xảo cá nhân người lập trình, ý đến chi tiết kiến thức việc sử dụng cơng cụ sẵn có theo cách thức tốt Trong phần tập trung vào vài kỹ thuật chuyên biệt dùng nhằm đạt hệ thống tin cậy, khả chuyển dùng lại thành phần Nhu cầu hệ thống đáng tin tăng lên, hiển nhiên hệ thống máy tính lan khắp nơi Hiện thời có hai kỹ thuật để viết chương trình đáng tin: tránh lỗi thứ lỗi A Tránh lỗi Tất kỹ sư phần mềm hẳn muốn làm phần mềm khơng có lỗi Một trình phát triển dựa vào việc phát lỗi khử lỗi không để ý đến tránh lỗi trình chưa thật tốt Phần mềm khơng có lỗi nói phần mềm tn theo đặc tả Nói chung, có lỗi đặc tả khơng phản ánh nhu cầu người sử dụng Vậy phần mềm khơng có lỗi khơng thiết phần mềm ln ln hành xử người dùng dự đốn Việc phát triển phần mềm khơng có lỗi địi hỏi chi phí nhiều Khi mà số lỗi tháo khỏi chương trình giá cho việc tìm tháo lỗi cịn lại có xu hướng tăng theo hàm số mũ Do dó tổ chức định chấp nhận vài lỗi lưu lại Tính mặt giá chịu tiền chi trả cho phí tổn hệ thống lỗi gây cịn điều tra tháo gỡ lỗi truớc phân phối Tránh lỗi phát triển phần mềm vô lỗi dựa trên: i) Sản phẩm đặc tả hệ thống xác ii) Chấp nhận cách tiếp cận thiết kế phần mềm lựa chọn việc che dấu thơng tin bao gói thơng tin iii) Tăng cuờng duyệt lại trình phát triển thẩm định hệ thống phần mềm iv) Chấp nhận triết lý chất lượng tổ chức: chất lượng bánh lái quy trình xây dựng phần mềm v) Việc lập kế hoạch cẩn thận cho việc thử nghiệm hệ thống để trưng lỗi mà lỗi chưa phát trình duyệt lại để định lượng độ tin cậy hệ thống Có hai cách để hỗ trợ tránh lỗi:  Lập trình có cấu trúc Thuật ngữ đặt từ cuối năm 60 có nghĩa lập trình mà khơng dùng goto, lập trình dùng vịng lặp while phát biểu if để xây dựng điều khiển thiết kế dùng cách liếp cận từ xuống (top down) Việc thừa nhận lập trình có cấu trúc quan trọng bước bước từ cách tiếp cận không khuôn phép tới phát triển phần mềm Lập trình có cấu trúc buộc người lập trình phải nghĩ cẩn thận chương trình họ, tạo sai lầm phát triển Lập trình có cấu trúc làm cho chương trình đọc cách dễ hiểu dễ tra Tuy nhiên bước viêc lập trình nhằm đạt độ tin cậy tốt Có số cấu trúc có ích hay dẫn tới lỗi hệ thống như: số thực dấu phảy động, trỏ, song song, đệ quy, ngắt, người lập trình nên dùng chúng cách cẩn thận  Phân quyền truy cập liệu 124 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Ngun lý an ninh thừa nhận tổ chức vũ trang nguyên lý nhu cầu để biết Mỗi thành phần chương trình phép truy cập đến liệu cần thiết để thực chức Ưu điểm việc che dấu thơng tin thông tin bị che dấu bị sụp đổ thành phần chương trình mà xem khơng dùng thơng tin Biểu diễn liệu thay đổi mà khơng phải thay đổi thành phần khác có sử dụng thơng tin B Thứ lỗi Ngay với hệ vơ lỗi cần tiện ích thứ lỗi: có lỗi đặc tả Một tiện ích thứ lỗi cần thiết cho hệ thống đáng tin Có bốn hoạt động cần phải tiến hành hệ thống thứ lỗi i) Phát lỗi ii) Định mức độ thiệt hại iii) Hồi phục sau gặp lỗi: hệ thống phải hồi phục trạng thái mà biết an tồn Cũng chỉnh lý trạng thái bị huỷ hoại (hồi phục tiến), lui trạng thái trước an tồn (hồi phục lùi) iv) Chữa lỗi: Cải tiến hệ thống lỗi khơng xuất Trong nhiều trường hợp thất bại phần mềm tàng hình gây tổ hợp thông tin vào C Xử lý bất thường Một sai lầm cố bất ngờ xuất gọi bất thường Các bất thường phần cứng phần mềm Khi mà bất thường khơng dự đốn điều khiển chuyển cho chế xử lý hệ thống bất thường Nếu bất thường dự đốn mã phải bao gồm việc phát xử lý bất thường Hầu hết ngơn ngữ lập trình khơng có tiện ích để phát xử lý bất thường Các bất thường ghi lại cách dùng biến Boolean nhằm có bất thường xuất D Lập trình phịng thủ Lập trình phịng thủ cách phát triển chương trình mà người lập trình giả định mâu thuẫn lỗi chưa phát tồn chương trình Phải có phần mềm kiểm tra trạng thái hệ thống sau biến đổi phải đảm bảo biến đổi trạng thái kiên định Nếu phát mâu thuẫn việc biến đổi trạng thái phải rút lại trạng thái phải trở trạng thái đắn trước Lập trình phịng thủ cách thử lỗi tiến hành không cần điều khiển thứ lỗi Về trình là: phát lỗi, đánh giá lỗi tránh lỗi Nói chung lỗi gây sụp đổ trạng thái gán trị không hợp luật Ngôn ngữ lập trình Ada cho phép phát lỗi thời gian biên dịch Tuy nhiên việc kiểm tra biên dịch hạn chế cho giá trị tĩnh Một cách để phát lỗi chương trình Ada dùng chế xử lý bất thường kết hợp với đặc tả miền giá trị Hồi phục lỗi q trình cải biến khơng gian trạng thái hệ thống cho hiệu ứng lỗi nhỏ hệ thống tiếp tục vận hành, có lẽ mức suy giảm 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 hệ thống trạng biết Hồi phục tiến thường ứng dụng chun biệt Có hai tình hồi phục tiến thành cơng: 125 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Khi liệu bị sụp Việc xử dụng kỹ thuật mã hoá cách thêm liệu dư thừa vào liệu cho phép sửa sai phát lỗi Khi cấu trúc nối bị suy sụp Nếu trỏ tiến lùi có cấu trúc liệu cấu trúc tái tạo đủ trỏ chưa bị sụp Kỹ thuật thường dùng cho việc sửa chữa hệ thống tệp sở liệu Hồi phục lùi kỹ thuật đơn giản liên quan đến việc trì chi tiết trạng thái an tồn cất giữ trạng thái mà sai lầm bị phát Hầu hết hệ quản trị sở liệu có phục hồi lỗi CSDL cập nhật liệu giao dịch hồn tất khơng phát đựơc vấn đề Nếu giao dịch thất bại CSDL không cập nhật Một kỹ thuật khác thiết lập điểm kiểm tra thường kỳ mà chúng trạng thái hệ thống Khi mà lỗi phát trạng thái an tồn tái lưu kho từ điểm kiểm tra gần Trường hợp hệ thống dính líu tới nhiều trình hợp tác dãy giao tiếp điểm kiểm tra q trình khơng đồng để hồi phục q trình phải trở lại trạng thái ban đầu E Sử dụng lại Một đặc trưng cơng trình học sử dụng cách tiếp cận thiết kế hệ thống mà sử dụng tối đa thành phần tồn Người kỹ sư thiết kế không đặc tả thiết kế mà thành phần chế tạo dựa vào thiết kế thành phần nghiên cứu thử nghiệm hệ thống khác Chưa có sở chung việc dùng lại thành phần phần mềm với tư liệu phổ biến rộng rãi dùng để thiết kế phần mềm Tuy vậy, cần quan tâm đến vấn đề sau đây:  Phân loại thành phần dùng lại i) Các hệ ứng dụng ii) Các hệ Thí dụ hệ đo mẫu phát triển phần hệ xử lý văn dùng lại hệ quản trị sở liệu, iii) Các modul đối tượng, iv) Các hàm  Phát triển phần mềm để dùng lại Việc sử dụng lại cách hệ thống đòi hỏi sở liệu xếp theo danh mục thành phần dùng lại Quan niệm sai lầm thành phần có sẵn có hệ thống tồn thư viện thành phần tạo cách trích chúng viết tư liệu cho chúng Sự thật thành phần tạo phần ứng dụng không dùng lại Các thành phần hướng phục vụ yêu cầu hệ thống mà thành phần thuộc Để dùng lại cách có hiệu quả, phải thực sinh để thoả mãn phổ rộng yêu cầu Việc phát triển thành phần khái quát đắt việc phát triển thành phần cho mục đích chuyên biệt làm tăng chi phí dự án 126 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Để phát triển thành phần dùng lại cần có định sách có tổ chức chi phí ngắn hạn giúp cho mục tiêu lâu dài Chính tổ chức cá nhân nhà quản lý phải định Các nhà quản lý cấp thường miễn cưỡng ủng hộ chi phí để dùng lại khó khăn định lượng ưu điểm tương lai thư việc thành phần dùng lại Để đánh giá độ dùng lại cần phải đặt hai câu hỏi sau đây: i) Thành phần biểu diễn khái quát lĩnh vực ứng dụng tốt như ii) Thành phần viết có khái qt thích nghi hay khơng Phát triển phần mềm có thành phần tái sử dụng giảm chi phí ngồi cịn có ưu điểm nữa: i) Độ tin cậy hệ thống tăng lên ii) Các rủi ro giảm iii) Sử dụng hiệu chuyên gia ứng dụng iv) Các chuẩn tổ chức bao gồm thành phần dùng lại v)Thời gian phát triển phần mềm rút gọn 4.2 Một vài hướng dẫn lập trình hướng hiệu Tính hiệu qủa chương trình Tính hiệu chương trình gốc có liên hệ trực tiếp với tính hiệu thuật toán xác định thiết kế chi tiết Tuy nhiên, phong cách lập trình có tác động đến tốc độ thực yêu cầu nhớ Tập hợp hướng dẫn sau áp dụng thiết kế chi tiết dịch thành chương trình: Đơn giản hố biểu thức số học logic trước vào lập trình Tính tốn cẩn thận chu kì lồng để xác định liệu câu lệnh hay biểu thức chuyển ngồi hay khơng  Khi có thể, tránh dùng mảng nhiều chiều  Khi tránh việc dùng trỏ danh sách phức tạp  Dùng phép tốn số học nhanh  Khơng trộn lẫn kiểu liệu cho dù ngơn ngữ có cho phép điều  Dùng biểu thức số học logic Nhiều trình biên dịch có tính tối ưu tự động sinh chương trình hiệu cách dồn nén biểu thức lặp, thực tính chu trình, dùng số học nhanh áp dụng thuật toán liên quan khác Với ứng dụng tính hiệu có ý nghĩa quan trọng, trình biên dịch cơng cụ lập trình khơng thể thiếu Hiệu nhớ Tính hiệu nhớ phải tính vào đặc trưng "phân trang" (segment) hệ điều hành Nói chung, tính cục chương trình hay việc bảo trì lĩnh vực chức qua kết cấu có cấu trúc phương pháp tuyệt vời làm giảm việc phân trang làm tăng tính hiệu 127 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Hạn chế nhớ giới vi xử lí nhúng mối quan tâm thực tế, nhớ giá thấp, mật độ cao tiến hố nhanh chóng Nếu u cầu hệ thống cần tới nhớ tối thiểu (như sản phẩm giá thấp, khối lượng lớn) trình biên dịch ngơn ngữ cấp cao phải trù tính cẩn thận với tính nén nhớ hay phương kế cuối cùng, phải dùng tới hợp ngữ Không giống nhiều đặc trưng hệ thống khác phải trả giá lẫn nhau, kỹ thuật cho hiệu thời gian thực đơi dẫn tới hiệu nhớ Chẳng hạn, giới hạn việc dùng mảng ba hay bốn chiều làm nảy sinh thuật toán thâm nhập phần tử đơn, thuật toán nhanh ngắn Lần nữa, chìa khố cho tính hiệu nhớ "giữ cho đơn giản" Hiệu vào/ra Cái vào người dùng cung cấp tạo cho người dùng hiệu thơng tin cung cấp hay hiểu với mức độ tiết kiệm nỗ lực trí tuệ  Một số hướng dẫn đơn giản để tăng cường hiệu vào/ra  Số yêu cầu vào / nên giữ mức tối thiểu  Một việc vào/ra nên qua đệm để làm giảm phí tổn liên lạc  Với nhớ phụ (như đĩa) nên lựa chọn dùng phương pháp thâm nhập đơn giản chấp nhận  Nên xếp khối vào/ra với thiết bị nhớ phụ  Việc vào / với thiết bị cuối hay máy in nên nhận diện tính thiết bị cải tiến chất lượng hay tốc độ  Hãy nhớ "siêu hiệu quả" vào/ra vô nghĩa khơng hiểu rõ Thiết kế vào lập nên phong cách cuối chi phối tính hiệu Những hướng dẫn trình bày áp dụng cho bước thiết kế lập trình cho tiến trình kỹ nghệ phần mềm Thẩm định xác minh 5.1 Đại cương việc thẩm định xác minh Xác minh thẩm định hệ phần mềm trình liên tục xuyên suốt giai đoạn trình phần mềm Xác minh thẩm định mang tính q trình nhằm đảm bảo phần mềm thoả mãn yêu cầu khách hàng Xác minh thẩm định trình kéo dài suốt vịng đời Nó bắt đầu duyệt xét yêu cầu Xác minh thẩm định có hai mục tiêu: i)Xác định khuyết tật hệ thống ii) Đánh giá xem hệ thống có dùng hay không? Sự khác xác minh thẩm định i) Thẩm định: xét xem xây dựng có sản phẩm khơng ? ii) Xác minh: xét xem xây dựng có sản phẩm không ? Như xác minh kiểm tra xem chương trình có phù hợp với đặc tả hay khơng Cịn thẩm định kiểm tra xem chương trình có mong đợi người dùng hay khơng Có hai loại phép thử 128 Giáo trình tóm tắt Công Nghệ Phần Mềm i) Phép thử thống kê: để phản ánh tần suất input người dùng thực sau vận hành máy, cho đánh giá độ tin cậy thao tác hệ thống ii) Phép thử khuyết tật: để bộc lộ khuyết tật hệ thống 5.2 Sơ lược tiến trình kiểm thử phần mềm  Quá trình kiểm thử Trừ hệ nhỏ, nói chung khơng nên thử hệ thống ngun khối Q trình thử chia làm giai đoạn: 1) Thử đơn vị 2) Thử modul (chức năng) 3) Thử hệ 4) Thử hệ thống 5) Thử sau lưng (alpha) thử điều tra (beta)  Kế hoạch kiểm thử Thử hệ thống đắt, vài hệ thống thời gian thực có ràng buộc thời gian phức tạp việc thử ngốn hết khoảng nửa tổng chi phí phát triển Vì mà phải lập kế hoạch thử khống chế chi phí thử Việc thử liên quan đến nhiều việc thiết lập mẫu cho trình kiểm thử nhiều mơ tả phép thử Chiến lược kiểm thử Các chiến lược đề cập: Thử từ xuống: nên dùng phát triển từ xuống Thử từ lên: việc thử từ lên luôn cần thiết cho thành phần hệ thống mức thấp Thử luồn sợi: dùng cho hệ thống thời gian thực Thử gay cấn (thử áp lực): cho hệ thống có giới hạn tải, phép thử tăng dần tải hệ thống sập đổ để xác định độ chịu tải thực Tóm tắt Bước lập trình kỹ nghệ phần mềm tiến trình dịch chuyển hoá Thiết kế chi tiết dịch sang ngơn ngữ lập trình mà cuối biến đổi thành lệnh mã máy thực Các đặc trưng tâm lý kỹ thuật ngôn ngữ lập trình có ảnh hưởng lớn tới q trình dịch kiểm thử bảo trì phần mềm Các đặc trưng áp dụng vào ngơn ngữ lập trình thuộc bốn hệ ngơn ngữ Phong cách đặc tính quan trọng chương trình gốc xác định tính dễ đọc chương trình Các yếu tố phong cách bao gồm việc làm tài liệu bên trong, phương pháp khai báo liệu, thủ tục xây dựng câu lệnh, kỹ thuật lập trình vào Trong trường hợp, tính đơn giản rõ ràng đặc trưng Một nhân tố phong cách lập trình thời gian thực tính hiệu nhớ cần đạt tới Mặc dầu tính hiệu yêu cầu quan trọng, nên nhớ chương trình hiệu mà lại khơng dễ đọc mang giá trị đáng hồi nghi Lập trình cốt lõi tiến trình phần mềm Các bước quan trọng chủ chốt phải hồn tất trước lập trình phân tích, xác định yêu cầu đặc tả thiết kế chi tiết Củng cố 129 Giáo trình tóm tắt Cơng Nghệ Phần Mềm Tóm lược đặc trưng ngơn ngữ lập trình? Nền tảng ngơn ngữ lập trình? (định kiểu liệu, chế chương trình con, cấu trúc điều khiển cách tiếp cận hướng đối tượng) Sơ lược yếu tố phong cách lập trình? Sơ lược kỹ thuật lập trình hướng hiệu quả? Nêu vài hướng dẫn lập trình hướng hiệu quả? Mục tiêu, ý nghĩa vai trò nội dung việc thẩm định xác minh? Sơ lược tiến trình thử nghiệm? (quá trình, kế hoạch, chiến lược) 130 Giáo trình tóm tắt Cơng Nghệ Phần Mềm TÀI LIỆU THAM KHẢO Kỹ nghệ phần mềm – Cách tiếp cận người thực hành, Roger S.Pressman, Tập 1, Người dịch: Ngô Trung Việt, NXB Giáo dục, Năm 1997 Kỹ nghệ phần mềm – Cách tiếp cận người thực hành, Roger S.Pressman, Tập 2, Người dịch: Ngô Trung Việt, NXB Giáo dục, Năm 1997 Kỹ nghệ phần mềm – Cách tiếp cận người thực hành, Roger S.Pressman, Tập 3, Người dịch: Ngô Trung Việt, NXB Giáo dục, Năm 1997 Giáo trình Kỹ nghệ phần mềm, Nguyễn Văn Vỵ, Đại học Quốc gia Hà Nội, Năm 2001 Giáo trình Cơng nghệ phần mềm, Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội, Năm 2000 Software Engineering – A Practitioner’s Approach, Roger S.Pressman, Third Edition, McGraw-Hill.Inc, 1992 The Unified Software Development Process, Ivar Jacobson, Grandy Booch, James Rumbaugh

Ngày đăng: 11/04/2021, 12:32

Mục lục

    c.Tính gọn gàng: chỉ dẫn về khối lượng thông tin hướng chương trình mà con người phải ghi nhớ. Trong các thuộc tính ngôn ngữ đo tính gọn gàng có:

    Mức độ ngôn ngữ hỗ trợ cho các kết cấu có cấu trúc và “giải quyết việc khó” theo logic

    Loại từ khoá và cách viết tắt có thể được dùng

    Sự phong phú của các kiểu dữ liệu và đặc trưng mặc định

    Số các phép toán logic và số học

    Số các hàm có sẵn

    Cách nhìn kỹ nghệ phần mềm về các đặc trưng của ngôn ngữ lập trình tập trung vào nhu cầu xác định dự án phát triển phần mềm riêng. Mặc dầu người ta vẫn cần các yêu cầu riêng cho chương trình gốc, có thể thiết lập được một tập hợp tổng quát những đặc trưng kỹ nghệ:

    (1) dễ dịch thiết kế sang chương trình

    (2) có trình biên dịch hiệu quả

    (3) khả chuyển chương trình gốc

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

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

Tài liệu liên quan