Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
626,5 KB
Nội dung
CHƯƠNG Tổng quan phần mềm công nghệ phần mềm Nội dung 1.1 Một số khái niệm 1.2 Tầm quan trọng phần mềm 1.3 Đặc trưng & chất lượng sản phầm phần mềm 1.4 Phân loại phần mềm 1.5 Sự tiến hóa phần mềm 1.6 Thực trạng thách thức phát triển phần mềm 1.7 Tổng quan công nghệ phần mềm Công nghệ phần mềm 1.1 Một số khái niệm Phần mềm máy tính (Computer Software) Hệ thống phần mềm (Software System) Công nghệ phần mềm 1.1 Một số khái niệm (1) Phần mềm máy tính (Computer Software): phần Chương trình (mã nguồn + mã máy) Các cấu trúc liệu (cấu trúc làm việc + cấu trúc lưu trữ) Các tài liệu liên quan (hướng dẫn sử dụng, tham khảo kỹ thuật, tài liệu phát triển) Ví dụ: Phần mềm soạn thảo văn Microsoft – MSWord Chương trình: winword.exe Dữ liệu: doc files, bitmaps, auto shapes, wordarts, charts, Tài liệu hướng dẫn: Help Phần mềm chat Yahoo! Messenger Chương trình: ymsg.exe Dữ liệu: icons, pictures, texts, voices, Tài liệu hướng dẫn: Help Công nghệ phần mềm 1.1 Một số khái niệm (2) Hệ thống phần mềm (Software System): Tập (hệ thống) phần mềm hợp tác để thực chức lớn Mỗi phần mềm thực công việc Kết hợp công việc để hoàn thành nhiệm vụ chung Mỗi phần mềm hệ thống gọi phân hệ/ hệ thống (subsystem) hay module phần mềm Ví dụ Có thể xem MSWord hệ thống phần mềm bao gồm Module soạn thảo Module kiểm tra tả, ngữ pháp sửa lỗi Module xử lý cơng thức tốn học ký tự đặc biệt Module tìm kiếm, thay văn Module tính tốn excel Module email, tạo website Công nghệ phần mềm 1.2 Tầm quan trọng phần mềm Công nghệ phần mềm 1.2 Tầm quan trọng phần mềm (1) Phần mềm - Linh hồn hệ thống máy tính Có vai trị tảng hoạt động xã hội Công nghệ phần mềm 1.2 Tầm quan trọng phần mềm (2) Sự phụ thuộc kinh tế vào phần mềm Thu, chi từ phần mềm chiếm tỷ trọng đáng kể GDP nước phát triển Ấn Độ: 2006: xuất gần 30 tỷ $ phần mềm 2009: 50 tỷ S Dự kiến năm 2020: 225 tỷ $ Trung Quốc: Năm 2011: 30,4 tỷ Thế giới có >7 triệu kỹ sư CNTT tạo 600 tỷ $/ năm Chi phí cho phần mềm năm 2000 lên tới 770 tỷ $ Phần mềm sai hỏng kinh tế tổn thất Vệ tinh Ariane nổ tung sau vài giây phóng lên lỗi phần mềm ngày 4/6/1996, thiệt hại 500 triệu $ Máy trị xạ Therac – 25 Canada Pháp chế tạo, năm 1985 -1987 KTV thao tác lỗi, máy “hào phóng” cho liều BN người chết Công nghệ phần mềm 1.2 Tầm quan trọng phần mềm (3) Phần mềm làm thay đổi phong cách hiệu làm việc tạo khác biệt cá nhân, tổ Phong cách công nghiệp Tăng suất, chất lượng Công nghệ phần mềm 1.2 Tầm quan trọng phần mềm (4) Phần mềm ứng dụng lĩnh vực kinh tế, văn hoá, khoa học, giáo dục, giải trí, giao tiếp… mang lại hiệu suất chất lượng cao Các ứng dụng phần mềm phát triển nhanh lĩnh vực xã hội Hàng không: PM điều khiển không lưu Ngân hàng: PM giao dịch, liên ngân hàng Giáo dục: PM chấm thi trắc nghiệm, PM quản lý đào tạo Công nghệ phần mềm 10 1.6 Thực trạng thách thức PTPM Thực trạng Khủng hoảng phần mềm & số yếu tố ảnh hưởng đến khủng hoảng Những khó khăn phát triển PM Công nghệ phần mềm 31 1.6 Thực trạng thách thức PTPM (1) Thực trạng (1) Việc phát triển ứng dụng > 5000 function points (~500,000 LOC) nhiệm vụ rủi ro giới đại (Capers Jones) Những rủi ro dẫn đến hủi đình trệ tăng nhanh với việc tăng kích thước ứng dụng (Capers Jones): 65% HT lớn (>1,000,000 LOC) bị hủitrước hoàn thành 50% HT ướclượng sai kích thước > 1/2 million LOC 25 % dự án > 100,000 LOC Tỷ lệ thất bại dự án lớn >20% (Capers Jones) Sau khảo sát 8,000 dự án IT, Standish Group cho biết khoảng 30% bị hủi trước hoàn thành Trung bình dự án Mỹ bị hủi sau năm tiến hành tiêu tốn 200% kinh phí dự kiến (Capers Jones) Các dự án bị hủi chiếm khoảng 15% tổng kinh phí PM củaMỹ (14 triệu $ năm 1993) (Capers Jones) Công nghệ phần mềm 32 1.6 Thực trạng thách thức PTPM (2) Thực trạng (2) NATO Software Engineering Conference, Germany, 1968 Thống kê phủ Mỹ dự án SW Bộ quốc phòng, 1970 Dự án phần mềm US defence Project value $M 3.5 2.5 1.5 0.5 Paid for but Delivered but Abandoned Used after not received not used or reworked change Used as delivered Projects Công nghệ phần mềm 33 1.6 Thực trạng thách thức PTPM (3) Thực trạng (3) Thống kê Standish Group (2006) Có tới 50% số dự án phần mềm thất bại Chỉ có 16.2% dự án hồn thành hạnvànằmtrong giớihạn ngân sách, đáp ứng tất tính đặc tính cam kết ban đầu Có 52.7% dự án hoàn thành vào hoạt động khơng hồn thành hạn bội chi, thêm khơng đáp ứng đầy đủ tính đặc tính thiết kế ban đầu Và có 31.1% dự án thất bại trước hoàn thành -> 83.8% dự án thất bại không đáp ứngnhững yêu cầu ban đầu 2/3 dự án hồn thành vượt q thời gian kinh phí dự kiến (Capers Jones) [bad estimates?] 2/3 dự án hồn thành có độ tin cậy chất lượng thấp năm đầu triển khai (Jones) Tỷ lệ xảy lỗi PM từ 0.5 đến 3.0 /1000 LOC (Bell Labs survey) Civilian software: tối thiểu 100 từ tiếng Anh sinh cho câu lệnh Military: ~ 400 từ (Capers Jones) Công nghệ phần mềm 34 1.6 Thực trạng thách thức PTPM (4) Khủng hoảng phần mềm 10/1968 Hội nghị NATO chuyên gia phần mềm đưa thuật ngữ “Khủng hoảng phầnmềm” (Software crisis) Qua hàng chụcnăm, thuật ngữ dùng ngày mang tính cấp bách Khủng hoảng ? [Webster’s Dict.] Điểm ngoặt tiến trình gì; thời điểm, giai đoạn biến cố định hay chủ chốt Điểm ngoặt trình diễn biến bệnh trở nên rõ ràng bệnh nhân sống hay chết Công nghệ phần mềm 35 1.6 Thực trạng thách thức PTPM (5) Một số yếu tố ảnh hưởng đến khủng hoảng PM lớn kéo theo phức tạp hóa tăng chi phí phát triển Đổi vai trò giá thành phần mềm phần cứng Cơng sức cho bảo trì tăng chi phí cho Backlog lớn Nhân lực chưa đáp ứng nhu cầu phần mềm Những phiền hà phần mềm gây vấn đề xã hội …(?) Công nghệ phần mềm 36 1.6 Thực trạng thách thức PTPM (6) Những khó khăn phát triển PM (1) Khơng có phương pháp mô tả rõ ràng định nghĩa yêu cầu người dùng, sau bàn giao sản phẩm dễ phát sinh trục trặc Với PM quy mô lớn, tư liệu đặc tả cố định thời gian dài khó đáp ứng nhu cầu thay đổi người dùng cách kịp thời thời gian Nếu khơng có phương pháp luận thiết kế quán mà thiết kế theo cách riêng suy giảm chất lượng PM Nếu khơng có chuẩn làm tư liệu quy trình sản xuất PM, đặc tả khơng rõ ràng làm giảm chất lượng PM Nếu không kiểm thử tính đắn PM giai đoạn mà kiểm giai đoạn cuối phát lỗi, thường bàn giao sản phẩm khơng hạn Nếu coi trọng việc lập trình khâu thiết kế thường dẫn đến làm giảm chất lượng PM Cơng nghệ phần mềm 37 1.6 Thực trạng thách thức PTPM (7) Những khó khăn phát triển PM (2) Nếu coi thường việc tái sử dụng PM, suất lao động giảm Phần lớn quy trình phát triển PM có nhiều thao tác người thực suất lao động thường bị giảm Khơng chứng minh tính đắn PM độ tin cậy PM giảm Chuẩn PM tốt đo cách định lượng đánh giá hệ thống đắn hay không Khi đầu tư nhân lực lớn vào bảo trì làm giảm hiệu suất lao động nhân viên Cơng việc bảo trì kéo dài làm giảm chất lượng tư liệuvà ảnh hưởng xấu đến việc khác Quản lý dự án lỏng lẻo quản lý lịch trình khơng rõ ràng Khơng có tiêu chuẩn để ước lượng nhân lực dự toán kéo dài thời hạn vượt kinh phí dự án Công nghệ phần mềm 38 1.6 Thực trạng thách thức PTPM (8) Tại sao? Phần mềm vốn phức tạp Yêu cầu tăng số lượng, quy mô,… Phần cứng phát triển nhanh: hạ tầng, môi trường,… Thế giới thay đổi nhanh Ham muốn, nhu cầu người dùng ngày tăng,… Công nghệ phần mềm 39 1.7 Tổng quan công nghệ phần mềm Khái niệm Lịch sử phát triển Công nghệ phần mềm 40 1.7 Tổng quan công nghệ phần mềm (1) Khái niệm Bauer [1969]: SE việc thiết lập sử dụng nguyên lý công nghệ đắn để thu phần mềm cách kinh tế vừa tin cậy vừa làm việc hiệu máy thực Parnas [1987]: SE việc xây dựng phần mềm nhiều phiên nhiều người Sommerville [1995]: SE nguyên lý kỹ nghệ liên quan đến tất mặt (lý thuyết,phương pháp công cụ) sản phần mềm IEEE [1993]: việc áp dụng phương pháp tiếp cận có hệ thống, lượng hóa phát triển, vận hành bảo trì phần mềm; nghiên cứu phương pháp tiếp cận dùng (1) Pressman [1995]: SE mơn tích hợp qui trình, phương pháp, cơng cụ để phát triển phần mềm máy tính Cơng nghệ phần mềm 41 1.7 Tổng quan công nghệ phần mềm (2) Khái niệm Là trình kỹ nghệ gồm ba mặt: Thủ tục (procedures) Phương pháp (methods) Công cụ (tools) Nhằm tạo phần mềm hiệu quả,với giới hạn cho trước Công nghệ phần mềm 42 1.7 Tổng quan công nghệ phần mềm (3) Lịch sử phát triển (1): Đề xướng, hình thành (70s) Các phương pháp lập trình cấu trúc liệu Khái niệm tính mơđun Khái niệm thiết kế,lập trình top-down, chi tiết hóa bước(N With) Lập trình có cấu trúc (Dijkstra) Phương pháp luận qui trình thiết kế;phương pháp phân chia mơ đun Trừu tượng hóa liệu (Liskov) Công nghệ phần mềm 43 1.7 Tổng quan công nghệ phần mềm (4) Lịch sử phát triển (2): Tăng trưởng (nửa đầu 80s) Xuất phương pháp phát triển hệ thống Các công cụ phát triển cơng nghệ CSDL (mơ hình quan hệ) phân tích, thiết kế hướng cấu trúc cơng cụ trợ giúp phân tích thiết kế khởi tạo chương trình (biên dịch) Các ngôn ngữ bậc cao (FoxPro, SQL ) Bắt đầu quan tâm đến quản lý làm phần mềm Các độ đo phần mềm Quản lý theo thống kê Công nghệ phần mềm 44 1.7 Tổng quan công nghệ phần mềm (5) Lịch sử phát triển (3): Phát triển (từ 80s Hoàn thiện công nghệ cấu trúc, đời công nghệ đối tượng Nhiều mơ hình hướng cấu trúc chuẩn hóa CASE hồn thiện, đạt mức tự động hóa cao Cơng nghệ hướng đối tượng bắt đầu phát triển: ) Quy trình RUP Ngơn ngữ mơ hình hóa thống nhất(UML) Các cơng cụ phần mềm đầy đủ (ROSE, JIBULDER, ) Sử dụng lại chiếm vị trí quan trọng phát triển Phát triển mơ hình quản lý Chuẩn quản lý cơng nhận (CMM, ISO9000-03) Nhiều mơ hình tổ chức làm phần mềm đề xuất Nhiều công cụ trợ giúp quản lý dự án hồn thiện Cơng nghệ phần mềm 45 ... phần mềm 1. 2 Tầm quan trọng phần mềm Công nghệ phần mềm 1. 2 Tầm quan trọng phần mềm (1) Phần mềm - Linh hồn hệ thống máy tính Có vai trò tảng hoạt động xã hội Công nghệ phần mềm 1. 2 Tầm quan. .. phần mềm 1. 7 Tổng quan công nghệ phần mềm Công nghệ phần mềm 1. 1 Một số khái niệm Phần mềm máy tính (Computer Software) Hệ thống phần mềm (Software System) Công nghệ phần mềm 1. 1 Một...Nội dung 1. 1 Một số khái niệm 1. 2 Tầm quan trọng phần mềm 1. 3 Đặc trưng & chất lượng sản phầm phần mềm 1. 4 Phân loại phần mềm 1. 5 Sự tiến hóa phần mềm 1. 6 Thực trạng thách