PHÂN BIỆT PHẦN MỀM & CÔNG NGHỆ PHẦN MỀM

Bạn hiểu gì về thế giới phần mềm tất cả các khái niệm xung quanh? Hãy cùng Hybrid Technologies “nghiền ngẫm” bài viết dưới đây về tất tần tật những thứ liên quan đến “phần mềm” bạn nhé!

Phần mềm là gì?

Phần mềm là các chương trình máy tính và những tài liệu liên quan đến nó như: các yêu cầu, mô hình thiết kế, tài liệu hướng dẫn sử dụng… Do đó, chúng ta thấy rằng đặc điểm của phần mềm là trừu tượng và vô hình.

Các sản phẩm phần mềm được chia thành 2 loại:

  • Sản phẩm đại trà (Generic Product): Được phát triển để bán ra ngoài thị trường, đối tượng người sử dụng vì thế cũng tương đối đa dạng và phong phú.
  • Sản phầm theo đơn đặt hàng (Bespoke Product hoặc Customised Product): Được phát triển cho một khách hàng riêng lẻ theo yêu cầu. Ví dụ: Những hệ thống phần mềm chuyên dụng, hỗ trợ nghiệp vụ cho một doanh nghiệp riêng lẻ…

Như vậy một phần mềm mới có thể được tạo ra bằng cách phát triển từ đầu, thay đổi và điều chỉnh các hệ thống phần mềm đại trà hoặc tái sử dụng lại các phần mềm đã tồn tại.

Công nghệ phần mềm là gì?

Công nghệ phần mềm là những quy tắc công nghệ (engineering discipline) có liên quan đến tất cả các khía cạnh của quá trình sản xuất phần mềm.

Các Software Developer nên tuân theo một phương pháp, một quy trình có hệ thống, có tổ chức trong công việc của mình. Đồng thời, một kỹ sư phần mềm thường ưu tiên sử dụng các công cụ và kỹ thuật có sẵn thích hợp với vấn đề cần giải quyết thay vì tự suy nghĩ các phương pháp của mình. Vì cơ bản, các phương pháp có sẵn đã được những người lập trình viên trước giải quyết hiệu quả vấn đề và được nhiều người công nhận, sử dụng.

Khác biệt giữa công nghệ phần mềm và khoa học máy tính:

  • Khoa học máy tính thường đề cập tới lý thuyết và những vấn đề mang tính giải thuật cao, còn công nghệ phần mềm đề cập tới các hoạt động xây dựng và đưa ra một phần mềm hữu ích.
  • Khi sự phát triển của phần mềm trở nên mạnh mẽ thì các lý thuyết của khoa học máy tính đã không còn đáp ứng, đóng vai trò là nền tảng hoàn thiện cho công nghệ phần mềm.

Khác biệt giữa công nghệ phần mềm và công nghệ hệ thống:

  • Công nghệ hệ thống (hay còn gọi là kỹ nghệ hệ thống) liên quan tới tất cả các khía cạnh của quá trình phát triển hệ thống dựa trên máy tính bao gồm: phần cứng, phần mềm, và công nghệ xử lý. Công nghệ phần mềm chỉ là một phần của quy trình này, nó có liên quan tới việc phát triển hạ tầng phần mềm (software infrastructure), điều khiển, các ứng dụng và cơ sở dữ liệu trong hệ thống.
  • Kỹ sư hệ thống phải thực hiện việc đặc tả hệ thống, thiết kế kiến trúc hệ thống, tích hợp và triển khai.

Quy trình phần mềm là gì?

Quy trình phần mềm là tập hợp các hành động với mục đích là xây dựng và phát triển phần mềm. Những hành động thường được thực hiện trong các quy trình phần mềm bao gồm:

  • Đặc tả: Diễn giải, liệt kê những gì hệ thống phải làm và các ràng buộc trong quá trình xây dựng hệ thống.
  • Phát triển: Xây dựng hệ thống phần mềm.
  • Kiểm thử: Kiểm tra xem liệu phần mềm đã thoả mãn yêu cầu của khách hàng.
  • Mở rộng: Điều chỉnh và thay đổi phần mềm tương ứng với sự thay đổi yêu cầu.

Những loại hệ thống khác nhau sẽ cần những quy trình phát triển khác nhau. Ví dụ, hệ thống thời gian thực yêu cầu phải hoàn thành đặc tả hệ thống trước khi chuyển sang giai đoạn xây dựng nó. Nhưng với hệ thống thương mại điện tử, chúng ta có thể vừa đặc tả vừa xây dựng chương trình một cách đồng thời.

Tuy nhiên, nếu chúng ta không sử dụng một quy trình phát triển hệ thống thích hợp thì có thể làm giảm chất lượng của hệ thống và tăng chi phí xây dựng.

Mô hình quy trình phát triển phần mềm như thế nào?

Mô hình quy trình phát triển phần mềm là một thể hiện đơn giản của một quy trình phần mềm, và nó được biểu diễn từ một góc độ cụ thể.

Một số ví dụ về mô hình quy trình phát triển phần mềm:

  1. Mô hình luồng công việc (workflow): mô tả một chuỗi các hành động cần phải thực hiện.
  2. Mô hình luồng dữ liệu (data-flow): mô tả luồng thông tin.
  3. Mô hình Vai trò/Hành động (Role/action): chỉ ra vai trò của những người liên quan trong quy trình phần mềm và nhiệm vụ của từng người.
  4. Ngoài ra, còn có một số mô hình quy trình chung cũng được sử dụng như:
  • Mô hình thác nước (waterfall)
  • Mô hình phát triển lặp lại (Iterative development)
  • Mô hình công nghệ phần mềm dựa thành phần (Component-based software engineering).

Các phương pháp công nghệ phần mềm

Phương pháp công nghệ phần mềm bao gồm các mô hình hệ thống, các ký pháp, quy tắc, hướng dẫn thiết kế và quy trình để xây dựng phần mềm một cách dễ dàng, đảm bảo chất lượng cao và chi phí hiệu quả.

Một số phương pháp công nghệ phần mềm đã được đề xuất như:

  • Phân tích hướng cấu trúc: Tập trung vào việc xác định các chức năng cơ bản của hệ thống
  • Phương pháp hướng đối tượng: tập trung vào việc định nghĩa các đối tượng và sự cộng tác giữa chúng

Là một kỹ sư phần mềm giỏi, ngoài chuyên môn bạn cần có khả năng thích ứng, làm việc nghiêm túc, chuyên nghiệp, hiệu quả và tuân thủ quy trình phù hợp, dần dần tích lũy, dần dần phát triển, dần dần tạo ra càng nhiều giá trị. Chúc các bạn luôn thành công!

Facebook Comments
Đánh giá bài viết

Bạn thích bài viết này chứ?
Đăng ký để nhận những bài viết thú vị như thế hàng tuần.

Đừng sợ thất bại, chỉ sợ việc dậm chân tại chỗ

TÌM VIỆC
Bình luận