# data[].attributes.body
Trần Văn Bình
Lê Tiến Đạt
Trần Anh Tuấn
Đặng Viết Cường

# data[].attributes.body
1. Công nghệ phần mềm là gì?

Công nghệ phần mềm là chuyên ngành nghiên cứu về hệ thống kỹ thuật, phần mềm máy tính. Cụ thể, ngành học này tập trung nghiên cứu về các hạ tầng phần mềm, cơ sở dữ liệu cũng như sự phát triển của các ứng dụng và hệ thống. Ngành tập trung vào việc xây dựng các ứng dụng giúp nâng cao hiệu quả hoạt động của các doanh nghiệp và chất lượng đời sống con người.
2.Kiến thức liên quan ngành công nghệ phần mềm?

Kiến thức cơ bản về máy tính, hệ điều hành và các công cụ lập trình, kỹ thuật lập trình.

Kỹ năng thiết kế, xây dựng, phát triển dự án phần mềm hoàn chỉnh.

Kỹ năng thu thập, phân tích yêu cầu khách hàng và sử dụng các công cụ lập trình sẵn có để xây dựng phần mềm phù hợp yêu cầu.

Kiến thức về cách vận hành, bảo trì phần mềm; tổ chức, quản lý đảm bảo chất lượng phần mềm;

Tư vấn các vấn đề về giải pháp Công nghệ thông tin cho tổ chức, doanh nghiệp.

3.Các ngành liên quan?

-Khoa học máy tính
-Quản lý dự án
-Kĩ nghệ hệ thống
4.Các ngành chuyên sâu?

1. Yêu cầu phần mềm: Phân tách, phân tích, đặc tả và phê chuẩn các yêu cầu đối với phần mềm.

2. Thiết kế phần mềm: Việc thiết kế phần mềm thường được hoàn thành bằng các công cụ Computer-Aided Software Engineering (CASE) và sử dụng các tiêu chuẩn định dạng, như Unified Modeling Language (UML).

3. Phát triển phần mềm: Xây dựng phần mềm thông qua việc dùng các ngôn ngữ lập trình.

4. Kiểm thử phần mềm: Kiểm thử phần mềm là quá trình thực thi 1 chương trình với mục đích tìm ra lỗi. Kiểm thử phần mềm mục đích để đảm bảo sản phẩm phần mềm đáp ứng chính xác, đầy đủ và đúng theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra.

5. Bảo trì phần mềm: Các hệ thống phần mềm thường có nhiều vấn đề và cần được cải tiến trong một thời gian dài sau khi đã được hoàn tất vào lần đầu tiên. Lĩnh vực con này xem xét các vấn đề đó.

6. Quản lý cấu hình phần mềm: Bởi vì các hệ thống phần mềm rất phức tạp, cấu hình của chúng (ví dụ như kiểm soát phiên bản và mã nguồn) phải được quản lý bằng các phương pháp chuẩn và có cấu trúc.

7. Quản lý kĩ nghệ phần mềm: Quản lý hệ thống phần mềm vay mượn rất nhiều khái niệm từ quản lý dự án, nhưng có nhiều khác biệt nhỏ gặp trong phần mềm mà không gặp trong các ngành quản lý khác.

8. Quy trình phát triển phần mềm: Quy trình xây dựng phần mềm là điều tranh cãi giữa các nhà thực hành; một số quy trình nổi tiếng là Mô hình Thác nước, Mô hình Xoắn ốc, Phát triển Tăng tiến và Lặp, và Phát triển Linh hoạt.

9. Các công cụ kĩ thuật phần mềm

10. Chất lượng phần mềm

5.Các thuộc tính của sản phẩm phần mềm?

1. Khả năng bảo trì: Nó có khả năng thực hành những tiến triển để thỏa mãn yêu cầu của khách hàng.

2. Khả năng tin cậy: Khả năng tin cậy của phần mềm bao gồm một loạt các đặc tính như là độ tin cậy, an toàn, và bảo mật. Phần mềm tin cậy không thể tạo ra các thiệt hại vật chất hay kinh tế trong trường hợp hư hỏng.

3. Độ hữu hiệu: Phần mềm không thể phí phạm các nguồn tài nguyên như là bộ nhớ và các chu kì vi xử lý.

4. Khả năng sử dụng: Phần mềm nên có một giao diện tương đối dễ cho người dùng và có đầy đủ các hồ sơ về phần mềm.

