Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
916,35 KB
Nội dung
Tài liệu tham khảo • Software Engineering - A practitioner’s approach, R.S Pressman, McGraw-Hill (ebook) • Ian Sommerville’s , “Software Engineering 7th Ed.” • Nhập mơn kỹ nghệ phần mềm; Ngô Trung Việt, Nguyễn kim Ánh; NXB Khoa học kỹ thuật Công Nghệ Phần Mềm Kế hoạch học • Thời gian: 45 tiết (15 tuần) • Kiểm tra Kiểm tra kỳ: tuần thứ Kiểm tra cuối kỳ: sau kết thúc Đề tài Cơng Nghệ Phần Mềm u cầu • Có kiến thức ngơn ngữ lập trình lập trình ứng dụng • Có khả áp dụng cấu trúc liệu giải thuật • Có hiểu biết kiến trúc máy tính, mạng máy tính Cơng Nghệ Phần Mềm TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM MÔN HỌC CÔNG NGHỆ PHẦN MỀM Chương Tổng quan Công Nghệ Phần Mềm 1.1 Một số khái niệm: Giới thiệu • Khái niệm Cơng nghệ phần mềm đưa lần vào năm 1968 hội nghị thảo luận khủng hoảng phần mềm • Cơng nghệ phần mềm đề cập tới lý thuyết, phương pháp công cụ để xây dựng phần mềm chuyên nghiệp, mang lại lợi nhuận cao • Quy trình xây dựng phần mềm đòi hỏi phải tuân thủ nguyên tắc vô chặt chẽ Công Nghệ Phần Mềm ???& !!! • • • • Công Công Công Công Nghiệp & Công Nghệ Nghiệp Phần Mềm Nghệ Phần Mềm nghiệp phần mềm & công nghiệp khác Giống Khác • Cơng nghệ cho sản xuất phần mềm? • Cơng nghệ phần mềm sản xuất phần mềm hoạt động sản xuất “đặc biệt”? Công Nghệ Phần Mềm Phần mềm (Software) • Phần mềm sản phẩm Dùng cho tính tốn Tạo, quản lý, thu nhận, biến đổi, thể truyền thông tin • Phần mềm phương tiện tạo sản phẩm Hỗ trợ hay cung cấp trực tiếp chức hệ thống Điều khiển chương trình khác (hđh) Thực truyền thông (pm mạng) Giúp cho việc tạo chương trình khác (tool) Cơng Nghệ Phần Mềm Phần mềm gì? Phần mềm tập hợp mục đối tượng mà hình thành cấu hình bao gồm: • Chương trình • Tài liệu • Dữ liệu… Cơng Nghệ Phần Mềm Phần mềm gì? • Phần mềm phải tạo kỹ nghệ • Phần mềm khơng hao mòn • Phần mềm phức tạp Cơng Nghệ Phần Mềm Lỗi theo thời gian increased failure rate due to side effects Failure rate change actual curve idealized curve Time Công Nghệ Phần Mềm 10 Những yêu cầu phần mềm • Phần mềm phải đáp ứng Khả bảo trì (Maintainability): phần mềm co thể trì hoạt động, điều chỉnh mở rộng để thoả mãn yêu cầu thay đổi Mức độ tin cậy (Reliability) : phần mềm phải tin cậy, bảo mật xác Hiệu (Maintainability): phần mềm khơng nên sử dụng lãng phí tài ngun hệ thống Khả chấp nhận: người sử dụng phải chấp nhận phần mềm Điều có nghĩa phải dễ hiểu, sử dụng tương thích với hệ thống khác Công Nghệ Phần Mềm 28 Các nhân tố chất lượng Công Nghệ Phần Mềm 29 Chất lượng Stakeholder Customer: solves problems at an acceptable cost in terms of money paid and resources used User: easy to learn; efficient to use; helps get work done QUALITY SOFTWARE Developer: easy to design; easy to maintain; easy to reuse its parts Công Nghệ Phần Mềm Development manager: sells more and pleases customers while costing less to develop and maintain 30 Những thách thức CNPM • Công nghệ phần mềm phải đối mặt với nhiều thách thức to lớn Không đồng nhất: phát triển kỹ thuật xây dựng phần mềm để giải không đồng môi trường thực sở hạ tầng Chuyển giao: phát triển kỹ thuật cho phép việc chuyển giao phần mềm tới người sử dụng nhanh Độ tin cậy: phát triển kỹ thuật để phần mềm sai sót người sử dụng tin tưởng Công Nghệ Phần Mềm 31 Những thách thức CNPM Cứ đề án triển khai có bị huỷ bỏ Trung bình thời gian thực thực tế bị kéo dài 50% (cá biệt 200-300%) Các đề án lớn dễ thất bại 3/4 hệ thống lớn có lỗi thực thi Q trình phân tích u cầu (5% cơng sức): để lại 55% lỗi, có 18% phát Q trình thiết kế (25% cơng sức): để lại 30% lỗi, có 10% phát Q trình mã hố, kiểm tra bảo trì: để lại 15% lỗi, có 72% phát Công Nghệ Phần Mềm 32 Những thách thức CNPM • Nguyên nhân Phát triển phần mềm giống nghệ thuật, chưa xem ngành khoa học Quá trình phát triển phần mềm chưa thống Phải viết lại s/w có thay đổi ngơn ngữ, h/w o/s Chưa đạt chuẩn cho việc đo lường hiệu suất sản phẩm Độ phức tạp phần mềm cao “kiến trúc sư” Kỹ thuật đặc tả để lại nhập nhằng yêu cầu phần mềm Làm việc nhóm khơng kỷ luật gây lỗi Cơng Nghệ Phần Mềm 33 Ariane5 Công Nghệ Phần Mềm 34 1.2 Kỹ sư phần mềm • Các kỹ sư phần mềm nên tuân theo phương pháp luận có hệ thống có tổ chức cơng việc họ Đồng thời, họ nên sử dụng công cụ kỹ thuật thích hợp với vấn đề cần giải quyết, ràng buộc tài ngun sẵn có Cơng Nghệ Phần Mềm 35 Kỹ Định danh, đánh giá, cài đặt, chọn phương pháp, công cụ CASE Sử dụng mẫu (prototype) Chọn phần cứng, phần mềm Quản lý cấu hình, lập sơ đồ kiểm sốt tiến trình Lựa chọn ngơn ngữ phát triển chương trình Kiểm tra chương trình (testing) Lựa chọn sử dụng kỹ thuật bảo trì phần mềm Đánh giá định loại bỏ nâng cấp ứng dụng Công Nghệ Phần Mềm 36 Cơng việc Lập trình viên Kỹ sư phần mềm (phân tích thiết kế) Kỹ sư tri thức Chuyên gia ứng dụng Quản lý liệu Quản lý CSDL Kỹ sư Trí Tuệ Nhân Tạo Chuyên viên tư vấn Phân tích thơng tin 10 Kỹ sư thơng tin 11 Chuyên viên mạng 12 Lập trình viên hệ thống Công Nghệ Phần Mềm 37 Công việc 13 Chuyên viên hỗ trợ pm 14 Bảo mật 15 Kiểm soát 16 Huấn luyện 17 Tiêu chuẩn 18 Kế hoạch kỹ thuật 19 Hỗ trợ sản phẩm 20 Tiếp thị sản phẩm 21 Chuyên viên người dùng Công Nghệ Phần Mềm 38 Những sai lầm • Tơi dễ dàng biến đổi phần mềm Thực tế: Những thay đổi yêu cầu ngun nhân làm giảm giá trị phần mềm • Tơi giải vấn đề lịch biểu cách thêm người Thực tế: Nó gia tăng nỗ lực phối hợp giảm hiệu suất • Chỉ cần xem xét sơ lược yêu cầu, chúng tơi bắt đầu viết code Thực tế: thường ngun nhân gây lỗi Cơng Nghệ Phần Mềm 39 Những sai lầm • Tơi khơng thể nói chúng tơi làm tốt đến thực thi phần Kiểm tra hình thức cho thơng tin tốt đưa tới thành công cho dự án tốt Cơng Nghệ Phần Mềm 40 Những sai lầm • Phần quan tâm mã Tài liệu, thơng tin kiểm thử cấu hình phần mềm phần then chốt việc chuyển giao • Lập trình giỏi tạo phần mềm chất lượng Những dự án phần mềm hồn tất nhóm, khơng phải cá nhân, để thành công cần nhiều tạo mã • Tạo mã công việc nặng nhọc Tạo mã: 10% cơng sức Cơng Nghệ Phần Mềm 41 Những điểm • Cơng nghệ phần mềm qui tắc công nghệ mà liên quan đến tất diện mạo việc sản phần mềm • Sản phẩm phần mềm gồm chương trình tài liệu kết hợp Những thuộc tính quan trọng: (tính dễ bảo trì) maintainability, (tính tin cậu được) dependability, (hiệu quả) efficiency tiện dụng (usability) • Qui trình phần mềm bao gồm hoạt động Những hoạt động đặc tả (specification), triển khai, thẩm định (validation) tiến hóa (evolution) • Phương pháp cách thức tổ chức nhằm tạo phần mềm Nó bao gồm đề xuất cho qui trình, ký hiệu dùng, luật cho mô tả hệ thống hướng dẫn thiết kế • Cơng cụ CASE Hỗ trợ việc tạo biểu đồ thiết kế, kiểm tra toàn vẹn biểu đồ, giữ vết cho kiểm tra (test) chương trình mà thực thi… Công Nghệ Phần Mềm 42 ... xuất Ứng dụng Web Phần mềm AI 13 Phần mềm • • • • Tính tốn nơi - wireless networks Tài nguyên mạng - computing engine Mã nguồn mở - chứa tai họa Và Khai phá liệu Tính tốn lưới Máy nhận thức... pháp công nghệ phần mềm đề xuất như: Phân tích hướng cấu trúc - tập trung vào việc xác định chức hệ thống; phương pháp hướng đối tượng - tập trung vào việc định nghĩa đối tượng cộng tác chúng •... động quy trình xây dựng phần mềm Có hai loại cơng cụ CASE: Upper-CASE: công cụ để hỗ trợ hoạt động đặc tả yêu cầu thiết kế Lower-CASE: công cụ để hỗ trợ hoạt động sau lập trình, gỡ lỗi kiểm thử