- Thập niên 1940: Các chương trình cho máy tính được viết bằng tay.
- Thâp niên 1950: Các công cụ đầu tiên xuất hiện như là phần mềm biên dịch Macro Assembler và phần mềm thông dịch đã được tạo ra và sử dụng rộng rãi để nâng cao năng suất và chất lượng. Các trình dịch được tối ưu hoá lần đầu tiên ra đời.
- Thập niên 1960: Các công cụ của thế hệ thứ hai như các trình dịch tối ưu hoá và công việc kiểm tra mẫu đã được dùng để nâng cao sản phẩm và chất lượng. Khái niệm công nghệ phần mềm đã được bàn thảo rộng rãi.
- Thập niên 1970: Các công cụ phần mềm, chẳng hạn trong UNIX các vùng chứa mã, lệnh make, v.v. được kết hợp với nhau. Số lượng doanh nghiệp nhỏ về phần mềm và số lượng máy tính cỡ nhỏ tăng nhanh.
- Thập niên 1980: các PC và máy trạm ra đời. Cùng lúc có sự xuất hiện của mô hình dự toán khả năng. Lượng phần mềm tiêu thụ tăng mạnh.
- Thập niên 1990: Phương pháp lập trình hướng đối tượng ra đời. Các quá trình nhanh như là lập trình cực hạn được chấp nhận rộng rãi. Trong thập niên này, WWW và các thiết bị máy tính cầm tay phổ biến rộng rãi.
- Hiện nay: Các phần mềm biên dịch và quản lý như là .NET, PHP, Java, ... việc thiết kế, viết phần mềm ứng dụng trở nên dễ dàng hơn nhiều.
Hướng tương lai của kỹ nghệ phần mềm
Lập trình định dạng và các phương pháp linh hoạt sẽ giữ vai trò quan trọng trong tương lai của công nghệ phần mềm. ICSE 2005 đã tham gia theo dõi cả hai chủ đề này. (ICSElà dạng viết tắt của International Conference on Software Engineering tức là Hội nghị Quốc tế về Kỹ nghệ Phần mềm.)
- Lập trình định dạng (aspect-oriented programming) sẽ giúp người lập trình ứng xử với các yêu cầu không liên quan đến các chức năng thực tế của phần mềm bằng cách cung ứng các công cụ để thêm hay bớt các khối mã ít bị thay đổi trong nhiều vùng của mã nguồn. Lập trình định dạng mô tả các đối tượng và hàm nên ứng xử như thế nào trong một tình huống cụ thể.
-
- Thí dụ: Lập trình định dạng có thêm vào các cơ cấu kiểm soát hiệu chỉnh lỗi, biên bản và khoá cho tất cả các đối tượng của một số kiểu. Các nhà nghiên cứu đang tìm cách ứng dụng lập trình định dạng để thiết kế mã cho mục tiêu thông thường.
- Phát triển phần mềm linh hoạt: nhằm hướng dẫn các đề án phát triển phần mềm mà trong đó bao gồm việc thoả mãn các nhu cầu thay đổi và sự cạnh tranh của thị trường một cách nhanh chóng. Các quá trình cồng kềnh, nặng về hồ sơ tính như là TickIT, CMM và ISO 9000 đang lu mờ dần tầm quan trọng.
Kĩ nghệ phần mềm có thể được chia thành
- 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.
- 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).
- 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.
- Kiểm thử phần mềm
- 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 đề đó.
- 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.
- 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.
- 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.
- Các công cụ kĩ thuật phần mềm, xem bài Computer Aided Software Engineering
- Chất lượng phần mềm
0 nhận xét :
Đăng nhận xét