Công nghệ phần mềm là cách tiếp cận hệ thống để sản xuất phần mềm có tích đến các chi phí, lịch trình và độ tin cậy cũng như nhu cầu của khách hàng và nhà sản xuất.Làm thế nào mà cách tiếp cận này thực thi trong thực tế thì phụ thuộc vào các tổ chức phát triển phần mềm, loại phần mềm và con người tham gia tiến trình sản xuất phần mềm. Không có phương pháp nào chung cho mọi loại hệ thống, vì vậy đã có rất nhiều phương pháp và kỹ thuật công nghệ phần mềm trong hơn 50 năm qua.
Có lẻ nhân tố quan trọng nhất để xác định phương thức công nghệ phần nào là loại phần mềm. Có nhiều loại ứng dụng khác nhau như:
1. Ứng dụng đơn: Đây là những ứng dụng chạy trên máy cục bộ, như là pc. Nó bao gồm tất cả các chức năng cần thiết và không cần kết nối mạng. Ví dụ như những ứng dụng văn phòng trên máy PC, chương trình CAD, photoshop.
2. Ứng dụng tương tác dựa trên giao dịch: Những ứng dụng này thực thi trên máy tính từ xa hoặc truy cập bởi người dùng từ máy tính của họ hoặc từ các thiết bị đầu cuối. Rõ ràng nó có bao gồm các ứng dụng web như thương mại điện tử nơi mà khách hàng tương tác với hệ thống mua bán sản phẩm và dịch vụ từ xa. Lớp ứng dụng này còn bao gồm hệ thống doanh nghiệp, nơi mà người dùng có quyền truy xuất tới hệ thống của họ qua trình duyệt web hoặc một chương trình khách đặc biệt hoặc dịch vụ đám mây như mail, chia sẻ hình ảnh. Ứng dụng tương tác thường hường kết hợp với dữ liệu lưu trữ lớn mà được truy cập, cập nhật với mỗi ứng dụng.
3. Hệ thống điều khiển nhúng: Đây là phần mềm điều khiển hệ thống các thiết bị phần cứng. Có rất nhiều phần mềm nhúng hơn các loại phần mềm khác. Ví dụ như phần mềm điều khiển điện thoại di động, phần mềm chống bó cứng phanh ô tô, phần mềm lo vi sóng điều khiển tiến trình nấu.
4. Hệ thống xử lý hàng loạt: Đây là các hệ thống nghiệp vụ được thiết kế để xử lý dữ liệu với số lượng lớn. Chúng xử lý số lượng lớn các giá trị đầu vào đơn lẻ tạo ra các giá trị đầu ra tương ứng. Ví dụ hệ thống thanh toán lương, thanh toán điện thoại, tiền điện …
5. Hệ thống giải trí: Đây là hệ thống dành cho cá nhân và dùng để giải trí cho người dùng. Hầu hết các hệ thống này là trò chơi. Chất lượng tương tác với người dùng là đặc tính quan trọng.
6. Hệ thống mô phỏng và giả lập: Loại hệ thống này được phát triển bởi các nhà khoa học và kỹ sư để mô hình hóa các tiến trình hoặc tình huống vật lý mà bao gồm rất nhiều tương tác riêng biệt. Đây là những tương tác tính toán cường độ lớn đòi hỏi những hệ thống song song để thực hiện.
7. Hệ thống thu thập dữ liệu: Đây là hệ thống thu thập dữ liệu từ môi trường, chúng thường sử dụng một loạt các cảm biến, gửi dữ liệu về hệ thống xử lý. Phần mềm cần phải tương tác với các cảm biến và thường được cài đặt trong môi trường không thân thiện như trong động cơ hoặc tại một địa điểm xa.
8. Hệ thống của các hệ thống: đây là hệ thống được kết hợp với số lượng lớn các phần mềm khác. Một vài chúng có thể là sản phẩm phần mềm thông thường như những chương trình bảng tính. Một vài hệ thống khác viết bằng hợp ngữ.
Dĩ nhiên, phân cách giữa các loại hệ thống này mờ. Nếu phát triển một phần mềm trò chơi cho điện thoại di động, bạn cũng phải tính đến các ràng buộc khác như điện năng, tương tác phần cứng như người phát triển phần mềm điện thoại. Những phần mềm xử lý lớn thường dùng chung với các hệ thống nền web. Ví dụ trong một công ty, chi phí vận chuyển có thể được nhập thông qua ứng dụng web, nhưng ứng dụng xử lý số liệu này theo hàng tháng.
Các công nghệ phần mềm khác nhau được sử dụng khác nhau cho mỗi loại hệ thống bởi vì các phần mềm này có đặc tính khác biệt nhau. Ví dụ một phần mềm nhúng trong ô tô sẽ được viết vào ROM khi cài đặt xe. Vì vậy sẽ rất đắt khi thay đổi. Những hệ thống này cần sự kiểm định rất cẩn thận và chi phí rất cao để giảm nguy cơ thu hồi lại xe sau khi bán để sửa xe. Rất ít tương tác với người dùng do đó không cần dùng quy trình phát triển mẩu thử giao diện.
Đối với các hệ thống ứng dụng web, cách tiếp cận theo sự phát triển và chuyển giao định kỳ được ưu tiên, với hệ thống được kết hộp bởi các thành phần sử dụng lại. Tuy nhiên cách tiếp cận như vậy lại không thức thế đối với hệ thống của hệ thống, bởi các chi tiết đặc tả của hệ thống tương tác cần phải chỉ rõ nhằm mỗi hệ thống riếng biệt có thể phát triển riêng rẽ.
Tuy vậy, cũng có những nền tảng của công nghệ phần mềm có thể áp dụng cho tất cả loại phần mềm:
1. Các phần mềm nên được phát triển bởi các quy trình phát triển bởi các quy trình phát triển mà tổ chức am hiểu. Ngoài ra, tổ chức phát triển phần mềm cũng nên lập kế hoạch quy trình phát triển, phải hiểu rõ sẽ sản xuất cái gì và khi nào hoàn thiện. Dĩ nhiên, các quy trình khác nhau cho các loại phần mềm khác nhau.
2. Độ tin cậy và hiệu xuất rất quan trọng cho mọi loại hệ thống. Phần mềm phải được như mong đợi và không gặp lỗi trông quá trình hoạt động, tránh khỏi được các tấn công từ bên ngoài, hoạt động hiệu quả và không lãng phí tài nguyên.
3. Cần hiểu biết và quản lý được đặc tả và yêu cầu của phần mềm. Chúng ta cần phải biết sự khác biệt giữa khách hàng và người dùng hệ thống mong đợi từ phần mềm, và bạn phải xử lý điều đó để có một hệ thống hữu ích trong thời gian và ngân sách nhất định
4. Phải sử dụng hiệu quả tất cả những tài nguyên sẳn có. Điều này có nghĩa luôn ưu tiên sử dụng những phần mềm đã có hơn là viết một phần mềm mới nếu có thể.
Trên đây là những khái niệm nền tảng về các quy trình, độ tin cậy, yêu cầu, quản lý và tái sử dụng. Các phương thức khác nhau phản ánh chúng một cách khác nhau những đều là nền tảng của các quy trình phát triển.
Cần phải chú ý rằng những vấn đề nền tảng này không bao gồm ngôn ngữ lập trình và quá trình cài đặt. Ví dụ một ngôn ngữ dùng để lập trình web thì không phù hợp với phát triển phần mềm nhúng.
No comments:
Post a Comment