VII – PHA CÀI ĐẶT VÀ TÍCH HỢP
1. Lựa chọn ngôn ngữ lập trình
Thực ra thì việc lựa chọn ngôn ngữ lập trình nên được thực hiện ngay trong pha thiết kế. Như chúng ta đã thấy, trong tài liệu thiết kế có thể có những phần mang tính đặc thù của ngôn ngữ lập trình. Trong bản thết kế bài toán AG chẳng hạn, biểu đồ client-object cho cài đặt C++ và Java là khác nhau. Trong trường hợp chưa xác định được ngôn ngữ lập trình thì thiết kế nên dừng ở mức độ ít chi tiết hơn.
Nếu lựa chọn ngôn ngữ hỗ trợ HĐT như C++ hay Java để cài đặt OOD thì không có gì phải bàn cãi. Các lớp trong thiết kế sẽ được chuyển thành kiểu dữ liệu class. Rõ ràng, trong OOD thì class là viên gạch xây dựng nên tất cả, do đó việc quan trọng nhất cần thực hiện trong cài đặt OOD cũng chính là việc cài đặt các lớp hoặc đối tượng. Lưu ý rằng, lớp chỉ là phần tử có tính đại diện, không xác định rõ, còn đối tượng mới là phần tử tham gia các hoạt động thực sự của chương trình. Nếu như các đối tượng của một lớp không đồng thời hoạt động thì thay vì lớp ta có thể xây dựng đối tượng. Ví dụ, giả sử một form nhập liệu là thể hiện của một lớp, trong đó các thuộc tính là các dữ liệu trên form, còn các phương thức là các nút lệnh. Nếu cùng lúc ta cần sử dụng nhiều màn hình nhập liệu giống nhau thì trước hết nên xây dựng lớp, sau đó khai báo các đối tượng là các form cụ thể có cùng dạng nhưng sẽ hoạt động độc lập nhau. Tuy nhiên, nếu ta không dùng đồng thời các form thì có thể xây dựng form một cách trực tiếp, tức là xây dựng luôn đối tượng, chứ không cần dựng kiểu dữ liệu lóp. Chính Schach cũng đã nói rằng: có thể dùng ngôn ngữ bất kỳ để cài đặt OOD, thậm chí ngay cả với các ngôn ngữ được tạo ra vào những năm 60 của thế kỷ trước như COBOL, trong đó thậm chí không thể khai báo kiểu dữ liệu mới như lệnh type trong Pascal hoặc typedef trong C.
Điều này có nghĩa là có thể dùng Foxro for DOS, Access, Visual Foxpro (VF), Visual Basic (VB), Delphi hay bất cứ một ngôn ngữ nào mà ta nắm chắc để cài đặt OOD. C++ là ngôn ngữ tốt để cài đặt chương trình minh họa, nhưng lại có quá ít tiện ích nên rất khó khăn trong việc viết các phần mềm ứng dụng
trong thực tế như quản lý bán hàng, thư viện điện tử... Ngay cả Visual C++ cũng vậy, những hỗ trợ về CSDL không mạnh bằng VF hay VB nên ít được dùng để viết các ứng dụng về hệ thống thông tin quản lý.
Trong thực tế, ngay cả trong trường hợp ta nắm chắc một ngôn ngữ nào đó, nhưng khách hàng lại muốn sử dụng một ngôn ngữ khác thích hợp với họ hơn.
Ví dụ công ty của họ hiện đang sử dụng các chương trình viết bằng VB và họ yêu cầu phần mềm mới cũng phải được viết bằng ngôn ngữ này. Hoặc máy tính ở một của hàng nọ có cấu hình thấp và chỉ có thể cài đặt foxpro for DOS, nên chủ cửa hàng cũng đề nghị chương trình chỉ viết bằng Foxpro for DOS mà thôi...
Nếu gặp trường hợp này, người phát triển chỉ có hai cách lựa chọn: chấp nhận viết chương trình bằng ngôn ngữ đã định sẵn, hoặc không ký hợp đồng làm phần mềm.
Tuy nhiên cũng có nhiều trường hợp khách hàng yêu cầu phần mềm được viết bằng ngôn ngữ thích hợp nhất, sao cho chương trình chạy nhanh và chính xác, bảo trì dễ dàng... Khi đó, việc lựa chọn ngôn ngữ lập trình thích hợp phụ thuộc vào khá nhiều yếu tố, ví dụ phần cứng và phần mềm sẵn có, bài toán cần giải quyết, kinh nghiệm của đội ngũ lập trình viên,...
Các ngôn ngữ khác được sử dụng nhiều trong thực tế như VF, VB, Access đều không hỗ trợ HĐT đầy đủ. Ví dụ, trong VF chỉ có thể khai báo một lớp mới từ các lớp cơ sở đã có như Form, ToolBar, CommandButton... Trong VB thì không có kiểu dữ liệu class, mà chỉ có module kiểu class (class module), không có tính thừa kế. Tuy nhiên cũng có nhiều lớp cơ sở giống như VF và có thể khai báo các biến đối tượng mới từ các lớp cơ sở này, ví dụ lệnh: dim t as form sẽ khai báo biến t có kiểu Form. Vì Acccess sử dụng VB làm công cụ lập trình (VB for application), nên cũng giống như VB. Trong chương 6 chúng ta sẽ trở lại vấn đề này.
Trong bối cảnh hiện nay, chúng tôi nghĩ rằng nên dùng C để viết bản mẫu và dùng Acccess để cài đặt OOD của bài toán thực tế là tương đối phù hợp.