Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
2,43 MB
Nội dung
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Giáo viên : Nguyễn Thị Thanh Bình Số tiết: 60 Trong đó: Lên lớp: 30 tiết Bài tập lớn+Thảo luận: 25 tiết Kiểm tra: 5 Tiết Hà Nội, 2010 2 TÀI LIỆU THAM KHẢO Nguyễn Văn Vỵ, Nguyễn Việt Hà, Giáo trình Kỹ nghệ phần mềm, Khoa CNTT, ĐH Công nghệ R. Pressman, Software Engineering: A Practioner’s Approach. 6th Ed., McGraw-Hill, 2004 R. Pressman, Kỹ nghệ phần mềm. Tập 1, 2, 3. NXB Giáo dục, HàNội, 1997 (Người dịch: Ngô Trung Việt) I. Sommerville, Software Engineering. 7th Ed., Addison- Wesley, 2004 Vũ Đức Thi, Lê Văn Phùng: Giáo trình Kỹ nghệ phần mềm. Hà Nội 2003. 3 YÊU CẦU MÔN HỌC Nắm được các nguyên lý / khái niệm cơ bản của kỹ nghệ phần mềm Vận dụng kiến thức vào bài tập nhóm Hiểu về quá trình làm phần mềm Minh họa nguyên lý / kỹ thuật Chủ động tìm hiểu kiến thức Tìm hiểu một số chủ đề mở rộng 4 CHƯƠNG TRÌNH MÔN HỌC I ĐẶC TẢ PHẦN MỀM II THIẾT KẾ PHẦN MỀM III PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM V V SƠ LƯỢC VỀ KIỂM CHỨNG PHẦN MỀM IV 5 CHƯƠNG 1 I PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM 6 I. Sự phát triển của phần mềm 1. Quá trình tiến hóa của phần mềm Những năm đầu (từ 1950 đến 1960): Mỗi máy sử dụng cho một ứng dụng riêng. Phương thức chính là xử lý theo lô Việc phát triển phần mềm chưa được quản lý, Môi trường lập trình có tính chất cá nhân Thời kỳ năm 1960 đến giữa những năm 1970: Các hệ thống đa nhiệm, đa người dùng xuất hiện dẫn đến khái niệm mới về tương tác người máy. Tiến bộ lưu trữ trực tuyến làm xuất hiện thế hệ đầu tiên của hệ quản trị CSDL. Yêu cầu lớn về công việc bảo trì phần mềm. 7 I. Sự phát triển của phần mềm Thời kỳ giữa những năm 1970 đến đầu năm 1990: Hệ thống phân tán xuất hiện làm tăng quy mô và độ phức tạp của phần mềm ứng dụng. Mạng máy tính triển mạnh -> tăng nhu cầu truy cập dữ liệu trực tuyến, phần mềm quản lý dữ liệu C/nghệ chế tạo vi xử lý phát triển -> nhu cầu về phần mềm gia tăng, chi phí cho phần mềm tăng. Thời kỳ sau 1990: Kỹ nghệ hướng đối tượng đang nhanh chóng thay thế cách tiếp cận phát triển phần mềm truyền thống Sự phát triển của Internet -> phát triển nhanh về phần cứng và phần mềm. Phần mềm trí tuệ nhân tạo ứng dụng các thuật toán phi số như hệ chuyên gia, mạng nơron nhân tạo được ứng dụng vào thực tế 8 I. Sự phát triển của phần mềm 2. Các thách thức đối với phần mềm máy tính Từ sự tiến hóa của phần mềm Sự tăng quy mô của PM Sự tăng chi phí làm PM Sự kéo dài thời gian PT 1 PM Sự phụ thuộc nhiều vào kinh nghiệm của người làm PM Chất lượng của PM không ổn đinh Gánh nặng bảo trì hệ thống cũ để tiếp tục HĐ 9 I. Sự phát triển của phần mềm Thách thức đối với PT PM máy tính hiện nay Khả năng PM không thể SD hết được tiềm năng của phần cứng. Khả năng XD phần mềm không bắt nhịp được với nhu cầu SD PM tăng lên, đặc biệt là khi Internet phát triển Quy mô và độ phức tạp của PM ngày càng tăng Khả năng bảo trì hệ thống PM cũ tồn tại khó khăn và chi phí lớn 10 II. Phần mềm 1. Mô tả về phần mềm Phần mềm là các chương trình máy tính và những tài liệu liên quan đến nó như : các yêu cầu, mô hình thiết kế, tài liệu hướng dẫn sử dụng… Do đó, ta thấy rằng đặc điểm của phần mềm là trừu tượng và vô hình [...]... Phần mềm hệ thống Phần mềm thời gian thực Phần mềm nghiệp vụ Phần mềm khoa học và công nghệ Phần mềm nhúng Phần mềm cho máy tính cá nhân Phần mềm trí tuệ nhân tạo Dùng các thuật toán phi số để giải quyết các vấn đề phức tạp Udung chính : hệ chuyên gia, nhận dạng… 14 II Phần mềm 3 Phân loại phần mềm Ngoài ra còn có phần mềm phục vụ kỹ nghệ phần mềm: Chương trình dịch, phần mềm gỡ rối,... thiết thực, góp phần làm nâng cao chất lượng SP 16 II Phần mềm Tiêu chuẩn phần mềm tốt (tiếp) Bảo trì được, không tốn kém Có tính khả dụng – dễ dàng đối với nhiều đối tượng Mềm dẻo, có khả năng thích nghi cho việc phát triển tiếp Tính khả chuyển: Dễ dàng chuyển đổi môi trường 17 III Công nghệ phần mềm - SE 1 Định nghĩa Công nghệ phần mềm theo Fritz Bauer (1969): Kỹ nghệ phần mềm là quá trình... chốt: Phương pháp (Method) Công cụ (Tools) Thủ tục (Procedure) Các yếu tố này giúp người quản lý kiểm soát được tiến trình phát triển phần mềm và cung cấp cho người kỹ sư phần mềm một nền tảng để xây dựng phần mềm chất lượng cao theo một cách thức hiệu quả 19 III Công nghệ phần mềm - SE Quy trình phần mềm Là một tập hợp các hành động nhằm xây dựng và phát triển phần mềm, thường gồm: Đặc tả: đặc... nguyên tắc kỹ thuật có cơ sở để xây dựng các phần mềm một cách kinh tế để hoạt động tin cậy và chạy hiệu quả trên hệ thống máy thật Công nghệ phần mềm theo IEEE(1993): Việc áp dụng cách nghiên cứu và tiếp cận có hệ thống, quy tắc, có thể xác định số lượng để phát triển, vận hành và bảo trì phần mềm; nghĩa là áp dụng kỹ thuật vào phần mềm 18 III Công nghệ phần mềm - SE Các yếu tố chủ chốt của CNPM CNPM... thống Phát triển: xây dựng hệ thống phần mềm Kiểm thử: kiểm tra xem liệu phần mềm đã thoả mãn yêu cầu của khách hàng Mở rộng: điều chỉnh và thay đổi phần mềm tương ứng với sự thay đổi yêu cầu 20 III Công nghệ phần mềm - SE 2 Mô hình quy trình phần mềm Là một thể hiện đơn giản của một quy trình p /mềm, được nhìn từ một góc độ cụ thể, ví dụ: Mô hình luồng công việc (workflow): chuỗi hành động... II Phần mềm 3 Phân loại phần mềm Có nhiều cách để phân loại phần mềm Các sản phẩm phần mềm được chia thành 2 loại : Sản phẩm đại trà : được phát triển để bán ra ngoài thị trường, đối tượng người sử dụng là tương đối đa dạng và phong phú Sản phẩm theo đơn đặt hàng : được phát triển cho một khách hàng riêng lẻ theo yêu cầu 13 II Phần mềm 3 Phân loại phần mềm Phân loại theo lĩnh vực phục vụ Phần. .. loại phần mềm Ngoài ra còn có phần mềm phục vụ kỹ nghệ phần mềm: Chương trình dịch, phần mềm gỡ rối, các công cụ hỗ trợ phân tích thiết kế (CASE) Các phần mềm này có thể xuất hiện dưới dạng phần mềm máy tính cá nhân, phần mềm hệ thống hoặc là phần mềm nghiệp vụ 15 II Phần mềm Tiêu chuẩn phần mềm tốt Dựa vào một số tiêu chí: Đạt được mục tiêu thiết kế đề ra Chi phí vận hành là chấp nhận được... Chậm có phiên bản thực hiện được 24 III Công nghệ phần mềm - SE b Mô hình tiến hóa Gồm các mô hình: Mô hình làm bản mẫu Mô hình xoắn ốc Mô hình RUP (Rational Unified Process) Mô hình tăng trưởng Mô hình phát triển ứng dụng nhanh RAD 25 III Công nghệ phần mềm - SE b Mô hình tiến hóa (tiếp) Được mô tả chung nhất như sau: 26 III Công nghệ phần mềm - SE Mô hình làm bản mẫu Xây dựng... CNPM dựa thành phần (Component-Based SW) 21 III Công nghệ phần mềm - SE a Mô hình thác nước Gồm 5 pha cơ bản 22 III Công nghệ phần mềm - SE a Mô hình thác nước (tiếp) Định nghĩa yêu cầu: Thu thập, phân tích T.tin bài toán Thiết kế: Quá trình chuyển hóa yêu cầu thành mô tả thiết kế Cài đặt kiểm thử : mã hóa các đặc tả thiết kế thành các chương trình mã nguồn, phát hiện và sửa lỗi phần logic bên... 2 phương pháp thực hiện: Phát triển thăm dò Loại bỏ mẫu thử 27 III Công nghệ phần mềm - SE Mô hình làm bản mẫu (tiếp) Mô hình có thể ở 3 dạng: Bản mẫu trên giấy hay trên PC – Bản mô tả YC Bản mẫu cài đặt : chỉ một tập con chức năng của phần mềm mong đợi Bản mẫu là 1 chương trình có thể thực hiện 28 III Công nghệ phần mềm - SE Mô hình làm bản mẫu (tiếp) Bắt đầu Kết thúc Sản phẩm cuối cùng . HỌC I ĐẶC TẢ PHẦN MỀM II THIẾT KẾ PHẦN MỀM III PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM V V SƠ LƯỢC VỀ KIỂM CHỨNG PHẦN MỀM IV 5 CHƯƠNG 1 I PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM 6 I. Sự phát triển của phần mềm 1. Quá. 14 II. Phần mềm 3. Phân loại phần mềm Phân loại theo lĩnh vực phục vụ Phần mềm hệ thống Phần mềm thời gian thực Phần mềm nghiệp vụ Phần mềm khoa học và công nghệ Phần mềm nhúng Phần mềm. trường 18 III. Công nghệ phần mềm - SE 1. Định nghĩa Công nghệ phần mềm theo Fritz Bauer (1969): Kỹ nghệ phần mềm là quá trình sử dụng các nguyên tắc kỹ thuật có cơ sở để xây dựng các phần mềm một