# data[].attributes.body
Lập trình web là công việc của một Web Developer (Lập trình viên website) có nhiệm vụ nhận toàn bộ dữ liệu (Giao diện web tĩnh) từ bộ phận thiết kế web để chuyển thành một hệ thống website hoàn chỉnh có tương tác với CSDL và tương tác với người dùng dựa trên ngôn ngữ máy tính.
Lập trình web gồn có: Front-end; Back-end; Fullstack.

I)    Front end developer:

1.    Front end developer:Front-end là phần giao diện người dùng nhìn thấy và có thể tương tác, đó chính là các ứng dụng mobile hay những website bạn đã từng sử dụng. Vì vậy, nhiệm vụ của lập trình viên Front-end là xây dựng các giao diện đẹp, dễ sử dụng và tối ưu trải nghiệm người dùng.

2.    Mức lương : Tại Việt Nam, mức lương trung bình cho lập trình viên front-end vào khoảng 16.000.000đ / tháng.

3.    Lộ trình học:

1) HTML & CSS

Để học web Front-end chúng ta luôn bắt đầu với ngôn ngữ HTML và CSS, đây là 2 ngôn ngữ có mặt trong mọi website trên internet

2) Javascript

Với HTML, CSS bạn mới chỉ xây dựng được các websites tĩnh, chỉ bao gồm phần giao diện và gần như chưa có xử lý tương tác gì. Để thêm nhiều chức năng phong phú và tăng tính tương tác cho website bạn cần học Javascript.

3) Libraries & Frameworks

Một website hay ứng dụng hiện đại rất phức tạp, chỉ sử dụng HTML, CSS, Javascript theo cách code thuần (tự code từ đầu tới cuối) sẽ rất khó khăn. Vì vậy các Libraries, Frameworks ra đời nhằm đơn giản hóa, tiết kiệm chi phí và thời gian để hoàn thành một sản phẩm website hoặc ứng dụng mobile.

II)  Backend developer

1)    Back-end là nơi xử lý dữ liệu và lưu trữ. Vì vậy, nhiệm vụ của lập trình viên Backend là phân tícc năng trong ứng dụng.h thiết kế dữ liệu, xử lý logic nghiệp vụ của các chữ.

2) Mức lương

Tại Việt Nam, mức lương trung bình cho lập trình viên Back-end vào khoảng 19.000.000đ / tháng.

3) Lộ trình

Với phần Front end thì công nghệ chủ yếu được phát triển bằng HTML, CSS, Bootstrap và JavaScript, v.v.
Nhưng phần Backend thì rất đa dạng, công nghệ đáp ứng lập trình Back end rất nhiều như: JAVA, PHP, Python, Ruby, C# với các Web Framework để tạo một ứng dụng cung cấp tất cả các chức năng cần thiết cho người dùng và cũng như xử lý cơ sở dữ liệu

Một cái lộ trình mà bạn có thể tham khảo:

🔘 Internet

🔘Basic HTML&CSS

🔘Github

🔘Database

🔘API

🔘NodeJs

🔘Không ngừng học hỏi hằng ngày

III) Fullstack

1) Fullstack là vai trò đã được phổ biến cách đây 4 năm bởi bộ phận kỹ thuật của Facebook. Ý tưởng là một lập trình viên full stack có thể làm việc liên chức năng trên “stack” công nghệ, tức là cả front end lẫn back end. Hiểu ngắn gọn là làm cả công việc front end và cả back end.

2)Mực lương

Hiện tại khoảng lương phổ biến là 16-33 triệu đồng. Với kinh nghiệm từ 2 đến 4 năm, mức lương trung bình một full stack developer nhận được là 24 triệu/ tháng.

# data[].attributes.body
Quy trình thiết kế phần mềm là gì?

Quy trình thiết kế phần mềm là thuật ngữ thường được sử dụng trong ngành IT. Đây là một tập hợp các bước để thiết kế và lập trình nên phần mềm. Quy trình thiết kế luôn được nghiên cứu và tối ưu liên tục. Để mang lại một phần mềm chất lượng cùng chi phí thấp nhất. Hiện nay, có rất nhiều quy trình thiết kế khác nhau. Tùy theo từng mục đích và yêu cầu, mà mỗi công sẽ lựa chọn một phương pháp thích hợp.

Thiết kế phần mềm là gì?

