Giáo trình Kỹ nghệ phần mềm - Bài 1: Giới thiệu về công nghệ phần mềm

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 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

pdf31 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 3300 | Lượt tải: 3download
Tóm tắt nội dung Giáo trình Kỹ nghệ phần mềm - Bài 1: Giới thiệu về công nghệ phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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 
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 
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 
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 
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ì?
• Đặ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ọ
– 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 
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 
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
• 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 
– 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;
– 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
• 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•
– 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) 
– 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)
• Đá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à 
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
– 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ệ
• 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 
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à 
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
Đạo đức nghề nghiệp
• Đồng nghiệp
– Người làm phần mềm phải công bằng và có tinh thần
giúp đỡ nhau trong công việc
• Bản thân
– Người làm phần mềm phải học hỏi liên tục trong quá
trình hành nghề và tuyền truyền cách hành nghề có
đạo đức.
Mẫu thuẫn đạo đức nghề nghiệp
• Nguyên tắc trái với các chính sách của lãnh đạo
• Người tuyển dụng bàn giao sản phẩm (safety-
critical) nhưng chưa kiểm thử xong
• Tham gia vào các dự án phát triển các hệ thống vũ 
khí cho quân đội
Các điểm chính
• CNPM là một ngành học thuật về làm ra sản phẩm phần mềm
• Sản phẩm phần mềm gồm các chương trình và các tài liệu đi 
kèm.
• Bên cạnh chức năng, phần mềm có thuộc tính phi chức năng: an 
toàn, hiệu quả, dễ bảo trì, v.v.
• Qui trình phần mềm gồm các hoạt động liên quan đến phát triển 
sản phẩm phần mềm.
– Hoạt động cơ bản gồm đặc tả, phát triển, kiểm tra, tiến hóa
• Các phương pháp là các cách có tổ chức để làm ra phần mềm. 
– Chúng gồm các đề xuất để thực hiện theo qui trình, các ký pháp, qui 
tắc mô tả hệ thống và các hướng dẫn.
Các điểm chính
• Công cụ CASE là các phần mềm được thiết kế để 
hỗ trợ các hoạt động thường xuyên trong qui trình 
phần mềm như soạn thảo các sơ đồ thiết kế, kiểm 
tra tính nhất quán của sơ đồ, theo dõi quá trình 
kiểm thử, v.v.
• Người làm phần mềm có trách nhiệm với nghề của 
mình và với xã hội. 
– Chỉ quan tâm đến kỹ thuật chưa đủ.
Câu chuyện về làm phần mềm
Bài tập về nhà
• Đọc về 
– Lịch sử phát triển của phần mềm
– Phân loại phần mềm
• Liệt kê các hoạt động (công việc) để làm ra một 
phần mềm

File đính kèm:

  • pdfGiáo trình Kỹ nghệ phần mềm - Bài 1 Giới thiệu về công nghệ phần mềm.pdf