0
Chưa có sách nào trong giỏ hàng

Kĩ nghệ phần mềm

14.02.2021

Một số các bạn có hỏi tôi về chương trình Kĩ nghệ phần mềm (Software Engineering) và những gì mà kĩ nghệ mong đợi ở các sinh viên tốt nghiệp từ ngành này ra.

Theo định nghĩa thì Kĩ nghệ phần mềm tập trung đào tạo sinh viên biết cách tạo ra những giải pháp với chi phí hợp lí cho các vấn đề thực tế bằng cách áp dụng tri thức về công nghệ để xây dựng những hệ thống phần mềm có chất lượng. Người Kĩ sư Phần mềm học cách ra quyết định về thiết kế và triển khai giải pháp trong những giới hạn về thời gian, tri thức, và tài nguyên (nói chung).

Nền tảng của ngành Kĩ nghệ phần mềm gồm 3 phần chính. Thứ nhất là khối tri thức toán học về cấu trúc dữ liệu, thuật toán, ngôn ngữ, phân tích, mô hình tính toán, vân vân. Thứ hai là khối tri thức kĩ nghệ về kiến trúc, quy trình công nghệ, các chi phí và bù trừ, các chuẩn, chất lượng và bảo trì, vân vân. Thứ ba là môi trường xã hội nơi những hoạt động công nghệ đó diễn ra, bao gồm quy trình tạo lập và phát triển nhóm, các vật phẩm, chính sách, thị trường, và các tác động doanh nghiệp và kinh tế.

Kĩ nghệ phần mềm (Software Engineering) hay bị lẫn với Lập trình Máy tính (Computer programming). Đây là một nhầm lẫn lớn vì trách nhiệm của một Kĩ sư Phần mềm là tập trung phát triển và bảo trì phần mềm nhằm thỏa mãn các yêu cầu doanh nghiệp và kĩ nghệ, chứ không phải là nhắm vào việc tạo ra mã cho dự án phát triển phần mềm. Lập trình chỉ là một phần nhỏ của quy trình phần mềm. Nói riêng sinh viên tốt nghiệp ngành Khoa học Máy tính (Computer Science) phải có khả năng làm những việc căn bản liên quan đến máy tính như thiết kế, lập trình và kiểm thử, nhưng sẽ không cần đến những tri thức theo chiều rộng và sâu như đối với một sinh viên tốt nghiệp ngành Kĩ nghệ phần mềm (Software Engineering). Tuy nhiên, người tốt nghiệp Khoa học Máy tính sẽ có nhiều tri thức hơn trong các mảng như lý thuyết tính toán, ngôn ngữ lập trình, phân tích thuật toán, toán trừu tượng và những công nghệ khác như trí tuệ nhân tạo, hệ điều hành, hay giao diện người và máy. Ngược lại, người tốt nghiệp Kĩ nghệ phần mềm (Software Engineering) phải có thể làm được những việc liên quan trực tiếp với kĩ nghệ như phân tích yêu cầu của khách hàng, thiết kế kiến trúc, giao diện cho khách hàng, thiết kế hệ thống, đảm bảo chất lượng, quản lý cấu hình, và quản lý những hệ thống lớn-phức tạp đồng thời hiểu được sản phẩm và dịch vụ phần mềm có khả năng hỗ trợ công việc kinh doanh của một công ty như thế nào, cũng như làm thế nào để tích hợp doanh nghiệp và phần mềm với nhau để tạo ra giá trị lớn hơn.

Một sinh viên tốt nghiệp ngành Kĩ nghệ phần mềm (Software Engineering) cần đạt được những điểm sau:

1. Thông thạo các kĩ năng và tri thức Kĩ nghệ phần mềm, đủ để có thể bắt tay vào làm việc ngay trong ngành.

2. Có khả năng làm việc theo tổ để phát triển những phần mềm có chất lượng.

3. Biết cách cân đối (giữa các giá trị) trong khuôn khổ của: “Chi phí, thời gian, tri thức, các hệ thống hiện có, và tổ chức (con người).”

4. Biết xây dựng kiến trúc, thiết kế trong một hoặc nhiều hệ bằng cách sử dụng các phương pháp của kĩ nghệ để phối hợp các yếu tố đạo đức, xã hội, pháp lý, và kinh tế.

5. Thể hiện các kĩ năng như thương lượng, các thói quen làm việc có hiệu quả, lãnh đạo, và giao tiếp.

6. Thể hiện sự hiểu biết và khả năng ứng dụng những công nghệ, mô hình, và kĩ thuật hiện tại trong Kĩ nghệ phần mềm; đồng thời biết học hỏi những mô hình, kĩ thuật, công nghệ mới ra đời.

Vì Kĩ nghệ phần mềm là một ngành rất rộng, một Kĩ sư Phần mềm bắt buộc cần đi chuyên sâu vào một hay hai trong số các mảng tri thức sau:

1. Các hệ thống mạng

2. Các hệ thống viễn thông

3. Xử lý thông tin và dữ liệu

4. Các hệ thống tài chính và thương mại điện tử

5. Các hệ an ninh

6. Các hệ thống nhúng và thời gian thực

7. Các hệ thống khoa học

8. Các hệ thống không lưu và phương tiện điều khiển

9. Các hệ thống sản xuất và công nghiệp

10. Các hệ thống mô hình nhiều cá thể

Công nghệ liên quan đến việc làm sao để vận hành công việc, nghĩa là áp dụng các lý thuyết, phương pháp, và công cụ một cách hợp lý nhằm giải quyết các vấn đề doanh nghiệp. Người kĩ sư hiểu rằng họ phải làm việc trong những giới hạn về tổ chức và tài chính, vì thế họ tìm kiếm các giải pháp trong các khuôn khổ đó. Kĩ nghệ phần mềm không chỉ tập trung vào khía cạnh kĩ thuật của phần mềm mà còn vào cả khía cạnh quản lý như quản lý dự án, quản lý rủi ro. Nhiều sinh viên xem từ “phần mềm” (Software) cũng đồng nghĩa với từ “lập chương trình máy tính.” (Programming) Trong thực tế, nếu nghĩ như vậy chỉ là một góc nhìn hạn hẹp. Phần mềm không chỉ là chương trình (program) mà còn liên quan đến dữ liệu và các tài liệu lưu trữ cần thiết để giúp chương trình chạy tốt và có hiệu suất cao.