(Post 20/10/2006) Công nghệ phần mềm (hay còn
gọi là kỹ nghệ phần mềm; tiếng Anh: software engineering) là sự vận dụng
thực tế của những kiến thức khoa học trong việc thiết kế, cấu tạo của
phần mềm cũng như những tài liệu liên quan trong việc phát triển, hoạt
động và bảo dưỡng của nó. Công nghệ phần mềm bao gồm những kiến thức và
ứng dụng của những nguyên tắc, phương pháp và công cụ cho kỹ thuật, quản
lý sự phát triển phần mềm.
Các phần đã đăng:
Các quá trình linh hoạt
Là quá trình mà trong đó cấu trúc khởi động sẽ nhỏ nhưng
linh động và lớn dần của các đề án phần mềm nhằm tìm ra các khó khăn trước
khi nó trở thành vấn đề có thể dẫn tới những hủy hoại. Quá trình này nhấn
mạnh sự gọn nhẹ và tập trung hơn là các phương pháp truyền thống. Các
quá trình linh hoạt dùng các thông tin phản hồi thay vì dùng các kế hoạch,
như là một cơ chế diều khiển chính. Các thông tin phản hồi có được từ
các thử nghiệm và các phiên bản phát hành của phần mềm tham gia.
Các quá trình linh hoạt thưòng có hiệu quả hơn các phương
pháp cũ, nó dùng ít thời gian lập trình để sản xuất ra nhiều chức năng
hơn, chất lượng cao hơn, nhưng nó không cung cấp một khả năng kế hoạch
lâu dài.
Một cách ngắn gọn các phuơng pháp này cung ứng hiệu quả
cao nhất cho vốn đầu tư, nhưng lại không định rõ hiệu quả gì.
Lập trình cực hạn, gọi tắt là XP, là loại quá
trình linh hoạt được biết đến nhiều nhất. Trong XP, các pha được xúc tiến
trong các bước cực nhỏ (hay liên tục) nếu so với các quá trình kiểu cũ,
gọi là các "toán" xử lý. Bước đầu tiên (với chủ định là không
hoàn tất) cho đến các bước có thể chỉ tốn một ngày hay một tuần, thay
vì phải tốn nhiều tháng như trong phương pháp thác nước. Đầu tiên, một
người viết các thử nghiệm tự động để cung cấp các mục tiêu cụ thể cho
sự phát triển. Kế đến là giai đoạn viết mã (bởi một cặp lập trình viên);
giai đoạn này hoàn tất khi mà các mã viết qua được tất cả các thử nghiệm
và những người lập trình không tìm ra thêm được thử nghiệm cần thiết nào
nữa. Thiết kế và kiến trúc được điều chỉnh và nâng cao ngay sau giai đoạn
viết mã này bởi người đã viết mã trong giai đoạn trước. Hệ thống chưa
hoàn tất nhưng hoạt động được này được khai thác hay được đem ra minh
họa cho (một phần) người tiêu dùng mà trong số đó có người trong đội phát
triển phần mềm. Thời điểm này những người thực nghiệm lại bắt đầu viết
các thử nghiệm cho những phần quan trọng kế tiếp của hệ thống.
Tầm nhìn của các quá trình
Do bản chất không thể nắm bắt cụ thể của các hệ thống
phần mềm, các nhà quản lý quá trình phần mềm cần các báo cáo, các hồ sơ
và xem xét để theo dõi tiến độ cũng như những gì xảy ra của công việc.
Hầu hết các tổ chức phát triển các phần mềm lớn dùng kiểu quá trình "định
hướng chuyển giao được". Mỗi thao tác phải kết thúc bằng một hồ sơ
hay báo cáo nhằm làm cho quá trình phần mềm trở nên cụ thể hơn.
Lịch sử
Công nghệ phần mềm có một lịch sử khá sớm. Các công cụ
được dùng cũng như các ứng dụng được viết đã tham gia vào kỹ nghệ phần
mềm theo thời gian.
60 năm tuyến thời gian
- 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 ưư 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 và Java làm cho việc viết phần mềm 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. (ICSE là 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.)
Hội nghị Future of Software Engineering (FOSE) tin rằng ICSE
2000 đã hồ sơ hoá các tính năng hiện đại nhất của kỹ nghệ phần mềm và
nêu ra nhiều vấn đề cần được giải quyết trong thập niên tới.
Đề án Feyerabend có ý định tìm hiểu tương lai của kỹ nghệ phần mềm qua
tìm kiếm và xuất bản các ý kiến sáng tạo.
(theo Wikipedia) |