1. Trang chủ
  2. » Công Nghệ Thông Tin

TỔNG QUAN về CÔNG NGHỆ PHẦN mềm

45 349 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 45
Dung lượng 241 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung Tầm quan trọng của phần mềm  Khó khăn, thách thức phát triển phần mềm  Các khái niệm cơ bản  Vai trò của các vị trí trong dự án phần mềm... VAI TRÒ PHẦN MỀM Các ứng dụng ph

Trang 1

TỔNG QUAN VỀ CÔNG NGHỆ

PHẦN MỀM

Trang 2

Nội dung

 Tầm quan trọng của phần mềm

 Khó khăn, thách thức phát triển phần mềm

 Các khái niệm cơ bản

 Vai trò của các vị trí trong dự án phần mềm

Trang 3

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, NXB ĐHQGHN, 2008

 Slide bài giảng, Bộ môn CNPM – ĐH Công nghệ

Trang 4

KHÁI NIỆM CHUNG

 Phần mềm luôn gắn với một hệ thống cụ thể

 Hệ thống: là tập hợp các phần tử có tương tác lẫn nhau để đạt được mục đích chung

Trang 5

VAI TRÒ PHẦN MỀM

 Các ứng dụng phần mềm phát triển nhanh trên mọi lĩnh vực của xã hội.

 Ngày càng nhiều hệ thống được phần mềm điều khiển, trợ giúp:

 Tính tự động của hệ thống ngày một cao

 Chi phí phần mềm >> phần cứng trong HT

( Xu hướng: năng lực phần cứng tăng mạnh – Định luật

Moore )

Trang 6

VAI TRÒ PHẦN MỀM (2)

 Phần mềm tạo nên sự khác biệt của tổ chức

 Thay đổi phong cách làm việc

 Quyết định năng suất của tổ chức

 Nền kinh tế tất cả các nước đều phụ thuộc vào phần mềm

 Phần mềm sai hỏng, kinh tế tổn thất

 Chi phí cho phần mềm chiếm tỷ trọng đáng kể trong tổng thu nhập quốc dân ở các nước phát triển

Trang 7

PHÂN LOẠI PHẦN MỀM

 Có thể phân loại theo một số cách

 Theo mức độ hoàn thiện

 Theo vai trò chức năng mà phần mềm thực hiện

 Theo lĩnh vực được ứng dụng

Trang 8

PHÂN LOẠI THEO MỨC HOÀN THIỆN

Trang 9

PHÂN LOẠI THEO VAI TRÒ – CHỨC NĂNG

Trang 10

PHÂN LOẠI PHẦN MỀM THEO LĨNH VỰC ỨNG 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.

Trang 11

 Đặc trưng bởi thuật toán (tính toán vật lý, mô phỏng)

 Đòi hỏi năng lực tính toán cao.

 Chỉ đọc 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 PHẦN MỀM THEO LĨNH VỰC ỨNG DỤNG

Trang 12

 Phần mềm máy tính cá nhân

 Các bài toán nghiệp vụ nhỏ (ứng dụng văn phòng)

 Giao diện đồ họa phát triển

 Có nhu cầu rất cao

 Phần mềm trí tuệ nhân tạo

 Dùng các thuật toán phi số

 Hệ chuyên gia, nhận dạng, trò chơi,

 Phần mềm công cụ cho kỹ nghệ phần mềm

 compiler, các công cụ CASE,

PHÂN LOẠI PHẦN MỀM THEO LĨNH VỰC ỨNG DỤNG

Trang 13

PHÂN LOẠI PHẦN MỀM

 Sản phẩm đặt hàng

 Sản xuất theo đơn đặt hàng (Vd: HTTT quản lý )

 Đơn chiếc, yêu cầu đặc thù

 Sản phẩm chung

 Bán rộng rãi

 Thỏa mãn yêu cầu chung của số lớn user

Mỗi loại có cách thức tiếp cận riêng, nhất là ở các bước

phân tích xác định yêu cầu, bảo trì.

Trên quan điểm người phát triển có 2 loại:

Trang 15

THỰC TRẠNG PHÁT TRIỂN PM (2)

 1978: vệ tinh phóng lên sao Kim bị hỏng

do lỗi phần mềm

 Lỗi của câu lệnh FOR (Fortran)

 1996: vệ tinh Ariane 5 hỏng do lỗi phần

mềm gây thiệt hại 500M$

 Lỗi phép toán số thực (Ada)

Tổn thất do lỗi phần mềm là lớn

Trang 16

 45% : được phân phối, không được sử dụng

 17% : bị hủy bỏ

 6% : được sử dụng sau khi đã sửa đổi

 5% : được sử dụng ngay sau khi phân phối

