Công nghệ phần mềm là một nhánh kỹ thuật liên quan đến việc phát triển sản phẩm phần mềm bằng cách sử dụng các nguyên tắc, phương pháp và quy trình khoa học được xác định rõ ràng. Kết quả của công nghệ phần mềm là một sản phẩm phần mềm hiệu quả và đáng tin cậy.
Quản lý dự án phần mềm có phạm vi rộng hơn quy trình công nghệ phần mềm vì nó liên quan đến giao tiếp, hỗ trợ trước và sau khi phân phối, v.v.
Hướng dẫn này sẽ cung cấp cho bạn hiểu biết cơ bản về sản phẩm phần mềm, quy trình thiết kế và phát triển phần mềm, quản lý dự án phần mềm và độ phức tạp của thiết kế, v.v. Ở phần cuối của hướng dẫn, bạn nên được trang bị kiến thức tốt về các khái niệm công nghệ phần mềm.
Hướng dẫn này được thiết kế cho những độc giả theo đuổi giáo dục trong lĩnh vực phát triển phần mềm, những người khao khát Kiểm thử phần mềm và tất cả những độc giả nhiệt tình.
Hướng dẫn này được thiết kế và phát triển cho người mới bắt đầu. Mặc dù vậy, nhận thức về hệ thống phần mềm, quy trình phát triển phần mềm và nguyên tắc cơ bản của máy tính sẽ có ích.
Tổng quan về Kỹ thuật phần mềm
Trước tiên chúng ta hãy hiểu công nghệ phần mềm là viết tắt của từ gì. Thuật ngữ này được làm bằng hai từ, phần mềm và kỹ thuật.
Phần mềm không chỉ là mã chương trình. Một chương trình là một mã thực thi, phục vụ một số mục đích tính toán. Phần mềm được coi là tập hợp mã lập trình thực thi, các thư viện và tài liệu liên quan. Phần mềm, khi được tạo ra cho một yêu cầu cụ thể được gọi là sản phẩm phần mềm.
Mặt khác, kỹ thuật là tất cả những gì liên quan đến việc phát triển sản phẩm, sử dụng các nguyên tắc và phương pháp khoa học được xác định rõ ràng.
Công nghệ phần mềm là một nhánh kỹ thuật liên quan đến việc phát triển sản phẩm phần mềm bằng cách sử dụng các nguyên tắc, phương pháp và quy trình khoa học được xác định rõ ràng. Kết quả của công nghệ phần mềm là một sản phẩm phần mềm hiệu quả và đáng tin cậy.
Các định nghĩa
IEEE định nghĩa công nghệ phần mềm là:
(1) Việc áp dụng cách tiếp cận có hệ thống, kỷ luật, định lượng được để phát triển, vận hành và bảo trì phần mềm; nghĩa là ứng dụng kỹ thuật vào phần mềm.
(2) Việc nghiên cứu các cách tiếp cận như trong nhận định trên.
Fritz Bauer, một nhà khoa học máy tính người Đức, định nghĩa công nghệ phần mềm là:
Công nghệ phần mềm là việc thiết lập và sử dụng các nguyên tắc kỹ thuật hợp lý để có được phần mềm kinh tế, đáng tin cậy và hoạt động hiệu quả trên các máy thực.
Tiến hóa phần mềm
Quá trình phát triển một sản phẩm phần mềm sử dụng các nguyên tắc và phương pháp công nghệ phần mềm được gọi là tiến hóa phần mềm. Điều này bao gồm sự phát triển ban đầu của phần mềm, bảo trì và cập nhật phần mềm, cho đến khi sản phẩm phần mềm mong muốn được phát triển, đáp ứng các yêu cầu dự kiến.
Sự phát triển bắt đầu từ quá trình thu thập yêu cầu. Sau đó, các nhà phát triển tạo một nguyên mẫu của phần mềm dự định và hiển thị nó cho người dùng để nhận phản hồi của họ ở giai đoạn đầu phát triển sản phẩm phần mềm. Người dùng đề xuất các thay đổi, theo đó một số cập nhật và bảo trì liên tiếp cũng tiếp tục thay đổi. Quá trình này thay đổi thành phần mềm gốc, cho đến khi hoàn thành phần mềm mong muốn.
Ngay cả sau khi người dùng đã có phần mềm mong muốn trong tay, công nghệ tiên tiến và các yêu cầu thay đổi buộc sản phẩm phần mềm phải thay đổi theo. Tạo lại phần mềm từ đầu và thực hiện từng yêu cầu một là không khả thi. Giải pháp khả thi và kinh tế duy nhất là cập nhật phần mềm hiện có để nó phù hợp với các yêu cầu mới nhất.
Quy luật tiến hóa phần mềm
Lehman đã đưa ra các quy luật cho sự tiến hóa của phần mềm. Ông chia phần mềm thành ba loại khác nhau:
- S-type (kiểu tĩnh) – Đây là một phần mềm hoạt động đúng theo các thông số kỹ thuật và giải pháp đã xác định. Giải pháp và phương pháp để đạt được nó, cả hai đều được hiểu ngay trước khi viết mã. Phần mềm loại s ít bị thay đổi nhất do đó đây là phần mềm đơn giản nhất. Ví dụ, chương trình máy tính để tính toán.
- P-type (loại thực tế) – Đây là phần mềm có tập hợp các quy trình. Điều này được xác định bởi chính xác những gì thủ tục có thể làm. Trong phần mềm này, các thông số kỹ thuật có thể được mô tả nhưng giải pháp không rõ ràng ngay lập tức. Ví dụ, phần mềm chơi game.
- E-type (embedded-type) – Phần mềm này hoạt động bám sát yêu cầu của môi trường thực tế . Phần mềm này có mức độ phát triển cao vì có nhiều thay đổi về luật, thuế, v.v. trong các tình huống thực tế. Ví dụ như Phần mềm giao dịch trực tuyến.
Sự phát triển của phần mềm E-Type
Lehman đã đưa ra tám quy luật cho sự tiến hóa của phần mềm E-Type –
- Tiếp tục thay đổi – Một hệ thống phần mềm loại E phải tiếp tục thích ứng với những thay đổi của thế giới thực, nếu không nó sẽ dần trở nên ít hữu dụng hơn.
- Tăng độ phức tạp – Khi một hệ thống phần mềm kiểu E phát triển, độ phức tạp của nó có xu hướng tăng lên trừ khi công việc được thực hiện để duy trì hoặc giảm bớt nó.
- Bảo tồn sự quen thuộc – Sự quen thuộc với phần mềm hoặc kiến thức về cách nó được phát triển, tại sao nó được phát triển theo cách cụ thể đó, v.v. phải được giữ lại bằng mọi giá, để thực hiện các thay đổi trong hệ thống.
- Tiếp tục tăng trưởng- Để một hệ thống loại E nhằm giải quyết một số vấn đề kinh doanh, quy mô thực hiện các thay đổi của nó tăng lên theo những thay đổi về lối sống của doanh nghiệp.
- Giảm chất lượng – Hệ thống phần mềm loại E giảm chất lượng trừ khi được bảo trì nghiêm ngặt và thích nghi với môi trường hoạt động thay đổi.
- Hệ thống phản hồi- Các hệ thống phần mềm E-type cấu thành các hệ thống phản hồi đa cấp, nhiều vòng lặp và phải được xử lý như vậy để được sửa đổi hoặc cải tiến thành công.
- Tự điều chỉnh – Các quy trình phát triển hệ thống kiểu E tự điều chỉnh với việc phân phối các biện pháp sản phẩm và quy trình gần với bình thường.
- Sự ổn định của tổ chức – Tỷ lệ hoạt động toàn cầu hiệu quả trung bình trong hệ thống loại E đang phát triển là bất biến trong suốt vòng đời của sản phẩm.
Mô hình phần mềm
Các mô hình phần mềm đề cập đến các phương pháp và các bước được thực hiện trong khi thiết kế phần mềm. Có nhiều phương pháp được đề xuất và đang hoạt động ngày nay, nhưng chúng ta cần xem những mô hình này đứng ở đâu trong công nghệ phần mềm. Chúng có thể được kết hợp thành nhiều loại khác nhau, mặc dù mỗi loại được chứa trong nhau:
Mô hình lập trình là một tập hợp con của mô hình thiết kế Phần mềm, đây cũng là một tập hợp con của mô hình phát triển Phần mềm.
Mô hình phát triển phần mềm
Mô hình này được gọi là các mô hình công nghệ phần mềm trong đó tất cả các khái niệm kỹ thuật liên quan đến sự phát triển của phần mềm được áp dụng. Nó bao gồm các nghiên cứu khác nhau và thu thập yêu cầu giúp xây dựng sản phẩm phần mềm. Nó bao gồm –
- Thu thập các yêu cầu
- Thiết kế phần mềm
- lập trình
Mô hình thiết kế phần mềm
Mô hình này là một phần của Phát triển phần mềm và bao gồm –
- Thiết kế
- BẢO TRÌ
- lập trình
Mô hình lập trình
Mô hình này liên quan chặt chẽ đến khía cạnh lập trình của phát triển phần mềm. Điêu nay bao gôm –
- mã hóa
- thử nghiệm
- Hội nhập
Nhu cầu của Kỹ thuật phần mềm
Nhu cầu về công nghệ phần mềm phát sinh do tốc độ thay đổi cao hơn trong các yêu cầu của người dùng và môi trường mà phần mềm đang hoạt động.
- Phần mềm lớn – Tương tự như vậy, việc xây dựng một bức tường dễ dàng hơn so với xây dựng một ngôi nhà hoặc tòa nhà, vì kích thước của phần mềm trở nên lớn, kỹ thuật phải từng bước tạo cho nó một quy trình khoa học.
- Khả năng mở rộng – Nếu quy trình phần mềm không dựa trên các khái niệm khoa học và kỹ thuật, thì việc tạo lại phần mềm mới sẽ dễ dàng hơn là mở rộng quy mô phần mềm hiện có.
- Chi phí- Khi ngành công nghiệp phần cứng đã thể hiện kỹ năng của mình và việc sản xuất quy mô lớn đã hạ giá phần cứng máy tính và điện tử xuống. Nhưng chi phí của phần mềm vẫn còn cao nếu quy trình phù hợp không được điều chỉnh.
- Bản chất động- Bản chất luôn phát triển và thích nghi của phần mềm phụ thuộc rất nhiều vào môi trường mà người dùng làm việc. Nếu bản chất của phần mềm luôn thay đổi, thì cần phải thực hiện các cải tiến mới trong phần mềm hiện có. Đây là nơi công nghệ phần mềm đóng một vai trò tốt.
- Quản lý chất lượng- Quy trình phát triển phần mềm tốt hơn cung cấp sản phẩm phần mềm chất lượng và tốt hơn.
Đặc điểm của phần mềm tốt
Một sản phẩm phần mềm có thể được đánh giá bởi những gì nó cung cấp và nó có thể được sử dụng tốt như thế nào. Phần mềm này phải đáp ứng các lý do sau:
- hoạt động
- chuyển tiếp
- BẢO TRÌ
Phần mềm được chế tạo và thiết kế tốt được kỳ vọng sẽ có các đặc điểm sau:
hoạt động
Điều này cho chúng ta biết phần mềm hoạt động tốt như thế nào trong các hoạt động. Nó có thể được đo trên:
- Ngân sách
- khả năng sử dụng
- Hiệu quả
- tính đúng đắn
- chức năng
- đáng tin cậy
- Bảo vệ
- Sự an toàn
chuyển tiếp
Khía cạnh này rất quan trọng khi phần mềm được chuyển từ nền tảng này sang nền tảng khác:
- tính di động
- khả năng tương tác
- khả năng tái sử dụng
- khả năng thích ứng
BẢO TRÌ
Khía cạnh này tóm tắt về việc một phần mềm có khả năng tự duy trì tốt như thế nào trong môi trường luôn thay đổi:
- tính mô đun
- khả năng bảo trì
- Uyển chuyển
- khả năng mở rộng
Nói tóm lại, Công nghệ phần mềm là một nhánh của khoa học máy tính, sử dụng các khái niệm kỹ thuật được xác định rõ ràng cần thiết để tạo ra các sản phẩm phần mềm hiệu quả, bền bỉ, có thể mở rộng, trong ngân sách và đúng thời hạn.