Bài giảng Kỹ nghệ phần mềm - Nguyễn Văn Vỵ - Bài 1: Khái niệm về phần mềm
Tạo sinh các thành phần
?Các thành phần vận hành đ-ợc
Mã nguồn, mã máy, cấu trúc dữ liệu: tự động hóa đ-ợc
?Các thành phần không vận hành
Các phần còn lại: hầu nh-ch-a đ-ợc tự động hóa
? Nhu cầu vàkhả năng tự động hóa
Làm thủ công làtất yếu
Mong muốn tự động hóa càng nhiều càng tốt
Tự động hóa khi có thể hình thức hóa
Làm tàI liệu làcực nhọc, nh-ng khó tự động
, không phảI hệ thống tổng thể Use case Tr−ờng hợp sử dụng − ? Bộ mụn Cụng nghệ phần mềm – ĐHCN 14 Nguyễn Văn Vỵ Đặc tr−ng của phần mềm Thay đổi lμ bản chất Lμ mô hình thế giới thực thay đổi theo thời gian Môi tr−ờng nghiệp vụ thay đổi Nhu cầu con ng−ời thay đổi ắ Thay đổi để đáp ứng ng−ời dùng Thay đổi thích ứng với môi tr−ờng vận hμnh − Các hệ phần mềm nền (hệ điều hμnh,..) − Thiết bị phần cứng (chip,..) Bộ mụn Cụng nghệ phần mềm – ĐHCN 15 Nguyễn Văn Vỵ ■ Cần phát triển theo nhóm Quy mô cμng lớn & yêu cầu kỹ năng khác nhau Nhu cầu bμn giao nhanh Năng suất nhóm không tỷ lệ với số thμnh viên (1 ng−ời giỏi > 5 lần ng−ời trung bình) Vấn đề Trao đổi thông tin lớn (10000 email/ngμy) Khó kiểm soát vμ đồng bộ Khó tăng tốc độ = cách thêm ng−ời Cá nhân ảnh h−ởng lớn lên kết quả nhóm Đặc tr−ng của phần mềm Bộ mụn Cụng nghệ phần mềm – ĐHCN 16 Nguyễn Văn Vỵ Phân loại phần mềm Ba cách phân loại: 1. Theo mức độ hoμn thiện 2. Theo chức năng thực hiện 3. Theo lĩnh vực ứng dụng - 1 2 3 SOFT- WARE Bộ mụn Cụng nghệ phần mềm – ĐHCN 17 Nguyễn Văn Vỵ Ch−ơng trình 1 ng−ời viết, 1 ng−ời dùng (ng−ời viết ≡ ng−ời dùng) mục đích thu thập, xử lý số liệu (dùng 1 lần) không tμi liệu, không kiểm thử triệt để Sản phẩm phần mềm nhiều ng−ời viết, nhiều ng−ời dùng độ phức tạp cao, đồng bộ, an toμn, an ninh Kinh nghiệm viết ch−ơng trình nhỏ không áp dụng cho sản phẩm lớn Phân loại theo mức hoμn thiện Bộ mụn Cụng nghệ phần mềm – ĐHCN 18 Nguyễn Văn Vỵ Tớnh phức tạp tặng nhanh (9 lần) từ : chương trỡnh -> sản phẩm-> hệ thống Phân loại theo mức hoμn thiện Ch−ơng trình Sản phẩm hệ thống x3 x3 x3x3 Ch−ơng trình hệ thống Sản phẩm Yêu tố ng−ời dùng Yêu tố ng−ời dùng Yêu tố môI tr−ờng cμI đặt Bộ mụn Cụng nghệ phần mềm – ĐHCN 19 Nguyễn Văn Vỵ Phân loại theo chức năng 1. Phần mềm hệ thống 2. Phần mềm nghiệp vụ Điều hμnh hoạt động máy tính, thiết bị & ch−ơng trình (OS) Trợ giúp các tiện ích (tổ chức tệp, nén, dọn đĩa..) Trợ giúp các hoạt động nghiệp vụ khác nhau. Có số l−ợng lớn, đa dạng Phân lμm hai loại theo cách lμm: - Bộ mụn Cụng nghệ phần mềm – ĐHCN 20 Nguyễn Văn Vỵ Phân loại theo chức năng y Sản phẩm đặt hμng – Sản xuất theo đơn đặt hμng (HTTT quản lý...) – đơn chiếc, yêu cầu đặc thù (nhận dạng) y Sản phẩm chung (software pakages) – bán rộng rãi (office) – thỏa mãn yêu cầu chung số lớn người dùng Mỗi loại có cách thức tiếp cận riêng, nhất lμ ở 1 số các b−ớc ặ chi phí, thời gian khác nhau Comercial softwware Comercial softwware Bộ mụn Cụng nghệ phần mềm – ĐHCN 21 Nguyễn Văn Vỵ Phân loại theo chức năng 3. Phần mềm công cụ (Tools, CASE) Trợ giúp cho quá trình phát triển phần mềm Các ngôn ngữ lập trình (soạn thảo, dịch, gỡ rối,..) Công cụ trợ giúp 1 , nhiều giai đoạn phát triển (phân tích, thiế kế, quản lý dự án, kiểm thử,..) Developer2000, Powerdesigner, WINER, Mcrosoft Project Management, - Bộ mụn Cụng nghệ phần mềm – ĐHCN 22 Nguyễn Văn Vỵ Phân loại theo lĩnh vực ứng dụng 1. Phần mềm hệ thống 2. Phần mềm thời gian thực Phục vụ cho các ch−ơng trình khác T−ơng tác trực tiếp với phần cứng Phục vụ nhiều ng−ời dùng Thu thập, xử lí các dữ kiện thế giới thực Đáp ứng yêu cầu chặt chẽ về thời gian - thu thập dữ liệu phân tích dữ liệu kiểm soát, điều khiển điều phối Bộ mụn Cụng nghệ phần mềm – ĐHCN 23 Nguyễn Văn Vỵ 3. Phần mềm nghiệp vụ (business software) • Xử lí thông tin nghiệp vụ, gắn với CSDL Xử lý các giao tác (mạng bán hμng...) Lĩnh vực ứng dụng rất lớn (hệ điều khiển vũ trụ) 4. Phần mềm khoa học kỹ thuật (scientific softwares) • Dùng huật toán phức tạp (vật lí, mô phỏng) Năng lực tính toán cao Phân loại theo lĩnh vực ứng dụng Bộ mụn Cụng nghệ phần mềm – ĐHCN 24 Nguyễn Văn Vỵ 5. Phần mềm nhúng (embeded software) • Chỉ đọc ra khi thiết bị khởi động, Thực hiện chức năng hạn chế (điều khiển sản phẩm) Lμ sự kết hợp giữa hệ thống vμ thời gian thực Phân loại theo lĩnh vực ứng dụng 6. Phần mềm máy tính cá nhân • Các bμi toán nghiệp vụ nhỏ, học tập, giảI trí Giao diện đồ họa phát triển Có nhu cầu rất cao Bộ mụn Cụng nghệ phần mềm – ĐHCN 25 Nguyễn Văn Vỵ 7. Phần mềm trí tuệ nhân tạo (Intelligent Softwares) • Dùng các thuật toán phi số (logic): suy luận, tìm kiếm Hệ chuyên gia, nhận dạng, trò chơi... 8. Phần mềm dựa trên nền web (Web-based Softwares) Cung cấp dịch vụ khai thác thông tin trên web. Ch−ơng trình khai thác lμ chung (browser) Phân loại theo lĩnh vực ứng dụng Bộ mụn Cụng nghệ phần mềm – ĐHCN 26 Nguyễn Văn Vỵ Tiến hóa và thách thức Phần mềm tiến hóa cùng tiến bộ của phần cứng: Về quy mô, sự phức tạp vμ tốc độ Về chức năng vμ mức hoμn thiện Công nghệ không ngừng phát triển, nhu cầu tăng ắ Khó khăn, thách thức ngμy cμng nhiều Bộ mụn Cụng nghệ phần mềm – ĐHCN 27 Nguyễn Văn Vỵ Tiến hóa phần mềm Ch−ơng trinh nhỏ, tính toán chuyên dụng Xử lí số, theo lô Ngôn ngữ: mã máy, hợp ngữ, đặc thù cho từng máy Tiêu chí đánh giá: Tính nhanh Giải đ−ợc bμi toán lớn (dùng bộ nhớ hiệu quả) Công nghệ: bóng điện tử (tính chậm, bộ nhớ nhỏ) a1. Giai đoạn 1: 1950ặ 1960 Bộ mụn Cụng nghệ phần mềm – ĐHCN 28 Nguyễn Văn Vỵ Giai đoạn 2: ặ giữa thập kỷ 70 Lμ sản phẩm: Đa nhiệm, đa ng−ời sử dụng Xử lý số, ký tự, theo lô & thời gian thực Xuất hiện l−u trữ trực tuyến (CSDL) Ngôn ngữ: có cấu trúc: PL1, Algol 60, Fortran, COBOL Tiêu chí đánh giá: ắ Tính nhanh ắ Giải đ−ợc bμi toán lớn ắ Nhiều ng−ời dùng Công nghệ: bán dẫn (tính nhanh hơn, bộ nhớ khá), CSDL Yêu cầu bảo trì (sửa lỗi, thích nghi) Bộ mụn Cụng nghệ phần mềm – ĐHCN 29 Nguyễn Văn Vỵ Giai đoạn 3: ặ1990 Phần mềm cá nhân + mạng, hệ lớn, chia sẻ đ−ợc Ra đời phần mềm nhúng Xử lý số, ký tự, âm thanh, hình ảnh; theo lô, thời gian thực, phân tán, song song Truy nhập dữ liệu phát triển, cả từ xa Ngôn ngữ: bậc cao, h−ớng đối t−ợng, lôgic Tiêu chí: • Tiện dụng • Tin cậy • Dễ bảo trì Công nghệ: mạch tích hợp lớn, vi mạch, các cấu hình mang, internet, CSDL quan hệ Bộ mụn Cụng nghệ phần mềm – ĐHCN 30 Nguyễn Văn Vỵ Giai đoạn 4: từ 1990 đến nay Phần mềm lớn, tinh vi, tin cậy, h−ớng ng−ời dùng Hệ chuyên gia, trí tuệ nhân tạo, phần mềm nhúng, webservice sử dụng rộng rãi, internet mở rộng CSDL h−ớng đối t−ợng, kho dữ liệu phát triển Ngôn ngữ: h−ớng đối t−ợng, thế hệ thứ 4, visual Tiêu chí đánh giá: • Tiện dụng, tinh vi • Tin cậy • Dễ bảo trì Công nghệ: vi mạch siêu tích hợp, internet, mạng không dây tốc độ cao, h−ớng đối t−ơng, web Bộ mụn Cụng nghệ phần mềm – ĐHCN 31 Nguyễn Văn Vỵ Tiêu chí phần mềm tốt hiện nay Phần mềm tốt có thể nhìn nhận từ hai phía: Ng−ời dùng: • Đủ chức năng nghiệp vụ • Dễ sử dụng, tinh vi (tính thông minh) • Tin cậy, an toμn Nhμ phát triển • Dễ bảo trì Bộ mụn Cụng nghệ phần mềm – ĐHCN 32 Nguyễn Văn Vỵ Khó khăn vμ thách thức b1. Thực trạng sản phẩm, phát triển 16%: DA đỳng lịch, trong ngõn sỏch, sản phẩm chất lượng 31%: DA bị ngừng 53% DA vượt ngõn sỏch, quỏ hạn, ít tớnh năng. 995, Mỹ chi 81 tỷ$ cho dự ỏn bị hủy, 59 tỷ$ thờm cho dự ỏn sai kế hoạch. [ Theo: Standish Group. The CHAOS Report, 1995 research/chaos Bộ mụn Cụng nghệ phần mềm – ĐHCN 33 Nguyễn Văn Vỵ Công nghiệp phần mềm trở thμnh ngμnh khổng lồ Phí phát triển OS 360 (1963~1966) : 200 triệu$ Chi cho phần mềm (2000) : 770 tỉ$ (tăng 12%/năm) Năng suất lập trình vẫn thấp phát triển mang tính thủ công, giá thμnh cao vấn đề chất l−ợng trở thμnh trọng tâm Thực trạng sản phẩm, phát triển Bộ mụn Cụng nghệ phần mềm – ĐHCN 34 Nguyễn Văn Vỵ Phần mềm bản chất lμ phức tạp Yêu cầu tăng về số l−ợng, quy mô, sự tiện ích ắ Nhu cầu phần mềm tăng gần 20% năm ắ Windows 2K : 100 M dòng lệnh Sự tiến bộ nhanh phần mềm vμ phần cứng: hạ tầng, môi tr−ờng thay đổi: ắ Window98, 2000, 2003,.. ắ Năng lực máy tăng gấp 2 sau 18 tháng (More) Bản chất của vấn đề Bộ mụn Cụng nghệ phần mềm – ĐHCN 35 Nguyễn Văn Vỵ Lý do chính Lý do Năng lực máy tính ngμy cμng mạnh Các hệ thống đ−ợc liên kết lại ngμy cμng lớn Thế giới thau đổi nhanh (cả nghiệp vụ, công nghệ) Ham muốn ng−ời dùng ngμy cμng nhiều ặ Yêu cầu tiến hóa phần mềm là tất yếu Bộ mụn Cụng nghệ phần mềm – ĐHCN 36 Nguyễn Văn Vỵ Thách thức đối với phần mềm Phần mềm lμm ra <<< nhu cầu Khai thác fần mềm <<< tiềm năng phần cứng Bảo trì hệ cũ lạc hậu để sử dụng cực kỳ khó khăn Công nghệ: Cần có công nghệ, công cụ hiện đại để phát triển phần mềm Quản lý: cần có ph−ơng pháp thích hợp (CMM, CMMI, RMM) Bộ mụn Cụng nghệ phần mềm – ĐHCN 37 Nguyễn Văn Vỵ Tóm tắt Phần mềm gồm: ch−ơng trình, cấu trúc dữ liêu, tμi liệu Phân loại: theo mức hoμn thiện, chức năng vμ lĩnh vực ứmg dụng Phần mềm quan trọng: tạo nên sự khác biệt của tổ chức, có vai trò lớn trong các hệ thống, nền kinh tế vμ các lĩnh vực xã hội. Phần mềm tiến hóa không ngừng: quy mô, xử lý, tiện ích Phát triển phần mềm lμ công việc phức tạp, rủi ro lμ phần tử logic, không trực quan, khó kiểm soát chất l−ợng không định hình tr−ớc, khó dự đoán hiệu năng lμm còn thủ công, phụ thuộc vμo con ng−ời chịu ảnh h−ớng lớn từ môI tr−ờng -> nhiều rủi ro Cần áp dụng các ph−ơng pháp tiên tiến (công nghệ + quản lý) Bộ mụn Cụng nghệ phần mềm – ĐHCN 38 Nguyễn Văn Vỵ Câu hỏi ôn tập 1. Định nghĩa phần mềm? 2. Tầm quan trọng của phần mềm? (mức đô: hệ thống, cá nhân, tổ chức, quốc gia, ứng dụng)? 3. Các đặc tr−ng của phần mềm vμ giảI thích? 4. Các loại phần mềm? Giải thích nội dung mỗi loại? 5. Phân biệt ch−ơng trình sản phẩm? 6. Tiến hóa phần mềm t−ơng ứng với công nghệ, nhu cầu? 7. Khó khăn phát triển phần mềm(bản chất, sự thay đổi môi tr−ờng kỹ thuật, nghiệp vụ, xã hội)? 8. Thách thức đối với phát triển phần mềm? (nhu cầu, bảo trì, thời gian, giá cả, khả năng phần cứng) Bộ mụn Cụng nghệ phần mềm – ĐHCN 39 Nguyễn Văn Vỵ Câu hỏi và thảo luận
File đính kèm:
- Bài giảng Kỹ nghệ phần mềm - Nguyễn Văn Vỵ - Bài 1 Khái niệm về phần mềm.pdf