Tải bản đầy đủ (.pdf) (31 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 (352.8 KB, 31 trang )

Bài 1
Giới thiệu về
Công nghệ Phần mềm
Mục tiêu
• Giới thiệu về CNPM và tầm quan trọng của nó
• Trả lời các câu hỏi quan trọng về CNPM
• Giới thiệu các vấn đề đạo đức và nghề nghiệp

Giải thích tại sao chúng lại liên quan đến người làm

Giải thích tại sao chúng lại liên quan đến người làm
phần mềm
Nội dung
• FAQs về CNPM
• Trách nhiệm và đạo đức nghề nghiệp
CNPM
• Kinh tế của tất cả các nước phát triển đang phụ thuộc
vào phần mềm
– Airbus A380 có “buồng lái không giấy”, hàng triệu dòng
lệnh

Phần mềm ngày càng điều khiển nhiều hệ thống máy

Phần mềm ngày càng điều khiển nhiều hệ thống máy
móc, thiết bị
• CNPM là lý thuyết, phương pháp, và công cụ để làm
phần mềm chuyên nghiệp
• Chi phí cho phần mềm chiếm một phần lớn trong tổng
sản phầm quốc dân (GNP) ở tất cả các nước phát
Chi phí phần mềm
• Chi phí phần mềm chiếm phần lớn trong các hệ thống


máy tính.
– Chi phí phần mềm cho PC thường lớn hơn chi phí phần
cứng

Chi phí để bảo trì phần mềm lớn hơn chi phí phát

Chi phí để bảo trì phần mềm lớn hơn chi phí phát
triển nó.
– Với hệ thống chạy lâu dài chi phí bảo trì có thể gấp vào lần
chi phí phát triển nó
• CNPM phải tính đến việc phát triển phần mềm với chi
phí hiệu quả
Một số câu hỏi thường gặp (FAQ)
• Phần mềm là gì?
• CNPM là gì?
• CNPM khác gì với KHMT (computer science)?

CNPM khác gì với công nghệ hệ thống (system

CNPM khác gì với công nghệ hệ thống (system
engineering)?
• Qui trình phần mềm là gì?
• Mô hình qui trình phần mềm là gì?
Một số câu hỏi thường gặp (FAQ)
• CNPM có những chi phí gì?
• Phương pháp CNPM là gì?
• CASE (Computer-Aided Software Engineering) là
gì?
gì?
• Đặc tính của một phần mềm tốt là gì?

• Những thách thức chính của CNPM là gì?
Phần mềm là gì?
• Chương trình máy tính và tài liệu kèm theo như tài liệu yêu
cầu, mô hình thiết kế, tài liệu hướng dẫn sử dụng
• Sản phẩm phần mềm có thể làm theo yêu cầu, hoặc làm cho
một thị trường chung
– Theo yêu cầu - phát triển cho một khách hàng theo đặc tả của
họ
họ
– Tổng quát - phát triển để bán cho nhiều khách hàng khác nhau,
như Excel or Word.
• Phần mềm có thể được làm từ
– Chương trình mới
– Cấu hình hệ thống phần mềm tổng quát
– Sử dụng lại các phần mềm đã có
CNPM là gì?
• CNPM là một ngành công nghệ liên quan đến tất
cả các khía cạnh của sản suất phần mềm
• Kỹ sư phần mềm cần phải

vận dụng một phương pháp có tổ chức, có hệ thống

vận dụng một phương pháp có tổ chức, có hệ thống
trong quá trình làm việc và
– sử dụng các công cụ và kỹ thuật thích hợp tùy theo
• vấn đề phải giải quyết,
• các ràng buộc phát triển và
• tài nguyên đã cho
Khác biệt giữa CNPM và KHMT
• KHMT liên quan đến lý thuyết và nền tảng; CNPM

liên quan đến thực tế phát triển và triển khai các
phần mềm có ích

Các lý thuyết của KHMT chưa đủ để làm trụ cột

Các lý thuyết của KHMT chưa đủ để làm trụ cột
cho CNPM (không giống vật lý, hoặc kỹ thuật điện)
Khác biệt giữa CNPM và KNHT (system
engineering)
• Kỹ nghệ Hệ thống (KNHT) liên quan đến tất cả các
khía cạnh của việc phát triển các hệ thống dựa
trên máy tính gồm

Phần cứng, phần mềm và qui trình
Phần cứng, phần mềm và qui trình
• CNPM là một phần của KNHT liên quan đến việc
phát triển hạ tầng, điểu khiển, ứng dụng, và cơ sở
dữ liệu trong hệ thống.
• Kỹ sư hệ thống tham gia vào đặc tả hệ thống, thiết
kế kiến trúc, tích hợp, và triển khai
Qui trình phần mềm
• Một tập các hoạt động với mục tiêu là phát triển hoặc
tiến hóa phần mềm
• Các hoạt động phổ biến là:

Đặc tả
-
hệ thống phải làm gì và các ràng buộc phát triển

Đặc tả

-
hệ thống phải làm gì và các ràng buộc phát triển
– Phát triển - làm ra hệ thống phần mềm
– Kiểm định - kiểm tra phần mềm có làm đúng những gì
khách hàng muốn
– Tiến hóa - thay đổi phần mềm để đáp ứng những yêu cầu
mới
Mô hình qui trình phần mềm
• Một biểu diễn đơn giản của một qui trình phần mềm,
theo một góc nhìn (perspective) cụ thể
• Ví dụ của góc nhìn qui trình
– Luồng công việc – dãy các hoạt động;

Luồng dữ liệu

luồng thông tin;

Luồng dữ liệu

luồng thông tin;
– Vai trò/hành động – ai làm gì.
• Mô hình qui trình phổ biến
– Thác nước;
– Phát triển lặp (iterative);
– Công nghệ phần mềm dựa trên thành phần (component-
based).
Làm một phần mềm cần chi phí gì?
• Khoảng 60% là chi phí phát triển, 40% là chi phí
kiểm thử.
– Phần mềm may đo thì chi phí nâng cấp, cải tiến lớn

hơn chi phí phát triển
hơn chi phí phát triển
• Phân bổ chi phí khác nhau tùy theo yêu cầu về
mặt phi chức năng (tốc độ, độ an toàn, )
• Phân bổ chi phí cũng phụ thuộc vào qui trình phát
triển phần mềm
Phân bố chi phí của các hoạt động
Các chi phí phát triển một sản phẩm
Phương pháp CNPM
• Các tiếp cận có cấu trúc để phát triển phần mềm
bao gồm
– Mô hình hệ thống
• Mô tả của các sơ đồ hình vẽ cần có
– Nguyên tắc
• Ràng buộc của các mô hình
– Các lời khuyên thiết kế
• Rút ra từ kinh nghiệm quí về thiết kế
– Hướng dẫn qui trình
• Bước tiếp theo phải làm là gì.
CASE là gì?
• Hệ thống phần mềm cung cấp hỗ trợ tự động cho các
hoạt động phần mềm
• Các hệ thống CASE thường được sử dụng để hỗ trợ
phương pháp
CASE mức cao

CASE mức cao
– Công cụ hỗ trợ các hoạt động ở giai đoạn đầu: yêu cầu,
thiết kế
• CASE mức thấp

– Công cụ hỗ trợ hoạt động ở giai đoạn sau như lập trình, gỡ
lỗi, kiểm thử
Thuộc tính của phần mềm tốt
• Đạt chức năng và chất lượng theo yêu cầu người sử dụng và
dễ bảo trì, đáng tin cậy và chấp nhận được
• Dễ bảo trì
– Có thể cải tiến để đáp ứng các yêu cầu mới

Đáng tin (dependability)

Đáng tin (dependability)
– Phải chạy đúng và đáng tin
• Hiệu quả
– Không sử dụng lãng phí tài nguyên hệ thống
• Chấp nhận được (acceptability)
– Được người sử dụng chấp nhận, có nghĩa nó phải có thể hiểu
được, có thể sử dụng được, và tương thích với hệ thống khác
Thách thức của CNPM
• Tính đa dạng, tính tin cậy, dễ phân phối
• Tính đa dạng
– Kỹ thuật phát triển để xây dựng phần mềm phải đáp ứng
được nhiều nền tảng và môi trường thực thi hỗn hợp
(heterogeneous)
(heterogeneous)
• Đáng tin cậy
– Kỹ thuật phát triển để tạo ra sản phẩm mà người sử dụng
có thể tin cậy được
• Phân phối
– Kỹ thuật phát triển để cho phép phân phối phần mềm
nhanh hơn

Trách nhiệm đạo đức và nghề nghiệp
• Trách nhiệm trong CNPM lớn hơn là việc áp dụng
các kỹ năng
• Kỹ sư phần mềm phải hành sử có đạo đức, trung
thực nếu muốn được tôn trọng và được coi là
thực nếu muốn được tôn trọng và được coi là
chuyên nghiệp (pro)
• Cư sử có đạo đức không phải chỉ đơn giản là tuân
thủ pháp luật
Trách nhiệm nghề nghiệp
• Giữ bí mật
– Phải giữ bí mật thông tin của nhà tuyển dụng và khách
hàng ngay cả khi không ký cam kết nào

Trung thực về khả năng

Trung thực về khả năng
– Không thể hiện sai năng lực
– Không nhận việc nằm ngoài khả năng
Trách nhiệm nghề nghiệp (2)
• Quyền sở hữu trí tuệ
– Cần có hiểu biết về luật pháp địa phương về việc sử dụng
tài sản trí tuệ như bằng phát minh, bản quyền, v.v.
– Cẩn thận để đảm bảo tài sản trí tuệ của người tuyển dụng
và khách hàng được bảo vệ
và khách hàng được bảo vệ
• Sử dụng máy tính sai trái
– Không sử dụng kỹ năng của mình để lạm dụng máy tính của
người khác
– Lạm dụng có thể ở mức đơn giản như chơi trò chơi, hay ở

mức nghiêm trọng như phát tán virus
Đạo đức nghề nghiệp (1)
• Công chúng
– Người làm phần mềm hành động theo lợi ích của công
chúng.
• Khách hàng, người tuyển dụng

Người làm phần mềm phải hành động theo lợi ích khách

Người làm phần mềm phải hành động theo lợi ích khách
hàng, người tuyển dụng và nhất quán với lợi ích của công
chúng.
• Sản phẩm
– Người làm phần mềm phải đảm bảo sản phẩm của họ và
những sửa đổi đáp ứng chuẩn mực cao nhất có thể.
Đạo đức nghề nghiệp
• Phán quyết
– Người làm phần mềm có chính kiến và độc lập
• Quản lý

Người lãnh đạo làm phần mềm phải tuân thủ và

Người lãnh đạo làm phần mềm phải tuân thủ và
khuyến khích đạo đức nghề nghiệp.
• Chuyên nghiệp
– Người làm phần mềm phải nâng cao trọng trách nghề
nghiệp nhất quán với lợi ích công chúng

×