Giáo trình tóm tắt Công nghệ phần mềm docx

148 3.6K 76
Giáo trình tóm tắt Công nghệ phần mềm docx

Đ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 1 Giáo trình tóm tắt Công Nghệ Phần Mềm MỤC LỤC MỞ ĐẦU 26 MỞ ĐẦU 26 27 27 PHẦN MỀM VÀ KỸ NGHỆ PHẦN MỀM 27 PHẦN MỀM VÀ KỸ NGHỆ PHẦN MỀM 27 I. Phần mềm- Software 27 I. Phần mềm- Software 27 1.3 Các đặc trưng của phần mềm 28 1.3 Các đặc trưng của phần mềm 28 1.4 Phân loại phần mềm 29 1.4 Phân loại phần mềm 29 1.5 Các Các ngôn ngữ lập trình 30 1.5 Các Các ngôn ngữ lập trình 30 1.6 Việc ứng dụng phần mềm 36 1.6 Việc ứng dụng phần mềm 36 1.7 Các thách thức đối với phần mềm máy tính 37 1.7 Các thách thức đối với phần mềm máy tính 37 II. Kỹ nghệ phần mềm 38 II. Kỹ nghệ phần mềm 38 2.0.Đối tượng môn học 38 2.0.Đối tượng môn học 38 2.1 Định nghĩa 38 2.1 Định nghĩa 38 Cách tiếp cận 1: Mô hình vòng đời cổ điển 38 Cách tiếp cận 1: Mô hình vòng đời cổ điển 38 Cách tiếp cận 2: Mô hình làm bản mẫu 40 Cách tiếp cận 2: Mô hình làm bản mẫu 40 Cách tiếp cận 3: Mô hình xoắn ốc 41 Cách tiếp cận 3: Mô hình xoắn ốc 41 Cách tiếp cận 4: Kỹ thuật thế hệ thứ tư 42 Cách tiếp cận 4: Kỹ thuật thế hệ thứ tư 42 2.6 Cách tiếp cận 5: Tổ hợp các khuôn cảnh 44 2.6 Cách tiếp cận 5: Tổ hợp các khuôn cảnh 44 3. Các giai đoạn trong tiến trình kỹ nghệ phần mềm 45 3. Các giai đoạn trong tiến trình kỹ nghệ phần mềm 45 3.1 Giai đoạn xác định làm cái gì ? 45 2 Giáo trình tóm tắt Công Nghệ Phần Mềm 3.1 Giai đoạn xác định làm cái gì ? 45 3.2 Giai đoạn phát triển – làm như thế nào ? 45 3.2 Giai đoạn phát triển – làm như thế nào ? 45 3.3 Giai đoạn bảo trì 45 3.3 Giai đoạn bảo trì 45 PHÂN TÍCH YÊU CẦU VÀ ĐẶC TẢ PHẦN MỀM 47 PHÂN TÍCH YÊU CẦU VÀ ĐẶC TẢ PHẦN MỀM 47 1. Những kỹ năng cần có ở Người phân tích(kỹ sư hệ thống) 47 1. Những kỹ năng cần có ở Người phân tích(kỹ sư hệ thống) 47 2. Nhiệm vụ phân tích yêu cầu 47 2. Nhiệm vụ phân tích yêu cầu 47 4.Việc xác định các yêu cầu 50 4.Việc xác định các yêu cầu 50 5. Đặc tả phần mềm 51 5. Đặc tả phần mềm 51 5.1 Cách đặc tả và biểu diễn 51 5.1 Cách đặc tả và biểu diễn 51 5.1.1 Khái niệm Đặc tả - specification 51 5.1.1 Khái niệm Đặc tả - specification 51 5.1.2 Biểu diễn 51 5.1.2 Biểu diễn 51 5.2 Các nguyên lý đặc tả 52 5.2 Các nguyên lý đặc tả 52 5.3Các mức trừu tượng của đặc tả 55 5.3Các mức trừu tượng của đặc tả 55 5.4 Đặc tả yêu cầu 55 5.4 Đặc tả yêu cầu 55 5.4.1 Những hạn chế của việc đặc tả bằng ngôn ngữ tự nhiên 56 5.4.1 Những hạn chế của việc đặc tả bằng ngôn ngữ tự nhiên 56 5.4.2 Các yêu cầu phi chức năng 56 5.4.2 Các yêu cầu phi chức năng 56 5.4.3 Khó khăn của việc xác định đặc tả yêu cầu 56 5.4.3 Khó khăn của việc xác định đặc tả yêu cầu 56 5.4.4 Thẩm định yêu cầu 57 5.4.4 Thẩm định yêu cầu 57 5.5 Dàn bài đặc tả yêu cầu phần mềm 57 5.5 Dàn bài đặc tả yêu cầu phần mềm 57 5.6 Xét duyệt đặc tả 58 3 Giáo trình tóm tắt Công Nghệ Phần Mềm 5.6 Xét duyệt đặc tả 58 5.6.1 Mức vĩ mô 58 5.6.1 Mức vĩ mô 58 5.6.2 Mức chi tiết 59 5.6.2 Mức chi tiết 59 6. Kỹ nghệ hệ thống và tạo nguyên mẫu 60 6. Kỹ nghệ hệ thống và tạo nguyên mẫu 60 6.1 Kỹ nghệ hệ thống – system engineering 60 6.1 Kỹ nghệ hệ thống – system engineering 60 6.1.1 Các hoạt động cơ bản trong tiến trình phân tích hệ thống 60 6.1.1 Các hoạt động cơ bản trong tiến trình phân tích hệ thống 60 6.1.2 Đặc tả hệ thống 62 6.1.2 Đặc tả hệ thống 62 6.2 Tạo nguyên mẫu (prototype) 65 6.2 Tạo nguyên mẫu (prototype) 65 6.2.1 Lợi ích của việc phát triển nguyên mẫu 65 6.2.1 Lợi ích của việc phát triển nguyên mẫu 65 6.2.2 Các giai đoạn trong việc phát triển nguyên mẫu 65 6.2.2 Các giai đoạn trong việc phát triển nguyên mẫu 65 6.2.3 Tạo nguyên mẫu trong tiến trình phần mềm 66 6.2.3 Tạo nguyên mẫu trong tiến trình phần mềm 66 6.2.4 Hạn chế của cách tiếp cận tạo nguyên mẫu 67 6.2.4 Hạn chế của cách tiếp cận tạo nguyên mẫu 67 6.2.5 Các bước tiến hành làm nguyên mẫu phần mềm 67 6.2.5 Các bước tiến hành làm nguyên mẫu phần mềm 67 6.2.6 Các phương pháp và công cụ làm nguyên mẫu 68 6.2.6 Các phương pháp và công cụ làm nguyên mẫu 68 71 71 THIẾT KẾ PHẦN MỀM 71 THIẾT KẾ PHẦN MỀM 71 I.Khái niệm về Thiết kế phần mềm 71 I.Khái niệm về Thiết kế phần mềm 71 1.1 Thiết kế phần mềm trong kỹ nghệ phần mềm 71 1.1 Thiết kế phần mềm trong kỹ nghệ phần mềm 71 1.2 Các giai đoạn trong thiết kế phần mềm 72 1.2 Các giai đoạn trong thiết kế phần mềm 72 1.3 Quá trình thiết kế 72 4 Giáo trình tóm tắt Công Nghệ Phần Mềm 1.3 Quá trình thiết kế 72 I.3.1 Các hoạt động thiết kế 72 I.3.1 Các hoạt động thiết kế 72 1.3.2 Việc mô tả thiết kế 74 1.3.2 Việc mô tả thiết kế 74 1.4 Phương pháp thiết kế 75 1.4 Phương pháp thiết kế 75 1.4.1 Phương pháp thiết kế 75 1.4.1 Phương pháp thiết kế 75 1.4.2 Các khái niệm nền tảng của thiết kế 76 1.4.2 Các khái niệm nền tảng của thiết kế 76 1.4.3 Các chiến lược thiết kế 84 1.4.3 Các chiến lược thiết kế 84 1.4.3.1 Thiết kế chức năng 84 1.4.3.1 Thiết kế chức năng 84 1.4.3.2 Thiết kế hướng đối tượng 84 1.4.3.2 Thiết kế hướng đối tượng 84 1.4.4 Chất lượng thiết kế 86 1.4.4 Chất lượng thiết kế 86 1.4.4.1 Sự liên kết giữa các thành phần (Cohension) 86 1.4.4.1 Sự liên kết giữa các thành phần (Cohension) 86 1.4.4.2 khả năng ghép nối (Coupling) 86 1.4.4.2 khả năng ghép nối (Coupling) 86 1.4.4.3 Sự hiểu được (Understandability) 87 1.4.4.3 Sự hiểu được (Understandability) 87 1.4.4.4 Khả năng thích nghi(Adaptability) 87 1.4.4.4 Khả năng thích nghi(Adaptability) 87 2. Thiết kế hướng đối tượng (Object Oriented Design) 88 2. Thiết kế hướng đối tượng (Object Oriented Design) 88 2.1 Cách tiếp cận hướng đối tượng 88 2.1 Cách tiếp cận hướng đối tượng 88 2.2 Đặc trưng của thiết kế hướng đối tượng 88 2.2 Đặc trưng của thiết kế hướng đối tượng 88 2.3 Các ưu nhược điểm của thiết kế hướng đối tượng 88 2.3 Các ưu nhược điểm của thiết kế hướng đối tượng 88 2.4 Phân biệt giữa thiết kế hướng đối tượng và lập trình hướng đối tượng 89 2.4 Phân biệt giữa thiết kế hướng đối tượng và lập trình hướng đối tượng 89 3. Thiết kế hướng cấu trúc 89 5 Giáo trình tóm tắt Công Nghệ Phần Mềm 3. Thiết kế hướng cấu trúc 89 3.1 Cách tiếp cận hướng cấu trúc 89 3.1 Cách tiếp cận hướng cấu trúc 89 3.2 Biểu đồ luồng dữ liệu 90 3.2 Biểu đồ luồng dữ liệu 90 3.3 Lược đồ cấu trúc 90 3.3 Lược đồ cấu trúc 90 3.4 Từ điển dữ liệu 91 3.4 Từ điển dữ liệu 91 4. Giao diện người sử dụng 91 4. Giao diện người sử dụng 91 4.1 Nhân tố con người và tương tác người máy 91 4.1 Nhân tố con người và tương tác người máy 91 4.2 Thiết kế giao diện người - máy 92 4.2 Thiết kế giao diện người - máy 92 4.2.1. Mô hình thiết kế giao diện 93 4.2.1. Mô hình thiết kế giao diện 93 4.2.2. Phân tích và mô hình hóa nhiệm vụ trong thiết kế giao diện 93 4.2.2. Phân tích và mô hình hóa nhiệm vụ trong thiết kế giao diện 93 4.2.3. Các vấn đề trong thiết kế giao diện 94 4.2.3. Các vấn đề trong thiết kế giao diện 94 4.2.3.1 Thời gian hệ thống đáp ứng 94 4.2.3.1 Thời gian hệ thống đáp ứng 94 4.2.3.2 Tiện nghi giúp đỡ người dùng 94 4.2.3.2 Tiện nghi giúp đỡ người dùng 94 4.2.3.3 Giải quyết thông tin lỗi 95 4.2.3.3 Giải quyết thông tin lỗi 95 4.2.3.4 Gắn nhãn chỉ lệnh 95 4.2.3.4 Gắn nhãn chỉ lệnh 95 4.2.4. Công cụ cài đặt 96 4.2.4. Công cụ cài đặt 96 4.2.5. Tiến hóa thiết kế 96 4.2.5. Tiến hóa thiết kế 96 4.3. Hướng dẫn thiết kế giao diện 98 4.3. Hướng dẫn thiết kế giao diện 98 4.3.1 Tương tác chung 98 4.3.1 Tương tác chung 98 4.3.2 Hiển thị thông tin 99 6 Giáo trình tóm tắt Công Nghệ Phần Mềm 4.3.2 Hiển thị thông tin 99 4.3.3 Vào dữ liệu 99 4.3.3 Vào dữ liệu 99 4.4 Chuẩn giao diện 100 4.4 Chuẩn giao diện 100 5. Tài liệu thiết kế phần mềm 100 5. Tài liệu thiết kế phần mềm 100 ĐẢM BẢO, KIỂM THỬ VÀ BẢO TRÌ PHẦN MỀM 104 ĐẢM BẢO, KIỂM THỬ VÀ BẢO TRÌ PHẦN MỀM 104 1. Đảm bảo chất lượng phần mềm 104 1. Đảm bảo chất lượng phần mềm 104 1.1 Các nhân tố chất lượng phần mềm 104 1.1 Các nhân tố chất lượng phần mềm 104 1.2 Độ đo chất lượng phần mềm 106 1.2 Độ đo chất lượng phần mềm 106 1.2.1 Chỉ số chất lượng phần mềm 106 1.2.1 Chỉ số chất lượng phần mềm 106 1.2.2 Khoa học phần mềm của HALSTEAD 107 1.2.2 Khoa học phần mềm của HALSTEAD 107 1.2.3 Đo độ phức tạp của Thomas McCabe 109 1.2.3 Đo độ phức tạp của Thomas McCabe 109 1.3 Độ tin cậy phần mềm 110 1.3 Độ tin cậy phần mềm 110 1.4 Cách tiếp cận bảo đảm chất lượng phần mềm 111 1.4 Cách tiếp cận bảo đảm chất lượng phần mềm 111 1.4.1 Xem xét nhu cầu cho SQA 111 1.4.1 Xem xét nhu cầu cho SQA 111 1.4.2 Lập kế hoạch SQA và các chuẩn 112 1.4.2 Lập kế hoạch SQA và các chuẩn 112 2. Kiểm thử phần mềm 113 2. Kiểm thử phần mềm 113 2.1 Nền tảng của kiểm thử phần mềm 113 2.1 Nền tảng của kiểm thử phần mềm 113 2.1.1 Mục đích kiểm thử 113 2.1.1 Mục đích kiểm thử 113 2.1.2 Luồng thông tin kiểm thử 114 2.1.2 Luồng thông tin kiểm thử 114 2.2 Chiến lược kiểm thử phần mềm 114 7 Giáo trình tóm tắt Công Nghệ Phần Mềm 2.2 Chiến lược kiểm thử phần mềm 114 2.2.1 Cách tiếp cận chiến lược tới kiểm thử phần mềm 114 2.2.1 Cách tiếp cận chiến lược tới kiểm thử phần mềm 114 2.2.2 Chiến lược kiểm thử phần mềm 115 2.2.2 Chiến lược kiểm thử phần mềm 115 2.2.3 Tổ chức việc kiểm thử phần mềm 116 2.2.3 Tổ chức việc kiểm thử phần mềm 116 2.2.3.1 Kiểm thử đơn vị 116 2.2.3.1 Kiểm thử đơn vị 116 2.2.3.2 Kiểm thử tích hợp 117 2.2.3.2 Kiểm thử tích hợp 117 2.2.3.3 Kiểm thử hợp lệ 120 2.2.3.3 Kiểm thử hợp lệ 120 2.2.3.4 Kiểm thử hệ thống (System Test) 121 2.2.3.4 Kiểm thử hệ thống (System Test) 121 3. Bảo trì phần mềm 122 3. Bảo trì phần mềm 122 3.1 Định nghĩa về bảo trì phần mềm 122 3.1 Định nghĩa về bảo trì phần mềm 122 3.2 Các đặc trưng bảo trì 123 3.2 Các đặc trưng bảo trì 123 3.2.1 Bảo trì có cấu trúc so với phi cấu trúc 123 3.2.1 Bảo trì có cấu trúc so với phi cấu trúc 123 3.2.2 Chi phí bảo trì 124 3.2.2 Chi phí bảo trì 124 3.3 Tổ chức bảo trì 125 3.3 Tổ chức bảo trì 125 3.4 Luồng sự kiện 126 3.4 Luồng sự kiện 126 3.5 Bảo trì chương trình xa lạ 127 3.5 Bảo trì chương trình xa lạ 127 130 130 LẬP TRÌNH HIỆU QUẢ 130 LẬP TRÌNH HIỆU QUẢ 130 1. Các đặc trưng ngôn ngữ lập trình 130 1. Các đặc trưng ngôn ngữ lập trình 130 8 Giáo trình tóm tắt Công Nghệ Phần Mềm Ngôn ngữ lập trình là phương pháp để liên lạc giữa con người và máy tính. Lập trình là một hoạt động của con người, là sự liên lạc thông qua ngôn ngữ lập trình, là một bước cốt lõi trong tiến trình kỹ nghệ phần mềm 130 1.1 Đặc trưng tâm lý của ngôn ngữ lập trình 130 1.1 Đặc trưng tâm lý của ngôn ngữ lập trình 130 Trong cuốn sách Tâm lý phần mềm, tác giả Ben Shneiderman đã viết về vai trò của nhà tâm lý phần mềm như sau: “họ tập trung vào mối quan tâm của con người như tính dễ dùng, đơn giản khi học, nâng cao độ tin cậy, giảm tần suất lỗi và tăng sự thoả mãn với người dùng, trong khi không quên tính hiệu quả của máy, khả năng phần mềm và sự ràng buộc phần cứng”. Trong khi đó, người thiết kế ngôn ngữ lập trình thường bóp cách tiếp cận tới vấn đề sao cho cách tiếp cận khớp với những ràng buộc riêng do ngôn ngữ lập trình áp đặt 130 Vì nhân tố con người có tầm quan trọng chủ chốt trong việc thiết kế ngôn ngữ lập trình nên các đặc trưng tâm lý của ngôn ngữ có tác động mạnh mẽ lên sự thành công của việc thiết kế trong khi dịch và cài đặt 130 Một số đặc trưng của tâm lý xuất hiện như kết quả của việc thiết kế ngôn ngữ lập trình. Mặc dầu những đặc trưng này không đo được theo bất cứ cách thức định lượng nào, nhưng chúng ta thừa nhận biểu hiện của chúng trong mọi ngôn ngữ lập trình 130 a. Tính đồng đều: chỉ ra mức độ theo đó ngôn ngữ ký pháp nhất quán 130 b. Tính mơ hồ: ngôn ngữ lập trình được người lập trình cảm nhận. Trình biên dịch bao giờ cũng diễn giải một câu lệnh theo một cách. Nhưng độc giả có thể hiểu câu lệnh đó theo cách khác. Tại đây có sự mơ hồ tâm lý. Việc thiếu tính đồng đều và sự mơ hồ tâm lý thường đi kèm nhau. Nếu ngôn ngữ lập trình để lộ ra những khía cạnh tiêu cực của các đặc trưng này thì chương trình nguồn sẽ khó đọc và việc dịch từ thiết kế ra dễ sinh lối nhiều hơn 130 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ó: 130 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 130 Loại từ khoá và cách viết tắt có thể được dùng 130 Sự phong phú của các kiểu dữ liệu và đặc trưng mặc định 130 Số các phép toán logic và số học 130 Số các hàm có sẵn 130 Ví dụ: APL là một ngôn ngữ lập trình gọn gàng ngoại lệ, thành khó đọc và khó hiểu 130 Các đặc trưng ký ức con người có tác động mạnh mẽ đến cách ta dùng ngôn ngữ. Ký ức và việc nhận dạng của con người có thể chia thành hai lĩnh vực toàn thái và tuần tự. Ký ức toàn thái chỉ cho phép chúng ta nhớ và nhận lại mọi thứ như một tổng thể. (như chúng ta nhận ra khuôn mặt người ngay tức thì, nhưng chúng ta không có ý thức về từng phần riêng biệt trên khuôn mặt trước khi nhận dạng). Ký ức tuần tự, cung cấp một phương tiện để nhớ lại phần tử tiếp trong một dãy (như dòng tiếp theo trong bài hát, khi được cho những dòng trước đó). Mỗi đặc trưng này đều có ảnh hưởng đến đặc trưng ngôn ngữ lập trình vẫn được gọi là tính cục bộ và tính tuyến tính 131 d. Tính cục bộ: là đặc trưng toàn thái của ngôn ngữ lập trình. Tính cục bộ được làm nổi bật khi các câu lệnh có thể được tổ hợp thành các khối, khi các kết cấu có cấu trúc có thể được cài đặt trực tiếp, khi thiết kế và chương trình gốc đều mang tính module. Một đặc trưng của ngôn ngữ hỗ trợ hay khuyến khích cho xử lý biệt lệ đều vi phạm vào tính cục bộ này 131 e. Tính tuyến tính: là một đặc trưng tâm lý có liên quan chặt chẽ với khái niệm bảo trì của lĩnh vực chức năng. Tức là, nhận biết con người được thuận lợi khi gặp một dãy tuyến tính các thao tác logic. Những nhánh xảy ra (các chu trình lớn) vi phạm tính tuyến tính của xử lý. Một lần nữa, việc cài đặt thông tin trực tiếp cho các kết cấu có cấu trúc trợ giúp cho tuyến tính của ngôn ngữ lập trình 131 9 Giáo trình tóm tắt Công Nghệ Phần Mềm Khả năng học một ngôn ngữ mới của chúng ta bị ảnh hưởng bởi truyền thống. Các kết cấu là tương tự nhau, hình dạng thì tương thích và cảm giác về định dạng ngôn ngữ lập trình được bảo toàn 131 Các đặc trưng tâm lý của ngôn ngữ lập trình có ý nghĩa quan trọng tới khả năng của chúng ta trong việc học, áp dụng và duy trì chúng. Tóm lại, ngôn ngữ lập trình tạo ra màu sắc, cho chúng ta cách nghĩ về chương trình và giới hạn cố hữu cách chúng ta liên lạc với máy tính. 131 1.2 Mô hình cú pháp và ngữ nghĩa 131 1.2 Mô hình cú pháp và ngữ nghĩa 131 Shniderman đã phát triển một mô hình cú pháp - ngữ nghĩa cho tiến trình lập trình có liên quan đến việc xem xét các bước lập trình. Khi người lập trình các phương pháp kỹ nghệ phần mềm (như phân tích yêu cầu thiết kế) vốn độc lập với ngôn ngữ lập trình thì động tới vấn đề tri thức ngữ nghĩa. Tri thức ngữ nghĩa mặt khác lại là độc lập với ngôn ngữ, tập trung vào các đặc trưng của ngôn ngữ xác định 131 Về các kiểu tri thức này, tri thức ngữ nghĩa là khó thu nhận được hơn cả và đòi hỏi dùng nhiều trí tuệ. Tất cả các bước kỹ nghệ phần mềm trước phần lập trình đều dùng rất nhiều tri thức ngữ nghĩa. Bước lập trình áp dụng tri thức cú pháp vốn là “bất kỳ và theo lệnh” được học theo kiểu vẹt. Khi học một ngôn ngữ lập trình mới thì thông tin cú pháp mới được thêm vào ký ức. Nhiều vấn đề liên quan tới phần mềm máy tính đã không là quan trọng do việc thiếu tri thức cú pháp, nhưng lại quan trọng trong phạm vi tri thức ngữ nghĩa và khả năng của chúng ta để áp dụng nó. Mục tiêu của kỹ nghệ phần mềm là mở rộng tri thức về ngữ nghĩa của việc phát triển phần mềm 131 1.3 Hướng quan điểm kỹ nghệ 131 1.3 Hướng quan điểm kỹ nghệ 131 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ệ: 131 (1)dễ dịch thiết kế sang chương trình 131 (2)có trình biên dịch hiệu quả 131 (3)khả chuyển chương trình gốc 131 (4)có sẵn công cụ phát triển 132 (5)dễ bảo trì 132 Bước lập trình bắt đầu sau khi thiết kế chi tiết đã được xác định, xét duyệt và sửa đổi nếu cần. Về lý thuyết, việc sinh chương trình gốc từ một đặc tả chi tiết nên là trực tiếp. Dễ dịch thiết kế sang chương trình đưa ra một chỉ dẫn về việc một ngôn ngữ lập trình phản xạ gần gũi đến mức nào cho một biểu diễn thiết kế. Một ngôn ngữ cài đặt trực tiếp cho các kết cấu có cấu trúc, các cấu trúc dữ liệu phức tạp, vào/ra đặc biệt, khả năng thao tác bit, và kết cấu hướng sự vật sẽ làm cho việc dịch từ thiết kế sang chương trình gốc dễ hơn nhiều (nếu các thuộc tính này được xác định trong thiết kế) 132 Mặc dầu những tiến bộ nhanh chóng trong tốc độ xử lý và mật độ nhớ đã bắt đầu làm giảm nhẹ nhu cầu “chương trình siêu hiệu quả”, nhiều ứng dụng vẫn còn đòi hỏi các chương trình nhanh, “gọn” (yêu cầu bộ nhớ thấp). Các ngôn ngữ với trình biên dịch tối ưu có thể là hấp dẫn nếu hiệu năng phần mềm là yêu cầu chủ chốt 132 a. Tính khả chuyển chương trình gốc: là một đặc trưng của ngôn ngữ lập trình có thể được hiểu theo ba cách khác nhau: 132 (1) Chương trình gốc có thể được chuyển từ bộ xử lý này sang bộ xử lý khác và từ trình biên dịch nọ sang trình biên dịch kia với rất ít hoặc không sửa đổi gì 132 (2) Chương trình gốc vẫn không thay đổi ngay cả khi môi trường của nó thay đổi (như việc cài đặt bản mới của hệ điều hành) 132 10 [...]... trang bị cho sinh viên khoa Công nghệ thông tin những khái niệm cơ bản về phần mềm và cách chế tạo phần mềm; giúp sinh viên tiếp cận có nguyên tắc hơn tới việc phát triển phần mềm thông qua các phương pháp, thủ tục và công cụ của kỹ nghệ phần mềm và cuối cùng là xây dựng phần mềm một cách hiệu quả 26 Giáo trình tóm tắt Công Nghệ Phần Mềm CHƯƠNG 1 PHẦN MỀM VÀ KỸ NGHỆ PHẦN MỀM 0.Đối tượng nghiên cứu của... tạp phụ đáng kể so với phần cứng 3 Phần lớn phần mềm đều được xây dựng theo đơn đặt hàng, chứ ít khi được lắp ráp từ những thành phần có sẵn 28 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 các danh mục các thành phần phần mềm là không có sẵn Có thể đặt hàng một đơn vị phần mềm hoàn chỉnh, chứ không phải là những thành phần có thể lắp ráp thành một chương trình mới (Tuy nhiên điều... đích của môn học Công nghệ phần mềm không phải là để sản sinh ra phần mềm cụ thể mà nó liên quan đến việc sản sinh ra sản phẩm một cách hiệu quả Môn học trang bị cho học viên :  những khái niệm cơ bản về phần mềm  cách chế tạo phần mềm;  các phương pháp, các thủ tục và công cụ phát triển phần mềm để xây dựng phần mềm một cách hiệu quả I Phần mềm- Software 1.1 Khái niệm phần mềm Phần mềm là một sản... tử 29 Giáo trình tóm tắt Công Nghệ Phần Mềm - 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 và 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 là thông tin tồn tại dưới hai dạng cơ bản: các thành phần máy không thực hiện được và các thành phần máy thực hiện được Ta xét thành phần phần mềm được... 7 Sơ lược về tiến trình thử nghiệm? (quá trình, kế hoạch, chiến lược) 147 TÀI LIỆU THAM KHẢO .1 TÀI LIỆU THAM KHẢO .1 25 Giáo trình tóm tắt Công Nghệ Phần Mềm MỞ ĐẦU Sau gần nửa thế kỷ phát triển, ngành kỹ nghệ phần mềm (SE – Software Engineering) đến nay đã được thừa nhận là một bộ môn chính thống Các phương pháp, thủ tục và công cụ kỹ nghệ phần mềm đã được chấp nhận... pháp, quá trình thi hành chương trình mới bị ngừng lại và trình thông dịch sẽ thông báo lỗi Ðiểm bất lợi là các chương trình thông dịch chạy không nhanh bằng các chương trình được biên dịch vì quá trình chuyển đổi sang ngôn ngữ máy được thực hiện cùng với quá trình thi hành chương trình Vì lý do này, ngày nay, đa số các ngôn ngữ cấp cao đều dùng trình biên dịch 35 Giáo trình tóm tắt Công Nghệ Phần Mềm 1.6... triển phần mềm .137 2.6.2 Môi trường phát triển phần mềm .137 a Đại cương 137 Một môi trường phát triển phần mềm là một bộ các công cụ phần cứng và phần mềm chúng được kết lại để sản sinh ra một hệ thống phần mềm trong một miền ứng dụng chuyên biệt 137 Có hai điểm quan trọng: 137 a.Môi trường phát triển phần mềm có thể bao gồm các công cụ phần cứng... dụng thành công trong rất nhiều lĩnh vực công nghiệp Các nhà quản lý và chuyên gia công nghệ thông tin đều nhận ra nhu cầu về cách tiếp cận có nguyên tắc hơn tới việc phát triển phần mềm Mục đích của ngành kỹ nghệ phần mềm không phải là việc sản sinh ra phần mềm cụ thể mà là việc sản sinh ra các sản phẩm một cách hiệu quả với hạn chế về nguồn lực và thời gian Giáo trình Nhập môn Kỹ nghệ phần mềm trang... biệt đáng kể so với phần cứng 1 Phần mềm được phát triển hay được kỹ nghệ hoá, nó không được chế tạo theo nghĩa cổ điển Chi phí phần mềm tập trung vào kỹ nghệ, nghĩa là các dự án phần mềm dường như là các dự án chế tạo Vài thập kỷ qua, khái niệm "xưởng phần mềm" đã được đề cập nhiều, khái niệm này khuyến cáo về việc sử dụng các công cụ tự động hoá cho việc phát triển phần mềm 2 Phần mềm không hỏng đi... thay đổi cách thức phát triển phần mềm, một trong các hướng đó là xây dựng phần mềm có khả năng tạo ra phần mềm Hệ chuyên gia và phần mềm trí tuệ nhân tạo cuối cùng đã đưa vào ứng dụng thực tế Phần mềm mạng nơ ron nhân tạo đã mở ra những khả năng nhận dạng và thực hiện những khả năng xử lý thông tin kiểu con người 1.3 Các đặc trưng của phần mềm Phần mềm là sản phẩm của quá trình tư duy logic do đó nó . 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 1 Giáo trình tóm tắt Công Nghệ Phần Mềm MỤC LỤC MỞ ĐẦU 26 MỞ ĐẦU 26 27 27 PHẦN MỀM VÀ KỸ NGHỆ PHẦN MỀM 27 PHẦN. MỀM VÀ KỸ NGHỆ PHẦN MỀM 27 I. Phần mềm- Software 27 I. Phần mềm- Software 27 1.3 Các đặc trưng của phần mềm 28 1.3 Các đặc trưng của phần mềm 28 1.4 Phân loại phần mềm 29 1.4 Phân loại phần mềm. giai đoạn trong tiến trình kỹ nghệ phần mềm 45 3. Các giai đoạn trong tiến trình kỹ nghệ phần mềm 45 3.1 Giai đoạn xác định làm cái gì ? 45 2 Giáo trình tóm tắt Công Nghệ Phần Mềm 3.1 Giai đoạn

Ngày đăng: 06/07/2014, 09:20

Từ khóa liên quan

Mục lục

  • MỞ ĐẦU

  • PHẦN MỀM VÀ KỸ NGHỆ PHẦN MỀM

  • I. Phần mềm- Software

  • 1.3 Các đặc trưng của phần mềm

  • 1.4 Phân loại phần mềm

  • 1.5 Các Các ngôn ngữ lập trình

  • 1.6 Việc ứng dụng phần mềm

  • 1.7 Các thách thức đối với phần mềm máy tính

  • II. Kỹ nghệ phần mềm

  • 2.0.Đối tượng môn học

  • 2.1 Định nghĩa

  • Cách tiếp cận 1: Mô hình vòng đời cổ điển

  • Cách tiếp cận 2: Mô hình làm bản mẫu

  • Cách tiếp cận 3: Mô hình xoắn ốc

  • Cách tiếp cận 4: Kỹ thuật thế hệ thứ tư

  • 2.6 Cách tiếp cận 5: Tổ hợp các khuôn cảnh

  • 3. Các giai đoạn trong tiến trình kỹ nghệ phần mềm

  • 3.1 Giai đoạn xác định làm cái gì ?

  • 3.2 Giai đoạn phát triển – làm như thế nào ?

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

Tài liệu liên quan