Sản phẩm phần mềm không đạt mục tiêu

THỰC TRẠNG PHÁT TRIỂN PM (3)

Trang 17

Sự tiến hóa phần mềm là tất yếu

TIẾN HÓA CỦA PHẦN MỀM

Trang 18

TIẾN HÓA CỦA PHẦN MỀM (2)

 Phần cứng thay đổi liên tục, chuyên dụng

 Xử lý theo lô

 Môi trường lập trình có tính cá nhân

 Sản xuất đơn chiếc

Giai đoạn thứ nhất: (~1960)

Ngôn ngữ: mã máy, đặc thù cho từng máy

Lập trình: là một nghệ thuật theo bản năng,

chưa có phương pháp

Trang 19

 Đa nhiệm, đa người sử dụng

 Hệ thống thời gian thực

 Xuất hiện lưu trữ trực tuyến

Giai đoạn 2: (~giữa thập kỷ 70)

Ngôn ngữ: có cấu trúc: PL1, Algo60, Fortran, COBOL Lập trình: có phương pháp lập trình

Trang 20

 Hệ thống phân tán

 Mạng cục bộ, toàn cầu

 Bộ vi xử lý phát triển mạnh

Giai đoạn 3: (~đến nay)

Ngôn ngữ: Ngôn ngữ bậc cao, hướng đối tượng

Phát triển HT: có phương pháp, công cụ tự động

 Phần mềm ngày càng phức tạp

 Máy tính cá nhân, phần mềm nhúng

 Số người dùng tăng nhanh

TIẾN HÓA CỦA PHẦN MỀM (4)

Trang 21

 UNIX: 4M dòng lệnh

 Window2K: ~100M dòng lệnh

 Lý do:

 Năng lực máy tính ngày càng mạnh

 Các hệ thống máy tính được liên kết lại

 Ham muốn của người dùng ngày càng lớn

Phần mềm ngày càng phức tạp

TIẾN HÓA CỦA PHẦN MỀM (5)

Trang 22

Chi phí cho phần mềm cao

TIẾN HÓA CỦA PHẦN MỀM (6)

Trang 23

THÁCH THỨC CỦA PHẦN MỀM

 Khả năng xây dựng phần mềm không đáp ứng kịp nhu cầu tăng nhanh (có internet, mọi lĩnh vực xã hội)

 Quy mô, độ phức tạp ngày càng tăng khiến chi phí phát triển bảo trì ngày càng tốn kém

 Sự tinh vi của phần cứng vượt xa khả năng tạo ra phần mềm để khai thác nó.

Cần có những phương pháp, công cụ hiện đại

để phát triển phần mềm.

Trang 24

KHÓ KHĂN PHÁT TRIỂN PHẦN MỀM

Phần mềm là sản phẩm đặc biệt

 Đặc trưng của phần mềm

 Tiêu chí của phần mềm tốt

Trang 25

KHÓ KHĂN PHÁT TRIỂN PHẦN MỀM (2)

“Khó sản xuất được phần mềm có chất lượng

theo đúng lịch trình kinh phí cho trước”

