Trong lĩnh vực công nghệ thông tin, các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu không ngừng phát triển và đổi mới, cho phép chúng ta xây dựng các phần mềm ứng dụng hỗ trợ việc
Trang 1tr-ờng đại học vinh
khoa công nghệ thông tin
-TRẦN HỒNG QUÂN
XÂY DỰNG CHƯƠNG TRèNH QUẢN Lí TRẺ
EM VÀ GIÁO VIấN TRONG TRƯỜNG MẦM NON
BẰNG NGễN NGỮ LẬP TRèNH JAVA
Đồ án tốt nghiệp đại học
Vinh, Thỏng 5 - 2010
Trang 2Lời cảm ơn
Em xin chân thành cảm ơn thầy: Th.s Đặng Hồng Lĩnh đã trực tiếp,tận
tâm, nhiệt tình h-ớng dẫn giúp em hoàn thành tốt đồ án này
Từ những ý kiến chỉ bảo quý báu của thầy, đã đem lại cho em rất nhiều kiến thức và kinh nghiệm trong lập trình phần mềm cũng nh- cách thức trình bày báo cáo
Em cũng xin gửi bày tỏ sự biết ơn sâu sắc của mình tới các thầy cô giáo
đã dạy em trong 5 năm học tại tr-ờng để em có đ-ợc kiến thức nh- ngày
hôm nay để hoàn thành đ-ợc đồ án này
Xin gửi tới các thầy cô giáo lời biết ơn sâu sắc của em
Vinh ngày 05 tháng 05 năm 2010
Sinh viên : Trần Hồng Quân
Trang 3Mục lục
Lời nói đầu 3
Phần I: Khảo sát hệ thống I Tìm hiểu hệ thống cũ 5
II Đánh giá hệ thống 7
Phần II: Phân tích thiết kế hệ thống I Lựa chọn h-ớng phân tích 9
II Phân tích hệ thống cũ 9
III Thiết kế hệ thống mới 10
IV Sơ đồ phân cấp chức năng 10
V Biểu đồ luồng dữ liệu 11
VI Mô hình thực thể và các thuộc tính 17
VII Mô hình dữ liệu quan hệ 21
Phần III: Xây dựng ch-ơng trình I Giới thiệu 22
II Ngôn ngữ và các công cụ sử dụng trong đồ án II.1 Ngôn ngữ lập trình Java 23
II.2 Công cụ sử dụng trong đồ án 27
III Cơ sở dữ liệu III.1 L-ợc đồ quan hệ dữ liệu 29
III.2 Chi tiết các bảng trong cơ sở dữ liệu 30
III.3 Thuộc tính của các bảng 34
IV Thiết kế IV.1 Form đăng nhập 37
IV.2 Form chính 37
IV.2.1 Menu Hệ thống 38
IV.2.1.1 Form quản lý tài khoản đăng nhập 38
IV.2.1.2 Form thêm sửa xoá các quyền cho User 39
IV.2.2 Menu chức năng 40
IV.2.2.1 Form quản lý thông tin về trẻ em 41
IV.2.2.2 Form quản lý thông tin về nhóm tuổi 44
IV.2.2.3 Form quản lý thông tin về giáo viên 46
IV.2.2.4 Form quản lý thông tin về các hoạt động của trẻ 48
IV.2.3 Menu thống kê 49
IV.2.3.1 Form danh sách trẻ đ-ợc quản lý bởi giáo viên 49
IV.2.3.2 Form danh sách trẻ thuộc nhóm tuổi 50
Phần V: Kết luận 51
Trang 4Lời nói đầu
Cùng với sự phát triển của các lĩnh vực kinh tế, xã hội, nhu cầu ứng dụng công nghệ thông tin ngày càng cao và không ngừng biến đổi Khi hệ thống càng phát triển, càng phức tạp thì các ph-ơng thức quản lý cổ điển truyền thống sẽ trở nên cồng kềnh và khó có thể đáp ứng đ-ợc yêu cầu ngày càng cao của hệ thống Để xử lý các thông tin một cách nhanh chóng, chính xác và có hiệu quả, đòi hỏi phải có sự hỗ trợ của một công cụ hiện đại, đó chính là công nghệ thông tin
Sự phát triển nhảy vọt của công nghệ thông tin đã tác động mạnh mẽ
đến các hoạt động xã hội, làm thay đổi một cách sâu sắc đến phong cách sống làm việc của một xã hội Công nghệ thông tin đã trở thành trụ cột chính của nền kinh tế tri thức ứng dụng công nghệ thông tin vào việc quản lý các hoạt động xã hội và nghiên cứu khoa học đ-ợc nhiều ng-ời quan tâm Phạm
vi ứng dụng của công nghệ thông tin ngày càng mở rộng trên nhiều lĩnh vực: truyền thông, đo l-ờng, tự động hoá, quản lý các hoạt động của con ng-ời và xã hội Những lợi ích mà các phần mềm ứng dụng mang lại là đáng kể: xử lý thông tin nhanh chóng, chính xác, khoa học, giảm bớt nhân lực và công sức, phí tổn thấp và hiệu quả công việc nâng cao một cách rõ rệt
Trong lĩnh vực công nghệ thông tin, các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu không ngừng phát triển và đổi mới, cho phép chúng ta xây dựng các phần mềm ứng dụng hỗ trợ việc quản lý các hoạt động xã hội một cách tốt nhất Với tầm quan trọng của ứng dụng công nghệ thông tin trong quản lý nên tôi muốn tìm hiểu ngôn ngữ lập trình Java và hệ quản trị cơ sở dữ liệu SQL Server 20005 để xây dựng phần mềm quản lý trẻ em và giáo viên trong tr-ờng mầm non
Trang 5X©y dùng ch-¬ng tr×nh Qu¶n lý trÎ em vµ gi¸o viªn trong tr-êng mÇm non b»ng ng«n ng÷ lËp tr×nh
Trang 6PHẦN I : KHẢO SÁT HỆ THỐNG
I Tìm hiểu hệ thống cũ
Hệ thống quản lý trẻ em và giáo viên trong tr-ờng mầm non áp dụng
đ-ợc cho tất cả các tr-ờng mầm non
Chức năng cơ bản của hệ thống là quản lý thông tin về trẻ em và giáo viên, các hoạt động của trẻ trong tr-ờng, phân công giáo viên giảng dạy
Hệ thống bao gồm các bộ phận với các chức năng cụ thể sau:
* Giáo viên : thực hiện theo công tác và kế hoạch nuôi d-ỡng chăm sóc,giáo
dục trẻ theo lứa tuổi Quản lý các thông tin về trẻ để kịp thời báo cáo với gia
đình và ban giám hiệu
* Ban giám hiệu: điều hành các hoạt động của tr-ờng ,quản lý hồ sơ của giáo
viên, phân công quản lý và phân công giáo viên giảng dạy theo từng nhóm tuổi cho phù hợp Quản lý các hoạt động vui chơi giải trí cũng nh- học hành
của trẻ mà nhà tr-ờng tổ chức
2 Quản lý nhóm tuổi
Công việc quản lý nhóm tuổi đ-ợc thực hiện:
- Quản lý theo nhóm
- Phân công giáo viên quản lý nhóm
* Quản lý theo nhóm tuổi : Trong tr-ờng mầm non thì trẻ đ-ợc chia thành 8
nhóm tuổi tuỳ theo quy mô từng tr-ờng thì số nhóm tuổi này có thể giảm bớt
- Nhóm 12 tháng đến 18 tháng gọi là nhóm cháo
Trang 7- Nhóm 18 tháng đến 24 tháng là nhóm cơm nát
- Nhóm 24 tháng đến 36 tháng là nhóm cơm th-ờng
- Nhóm 3 đến 4 tuổi gọi là mẫu giáo bé
- Nhóm 4 đến 5 tuổi gọi là mẫu giáo nhỡ
- Nhóm 5 đến 6 tuổi gọi là mẫu giáo lớn
* Phân công giáo viên quản lý nhóm: Công việc phân công giáo viên quản lý
nhóm tuổi th-ờng đ-ợc thực hiện vào đầu mỗi năm học, thông th-ờng 1 giáo viên chỉ đ-ợc phân công quản lý một nhóm, cũng có tr-ờng hợp 1 giáo viên
đ-ợc phân công quản lý nhiều hơn 1 nhóm
3 Quản lý giáo viên
Mỗi giáo viên trong tr-ờng đ-ợc quản lý theo: Tên giáo viên và nhóm
tuổi quản lý
4 Quản lý trẻ
Vào đầu năm học, tr-ờng tiến hành công tác tuyển sinh, ở công đoạn này các thông tin của trẻ em đ-ợc chọn sẽ đ-ợc ghi vào hồ sơ chung của nhà tr-ờng Các thông tin này th-ờng lấy ở hồ sơ của phụ huynh nạp lên bao gồm:
- Điện thoại nơi làm việc
- Điện thoại nhà riêng
- Các chú ý về trẻ
Trang 8+ Kho l-u trữ lớn, l-u trữ chủ yếu bằng giấy tờ
+ Các chức năng đều tiến hành bằng thủ công cho nên công việc nặng nhọc, mất thời gian
+ Việc tìm kiếm và sửa đổi khó khăn
+ Sử dụng nhiều nhân lực
+ Hiệu quả công việc thấp
+ Độ chính xác không cao
+ Có những công việc phải lặp đi lặp lại
Nh- vậy việc quản lý trẻ em và giáo viên bằng cách thủ công nh- hiện nay bộc lộ rất nhiều hạn chế và không phù hợp với tình hình hiện nay
2 H-ớng khắc phục:
Vì những tồn tại nh- trên, tôi đã mạnh dạn đ-a ra một hình thức quản
lý mới có sự trợ giúp của công nghệ thông tin Đó là sự xuất hiện của máy tính với những chức năng kế thừa t-ơng tự nh- công tác quản lý trẻ em và giáo viên đã thực hiện, tuy nhiên thời gian xử lý, các công việc liên quan tới công việc quản lý đ-ợc nâng cao một cách rõ rệt
Trang 9Với bài toán trên máy tính các công việc cập nhật thông tin về trẻ em
và giáo viên đ-ợc thực hiện nhanh chóng, các công việc nh- bổ sung học sinh mới nào đó hay xoá khỏi danh sách một học sinh nào đó cũng mang lại kết quả cao Điều này tránh đ-ợc tình trạng tẩy xoá hay thêm các dòng ghi chú không cần thiết trong hồ sơ chung của tr-ơng và cũng nh- phải kẻ thêm dòng mới để l-u trẻ hoặc một giáo viên vừa chuyển đến tr-ờng Bên cạnh đó
hệ thống mới cũng sẽ đ-ợc thiết kế chức năng tìm kiếm thông tin theo yêu cầu của ban giám hiệu, giáo viên hay phụ huynh Chức năng này sẽ đáp ứng
đầy đủ nguyện vọng của ng-ời cần thông tin một cách rất nhanh chóng
Trang 10PHẦN II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
I Lựa chọn h-ớng phân tích
Khi phân tích thiết kế hệ thống ta có thể chọn một trong hai h-ớng là h-ớng chức năng và h-ớng dữ liệu Trong đề tài này tôi lựa chọn phân tích theo h-ớng chức năng Với cách tiếp cận này, chức năng đ-ợc lấy làm trục chính của quá trình phân tích và thiết kế, tiến hành phân tích trên xuống có cấu trúc
Các b-ớc thực hiện:
- Xây dựng biểu đồ phân cấp chức năng
- Xây dựng biểu đồ luồng dữ liệu
- Xây dựng mối quan hệ giữa các thực thể
- Xây dựng mô hình dữ liệu
II Phân tích hệ thống cũ
Với cách quản lý trẻ em hoàn toàn bằng ph-ơng pháp thủ công truyền thống gặp nhiều khó khăn trong việc l-u trữ và xử lí thông tin Bởi vậy cần xây dựng một ch-ơng trình quản lý bằng máy vi tính để giúp việc quản lý một cách chính xác và hiệu quả hơn làm giảm nhẹ một phần đáng kể nhân lực và công sức
+ Yêu cầu của hệ thống quản lý bằng máy tính:
- Quản lý tốt thông tin về trẻ em và giáo viên
- Xử lý thông tin chính xác, khoa học
- Ch-ơng trình dễ sử dụng, có hiệu quả
- Có khả năng hỗ trợ đa ng-ời dùng, phù hợp với xu thế phát triển của mạng máy tính
Trang 11III Thiết kế hệ thống mới
a Các chức năng chính của hệ thống quản lý trẻ em và giáo viên trong tr-ờng mầm non
+ Xem danh sách giáo viên
+ Xem danh sách nhóm tuổi
+ Xem danh sách các hoạt động của trẻ
+ Xem danh sách trẻ theo giáo viên
IV Sơ đồ phân cấp chức năng
Sơ đồ phân cấp chức năng đ-ợc sử dụng để nêu ra chức năng và quá trình cho biểu đồ luồng dữ liệu, thông qua nó để mô tả các chức năng xử lý của hệ thống theo các mức Việc phân rã chức năng đ-ợc thực hiện trong sơ đồ phân cấp chức năng còn đ-ợc dùng để chỉ ra mức độ mà từng quá trình hoặc quá trình con phải xuất hiện trong biểu đồ luồng dữ liệu
Trang 12Khảo sát thực tế của “ Hệ thống qu°n lý trẻ em v¯ giáo viên ở tr-ờng mầm non ”, sơ đồ phân cấp chức năng của hệ thống được trình b¯y theo các mức cụ thể sau:
V Biểu đồ luồng dữ liệu
Biểu đồ luồng dữ liệu dùng để diễn tả tập hợp các chức năng của hệ thống trong mối quan hệ tr-ớc sau của tiến trình xử lý và việc trao đổi thông tin trong hệ thống Biểu đồ luồng dữ liệu giúp ta thấy đ-ợc đằng sau những gì thực tế xảy ra trong hệ thống, làm rõ những chức năng và các thông tin cần thiết Biểu đồ luồng đ-ợc chia thành các mức nh- sau:
Xem danh sách trẻ Thống kê theo yêu cầu
Xem danh sách giáo viên
Xem danh sách các hoạt
động của trẻ
Xem danh sách trẻ theo giáo
viên Cập nhật nhóm tuổi
Quản lý trẻ em và giáo viên
Xem danh sách các nhóm
tuổi
Trang 13Là mức tổng quát nhất đ-ợc xây dựng ở giai đoạn đầu của quá trình
phân tích và đ-ợc dùng để vạch ra biên giới của hệ thống cũng nh- buộc
ng-ời phân tích ‟ thiết kế phải xem xét các luồng dữ liệu bên ngoài hệ
thống, ở mức này ng-ời phân tích chỉ cần xác định đ-ợc các tác nhân ngoài
của hệ thống và coi toàn bộ các xử lý của hệ thống là một chức năng, trong
biểu đồ ch-a có kho dữ liệu
Dựa vào sơ đồ phân cấp chức năng ở mức 2 để tách các chức năng
thành các chức năng con trên cơ sở tôn trọng 4 nguyên tắc sau:
- Các luồng dữ liệu phải bảo toàn
- Các tác nhân ngoài cũng phải đ-ợc bảo toàn
- Có thể xuất hiện các kho dữ liệu
Quản lý trẻ em và
giáo viên
Phụ huynh
Giáo viên Ban giám hiệu
Trang 14- Có thể bổ sung các luồng dữ liệu nội bộ
Biểu đồ luồng dữ liệu mức đỉnh
3 Mức d-ới đỉnh
Từ 3 chức năng cơ bản đ-ợc mô tả ở biểu đồ luồng dữ liệu mức đỉnh,
ta tiến hành phân rã thành các chức năng con chi tiết ứng với biểu đồ phân cấp chức năng thấp nhất theo các nguyên tắc cơ bản sau:
- Phải phân rã các chức năng ở mức trên xuống mức d-ới
- Các tác nhân ngoài bảo toàn từ sơ đồ mức đỉnh
- Kho dữ liệu xuất hiện dần theo yêu cầu quản lý nội bộ
Cập nhật Thông tin
Thống kê
Xử lý Thông tin
Phụ huynh
Giáo viên Ban giám hiệu
Trang 15- Bảo toàn các luồng dữ liệu vào ra với các tác nhân ngoài và thêm các luồng nội bộ
- Có thể tách biểu đồ thành từng trang ứng với một hoặc vài chức năng ở mức đỉnh
* Cập nhật thông tin
Cập nhật giáo viên
Nhập hồ sơ trẻ
Cập nhật nhóm tuổi
Cập nhật hoạt động Ban giám hiệu
Phụ huynh
Trang 16Ph©n c«ng ch¨m sãc
Trang 17* Thống kê theo yêu cầu
Phụ huynh
Xem danh sách giáo viên
Xem danh sách trẻ
Xem danh sách các hoạt
động
Xem danh sách nhóm tuổi
Xem danh sách trẻ theo giáo viên
Ban giám hiệu Giáo viên
Trang 18VI Mô hình thực thể và các thuộc tính
1 Chuẩn hoá l-ợc đồ cơ sở dữ liệu
Trong thực tế, một ứng dụng có thể đ-ợc phân tích, thiết kế thành nhiều l-ợc đồ cơ sở dữ liệu khác nhau và tất nhiên chất l-ợng thiết kế của các l-ợc đồ cơ sở dữ liệu này cũng khác nhau Chất l-ợng thiết kế của một l-ợc đồ cơ sở dữ liệu có thể đ-ợc đánh giá dựa trên các tiêu chuẩn nh-: sự trùng lặp thông tin, chi phí kiểm tra các ràng buộc toàn vẹn
Sự chuẩn hoá l-ợc đồ cơ sở dữ liệu có ý nghĩa rất lớn đối với mô hình dữ liệu quan hệ Trong thực tế, ở những b-ớc tiếp cận đầu tiên, ng-ời phân tích thiết kế rất khó xác định đ-ợc ngay một cơ sở dữ liệu của một ứng dụng
sẽ gồm những l-ợc đồ quan hệ con (thực thể) nào (có chất l-ợng cao), mỗi l-ợc đồ quan hệ con có những thuộc tính và tập phụ thuộc hàm ra sao? Thông qua một số kinh nghiệm, ng-ời phân tích - thiết kế có thể nhận diện
đ-ợc các thực thể của l-ợc đồ cơ sở dữ liệu nh-ng lúc đó chất l-ợng của nó ch-a hẳn đã cao Bằng ph-ơng pháp chuẩn hoá, ng-ời phân tích ‟ thiết kế
có thể nâng cao chất l-ợng của l-ợc đồ cơ sở dữ liệu ban đầu để đ-a vào khai thác
Chuẩn hoá là quá trình khảo sát các danh sách thuộc tính và áp dụng một tập các quy tắc phân tích vào các danh sách đó, chuyển chúng thành một dạng mà:
- Tối thiểu việc lặp lại (cùng một thuộc tính có mặt ở nhiều thực thể)
- Tránh d- thừa (các thuộc tính có giá trị là kết quả từ tính toán đơn giản đ-ợc thực hiện trên các thuộc tính khác)
Để đánh giá một cách cụ thể chất l-ợng thiết kế của một l-ợc đồ cơ sở
dữ liệu, tác giả của mô hình dữ liệu quan hệ E.F Codd, đã đ-a ra 3 dạng
chuẩn (1NF, 2NF, 3NF) Ng-ời phân tích - thiết kế bắt đầu với một danh sách các thuộc tính dự định đối với một kiểu thực thể, sau khi áp dụng 3 quy tắc chuẩn hoá, từ kiểu thực thể gốc, các kiểu thực thể mới đ-ợc xác định và
Trang 19tất cả chúng đều đ-ợc chuẩn hoá hoàn toàn Có thể nói dạng chuẩn thứ 3 (3NF) là tiêu chuẩn tối thiểu trong việc thiết kế cơ sở dữ liệu
Căn cứ quá trình khảo sát đã phân tích ở tr-ớc, thống kê danh sách các thuộc tính và tiến hành chuẩn hoá nh- sau:
Họ trẻ Tên đệm Ngày sinh Tiền sử bệnh Thuốc đang dùng Tên phụ huynh
Điện thoại phụ huynh
Ngày đăng ký Ngày nhận Tên nhóm tuổi
Độ tuổi của nhóm
Học phí theo nhóm
Mã giáo viên
Mã trẻ Mã nhóm tuổi Tên trẻ
Họ trẻ Tên đệm Ngày sinh Tiền sử bệnh Thuốc đang dùng Tên phụ huynh
Điện thoại huynh Ngày đăng ký Ngày nhận Tên nhóm tuổi
Độ tuổi của nhóm
Học phí theo nhóm
Mã giáo viên Tên giáo viên
Mã trẻ Mã nhóm tuổi Tên trẻ
Họ trẻ Tên đệm Ngày sinh Tiền sử bệnh Thuốc đang dùng Tên phụ huynh
Điện thoại phụ huynh
Ngày đăng ký Ngày nhận
Mã nhóm tuổi Tên nhóm tuổi
Độ tuổi của nhóm
Học phí theo nhóm
Trang 20Địa chỉ
Số giờ làm việc
Số trẻ quản lý
Mã hoạt động Tên hoạt động Chi phí hoạt
động
Mã trẻ Mã giáo viên Mã nhóm tuổi
Mã hoạt động Mã nhóm tuổi
động
Mã trẻ Mã giáo viên Mã nhóm tuổi
Mã hoạt động Mã nhóm tuổi
Mã giáo viên Tên giáo viên L-ơng
Địa chỉ
Số giờ làm việc
Số trẻ quản lý
Mã trẻ Mã giáo viên
Mã nhóm tuổi Mã giáo viên
Mã nhóm tuổi Mã hoạt động
Trang 21Hoạt động Giáo viên_Trẻ em
Giáo viên_Nhóm tuổi Hoạt động- Nhóm tuổi
Trang 22VII Mô hình dữ liệu quan hệ
Từ các kiểu thực thể đ-ợc hệ thống ở trên, căn cứ vào quá trình khảo sát thực tế và sau các b-ớc thực hiện, đã xây dựng l-ợc đồ dữ liệu theo mô hình quan hệ nh- sau:
Trẻ em_Giáo viên
Giáo viên_Nhóm tuổi
Trang 23PHẦN III: XÂY DỰNG CHƯƠNG TRèNH
I Giới thiệu ch-ơng trình
- Ch-ơng trình đ-ợc viết bằng ngôn ngữ Java ,là phần mềm dùng để quản
lý trẻ em và giáo viên trong một tr-ờng mầm non Tr-ờng mầm non này nhận chăm sóc cho trẻ từ 12 tháng cho đến 6 tuổi và cung cấp các hoạt động vui chơi giải trí học hành cho trẻ
Các ng-ời sử dụng chính ứng dụng:
„ Quản trị viên (Những ng-ời có đầy đủ quyền đối với các chức năng trong
hệ thống)
„ Thành viên (những ng-ời đ-ợc quản trị viên cấp quyền để đăng nhập vào
đ-ợc hệ thống và đ-ợc cấp một số quyền nhất định)
„ Quản lý thông tin của trẻ em(Child) (Thêm,Sửa, Xem,Xóa,Tìm kiếm)
„ Quản lý thông tin của giáo viên(Nanny) (Thêm,Sửa, Xem,Xóa,Tìm kiếm)
„ Quản lý hoạt động của trẻ em (Thêm,Sửa, Xem,Xóa,Tìm kiếm)
„ Quản lý thông tin các nhóm tuổi trẻ em (Thêm,Sửa, Xem,Xóa,Tìm kiếm)
„ Quản lý hoạt động theo nhóm (Thêm , Xóa, Xem)
„ Quản lý ng-ời dùng và chức năng cho ng-ời dùng(Thêm,Sửa, Xóa,Xem,
Trang 24JRE 1.6 hoặc các phiên bản lớn hơn
Netbean 5.0 hoặc các phiên bản mới hơn
II Giới thiệu về ngôn ngữ và các công cụ sử dụng trong đồ án
1 Ngôn ngữ lập trình Java
a Nền tảng đ-ợc thiết lập cho Java
Vào cuối thập niên 80 và đầu thập niên 90, ngôn ngữ lập trình h-ớng đối t-ợng C++ đ-ợc sử dụng phổ biến D-ờng nh- các lập trình viên đã tìm đ-ợc một ngôn ngữ lập trình hoàn hảo Bởi vì C++ pha trộn tính hiệu quả cao và các yếu tố phong cách C với mô hình h-ớng đối t-ợng Tuy nhiên, cũng nh- trong quá khứ, một lần nữa đã thay đổi sự phát triển của ngôn ngữ máy tính Chỉ trong vòng vài năm, World Wide Web và Internet đã đến với số đông
Điều này chuẩn bị cho một cuộc cách mạng trong ngôn ngữ lập trình,về cơ bản dẫn đến sự ra đời của Java
Java là một công nghệ xây dựng các ứng dụng phần mềm có vị trí rất lớn trong những năm cuối thế kỉ 20, đầu thế kỉ 21 Nó đ-ợc coi là công nghệ mang tính cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khả năng chạy thống nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần Ngày nay, Java là một nền tảng tất yếu của các ứng dụng quy mô lớn của các doanh nghiệp nhờ vào khả năng mở rộng cũng nh- những nền tảng vô cùng phong phú mà nó cung cấp
Sun Microsystem (SUN viết tắt của Stanford University Network), công ty đã phát minh ra ngôn ngữ Java, chính thức ban hành bản Java Development Kit 1.0 vào năm 1996 hoàn toàn miễn phí Java đã trải qua 3 b-ớc phát triển quan trọng: Java 1.0 gắn liền với bản JDK đầu tiên, Java 2 gắn với JDK 1.2
và Java 5 gắn với J2SDK 1.5
b Ngôn ngữ lập trình Java
Ngôn ngữ lập trình Java là ngôn ngữ h-ớng đối t-ợng (tựa C++) do SUN
đ-a ra vào giữa thập niên 90 Khác với phần lớn ngôn ngữ lập trình thông th-ờng, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java đ-ợc thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ đ-ợc môi tr-ờng thực thi (runtime environment) chạy Bằng cách này, Java th-ờng chạy nhanh hơn những ngôn ngữ lập trình thông dịch khác nh- Python, Perl, PHP, và khả chuyển hơn các ngôn ngữ lập trình biên dịch nh- C++ Không nên lẫn lộn Java với Javảcipt, mặc dầu 2 ngôn ngữ cùng loại cú pháp nh- C
Ngày nay, đối với Java ng-ời ta không còn nhắc đến nh- là 1 ngôn ngữ lập trình mà nhắc đến một công nghệ hay một nền tảng phát triển, nó bao gồm các bộ phận :
Trang 25* Máy ảo Java: JVM
* Bộ công cụ phát triển : J2SDK
* Các đặc tả chi tiết kĩ thuật (specifications)
* Ngôn ngữ lập trình (programming language)
* Các công nghệ đi kèm nh- JSP, Servlet, EJB, JDBC, JNDI, JMX, RMI …
và framework nh- Struts, Spring, JSF, Hibernate, JavaFX
c Sự ra đời của Java
Ngôn ngữ lập trình Java do James Gosling và các cộng sự trong nhóm Green Team của Công ty Sun Microsystem phát triển Đ-ợc thai nghén nh-
là một kiểu ngôn ngữ dùng cho các thiết bị tiêu dùng, SUN giới thiệu Java năm 1995 nh- một thứ ngôn ngữ lập trình dành cho các trình duyệt Web Java nhanh chóng đ-ợc áp dụng để xây dựng các công cụ hàng đầu cho các doanh nghiệp cũng nh- trong các ứng dụng tối quan trọng
Đáng ngạc nhiên là sự thúc đẩy ban đầu của Java không phải là Internet Thay vào đó động cơ chính là sự cần thiết của một ngôn ngữ có nền tảng độc lập (hay là kiến trúc trung lập) có thể đ-ợc dùng để tạo ra phần mềm đ-ợc nhúng trong nhiều thiết bị tiêu dùng điện tử khác nhau Ta có thể đoán đ-ợc, nhiều kiểu CPU đ-ợc dùng nh- là bộ điều khiển Vấn đề rắc rối đối với C và C++ (hay hầu hết các ngôn ngữ khác) là chúng đ-ợc thiết kế để đ-ợc biên dịch cho một đối t-ợng nhất định Mặc dù có thể biên dịch một ch-ơng trình C++ cho bất cứ loại CPU nào, để làm điều đó đòi hỏi một trình biên dịch C++ đầy đủ cho CPU đó Vấn đề là trình biên dịch đó rất đắt đỏ và mất nhiều thời gian để tạo ra nó Vì vậy cần một giải pháp dễ dàng và hiệu quả hơn Trong nỗ lực để tìm ra giải pháp đó, Gosling và các đồng nghiệp bắt
đầu làm việc trên một ngôn ngữ linh động và độc lập với nền tảng, nó có thể
đ-ợc dùng để sinh ra mã có thể thực thi đ-ợc trên các CPU khác nhau d-ới các môi tr-ờng khác nhau
Sau hơn 18 tháng để phát triển phiên bản đầu tiên, nhóm đặt tên cho ngôn ngữ là Oak (có nghĩa là cây sồi, do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này) Sau này Gosling biết tên Oak đã đ-ợc sử dụng cho một ngôn ngữ lập trình từ tr-ớc đó nên đổi tên là Java - đây là tên gọi của một hòn đảo ở Indonexia, nơi nhóm nghiên cứu phát triển đã chọn để đặt tên cho ngôn ngữ lập trình mới trong một chuyến đi tham quan và làm việc trên hòn đảo này Hòn đảo Java này là nơi rất nổi tiếng với nhiều khu v-ờn trồng cafe, đó chính là lý do chúng ta th-ờng thấy biểu t-ợng ly café trong nhiều sản phẩm phần mềm, công cụ lập trình Java của Sun cũng nh- một số hãng phần mềm khác đ-a ra
Java có vô số những tính năng rất hấp dẫn đối với ng-ời phát triển nh- mô hình h-ớng đối t-ợng, cấu trúc mã rất dễ hiểu dựa trên C/C++ nh-ng có tính liên kết và logic nhất quán cao hơn, có ít các cấu trúc không an toàn, ít các tính năng xử lý cấp thấp hơn, cơ chế “dọn dẹp” bộ nhớ tự động tích hợp
Trang 26sẵn và đặc biệt là có khả năng chạy trên nhiều nền phần cứng khác nhau
d Một số đặc điểm của Java
Đơn giản (simple):
Java đơn giản vì, mặc dù dựa trên cơ sở C++ nh-ng Sun đã cẩn thận l-ợc
bỏ các tính năng khó nhất của C++ để làm cho ngôn ngữ này dễ sử dụng hơn Là một ngôn ngữ lập trình hoàn toàn mới, nó buộc phải có dáng vẻ và
sự cảm nhận t-ơng tự nh- các ngôn ngữ phổ biến hiện hành đồng thời đòi hỏi khoảng thời gian huấn luyện lại tối thiểu và thân thiện hơn với ng-ời dùng
Do đơn giản, ngôn ngữ này cũng rất nhỏ - nên nhớ rằng từ đầu nó đã đ-ợc xây dựng để dùng cho điện tử dân dụng nh- đầu chạy bằng video và hộp điều khiển từ xa, những thiết bị có không gian l-u trữ rất hạn chế
H-ớng đối t-ợng (Object Oriented):
H-ớng đối t-ợng trong Java t-ơng tự nh- C++ nh-ng Java là một ngôn ngữ lập trình h-ớng đối t-ợng hoàn toàn Tất cả mọi thứ đề cập đến trong Java đều liên quan đến các đối t-ợng đ-ợc định nghĩa tr-ớc, thậm chí hàm chính của một ch-ơng trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp H-ớng đối t-ợng trong Java không có tính đa kế thừa (multi inheritance) nh- trong C++ mà thay vào đó Java đ-a ra khái niệm interface để hỗ trợ tính đa kế thừa Vấn đề này sẽ đ-ợc bàn chi tiết trong phần sau
Hiểu mạng (network-savvy):
Java đ-ợc lập ra để hoạt động trên mạng và có các thủ tục để có thể quản
lý các giao thức mạng nh- TCP/IP, FTP và HTTP Nói cách khác, Java đ-ợc xây dựng để thực hiện hoàn toàn thích hợp trên Internet Ch-ơng trình Java thậm chí có thể xâm nhập vào các đối th-ợng khác thông qua Internet bằng cách sử dụng URL (địa chỉ Web) để định vị chúng
Mạnh mẽ (robust):
Khả năng mạnh phải phù hợp với thiết kế của ngôn ngữ, và h-ớng nó vào việc khắc phục những h- hỏng bộ nhớ và đảm bảo tính toán vẹn dữ liệu Ví
dụ, Java có tính năng "automatic garbage collection" (tự động thu gom rác) -
có nghĩa là bộ nhớ đ-ợc giải phóng một cách tự động - nên lập trình viên không phải bận tâm về việc quản lý bộ nhớ và nhờ đó ít có xu h-ớng làm những việc gây hỏng bộ nhớ
An toàn (secure):
Khả năng h-ớng mạng của Java tự động đ-a ra yêu cầu về an toàn Đặc tính an toàn của ngôn ngữ lập trình này bắt nguồn từ việc nó có những phần hạn chế đ-ợc cài sẵn nhằm đề phòng các ch-ơng trình Java thực hiện những chức năng nh- ghi vào ổ cứng của ng-ời dùng hay cho phép virus từ mạng hoặc từ môi tr-ờng phân tán thâm nhập vào