Tin học 10 · SGK

Bài 34. Nghề phát triển phần mềm

BÀI 34

NGHỀ PHÁT TRIỂN PHẦN MỀM

SAU BÀI NÀY EM SẼ:

Sử dụng được một ngôn ngữ lập trình nào đó để máy tính có thể hiểu và giải quyết một bài toán trong thực tế.

1. PHÁT TRIỂN PHẦN MỀM LÀ GÌ?

Hoạt động 1: Hiểu về phát triển phần mềm

Nhiều em mong muốn biết lập trình để làm ra các phần mềm ứng dụng. Vậy em có biết việc sản xuất phần mềm gồm các công đoạn nào không?

Nếu như kết quả của một bài tập lập trình thông thường chỉ dài vài chục câu lệnh và thường do một người làm ra, thì phần mềm ứng dụng có thể lên tới hàng vạn, hàng triệu dòng lệnh và nói chung do nhiều người thực hiện. Các công việc cơ bản, cũng chính là các công đoạn cần thực hiện để sản xuất một phần mềm, gồm có:

Điều tra khảo sát: Tiếp xúc với khách hàng, tìm hiểu về yêu cầu nghiệp vụ, xây dựng hồ sơ yêu cầu của hệ thống.

Phân tích hệ thống: Dựa trên các tài liệu điều tra khảo sát, chuyên viên phân tích sẽ tạo ra tài liệu mô tả đầy đủ yêu cầu của phần mềm.

Thiết kế hệ thống: Dựa vào tài liệu phân tích, chuyên viên thiết kế sẽ đưa ra thiết kế tổng thể, thiết kế dữ liệu và thiết kế chức năng và có thể cả giao diện chi tiết.

Lập trình: Dựa vào tài liệu thiết kế, các lập trình viên sẽ tiến hành tạo cơ sở dữ liệu nếu cần và viết các đoạn mã thực hiện các chức năng.

Kiểm thử: Phát hiện để loại bỏ các lỗi cũng như các bất hợp lí trong sử dụng chương trình nếu có; kiểm tra kết quả thực hiện theo chức năng đã thiết kế.

Chuyển giao: Cài đặt, khởi tạo dữ liệu, hướng dẫn sử dụng và chuyển giao.

Bảo trì: Nói chung, các phần mềm khi mới làm ra có thể còn những sai sót hoặc không đáp ứng đầy đủ yêu cầu của người sử dụng. Bảo trì là việc rất quan trọng nhằm khắc phục triệt để các lỗi, nâng cấp cả về tính năng và giao diện của phần mềm. Việc này có thể là một vòng phát triển mới, liên quan tới tất cả các công việc sản xuất phần mềm nêu trên.

Hoạt động có tính bao trùm lên toàn bộ các công việc cơ bản của sản xuất phần mềm là quản trị dự án phần mềm, bao gồm lập kế hoạch, điều phối nhân sự, tài chính, phương tiện, kiểm soát chất lượng, để đảm bảo thành công của dự án phần mềm.

Tất cả các việc và hoạt động nêu trên được gọi chung là phát triển phần mềm, mà lập trình chỉ là một hoạt động trong đó. Những người tham gia vào các việc và hoạt động đó đều được gọi là người phát triển phần mềm (Software Developer).

Phát triển phần mềm gồm các việc và hoạt động sau: điều tra, khảo sát; phân tích và thiết kế hệ thống; lập trình; kiểm thử; chuyển giao; bảo trì và quản trị dự án.

Theo em, điều nào là đúng nhất trong các điều sau khi nói về phát triển phần mềm?

2. KIẾN THỨC, KĨ NĂNG CỦA NGƯỜI PHÁT TRIỂN PHẦN MỀM

Hoạt động 2

Theo em, phát biểu "tất cả những người phát triển phần mềm đều có vai trò như nhau" là đúng hay sai?

Có ba hoạt động chính trong phát triển phần mềm là:

Khởi đầu, lập trình viên chỉ cần có những hiểu biết cơ bản về một ngôn ngữ lập trình phù hợp để có thể bắt đầu phụ trách những đoạn mã ngắn, đơn giản theo thiết kế, sau khi trải qua một khoá đào tạo cơ bản tại các trường nghề, các trung tâm đào tạo hay các công ty phần mềm. Ngoài việc lập trình, với kiến thức và kĩ năng có được, họ có thể tham gia một số công đoạn khác như kiểm thử, chuyển giao, bảo trì phần mềm.

Ở cấp độ cao hơn, lập trình viên được trang bị thêm các kiến thức về thuật toán, cấu trúc dữ liệu, trí tuệ nhân tạo, mật mã, để có thể viết các chương trình phức tạp đòi hỏi hiểu biết chuyên sâu về toán học và khoa học máy tính.

