Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu cung cấp cho người học các kiến thức: FOSSD and FOSS, các đặc trưng, CMS. Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin tham khảo trước khi bước vào môn học này.
Trang 1Giới thiệu
Phát triển phần mềm mã nguồn mở
Khoa CNTT – ĐH Sài Gòn
Trang 2Nội dung
• FOSSD and FOSS
• Các đặc trưng
• CMS
Trang 3Phát triển PM mã nguồn mở
• Còn gọi là FOSSD.
• Phân biệt “miễn phí” và “mở” (free/open)
– Đều là tự do sử dụng, nghiên cứu, chỉnh sửa và lại đóng góp cho mã nguồn Tuy nhiên,
– Miễn phí thì luôn luôn mở, nhưng mở chưa chắc là miễn phí.
• FOSSD không phải là “CNPM”
– Vì FOSSD có tính chất nhanh hơn, tốt hơn, rẻ hơn so
với CNPM trong một số tình huống.
– Các nhóm FOSSD dùng 10-50 công cụ OSSD tools và các ứng dụng giao tiếp để hỗ trợ công việc phát triển của họ.
Trang 4Phần mềm mã nguồn mở
Trang 5Các đặc trưng dự án FOSSD
• Những người phát triển FOSS cũng chính là người sử dụng, trong khi ~1% người dùng FOSS là người phát triển.
• Cần có khối lượng lớn người đóng góp và các thành phần FOSS được kết nối qua mạng tương tác kỹ
thuật-xã hội.
• Các dự án FOSSD có thể xuất hiện thông qua những cái sẵn có.
– Kết cấu kiến trúc không đoán trước được
– Những tích hợp thành phần đa dự án
Trang 6Mô hình phát triển OSS tiêu biểu
Lập trình viên
Lập trình viên
uy tín
• Người dùng OSS dùng phần mềm không cần trả phí
• Người dùng OSS trả phí huấn luyện và hỗ trợ (cạnh tranh)
• Người dùng OSS có trách nhiệm trả phí/phát triển những cải tiến mới
&bất cứ đánh giá nào họ cần; thường kết hợp với những người khác để thực hiện.
• Mục tiêu: Duy trì nhóm phát triển (giống 1 liên minh)
Nơi lưu trữ
uy tín
Nhà phân phối
Người dùng
Báo cáo bug
Cải tiến mã nguồn và kết quả đánh
giá: Người dùng và người phát triển
Cộng đồng
phát triển
Trang 7Xưởng phát triển OSS
Trang 8Môi trường FOSSD
Trang 9Content Management System (CMS)
• Hệ thống quản lý nội dung
Trang 10Content Management System (CMS)
• Chứa nhiều đoạn mã phức tạp
• Phải cài đặt database và tạo template
riêng
• Nội dung động, người cập nhật nội dung không cần kiến thức kỹ thuật, mang lại sự tiện dụng cho khách hàng
• Được phát triển có hệ thống nên dễ thêm chức năng và tùy biến
Trang 11Content Management System (CMS)
• Các loại CMS được yêu thích:
– Joomla
– Drupal
– WordPress
• Các CMS trên sử dụng ngôn ngữ PHP, hệ quản trị MySQL
Trang 12Cấu trúc CMS
Trang 13Content Management Application
• Ứng dụng quản lý nội dung (CMA) quản lý vòng đời đầy đủ của các thành phần nội dung từ khi bắt đầu đến khi xóa bỏ chúng
• CMA tạo các thành phần nội dung trong
kho lưu trữ, bảo trì chúng trong thời gian chúng tồn tại, và loại bỏ các thành phần
nội dung này khỏi kho lưu trữ khi không
cần thiết
Trang 14Metacontent management Application
• MMA là ứng dụng quản lý vòng đời đầy đủ của cấu trúc nội dung
• Ta có thể định nghĩa cấu trúc nội dung,
đặc biệt là cách các thành phần nội dung được hiển thị trên các website như thế
nào
• Mục đích của MMA là sinh ra các cấu trúc nội dung thay vì các thành phần nội dung
Trang 15Content Delivery Application
• Công việc của ứng dụng phân phối nội
dung CDA là lấy nội dung từ nơi “Quản trị nội dung” và hiển thị chúng theo những
định nghĩa trong MMA ra trang web
• CDA chỉ có quyền đọc kho lưu trữ, điều này sẽ tăng khả năng bảo mật cho trang web
• CDA cung cấp cho người sử dụng là hàm tìm kiếm trên một thực thể nội dung
Trang 16Các đồ án
• Tìm hiểu Joomla và ứng dụng viết chương
trình dự toán
• Tìm hiểu Drupal và ứng dụng viết chương
trình dự toán
• Tìm hiểu WordPress và ứng dụng viết chương trình dự toán
• Đồ án khác