5 bước trong quy trình thiết kế phần mềm

Dù có rất nhiều quy trình thiết kế phần mềm khác nhau nhưng nhìn chung các quy trình đều phải đáp ứng được 5 bước dưới đây:

Bước 1: Xác định yêu cầu và giải pháp

Bước đầu tiên là làm việc với khách hàng để hiểu rõ nhu cầu của khách. Từ đó lập lên các bảng yêu cầu chi tiết cũng như đề giải pháp cho các vấn đề phát sinh. Các yêu cầu và giải pháp này sau đó sẽ được tổng hợp lại thành 1 bộ tài liệu.

Bước 2: Thiết kế phần mềm

Trong bước thứ 2 của thiết kế phần mềm là lên bản thiết kế. Tại bước này, các mô hình tổng thể về phần mềm sẽ được đưa ra. Ngoài ra, các tính năng và thiết kế cơ sở dữ liệu cũng sẽ được đề cập đến.

Bước 3: Lập trình phần mềm

Đây là công đoạn chính trong quy trình thiết kế phần mềm. Tại bước này, các lập trình viên sẽ tiến hành viết code. Các module và chức năng sẽ lần lượt được viết nên. Rồi sau đó chúng được kết hợp thành 1 sản phẩm hoàn chỉnh.

Các bước thiết kế phần mềm

Bước 4: Kiểm thử

Tại bước kiểm thử, các tester sẽ kiểm tra phần mềm để phát hiện lỗi và bug. Các kịch bản kiểm thử (Test Case) cũng sẽ được áp dụng ở bước này. Đầu ra tại bước này là lỗi và hướng khắc phục cho các lập trình viên hoàn thành sản phẩm cuối cùng.

Bước 5: Triển khai sản phẩm

Công đoạn cuối cùng trong quy trình thiết kế phần mềm là triển khai sản phẩm. Đây là lúc làm việc và ký biên bản bàn giao phần mềm cho khách hàng hoặc triển khai chạy phần mềm đối với các công ty tự phát triển.

# data[].attributes.body
1.Khái niệm
Công nghệ phần mềm (hay còn được gọi kỹ thuật phần mềm). Đây là một khái niệm trong ngành công nghệ thông tin, liên quan mật thiết tới các khía cạnh của quá trình sản xuất phần mềm. Công nghệ này được áp dụng một cách có hệ thống cho sự phát triển, sử dụng cũng như để bảo trì các phần mềm hệ thống.

2.Tìm hiểu về công nghệ phần mềm
Ngành này được xem là một bộ phận của quy trình công nghệ hệ thống. Nó có liên quan tới sự phát triển của các ứng dụng, hạ tầng, cơ sở dữ liệu và điều khiển hệ thống. Các kỹ sư phần mềm luôn phải tuân thủ quy định của hệ thống, tổ chức trong việc tổ chức công việc. Ngoài ra, họ cũng phải tuân thủ quy định về sử dụng kỹ thuật, công cụ phù hợp với từng vấn đề.

Khác với khoa học máy tính, công nghệ phần mềm không chỉ đề cập tới lý thuyết, các vấn đề cơ bản. Nó còn tập trung vào hoạt động xây dựng, tạo ra những sản phẩm hữu ích với con người.

3.Kỹ sư phần mềm ra trường làm gì?
Bạn có rất nhiều lựa chọn cho công việc của mình khi theo ngành này. Bạn có thể tham khảo một số ngành như:

Lập trình viên: Đây là nghề phổ biến nhất khi theo học ngành công nghệ. Bạn có thể học nhiều ngôn ngữ lập trình khác nhau như .NET, Java, Kolin, PHP, Ruby… Cũng có nhiều vị trí khác nhau như Frond-end, back-end,…

UX designer: Làm UX designer bạn sẽ hiểu được những thứ người dùng sử dụng. Bạn sẽ phải mô tả phần mềm (những thành phần nào tham gia, tiếp cận ra sao). Ngoài ra, bạn cũng sẽ phải mô tả về giao diện, màn hình…

Kỹ sư thiết kế phần mềm: Công việc này đòi hỏi bạn phải hiểu biết chuyên sâu về lập trình.

Business Analysis: Đây là vị trí trung tâm cầu nối giữa sale, marketing, CEO… với các kỹ thuật viên. Họ cần phải hiểu được hai ngôn ngữ: kỹ thuật – phi kỹ thuật. Bởi họ cần làm việc với cả rất nhiều bộ phận khác nhau.

