版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 軟件工程課程設計</b></p><p><b> 大學生社交網(wǎng)站</b></p><p><b> 目錄</b></p><p> 一.大學生社交網(wǎng)站需求模型------------------------------------2</p><
2、p> 1.問題陳述------------------------------------------------------2</p><p> 1.1設計背景及意義</p><p> 1.2 技術方案的選取</p><p> 2.需求模型------------------------------------------------------3&
3、lt;/p><p><b> 2.1用例圖</b></p><p><b> 2.2用例模型</b></p><p><b> 2.3詞匯表</b></p><p><b> 2.4補充說明書</b></p><p> 二.大
4、學生社交網(wǎng)站OOA設計-----------------------------------15</p><p> 三.大學生社交網(wǎng)站OOD設計-----------------------------------22</p><p> 1.框架(framework)</p><p> 2.包(package)</p><p> 3.
5、類-接口(class-interface)</p><p> 四.大學生社交網(wǎng)站的系統(tǒng)實現(xiàn)----------------------------------29</p><p> 五.小組成員總結(jié)----------------------------------------------------32</p><p> 一.大學生社交網(wǎng)站需求模型</
6、p><p><b> 1.問題陳述</b></p><p> 1.1 課題研究背景及意義</p><p> 互聯(lián)網(wǎng)在全世界迅速發(fā)展,以WEB為核心的各種應用系統(tǒng)層出不窮,諸如各種商業(yè)型網(wǎng)站,互動交流網(wǎng)站,BBS論壇等都是十分典型的應用。</p><p> 社交網(wǎng)站SNS(Social Network Site)專指
7、旨在幫助人們建立社會性網(wǎng)絡的互聯(lián)網(wǎng)應用服務。所謂社會性網(wǎng)絡(Social Network Services),也被稱為人際關系網(wǎng),這種模式的局限性是個體與個體之間必須有一定的關系基礎,僅僅在熟識的人群之間進行交流。為了拓展個體的社會性網(wǎng)絡即社交范圍,使得原本不相識但又有意愿彼此結(jié)識的人群之間通過有效的途徑建立起某種聯(lián)系,因此誕生了SNS網(wǎng)站。社交網(wǎng)站一經(jīng)推出就取得了迅猛的發(fā)展,此類型網(wǎng)站一般是通過某種方式進行社會拓展,比如根據(jù)相同話題進
8、行凝聚等都被納入了SNS的范疇。社交網(wǎng)站的出現(xiàn)在某種程度上豐富了當今社會中個體交際的范圍,把原本狹小的交友圈拓展為通過網(wǎng)絡服務與身處世界各地的擁有不同背景的個體進行交流。在信息化建設高速發(fā)展的今天,這種社會性網(wǎng)絡顯然更符合當代人的自身需求。溝通人們不得不在信息化的大潮中學會適應以求得生存與發(fā)展。</p><p> 在開發(fā)過程中,采用B/S(Browser/Server)結(jié)構,這種結(jié)構使得數(shù)據(jù)只有結(jié)果集合在瀏覽器
9、中顯示,數(shù)據(jù)的處理在服務器進行,用戶只需要一個瀏覽器就可以遨游于社交網(wǎng)站了。數(shù)據(jù)庫方面,采用具有常用的數(shù)據(jù)庫關系管理系統(tǒng)MySQL,是系統(tǒng)安全性更高。同時選擇了HTML + CSS + JavaScript + Servlet + JSP開發(fā)模式,實現(xiàn)了應用系統(tǒng)邏輯和頁面顯示分離,界面設計精簡。</p><p> 1.2 技術方案的選取</p><p> 1.2.1 開發(fā)語言<
10、/p><p> java無疑可以輕松地實現(xiàn)這類功能,JSP技術是一種服務器端的HTML頁面中嵌入JAVA代碼的腳本語言,它比一般腳本語言的執(zhí)行速度更快,由于JSP是基于JAVA語言的,所以它可以運行在UNIX/LINUX和WINDOWS平臺上,是一種難得的動態(tài)網(wǎng)頁開發(fā)語言。</p><p> 1.2.2 開發(fā)模式</p><p> 采用MVC架構模式,在此模式中通
11、過JSP來表現(xiàn)頁面。通過service層來完成大量的事務處理。 Action層充當一個控制者的角色,并負責向客戶發(fā)送請求。業(yè)務邏輯層創(chuàng)建JSP所需要的Bean和對象,然后根據(jù)用戶的請求行為,決定將哪個JSP頁面發(fā)送給客戶。分為表現(xiàn)層、中間層、業(yè)務邏輯層和數(shù)據(jù)服務層。三層體系將業(yè)務規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。</p><
12、p> 1.2.3 開發(fā)工具</p><p> 采用Tomcat 6.0 + MyEclipse 9+ Dreamweaver+ MySQL</p><p> 1.2.4 數(shù)據(jù)庫選擇</p><p> 數(shù)據(jù)庫是數(shù)據(jù)的結(jié)構化集合。它可以是任何東西,從簡單的購物清單到畫展,或企業(yè)網(wǎng)絡中的海量信息。要想將數(shù)據(jù)添加到數(shù)據(jù)庫,或訪問、處理計算機數(shù)據(jù)庫中保存的數(shù)據(jù),
13、需要使用數(shù)據(jù)庫管理系統(tǒng),如MySQL服務器。計算機是處理大量數(shù)據(jù)的理想工具,因此,數(shù)據(jù)庫管理系統(tǒng)在計算方面扮演著關鍵的中心角色,或是作為獨立的實用工具,或是作為其他應用程序的組成部分。</p><p><b> 2.需求模型</b></p><p><b> 2.1用例圖</b></p><p> 2.2用例模型(U
14、se Case Model)</p><p><b> 內(nèi)容表</b></p><p> 1.注冊 </p><p> 1.1簡介 </p><p><
15、;b> 1.2事件流</b></p><p> 1.2.1基本事件流</p><p> 1.2.2可選擇事件流</p><p><b> 1.3特殊要求</b></p><p><b> 1.4前置條件</b></p><p><b>
16、 1.5后置條件</b></p><p><b> 1.6拓展點</b></p><p> 2.登錄 </p><p><b> 2.1簡介</b></p><p><b>
17、; 2.2事件流</b></p><p> 2.2.1基本事件流</p><p> 2.2.2可選擇事件流</p><p><b> 2.3特殊要求</b></p><p><b> 2.4前置條件</b></p><p><b> 2.5后
18、置條件</b></p><p><b> 2.6拓展點</b></p><p> 3.發(fā)起活動 </p><p><b> 3.1簡介</b></p><p><b> 3.2事件流
19、</b></p><p> 3.2.1基本事件流</p><p> 3.2.2可選擇事件流</p><p><b> 3.3特殊要求</b></p><p><b> 3.4前置條件</b></p><p><b> 3.5后置條件</b
20、></p><p><b> 3.6拓展點</b></p><p> 4.取消發(fā)布活動 </p><p><b> 4.1簡介</b></p><p><b> 4.2事件流</b></p&
21、gt;<p> 4.2.1基本事件流</p><p> 4.2.2可選擇事件流</p><p><b> 4.3特殊要求</b></p><p><b> 4.4前置條件</b></p><p><b> 4.5后置條件</b></p>&
22、lt;p><b> 4.6拓展點</b></p><p> 5. 參加/取消參加活動 </p><p><b> 5.1簡介</b></p><p><b> 5.2事件流</b></p>&
23、lt;p> 5.2.1基本事件流</p><p> 5.2.2可選擇事件流</p><p><b> 5.3特殊要求</b></p><p><b> 5.4前置條件</b></p><p><b> 5.5后置條件</b></p><p&g
24、t;<b> 5.6拓展點</b></p><p> 6.添加好友 </p><p><b> 6.1簡介</b></p><p><b> 6.2事件流</b></p><p>
25、; 6.2.1基本事件流</p><p> 6.2.2可選擇事件流</p><p><b> 6.3特殊要求</b></p><p><b> 6.4前置條件</b></p><p><b> 6.5后置條件</b></p><p><b
26、> 6.6拓展點</b></p><p> 7.發(fā)送/接收消息 </p><p><b> 7.1簡介</b></p><p><b> 7.2事件流</b></p><p> 7.2.1基本
27、事件流</p><p> 7.2.2可選擇事件流</p><p><b> 7.3特殊要求</b></p><p><b> 7.4前置條件</b></p><p><b> 7.5后置條件</b></p><p><b> 7.6拓
28、展點</b></p><p> 8.修改個人資料 </p><p><b> 8.1簡介</b></p><p><b> 8.2事件流</b></p><p> 8.2.1基本事件流</p&g
29、t;<p> 8.2.2可選擇事件流</p><p><b> 8.3特殊要求</b></p><p><b> 8.4前置條件</b></p><p><b> 8.5后置條件</b></p><p><b> 8.6拓展點</b>
30、;</p><p> 用例說明書( Use Case specifications)</p><p><b> 1.注冊</b></p><p><b> 1.1.簡介</b></p><p> 該用例描述瀏覽該網(wǎng)頁的人如何注冊成為普通用戶</p><p><b
31、> 1.2事件流</b></p><p> 1.2.1基本事件流</p><p> 該用例開始于瀏覽網(wǎng)頁的人希望注冊成為大學生社交網(wǎng)站的通用戶</p><p> 1.游客向系統(tǒng)發(fā)出注冊請求</p><p> 2.系統(tǒng)提供一張注冊表單</p><p> 3.游客填寫注冊的個人郵箱,用戶名以及
32、相關個人信息提交系統(tǒng)審核</p><p> 1.2.2可選擇事件流:.</p><p> 1.若郵箱地址有效且沒有在數(shù)據(jù)庫系統(tǒng)中注冊過用戶則數(shù)據(jù)庫系統(tǒng)新增加一個用戶項并將所有信息存入;</p><p> 2.若郵箱地址無效或已注冊過則提示注冊失敗并返回對應消息,游客可以選擇重新注冊或者退出注冊</p><p><b> 1.
33、3.特殊要求</b></p><p><b> 無</b></p><p><b> 1.4前置條件</b></p><p><b> 無</b></p><p><b> 1.5后置條件</b></p><p>
34、; 注冊成功自動登錄網(wǎng)站,可以進行其他活動</p><p><b> 1.6拓展點</b></p><p><b> 無</b></p><p><b> 2.登錄</b></p><p><b> 2.1簡介</b></p>&l
35、t;p> 該用例描述普通用戶如何登陸該網(wǎng)站</p><p><b> 2.2事件流</b></p><p> 2.2.1基本事件流</p><p> 該用例始于普通用戶請求登陸該網(wǎng)站或者用戶要實現(xiàn)網(wǎng)站的其他功能,如發(fā)布活動</p><p> 1.用戶發(fā)出登錄請求</p><p>
36、 2.用戶輸入郵箱ID和密碼</p><p> 3.系統(tǒng)進行審核用戶提交的用戶名和密碼是否正確,若正確則顯示登錄后的頁面 </p><p> 2.2.2可選擇事件流</p><p> 2.2.2.1若果用戶輸入的用戶名不存在或者密碼錯誤則系統(tǒng)返回錯誤信息兵返回登陸頁面</p><p><b> 2.3特殊條件</b&g
37、t;</p><p><b> 無</b></p><p><b> 2.4前置條件</b></p><p><b> 用戶已經(jīng)成功注冊過</b></p><p><b> 2.5后置條件</b></p><p> 登陸成
38、功后可以進行網(wǎng)站內(nèi)的其他活動,如發(fā)布活動和參加活動</p><p><b> 2.6拓展點</b></p><p><b> 無</b></p><p><b> 3.發(fā)起活動</b></p><p><b> 3.1.簡介</b></p&g
39、t;<p> 該用例描述普通用戶如何新發(fā)布一項活動</p><p><b> 3.2.事件流</b></p><p> 3.2.1基本事件流</p><p> 該用例始于普通用戶已經(jīng)登陸該網(wǎng)站并希望發(fā)布新的活動</p><p> 1.用戶發(fā)出發(fā)布活動請求</p><p>
40、 2.系統(tǒng)提供活動發(fā)布表格,表格內(nèi)容包括標題,地點,開始時間和具體描述</p><p> 3.用戶填寫發(fā)布活動表格提交系統(tǒng)</p><p> 4.系統(tǒng)自動顯示新發(fā)布的活動信息 </p><p> 3.2.2可選擇事件流</p><p><b> 無</b></p><p><b>
41、; 3.3特殊要求</b></p><p><b> 無</b></p><p><b> 3.4前置條件</b></p><p> 活動發(fā)起人必須已經(jīng)成功登陸該網(wǎng)站</p><p><b> 3.5后置條件</b></p><p>
42、; 其他用戶以及活動發(fā)起人的好友會在網(wǎng)站中看到新發(fā)布的活動內(nèi)容并可以參加該活動</p><p><b> 3.6拓展點</b></p><p><b> 無</b></p><p> 4.刪除已發(fā)起的活動</p><p><b> 4.1簡介</b></p>
43、;<p> 該用例允許用戶取消自己發(fā)布的活動</p><p><b> 4.2事件流</b></p><p> 4.2.1基本事件流</p><p> 該用例始于用戶希望取消自己發(fā)布的活動</p><p> 1.用戶查看自己發(fā)布的活動列表</p><p> 2.用戶選擇刪
44、除活動</p><p> 3.系統(tǒng)判斷該活動是否可以刪除,如果可以則刪除活動</p><p> 4.2.2可選擇事件流</p><p> 1.如果系統(tǒng)判斷該活動不可以刪除則返回</p><p><b> 4.2 特殊要求</b></p><p><b> 無</b>
45、</p><p><b> 4.4前置條件</b></p><p><b> 用戶已發(fā)布過此活動</b></p><p><b> 4.5后置條件</b></p><p> 活動修改、刪除操作都會對其他用戶參加該活動產(chǎn)生一定的影響</p><p>
46、;<b> 4.6拓展點</b></p><p><b> 無</b></p><p> 5.參加/取消參加活動</p><p><b> 5.1簡介</b></p><p> 該用例允許用戶報名參加其他用戶發(fā)布的活動,也可以取消參加已經(jīng)報名參加的活動</p&g
47、t;<p><b> 5.2事件流</b></p><p> 5.2.1基本事件流</p><p> 5.2.1.1參加活動</p><p> 該用例始于普通用戶瀏覽其他用戶發(fā)布的活動并請求參加</p><p> 1.用戶瀏覽其他用戶發(fā)布的活動信息</p><p> 2.
48、用戶發(fā)出參加活動的請求</p><p> 3.發(fā)布的活動的數(shù)據(jù)庫中增加參加活動報名人項</p><p> 5.2.1.2取消參加活動</p><p> 該用例始于普通用戶瀏覽自己已經(jīng)報名參加的活動并且希望取消報名參加某項活動</p><p> 1.用戶瀏覽自己報名參加的活動列表</p><p> 2.用戶發(fā)出
49、取消參加的請求</p><p><b> 3.系統(tǒng)確認請求</b></p><p> 5.2.2可選擇事件流</p><p><b> 無</b></p><p><b> 5.3特殊要求</b></p><p><b> 無<
50、/b></p><p><b> 5.4前置條件</b></p><p> 用戶需要成功登陸網(wǎng)站</p><p><b> 5.5后置條件</b></p><p> 用戶參加活動和取消參加活動會對活動開展產(chǎn)生影響 </p><p><b> 5.6拓
51、展點</b></p><p><b> 無</b></p><p><b> 6.添加好友</b></p><p><b> 6.1簡介</b></p><p> 用戶可以搜索并添加其他用戶為好友和管理自己的好友</p><p>&l
52、t;b> 6.2事件流</b></p><p> 6.2.1基本事件流</p><p> 1.用戶輸入要添加的好友姓名并發(fā)出搜索請求</p><p> 2.系統(tǒng)提交要搜索姓名并顯示數(shù)據(jù)庫中所有改姓名的用戶列表</p><p> 3.用戶發(fā)出添加好友邀請</p><p> 4.系統(tǒng)將添加好友
53、邀請發(fā)送至對方用戶等待確認</p><p> 5.另一用戶確認后雙方即成為好友,會在各自的好友列表中顯示對方的姓名</p><p> 7.2.2可選擇事件流</p><p> 1.用戶在添加好友請求前可以查看搜索結(jié)果列表中其他用戶的信息</p><p> 2.對方用戶可以選擇忽略其他用戶的添加請求</p><p&g
54、t;<b> 6.3特殊要求</b></p><p><b> 無</b></p><p><b> 6.4前置條件</b></p><p> 1.用戶需登錄該系統(tǒng)</p><p> 2.添加好友時用戶ID不在好友列表中</p><p><
55、;b> 6.5后置條件</b></p><p> 用戶添加好友后可以查看其發(fā)布的活動</p><p><b> 6.6拓展點</b></p><p><b> 無</b></p><p><b> 7.收發(fā)消息</b></p><
56、p><b> 7.1簡介</b></p><p> 該用例描述好友之間如何發(fā)送消息取得聯(lián)系</p><p><b> 7.2事件流</b></p><p> 7.2.1基本事件流</p><p> 該用例始于用戶希望像好友發(fā)送消息或者接收消息</p><p>
57、 7.2.1.1發(fā)送消息</p><p> 1.用戶查看自己的好友列表</p><p> 2.用戶選擇要發(fā)送消息的好友請求發(fā)送消息</p><p> 3.系統(tǒng)請求輸入消息內(nèi)容</p><p> 4.用戶輸入消息并發(fā)送</p><p> 5.系統(tǒng)提交消息給發(fā)送的另一方</p><p>
58、 7.2.1.2接收消息</p><p> 1.用戶登錄自己的主頁并選擇查看消息</p><p> 2.系統(tǒng)顯示好友發(fā)送的消息 </p><p> 7.2.2可選擇事件流</p><p> 用戶在接收消息后可以選擇快捷回復</p><p><b> 7.3特殊要求</b></p&
59、gt;<p><b> 無</b></p><p><b> 7.4前置條件</b></p><p> 發(fā)送消息的對象必須是自己的好友</p><p><b> 7.5后置條件</b></p><p><b> 無</b></
60、p><p><b> 7.6拓展點</b></p><p><b> 無</b></p><p><b> 8.修改個人信息</b></p><p><b> 8.1簡介</b></p><p> 用戶登錄個人主頁后可以選擇修
61、改自己的個人資料</p><p><b> 8.2事件流</b></p><p><b> 8.2.1基本事件</b></p><p> 該用例始于用戶請求修改自己的個人資料</p><p> 1.用戶進入自己的個人中心發(fā)出修改資料請求</p><p> 2.系統(tǒng)請
62、求輸入修改后的資料</p><p> 3.用戶輸入修改后的內(nèi)容并確認修改</p><p> 8.2.2可選擇事件流</p><p> 1.用戶在修改資料的過程中可以選擇取消修改個人資料</p><p><b> 8.3特殊要求</b></p><p> 用戶只能修改自己的資料</p
63、><p><b> 8.4前置條件</b></p><p> 用戶需登錄并進入個人中心</p><p><b> 8.5后置條件</b></p><p><b> 無</b></p><p><b> 8.6擴展點</b>&l
64、t;/p><p><b> 無</b></p><p> 2.3詞匯表(Glossary)</p><p><b> 1.活動</b></p><p> 用戶登陸后可以發(fā)布、瀏覽和參加,主要是在線上發(fā)布,報名參加的人員在線下舉辦;發(fā)布人可以隨時對活動信息進行修改或者取消已發(fā)布的活動。</p
65、><p><b> 2.用戶</b></p><p> 具有瀏覽,參加和發(fā)布活動,添加好友等權限。</p><p><b> 3.好友</b></p><p> 普通用戶之間建立的較密切的聯(lián)系,一個用戶添加另一個用戶為好友后各自會在對方的好友列表中顯示,好友之間可以查看其發(fā)布參加活動信息,可以進
66、入好友的個人中心。</p><p><b> 4.消息</b></p><p> 即小紙條,好友之間的交流均通過發(fā)消息的方式實現(xiàn)。</p><p><b> 5.個人中心</b></p><p> 用戶登錄后可以查看自己的個人中心,內(nèi)容包括個人資料,發(fā)布的活動和報名參加的活動等,用戶也可以進
67、入好友的個人中心。</p><p><b> 2.4補充說明書</b></p><p> 2.4.1該系統(tǒng)在功能上應達到如下需求:</p><p> 1.操作簡單、界面友好,布局設計美麗大方,使得信息顯示模塊、操作模塊顯而易見,許多選項包括好友管理操作,查詢好友操作,好友關注操作等只需要點擊鼠標就可以完成。另外,跟蹤出現(xiàn)的提示信息也讓用戶
68、隨時清楚自己的操作情況。對常見的類似網(wǎng)站的管理的各個方面,基本信息錄入、瀏覽、刪除、修改、搜索等方面都大體實現(xiàn)。</p><p> 2.即時可見:對于好友的“微博信息”的處理將立即在個人主頁的對應欄目顯示出來。對于個人的“留言”的信息的將立即在自己主頁的對應欄目顯示出來。對于個人的空間的“訪問記錄”的信息的將立即在自己主頁的對應欄目顯示出來。達到“即時發(fā)布、即時見效”的功能。 </p><
69、p> 3. 系統(tǒng)運行應該快速、穩(wěn)定、高效和可靠。</p><p> 4. 在結(jié)構上應具有很好的可擴展性,便于將來的功能擴展和維護。</p><p> 2.4.2可行性分析</p><p> 可行性研究的目的就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決,必須記住可行性研究的目的不是解決問題,而是確定問題是否值得去解。同時必須分析幾種主要的可
70、能解法的利弊,從而判斷原定的系統(tǒng)目標和規(guī)模是否能實現(xiàn),系統(tǒng)完成后所能帶來的效益是否大到值得投資開發(fā)這個系統(tǒng)的程度。因此,可行性研究的實質(zhì)是要進行一次大大壓縮簡化了的系統(tǒng)分析和設計的過程。首先需要進一步分析和澄清問題定義。在問題定義階段初步確定設計的規(guī)模和目標,如果是正確的就進一步加以肯定,如果有錯誤就應該及時改正,如果對目標系統(tǒng)有任何約束和限制,也必須把他們清楚的一一列舉出來。在澄清了問題定義之后,分析員應該導出系統(tǒng)的邏輯模型。然后從系
71、統(tǒng)邏輯模型出發(fā),探索若干種可供選擇的主要方法(即系統(tǒng)實現(xiàn)方案)。對每種解法都應該仔細研究它的可行性</p><p> 2.4.3 系統(tǒng)設計原則</p><p> 1.開放性、可擴充性、可靠性原則 </p><p> 開放系統(tǒng)是生產(chǎn)各種計算機產(chǎn)品普遍遵循的原則,遵循這種標準的產(chǎn)品都符合一些公共的、可以相互操作的標準,能夠融洽的在一起工作。開放系統(tǒng)使得各種類型的網(wǎng)
72、絡和系統(tǒng)互連簡單、標準統(tǒng)一,容易擴展升級。從而適應廣大用戶需求的多變性和產(chǎn)品的更新?lián)Q代。 </p><p> 2、良好的用戶操作界面 </p><p> 用戶操作界面美觀、方便、實用,使用戶能在較短的時間內(nèi)掌握其使用方法。 </p><p><b> 3、實用性原則 </b></p><p> 任何系統(tǒng)的設計都要
73、考慮其實用性,系統(tǒng)開發(fā)的目的是為了提供眾多的途徑給用戶交友,提供一個平臺讓用戶在里面互相認識溝通,提高人們交友的交友質(zhì)量,減輕用戶的生活壓力,給用戶帶來更多的樂趣。 </p><p> 4、工作平臺設計原則</p><p> 能適應不同的操作平臺、不同的網(wǎng)絡。</p><p> 二.大學生社交網(wǎng)站OOA設計</p><p><b&
74、gt; 1.注冊</b></p><p> Sequence diagram</p><p> Collaboration diagram</p><p><b> 2.登錄</b></p><p> Sequence diagram</p><p> Collaborat
75、ion diagram</p><p><b> 3.發(fā)起活動</b></p><p> Sequence diagram</p><p> Collaboration diagram</p><p><b> 4.取消發(fā)布活動</b></p><p> Seque
76、nce diagram</p><p> Collaboration diagram</p><p><b> 5.參加活動</b></p><p> Sequence diagram</p><p> Collaboration diagram</p><p><b> 6.
77、發(fā)送/接收消息</b></p><p> Sequence diagram</p><p> Collaboration diagram</p><p><b> 7.修改個人資料</b></p><p> Sequence diagram</p><p> Collabor
78、ation diagram</p><p> 三.大學生社交網(wǎng)站OOD設計</p><p> 1.框架(framework)</p><p> 本網(wǎng)站采用了MVC 的架構設計,將系統(tǒng)的業(yè)務控制、頁面顯示、數(shù)據(jù)庫訪問三大功能模</p><p> 塊進行了分離,從而使得系統(tǒng)結(jié)構清晰,代碼更容易維護。以下是MVC 的工作原理圖示:</
79、p><p> MVC 框架組成部分有——</p><p><b> 模型層</b></p><p> 模型對象是應用程序的一部分,它實現(xiàn)了應用程序的數(shù)據(jù)定義的邏輯。</p><p> 通常,模型對象檢索和儲了在數(shù)據(jù)庫中的模型狀態(tài)。模型層負責數(shù)據(jù)的查詢與組織。</p><p><b>
80、 視圖層</b></p><p> 視圖層是顯示應用程序的用戶界面(UI)的部分。</p><p> 通常,用戶界面UI 是由模型數(shù)據(jù)所創(chuàng)建的。在一個MVC 應用程序中,視圖層view 只顯示信息。</p><p><b> 控制層</b></p><p> 控制層是處理用戶交互,對模型層起作用,并
81、最終選擇一個視圖view 來呈現(xiàn)那個顯示的用戶界面的部</p><p> 分??刂茖觕ontroller 處理并響應用戶的輸入和交互。</p><p> 2.包(package)</p><p> 3.類-接口(class-interface)</p><p> 2.1登錄功能的類圖:</p><p> DB
82、User類中的方法(含方法名、參數(shù)和返回值):</p><p> boolean createUser(User user);</p><p> String getPw(String mail);</p><p> User getUser(String mail);</p><p> boolean changeUser(User
83、 user);</p><p> User[] searchUser(String name);</p><p> void insertContent(String name1,String name2,String con);</p><p> List getContents(String getter);</p><p> v
84、oid updateIsGet(String sender,String getter);</p><p> 2.2注冊功能的類圖:</p><p> 2.3發(fā)起新活動功能的類圖:</p><p> DBActivity類中的方法(含方法名、參數(shù)和返回值):</p><p> boolean saveActivity(Activity
85、 act);</p><p> Activity getActivity(long ano);</p><p> boolean deleteActivity(long ano);</p><p> Activity[] getAllActivity(String mail);</p><p> boolean activityExi
86、st(long ano); </p><p> Activity[] getMyActivity(String mail); </p><p> Activity[] getFriendsActivity(String mail);</p><p> Activity[] getSelectedActivity(String mail);</p>
87、<p> boolean isJoin(String mail,long ano);</p><p> public boolean isJoined(long ano);</p><p> 2.4參加活動功能的類圖:</p><p> DBActivityJoin類中的方法(含方法名、參數(shù)和返回值):</p><p>
88、 Activity[] get3Activity(String mail);</p><p> String[] getJoiner(long ano);</p><p> boolean addJoiner(long ano, String mail);</p><p> boolean deleteJoiner(long ano, String mail)
89、;</p><p> User[] getAllJoiner(long ano);</p><p> User[] getAllJoiner(long ano,String email);</p><p> 2.5好友功能相關類圖</p><p> DBfriend類中的方法(含方法名、參數(shù)和返回值):</p><
90、p> boolean addFriend(String mail1, String mail2);</p><p> boolean deleteFriend(String mail1, String mail2);</p><p> User[] getFriend(String mail);</p><p> User[] getRecommend
91、Friend(String mail);</p><p> User[] subtract(User [] a, User [] b);</p><p> boolean isFriends(String mail1, String mail2);</p><p> boolean isInvite(String mail1, String mail2);&l
92、t;/p><p> DBnewfriend類中的方法(含方法名、參數(shù)和返回值):</p><p> boolean addNewFriend(String mail1, String mail2);</p><p> String[] getNewFriend(String mail);</p><p> boolean deleteNe
93、wFriend(String mail1, String mail2);</p><p> User[] getInvitedFriend(String mail);</p><p><b> 2.6消息功能類圖</b></p><p> 四.大學生社交網(wǎng)站的系統(tǒng)實現(xiàn)</p><p> 1.部分功能代碼示例<
94、;/p><p><b> 1.1發(fā)起活動</b></p><p> package service;</p><p> import java.io.IOException;</p><p> import java.io.PrintWriter;</p><p> import java.
95、text.ParseException;</p><p> import java.text.SimpleDateFormat;</p><p> import java.util.Date;</p><p> import javax.servlet.ServletException;</p><p> import javax.s
96、ervlet.http.HttpServlet;</p><p> import javax.servlet.http.HttpServletRequest;</p><p> import javax.servlet.http.HttpServletResponse;</p><p> import javax.servlet.http.HttpSessio
97、n;</p><p> import dao.DBActivityInter;</p><p> import dao.impl.DBActivity;</p><p> import domain.Activity;</p><p> import domain.User;</p><p> public
98、class PublishActivity extends HttpServlet {</p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p
99、> request.setCharacterEncoding("gb2312");</p><p> String title=request.getParameter("title");</p><p> String detail=request.getParameter("detail");</p>
100、<p> String location=request.getParameter("place");</p><p> int totalnum = Integer.parseInt(request.getParameter("limit"));</p><p> StringBuffer time=new StringBuffe
101、r(request.getParameter("year"));</p><p> time.append('/');</p><p> time.append(request.getParameter("month"));</p><p> time.append('/');</p
102、><p> time.append(request.getParameter("day"));</p><p> time.append(' ');</p><p> time.append(request.getParameter("hour"));</p><p> time.a
103、ppend(':');</p><p> time.append(request.getParameter("min"));</p><p> time.append(' ');</p><p> time.append(request.getParameter("am"));</p
104、><p> SimpleDateFormat sdf=new SimpleDateFormat("yyyy/M/d h:mm a");</p><p> Date date=new Date();</p><p> boolean flag=false;</p><p><b> try {</b>
105、;</p><p> date = sdf.parse(time.toString());</p><p> flag=true;</p><p> } catch (ParseException e) {</p><p> // TODO Auto-generated catch block</p><p>
106、 e.printStackTrace();</p><p><b> }</b></p><p> long id=(long)(Math.random()*9223372036854775807L);</p><p> DBActivityInter dbact=new DBActivity();</p><p&g
107、t;<b> /* </b></p><p> while (dbact.activityExist(id)){</p><p> id=(long)(Math.random()*9223372036854775807L);</p><p><b> }</b></p><p><b&
108、gt; */</b></p><p> HttpSession session=request.getSession();</p><p> User user=(User)session.getAttribute("user");</p><p> Activity act=new Activity();</p>
109、<p> act.setTitle(title);</p><p> act.setDetail(detail);</p><p> act.setPlace(location);</p><p> act.setId(id);</p><p> act.setTotalnum(totalnum);</p>
110、<p> act.setEmail(user.getMail());</p><p> act.setCreateDate(System.currentTimeMillis());</p><p> act.setStartDate(date.getTime());</p><p> if ((flag)&&(dbact.sav
111、eActivity(act))){</p><p> request.getRequestDispatcher("/servlet/MyActivityServlet").forward(request, response);</p><p> //out.print(date);</p><p><b> }</b>
112、</p><p><b> else{</b></p><p> System.out.println("fail");</p><p><b> }</b></p><p><b> }</b></p><p><b&
113、gt; }</b></p><p> 五.小組成員自我總結(jié)</p><p> 分工:OOA,OOD,demo原型。第一次討論的時候,我問他們:“我做組長行嗎?”他們說行。然后我就成了組長。事實證明我這個組長當?shù)貌皇呛艹晒Α?lt;/p><p> 我和彭佳斌商討之后決定不用SSH框架,一是我們對框架不熟悉,學習這個框架還需要時間;更重要的是我們想親身體
114、驗一下開發(fā)過程,這樣有助于我們對軟件工程思想和JSP+Servlet+MySQL技術的理解。</p><p><b> 作為組長的總結(jié)</b></p><p> 本次Group Project的成功之處在于:</p><p> 一、小組全部四名同學在全過程中都積極參與了從需求分析、OOA、OOD、開發(fā)到測試的全過程,沒有人跟著打醬油。雖然
115、每個人的貢獻度確能分出高低,但(貢獻度)差距不大,大家都發(fā)揮了自己的長處,盡了自己最大的努力。</p><p> 二、因為沒有用框架,整個代碼部分全部是我們自己寫的,我們因此極大地熟悉了JSP+Servlet+MySQL這一套開發(fā)流程,有很多技術細節(jié)也比從前清楚了。比如在這之前我一直對session機制感到比較模糊,本次project后徹底弄明白了。而如果我們用了框架,很多技術細節(jié)就因此被掩蓋和忽略,不會取得這
116、么大的進步。</p><p> 本次Group Project的失敗之處在于:</p><p> 一、OOD設計和demo成品還不完善,因為完全是自己寫的代碼,沒有拿多少別人的代碼直接用,花費了很長時間;因為時間有限故而成品比較簡陋。</p><p> 二、本次小組任務采用分工制,故而每個人對自己的部分比較熟悉,對別人完成的部分就比較陌生,我本來是準備全部完成
117、后把大家聚在一起交流一下自己完成的部分。后來因為時間有限這個就沒有舉辦。</p><p><b> 個人總結(jié)</b></p><p> 這次Group Project我個人比較遺憾的地方是,作為組長,我花了相當一部分時間組織和協(xié)調(diào)其他小組成員,結(jié)果自己學習、實踐技術的時間被壓縮了。比較滿意的地方是,我極大地提高了自己的HTML+CSS技術,熟悉了軟件工程proce
118、ss和JSP+Servlet+MySQL開發(fā)流程;并且也鍛煉了自己的組織能力。</p><p> 在這次大學生社交網(wǎng)站的設計制作中,我們小組成員積極合作,分工明確,最終順利的完成了這次課程設計。</p><p> 我主要負責以下工作:需求分析的討論,用例模型的設計,OOA的設計,參與討論數(shù)據(jù)庫設計,學習使用java操縱數(shù)據(jù)庫的方法 ,參與討論OOD的設計,參與討論網(wǎng)站界面的設計,撰寫整
119、個課程設計的WORD文檔。</p><p> 設計前期,我們主要用軟件工程課堂上的方法對大學生社交網(wǎng)站的需求相關的問題進行了幾次深入的討論 ,最終確定了用例模型中的各個用例。然后我和組長一起討論完成了需求分析文檔中每個用例說明的編寫 。在這個過程中我對OOA階段的設計有了更深的認識和了解。</p><p> 在設計用例模型時,我首先考慮的是將參加活動和取消參加活動,發(fā)送消息和接收消息用
120、例都分開成兩個用例,后來和孫靜妍一起討論了一下,考慮到OOA階段的用例模型應該盡量簡潔,于是決定將它們合并成一個用例。</p><p> 數(shù)據(jù)庫設計階段,我們根據(jù)用例模型討論了所需的幾個數(shù)據(jù)庫以及每個數(shù)據(jù)庫的內(nèi)容。因為之前對java的學習不是很深入,所以這次又從網(wǎng)上下載了很多java學習的視頻,學習java操縱數(shù)據(jù)庫的方法,因為小組中彭佳斌的java代碼能力比較強,所以在設計過程中也虛心的向他學習,感覺有了很大
121、的收獲。</p><p> OOD的設計遇到了一些困難,對這一階段的認識不夠清楚,后來在經(jīng)過小組成員的討論后終于得到了解決。</p><p> 撰寫整個文檔的過程中嚴格按照課程設計論文的格式來寫,希望能讓人更好的閱讀并了解我們的設計。</p><p> 總的來說,對這次課程設計的過程和結(jié)果都比較滿意,在和小組成員一起討論學習的過程十分有趣,自己的實踐能力也有了
122、一定的提高。在平時上課的過程中我聽的也比較認真,自己做的不足的地方在于開始時對于作業(yè)沒有很認真,后來在課程的不斷深入中才開始重視起來。對于這門課我給自己的打分是90分。</p><p> 通過本次軟件工程的學習,我了解了軟件工程的相關理論知識和開發(fā)技巧,并利用所學的Java程序設計語言和Web開發(fā)技能,綜合利用所學的軟件工程的原理和方法,和小組成員一起,參與了整個軟件的設計開發(fā)過程。我們基于大學生的生活實際,開
123、發(fā)出了一個社交網(wǎng)站,便于大家發(fā)起、瀏覽和參加活動,豐富大學生的課余生活。</p><p> 課堂上,通過學習《軟件工程》這門課程,我詳細地了解了軟件開發(fā)的不同模型、敏捷開發(fā)的特點、軟件的開發(fā)流程、OOA、OOD、開發(fā)及測試、各種文檔的格式要求等等重要的知識,明確了軟件=程序+文檔的內(nèi)涵,以及軟件開發(fā)的各種注意事項。軟件開發(fā)是個團隊工程,需要每個人都盡力發(fā)揮自己的作用。</p><p>
124、 在小組課程設計中,我的主要任務是:參與需求模型的討論和設計,參與數(shù)據(jù)庫的設計與建立,完成Entity類的分析和編寫,并完成所有相關DAO類的編寫。實踐過程中,遇到過很多的問題,比如Java數(shù)據(jù)庫操作的方法不太熟練,需求的臨時增加或修改引起數(shù)據(jù)庫和DAO層的相關改變,Java編程遇到的問題等等,但是通過不斷調(diào)試bug和解決錯誤我能更好地理解Java面向?qū)ο蟮木幊涕_發(fā)思路,掌握Java數(shù)據(jù)庫的增刪改操作和DAO 的知識,學會了如何通過網(wǎng)絡
125、和圖書館解決遇到的問題,學會了利用軟件工程觀點和原理進行分析和設計,同時也看到隊友身上的優(yōu)點,盡力取長補短,發(fā)揮自己的作用,同時鍛煉了自己的團隊協(xié)作能力。</p><p> 在本次大作業(yè)中,我主要負責界面以及網(wǎng)站所有控制邏輯的實現(xiàn),整個網(wǎng)站的設計采用的是MVC設計模式,本人由于對MVC比較熟悉,在開發(fā)過程中功能實現(xiàn)方面沒有遇到太大的問題,主要問題就是由于沒什么藝術細胞以及美感太弱,網(wǎng)站的布局方面實在是對不起觀眾
126、。由于一些意外的因素導致本次開發(fā)過程比較倉促,一些可以做的更好的地方都大大的進行了簡化,比如沒有大量使用ajax技術,導致用戶的體驗不太好,另外整個網(wǎng)站的邏輯也比較混亂,一些很基礎的功能沒有去實現(xiàn),比如修改密碼等,主要原因就是時間太過倉促,自己也覺得很遺憾。</p><p> 這個學期的軟件工程學習中,很高興又能成為顧老師的學生,老師上課上的非常好,同學們的積極性也很高,在此有一點建議提出:</p>
127、<p> 由于老師上課是根據(jù)自己的教學內(nèi)容來上,好的方面就是老師上課內(nèi)容非常的系統(tǒng),不好的一方面是與書本上稍顯有脫節(jié),這使得我有時候想通過看書本來鞏固所學的知識變得有點困難,因為書上的內(nèi)容太多,又不能很好的對應上老師上課的內(nèi)容。為此也希望老師在今后的教學中能給我們提供一些課外自學的途徑,比如說好的書籍以及好的學習網(wǎng)站,使我們可以學的更扎實,不至于上完就忘,這樣的話即使是學期結(jié)束了,今后還是可以通過這些途徑來獲取更多的知識
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件工程課程設計--網(wǎng)站設計
- 《軟件工程》課程設計--學生管理系統(tǒng)
- 學生選課系統(tǒng)《軟件工程》課程設計
- 軟件工程課程設計---學生考勤系
- 學生選課系統(tǒng)《軟件工程》課程設計
- 軟件工程課程設計----學生選課系統(tǒng)
- 軟件工程課程設計--學生管理系統(tǒng)
- 軟件工程課程設計——學生管理系統(tǒng)
- 軟件工程課程設計
- 軟件工程課程設計
- 軟件工程課程設計
- 軟件工程課程設計
- 《軟件工程》課程設計
- 軟件工程課程設計
- 軟件工程課程設計報告--學生選課系統(tǒng)
- 學生學籍管理系統(tǒng)-軟件工程課程設計
- 軟件工程課程設計報告
- 軟件工程課程設計-電梯
- 軟件工程課程設計報告
- 軟件工程課程設計作業(yè)
評論
0/150
提交評論