Quy trình phần mềm

GS John Vu01/07/2024 12:00
Quy trình phần mềm

Tuần trước, một sinh viên nói với tôi: “Phần mềm quá phức tạp và không thể nào loại bỏ mọi lỗi được. Em càng thử phần mềm, càng tìm ra nhiều lỗi hơn, và càng chữa các lỗi đó, lại càng nhiều lỗi xuất hiện thêm”.

Tôi hiểu thất vọng của sinh viên này bởi vì không thể nào loại bỏ được các lỗi dựa trên việc kiểm thử.

Tôi làm việc trong công ti hàng không và tôi có thể nói với bạn rằng máy bay là hệ thống phần cứng và phần mềm phức tạp. Mặc dầu không ai có thể chứng minh được rằng máy bay không có khiếm khuyết nhưng công ti chúng tôi nhận trách nhiệm về mọi khiếm khuyết. Tuy nhiên, chúng tôi không dựa vào việc kiểm thử sản phầm để loại bỏ khiếm khuyết bởi vì chúng tôi biết rằng kiểm thử là cách rất tốn kém và không hiệu quả để khử bỏ khiếm khuyết.

Chúng tôi tập trung vào tuân theo các qui trình phát triển và chế tạo đã được xác định rõ, chúng tôi dùng các thủ tục đo được và các phương pháp thống kê để xây dựng mọi thứ đúng đắn ngay từ đầu. Tất nhiên chúng tôi làm kiểm thử sản phẩm của mình nhưng kiểm thử là nỗ lực cuối cùng để đảm bảo sản phẩm có chất lượng rất cao.

Câu hỏi của tôi là tại sao công nghiệp phần mềm không thể áp dụng điều mà công nghiệp chế tạo đã từng làm trong nhiều năm rồi? Điều đó đưa tôi tới một câu hỏi nền tảng khác tại sao người làm phần mềm lại không được dạy về qui trình phần mềm? Tại sao phần lớn các đại học vẫn dạy sinh viên về ngôn ngữ lập trình và kiểm thử mà không dạy về qui trình phát triển phần mềm?

Qui trình là dãy các bước được thực hiện theo một lí do nào đó. Qui trình tích hợp con người, thủ tục và công cụ để tạo ra sản phẩm cuối cùng. Sản phẩm có thể là máy bay, xe hơi, điện thoại di động hay phần mềm máy tính. Qui trình là điều mọi người làm, dùng các thủ tục, phương pháp, công cụ và trang thiết bị để biến đổi vật liệu thô như gỗ, kim loại thành sảnh phẩm như nhà, xe hơi. Qui trình phần mềm là tập các bước  (kể cả thủ tục, phương pháp và công cụ) mà mọi người tuân theo để phát triển sản phẩm phần mềm. Khái niệm then chốt ở đây là chỗ chất lượng của sản phẩm được xác định bằng chất lượng của qui trình được dùng để phát triển nó.

Cho nên khi sản phẩm có lỗi, bạn phải quay lại qui trình và nhận diện cái gì là nguyên nhân, nó xảy ra ở đâu trong qui trình và sửa nó để cho nó sẽ không xảy ra nữa. Bằng việc áp dụng phương pháp thống kê để đo mọi bước trong qui trình, người kĩ sư có thể tạo ra một miền có hiệu quả các kết quả được trông đợi mà có thể đạt tới được bằng việc tuân thủ theo qui trình phần mềm. Bằng việc cải tiến liên tục qui trình và loại bỏ nguyên nhân lỗi, người kĩ sư phần mềm có thể tạo ra sản phẩm phần mềm với ít khiếm khuyết hơn. Tôi thận trọng không nói “không lỗi” ở đây bởi vì khó chứng minh được điều đó nhưng phần mềm với thật ít lỗi thì tốt hơn là phần mềm đầy lỗi.

Khái niệm về qui trình là yếu tố then chốt trong giáo trình phần mềm mới có tên là Kĩ nghệ phần mềm. Trong lĩnh vực này, sinh viên sẽ học việc áp dụng cách tiếp cận có kỉ luật và có định lượng vào việc phát triển phần mềm. Kỉ luật này bao gồm tri thức, công cụ và phương pháp xác định yêu cầu, kiến trúc hệ thống phần mềm, thiết kế và thực hiện sản phẩm phần mềm, tiến hành kiểm thử và kiểm chứng rằng sản phẩm đáp ứng yêu cầu. Triết lí của bộ môn này là chất lượng phần mềm thuộc vào trách nhiệm của người làm phần mềm, người tạo ra sản phẩm phần mềm. Tuy nhiên, nếu người làm phần mềm không cải tiến kĩ năng của mình, không phân biệt giữa “kĩ nghệ phần mềm” và “lập trình phần mềm” thì ngành công nghiệp phần mềm không thể đi rất xa được. Chừng nào mà người làm phần mềm vẫn cứ khăng khăng rằng chất lượng không phải là trách nhiệm của họ, thì chất lượng không thể được cải thiện.

English version

Process

Last week, one student told me: “Software is so complex and it is impossible to remove all defects. The more I tested software, the more defects I found and the more I fixed those defects, the more defects appeared”. I understand his frustration because it is not possible to remove defects based on testing alone.

I work in an aerospace company and I can tell you that an aircraft is a complex hardware and software systems. Although no one can prove that the aircraft has zero defects but our company does take full responsibility for any defects. However, we do not rely on product testing to remove defects because we know that testing is very expensive and ineffective way to eliminate defects. We focus on following a well defined development and manufacturing processes, we use measured procedures and statistical methods to build everything corrected from the beginning. Of course we do test our products but testing is the last resort to ensure the products are of very high quality.

My question is why software industry can not apply what the manufacturing industry has been doing for years? That brings me to another fundamental question why software people are not taught about software process? Why most universities are still teaching students about programming languages and testing but not the process of develop software?

Process is a sequence of steps performed for a given reason. Process integrates people, procedures and tools to create a final product. The product can be an aircraft, a car, a mobile phone or computer software.  Process is what people do, using procedures, methods, tools, and equipments to transform raw materials such as wood, metal into a product such as a house, a car. A software process is a set of steps (including procedures,
methods and tools) that people follow to develop software product. The key concept here is that the quality of the product is determined by the quality of the process used to develop it. So when the product has defect, you must go back to the process and identify what is the cause, where does it happen in the process and fix it so it will not happen again. By apply statistical method to measure every process steps, engineer can effective create a range of expected results that can be achieved by following a software process. By continuously improve the development process and remove the cause of defects, a software engineer can produce software product with much fewer defects. I am carefully not to say “Zero defects” here because it is difficult to prove it but software with much fewer defects is better than software full of defects.

The concept of process is the key element in a new software curriculum called Software Engineering. In this field, students will learn the application of a disciplined and quantifiable approach to the development of software. This discipline consists of knowledge, tools, and methods for defining requirements, architect a software system, design and implement software products, conduct testing and verify that the product meet
requirements. The philosophy of this discipline is software quality is the responsible of software people who create the software product. However, if software people do not improve their skills, do not distinguish between the “engineering of software” and the “programming of software” then the software industry cannot go very far. As long as software people insist that quality is not their responsibility, quality cannot be improved.

 


Gửi bình luận
(0) Bình luận
1

Lời khuyên về giáo dục

Theo một nghiên cứu toàn cầu mới, năm nay các công ti sẽ thuê nhiều sinh viên tốt nghiệp đại học hơn năm ngoái nhưng chỉ với những bằng cấp nào đó. Khoa học máy tính, kĩ nghệ phần mềm, y học và chăm sóc sức khoẻ là NÓNG.
2

Công nhân có kỹ năng cho công việc dự án

Mục tiêu then chốt của mọi dự án phần mềm là đáp ứng nhu cầu của khách hàng. Điều khách hàng muốn là tổ dự án chuyển giao sản phẩm tương ứng theo lịch biểu, trong chi phí, và có chất lượng cao. Tuy nhiên, điều quan trọng nhất với nhiều người quản lí dự án là lịch biểu dự án.
3

Phát triển phần mềm Agile

Agile là cách tiếp cận phát triển phần mềm trong đó tổ xây dựng phần mềm trong vài lần lặp ngắn, thay vì mọi thứ đi từ bắt đầu tới kết thúc. Agile cung cấp ích lợi như linh hoạt, dễ thay đổi, chất lượng tốt, ít rủi ro và thoả mãn khách hàng tốt hơn nhưng có “tiền điều kiện” mà tổ chức phải có để đạt tới những ích lợi này.
4

Vấn đề với cách tiếp cận Agile

Một người phát triển phần mềm hỏi tôi: “Người quản lí của tôi nói rằng hoạt động chính của Agile chỉ là viết mã và kiểm thử. Bạn không cần tài liệu cho nên chúng tôi có thể hoàn thanh nhanh và đó là lí do tại sao cái tên “Agile – mau lẹ” tới. Điều đó có đúng không?”
5

Chương trình bằng cấp chuyên sâu

Có vài lí do mà sinh viên muốn tiếp tục theo đuổi các bằng cấp chuyên sâu như Thạc sĩ hay Tiến sĩ. Nhiều người muốn chuyên sâu tri thức của họ và đẩy mạnh giáo dục của họ nhưng một số người không biết làm cái gì, cho nên họ quyết định ở lại trường.

Người quản lý dự án phần mềm

Hàng nghìn năm trước đây, triết gia Hi Lạp Socrates đã dạy học trò của mình “Tự biết mình”. Ngày nay, tôi muốn dùng cùng cách tiếp cận đó trong kĩ nghệ phần mềm bằng việc gợi ý rằng người quản lí dự án phần mềm.

Học tập

Khái niệm về học tập đang đối diện với những thay đổi nền tảng do sự thay đổi trong công nghệ và nền kinh tế toàn cầu.

Người kỹ sư phần mềm giỏi nhất

Bạn tôi hỏi tôi: Làm sao anh biết người kĩ sư phần mềm giỏi nhất so với người trung bình? Sau đây là ý kiến cá nhân của tôi:

Kỹ nghệ: Ham muốn đột nhiên xảy tới cho sinh viên tốt nghiệp đại học

Khi cuộc khủng hoảng tài chính sâu sắc thêm, sinh viên tốt nghiệp khoa học và toán học, những người đã có thời lũ lượt kéo vào Kinh doanh, Tài chính và Ngân hàng, bây giờ đang xem xét việc làm trong kĩ nghệ phần mềm.

Cần hỗ trợ cho nền kinh tế dựa trên tri thức

Khi thế giới bước vào thế kỉ 21, nền kinh tế toàn cầu trở thành nền kinh tế dựa trên tri thức.

Nền kinh tế dựa trên tri thức

Có một báo cáo đại học nói rằng 34% thanh niên giữa độ tuổi 18 tới 32 đang hoặc lập kế hoạch để khởi đầu doanh nghiệp hay đã làm việc đó rồi.

Nền kinh tế tri thức-5

Ngày nay, dẫn lái chính cho tăng trưởng kinh tế là trong miền công nghệ cao.

Nền kinh tế tri thức-4

Là một giáo sư lịch sử, bạn tôi rất tò mò về điều đã xảy ra ở Ấn Độ cho nên ông ấy hỏi: “Theo quan điểm của ông thì Ấn Độ rất thành công trong việc xây dựng xã hội tri thức bằng việc bỏ qua pha công nghiệp nhưng tại sao họ đã làm loại quyết định đó?”

Thần đồng 15 tuổi đỗ đại học, trở thành thiên tài thi ca nhưng cuộc đời khép lại ở tuổi 25

Phong cách sống - Thiên An - 15/08/2026 10:00
Cuộc đời của một trong những nhà thơ tài hoa nhưng đoản mệnh nhất Trung Quốc hiện đại vẫn còn để lại nhiều suy ngẫm cho đến tận ngày nay.

Chia sẻ từ trái tim - Mùa Vu Lan: Đứa con liệt sanh

Từ sách - Phim - FN - 15/08/2026 09:00
Bây giờ đến dạng con thứ ba. Nếu cha mẹ tu hành, làm thiện, làm lành mà đứa con lại không thiện, không lành thì đứa con đó, đức Phật gọi là liệt sanh.

Vấn đề với cách tiếp cận Agile

Blog GS John VU - GS John Vu - 14/08/2026 11:00
Một người phát triển phần mềm hỏi tôi: “Người quản lí của tôi nói rằng hoạt động chính của Agile chỉ là viết mã và kiểm thử. Bạn không cần tài liệu cho nên chúng tôi có thể hoàn thanh nhanh và đó là lí do tại sao cái tên “Agile – mau lẹ” tới. Điều đó có đúng không?”

Tâm lý học: Tài sản quý giá nhất của người phụ nữ

Suy ngẫm - Tr. Quang - 14/08/2026 10:00
Tài sản quý giá nhất của người phụ nữ không bao giờ là tuổi trẻ hay sắc đẹp, mà chính là hai khả năng tưởng chừng như trái ngược nhau này. 

Nhạc sĩ Nguyễn Văn Chung miễn tác quyền trong 7 trường hợp, người sử dụng không cần xin phép

Phong cách sống - Minh Ngọc - 14/08/2026 09:00
Nhạc sĩ cho biết sẵn sàng cho phép sử dụng và miễn tác quyền đối với nhiều hoạt động giáo dục, cộng đồng, tôn giáo hay mục đích cá nhân không tạo ra doanh thu. Thậm chí, với những trường hợp nằm trong danh sách này, mọi người không cần mất công nhắn tin xin phép anh trước khi sử dụng các ca khúc.

Chia sẻ từ trái tim - Mùa Vu Lan: Những đứa con tùy sanh

Từ sách - Phim - FN - 14/08/2026 08:00
Hồi nhỏ Pháp Hòa có một thú chơi mà nhiều người không thích: Pháp Hòa đi tìm con gián, con dế, con thằn lằn, v.v…, con nào chết, Pháp Hòa làm đám tang cho nó đàng hoàng.

Lời khuyên về giáo dục

Blog GS John VU - GS John Vu - 13/08/2026 11:00
Theo một nghiên cứu toàn cầu mới, năm nay các công ti sẽ thuê nhiều sinh viên tốt nghiệp đại học hơn năm ngoái nhưng chỉ với những bằng cấp nào đó. Khoa học máy tính, kĩ nghệ phần mềm, y học và chăm sóc sức khoẻ là NÓNG.

Tôi dùng ChatGPT thay cho 12 ứng dụng trên điện thoại và cái kết bất ngờ

Kỹ năng - Quốc Vinh - 13/08/2026 10:00
ChatGPT có thể thay thế được các ứng dụng trên điện thoại như báo thức, máy tính hay thời tiết hay không?

Nam sinh từng cõng mẹ tâm thần đi học ĐH, từ chối mức lương 2 tỷ để về núi dạy học

Truyền cảm hứng - Nhật Linh - 13/08/2026 09:00
Năm 2008, hình ảnh một tân sinh viên Trung Quốc tay xách hành lý, tay dắt theo người mẹ mắc bệnh tâm thần đến nhập học từng khiến hàng triệu người xúc động.

Chia sẻ từ trái tim - Mùa Vu Lan: Con cái là phước hay là nghiệp?

Từ sách - Phim - FN - 13/08/2026 08:00
Người ta thường nói: “Cha mẹ sinh con, trời sinh tánh”. Thật ra câu đó chỉ để an ủi thôi, chứ đúng ra cha mẹ sinh con là duyên của cha mẹ, còn con được như thế nào là giữa cái nghiệp của nó và phước của cha mẹ.

Chương trình bằng cấp chuyên sâu

Blog GS John VU - GS John Vu - 12/08/2026 11:00
Có vài lí do mà sinh viên muốn tiếp tục theo đuổi các bằng cấp chuyên sâu như Thạc sĩ hay Tiến sĩ. Nhiều người muốn chuyên sâu tri thức của họ và đẩy mạnh giáo dục của họ nhưng một số người không biết làm cái gì, cho nên họ quyết định ở lại trường.

Google Maps có tính năng mới mà rất nhiều người đang cần

Kỹ năng - Khả Vân - 12/08/2026 10:00
Không chỉ dừng lại ở chức năng chỉ đường truyền thống, bản cập nhật mới nhất của Google Maps đã chính thức biến ứng dụng này thành một trợ lý hữu ích nhờ công nghệ trí tuệ nhân tạo (AI).

Trải nghiệm nghe 365 album nhạc trong 365 ngày và sự trỗi dậy khỏi thuật toán của cộng đồng yêu nhạc

Phong cách sống - Lâm Mộc - 12/08/2026 09:00
Giữa làn sóng bội thực âm nhạc trên các nền tảng trực tuyến, ngày càng nhiều người nghe quyết định từ bỏ sự tiện lợi của thuật toán để quay về với lối thưởng thức chủ động và giàu tính kết nối hơn.

Vô vi có thật sự là “không làm gì” hay chính là bí quyết để đạt trạng thái dòng chảy?

Từ sách - Phim - Quang Anh - 12/08/2026 08:00
Chưa bao giờ chuyện cân bằng và nghỉ ngơi được nói đến nhiều như bây giờ. Thế nhưng ngồi yên vài phút vẫn là việc khó với không ít người. Tay lại tìm đến điện thoại, xem vài tin nhắn rồi tiện thể kiểm tra luôn email.
HẠT GIỐNG TÂM HỒN
2019 Bản quyền thuộc về hatgiongtamhon.com.vn. Phát triển bởi ONECMS