Các vị trí khác: Một số vị trí khác mà bạn có thể làm như: Quản lý dự án, tester, làm tin học ứng dụng, quản trị hệ thống, kỹ sư dữ liệu, product manager…

Ngành công nghệ phần mềm không những hạ nhiệt mà ngày một được ưa chuộng hơn. Nếu bạn có định hướng theo ngành này, hãy chăm chỉ học, và sớm vạch ra định hướng nghề nghiệp nhé.

4.Cơ hội việc làm
Có thể nói, công nghệ là 1 trong 5 ngành hot nhất hiện nay. Với tính ứng dụng cao, như cầu thị trường lớn, ngành này vẫn chưa có dấu hiệu hạ nhiệt. Bởi hầu hết cuộc sống của chúng ta hiện tại đều xoay quanh các phần mềm. Có thể kể đến như ứng dụng trên máy tính, điện thoại, phần mềm quản lý công việc, quản lý trường học, phần mềm thiết kế, phần mềm chụp – sửa ảnh, mạng xã hội…)

5.Mức lương tiềm năng
Ngành này cũng mang lại mức lương cực kỳ hấp dẫn, từ 8 – 50 triệu. Thậm chí có thể hơn tùy vào kinh nghiệm của bạn. Do vậy, bạn không cần lo lắng về cơ hội việc làm khi theo ngành này.

# data[].attributes.body
1. Công nghệ phần mềm là gì?

Công nghệ phần mềm (hay còn được gọi kỹ thuật phần mềm). Đây là một khái niệm trong ngành công nghệ thông tin, liên quan mật thiết tới các khía cạnh của quá trình sản xuất phần mềm. Công nghệ này được áp dụng một cách có hệ thống cho sự phát triển, sử dụng cũng như để bảo trì các phần mềm hệ thống.
2.Kiến thức liên quan ngành công nghệ phần mềm?

Kiến thức cơ bản về máy tính, hệ điều hành và các công cụ lập trình, kỹ thuật lập trình.

Kỹ năng thiết kế, xây dựng, phát triển dự án phần mềm hoàn chỉnh.

Kỹ năng thu thập, phân tích yêu cầu khách hàng và sử dụng các công cụ lập trình sẵn có để xây dựng phần mềm phù hợp yêu cầu.

Kiến thức về cách vận hành, bảo trì phần mềm; tổ chức, quản lý đảm bảo chất lượng phần mềm;

Tư vấn các vấn đề về giải pháp Công nghệ thông tin cho tổ chức, doanh nghiệp.

3.Các ngành liên quan?

-Khoa học máy tính
-Quản lý dự án
-Kĩ nghệ hệ thống
4.Các ngành chuyên sâu?

1. Yêu cầu phần mềm: Phân tách, phân tích, đặc tả và phê chuẩn các yêu cầu đối với phần mềm.

2. Thiết kế phần mềm: Quy trình thiết kế phần mềm là gì?
Quy trình thiết kế phần mềm là thuật ngữ thường được sử dụng trong ngành IT. Đây là một tập hợp các bước để thiết kế và lập trình nên phần mềm. Quy trình thiết kế luôn được nghiên cứu và tối ưu liên tục. Để mang lại một phần mềm chất lượng cùng chi phí thấp nhất. Hiện nay, có rất nhiều quy trình thiết kế khác nhau. Tùy theo từng mục đích và yêu cầu, mà mỗi công sẽ lựa chọn một phương pháp thích hợp.

Thiết kế phần mềm là gì?
5 bước trong quy trình thiết kế phần mềm
Dù có rất nhiều quy trình thiết kế phần mềm khác nhau nhưng nhìn chung các quy trình đều phải đáp ứng được 5 bước dưới đây:

Bước 1: Xác định yêu cầu và giải pháp
Bước đầu tiên là làm việc với khách hàng để hiểu rõ nhu cầu của khách. Từ đó lập lên các bảng yêu cầu chi tiết cũng như đề giải pháp cho các vấn đề phát sinh. Các yêu cầu và giải pháp này sau đó sẽ được tổng hợp lại thành 1 bộ tài liệu.

Bước 2: Thiết kế phần mềm
Trong bước thứ 2 của thiết kế phần mềm là lên bản thiết kế. Tại bước này, các mô hình tổng thể về phần mềm sẽ được đưa ra. Ngoài ra, các tính năng và thiết kế cơ sở dữ liệu cũng sẽ được đề cập đến.

Bước 3: Lập trình phần mềm
Đây là công đoạn chính trong quy trình thiết kế phần mềm. Tại bước này, các lập trình viên sẽ tiến hành viết code. Các module và chức năng sẽ lần lượt được viết nên. Rồi sau đó chúng được kết hợp thành 1 sản phẩm hoàn chỉnh.

Các bước thiết kế phần mềm
Bước 4: Kiểm thử
Tại bước kiểm thử, các tester sẽ kiểm tra phần mềm để phát hiện lỗi và bug. Các kịch bản kiểm thử (Test Case) cũng sẽ được áp dụng ở bước này. Đầu ra tại bước này là lỗi và hướng khắc phục cho các lập trình viên hoàn thành sản phẩm cuối cùng.

Bước 5: Triển khai sản phẩm
Công đoạn cuối cùng trong quy trình thiết kế phần mềm là triển khai sản phẩm. Đây là lúc làm việc và ký biên bản bàn giao phần mềm cho khách hàng hoặc triển khai chạy phần mềm đối với các công ty tự phát triển.

3. Phát triển phần mềm: Xây dựng phần mềm thông qua việc dùng các ngôn ngữ lập trình.

4. Kiểm thử phần mềm: Kiểm thử phần mềm là quá trình thực thi 1 chương trình với mục đích tìm ra lỗi. Kiểm thử phần mềm mục đích để đảm bảo sản phẩm phần mềm đáp ứng chính xác, đầy đủ và đúng theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra.

5. Bảo trì phần mềm: Các hệ thống phần mềm thường có nhiều vấn đề và cần được cải tiến trong một thời gian dài sau khi đã được hoàn tất vào lần đầu tiên. Lĩnh vực con này xem xét các vấn đề đó.

6. Quản lý cấu hình phần mềm: Bởi vì các hệ thống phần mềm rất phức tạp, cấu hình của chúng (ví dụ như kiểm soát phiên bản và mã nguồn) phải được quản lý bằng các phương pháp chuẩn và có cấu trúc.

7. Quản lý kĩ nghệ phần mềm: Quản lý hệ thống phần mềm vay mượn rất nhiều khái niệm từ quản lý dự án, nhưng có nhiều khác biệt nhỏ gặp trong phần mềm mà không gặp trong các ngành quản lý khác.

8. Quy trình phát triển phần mềm: Quy trình xây dựng phần mềm là điều tranh cãi giữa các nhà thực hành; một số quy trình nổi tiếng là Mô hình Thác nước, Mô hình Xoắn ốc, Phát triển Tăng tiến và Lặp, và Phát triển Linh hoạt.

9. Các công cụ kĩ thuật phần mềm

10. Chất lượng phần mềm

11. Lập trình web: là công việc của một Web Developer (Lập trình viên website) có nhiệm vụ nhận toàn bộ dữ liệu (Giao diện web tĩnh) từ bộ phận thiết kế web để chuyển thành một hệ thống website hoàn chỉnh có tương tác với CSDL và tương tác với người dùng dựa trên ngôn ngữ máy tính.
Lập trình web gồn có: Front-end; Back-end; Fullstack.
Một cái lộ trình mà bạn có thể tham khảo:
🔘 Internet
🔘Basic HTML&CSS
🔘Github
🔘Database
🔘API
🔘NodeJs
🔘Không ngừng học hỏi hằng ngày

5.Các thuộc tính của sản phẩm phần mềm?

1. Khả năng bảo trì: Nó có khả năng thực hành những tiến triển để thỏa mãn yêu cầu của khách hàng.

2. Khả năng tin cậy: Khả năng tin cậy của phần mềm bao gồm một loạt các đặc tính như là độ tin cậy, an toàn, và bảo mật. Phần mềm tin cậy không thể tạo ra các thiệt hại vật chất hay kinh tế trong trường hợp hư hỏng.

3. Độ hữu hiệu: Phần mềm không thể phí phạm các nguồn tài nguyên như là bộ nhớ và các chu kì vi xử lý.

4. Khả năng sử dụng: Phần mềm nên có một giao diện tương đối dễ cho người dùng và có đầy đủ các hồ sơ về phần mềm.