Kỹ thuật phần mềm là gì? Đặc điểm, định nghĩa
⚡ Tóm tắt thông minh
Kỹ thuật phần mềm là một quy trình có kỷ luật bao gồm việc phân tích các yêu cầu, sau đó thiết kế, xây dựng và kiểm thử phần mềm đáp ứng các yêu cầu đó. Tài liệu này giải thích các định nghĩa của kỹ thuật phần mềm, cuộc khủng hoảng phần mềm đã tạo ra nó, mức độ phổ biến, các ngành liên quan, những thách thức và đặc điểm của phần mềm tốt.

Kỹ thuật phần mềm là gì?
Kỹ thuật phần mềm được định nghĩa là quá trình phân tích yêu cầu của người dùng, sau đó thiết kế, xây dựng và kiểm thử một ứng dụng phần mềm đáp ứng được những yêu cầu đó.
Chúng ta hãy cùng xem xét các định nghĩa khác nhau về kỹ thuật phần mềm:
- IEEE, trong tiêu chuẩn 610.12-1990 của mình, định nghĩa kỹ thuật phần mềm là việc áp dụng một phương pháp có hệ thống, kỷ luật và có thể tính toán được vào việc phát triển, vận hành và bảo trì phần mềm.
- Fritz Bauer định nghĩa nó là “việc thiết lập và sử dụng các nguyên tắc kỹ thuật tiêu chuẩn. Nó giúp bạn có được phần mềm đáng tin cậy và hoạt động hiệu quả trên các máy móc thực tế một cách tiết kiệm chi phí”.
- Boehm định nghĩa kỹ thuật phần mềm là “việc ứng dụng thực tiễn kiến thức khoa học vào thiết kế và xây dựng sáng tạo các chương trình máy tính. Nó cũng bao gồm các tài liệu liên quan cần thiết cho việc phát triển phần mềm.”pingvận hành và bảo trì chúng.”
Tại sao là Kỹ thuật phần mềm? Khủng hoảng phần mềm và giải pháp của nó
Khủng hoảng phần mềm là gì?
- Đó là vào cuối những năm 1960 khi nhiều dự án phần mềm thất bại.
- Nhiều phần mềm đã vượt quá ngân sách dự kiến. Kết quả là phần mềm không đáng tin cậy và tốn kém chi phí bảo trì.
- Phần mềm lớn hơn khó bảo trì và khá tốn kém.
- Nhiều phần mềm không đáp ứng được nhu cầu ngày càng tăng của khách hàng.
- Độ phức tạp của các dự án phần mềm tăng lên mỗi khi khả năng phần cứng của chúng được nâng cao.
- Nhu cầu về phần mềm mới tăng nhanh hơn so với khả năng tạo ra phần mềm mới.
Tất cả những vấn đề nêu trên đã dẫn đến "Khủng hoảng phần mềm".
Giải pháp
Giải pháp cho vấn đề này là chuyển đổi nỗ lực lập trình thiếu tổ chức thành một ngành kỹ thuật phần mềm bài bản. Các mô hình kỹ thuật này đã giúp các công ty tối ưu hóa hoạt động và cung cấp phần mềm đáp ứng yêu cầu của khách hàng.
- Cuối những năm 1970 chứng kiến sự phổ biến rộng rãi của các nguyên tắc kỹ thuật phần mềm.
- Thập niên 1980 chứng kiến sự tự động hóa quy trình kỹ thuật phần mềm và sự phát triển của Kỹ thuật Phần mềm Hỗ trợ Máy tính (CASE).
- Những năm 1990 chứng kiến sự gia tăng nhấn mạnh vào các khía cạnh 'quản lý' của dự án và các tiêu chuẩn về chất lượng và quy trình, giống như tiêu chuẩn ISO 9001.
Tại sao Kỹ thuật phần mềm lại phổ biến?
Dưới đây là những lý do quan trọng đằng sau sự phổ biến của công nghệ phần mềm:
- Phần mềm lớn – Trong thực tế, việc xây một bức tường dễ hơn nhiều so với xây một ngôi nhà hay một tòa nhà. Tương tự như vậy, khi kích thước của phần mềm trở nên lớn hơn, kỹ thuật phần mềm sẽ giúp bạn xây dựng phần mềm đó.
- khả năng mở rộng – Nếu quy trình phát triển phần mềm dựa trên các khái niệm khoa học và kỹ thuật, việc tạo lại phần mềm mới để mở rộng quy mô phần mềm hiện có sẽ dễ dàng hơn.
- Khả năng thích ứng – Khi quy trình phát triển phần mềm dựa trên các nguyên tắc khoa học và kỹ thuật, việc tạo lại phần mềm mới sẽ dễ dàng hơn nhờ sự hỗ trợ của kỹ thuật phần mềm.
- Chi phí – Ngành công nghiệp phần cứng đã chứng tỏ năng lực của mình, và sản xuất quy mô lớn đã làm giảm chi phí máy tính và phần cứng điện tử.
- Tính chất động – Bản chất luôn phát triển và thích ứng của phần mềm. Nó phụ thuộc vào môi trường mà người dùng làm việc.
- Quản lý chất lượng – Cung cấp phương pháp phát triển phần mềm tốt hơn để tạo ra các sản phẩm phần mềm chất lượng.
Mối quan hệ của Kỹ thuật phần mềm với các ngành khác
Dưới đây là mối liên hệ giữa kỹ thuật phần mềm và các ngành học khác:
- Khoa học máy tính: Nó cung cấp nền tảng khoa học cho phần mềm, cũng giống như vật lý là nền tảng cho kỹ thuật điện.
- Khoa học quản lý: Kỹ thuật phần mềm là một công việc tốn nhiều công sức, đòi hỏi cả sự kiểm soát về kỹ thuật và quản lý. Do đó, nó được sử dụng rộng rãi trong khoa học quản lý.
- Kinh tế học: Trong lĩnh vực này, kỹ thuật phần mềm giúp bạn ước tính nguồn lực và kiểm soát chi phí. Một hệ thống máy tính cần được phát triển và dữ liệu cần được cập nhật thường xuyên trong phạm vi ngân sách cho phép.
- Kỹ thuật hệ thống: Hầu hết phần mềm là một thành phần của một hệ thống lớn hơn nhiều, ví dụ như phần mềm trong hệ thống giám sát công nghiệp hoặc phần mềm điều khiển chuyến bay trên máy bay. Các phương pháp kỹ thuật phần mềm nên được áp dụng để nghiên cứu các loại hệ thống này.
Những thách thức của Kỹ thuật phần mềm
Dưới đây là một số thách thức quan trọng mà các kỹ sư phần mềm phải đối mặt:
- Trong các lĩnh vực đòi hỏi an toàn tối cao như không gian, hàng không và nhà máy điện hạt nhân, chi phí do lỗi phần mềm có thể rất lớn vì tính mạng con người bị đe dọa.
- Nhu cầu thị trường ngày càng tăng về thời gian quay vòng nhanh.
- Giải quyết sự phức tạp ngày càng tăng của phần mềm cần thiết cho các ứng dụng mới.
- Sự đa dạng của các hệ thống phần mềm cần giao tiếp với nhau.
Thuộc tính cho sản phẩm phần mềm
Các đặc điểm của bất kỳ sản phẩm phần mềm nào đều bao gồm các tính năng được hiển thị khi sản phẩm được cài đặt và đưa vào sử dụng.
Chúng không phải là các dịch vụ được cung cấp bởi sản phẩm. Thay vào đó, chúng liên quan đến hành vi năng động của sản phẩm và cách sử dụng sản phẩm.
Ví dụ về các thuộc tính này là:
Efficiency, reliability, robustness, maintainability, etc.
Tuy nhiên, tầm quan trọng tương đối của những đặc điểm này thay đổi từ hệ thống phần mềm này sang hệ thống phần mềm khác.
| Đặc điểm sản phẩm | Mô tả Chi tiết |
|---|---|
| Khả năng bảo trì | Phần mềm phải phát triển để đáp ứng nhu cầu thay đổi của khách hàng. |
| Độ tin cậy | Độ tin cậy bao gồm nhiều đặc điểm khác nhau. Phần mềm đáng tin cậy không bao giờ được gây ra bất kỳ thiệt hại vật chất hoặc kinh tế nào vào thời điểm hệ thống bị lỗi. |
| Hiệu quả | Ứng dụng phần mềm không nên lạm dụng tài nguyên hệ thống như bộ nhớ và chu kỳ xử lý. |
| Khả năng sử dụng | Ứng dụng phần mềm cần có giao diện người dùng (UI) và tài liệu hướng dẫn phù hợp. |
Việc tối ưu hóa các thuộc tính trên là rất khó khăn. Ví dụ, việc cung cấp giao diện người dùng tốt hơn có thể làm giảm hiệu quả hoạt động của hệ thống.
Đặc điểm của phần mềm tốt
Bất kỳ phần mềm nào cũng nên được đánh giá dựa trên những gì nó cung cấp và các phương pháp giúp bạn sử dụng nó.
Mỗi phần mềm phải đáp ứng các thuộc tính sau:
- Operacâu chuyện
- Chuyển tiếp
- Bảo trì
Dưới đây là một số đặc điểm quan trọng của phần mềm tốt được phát triển bởi các chuyên gia phần mềm.
Operacâu chuyện
Đặc điểm này cho phép chúng ta biết phần mềm hoạt động tốt như thế nào trong thực tế, điều này có thể được đo lường bằng:
- Ngân sách
- Hiệu quả
- Khả năng sử dụng
- Độ tin cậy
- Tính đúng đắn
- Chức năng
- Sự An Toàn
- Bảo mật
Chuyển tiếp
Đây là một khía cạnh thiết yếu khi phần mềm được chuyển từ nền tảng này sang nền tảng khác:
- Khả năng cộng tác
- Tái sử dụng
- Tính di động
- Khả năng thích ứng
Bảo trì
Khía cạnh này đề cập đến khả năng thích ứng của phần mềm trong môi trường thay đổi nhanh chóng:
- Linh hoạt
- Khả năng bảo trì
- Mô đun
- khả năng mở rộng

