萬梅++顧和明
摘要:根據(jù)家校通系統(tǒng)的實(shí)際需求,該文給出了家校通系統(tǒng)的需求分析以及系統(tǒng)設(shè)計。利用MySQL設(shè)計后臺數(shù)據(jù)庫,采用的體系結(jié)構(gòu)是B/S和C/S兩種。設(shè)計并實(shí)現(xiàn)了登錄管理,基本信息管理,成績管理,留言管理,簽到管理等功能模塊。該系統(tǒng)的應(yīng)用在一定程度上規(guī)范了對學(xué)生的在校信息和到校情況的管理,有效提高家校通系統(tǒng)的效率及服務(wù)質(zhì)量。
關(guān)鍵詞:家校通系統(tǒng);數(shù)據(jù)庫;B/S;C/S;模塊化
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)18-4163-03
2002年中央電教館將“家校直通車研究和應(yīng)用”正式立項為“十五”教育技術(shù)研究課題。家校互動的最主要內(nèi)容是家長及時掌握學(xué)生的安全到校情況、學(xué)習(xí)狀況以及班級和學(xué)校的重要通知等。家校通開始只是基于Web的網(wǎng)站,家長通過瀏覽網(wǎng)站,從而獲取學(xué)生在校情況。而后隨著各種電信業(yè)務(wù)的不斷發(fā)展,家校通逐步成了增值業(yè)務(wù),家長可以通過訂閱短信,將學(xué)生的最新情況打包發(fā)送給家長,使得家長及時了解學(xué)生的在校情況。但隨著現(xiàn)在的智能設(shè)備(智能手機(jī),平板電腦等等)的興起,替代了原來的包月短信模式。并且家校通在智能設(shè)備上實(shí)現(xiàn)有得天獨(dú)厚的優(yōu)勢,正是由于智能設(shè)備的方便性和及時性,使得家長更能隨時掌握孩子在校的情況。
近年來,平板電腦等智能設(shè)備的不斷普及,智能機(jī)的流行,手機(jī)的功能越來越多,導(dǎo)致手機(jī)應(yīng)用程序高達(dá)數(shù)以萬記,而系統(tǒng)留存率成為了各應(yīng)用關(guān)注的重點(diǎn)。據(jù)調(diào)查平均一個應(yīng)用使用六個月的用戶留存率只有15%,但做了信息推送的應(yīng)用留存率達(dá)30%,是一般應(yīng)用的兩倍,可見信息推送在應(yīng)用中的作用。所謂的信息推送,就是通過一定的技術(shù)標(biāo)準(zhǔn)或者協(xié)議,在互聯(lián)網(wǎng)上定期發(fā)送用戶需要的信息,用來減少信息過載的一項技術(shù)。
1 基于智能設(shè)備的功能需求分析
1.1需求描述
1.1.1班主任、任課教師功能需求
班主任可以管理班長學(xué)生的基本信息,有重要消息是要及時通知給家長。任課老師能夠?qū)W(xué)生的成績進(jìn)行輸入,方便學(xué)生查詢。
1.1.2家長功能需求
學(xué)生到校簽到后,家長能及時收到通知。學(xué)校有消息通知時,家長能及時收到通知。
1.1.3學(xué)生功能需求
學(xué)生到校后能夠進(jìn)行一個實(shí)時簽到,將自己的到校情況通知給家長。學(xué)生能很快捷的查詢單科的成績,總分,年級名次,班級名次,以及自己的進(jìn)退名次。也能及時查詢班主任的通知信息。
1.2功能需求
基于智能設(shè)備的家校通系統(tǒng)根據(jù)以上的需求描述,大體有以下幾個功能模塊:登錄模塊,基本信息管理模塊,學(xué)生成績管理模塊,留言管理系統(tǒng),簽到管理模塊,系統(tǒng)管理模塊。
1.2.1 基本信息管理模塊
該模塊包括班級、課程、學(xué)生、教師,家長等基本信息的維護(hù)。學(xué)生可以對自己的基本信息進(jìn)行查看,修改,添加,刪除等操作,可以查詢所學(xué)課程信息和班級信息。教師除了可以對自己的基本信息進(jìn)行查看,修改,添加,刪除等操,還能對所教學(xué)生和班級的基本信息進(jìn)行查看。
1.2.2 學(xué)生成績管理模塊
該模塊包括的功能主要有:學(xué)生單科成績的錄入、查詢,綜合測評成績的運(yùn)算、提交,獎學(xué)金等級的評定。
本模塊的的難點(diǎn)在于成績到庫和成績查詢。
1.2.2.1 成績?nèi)霂?/p>
入庫的難點(diǎn)分析:
①大量數(shù)據(jù)入庫的性能問題
解決方法:對于成績的錄入是大量的數(shù)據(jù)操作,任務(wù)繁重,從頁面直接輸入實(shí)不可取的,故采用的是Excel文檔導(dǎo)入。這種方法可以快速的將數(shù)據(jù)寫入數(shù)據(jù)庫,主要使用FileIOstream對文件進(jìn)行操作,方便快捷,故被該家校通系統(tǒng)采用。
②輸入的數(shù)據(jù)是不合符規(guī)范的,若大量存入數(shù)據(jù)庫會造成數(shù)據(jù)庫故障。
解決方法:用數(shù)據(jù)字典來規(guī)范數(shù)據(jù),數(shù)據(jù)庫的重要部分是數(shù)據(jù)字典。它存放有數(shù)據(jù)庫所用的有關(guān)信息,對用戶來說是一組只讀的表。數(shù)據(jù)字典內(nèi)容包括:數(shù)據(jù)庫中所有模式對象的信息,如表、視圖、簇、及索引等。
1.2.2.2 成績推送與查詢
成績推送:
這是基于Android消息的推送,在學(xué)生的信息中設(shè)置一項標(biāo)識,該項標(biāo)識可以顯示出該學(xué)生是否訂閱了成績推送功能。若該標(biāo)識為1,則表示訂閱了成績推送,則客戶端使用Pull(拉)的方式,隔一段時間就去服務(wù)器上獲取信息,看是否有更新的信息出現(xiàn)。
成績查詢:
①單科的成績,總分,班級名次,年級名次,進(jìn)退名次。
②可以查詢班級前十名的同學(xué)排名情況
③可以查詢年級前100名的排名情況
1.2.3 留言管理模塊
該模塊中家長或?qū)W生可以對教師留言,并可以查看回復(fù)。教師可以對學(xué)生給自己的留言信息進(jìn)行查看、回復(fù)、刪除等操作。系統(tǒng)管理員可以對所有留言信息行進(jìn)管理操作。
1.2.4簽到管理系統(tǒng)
學(xué)生簽到后,服務(wù)器會通過推送機(jī)制將到校情況發(fā)到家長客服端,并修改相關(guān)的信息記錄。
2 系統(tǒng)設(shè)計
2.1體系結(jié)構(gòu)
開發(fā)應(yīng)用于臺式機(jī)與智能設(shè)備的二套系統(tǒng),可以通過request.getHeader("user-agent")獲得返回值為String類型,其中包含操作系統(tǒng)信息及瀏覽器信息,用來識別是臺式機(jī)還是智能設(shè)備訪問。
2.1.1 B/S結(jié)構(gòu)模型
可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件,只要有一臺能上網(wǎng)的電腦就能使用該系統(tǒng),并且客服端是零維護(hù)的。
2.1.2 C/S結(jié)構(gòu)模型
該系統(tǒng)有基于Android有推送機(jī)制,故需要采用C/S結(jié)構(gòu),并且它的響應(yīng)速度快,學(xué)生簽到后能夠?qū)崟r的將到校信息通知家長。endprint
2.2系統(tǒng)功能結(jié)構(gòu)圖
系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。
圖1
2.3基于Hibernate的數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫是系統(tǒng)的重中之重,家校通系統(tǒng)的數(shù)據(jù)量龐大且更新很快,數(shù)據(jù)庫設(shè)計的好壞將直接影響應(yīng)用系統(tǒng)的效率。
數(shù)據(jù)是系統(tǒng)的生命,在優(yōu)化數(shù)據(jù)庫設(shè)計的同時做好數(shù)據(jù)備份也是系統(tǒng)中必不可少的一項工作。定期做好備份、存盤、異地存儲才能確保數(shù)據(jù)的安全。
本系統(tǒng)數(shù)據(jù)庫表較多,包括學(xué)生表,教師表,家長表,班級表,課程表,成績表,留言表,簽到表等等。
2.4系統(tǒng)出錯處理設(shè)計
2.4.1 出錯信息
1)學(xué)生單科成績的錄入后,在學(xué)生成績表中沒有更新數(shù)據(jù)。
2)學(xué)生簽到的情況沒能及時通過推送機(jī)制通知家長。
2.4.2補(bǔ)救措施
1)后備技術(shù),當(dāng)原始系統(tǒng)數(shù)據(jù)萬一丟失時啟用的副本的建立和啟動的技術(shù)。
2)降效技術(shù),使用另一個效率稍低的系統(tǒng)或方法來求得所需結(jié)果的某些部分,例如一個自動系統(tǒng)的降效技術(shù)可以是手工操作和數(shù)據(jù)的人工記錄;
3)恢復(fù)及再啟動技術(shù),從故障點(diǎn)恢復(fù)執(zhí)行或使軟件從頭開始重新運(yùn)行。
3 編碼
3.1連接數(shù)據(jù)庫
該系統(tǒng)采用的是Hibernate技術(shù)連接數(shù)據(jù)庫,它的優(yōu)勢如下:
1)對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)庫訪問層繁瑣的重復(fù)性代碼。
2)Hibernate是一個基于JDBC的主流持久化框架,是一個優(yōu)秀的ORM實(shí)現(xiàn)。
3)Hibernate 使用 Java 反射機(jī)制 而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。
Hibernate 的性能非常好,因?yàn)樗莻€輕量級框架, 映射的靈活性很出色,它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。
Hibernate對數(shù)據(jù)操作:
Session是Hibernate中的一級緩存,sessionFactory是Hibernate中的二級緩存。保存在Session中的數(shù)據(jù)是存放在緩沖池中,并沒有存入數(shù)據(jù)庫,主要是方便查詢。特別注意的是大批量數(shù)據(jù)添加時,會造成內(nèi)存溢出的,因?yàn)閟ave方法支持緩存,每save一個對象就往緩存里放,如果對象足夠多內(nèi)存肯定要溢出。一般的做法是先判斷一下save了多少個對象,如果save了20個對象就對緩存手動的清理緩存,這樣就不會造成內(nèi)存溢出,代碼如下:
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
for (int i=0; i<100; i++) {
Student student = new Student();
student.setName("張三" + i);
session.save(student);
if (i % 20 == 0) {
session.flush();
session.clear();}}
tx.commit();
session.close();
3.2 推送機(jī)制
推送的代碼是整個家校通系統(tǒng)簽到模塊的核心,它實(shí)現(xiàn)了向客服端發(fā)送學(xué)生的簽到信息。
public void sendNotifcationToUser(String apiKey,String us-ername,String title,String message,String uri) {
log.debug("sendNotifcationToUser()...");
IQ notificationIQ = createNotificationIQ(apiKey, title, message, uri);
ClientSession session=sessionManager.getS-ession(us-ername);
if(session != null){
if(session.getPresence().isAvailable()) {
notificationIQ.setTo(session.getAdd-ress());
session.deliver(notificationIQ);}}}
4 結(jié)束語
“家校通”機(jī)制是有效建立學(xué)校與家庭同步教育孩子成長的基礎(chǔ),對科學(xué)發(fā)展教育、提高教育質(zhì)量、培養(yǎng)合格人才具有重大的
意義。本系統(tǒng)遵循軟件工程方法進(jìn)行需求分析,系統(tǒng)設(shè)計,編碼階段。該文在需求分析階段,提出來家校通系統(tǒng)所需的各項功能。在系統(tǒng)設(shè)計階段,對體系結(jié)構(gòu)設(shè)計、接口設(shè)計、數(shù)據(jù)庫設(shè)計,系統(tǒng)出錯處理設(shè)計都進(jìn)行了詳細(xì)的介紹。在編碼部分給出了系統(tǒng)主要的編碼設(shè)計。
參考文獻(xiàn):
[1] 甘俊,彭宣戈,朱兵.基于網(wǎng)絡(luò)平臺的家校即時通訊系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].微計算機(jī)信息化,2006,23(34):3.
[2] 王珊.數(shù)據(jù)庫基礎(chǔ)與應(yīng)用[M].北京:人民出版社,2009:36-39.