Phần mềm là phần tử logic: không kiểm soát được theo phương pháp thông thường

 trong sản xuất (rủi ro, tính thủ công)

 trong bảo trì (lớn, phức tạp, thay đổi nhanh)

 trong kiểm soát chất lượng ( làm thủ công,

nhiều người,

Trang 26

 Tài liệu đi kèm chương trình

 Tài liệu về thông tin cài đặt

 Tài liệu hướng dẫn sử dụng

 Tài liệu kỹ thuật: tài liệu đặc tả, phân tích, thiết kế, kiểm thử

Trang 27

ĐẶC TRƯNG PHẦN MỀM

Phát triển phần mềm khác chế tạo phần

cứng”

 Sản xuất mang tính thủ công.

 Khó kiểm soát chất lượng ở khâu trung gian.

 Khó dự đoán trước về hiệu năng.

 Áp dụng các phương pháp tiên tiến

 Công cụ tự đông

Trang 28

ĐẶC TRƯNG PHẦN MỀM (2)

 Phần mềm thoái hóa theo thời gian

 Môi trường sử dụng, nhu cầu thay đổi

 Lỗi sinh ra do nâng cấp

 Phần mềm không được lắp ráp theo mẫu

 Không có danh mục phụ tùng

 Được đặt hàng hoàn chỉnh theo từng yêu cầu riêng

“Bảo trì phần mềm phức tạp hơn hẳn so với

bảo trì phần cứng”

Trang 30

ĐẶC TRƯNG PHẦN MỀM (3)

Thời gian Mức lỗi

Đường cong lỗi lý tưởng của phần mềm

Trang 32

ĐẶC TRƯNG PHẦN MỀM (5)

 Phần mềm được phát triển theo nhóm

 Năng lực của nhóm không tuyến tính với số thành viên

 Người giỏi > 5 lần người trung bình

 Thời gian cho trao đổi thông tin chiếm tỷ lệ cao

 Khó kiểm soát

 Khó tăng tốc độ bằng cách thêm người

Trang 33

ĐẶC TRƯNG PHẦN MỀM (6)

Phần mềm không đơn giản chỉ là chương trình

 Chương trình

 1 người viết, 1 người dùng

 dùng với mục đích thu thập xử lý số liệu (dùng 1 lần)

 không cần tài liệu, không kiểm thử triệt để

Trang 35

TIÊU CHÍ PHẦN MỀM TỐT (2)

“Phần mềm luôn luôn cần được sửa đổi”

Để sửa đổi được phần mềm

 Thiết kế dễ hiểu, dễ sửa đổi (thiết kế tốt)

 Cài đặt bằng ngôn ngữ bậc cao

 Có đầy đủ tài liệu

 Có tuổi thọ cao

Tính bảo trì được

Trang 36

Phần mềm phải đáng tin cậy

Đáp ứng được nhu cầu người sử dụng

Tính tin cậy

Trang 38

 Giao diện nhất quán, phù hợp với trình độ của người dùng.

 Có tài liệu, tiện ích trợ giúp

Quyết định thành công của sản phẩm

Tính dễ dùng

TIÊU CHÍ PHẦN MỀM TỐT (5)

Trang 39

 Khó tối ưu đồng thời các thuộc tính

hiệu quả >< dễ bảo trì, dễ sử dụng

 Chi phí cho tối ưu là không tuyến tính

Giá cả phải hợp lý hiệu năng

Trang 40

 Nghiên cứu yêu cầu của khách hàng, chi tiết yêu cầu về phần mềm và cách đánh giá

 Lập kế hoạch kiểm thử (test plan) dựa trên các rủi

ro, mức độ quan trọng, tần suất sử dụng vàxác định các yếu tổ liên quan như: phương pháp, đo lường, nguồn lực, điều kiện kiểm tra…

 Tạo test cases/specs/scripts

 Tiến hành test dựa trên test case và ghi báo cáo (Thành công hoặc Lỗi)

 Log các lỗi tìm được vàlập báo cáo (test report)

 Phân tích các yêu cầu thay đổi và cập nhật các tài liệu kiểm thử (Test plan, test cases…)

Trang 41

QA (Quality Assurance – Đảm bảo chất

lượng phần mềm)

 Các nhân viên QA sẽ kiểm tra chất lượng công việc trong cả quá trình sản xuất, vídụ xem xét tài liệu yêu cầu, tài liệu thiết kế hay xem xét mã nguồn Họ cũng xem xét các ý kiến phản hồi của khách hàng vàcách đội dự án xử lý vấn đề

 QA thu thập thông tin của các dự án, các chỉ báo chất lượng của dự án, từ đóvẽ nên bức tranh chung

về tình hình chất lượng sản xuất của cả công ty

 Công việc của QA vừa mang tính chất giám sát, vừa mang tính hỗ trợ cho hoạt động của dự án

Trang 42

Quản lý dự án (Project Manager)

 Thỏa mãn các mục tiêu phạm vi, thời gian, chi phí

 97% sự thành công của dự án lànhờ vào PM

Trang 43

TỔNG KẾT

 Phần mềm có tầm quan trọng đặc biệt: tạo nên sự khác biệt của tổ chức, của hệ thống

 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 có độ đo trực quan, khó kiểm soát chất lượng khi phát triển

 Không được định hình trước, khó dự đoán hiệu năng khi chưa có sản phẩm

 mang tính thủ công, phụ thuộc vào con người

 bị ả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

Trang 44

CÂU HỎI ÔN TẬP

1. Nêu tầm quan trọng của phần mềm ?

(mức độ: quốc gia, tổ chức, hệ thống, ứng dụng)

Trang 45

CÂU HỎI ÔN TẬP (2)

5. Các đặc trưng của phần mềm?

6. Các thuộc tính của phần mềm kỹ nghệ tốt?

7. Khó khăn phát triển phần mềm thể hiện ở

những mặt nào (bản chất, sự thay đổi: quy

mô, môi trường)

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)

Ngày đăng: 05/12/2015, 00:57

w