Tải bản đầy đủ (.pdf) (67 trang)

tổng quan về công nghệ phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (434.05 KB, 67 trang )

1
CHƯƠNG 1. TỔNG
QUAN VỀ CÔNG NGHỆ
PHẦN MỀM
Bộ môn Công nghệ thông tin
Trường ĐạihọcThương mại
2
Nội dung
1.1. Phần mềm
1.1.1. Khái niệm
1.1.2. Tiến hóa của phần mềm
1.1.3. Đặc trưng và phân loại phần mềm
1.1.4. Chất lượng phần mềm
1.1.5. Khủng hoảng phần mềm
1.1.6. Khó khăn trong phát triển phần mềm
1.2. Công nghệ phần mềm
1.2.1. Khái niệm
1.2.2. Đặc điểm công nghệ phần mềm
1.2.3. Một số nguyên tắc CNPM
1.2.4. Các hoạt động chính trong CNPM
3
1.1.1. Khái niệm phần mềm
¾ Khái niệm phần mềm
– Một phần mềm gồm 3 thành phần:
z Chương trình máy tính: mã nguồn, mã máy
z Cấu trúc dữ liệu: cấu trúc làm việc (bộ nhớ trong) và cấu
trúc lưu trữ (bộ nhớ ngoài)
z Các tài liệu liên quan: tài liệu hướng dẫn sử dụng (dành
cho người dùng), tài liệu phát triển (dành cho người
phát triển hệ thống), tài liệu tham khảo kỹ thuật (dành
cho người bảo trì)


– Phần mềm được coi là tất cả các kỹ thuật ứng
dụng để thực hiện những dịch vụ chức năng cho
mục đích nào đóbằng phần cứng, làm cho sử
dụng phần cứng máy tính đạt hiệu quả cao.
4
1.1.1. Khái niệm phần mềm
5
Nhóm kỹ thuật, phương pháp luận
¾ Các khái niệm và trình tự cụ thể hóa một hệ
thống
¾ Các phương pháp tiếp cận giải quyết vấn đề
¾ Các trình tự thiết kế và phát triển được
chuẩn hóa
¾ Các phương pháp đặc tả yêu cầu, thiết kế hệ
thống, thiết kế chương trình, kiểm thử, toàn
bộ quy trình quản lý phát triển phần mềm
6
Nhóm chương trình
¾ Là phần giao diện với phần cứng, tạo thành từ các
nhóm lệnh chỉ thị cho máy tính biết trình tự thao tác
xử lý dữ liệu
¾ Phần mềm cơ bản: với chức năng cung cấp môi
trường thao tác dễ dàng cho người sử dụng nhằm
tăng hiệu năng xử lý của phần cứng (ví dụ như OS
là chương trình hệ thống)
¾ Phần mềm ứng dụ
ng: dùng để xử lý nghiệp vụ thích
hợp nào đó(quản lý, kế toán, . . .), phần mềm đóng
gói, phần mềm của người dùng, . . .
7

Nhóm các tư liệu
¾ Những tư liệu hữu ích, có giá trị cao và rất
cần thiết để phát triển, vận hành và bảo trì
phần mềm
¾ Để xây dựng phần mềm với độ tin cậy cao
cần tạo ra các tư liệu chất lượng cao: đặc tả
yêu cầu, mô tả thiết kế từng loại, điều kiện
kiểm thử, thủ tục vận hành, hướng dẫn thao
tác, …
8
1.1.2. Tiến hoá của phần mềm
¾ Bản thân phần mềm vốn phức tạp.
¾ Yêu cầu sử dụng phần mềm không ngừng
thay đổi
¾ Sự tiến bộ nhanh của hạ tầng – phần cứng
=> Sự tiến hóa phần mềm là tất yếu
9
1.1.2. Tiến hoá của phần mềm (2)
Giai đoạnthứ nhất: (~1960)
¾ Phần cứng thay đổi liên tục, theo tính 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
Ngôn ngữ: mã máy, đặcthùchotừng máy
Lập trình: là mộtnghệ thuậttheobảnnăng,
chưacóphương pháp
10
1.1.2. Tiến hoá của phần mềm(3)
Giai đoạn 2: (~giữathậpkỷ 70)
¾ Phần mềm đ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
z Nhiềudự án
thấtbại
z Phầnmềmtrở nên phứctạp
z Nhu cầutăng cao
z Chi phí tăng
Ngôn ngữ: có cấu trúc: PL1, Algo60, Fortran, COBOL
Lập trình: có phương pháp lậptrình
Phát triểnHT: chưacóphương pháp, kinh nghiệmlàchính
11
1.1.2. Tiến hoá của phần mềm(4)
Giai đoạn 3: (~đến nay)
¾ 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
z Phầnmềmngàycàngphứctạp
z Sử dụng nhiều máy tính cá nhân, phầnmềm nhúng
z Số người dùng tăng nhanh
Ngôn ngữ: Ngôn ngữ bậccao, hướng đốitượng
Phát triểnHT: có phương pháp, công cụ tựđộng
12
1.1.2. Tiến hoá của phần mềm(5)
Phầnmềm ngày càng phứctạp
¾ 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
– Nhu cầu của người dùng ngày càng lớn.

13
1.1.2. Tiến hoá của phần mềm(6)
Chi phí cho phầnmềmcao
¾ Phần mềm trở thành ngành công nghiệp
khổng lồ:
– Chi phí phát triển OS360 (63~66): 200M$
– Chi phí phần mềm năm 1985: 70B$
– Chi phí phần mềm năm 2000: 770B$
(mức tăng 12%/năm)
¾ Năng suất lập trình vẫn thấp
– Phát triển phần mềm mang nặng tính thủ công
14
1.1.3. Đặc điểm 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
15
1.1.3. Đặc điểm 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”
16

1.1.3. Đặc điểm phần mềm(3)
¾ 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.
17
1.1.3. Đặc điểm phần mềm(4)
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 để
¾ Sản phầm phần mềm
– Nhiều người viết, nhiều người sử dụng
– Độ phức tạp cao, đảm bảo đồng bộ.
Kinh nghiệm viết chương trình nhỏ không áp dụng được cho sản
phẩm lớn
18
1.1.3. Đặc điểm phần mềm(5)
¾ Là hàng hóa vô hình, không nhìn thấy được
¾ Chất lượng phần mềm: không mòn đi mà có
xu hướng tốt lên sau mỗi lần có lỗi
(error/bug) được phát hiện và sửa
¾ Phần mềm vốn chứa lỗi tiềm tàng, nếu quy
mô càng lớn thì khả năng chứa lỗi càng cao
¾ Lỗi phần mềm dễ được phát hiện bởi người
ngoài (những người không trực tiếp tham gia

xây dựng phần mềm).
19
1.1.3. Đặc điểm phần mềm(6)
¾ Chức năng của phần mềm thường biến hóa,
thay đổi theo thời gian (theo nơi sử dụng).
¾ Phần mềm luôn chứa những ý tưởng, sáng
tạo của tác giả / nhóm tác giả làm ra nó.
¾ Có thể sao chép phần mềm rất đơn giản
20
1.1.3. Phân loại phần mềm
¾ Phần mềm hệ thống
– Tập hợp các chương trình
– Tương tác trực tiếp với phần cứng
– Phục vụ nhiều người dùng
¾ Phần mềm thời gian thực
– 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
z Thu thập dữ liệu
z Phân tích dữ liệu
z Kiểm soát, điều khiển
z Điều phối.
– Ví dụ: Phần mềm đa phương tiện.
21
1.1.3. Phân loại phần mềm(2)
¾ Phần mềm nghiệp vụ
– Xử lý các thông tin nghiệp vụ, thường gắn với CSDL
– Xử lý các giao tác
– Lĩnh vực ứng dụng rất lớn
¾ Phần mềm khoa học kỹ thuật
– Đặ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.
¾ Phần mềm nhúng (embedded software)
– 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.
22
1.1.3. Phân loại phần mềm(3)
¾ 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ố
– Ví dụ: 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
– Ví dụ: các công cụ CASE,
23
1.1.4. Chất lượng phần mềm
¾ Những yếu tố chất lượng bên trong như dễ
đọc, dễ hiểu mà chỉ những người làm tin học
chuyên nghiệp mới biết được.
¾ Những yếu tố chất lượng bên ngoài người
dùng có thể nhận biết được như: tốc độ
nhanh, chạy ổn định, dễ sử dụng, dễ thích
nghi với những thay đổi
¾ => Thông thường chất lượng phần mềm t
ốt
thì giá thành phần mềm cao
24

1.1.4. Chất lượng phần mềm(2)
¾ Những yếu tố chính trong chất lượng phần
mềm:
– Tính hiệu quả (efficiency): sử dụng hiệu quả các
nguồn tài nguyên (bộ nhớ, CPU)
– Tính thân thiện (user friendlyness): dễ sử dụng
– Tính dễ kiểm tra (verifiability): dễ kiểm tra chất
lượng
– Tính dễ bảo trì (maintainability): dễ xác định và
sửa lỗi, dễ tạo ra những phiên bản mới khi có sự
mở rộng.
25
1.1.4. Chất lượng phần mềm(3)
¾ Tính tái sử dụng (reusability): dễ tái sử dụng trong
những phần mềm mới
¾ Tính khả chuyển (portability):dễ sử dụng trong các
môi trường mới.
¾ Tính dễ hiểu (understandability): dễ hiểu đối với
người sử dụng cũng như đối với người phát triển
¾ Tính hợp tác (interoperability): dễ hợp tác với các
phần mềm khác
¾ Sản xuất hiệ
u quả (productivity): tiến trình sản xuất
phần mềm phải hiệu quả.

×