Hiểu biết thuật toán, cấu trúc dữ liệu, có những kiến thức về khoa học máy tính, có đức tính cẩn thận, tỉ mỉ, làm chủ được môi trường lập trình là các tố chất cần thiết đối với lập trình viên.

Khái niệm kĩ sư phần mềm thường để chỉ những người tổ chức làm phần mềm. Họ có thể phụ trách các khâu quan trọng như phân tích, thiết kế hay trực tiếp tham gia hoặc chủ trì quản trị dự án phần mềm.

Thông thường, những người thiết kế phần mềm thường là những người phân tích hệ thống. Những hiểu biết về toán học, lôgic, phân tích, thiết kế là các yếu tố giúp họ thiết lập kiến trúc của phần mềm, xác định các thành phần chức năng (phần mềm làm gì), đồng thời giúp họ xây dựng tài liệu phân tích, thiết kế hệ thống.

Người phân tích, thiết kế phần mềm không chỉ biết xây dựng các giải pháp tin học mà còn phải có khả năng học hỏi, nắm bắt công việc trong lĩnh vực ứng dụng. Chẳng hạn, để viết một phần mềm kế toán thì các chuyên viên phân tích phải hiểu công việc của một kế toán, dù họ không phải là kế toán giỏi.

Sự khác biệt giữa các kĩ sư phần mềm và lập trình viên tương tự như giữa kiến trúc sư và thợ xây, nhưng hiểu biết về lập trình rất quan trọng, giúp họ có giải pháp thiết kế tốt. Trong thực tế, chuyên viên phân tích và thiết kế nói chung đều trải qua hoạt động lập trình.

Quản trị dự án xuyên suốt quá trình hình thành, triển khai và kết thúc dự án phần mềm.

Người quản trị dự án cần có tầm nhìn; hiểu biết về quy trình làm phần mềm; hiểu biết xu hướng công nghệ; có khả năng quản lí, tổ chức, giám sát. Nếu đã từng trải qua công việc lập trình, phân tích và thiết kế hệ thống thì đây sẽ là một lợi thế cho người quản trị dự án.

Đối với các dự án phần mềm lớn, hoạt động quản trị dự án đóng vai trò cốt yếu cho sự thành công của dự án phần mềm.

3. CÔNG VIỆC PHÁT TRIỂN PHẦN MỀM

Hoạt động 3: Công việc của người phát triển phần mềm

Em có biết làm thế nào để trở thành người tham gia phát triển phần mềm? Theo em, có những cơ hội nghề nghiệp nào cho người phát triển phần mềm?

Để trở thành người phát triển phần mềm, các em có thể bắt đầu với các khoá đào tạo về lập trình, phát triển phần mềm tại các trung tâm, các trường nghề, hoặc các công ty, tập đoàn, dần dần tích luỹ kinh nghiệm qua các công việc thực tế. Nếu muốn tham gia phát triển phần mềm ở vị trí kĩ sư phần mềm, em cần theo học ở bậc đại học về tin học hay công nghệ thông tin.

Sau khi tốt nghiệp các khoá, ngành đào tạo, em có thể tham gia các công việc phát triển phần mềm ở nhiều lĩnh vực như:

Ở Việt Nam, phát triển phần mềm luôn là việc được đánh giá cao trong lĩnh vực kĩ thuật, công nghệ như các lĩnh vực liên quan tới STEM. Nhu cầu nhân lực phát triển phần mềm chiếm tỉ lệ cao nhất trong nhu cầu tuyển dụng ngành Công nghệ thông tin. Nhu cầu đó luôn thay đổi và phát triển với sự phát triển ứng dụng khoa học và công nghệ trong mọi lĩnh vực khác nhau của đời sống xã hội. Đặc biệt, trong bối cảnh cách mạng công nghiệp lần thứ tư, với sự phát triển mạnh mẽ các ứng dụng của AI, IoT, điện toán đám mây, chuỗi khối (BlockChain), những cơ hội nghề nghiệp lớn lao đang không ngừng mở ra cho những người phát triển phần mềm.

Người muốn tham gia phát triển phần mềm có thể tìm kiếm cơ hội tại các hội chợ việc làm do các tỉnh, thành phố, các công ty, tập đoàn công nghệ như FPT, Viettel, VNPT, các trường đại học tổ chức. Các em cũng có thể tìm kiếm cơ hội việc làm qua các trang thông tin tuyển dụng trực tuyến của các doanh nghiệp, các chuyên trang về tuyển dụng như TopDev, Vietnamworks, LinkedIn.

LUYỆN TẬP

VẬN DỤNG