Bài giảng Nhập môn công nghệ phần mềm: Chương 1 - Nguyễn Thanh Bình
lượt xem 3
download
Bài giảng "Nhập môn công nghệ phần mềm - Chương 1: Giới thiệu công nghệ phần mềm" cung cấp cho người đọc các kiến thức: Lịch sử phát triển phần mềm và khủng hoảng phần mềm, công nghệ phần mềm, chất lượng phần mềm, phân loại phần mềm. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Nhập môn công nghệ phần mềm: Chương 1 - Nguyễn Thanh Bình
- Giới thiệu công nghệ phần mềm (1) 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 Nội dung Lịch sử phát triển phần mềm và khủng hoảng phần mềm ? Công nghệ phần mềm Khái niệm Mục ñích Nguyên tắc Chất lượng phần mềm Phân loại phần mềm 2 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Lịch sử phát triển phần mềm 1946, máy tính ñiện tử ra ñời 1950, máy tính ñược thương mại hóa Phần mềm bắt ñầu ñược phát triển Những năm 1960 những thất bại về phát triển phần mềm • sản phẩm phần mềm phức tạp • nhiều lỗi • tổ chức sản xuất: giá thành, tiến ñộ, ... Người ta nói ñến “Khủng hoảng phần mềm” 3 Lịch sử phát triển phần mềm Từ thủ công ñến công nghệ • Chương trình nhỏ • Dự án lớn • không chuyên nghiệp • chuyên nghiệp • 1 người làm • nhiều người làm • người sử dụng = người phát triển • khách hàng & nhà cung cấp • 1 sản phẩm = mã nguồn • nhiều sản phẩm • tiến trình phát triển ñơn giản • tiến trình phát triển phức tạp 1968, hội thảo khoa học ñầu tiên về “Công nghệ phần mềm” 4 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Khủng hoảng phần mềm Về mặt sản phẩm chất lượng sản phẩm phần mềm • không ñáp ứng yêu cầu thực tế • khó sử dụng • không tin cậy • khó bảo trì • khách hàng không hài lòng 5 Khủng hoảng phần mềm Về mặt quản lý Kế hoạch • không ñánh giá ñúng giá thành • không ñúng tiến ñộ • chi phí phát triển / chi phí bảo trì Về mặt pháp lý • hợp ñồng không rỏ ràng, không chặt chẽ Nhân lực • ñào tạo • giao tiếp Thiếu tiêu chuẩn ñánh giá sản phẩm Thiếu quy trình quản lý 6 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Khủng hoảng phần mềm ðiều tra của General Acounting Office (1982) trên nhiều sự án với tổng vốn ñầu tư $68.000.000 Không giao sản phẩm: 29% Không ñược sử dụng: 47% Bỏ cuộc: 19% ðược sử dụng sau khi ñã chỉnh sửa: 3% Tốt: 2% 7 Khủng hoảng phần mềm 8 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Công nghệ phần mềm Khái niệm Công nghệ phần mềm nghiên cứu và phát triển các phương pháp, kĩ thuật và công cụ nhằm xây dựng các phần mềm một cách kinh tế, có ñộ tin cậy cao và hoạt ñộng hiệu quả thiết kế, xây dựng, và bảo trì các phần mềm phc tp, bn vng và cht lưng 9 Công nghệ phần mềm Mục ñích Mục ñích áp dụng thực tế • các kiến thức khoa học, • các nguyên tắc kinh tế, • các nguyên tắc quản lí, • các kỹ thuật và công cụ thích hợp ñể sản xuất và bảo trì các phần mềm nhằm bảo ñảm 4 yêu cầu (FQCD): • phần mềm tạo ra phải ñáp ứng ñược yêu cầu người sử dụng • phần mềm phải ñạt ñược các tiêu chuẩn về chất lượng • giá thành phải nằm trong giới hạn ñặt ra • tiến ñộ xây dựng phần mềm phải ñảm bảo 10 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Công nghệ phần mềm Nguyên tắc Các nguyên tắc cơ bản Chặt chẽ (rigor and formality) Chia nhỏ (separation of concerns) Mô-ñun hóa (modularity) Trừu tượng (abstraction) Phòng ngừa sự thay ñổi (anticipation of change) Tổng quát hóa (generality) Giải quyết từng bước (incrementality) 11 Công nghệ phần mềm Nguyên tắc Chặt chẽ (rigor and formality) sử dụng mô hình lý thuyết và toán học áp dụng cho tất cả các bước, tất cả các sản phẩm Ví dụ • “chọn z là giá trị lớn nhất của x và y” • z = max(x, y) 12 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Công nghệ phần mềm Nguyên tắc Chia nhỏ (separation of concerns) Làm chủ ñộ phức tạp • chỉ tập trung một lĩnh vực cùng một lúc Chia vấn ñề thành các phần nhỏ hơn • Giải quyết một phần nhỏ sẽ ñơn giản hơn • “chia ñể trị” (divide and conquer) Có thể chia nhỏ theo • thời gian: lập kế hoạch • khái niệm: giao diện / thuật toán • xử lý: chia các xử lý con 13 Công nghệ phần mềm Nguyên tắc Mô-ñun hóa (modularity) Chia nhỏ ñộ phức tạp • dễ hiểu • dễ quản lý các hệ thống phức tạp Quan hệ mật thiết với nguyên tắc “chia nhỏ” Các phương pháp mô-ñun hóa • chiến lược từ trên xuống (top-down) • chiến lược từ dưới lên (bottom-up) Chất lượng của mô-ñun hóa • liên kết lỏng lẻo (low coupling) • kết cố cao (high cohesion) 14 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Công nghệ phần mềm Nguyên tắc Trừu tượng (abstraction) Loại bỏ những gì không quan trọng Chỉ xem xét các yếu tố quan trọng Sử dụng các mô hình • mô hình cho người sử dụng • mô hình cho ngưới phát triển Ví dụ • ngôn ngữ lập trình / cấu trúc phần cứng • xây dựng tài liệu • ñặc tả bới ñiều kiện trước và sau 15 Công nghệ phần mềm Nguyên tắc Phòng ngừa sự thay ñổi (anticipation of change) phần mềm là sản phẩm thường xuyên phải thay ñổi dự báo các yếu tố có thể thay ñổi • ảnh hưởng có thể các thay ñổi thường gặp • trong ñặc tả yêu cầu • trong ngữ cảnh sử dụng • khả năng về công nghệ 16 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Công nghệ phần mềm Nguyên tắc Tổng quát hóa (generality) xem xét vấn ñề trong ngữ cảnh tổng quát giải quyết vấn ñề lớn hơn mục ñích • tái sử dụng dễ dàng • có thể sử dụng các công cụ có sẵn • sử dụng design patterns • chi phí có thể tăng cao 17 Công nghệ phần mềm Nguyên tắc Giải quyết từng bước (incrementality) Nguyên tắc • xác ñịnh một phần (tập con) • phát triển • ñánh giá • bắt ñầu lại Áp dụng cho • phát triển một sản phẩm • mô ñặc tả / một kiến trúc / ... • mô hình phát triển • mô hình lặp 18 9 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Chất lượng phần mềm Tính ñúng ñắn (correctness) thực hiện ñúng các ñặc tả về chức năng (functional specification) Tính tin cậy (reliability) ñáp ứng ñược những yêu cầu ñặt ra Tính bền vững (robustness) hoạt ñộng tốt trong những ñiều kiện sử dụng khác nhau 19 Chất lượng phần mềm Tính hiệu quả (efficiency) sử dụng hiệu quả các nguồn tài nguyên (bộ nhớ, CPU, ...) Tính thân thiện (user friendlyness) dễ sử dụng Tính dễ kiểm tra (verifiability) dễ kiểm tra chất lượng 20 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Chất lượng phần mềm Tính dễ bảo trì (maintainability) dễ xác ñịnh và sửa lỗi dễ tạo ra những phiên bản mới khi có sự mở rộng Tính tái sử dụng (reusability) dễ tái sử dụng trong những phần mềm mới Tính khả chuyển (portability) dễ sử dụng trong các môi trường mới 21 Chất lượng phần mềm Tính dễ hiểu (understandability) dễ hiểu ñối với người sử dụng cũng như ñối với người phát triển Tính hợp tác (interoperability) dễ hợp tác với các phần mềm khác Sản xuất hiệu quả (productivity) tiến trình sản xuất phần mềm phải hiệu quả 22 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Chất lượng phần mềm Khả năng giao sản phẩm ñúng hạn (timeliness) giao sản phẩm theo từng gói Tính trong suốt (visibility) ñối với người phát triển/người quản lý • hiểu rỏ tiến ñộ phát triển • hiểu rỏ ảnh hưởng của các quyết ñịnh ñối với khách hàng • hiểu rỏ tiến ñộ phát triển • hiểu rỏ ảnh hưởng của các quyết ñịnh 23 Chất lượng phần mềm Sự thỏa hiệp giữa các tiêu chuẩn chất lượng tính thân thiện / tính bền vững tính khả chuyển / tính hiệu quả 24 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Phân loại phần mềm Các hệ thống thông tin (Information Systems) quản lý thông tin cơ sở dữ liệu + giao tác Các hệ thống thời gian thực (Real-Time System) các hệ thống khi hoạt ñộng cần phải trả lời các sự kiện với một thời gian ñược quy ñịnh nghiêm ngặt 25 Phân loại phần mềm Các hệ thống phân tán (Distributed Systems) mạng máy tính phân tán dữ liệu phân tán xử lí Các hệ thống nhúng (Emmbedded Systems) giao tiếp với các hệ thống/mạch ñiện tử 26 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Nhập môn Công nghệ thông tin: Lab 1 - Th.S Dương Thành Phết
13 p | 225 | 44
-
Bài giảng Nhập môn Công nghệ thông tin: Hướng dẫn bài tập 3 - Th.S Dương Thành Phết
59 p | 170 | 21
-
Bài giảng Nhập môn Công nghệ thông tin: Hướng dẫn bài tập 1 - Th.S Dương Thành Phết
17 p | 156 | 20
-
Bài giảng Nhập môn Công nghệ phần mềm: Chương 3 - Nguyễn Thị Minh Tuyền
77 p | 146 | 18
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm (2011)
49 p | 104 | 14
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 9 - Ngô Chánh Đức
32 p | 122 | 13
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 2 - Ngô Chánh Đức
60 p | 123 | 11
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 3 - Ngô Chánh Đức
35 p | 89 | 11
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 4 - Ngô Chánh Đức
45 p | 111 | 10
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm
35 p | 31 | 9
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 1 - Ngô Chánh Đức
13 p | 101 | 8
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 5 - Ngô Chánh Đức
51 p | 76 | 8
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 7 - Ngô Chánh Đức
26 p | 112 | 8
-
Bài giảng Nhập môn Công nghệ phần mềm: Giới thiệu tổng quan về nội dung học phần - TS. Trần Ngọc Bảo
32 p | 126 | 7
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 6 - Ngô Chánh Đức
36 p | 91 | 6
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 8 - Ngô Chánh Đức
29 p | 75 | 6
-
Bài giảng Nhập môn Công nghệ thông tin 1: Giới thiệu môn học - Ngô Chánh Đức
4 p | 107 | 5
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Nguyễn Văn Danh
9 p | 79 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn