Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Trang 1Bài 1
Giới thiệu về
Công nghệ Phần mềm
Trang 2Mụ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
Trang 3Nội dung
• FAQs về CNPM
• Trách nhiệm và đạo đức nghề nghiệp
Trang 4• 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
Trang 5• 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
Trang 6Mộ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ì?
Trang 7Một số câu hỏi thường gặp (FAQ)
Trang 9CNPM 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
Trang 10Khá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)
Trang 11Khá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
• 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
Trang 12Qui 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
Trang 13Mô 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;
Trang 14(component-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
Trang 15Phân bố chi phí của các hoạt động
Trang 16Các chi phí phát triển một sản phẩm
Trang 17• 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ì.
Trang 18CASE 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
Trang 19Thuộ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
Trang 20– 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
Trang 21Trá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
Trang 22– Không thể hiện sai năng lực
– Không nhận việc nằm ngoài khả năng
Trang 23Trá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
Trang 24– 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ể.
Trang 25Đạ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
Trang 26Đạ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
• 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.
Trang 27Mẫ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ũ
• Tham gia vào các dự án phát triển các hệ thống vũ khí cho quân đội
Trang 28• Qui trình phần mềm gồm các hoạt động liên quan đến phát triển
• 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.
Trang 29Cá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
Trang 30Câu chuyện về làm phần mềm