Thường người ta haytập hợp chúng theo tiến trình thời gian một cách tương đối, xoay quanh chu trìnhcủa một phần mềm, dẫn tới kết qủa khái niệm Chu Trình Phát Triển Phần MềmSoftware Devel
Trang 1LỜI CẢM ƠN
Lời đầu tiên tôi xin chân thành cảm ơn các thầy cô trong khoa Công nghệthông tin đã giúp đỡ và tạo điều kiện cho tôi được thực hiện đồ án tốt nghiệp
Đặc biệt, tôi xin chân thành cảm ơn cô giáo Ngô Thị Lan và các thầy
cô trong bộ môn Công Nghệ Phần Mềm đã tận tình giúp đỡ và hướng dẫn tôitrong suốt thời gian làm đồ án tốt nghiệp
Và để có được kết quả như ngày hôm nay, tôi rất biết ơn gia đình đã độngviên, khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt quá trình học tập cũngnhư quá trình thực hiện đề tài tốt nghiệp này
Tôi xin chân thành cảm ơn!
Thái Nguyên, ngày 12 tháng 06 năm 2012
Sinh viên thực hiện:
Nguyễn Thọ Nhuận
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan :
1. Những nội dung trong luận văn này là do tôi thực hiện dưới sựhướng dẫn trực tiếp của của cô giáo Ts.Ngô Thị Lan
2. Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng têntác giả, tên công trình, thời gian, địa điểm công bố
3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,tôi xin chịu hoàn toàn trách nhiệm
Trang 3MỤC LỤC
Trang 4DANH MỤC HÌNH ẢNH
Trang 5LỜI MỞ ĐẦU
Ngày 1/4, Tổ chức Y tế thế giới (WHO) đã công bố những bằng chứngkhoa học cho thấy biến đổi khí hậu đã tác động hết sức bất lợi đến sức khỏe conngười
WHO cho biết biến đổi khí hậu là vấn đề toàn cầu và tác động bất lợi của
nó sẽ ảnh hưởng đến toàn nhân loại
Nhiệt độ Trái Đất và mực nước biển tăng cùng các sự kiện thời tiết tiêucực làm bùng phát các bệnh tiêu chảy, sốt rét, sốt xuất huyết…, làm tăng sức lâylan của các bệnh truyền nhiễm
Tác động này đặc biệt lớn ở các nước nghèo và thành phần dân cư dễ bịtổn thương nhất do hệ thống y tế kém và thiếu thuốc men và nhân viên y tế WHO ước tính hàng năm có tới 150.000 người ở các nước thu nhập thấp tử vong
do tác động của biến đổi khí hậu Khu vực Đông Nam Á chiếm 30% số ngườinghèo trên thế giới đang phải gánh chịu hậu quả nặng nề nhất của tình trạng trên.Trong số 14 triệu người chết hàng năm ở khu vực này có tới 40% chết do cácbệnh lây nhiễm Biến đổi khí hậu đã tạo điều kiện lý tưởng cho sự lây lan củabệnh lây nhiễm tại khu vực này
Theo Ủy ban liên chính phủ về biến đổi khí hậu, nền kinh tế các nước thunhập thấp phụ thuộc vào nông nghiệp và tài nguyên thiên nhiên nên bị tác độngbất lợi nghiêm trọng
Ngân hàng Phát triển châu Á cho biết nền kinh tế Thái Lan và Indonesia
có thể bị thiệt hại tới 6,7% tổng thu nhập nội địa (GDP) vào năm 2010 Hầu hếtcác nước thu nhập thấp đều không đủ nguồn tài lực và hạ tầng cơ sở y tế cầnthiết để đối phó với các bệnh bùng phát do biến đổi khí hậu
WHO nhấn mạnh tăng cường năng lực y tế để bảo vệ sức khỏe con ngườitrong bối cảnh biến đổi khí hậu đã trở nên khẩn cấp cả ở cấp quốc gia, khu vực
và toàn cầu
Phản ứng hiệu quả và bền vững cần đánh giá nguy cơ y tế, hành động nhấtquán, đầu tư tài chính thỏa đáng hơn và phối hợp đa phương Khu vực y tế phải
Trang 6đóng vai trò thiết yếu làm giảm biến đổi khí hậu và thích nghi với tác động bấtlợi của nó.
Chính vì vậy việc tăng cường sự hiểu biết về y học để có thẻ tự đảm bảođược sức khỏe là vấn đề được lựa chọn Ngày nay, phương tiện truyền thônginternet đã rất phổ biết trong cuộc sống của con người Việc lựa chọn phổ cậpkiếm thức tin học thông qua mạng máy tính để chuyển tới mỗi người là lựa chọntốt nhất
Vì những lý do trên tôi đã lựa chọn đề tài “Xây dựng Website bán hàngcho nhà thuốc Minh Phương” nhằm cung cấp các thông tin mới về y học nhằmnâng cao tầm hiểu biết con người giúp cho con người có thể tự phòng và chữabệnh giảm bớt chi phí y tế
Trang 7CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về phát triển phần mềm hướng đối tượng
1.1.1 Chu Trình Phát Triển Phần Mềm (Software Development Life Cycle)
Vì phát triển phần mềm là một bài toán khó, nên có lẽ trước hết ta cầnđiểm qua một số các công việc căn bản của quá trình này Thường người ta haytập hợp chúng theo tiến trình thời gian một cách tương đối, xoay quanh chu trìnhcủa một phần mềm, dẫn tới kết qủa khái niệm Chu Trình Phát Triển Phần Mềm(Software Development Life Cycle - SDLC) như sau:
Chu Trình Phát Triển Phần Mềm là một chuỗi các hoạt động của nhà phântích (Analyst), nhà thiết kế (Designer), người phát triển (Developer) và ngườidùng (User) để phát triển và thực hiện một hệ thống thông tin Những hoạt độngnày được thực hiện trong nhiều giai đọan khác nhau
Nhà phân tích (Analyst): là người nghiên cứu yêu cầu của khách
hàng/người dùng để định nghĩa một phạm vi bài toán, nhận dạng nhu cầu củamột tổ chức, xác định xem nhân lực, phương pháp và công nghệ máy tính có thểlàm sao để cải thiện một cách tốt nhất công tác của tổ chức này
Nhà thiết kế (Designer): thiết kế hệ thống theo hướng cấu trúc của
database, screens, forms và reports – quyết định các yêu cầu về phần cứng vàphần mềm cho hệ thống cần được phát triển
Chuyên gia lĩnh vực (Domain Experts): là những người hiểu thực chất
vấn đề cùng tất cả những sự phức tạp của hệ thống cần tin học hoá Họ khôngnhất thiết phải là nhà lập trình, nhưng họ có thể giúp nhà lập trình hiểu yêu cầuđặt ra đối với hệ thống cần phát triển Quá trình phát triển phần mềm sẽ có rấtnhiều thuận lợi nếu đội ngũ làm phần mềm có được sự trợ giúp của họ
Lập trình viên (Programmer): là những người dựa trên các phân tích và
thiết kế để viết chương trình (coding) cho hệ thống bằng ngôn ngữ lập trình đãđược thống nhất
Người dùng (User): là đối tượng phục vụ của hệ thống cần được phát
triển
Để cho rõ hơn, xin lấy ví dụ về một vấn đề đơn giản sau:
Trang 8Người bình thường chúng ta khi nhìn một chiếc xe ô tô thường sẽ có một bứctranh từ bên ngoài như sau:
Vấn đề
Hình 1.1: Nhìn vấn đề ô tô của người bình thường
Chuyên gia lĩnh vực sẽ giúp nhà phân tích "trình bày lại" vấn đề như sau:
Hình 1.2: Nhìn vấn đề ô tô của chuyên gia phân tích
Chính vì sự trợ giúp của chuyên gia lĩnh vực có thể đóng vai trò rất quantrọng nên trong những giai đoạn đầu của quá trình phát triển phần mềm, kết quảphân tích nên được thể hiện sao cho dễ hiểu đối với các chuyên gia lĩnh vực Đâycũng là môt trong rất nhiều lý do khiến cho phương pháp hướng đối tượng đượcnhiều người hưởng ứng
1.1.2 Các giai đoạn của Chu Trình Phát Triển Phần Mềm
Chu trình của một phần mềm có thể được chia thành các giai đoạn như sau:
− Nghiên cứu sơ bộ (Preliminary Investigation hay còn gọi là FeasibilityStudy)
− Phân tích yêu cầu (Analysis)
− Thiết kế hệ thống (Design of the System)
− Xây dựng phần mềm (Software Construction)
− Thử nghiệm hệ thống (System Testing)
− Thực hiện, triển khai (System Implementation)
− Bảo trì, nâng cấp (System Maintenance)
Nghiên cứu sơ bộ
Trang 9Câu hỏi quan trọng nhất khi phát triển một hệ thống hoàn toàn không phảicâu hỏi mang tính phương pháp luận Mà cũng chẳng phải câu hỏi về kỹ thuật.
Nó là một câu hỏi dường như có vẻ đơn giản, nhưng thật ra đặc biệt khó trả lời:
“Đây có đúng là một hệ thống để thực hiện không?” Đáng buồn là chính câu hỏinày trong thực tế thường chẳng hề được đặt ra và lại càng không được trả lời.Mặc dù việc lầm lẫn về phương pháp hay quyết định sai lầm về kỹ thuật cũng cóthể dẫn tới thất bại, nhưng thường thì dự án có thể được cứu vãn nếu có đầy đủtài nguyên cùng sự cố gắng quên mình của các nhân viên tài giỏi Nhưng sẽchẳng một ai và một điều gì cứu vãn cho một hệ thống phần mềm hoàn toànchẳng được cần tới hoặc cố gắng tự động hóa một quy trình lầm lạc
Trước khi bắt tay vào một dự án, bạn phải có một ý tưởng cho nó Ýtưởng này đi song song với việc nắm bắt các yêu cầu và xuất hiện trong giaiđoạn khởi đầu Nó hoàn tất một phát biểu: "Hệ thống mà chúng ta mong muốn sẽlàm được những việc như sau " Trong suốt giai đoạn này, chúng ta tạo nênmột bức tranh về ý tưởng đó, rất nhiều giả thuyết sẽ được công nhận hay loại bỏ.Các hoạt động trong thời gian này thường bao gồm thu thập các ý tưởng, nhậnbiết rủi ro, nhận biết các giao diện bên ngoài, nhận biết các các chức năng chính
mà hệ thống cần cung cấp, và có thể tạo một vài nguyên mẫu dùng để “minhchứng các khái niệm của hệ thống” Ý tưởng có thể đến từ nhiều nguồn khácnhau: khách hàng, chuyên gia lĩnh vực, các nhà phát triển khác, chuyên gia về kỹnghệ, các bản nghiên cứu tính khả thi cũng như việc xem xét các hệ thống khácđang tồn tại Một khía cạnh cần nhắc tới là code viết trong thời kỳ này thường sẽ
bị "bỏ đi”, bởi chúng được viết nhằm mục đích thẩm tra hay trợ giúp các giảthuyết khác nhau, chứ chưa phải thứ code được viết theo kết quả phân tích vàthiết kế thấu đáo
Trong giai đọan nghiên cứu sơ bộ, nhóm phát triển hệ thống cần xem xétcác yêu cầu của doanh nghiệp (cần dùng hệ thống), những nguồn tài nguyên cóthể sử dụng, công nghệ cũng như cộng đồng người dùng cùng các ý tưởng của họđối với hệ thống mới Có thể thực hiện thảo luận, nghiên cứu, xem xét khía cạnhthương mại, phân tích khả năng lời-lỗ, phân tích các trường hợp sử dụng và tạo
Trang 10các nguyên mẫu để xây dựng nên một khái niệm cho hệ thống đích cùng với cácmục đích, quyền ưu tiên và phạm vi của nó
Thường trong giai đoạn này người ta cũng tiến hành tạo một phiên bảnthô của lịch trình và kế hoạch sử dụng tài nguyên
Một giai đoạn nghiên cứu sơ bộ thích đáng sẽ lập nên tập hợp các yêu cầu(dù ở mức độ khái quát cao) đối với một hệ thống khả thi và được mong muốn,
kể cả về phương diện kỹ thuật lẫn xã hội Một giai đoạn nghiên cứu sơ bộ khôngđược thực hiện thoả đáng sẽ dẫn tới các hệ thống không được mong muốn, đắttiền, bất khả thi và được định nghĩa lầm lạc – những hệ thống thừơng chẳngđược hoàn tất hay sử dụng
Kết quả của giai đoạn nghiên cứu sơ bộ là Báo Cáo Kết Quả Nghiên CứuTính Khả Thi Khi hệ thống tương lai được chấp nhận dựa trên bản báo cáo nàycũng là lúc giai đoạn Phân tích bắt đầu
Phân tích yêu cầu
Sau khi đã xem xét về tính khả thi của hệ thống cũng như tạo lập một bứctranh sơ bộ của dự án, chúng ta bước sang giai đoạn thường được coi là quantrọng nhất trong các công việc lập trình: hiểu hệ thống cần xây dựng Người thựchiện công việc này là nhà phân tích
Quá trình phân tích nhìn chung là hệ quả của việc trả lời câu hỏi "Hệthống cần phải làm gì?" Quá trình phân tích bao gồm việc nghiên cứu chi tiết hệthống doanh nghiệp hiện thời, tìm cho ra nguyên lý hoạt động của nó và những
vị trí có thể được nâng cao, cải thiện Bên cạnh đó là việc nghiên cứu xem xétcác chức năng mà hệ thống cần cung cấp và các mối quan hệ của chúng, bêntrong cũng như với phía ngoài hệ thống Trong toàn bộ giai đoạn này, nhà phântích và người dùng cần cộng tác mật thiết với nhau để xác định các yêu cầu đốivới hệ thống, tức là các tính năng mới cần phải được đưa vào hệ thống
Những mục tiêu cụ thể của giai đoạn phân tích là:
Trang 11− Trao định nghĩa vấn đề cho chuyên gia lĩnh vực để nhận sự đánh giá, góp
Một số các công việc thường được thực hiện trong giai đoạn thiết kế:
- Nhận biết form nhập liệu tùy theo các thành phần dữ liệu cần nhập
- Nhận biết reports và những output mà hệ thống mới phải sản sinh
- Thiết kế forms (vẽ trên giấy hay máy tính, sử dụng công cụ thiết kế)
- Nhận biết các thành phần dữ liệu và bảng để tạo database
- Ước tính các thủ tục giải thích quá trình xử lý từ input đến output
Kết quả giai đoạn thiết kế là Đặc Tả Thiết Kế (Design Specifications) BảnĐặc Tả Thiết Kế Chi Tiết sẽ được chuyển sang cho các lập trình viên để thựchiện giai đoạn xây dựng phần mềm
Xây dựng phần mềm
Đây là giai đoạn viết lệnh (code) thực sự, tạo hệ thống Từng người viếtcode thực hiện những yêu cầu đã được nhà thiết kế định sẵn Cũng chính ngườiviết code chịu trách nhiệm viết tài liệu liên quan đến chương trình, giải thích thủtục (procedure) mà anh ta tạo nên được viết như thế nào và lý do cho việc này
Để đảm bảo chương trình được viết nên phải thoả mãn mọi yêu cầu có ghi trướctrong bản Đặc Tả Thiết Kế Chi Tiết, người viết code cũng đồng thời phải tiếnhành thử nghiệm phần chương trình của mình Phần thử nghiệm trong giai đoạnnày có thể được chia thành hai bước chính:
Thử nghiệm đơn vị:
Người viết code chạy thử các phần chương trình của mình với dữ liệu giả(test/dummy data) Việc này được thực hiện theo một kế hoạch thử, cũng dochính người viết code soạn ra Mục đích chính trong giai đoạn thử này là xemchương trình có cho ra những kết quả mong đợi Giai đoạn thử nghiệm đơn vịnhiều khi được gọi là "Thử hộp trắng" (White Box Testing)
Trang 12Thử nghiệm đơn vị độc lập:
Công việc này do một thành viên khác trong nhóm đảm trách Cần chọnngười không có liên quan trực tiếp đến việc viết code của đơn vị chương trìnhcần thử nghiệm để đảm bảo tính “độc lập” Công việc thử đợt này cũng đượcthực hiện dựa trên kế hoạch thử do người viết code soạn nên
Thử nghiệm hệ thống
Sau khi các thủ tục đã được thử nghiệm riêng, cần phải thử nghiệm toàn
bộ hệ thống Mọi thủ tục được tích hợp và chạy thử, kiểm tra xem mọi chi tiếtghi trong Đặc Tả Yêu Cầu và những mong chờ của người dùng có được thoảmãn Dữ liệu thử cần được chọn lọc đặc biệt, kết quả cần được phân tích để pháthiện mọi lệch lạc so với mong chờ
Thực hiện, triển khai
Trong giai đoạn này, hệ thống vừa phát triển sẽ được triển khai sao chophía người dùng Trước khi để người dùng thật sự bắt tay vào sử dụng hệ thống,nhóm các nhà phát triển cần tạo các file dữ liệu cần thiết cũng như huấn luyệncho người dùng, để đảm bảo hệ thống được sử dụng hữu hiệu nhất
Bảo trì, nâng cấp
Tùy theo các biến đổi trong môi trường sử dụng, hệ thống có thể trở nênlỗi thời hay cần phải được sửa đổi nâng cấp để sử dụng có hiệu quả Hoạt độngbảo trì hệ thống có thể rất khác biệt tùy theo mức độ sửa đổi và nâng cấp cầnthiết
Sơ đồ tổng quát các giai đoạn của Chu Trình Phát Triển Phần Mềm:
Trang 13Hình 1.3: Sơ đồ tổng quát các giai đoạn của Chu Trình Phát Triển Phần Mềm
1.1.3 Giới thiệu UML
Mô hình hóa hệ thống phần mềm
Như đã trình bày ở phần trước, mục tiêu của giai đoạn phân tích hệ thống
là sản xuất ra một mô hình tổng thể của hệ thống cần xây dựng Mô hình này cầnphải được trình bày theo hướng nhìn (View) của khách hàng hay người sử dụng
và làm sao để họ hiểu được Mô hình này cũng có thể được sử dụng để xác địnhcác yêu cầu của người dùng đối với hệ thống và qua đó giúp chúng ta đánh giátính khả thi của dự án
Tầm quan trọng của mô hình đã được lĩnh hội một cách thấu đáo tronghầu như tất cả các ngành khoa học kỹ thuật từ nhiều thế kỷ nay Bất kỳ ở đâu,khi muốn xây dựng một vật thể nào đó, đầu tiên người ta đã tạo nên các bản vẽ
để quyết định cả ngoại hình lẫn phương thức hoạt động của nó Chẳng hạn cácbản vẽ kỹ thuật thường gặp là một dạng mô hình quen thuộc Mô hình nhìnchung là một cách mô tả của một vật thể nào đó Vật đó có thể tồn tại trong một
số giai đoạn nhất định, dù đó là giai đoạn thiết kế hay giai đoạn xây dựng hoặcchỉ là một kế hoạch Nhà thiết kế cần phải tạo ra các mô hình mô tả tất cả các
Trang 14khía cạnh khác nhau của sản phẩm Ngoài ra, một mô hình có thể được chiathành nhiều hướng nhìn, mỗi hướng nhìn trong số chúng sẽ mô tả một khía cạnhriêng biệt của sản phẩm hay hệ thống cần được xây dựng Một mô hình cũng cóthể được xây dựng trong nhiều giai đoạn và ở mỗi giai đoạn, mô hình sẽ được bổsung thêm một số chi tiết nhất định.
Mô hình thường được mô tả trong ngôn ngữ trực quan, điều đó có nghĩa là
đa phần các thông tin được thể hiện bằng các ký hiệu đồ họa và các kết nối giữachúng, chỉ khi cần thiết một số thông tin mới được biểu diễn ở dạng văn bản;Theo đúng như câu ngạn ngữ "Một bức tranh nói nhiều hơn cả ngàn từ" Tạo môhình cho các hệ thống phần mềm trước khi thực sự xây dựng nên chúng, đã trởthành một chuẩn mực trong việc phát triển phần mềm và được chấp nhận trongcộng đồng làm phần mềm giống như trong bất kỳ một ngành khoa học kỹ thuậtnào khác Việc biểu diễn mô hình phải thoã mãn các yếu tố sau:
- Chính xác (accurate): Mô tả đúng hệ thống cần xây dựng
- Đồng nhất (consistent): Các view khác nhau không được mâu thuẩn vớinhau
- Có thể hiểu được (understandable): Cho những người xây dựng lẫn sửdụng
- Dễ thay đổi (changeable)
- Dễ dàng liên lạc với các mô hình khác
Có thể nói thêm rằng mô hình là một sự đơn giản hoá hiện thực Mô hìnhđược xây dựng nên để chúng ta dễ dàng hiểu và hiểu tốt hơn hệ thống cần xâydựng Tạo mô hình sẽ giúp cho chúng ta hiểu thấu đáo một hệ thống phức tạptrong sự toàn thể của nó
Nói tóm lại, mô hình hóa một hệ thống nhằm mục đích:
- Hình dung một hệ thống theo thực tế hay theo mong muốn của chúng ta
- Chỉ rõ cấu trúc hoặc ứng xử của hệ thống
- Tạo một khuôn mẫu hướng dẫn nhà phát triển trong suốt quá trình xâydựng hệ thống
- Ghi lại các quyết định của nhà phát triển để sử dụng sau này
Trang 15UML (Unifield Modeling Language)
Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) là mộtngôn ngữ để biểu diễn mô hình theo hướng đối tượng được xây dựng bởi ba tácgiả trên với chủ đích là:
- Mô hình hoá các hệ thống sử dụng các khái niệm hướng đối tượng
- Thiết lập một kết nối từ nhận thức của con người đến các sự kiện cần môhình hoá
- Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, cónhiều ràng buộc khác nhau
- Tạo một ngôn ngữ mô hình hoá có thể sử dụng được bởi người và máy
Phương pháp và các ngôn ngữ mô hình hoá
Phương pháp hay phương thức (method) là một cách trực tiếp cấu trúchoá sự suy nghĩ và hành động của con người Phương pháp cho người sử dụngbiết phải làm gì, làm như thế nào, khi nào và tại sao (mục đích của hành động).Phương pháp chứa các mô hình (model), các mô hình được dùng để mô tả những
gì sử dụng cho việc truyền đạt kết quả trong quá trình sử dụng phương pháp.Điểm khác nhau chính giữa một phương pháp và một ngôn ngữ mô hình hoá(modeling language) là ngôn ngữ mô hình hoá không có một tiến trình (process)hay các câu lệnh (instruction) mô tả những công việc người sử dụng cần làm
Một mô hình được biểu diễn theo một ngôn ngữ mô hình hoá Ngôn ngữ
mô hình hoá bao gồm các ký hiệu – những biểu tượng được dùng trong mô hình– và một tập các quy tắc chỉ cách sử dụng chúng Các quy tắc này bao gồm:
- Syntactic (Cú pháp): cho biết hình dạng các biểu tượng và cách kết hợpchúng trong ngôn ngữ
- Semantic (Ngữ nghĩa): cho biết ý nghĩa của mỗi biểu tượng, chúng đượchiểu thế nào khi nằm trong hoặc không nằm trong ngữ cảnh của các biểutượng khác
- Pragmatic : định nghĩa ý nghĩa của biểu tượng để sao cho mục đích của
mô hình được thể hiện và mọi người có thể hiểu được
Trang 161.1.4 UML trong phân tích thiết kế hệ thống
UML có thể được sử dụng trong nhiều giai đoạn, từ phát triển, thiết kếcho tới thực hiện và bảo trì Vì mục đích chính của ngôn ngữ này là dùng cácbiểu đồ hướng đối tượng để mô tả hệ thống nên miền ứng dụng của UML baogồm nhiều loại hệ thống khác nhau như:
- Hệ thống thống tin (Information System): Cất giữ, lấy, biến đổi biểu
diễn thông tin cho người sử dụng Xử lý những khoảng dữ liệu lớn có cácquan hệ phức tạp , mà chúng được lưu trữ trong các cơ sở dữ liệu quan hệhay hướng đối tượng
- Hệ thống kỹ thuật (Technical System): Xử lý và điều khiển các thiết bị
kỹ thuật như viễn thông, hệ thống quân sự, hay các quá trình công nghiệp.Đây là loại thiết bị phải xử lý các giao tiếp đặc biệt , không có phần mềmchuẩn và thường là các hệ thống thời gian thực (real time)
- Hệ thống nhúng (Embeded System): Thực hiện trên phần cứng gắn vào
các thiết bị như điện thoại di động, điều khiển xe hơi, … Điều này đượcthực hiện bằng việc lập trình mức thấp với hỗ trợ thời gian thực Những
hệ thống này thường không có các thiết bị như màn hình đĩa cứng, …
- Hệ thống phân bố ( Distributed System): Được phân bố trên một số
máy cho phép truyền dữ liệu từ nơi này đến nơi khác một cách dễ dàng.Chúng đòi hỏi các cơ chế liên lạc đồng bộ để đảm bảo toàn vẹn dữ liệu vàthường được xây dựng trên một số các kỹ thuật đối tượng như CORBA,COM/DCOM, hay Java Beans/RMI
- Hệ thống Giao dịch (Business System): Mô tả mục đích, tài nguyên (con
người, máy tính, …), các quy tắc (luật pháp, chiến thuật kinh doanh, cơchế, …), và công việc hoạt động kinh doanh
- Phần mềm hệ thống (System Software): Định nghĩa cơ sở hạ tầng kỹ
thuật cho phần mềm khác sử dụng, chẳng hạn như hệ điều hành, cơ sở dữliệu, giao diện người sử dụng
Trang 171.1.5 UML trong các giai đoạn phát triển hệ thống
Preliminary Investigation: use cases thể hiện các yêu cầu của người
dùng Phần miêu tả use case xác định các yêu cầu, phần diagram thể hiện mốiquan hệ và giao tiếp với hệ thống
Analysis: Mục đích chính của giai đọan này là trừu tượng hóa và tìm hiểu
các cơ cấu có trong phạm vi bài toán Class diagrams trên bình diện trừu tượnghóa các thực thể ngoài đời thực được sử dụng để làm rõ sự tồn tại cũng như mốiquan hệ của chúng Chỉ những lớp (class) nằm trong phạm vi bài toán mới đángquan tâm
Design: Kết quả phần analysis được phát triển thành giải pháp kỹ thuật.
Các lớp được mô hình hóa chi tiết để cung cấp hạ tầng kỹ thuật như giao diện,nền tảng cho database, … Kết quả phần Design là các đặc tả chi tiết cho giaiđoạn xây dựng phần mềm
Development: Mô hình Design được chuyển thành code Programmer sử
dụng các UML diagrams trong giai đoạn Design để hiểu vấn đề và tạo code.Testing: Sử dụng các UML diagrams trong các giai đoạn trước Có 4 hình thứckiểm tra hệ thống:
- Unit testing (class diagrams & class specifications) : kiểm tra từng đơnthể, được dùng để kiểm tra các lớp hay các nhóm đơn thể
- Integration testing (integration diagrams & collaboration diagrams) : kiểmtra tích hợp là kiểm tra kết hợp các component với các lớp để xem chúnghoạt động với nhau có đúng không
- System testing (use-case diagrams) : kiềm tra xem hệ thống có đáp ứngđược chức năng mà người sử dụng yêu cầu hay không
- Acceptance testing: Kiểm tra tính chấp nhận được của hệ thống, thườngđược thực hiện bởi khách hàng, việc kiểm tra này thực hiện tương tự nhưkiểm tra hệ thống
1.2 Giới thiệu về thương mại điện tử
1.2.1 Định nghĩa Thương mại điện tử (TMĐT)
Thương mại điện tử là hình thức mua bán hàng hóa và dịch vụ thông quamạng máy tính toàn cầu
Trang 18Phạm vi của TMĐT rất rộng, bao quát hầu hết các lĩnh vực hoạt độngkinh tế Việc mua bán hàng hóa và dịch vụ chỉ là một trong hàng ngàn lĩnh vực
áp dụng của TMĐT Theo nghĩa hẹp, TMĐT chỉ gồm các hoạt động thương mạiđược tiến hành trên mạng máy tính mở như Internet Trên thực tế, chính các hoạtđộng thương mại thông qua mạng Internet đã làm phát sinh thuật ngữ Thươngmại điện tử
TMĐT gồm các hoạt động mua bán hàng hóa và dịch vụ qua phương tiệnđiện tử, giao nhận các nội dung kỹ thuật số trên mạng, chuyển tiền điện tử, muabán cổ phiếu điện tử, vận đơn điện tử, đấu giá thương mại, hợp tác thiết kế, tàinguyên mạng, mua sắm công cộng, tiếp thị trực tuyến đến người tiêu dùng và cácdịch vụ sau bán hàng TMĐT được thực hiện đối với cả thương mại hàng hóa (ví
dụ như hàng tiêu dùng, các thiết bị y tế chuyên dụng) và thương mại dịch vụ (ví
dụ như dịch vụ cung cấp thông tin, dịch vụ pháp lý, tài chính); các hoạt độngtruyền thống (như chăm sóc sức khỏe, giáo dục) và các hoạt động mới (ví dụ nhưsiêu thị ảo) TMĐT đang trở thành một cuộc cách mạng làm thay đổi cách thứcmua sắm của con người
1.2.2 Các đặc trưng của thương mại điện tử
So với các hoạt động thương mại truyền thống, TMĐT có một số điểm khác biệt
cơ bản như sau:
a, Các bên tiến hành giao dịch trong TMĐT không tiếp xúc trực tiếp với nhau vàkhông đòi hỏi biết nhau từ trước:
Trong Thương mại truyền thống các bên thường gặp gỡ nhau trực tiếp đểtiến hành giao dịch Các giao dịch được thực hiện chủ yếu theo nguyên tắc vật lýnhư chuyển tiền, séc, hóa đơn, vận đơn, gửi báo cáo Các phương tiện viễn thôngnhư: fax, telex chỉ được sử dụng để trao đổi số liệu kinh doanh Tuy nhiên, việc
sử dụng các phương tiện điện tử trong Thương mại truyền thống chỉ để chuyểntải thông tin một cách trực tiếp giữa hai đối tác của cùng một giao dịch
TMĐT cho phép mọi người cùng tham gia từ các vùng xa xôi hẻo lánhđến các khu vực đô thị lớn, tạo điều kiện cho tất cả mọi người ở khắp mọi nơiđều có cơ hội ngang nhau tham gia vào thị trường giao dịch toàn cầu và khôngđòi hỏi nhất thiết phải có mối quen biết với nhau
Trang 19b, Các giao dịch Thương mại truyền thống được thực hiện với sự tồn tại của kháiniệm biên giới quốc gia, còn TMĐT được thực hiện trong một thị trường không
có biên giới (thị trường thống nhất toàn cầu) TMĐT trực tiếp tác động tới môitrường cạnh tranh toàn cầu:
TMĐT càng phát triển, thì máy tính cá nhân trở thành cửa sổ cho doanhnghiệp hướng ra thị trường trên khắp thế giới Với TMĐT, một doanh nhân dùmới thành lập đã có thể kinh doanh ở Nhật Bản, Đức và Chilê mà không hềphải bước ra khỏi nhà, một công việc trước kia phải mất nhiều năm
Trong hoạt động giao dịch TMĐT đều có sự tham ra của ít nhất ba chủ thể, trong
đó có một bên không thể thiếu được là người cung cấp dịch vụ mạng, các cơquan chứng thực:
Trong TMĐT, ngoài các chủ thể tham gia quan hệ giao dịch giống nhưgiao dịch thương mại truyền thống đã xuất hiện một bên thứ ba đó là cung cấpdịch vụ mạng, các cơ quan chứng thực… là những người tạo ra môi trường chocác giao dịch TMĐT Nhà cung cấp dịch vụ mạng và cơ quan chứng thực cónhiệm vụ chuyển đi, lưu giữ các thông tin giữa các bên tham gia giao dịchTMĐT, đồng thời họ cũng xác nhận độ tin cậy của các thông tin trong giao dịchTMĐT
c, Đối với Thương mại truyền thống thì mạng lưới thông tin chỉ là phương tiện
để trao đổi dữ liệu, còn đối với TMĐT thì mạng lưới thông tin chính là thịtrường:
Thông qua TMĐT, nhiều loại hình kinh doanh mới được hình thành Vídụ: các dịch vụ gia tăng giá trị trên mạng máy tính hình thành nên các nhà trunggian ảo làm các dịch vụ môi giới cho giới kinh doanh và tiêu dùng, các siêu thị
ảo được hình thành để cung cấp hàng hóa và dịch vụ trên mạng máy tính
1.2.3 Cơ sở để phát triển Thương mại điện tử
Để phát triển TMĐT cần phải có hội đủ một số cơ sở:
- Hạ tầng kỹ thuật Internet phải đủ nhanh, mạnh đảm bảo truyền tải các nộidung thông tin bao gồm âm thanh, hình ảnh trung thực và sống động Một
hạ tầng Internet mạnh cho phép cung cấp các dịch vụ như xem phim, xem
Trang 20TV, nghe nhạc v.v trực tiếp Chi phí kết nối Internet phải rẻ để đảm bảo
số người dùng Internet đủ lớn
- Hạ tầng pháp lý: phải có luật về TMĐT công nhận tính pháp lý của cácchứng từ điện tử, các hợp đồng điện tử ký qua mạng, phải có luật bảo vệquyền sở hữu trí tuệ, bảo vệ sự riêng tư, bảo vệ người tiêu dùng v.v đểđiều chỉnh các giao dịch qua mạng
- Phải có cơ sở thanh toán điện tử an toàn bảo mật Thanh toán điện tử quathẻ, qua tiền điện tử, thanh toán qua EDI Các ngân hàng phải triển khai
hệ thống thanh toán điện tử rộng khắp
- Phải có hệ thống cơ sở chuyển phát hàng nhanh chóng, kịp thời và tin cậy
- Phải có hệ thống an toàn bảo mật cho các giao dịch, chống xâm nhập tráiphép, chống virus, chống thoái thác
- Phải có nhân lực am hiểu kinh doanh, công nghệ thông tin, TMĐT đểtriển khai tiếp thị, quảng cáo, xúc tiến, bán hàng và thanh toán qua mạng
1.2.4 Các loại hình giao dịch Thương mại điện
Trong TMĐT có ba chủ thể tham gia: Doanh nghiệp (B) giữ vai trò độnglực phát triển TMĐT, người tiêu dùng (C) giữ vai trò quyết định sự thành côngcủa TMĐT và chính phủ (G) giữ vai trò định hướng, điều tiết và quản lý Từ cácmối quan hệ giữa các chủ thể trên ta có các loại giao dịch TMĐT: B2B, B2C,B2G, C2G, C2C Sau đây là các loại hình giao dịch Thương mại điện tử:
B2C bán hàng
qua mạng
B2G thuế thu
nhập và thuếdoanh thu
Hình 1.4: Các loại hình giao dịch Thương mại điện tử
Trong các loại hình giao dịch TMĐT trên thì 2 loại hình: B2B và B2C là 2 loạihình quan trọng nhất:
Trang 21B2B (Business To Business): Là mô hình TMĐT giữa các doanh nghiệp vớidoanh nghiệp.
B2C (Business To Customer): Là mô hình TMĐT giữa doanh nghiệp và ngườitiêu dùng
Cả hai hình thức thươnng mại điện tử này đều được thực hiện trực tuyếntrên mạng Internet Tuy nhiên, giữa chúng tồn tại sự khác biệt Trong khiThương mại điện tử B2B được coi là hình thức kinh doanh bán buôn với lượngkhách hàng là các doanh nghiệp, các nhà sản xuất thì thương mại điện tử B2C lại
là hình thức kinh doanh bán lẻ với đối tượng khách hàng là các cá nhân
Trên thế giới, xu hướng thương mại điện tử B2B chiếm ưu thế vượt trội sovới B2C trong việc lựa chọn chiến lược phát triển của các công ty kinh doanhtrực tuyến
Trong thương mại điện tử B2B, việc giao dịch giữa một doanh nghiệp vớimột doanh nghiệp khác thường bao gồm nhiều công đoạn: từ việc chào bán sảnphẩm, mô tả đặc tính kỹ thuật của sản phẩm cho đến đàm phán giá cả, điều kiệngiao hàng, phương thức thanh toán Chính vì vậy mà các giao dịch này được coi
là phức tạp hơn so với bán hàng cho người tiêu dùng Thương mại điện tử B2Bđược coi như là một kiểu “phòng giao dịch ảo”, nơi sẽ thực hiện việc mua bántrực tuyến giữa các công ty với nhau, hoặc có thể gọi là phòng giao dịch mà tại
đó các doanh nghiệp có thể mua bán hàng hóa trên cơ sở sử dụng một nền côngnghệ chung Khi tham gia vào sàn giao dịch này, khách hàng có cơ hội nhậnđược những giá trị gia tăng như dịch vụ thanh toán hay dịch vụ hậu mãi, dịch vụcung cấp thông tin về các lĩnh vực kinh doanh, các chương trình thảo luận trựctuyến và cung cấp kết quả nghiên cứu về nhu cầu của khách hàng cũng như các
dự báo công nghiệp đối với từng mặt hàng cụ thể
1.2.5 Các hình thức hoạt động chủ yếu của Thương mại điện tử
Thư điện tử
Các doanh nghiệp, các cơ quan Nhà nước, sử dụng thư điện tử để gửithư cho nhau một cách “trực tuyến” thông qua mạng, gọi là thư điện tử(electronic mail, viết tắt là e-mail) Thông tin trong thư điện tử không phải tuântheo một cấu trúc định trước nào
Trang 22Thanh toán điện tử
Thanh toán điện tử là việc thanh toán tiền thông qua các phương tiện điện
tử Ví dụ: trả lương bằng cách chuyển tiền trực tiếp vào tài khoản, trả tiền muahàng bằng thẻ mua hàng, thẻ tín dụng Ngày nay, với sự phát triển của TMĐT,thanh toán điện tử đã mở rộng sang các lĩnh vực mới đó là:
- Trao đổi dữ liệu điện tử tài chính (Financial Electronic Data Interchange,gọi tắt là FEDI)
- Tiền lẻ điện tử (Internet Cash)
- Ví điện tử (electronic purse)
- Giao dịch điện tử của ngân hàng (digital banking)
− Trao đổi dữ liệu điện tử
Trao đổi dữ liệu điện tử (electronic data interchange, viết tắt là EDI) làviệc trao đổi các dữ liệu dưới dạng “có cấu trúc” (stuctured form), từ máy tínhđiện tử này sang máy tính điện tử khác, giữa các công ty hoặc đơn vị đã thỏathuận bán buôn với nhau
Theo Ủy ban liên hợp quốc về luật thương mại quốc tế (UNCITRAL),
“Trao đổi dữ liệu điện tử (EDI) là việc chuyển giao thông tin từ máy tính điện tửnày sang máy tính điện tử khác bằng phương tiện điện tử, có sử dụng một tiêuchuẩn đã được thỏa thuận để cấu trúc thông tin”
Truyền dung liệu
Dung liệu (Content) là nội dung của hàng hóa số, giá trị của nó khôngphải trong vật mang tin mà nằm trong bản thân nội dung của nó Hàng hóa có thểđược giao qua mạng thay vì trao đổi bằng cách đưa vào các băng đĩa, in thànhvăn bản Ngày nay, dung liệu được số hóa và truyền gửi theo mạng, gọi là “giaogửi số hóa” (digital delivery)
Mua bán hàng hóa hữu hình
Đến nay, danh sách các hàng hóa bán lẻ qua mạng đã mở rộng, từ hoa đếnquần áo, đã làm xuất hiện một loạt hoạt động gọi là “mua hàng điện tử” hay
“mua hàng qua mạng” Ở một số nước, Internet đã trở thành công cụ để cạnhtranh bán lẻ hàng hóa hữu hình Tận dụng tính năng đa phương tiện của môitrường Web và Java, người bán xây dựng trên mạng “các cửa hàng ảo”, gọi là ảo
Trang 23bởi vì cửa hàng có thật nhưng ta chỉ xem toàn bộ quang cảnh cửa hàng và cáchàng hóa chứa trong đó trên từng trang màn hình một.
1.2.6 Lợi ích của Thương mại điện tử
Thu thập được nhiều thông tin
TMĐT giúp người ta tham gia thu được nhiều thông tin về thị truờng, đốitác, giảm chi phí tiếp thị và giao dịch, rút ngắn thời gian sản xuất, tạo dựng vàcủng cố quan hệ bạn hàng Các doanh nghiệp nắm được thông tin phong phú vềkinh tế thị trường, nhờ đó có thể xây dựng được chiến lược sản xuất và kinhdoanh thích hợp với xu thế phát triển của thị trường trong nước, khu vực và quốc
tế Điều này đặc biệt có ý nghĩa đối với các doanh nghiệp vừa và nhỏ, hiện nayđang được nhiều nước quan tâm, một trong những động lực phát triển kinh tế
Giảm chi phí sản xuất
TMĐT giúp giảm chi phí sản xuất, trước hết là chi phí văn phòng Cácvăn phòng không giấy tờ (paperless office) chiếm diện tích nhỏ hơn rất nhiều,chi phí tìm kiếm chuyển giao tài liệu giảm rất nhiều lần (trong đó khâu in ấnđược bỏ hẳn) Theo số liệu của hãng General Electricity của Mỹ, tiết kiệm theohướng này đạt tới 30% Điều quan trọng hơn, với góc độ chiến lược, là các nhânviên có năng lực được giải phóng khỏi nhiều công đoạn sự vụ có thể tập trungvào nghiên cứu phát triển, sẽ đưa đến những lợi ích to lớn lâu dài
Giảm chi phí bán hàng, tiếp thị và giao dịch
TMĐT giúp giảm thấp chi bán hàng và chi phí tiếp thị Bằng phương tiệnInternet/Web, một nhân viên bán hàng có thể giao dịch được với rất nhiều kháchhàng, catalogue điện tử (electronic catalogue) trên Web phong phú hơn nhiều vàthường xuyên cập nhật so với catalogue in ấn chỉ có khuôn khổ giới hạn và luônluôn lỗi thời Theo số liệu của hãng máy bay Boeing của Mỹ, đã có tới 50%khách hàng đặt mua 9% phụ tùng qua Internet (và nhiều các đơn hàng về lao vụ
kỹ thuật), và mỗi ngày giảm bán được 600 cuộc gọi điện thoại
TMĐT qua Internet/Web giúp người tiêu thụ và các doanh nghiệp giảmđáng kể thời gian và chi phí giao dịch (giao dịch được hiểu là từ quá trình quảngcáo, tiếp xúc ban đầu, giao dịch đặt hàng, giao dịch thanh toán) Thời gian giaodịch qua Internet chỉ bằng 7% thời gian giao dịch qua Fax, và bằng khoảng 0.5
Trang 24phần nghìn thời gian giao dịch qua bưu điện chuyển phát nhanh, chi phí thanhtoán điện tử qua Internet chỉ bằng từ 10% đến 20% chi phí thanh toán theo lốithông thường
Tổng hợp tất cả các lợi ích trên, chu trình sản xuất (cycle time) được rútngắn, nhờ đó sản phẩm mới xuất hiện nhanh và hoàn thiện hơn
Xây dựng quan hệ với đối tác
TMĐT tạo điều kiện cho việc thiết lập và củng cố mối quan hệ giữa cácthành viên tham gia vào quá trình thương mại: thông qua mạng (Internet/Web)các thành viên tham gia (người tiêu thụ, doanh nghiệp, các cơ quan Chính phủ )
có thể giao tiếp trực tiếp (liên lạc “ trực tuyến”) và liên tục với nhau, có cảm giácnhư không có khoảng cách về địa lý và thời gian nữa; nhờ đó sự hợp tác và sựquản lý đều được tiến hành nhanh chóng một cách liên tục: các bạn hàng mới,các cơ hội kinh doanh mới được phát hiện nhanh chóng trên phạm vi toàn quốc,toàn khu vực, toàn thế giới, và có nhiều cơ hội để lựa chọn hơn
Tạo điều kiện sớm tiếp cận kinh tế tri thức
Trước hết, TMĐT sẽ kích thích sự phát triển của ngành công nghệ thôngtin tạo cơ sở cho sự phát triển kinh tế tri thức Lợi ích này có một ý nghĩa lớn đốivới các nước đang phát triển: nếu không nhanh chóng tiếp cận nền kinh tế trithức thì sau khoảng một thập kỷ nữa, nước đang phát triển có thể bị bỏ rơi hoàntoàn Khía cạnh lợi ích này mang tính chiến lược công nghệ và tính chính sáchphát triển cần cho các nước công nghiệp hóa
1.2.7 Những trở ngại của việc tiếp cận Thương mại điện tử.
Trong hầu hết các trường hợp, nếu có một hệ thống TMĐT sẽ mang lạinhiều thuận lợi và lợi ích trong kinh doanh Thế nhưng, tại sao nhiều doanhnghiệp vẫn không tận dụng các tiến bộ kỹ thuật tuyệt vời của Internet và TMĐT?
Đó chính là một số rào cản hay nói cách khác đó chính là những khó khăn khicác doanh nghiệp tiếp cận đến TMĐT:
- Không thích thay đổi
- Thiếu hiểu biết về công nghệ
- Sự chuẩn bị đầu tư và chi phí
- Không có khả năng để bảo trì
Trang 25- Thiếu sự phối hợp với các công ty vận chuyển.
Trong tất cả các lý do trên, “không thích thay đổi” là lý do phổ biến nhấtngăn cản doanh nghiệp tham gia vào TMĐT, họ cảm thấy đơn giản hơn vớinhững gì họ đã làm Ví dụ một chủ doanh nghiệp nhỏ, họ đã có nhiều năm thànhcông trong công việc kinh của họ, rõ ràng họ không muốn chuyển đến một hệthống TMĐT vì nếu vậy họ phải có một thời gian khá dài để thích ứng với sựthay đổi này Đây là loại tư duy thường liên quan trực tiếp đến lý do “thiếu hiểubiết về công nghệ” mà nhiều cá nhân ngày nay đang lo ngại bởi kỹ thuật - côngnghệ cao và cũng không thạo trong lĩnh vực công nghệ của doanh nghiệp Vìvậy, điều lo sợ về công nghệ (hoặc các khía cạnh của học tập mới của công nghệ)
là một rào cản lớn trong thị trường TMĐT Ngoài ra, TMĐT sẽ luôn yêu cầu mộtđầu tư ngay từ ban đầu để thiết lập một hệ thống Bên cạnh đó, để nâng cao hệthống TMĐT sẽ phải duy trì qua thời gian và đây cũng chính là một rào cản Vìvậy, để tiếp cận TMĐT, các doanh nghiệp phải xem xét mọi tình huống trên cở
sở cá nhân doanh nghiệp và dự thảo một chiến lược để vượt qua những trở ngạiđó
1.3 Giới thiệu về Joomla(Content Management System – CMS)
1.3.1 Khái niệm Joomla
Joomla! là một hệ quản trị nội dung mã nguồn mở(Content Management
System – CMS) Joomla! được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữliệu MySQL, cho phép người sử dụng có thể dễ dàng xuất bản các nội dung của
họ lên Internet hoặc Intranet
Joomla có các đặc tính cơ bản là: bộ đệm trang (page caching) để tăng tốc
độ hiển thị, lập chỉ mục, đọc tin RSS (RSS feeds), trang dùng để in, bản tinnhanh, blog, diễn đàn, bình chọn, lịch biểu, tìm kiếm trong site và hỗ trợ đa ngônngữ Joomla được phát âm theo tiếng Swahili như là jumla nghĩa là "đồng tâmhiệp lực"
Trang 261.3.2 Lý do lựa chọn Joomla
Joomla! được sử dụng ở khắp mọi nơi trên thế giới, từ những website cánhân cho tới những hệ thống website doanh nghiệp có tính phức tạp cao, cungcấp nhiều dịch vụ và ứng dụng Joomla có thể dễ dàng cài đặt, dễ dàng quản lý
và có độ tin cậy cao.Joomla là sản phẩm mã nguồn mở do đó việc sử dụngJoomla là hoàn toàn miễn phí cho tất cả mọi người trên thế giới
Joomla đáp ứng được mô tả về 7 đặc tính của Web 2.0:
1 Web có vai trò nền tảng, có thể chạy mọi ứng dụng
2 Tập hợp trí tuệ cộng đồng
3 Dữ liệu có vai trò then chốt
4 Phần mềm được cung cấp ở dạng dịch vụ web và được cập nhật khôngngừng
5 Phát triển ứng dụng dễ dàng và nhanh chóng
6 Phần mềm có thể chạy trên nhiều thiết bị
7 Giao diện ứng dụng phong phú
Joomla - Một hệ quản trị nội dung mã nguồn mở mạnh nhất hiện nay trên thếgiới
1.3.3 Lịch sử phát triển
Joomla là "sản phẩm anh em" với Mambo của tập đoàn Micro SoftwareSolutions - Úc (hãng đang nắm giữ Mambo) với những người phát triển nòngcốt Ban đầu công ty Miro đã phát triển Mambo theo dạng ứng dụng mã nguồnđóng Đến tháng 4 năm 2001, công ty đã thông qua một chính sách bản quyềnkép, nghĩa là phát hành Mambo theo cả giấy phép GPL
Đến ngày 17 tháng 8 năm 2005, do sự tranh chấp về mặt pháp lý cũng nhưmong muốn vào sự phát triển của Mambo dựa trên quỹ tài trợ và sự hỗ trợ củacộng đồng nên toàn bộ đội phát triển nòng cốt của Mambo đã rời khỏi dự ántrong khi đang làm việc với phiên bản 4.5.3
Nhờ sự trợ giúp của Trung tâm Luật Tự do Phần mềm (Software FreedomLaw Center - SFLC), 20 thành viên nòng cốt cũ của Mambo đã thành lập một tổchức phi lợi nhuận khác lấy tên là Open Source Matters, để hỗ trợ về mặt tổchức, pháp lý và kinh phí cho dự án mã nguồn mở còn chưa được đặt tên của họ
Trang 27Ngay ngày hôm sau, 1000 người đã gia nhập diễn đàn OpenSourceMatters, hầuhết các bài viết cho diễn đàn đều khuyến khích và đồng tình với hành động củaNhóm Phát triển Tin trên đã nhanh chóng được đăng tải trên các tạp chínewsforge.com, eweek.com và ZDnet.com.
Trong một thông báo của Eddie (người đứng đầu dự án) 2 tuần sau đó, cácnhóm đã được tổ chức lại và cộng đồng Joomla tiếp tục tăng trưởng Tới ngày 1tháng 9 năm 2005 tên mới của dự án đã được thông báo cho khoảng 3000 ngườitheo dõi đội Phát triển và đến ngày 16 tháng 9 thì họ cho ra đời Joomla 1.0
1.3.4 Các dòng phiên bản của Joomla
Hiện nay Joomla có 2 dòng, dòng 1.0.x đã ổn định và phù hợp để các bạnthực hiện các website của mình Dòng 1.5 đang phát triển tới phiên bản beta, chỉphù hợp để test,chưa phù hợp để làm website chính thức
− Dòng phiên bản 1.0.x :Phiên bản đầu tiên của Joomla là phiên bảnJoomla! 1.0 (hay Joomla! 1.0.0) có nguồn gốc từ Mambo 4.5.2.3 (đã baogồm thêm nhiều bản vá bảo mật và sửa lỗi).Các phiên bản tiếp theo códạng 1.0.x Điểm mạnh của Joomla 1.0.x: Có một số lượng rất lớn cácthành phần mở rộng (module, component ) thành phần nhúng (mambot),giao diện (template)
− Dòng phiên bản 1.5x : Phiên bản Joomla! 1.5 là phiên bản cải tiến từJoomla 1.0.x (phần mã được viết lại hoàn toàn, tuy nhiên vẫn giữ cáchhành xử như cũ) Joomla 1.5 tiếp tục duy trì một giao diện người sử dụngđơn giản (nhìn và cảm nhận - look and feel) Joomla! 1.5 hỗ trợ đa ngônngữ bằng cách sử dụng file định dạng ".ini" để lưu các thông tin chuyểnđổi ngôn ngữ Joomla 1.5 hỗ trợ tất cả các ngôn ngữ có tập ký tự đượcbiểu diễn bằng bảng mã UTF-8 Điểm mạnh của Joomla 1.5: Phần quảntrị Website có sử dụng công nghệ Web 2.0, một số tính năng được cải tiếnhơn so với Joomla 1.0.x
1.3.5 Kiến trúc của Joomla
− Tầng dưới cùng là mức nền tảng, chứa các thư viện và các plugin (cònđược biết với tên gọi mambot)
− Tầng thứ hai là mức ứng dụng và chứa lớp JApplication Hiện tại tầng nàygồm 3 lớp con: JInstallation, JAdministrator và JSite
Trang 28− Tầng thứ ba là mức mở rộng Tại tầng này có các thành phần(component), mô đun (module) và giao diện (template) được thực thi vàthể hiện.
Hình 1.5: Kiến trúc phân tầng của Joomla! 1.5
1.3.6 Đối với người sử dụng cuối
Việc cài đặt Joomla! khá dễ dàng và nhanh chóng, thậm chí cả đối vớinhững lập trình viên nghiệp dư Joomla có một cộng đồng người sử dụng và pháttriển rất lớn và tăng trưởng không ngừng Các thành viên và các lập trình viên rấtnhiệt tình và sẵn sàng tư vấn, giúp đỡ khi người sử dụng gặp khó khăn
Joomla cung cấp giao diện web trực quan do vậy khá dễ dàng để thêmmột nội dung mới hay một mục mới, quản lý các phòng ban, danh mục nghềnghiệp, ảnh các sản phẩm và tạo không giới hạn số phần, mục, chuyên mụccũng như các nội dung của Website
Hiện tại ở Việt Nam chúng ta, cộng đồng Joomla đã và đang phát triểnmạnh mẽ tại diễn đàn
Code: http://www.joomlaviet.org
Tại đây bạn có thể tìm kiếm những thông tin về cài đặt, phát triển Joomla cũngnhư nêu lên những ý kiến thắc mắc hoặc yêu cầu của mình để được giúp đỡ
Trang 291.3.7 Ứng dụng của Joomla
Joomla! đã được sử dụng trên khắp thế giới, đã được ứng dụng vào xâydựng các website từ đơn giản như website cá nhân tới các ứng dụng websitephức tạp Sau đây là 1 số ứng dụng có thể được xây dựng bằng Joomla !
− Trang web của các tổ chức hoặc các cổng thông tin ( Portal )
− Thương mại điện tử
− Trang web cho các công ty cỡ nhỏ
− Ứng dụng cho các cơ quan hành chính
− Trang web cho các trường học và nhà thờ
− Trang web cá nhân và gia đình
− Các cổng thông tin cộng đồng
− Trang web báo điện tử và tạp chí
− và nhiều ứng dụng khác nữa
1.4 Một số khái niệm trong Joomla
Lần đầu tiên khi tiếp xúc với Joomla! nhiều người luôn cảm thấy rằng cóđiều gì đó khó hiểu ở Joomla! khiến cho việc tiếp cận với nó thật khó khăn Đóchính là do các khái niệm và thuật ngữ khác lạ của Joomla!, mà thật ra nó cũngchẳng khác lạ gì mấy so với các hệ thống quản trị nội dung (CMS: Contentmanagement System) khác
Phần này sẽ trình bày các khái niệm cơ bản trong Joomla!
1.4.1 Front-end và Back-end
Front-end
Front-end (tiền sảnh), còn được biết với tên gọi Public Front-end: phầngiao diện phía ngoài, nơi tiếp xúc với mọi người sử dụng Bất cứ ai cũng có thểtrông thấy khi gõ đúng đường dẫn URL vào trình duyệt
Front-end chứa một trang đặc biệt là FrontPage (homepage) - trang chủ
Back-end
Back-end, còn được biết với tên gọi Public Back-end, Administrator,Control Pane: phần dành cho người quản trị Những người bình thường khôngbiết đường dẫn để truy cập, hoặc nếu có biết thì cũng phải qua bước kiểm tra tàikhoản
Phần back-end được truy cập thông qua đường dẫn:
http://your_domain/administrator
1.4.2 Các thành phần mở rộng (Extension)
Trang 30Module là một trong 3 thành phần mở rộng chính của Joomla! Đó là mộtđoạn mã nhỏ thường được dùng để truy vấn các thông tin từ cơ sở dữ liệu vàhiển thị các kết quả tìm được Nó có thể được nạp vào một vị trí bất kỳ trêntemplate (vị trí left, right, top, bottom hoặc vị trí do người dùng định nghĩa); cóthể hiện trên tất cả các trang của Website hay một số trang được ấn định Khảnăng tương tác giữa người sử dụng và hệ thống thông qua module là hạn chế(chúng ta thường chỉ nhận thông tin trả về)
Modules thường được dùng để hiển thị những thông tin khác nhauvà/hoặc những tính năng tương tác trong toàn bộ site Joomla của bạn MộtModule có thể chứa hầu như bất kì thứ gì từ những văn bản đơn giản, đếnHTML, đến những ứng dụng hoàn toàn độc lập của các hãng thứ ba NhữngModule cũng có thể hiển thị nội dung tương tác, như các poll (thăm dò ý kiến),những tagboard, tin mới nhất, tin khẩn và nhiều nữa
Các Site Module khác với các Administrator Module bởi vì chúng hiển thịnhững nội dung trong Front-end của site trong khi nhưng Admini Module liênquan đến các tác vụ và/hoặc những tính năng khác nhau của Administrative(hoặc Back-end) Các Module có thể được tạo bởi bạn (costom/user module) hayđược tải về và cài đặt Quản lý cac module luôn luôn lằm trong Administrator(Admin Seciton) Vào Modules \ Module Manager trên thanh Menu Ở đó bạn cóthể cài đặt/tháo bỏ một module và chỉnh sửa nhứng cấy hình phổ biến như là:tên, những trang nó xuất hiện, vùng đặt nó, và cấp độ truy cập Từ danh sáchchọn module bạn muốn cấu hình
Module Manager là bộ đầu tiên thiết đặt hiển thị số lượng chính xácmodule Tận cuối danh sách ban có thể thấy một chức năng tổ chức trang, nơicho phép bạn điều hướng đến bộ cài đặt kế tiếp của các module trong danh sách.Bạn cũng có thể cài đặt số module được hiển thị trên một trang băng các chọn sốtrên hộp chọn đổ xuống trên góc trên phải màn hình Ở đây bạn có thể tìm thấymột danh sách của tất cả bộ thiết lập mặc đinh site module khi cài đặt Joomla.Mỗi cái quy chiếu đến một loại module cụ thể được định từ trước Dưới những
Trang 31tiêu đề danh sách cụ thể được hiển thị những trạng thái của nhưng Module đượccài đặt trên hệ thống.
Những Module được xác đinh bằng môt kểu (ví dụ mod_mainmenu).Nhiều thể hiện của cùng một module có thẻ được tạo ra bằng cách chép môt loạimodule cụ thể, cho nó một tiêu đề khác và các thông số khác theo nhu cầu củabạn Bạn có thể tạo một module tùy thích với một loại “User” bằng cách clickvào biểu tượng “New” Đây là một mudule rất hữu dụng mà bạn thường tạo mộtContent (content này không liên quan gì đến các Section, Category hay StaticContent Item) hay RSS feed Nó cũng được dùng như một hộp văn bản hay môtmodule ảnh hay thậm chí bao gồm code tùy biến
Component
Các Component là những thành phần nội dung đặc biệt hay những ứngdụng Joomla bao gồm một số nhân component và hỗ trợ khả năng tự tăng cườngtính năng với component của các hãng thư ba Những component được gắn sẵn,cai bao gồm trong Joomla, là một phần của tính năng nhân Bạn sẽ tìm thấynhững compnent của hãng thứ ba tại Joomla Forge cũng như tại rất nhiều nhàphát triển thứ ba và những site cộng đồng Cấu hình và trợ giúp thêm thườngđược cung cấp với kèm với chính component Những component là mô phỏng tựnhiên, điềunày làm nó có khả năng tăng cường các chức năng của Joomla trongbất kì hoàn cảnh nào Một component đặc trưng giống như Menu item Nhữngvisitor và/hay những user có thể thấy nội dung của component bằng cách clickvào liên kết của Menu item này Nó thường được hiển thị trong vùng nội dungchính của site
Những component được bao gồm với Joomla là :
− Banners – ô quảng cáo
Trang 32Mambots là những đơn vị mã chức năng hỗ trợ những hoạt động của
Joomla Chúng có nhiều mục đích và những chức năng khác nhau và được nhómlại để quản lý dễ dàng hơn Ví dụ, có nhiều Mambot chỉ hoạt động trong nhữngcontent item, những cái khác được cung cấp tính năng tìm kiếm v.v Trong mộtvài nhóm, một số Mambot có thể được publish một lần, trong khi những cái khác(vi dụ như WYSIWYG editor – trình soạn thảo trực quan) chỉ một cái được kíchhoạt
Thứ tự trong một vài nhóm là rất quan trọng, ví dụ như, trong nhómcontent, đầu tiên phải là Image Replacement Mambot – thay thế ảnh (mosimage)(ở đầu danh sách), và sau đó là Pagination Mambot – tổ chức trang (mospaging)
Tất cả các thành phần mở rộng đều được cài đặt thêm hoặc gỡ bỏ thông qua cácMenu lệnh trong Joomla!
1.4.3 Quản lý nội dung site
Quản lý nội dung Web Site, trong Joomla! có 3 cấp quản lý nội dung: Trước khi đi vào xây dựng một Website bằng Joomla chúng ta cần nắm rõ
3 khái niệm quan trọng: Section, Category và Content Vậy Section là gì?Category là gì? Content là gì?
Chúng ta cùng xem "Cấu trúc nội dung của một Website Joomla" đượcthể hiện thông qua hình vẽ dưới đây:
Trang 33Hình 1.6: Cấu trúc nội dung website Joomla
− Section: Là cấp quản lý nội dung lớn nhất, chứa các Category Có thể tạo
nhiều Section và mỗi Section có thể chứa nhiều Category
− Category: Là cấp quản lý nội dung nhỏ hơn Section, chứa Content Item.
Có thể tạo nhiều Category và mỗi Category có thể chứa nhiều ContentItem
− Content Item (Article): Là phần nội dung, chứa các văn bản và hình ảnh
được hiển thị trên trang Web
1.4.4 Template
Template là một loạt các file trong Joomla CMS mà được sử dụng để điềukhiển cách thức hiển thị nội dung Template không phải là một web site, nókhông được coi là một thiết kế trang web đầy đủ
Template là một thiết kế nền tảng cơ bản cho việc hiển thị web site Đểtạo ra hiệu ứng của một trang web hoàn chỉnh Template làm việc cùng với nộidung được cất giữ trong cơ sở dữ liệu
Các file của một template phải được đặt trong thư mục /templates trongthư mục cài đặt của Joomla Nếu ta có 2 template đã được cài đặt thì thư mục củachúng ta sẽ trông giống như sau :
/templates/mytemp1 /templates/mytemp2
Một Template thường gồm các thành phần cơ bản sau: Phần khung giaodiện (index.php), phần thiết đặt hển thị (template_css.css), phần cài đặt
Trang 34(templateDetails.xml) , ngoài ra có thể có các file khác như các folder, các file.js, file ảnh tùy thuộc vào độ phức tạp Template này và mức độ bạn hiểu.
Có 2 files mà tên của chúng cũng như vị trí phải được đặt một cách chínhxác và chúng được gọi là các kịch bản lõi của Joomla (Joomla core script) :
/JS_Smoothportal/templateDetails.xml /JS_Smoothportal/index.php
− templateDetails.xml : Thông báo cho trình cài đặt các file sẽ được dùngcho template này Nó còn diễn giải các thông tin khác như tác giả , bảnquyền
− index.php là file quan trọng nhất , nó nói cho Joomla biết nơi đặt cácComponents, Modules Nó là sự kết hợp của PHP và (X)html
− Trong hầu hết các template có thêm các thành phần bổ xung,đây là cácthành phần quy ước (không yêu cầu bởi lõi của Joomla) chúng có tên vàđược đặt ở vị trí sau:
/JS_Smoothportal/template_thumbnail.png /JS_Smoothportal/css/template_css.css /JS_Smoothportal/images/ logo.png
− template_thumbnail.png là hình chụp giao diện của template thường cókích thước 140 pixels chiều rộng và 90 pixels chiều cao, file này được sửdụng cho chức năng xem trước (Preview)
− css/template_css.css vị trí của thư mục CSS là tùy chọn nhưng bạn phảichỉ rõ nó ở đâu Chú ý rằng tên của file chỉ quan trọng trong các thamchiếu ở trong file index.php và bạn nên đặt tên như bạn thích
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 Khảo sát thực trạng
2.1.1 Giới thiệu nhà thuốc Minh Phương
Nhà thuốc Minh Phương
Trang 35Địa chỉ: 121 - Nguyễn Ngọc Vũ – Trung Hòa – Cầu Giấy – Hà Nội
Số điện thoại: 0936 594 883
Nhà thuốc có đội ngũ y bác sĩ với nhiều năm kinh nghiêm:
+ Dược sĩ: Nguyễn Văn Khanh
+ Bác sĩ: Nguyễn Thị Lan
+ Bác sĩ: Nguyễn Văn Dũng
+ Dược sĩ: Ngô Văn Đức
+ Dược sĩ: Đào Trường Linh
Chuyên khám chưa bệnh và cung cấp các loại thuốc có chất lượng
Nhà thuốc có 2 cơ sở tại hà nội có thể cung cấp các loại thuốc cho nhiều nơi trên
Hà Nội Nhà thuốc nhập các loại thuốc từ các công ty dược có danh tiếng và quakiểm duyệt
2.1.2 Hoạt động của nhà thuốc
Hoạt động của cửa hàng bao gồm:
Bán thuốc:
- Khách hàng mua thuốc theo đơn: Khi khách hàng đến mua thuốc tại nhàthuốc có mang theo đơn thuốc được chỉ định của bác sĩ Tại đây đơnthuốc được các dược sĩ kiểm tra đơn thuốc, xác định loại thuốc, lập hóađơn bán thuốc có gi rõ tên thuốc số lượng và đơn giá theo đơn thuốc yêucầu của người mua Giá bán thuốc được tính theo giá bán lẻ quy định củanhà nước
- Khách hàng mua thuốc khi không có đơn thuốc: Khi khách hàng đến muathuốc tại của hàng không có đơn thuốc sẽ được các dược sĩ tại cửa hàng tưvấn về thuốc dựa theo các triệu chứng của người mua, xác định rõ nhu cầumua và sử dụng thuốc, hướng đẫn các sử dụng thuốc một cách tốt nhất.Lập hóa đơn thuốc cho người mua Giá bán thuốc được tính theo giá bán
lẻ quy định của nhà nước
- Khách hàng đến mua thuốc là các đơn vị bán lẻ khác: Nhà thuốc xác định
rõ các đơn vị bán lẻ, lập hóa đơn cho các mặt hàng thuốc với số lượng vàchủng loại thuốc Giá bán thuốc được tính theo giá phân phối thuốc củanhà thuốc
Nhập thuốc:
Nhà thuốc nhập thuốc tại các công ty dược tại Việt Nam như: