軟件工程課程設(shè)計(jì)項(xiàng)目管理系統(tǒng)_第1頁(yè)
軟件工程課程設(shè)計(jì)項(xiàng)目管理系統(tǒng)_第2頁(yè)
軟件工程課程設(shè)計(jì)項(xiàng)目管理系統(tǒng)_第3頁(yè)
軟件工程課程設(shè)計(jì)項(xiàng)目管理系統(tǒng)_第4頁(yè)
軟件工程課程設(shè)計(jì)項(xiàng)目管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、軟件工程課程設(shè)計(jì)報(bào)告( 2014 - 2015 學(xué)年 第二學(xué)期)課程名稱(chēng): 軟件工程課程設(shè)計(jì) 題 目: 軟件項(xiàng)目管理系統(tǒng) 院 系: 班 級(jí): 組 號(hào): 組 長(zhǎng): 組 員: 指導(dǎo)教師: 設(shè)計(jì)周數(shù): 兩周 小組成績(jī): 日期:2015 年 7月 17日軟件工程課程設(shè)計(jì)任 務(wù) 書(shū)一、目的、要求通過(guò)軟件開(kāi)發(fā)的實(shí)踐訓(xùn)練,進(jìn)一步掌握軟件工程的方法和技術(shù),提高軟件開(kāi)發(fā)的實(shí)際能力,培養(yǎng)工程設(shè)計(jì)能力和綜合分析、解決問(wèn)題的能力。具體如下:1. 學(xué)習(xí)和實(shí)踐在分析和設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng)所需要的知識(shí),包括面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì),編碼和測(cè)試方面的知識(shí);2. 熟悉自動(dòng)化的軟件開(kāi)發(fā)工具rational rose,并將其運(yùn)用于軟

2、件開(kāi)發(fā)的全過(guò)程;3. 進(jìn)一步加強(qiáng)和提高軟件工程文檔的編寫(xiě)能力;4. 培養(yǎng)協(xié)作能力和團(tuán)隊(duì)精神。二、主要內(nèi)容1 運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行軟件項(xiàng)目管理系統(tǒng)的需求分析與設(shè)計(jì);2 建模語(yǔ)言采用uml,以rational rose為建模工具,進(jìn)行系統(tǒng)的靜態(tài)建模和動(dòng)態(tài)建模;3 利用對(duì)象模型自動(dòng)生成數(shù)據(jù)模型,自動(dòng)建立數(shù)據(jù)庫(kù);4 使用java語(yǔ)言對(duì)系統(tǒng)的主要模塊進(jìn)行界面層的設(shè)計(jì)并給出實(shí)現(xiàn);5 撰寫(xiě)課程設(shè)計(jì)報(bào)告。三、任務(wù)分配任務(wù)負(fù)責(zé)人參與人備注系統(tǒng)分析類(lèi)圖系統(tǒng)分析用例圖系統(tǒng)分析順序圖系統(tǒng)分析系統(tǒng)需求分析系統(tǒng)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)系統(tǒng)設(shè)計(jì)問(wèn)題域子系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)界面設(shè)計(jì)程序設(shè)計(jì)登錄程序設(shè)計(jì)首頁(yè)程序設(shè)計(jì)項(xiàng)目管理程

3、序設(shè)計(jì)任務(wù)管理程序設(shè)計(jì)聯(lián)系人管理程序設(shè)計(jì)日程表程序設(shè)計(jì)用戶管理程序設(shè)計(jì)系統(tǒng)管理課程設(shè)計(jì)報(bào)告四、進(jìn)度計(jì)劃序號(hào)設(shè)計(jì)內(nèi)容名稱(chēng)完成時(shí)間備注1分組及確定題目1個(gè)工作日2初步的需求分析與設(shè)計(jì)建模, 確定實(shí)現(xiàn)平臺(tái),并搭建環(huán)境2個(gè)工作日3詳細(xì)的需求分析與設(shè)計(jì)建模2個(gè)工作日進(jìn)行中期檢查4關(guān)鍵模塊的實(shí)現(xiàn)與測(cè)試3個(gè)工作日5編寫(xiě)課程設(shè)計(jì)報(bào)告1個(gè)工作日6驗(yàn)收檢查及評(píng)定成績(jī)1個(gè)工作日五、設(shè)計(jì)成果要求1 建立系統(tǒng)分析模型與設(shè)計(jì)模型;2 初步建立系統(tǒng)原型,實(shí)現(xiàn)關(guān)鍵的功能;3 編寫(xiě)課程設(shè)計(jì)報(bào)告。六、考核方式1 系統(tǒng)演示及講解占50%。2 設(shè)計(jì)報(bào)告占50%。指導(dǎo)教師: 日 期: 2015 年 7 月 2 日軟件工程課程設(shè)計(jì) 成

4、績(jī) 評(píng)定一、指導(dǎo)教師評(píng)語(yǔ)二、成績(jī)學(xué)號(hào)姓名成績(jī)備注 指導(dǎo)教師: 日 期: 2015 年 7 月 17 日摘要:“按時(shí)、保質(zhì)地完成項(xiàng)目”大概是每一位項(xiàng)目經(jīng)理最希望做到的。但工期托延的情況卻時(shí)常發(fā)生。因而合理地安排項(xiàng)目時(shí)間是項(xiàng)目管理中一項(xiàng)關(guān)鍵內(nèi)容,它的目的是保證按時(shí)完成項(xiàng)目、合理分配資源、發(fā)揮最佳工作效率。它的主要工作包括定義項(xiàng)目活動(dòng)、任務(wù)、活動(dòng)排序、每項(xiàng)活動(dòng)的合理工期估算、制定項(xiàng)目完整的進(jìn)度計(jì)劃、資源共享分配、監(jiān)控項(xiàng)目進(jìn)度等內(nèi)容。時(shí)間管理工作開(kāi)始以前應(yīng)該先完成項(xiàng)目管理工作中的范圍管理部分。如果只圖節(jié)省時(shí)間,把這些前期工作省略,后面的工作必然會(huì)走彎路,反而會(huì)耽誤時(shí)間。項(xiàng)目一開(kāi)始首先要有明確項(xiàng)目目標(biāo)、

5、可交付產(chǎn)品的范圍定義文檔和項(xiàng)目的工作分解結(jié)構(gòu)(wbs)。由于一些是明顯的、項(xiàng)目所必須的工作,而另一些則具有一定的隱蔽性,所以要以經(jīng)驗(yàn)為基礎(chǔ),列出完整的完成項(xiàng)目所必需的工作,同時(shí)要有專(zhuān)家審定過(guò)程,以此為基礎(chǔ)才能制定出可行的項(xiàng)目時(shí)間計(jì)劃,進(jìn)行合理的時(shí)間管理。通過(guò)項(xiàng)目實(shí)際進(jìn)度與預(yù)計(jì)時(shí)間花費(fèi)對(duì)比,進(jìn)而分析進(jìn)度快慢,標(biāo)注項(xiàng)目開(kāi)發(fā)進(jìn)度,及時(shí)地對(duì)時(shí)間延誤的事件做出記錄,反饋。開(kāi)發(fā)人員可以隨時(shí)關(guān)注自己的開(kāi)發(fā)進(jìn)度,管理人員可以得到項(xiàng)目宏觀上的進(jìn)度分析,對(duì)于嚴(yán)重延誤時(shí)間的某個(gè)具體過(guò)程做出及時(shí)處理,不至于堆積最后嚴(yán)重延誤進(jìn)度。以此努力盡可能達(dá)到按照預(yù)計(jì)時(shí)間完成軟件項(xiàng)目開(kāi)發(fā)。關(guān)鍵詞:軟件項(xiàng)目,資源,任務(wù),進(jìn)度,uml

6、,java ee一、課程設(shè)計(jì)的目的與要求1.1 課程設(shè)計(jì)的目的通過(guò)軟件開(kāi)發(fā)的實(shí)踐訓(xùn)練,進(jìn)一步掌握軟件工程的方法和技術(shù),提高軟件開(kāi)發(fā)的實(shí)際能力,培養(yǎng)工程設(shè)計(jì)能力和綜合分析、解決問(wèn)題的能力。具體如下:1) 學(xué)習(xí)和實(shí)踐在分析和設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng)所需要的知識(shí),包括面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì),編碼和測(cè)試方面的知識(shí);2) 熟悉自動(dòng)化的軟件開(kāi)發(fā)工具rational rose,并將其運(yùn)用于軟件開(kāi)發(fā)的全過(guò)程;3) 進(jìn)一步加強(qiáng)和提高軟件工程文檔的編寫(xiě)能力;4) 培養(yǎng)協(xié)作能力和團(tuán)隊(duì)精神。1.2 課程設(shè)計(jì)的要求1) 綜合運(yùn)用軟件工程方法、技術(shù)和工具完成軟件項(xiàng)目管理系統(tǒng)的分析與設(shè)計(jì)任務(wù);2) 使用rational ros

7、e作為需求分析與設(shè)計(jì)的建模工具,要求進(jìn)行靜態(tài)建模和動(dòng)態(tài)建模,并利用對(duì)象模型自動(dòng)生成數(shù)據(jù)模型,自動(dòng)建立數(shù)據(jù)庫(kù);3) 對(duì)軟件項(xiàng)目管理系統(tǒng)中關(guān)鍵的模塊進(jìn)行界面層的設(shè)計(jì)并給出實(shí)現(xiàn),選擇java ee平臺(tái);4) 撰寫(xiě)課程設(shè)計(jì)報(bào)告。二、設(shè)計(jì)正文1 概述1.1 系統(tǒng)開(kāi)發(fā)的目的和意義1) 目的:本軟件旨在幫助軟件開(kāi)發(fā)團(tuán)隊(duì)更好地規(guī)劃,細(xì)化軟件開(kāi)發(fā)的每一步,在規(guī)定的時(shí)間內(nèi)做好項(xiàng)目,合理分配資源,發(fā)揮最佳工作效率。2) 意義:使開(kāi)發(fā)人員可以隨時(shí)關(guān)注自己的開(kāi)發(fā)進(jìn)度,使管理人員可以得到項(xiàng)目宏觀上的進(jìn)度分析,盡可能按照預(yù)計(jì)時(shí)間完成軟件項(xiàng)目開(kāi)發(fā)。1.2 系統(tǒng)開(kāi)發(fā)環(huán)境及運(yùn)行環(huán)境1) 操作系統(tǒng):windows 7及以上。2)

8、建模工具:ibm rational rose(enterprise edition).3) 數(shù)據(jù)庫(kù)系統(tǒng):mysql和navicat.4) 編程工具:eclipse java ee ide for web developers.5) 開(kāi)發(fā)語(yǔ)言:java, javascript, jsp, html2 系統(tǒng)需求分析2.1 系統(tǒng)需求概述2.1.1 功能需求軟件項(xiàng)目時(shí)間管理系統(tǒng)旨在為軟件項(xiàng)目開(kāi)發(fā)人員提供合理安排項(xiàng)目時(shí)間的功能,主要分為系統(tǒng)管理、用戶管理、聯(lián)系人管理、項(xiàng)目管理和任務(wù)管理。a) 系統(tǒng)管理1) 系統(tǒng)參數(shù)設(shè)定。管理員設(shè)定工作日天數(shù)和單個(gè)工作日的工作小時(shí)數(shù),設(shè)置用戶日志、用戶日志路徑和問(wèn)題跟蹤單

9、存儲(chǔ)路徑。2) 添加角色及設(shè)置權(quán)限。在角色管理部分,添加角色并設(shè)置其相應(yīng)的管理權(quán)限。3) 刪除角色。當(dāng)系統(tǒng)不需要某角色時(shí),可以對(duì)該角色進(jìn)行刪除。b) 用戶管理1) 添加用戶。創(chuàng)建新用戶時(shí),同時(shí)需要選定用戶類(lèi)型、設(shè)置用戶密碼、設(shè)定用戶狀態(tài)、填寫(xiě)聯(lián)系方式和email以及添加個(gè)人簡(jiǎn)介。2) 啟用用戶。當(dāng)用戶狀態(tài)為“暫停”時(shí),對(duì)于項(xiàng)目中存在該用戶的情況下,可以將其用戶狀態(tài)開(kāi)啟為“啟用”。3) 暫停用戶。與啟用用戶功能相對(duì)應(yīng),當(dāng)用戶狀態(tài)為“啟用”時(shí),對(duì)于項(xiàng)目中不存在該用戶的情況下,可以將其用戶狀態(tài)開(kāi)啟為“暫?!?。4) 刪除用戶。從用戶管理的用戶列表里刪除某用戶的信息。5) 搜索用戶。在用戶管理的用戶列表

10、中搜索相關(guān)用戶,可以查找到相關(guān)用戶的所有信息。6) 用戶日志。c) 聯(lián)系人管理1) 添加聯(lián)系人。在聯(lián)系人管理內(nèi),可以實(shí)現(xiàn)添加聯(lián)系人的功能,聯(lián)系人的信息有姓名、用戶id、聯(lián)系方式、郵箱和用戶角色。2) 刪除聯(lián)系人。3) 編輯聯(lián)系人信息。4) 搜索聯(lián)系人。輸入聯(lián)系人的姓名查找相關(guān)聯(lián)系人,可以得到相關(guān)聯(lián)系人的信息。d) 項(xiàng)目管理1) 查看項(xiàng)目。查看所有項(xiàng)目的開(kāi)始時(shí)間、預(yù)期結(jié)束時(shí)間、項(xiàng)目進(jìn)度、項(xiàng)目經(jīng)理和項(xiàng)目狀態(tài)。2) 新建項(xiàng)目。新建一個(gè)項(xiàng)目,需要設(shè)定項(xiàng)目名稱(chēng)、項(xiàng)目開(kāi)始時(shí)間、項(xiàng)目預(yù)期結(jié)束時(shí)間、項(xiàng)目預(yù)算、項(xiàng)目?jī)?yōu)先級(jí)、計(jì)劃耗時(shí)(小時(shí))和項(xiàng)目概述并選擇項(xiàng)目經(jīng)理。3) 搜索項(xiàng)目。用戶可以搜索并查看某個(gè)項(xiàng)目的信息

11、。e) 任務(wù)管理1) 查看任務(wù)。查看所有任務(wù)的開(kāi)始時(shí)間、預(yù)期結(jié)束時(shí)間、任務(wù)進(jìn)度、所屬項(xiàng)目、任務(wù)狀態(tài)及對(duì)應(yīng)的問(wèn)題跟蹤單。2) 查看問(wèn)題跟蹤單。查看所有問(wèn)題跟蹤單的問(wèn)題單號(hào)、所屬任務(wù)、創(chuàng)建時(shí)間、創(chuàng)建人和對(duì)應(yīng)的狀態(tài)。3) 查看日志。4) 創(chuàng)建任務(wù)及對(duì)應(yīng)的日志。新建一個(gè)任務(wù),需要設(shè)定任務(wù)名稱(chēng)、任務(wù)狀態(tài)、任務(wù)優(yōu)先級(jí)、任務(wù)進(jìn)度并選擇所屬項(xiàng)目和判斷是否是里程碑。另外,任務(wù)的詳細(xì)信息包括任務(wù)開(kāi)始時(shí)間、任務(wù)結(jié)束時(shí)間、任務(wù)預(yù)期結(jié)束時(shí)間、預(yù)算指標(biāo)(萬(wàn)元)、分配人力資源和任務(wù)概述。5) 創(chuàng)建問(wèn)題跟蹤單。新建一個(gè)問(wèn)題跟蹤單,需要設(shè)定創(chuàng)建人、選擇問(wèn)題處理人以及添加問(wèn)題概述。6) 處理問(wèn)題跟蹤單。管理界面內(nèi)包括所有問(wèn)題跟蹤

12、單,每個(gè)問(wèn)題跟蹤單包括問(wèn)題單號(hào)、所屬任務(wù)、創(chuàng)建時(shí)間、創(chuàng)建人和對(duì)應(yīng)的處理狀態(tài)。2.1.2 性能需求系統(tǒng)的用戶訪問(wèn)量、系統(tǒng)處理能力、業(yè)務(wù)處理能力、系統(tǒng)響應(yīng)時(shí)間、容災(zāi)需求性能指標(biāo)和網(wǎng)絡(luò)流量等主要性能指標(biāo)均滿足小型軟件項(xiàng)目團(tuán)隊(duì)的需要。2.2 用例圖系統(tǒng)的外部角色有:管理員(admin)、項(xiàng)目經(jīng)理和項(xiàng)目成員。主要用例有:系統(tǒng)管理,用戶管理,項(xiàng)目管理,任務(wù)管理和聯(lián)系人管理。2.2.1 系統(tǒng)管理圖 1 “系統(tǒng)管理”用例圖1)“系統(tǒng)管理”用例:用于設(shè)置系統(tǒng)的參數(shù)和管理角色。前置條件:顯示系統(tǒng)管理界面。主事件流:用戶點(diǎn)擊界面功能按鈕,系統(tǒng)獲取用戶點(diǎn)擊按鈕的操作類(lèi)型。輔事件流:用戶未點(diǎn)擊任何功能按鈕,系統(tǒng)無(wú)響應(yīng)操

13、作。后置條件:系統(tǒng)進(jìn)入相應(yīng)的功能界面。2)“系統(tǒng)參數(shù)設(shè)定”用例:設(shè)定系統(tǒng)某人的工時(shí)數(shù)據(jù)。前置條件:顯示系統(tǒng)管理參數(shù)設(shè)定界面。主事件流:管理員輸入工作日天數(shù)、日工作小時(shí)數(shù)、用戶日志、用戶日志路徑和問(wèn)題跟蹤單存儲(chǔ)路徑,系統(tǒng)獲取并進(jìn)行系統(tǒng)參數(shù)設(shè)置。提示參數(shù)設(shè)置成功,返回系統(tǒng)管理界面。輔事件流1:管理員未輸入工作天數(shù)或工作小時(shí)數(shù)等參數(shù)。系統(tǒng)顯示信息:輸入?yún)?shù)為空將采用默認(rèn)參數(shù)。輔事件流2:管理員輸入不合法的工作天數(shù)或工作小時(shí)數(shù)等參數(shù)。系統(tǒng)顯示錯(cuò)誤信息:輸入?yún)?shù)不合法。后置條件:設(shè)定工作日天數(shù)和日工作小時(shí)數(shù)等參數(shù)成功。3)“添加角色”用例:管理員用戶可以添加本系統(tǒng)用戶的角色。4)“刪除角色”用例:管理員

14、用戶可以刪除本系統(tǒng)用戶的角色。5)“設(shè)置權(quán)限”用例:給添加的角色設(shè)置對(duì)系統(tǒng)訪問(wèn)的權(quán)限。前置條件:顯示系統(tǒng)管理的用戶角色管理界面。主事件流:用戶點(diǎn)擊角色后面的設(shè)置權(quán)限按鈕,系統(tǒng)獲取用戶的點(diǎn)擊操作,進(jìn)行響應(yīng),用戶對(duì)角色權(quán)限進(jìn)行選擇設(shè)置,系統(tǒng)對(duì)用戶操作進(jìn)行監(jiān)聽(tīng)并保存設(shè)置。輔事件流:用戶未點(diǎn)擊角色后面的設(shè)置權(quán)限按鈕,系統(tǒng)無(wú)響應(yīng)。后置條件:角色權(quán)限設(shè)置成功。2.2.2 用戶管理圖 2 “用戶管理”和“項(xiàng)目管理”用例圖1)“用戶管理”用例:可以對(duì)用戶進(jìn)行添加、刪除、啟用、暫停和搜索等一系列操作。前置條件:顯示用戶管理界面。主事件流:用戶點(diǎn)擊界面功能按鈕,系統(tǒng)獲取用戶點(diǎn)擊按鈕的操作類(lèi)型。輔事件流:用戶未點(diǎn)擊

15、任何功能按鈕,系統(tǒng)無(wú)響應(yīng)操作。后置條件:系統(tǒng)進(jìn)入相應(yīng)的功能界面。2)“添加用戶”用例:用戶可以添加項(xiàng)目用戶成員。3)“設(shè)定角色”用例:給添加的用戶設(shè)定用戶角色。前置條件:用戶進(jìn)行添加用戶,要對(duì)用戶角色進(jìn)行選擇。主事件流:用戶點(diǎn)擊設(shè)定角色的下拉列表,系統(tǒng)從系統(tǒng)參數(shù)中獲取角色列表并顯示在下拉列表中,用戶選擇要設(shè)定的角色,系統(tǒng)獲取用戶選擇的角色并顯示在界面中。輔事件流:用戶未選擇角色,提交時(shí)系統(tǒng)顯示消息:用戶角色不能為空。后置條件:根據(jù)用戶角色賦予給用戶相應(yīng)的權(quán)限。4)“搜索用戶”用例:在用戶管理的用戶列表中搜索相關(guān)用戶,可以查找到相關(guān)用戶的所有信息。5)“啟用用戶”用例:將用戶屬性的狀態(tài)由fals

16、e改為true,表示用戶參與某項(xiàng)目。6)“暫停用戶”用例:將某用戶的狀態(tài)從true設(shè)置回false。7)“刪除用戶”用例:從員工信息的用戶列表里刪除某用戶的信息。8)“查看用戶日志”用例:查看某用戶對(duì)系統(tǒng)的操作的日志文件。2.2.3 項(xiàng)目管理1)“項(xiàng)目管理”用例:用戶可以對(duì)項(xiàng)目進(jìn)行創(chuàng)建,查看等一系列操作。前置條件:顯示項(xiàng)目管理的界面。主事件流:用戶點(diǎn)擊界面功能按鈕,系統(tǒng)獲取用戶點(diǎn)擊按鈕的操作類(lèi)型。輔事件流:用戶未點(diǎn)擊任何功能按鈕,系統(tǒng)無(wú)響應(yīng)操作。后置條件:系統(tǒng)進(jìn)入相應(yīng)的功能界面。2)“創(chuàng)建項(xiàng)目”用例:用戶可以新建一個(gè)項(xiàng)目。前置條件:用戶在項(xiàng)目管理界面點(diǎn)擊創(chuàng)建項(xiàng)目按鈕,進(jìn)入創(chuàng)建項(xiàng)目界面。主事件流

17、:用戶按提示輸入項(xiàng)目信息,系統(tǒng)獲取用戶輸入的信息,進(jìn)行校驗(yàn)。輔事件流:用戶未輸入必須的項(xiàng)目信息,系統(tǒng)顯示信息:*不能為空。后置條件:新建的項(xiàng)目放入項(xiàng)目管理的項(xiàng)目列表。3)“查看項(xiàng)目”用例:用戶可以查看所有項(xiàng)目的信息。4)“查看任務(wù)”用例:用戶可以查看項(xiàng)目的任務(wù)的信息。5)“搜索項(xiàng)目”用例:用戶可以搜索并查看某個(gè)項(xiàng)目的信息。圖 3 “任務(wù)管理”和“聯(lián)系人管理”用例圖2.2.4 聯(lián)系人管理1)“聯(lián)系人管理”用例:用戶可以查看到聯(lián)系人列表,還可以進(jìn)行添加,刪除,編輯聯(lián)系人等操作。前置條件:顯示聯(lián)系人界面。主事件流:用戶點(diǎn)擊界面功能按鈕,系統(tǒng)獲取用戶點(diǎn)擊按鈕的操作類(lèi)型。輔事件流:用戶未點(diǎn)擊任何功能按鈕

18、,系統(tǒng)無(wú)響應(yīng)操作。后置條件:系統(tǒng)進(jìn)入相應(yīng)的功能界面。2)“添加聯(lián)系人”用例:用戶可以添加自己的聯(lián)系人,用于合作項(xiàng)目時(shí)可以相互聯(lián)系。3)“刪除聯(lián)系人”用例:用戶可以刪除一些聯(lián)系人。4)“編輯聯(lián)系人信息”用例:用戶可以修改某些聯(lián)系人的信息。2.2.5 任務(wù)管理1)“任務(wù)管理”用例:用戶可以對(duì)任務(wù)進(jìn)行創(chuàng)建任務(wù),查看任務(wù),創(chuàng)建任務(wù)日志,查看任務(wù)日志,創(chuàng)建問(wèn)題跟蹤單,處理問(wèn)題跟蹤單等一系列操作。前置條件:顯示任務(wù)管理界面。主事件流:用戶點(diǎn)擊界面功能按鈕,系統(tǒng)獲取用戶點(diǎn)擊按鈕的操作類(lèi)型。輔事件流:用戶未點(diǎn)擊任何功能按鈕,系統(tǒng)無(wú)響應(yīng)操作。后置條件:系統(tǒng)進(jìn)入相應(yīng)的功能界面。2)“創(chuàng)建任務(wù)”用例:對(duì)某項(xiàng)目創(chuàng)建一

19、個(gè)新任務(wù)。前置條件:用戶點(diǎn)擊創(chuàng)建任務(wù)功能按鈕,進(jìn)入創(chuàng)建任務(wù)界面。主事件流:用戶按提示輸入任務(wù)信息,系統(tǒng)獲取用戶輸入的信息,進(jìn)行校驗(yàn)。輔事件流:用戶未輸入必須的任務(wù)信息,系統(tǒng)顯示信息:*不能為空。后置條件:新建的任務(wù)放入相應(yīng)項(xiàng)目的任務(wù)列表。3)“查看任務(wù)”用例:用戶可以查看自己的所有任務(wù),項(xiàng)目經(jīng)理可以查看所有人的任務(wù)。4)“查看任務(wù)日志”用例:用戶可以查看任務(wù)的任務(wù)日志。5)“創(chuàng)建問(wèn)題跟蹤單”用例:用戶可以創(chuàng)建自己任務(wù)出現(xiàn)的問(wèn)題的跟蹤單。6)“處理問(wèn)題跟蹤單”用例:用戶可以根據(jù)問(wèn)題跟蹤單的問(wèn)題做出相應(yīng)的處理。2.3 類(lèi)圖圖 4 類(lèi)圖project:項(xiàng)目類(lèi),主要屬性有:項(xiàng)目id(pid),任務(wù)列表

20、(tasklist),和項(xiàng)目持續(xù)時(shí)間(duration);主要方法有查看任務(wù)(displaytask),創(chuàng)建任務(wù)(createtask),查看任務(wù)日志(displaytasklog),創(chuàng)建問(wèn)題日志(createproblemlog),處理問(wèn)題日志(dealwithproblemlog)。projectmanagement:項(xiàng)目管理類(lèi),主要屬性有:項(xiàng)目列表(projectlist);主要方法有:創(chuàng)建項(xiàng)目(creatproject),查看項(xiàng)目(displayproject)和搜索項(xiàng)目(searchproject)。task:任務(wù)類(lèi),主要屬性有:任務(wù)id(tid),日志路徑(logpath),問(wèn)題日

21、志列表(problemloglist)和員工列表(stafflist);主要方法有:創(chuàng)建任務(wù)日志(createtasklog),查看任務(wù)日志(displaytasklog),創(chuàng)建問(wèn)題日志(createproblemlog),處理問(wèn)題日志(dealwithproblemlog)。taskmanagement:任務(wù)管理類(lèi),主要方法有:創(chuàng)建任務(wù)(createtask),查看任務(wù)(displaytask),創(chuàng)建任務(wù)日志(createtasklog),查看任務(wù)日志(displaytasklog),創(chuàng)建問(wèn)題日志(createproblemlog),處理問(wèn)題日志(dealwithproblemlog)。pr

22、oblemlog:問(wèn)題日志類(lèi),主要屬性有:?jiǎn)栴}(problem)。userpublic:用戶公用信息類(lèi),主要屬性有:用戶id(userid),姓名(name),電話(phone),郵件(e-mail)。contacts:聯(lián)系人類(lèi),主要屬性有:聯(lián)系人列表(stafflist);主要方法有:添加聯(lián)系人(add),刪除聯(lián)系人(delete),編輯聯(lián)系人(edit)。user:用戶類(lèi),繼承userpublic,主要屬性有:聯(lián)系人(contacts),用戶角色(userrole),密碼(password),用戶狀態(tài)(userstate),用戶日志路徑(userlogpath);主要方法有:獲取角色列表(

23、getrole)。memberinformation:?jiǎn)T工信息類(lèi),主要屬性有:用戶列表(userlist),員工人數(shù)(staffnum);主要方法有:添加用戶(adduser),啟用用戶(startuser),刪除用戶(deleteuser),暫停用戶(pauseuser),搜索用戶日志(searchuserlog)。role:角色類(lèi),主要屬性有:角色名(rolename),權(quán)限名(powername)。systemsetting:系統(tǒng)參數(shù)設(shè)置類(lèi),主要屬性有:工作天數(shù)(duration-day),工作小時(shí)數(shù)(duration-hour),角色列表(rolelist);主要方法有:獲取角色(ge

24、trole),添加角色(addrole),刪除角色(deleterole)。2.4 順序圖1)設(shè)置系統(tǒng)參數(shù)的順序圖如圖5所示。圖 5 設(shè)置系統(tǒng)參數(shù)2)設(shè)置角色和權(quán)限的順序圖如圖6所示。圖 6 設(shè)置角色和權(quán)限3)創(chuàng)建項(xiàng)目的順序圖如圖7所示。圖 7 創(chuàng)建項(xiàng)目4)查看和搜索項(xiàng)目的順序圖如圖8所示。圖 8 查看和搜索項(xiàng)目5)創(chuàng)建任務(wù)的順序圖如圖9所示。圖 9 創(chuàng)建任務(wù)6)查看任務(wù)的順序圖如圖10所示。圖 10 查看任務(wù)7)創(chuàng)建任務(wù)日志的順序圖如圖11所示。圖 11 創(chuàng)建任務(wù)日志8)查看任務(wù)日志和創(chuàng)建問(wèn)題跟蹤單的順序圖如圖12所示。圖 12 查看任務(wù)日志和創(chuàng)建問(wèn)題跟蹤單9)添加用戶的順序圖如圖13所示。

25、圖 13 添加用戶10)添加聯(lián)系人的順序圖如圖14所示。圖 14 添加聯(lián)系人3 系統(tǒng)總體設(shè)計(jì)3.1 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)系統(tǒng)可分解成三層結(jié)構(gòu),分別是表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層,這樣有利于系統(tǒng)的開(kāi)發(fā)、維護(hù)、部署和擴(kuò)展。系統(tǒng)體系結(jié)構(gòu)圖(使用包圖的形式描述)如圖15所示。分層是為了實(shí)現(xiàn)“高內(nèi)聚、低耦合”。采用“分而治之”的思想,把問(wèn)題劃分開(kāi)來(lái)各個(gè)解決,易于控制,易于延展,易于分配資源。表示層:負(fù)責(zé)直接跟用戶進(jìn)行交互,一般也就是指系統(tǒng)的界面,用于數(shù)據(jù)錄入,數(shù)據(jù)顯示等。意味著只做與外觀顯示相關(guān)的工作。業(yè)務(wù)邏輯層:用于做一些有效性驗(yàn)證的工作,以更好地保證程序運(yùn)行的健壯性。如完成數(shù)據(jù)添加、修改和查詢業(yè)務(wù)等;

26、不允許指定的文本框中輸入空字符串,數(shù)據(jù)格式是否正確及數(shù)據(jù)類(lèi)型驗(yàn)證;用戶的權(quán)限的合法性判斷等等,通過(guò)以上的諸多判斷以決定是否將操作繼續(xù)向后傳遞,盡量保證程序的正常運(yùn)行。數(shù)據(jù)訪問(wèn)層:顧名思義,就是用于專(zhuān)門(mén)跟數(shù)據(jù)庫(kù)進(jìn)行交互。執(zhí)行數(shù)據(jù)的添加、刪除、修改和顯示等。需要強(qiáng)調(diào)的是,所有的數(shù)據(jù)對(duì)象只在這一層被引用,如system.data.sqlclient等,除數(shù)據(jù)層之外的任何地方都不應(yīng)該出現(xiàn)這樣的引用。圖 15系統(tǒng)體系結(jié)構(gòu)圖3.2 設(shè)計(jì)問(wèn)題域子系統(tǒng)圖 16 問(wèn)題域子系統(tǒng)各個(gè)類(lèi)對(duì)應(yīng)的具體操作如下:projectmanagement為項(xiàng)目管理類(lèi),其操作有創(chuàng)建項(xiàng)目,根據(jù)項(xiàng)目id搜索項(xiàng)目,獲得所有項(xiàng)目,根據(jù)項(xiàng)目名

27、稱(chēng)搜索項(xiàng)目,根據(jù)名字模糊搜索項(xiàng)目,更新項(xiàng)目狀態(tài),maxtime為輔助方法,獲取參數(shù)最大值。taskmanager為任務(wù)管理類(lèi),其操作有對(duì)任務(wù)的創(chuàng)建,編輯,搜索,搜索全部,還有給任務(wù)創(chuàng)建問(wèn)題跟蹤單以及搜索全部問(wèn)題跟蹤單。memberinformation類(lèi)有初始化、獲取系統(tǒng)參數(shù)、設(shè)置系統(tǒng)參數(shù)、添加用戶,刪除用戶、搜索用戶角色、搜索用戶日志主要操作。worktimeinfomation位系統(tǒng)管理類(lèi),其操作有初始化、添加用戶角色、刪除用戶角色、獲取系統(tǒng)參數(shù)、設(shè)置系統(tǒng)參數(shù)操作函數(shù)。fileoperation為對(duì)文件的讀寫(xiě)類(lèi),其操作有對(duì)問(wèn)題件的讀和寫(xiě)。其他都是對(duì)象類(lèi),其本上沒(méi)有變化。各類(lèi)中的關(guān)系如上圖的

28、類(lèi)圖所示。3.3 設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)圖 17 數(shù)據(jù)庫(kù)表1) myuser表:存儲(chǔ)系統(tǒng)用戶信息,具體表結(jié)構(gòu)如表一所示。表一 myuser表結(jié)構(gòu)字段名字段類(lèi)型字段寬度備注登錄idbigint20主鍵姓名varchar20聯(lián)系方式varchar15emailvarchar50密碼varchar50用戶角色varchar30用戶狀態(tài)tinyint1用戶日志路徑varchar200用戶概述varchar3002) contacts表:存儲(chǔ)聯(lián)系人信息,具體表結(jié)構(gòu)如表二所示。表二 contacts表結(jié)構(gòu)字段名字段類(lèi)型字段寬度備注聯(lián)系人idbigint20主鍵用戶idbigint20主鍵,外鍵姓名varcha

29、r20聯(lián)系方式varchar15用戶角色varchar30emailvarchar503) usertask表:存儲(chǔ)員工及對(duì)應(yīng)的任務(wù)信息,具體表結(jié)構(gòu)如表三所示。表三 usertask表結(jié)構(gòu)字段名字段類(lèi)型字段寬度備注員工idbigint20主鍵,外鍵任務(wù)idbigint20外鍵4) project表:存儲(chǔ)項(xiàng)目信息,具體表結(jié)構(gòu)如表四所示。表四 project表結(jié)構(gòu)字段名字段類(lèi)型字段寬度備注項(xiàng)目idbigint20主鍵項(xiàng)目名稱(chēng)varchar50開(kāi)始時(shí)間date預(yù)計(jì)結(jié)束時(shí)間date實(shí)際結(jié)束時(shí)間date預(yù)算float項(xiàng)目經(jīng)理idbigint20狀態(tài)varchar10優(yōu)先級(jí)int11進(jìn)度f(wàn)loat20已工

30、作小時(shí)數(shù)float20計(jì)劃耗時(shí)float20項(xiàng)目耗時(shí)float20概述varchar3005) problemlog表:存儲(chǔ)聯(lián)系人信息,具體表結(jié)構(gòu)如表五所示。表五 problemlog表結(jié)構(gòu)字段名字段類(lèi)型字段寬度備注問(wèn)題單idbigint20主鍵任務(wù)idbigint20外鍵創(chuàng)建時(shí)間datetime0創(chuàng)建人idbigint20處理者idbigint20狀態(tài)int11問(wèn)題描述varchar300日志路徑varchar1006) role表:存儲(chǔ)角色信息,具體表結(jié)構(gòu)如表六所示。表六 role表結(jié)構(gòu)字段名字段類(lèi)型字段寬度備注用戶角色varchar30主鍵角色權(quán)限varchar2007) task表:存

31、儲(chǔ)任務(wù)信息,具體表結(jié)構(gòu)如表七所示。表七 task表結(jié)構(gòu)字段名字段類(lèi)型字段寬度備注任務(wù)idbigint20主鍵任務(wù)名稱(chēng)varchar50狀態(tài)varchar10進(jìn)度f(wàn)loat0優(yōu)先級(jí)int11項(xiàng)目idbigint20外鍵是否為里程碑tinyint1預(yù)算指標(biāo)float20父任務(wù)idbigint20概述varchar300開(kāi)始時(shí)間date完成時(shí)間date計(jì)劃完成時(shí)間date任務(wù)日志路徑varchar1008) worktime表:存儲(chǔ)工作時(shí)間信息,具體表結(jié)構(gòu)如表八所示。表八 usertask表結(jié)構(gòu)字段名字段類(lèi)型字段寬度備注工作日天數(shù)bigint20主鍵日工作小時(shí)數(shù)bigint20用戶日志varchar

32、200用戶日志路徑varchar200問(wèn)題跟蹤單路徑varchar2003.4 設(shè)計(jì)人機(jī)交互子系統(tǒng)人機(jī)交互子系統(tǒng)包括系統(tǒng)登錄界面、用戶操作主界面和一般子功能界面。圖 18 系統(tǒng)登錄界面圖 19 用戶操作主界面圖 20 一般子功能界面4. 詳細(xì)設(shè)計(jì)4.1 系統(tǒng)參數(shù)設(shè)置部分1)設(shè)置系統(tǒng)參數(shù)圖 21 設(shè)置系統(tǒng)參數(shù)2)設(shè)置角色和權(quán)限圖 22 設(shè)置角色和權(quán)限4.2 用戶管理部分1)添加用戶圖 23 添加用戶2)添加聯(lián)系人圖 24 添加聯(lián)系人4.3 項(xiàng)目管理部分1)創(chuàng)建項(xiàng)目圖 25 創(chuàng)建項(xiàng)目2)查看和搜索項(xiàng)目圖 26 查看和搜索項(xiàng)目4.4 任務(wù)管理部分1)創(chuàng)建任務(wù)圖 27 創(chuàng)建任務(wù)2)查看任務(wù)圖 28 查

33、看任務(wù)3)創(chuàng)建任務(wù)日志圖 29 創(chuàng)建任務(wù)日志4)查看任務(wù)日志和創(chuàng)建問(wèn)題跟蹤單圖 30 查看任務(wù)日志和創(chuàng)建問(wèn)題跟蹤單5. 系統(tǒng)實(shí)現(xiàn)5.1 登錄登錄界面如圖18所示,用戶輸入自己的用戶名和密碼,系統(tǒng)獲取用戶輸入的信息后,連接后臺(tái)數(shù)據(jù)庫(kù)中的myuser表,對(duì)用戶信息進(jìn)行核實(shí)與驗(yàn)證,若吻合,則用戶可以進(jìn)入系統(tǒng),否則給出報(bào)錯(cuò)信息,其算法的流程圖,如圖31所示。圖 31 登錄模塊算法流程圖開(kāi)始輸入用戶基本信息 用戶名為空?用密碼為空?連接后臺(tái)數(shù)據(jù)庫(kù)myuser表用戶不存在或密碼不正確?登錄界面根據(jù)用戶身份進(jìn)入對(duì)應(yīng)的主界面結(jié)束否否否是是是用戶身份驗(yàn)證的主要代碼如下:登錄驗(yàn)證javascript代碼:eg.$

34、 = function(id)return document.getelementbyid(id); function nodisplay()document.getelementbyid(notisemy).style.display=none;function check()var account = eg.$(account);var password = eg.$(password);if(account.value = | password.value=)document.getelementbyid(notisemy).style.display=;return false; va

35、r jarge = /0-9*$/ ;if(!jarge.test(account.value)document.getelementbyid(notisemy).style.display =;return false; if (window.xmlhttprequest) xmlhttp = new xmlhttprequest(); if (window.activexobject) try xmlhttp = new activexobject(microsoft.xmlhttp); catch (e) try xmlhttp = new activexobject(msxml2.xm

36、lhttp); catch (x) var url = logcheck?account=+account.value+&password=+password.value;xmlhttp.open(get,url,true);xmlhttp.setrequestheader(content-type, text/html;charset=utf-8);xmlhttp.onreadystatechange = function complate()if(xmlhttp.readystate = 4)var msg = xmlhttp.responsetext;if(msg = 0)documen

37、t.getelementbyid(notisemy).style.display=;return false;elsewindow.location.href=login?account=+account.value+&password=+password.value;return true;xmlhttp.send(null);return false;servlet代碼:httpsession session = request.getsession(false);if(session = null )requestdispatcher dispatch = request.getrequ

38、estdispatcher(signin.jsp);dispatch.forward(request, response);return ; string account = request.getparameter(account); string password = request.getparameter(password); if(account=null| password=null ) requestdispatcher dispatch = request.getrequestdispatcher(signin.jsp);dispatch.forward(request, re

39、sponse);return ; if(account.equals()| password.equals() ) requestdispatcher dispatch = request.getrequestdispatcher(signin.jsp);dispatch.forward(request, response);return ; else myuser res = myuser.search(integer.parseint(account); if(res = null) requestdispatcher dispatch = request.getrequestdispat

40、cher(signin.jsp); dispatch.forward(request, response); return ; if(password.equals(res.getpassword() session.setattribute(account, account); worktimeinfomation.init(); memberinformation.init(); projectmanagement.init(); string operation = (string)session.getattribute(account); simpledateformat df =

41、new simpledateformat(yyyy-mm-dd hh:mm:ss); string datelogin = df.format(new date(); user operationuser = memberinformation.seachuser(integer.parseint(operation); fileoperation.saveasfilewriter(operationuser.getuserlogpath(),登錄時(shí)間 +datelogin+rn); response.sendredirect(index.jsp); return ; else request

42、dispatcher dispatch =request.getrequestdispatcher(signin.jsp); dispatch.forward(request, response); return ; 5.2 系統(tǒng)管理界面如圖所示,管理員設(shè)定工作日天數(shù)和單個(gè)工作日的工作小時(shí)數(shù)、設(shè)置用戶日志、用戶日志路徑和問(wèn)題跟蹤單存儲(chǔ)路徑等參數(shù),系統(tǒng)獲取到這些參數(shù)后,連接后臺(tái)數(shù)據(jù)庫(kù)中的worktime表,并對(duì)網(wǎng)頁(yè)中相應(yīng)信息更改。同樣,在角色管理中,管理員設(shè)定角色名稱(chēng)和權(quán)限描述,系統(tǒng)獲取并連接后臺(tái)數(shù)據(jù)庫(kù)中的role表,并修改網(wǎng)頁(yè)。圖 32系統(tǒng)參數(shù)管理界面圖 33角色管理界面系統(tǒng)管理的系統(tǒng)參數(shù)管理

43、界面和角色管理界面如上圖所示。實(shí)現(xiàn)其功能的主要代碼如下:httpsession session = request.getsession(false);if(session = null | session.getattribute(account)=null | session.getattribute(account).equals()requestdispatcher dispatch = request.getrequestdispatcher(signin.jsp);dispatch.forward(request, response);return ; string operati

44、on = request.getparameter(operation);if(operation.equals(setworktime) int workdays = integer.parseint(request.getparameter(workdays); int workdayhours = integer.parseint(request.getparameter(workdayhours); string userlog = new string(request.getparameter(userlog).getbytes(iso-8859-1),utf-8); string

45、tasklogpath = new string(request.getparameter(tasklogpath).getbytes(iso-8859-1),utf-8); string problemlogpath = new string(request.getparameter(problemlogpath).getbytes(iso-8859-1),utf-8); if(worktime.updateworktime(workdays, workdayhours,userlog,tasklogpath,problemlogpath)=0) response.sendredirect(

46、error.jsp); return ; else myuser.updatelogpath(userlog); datatask.updatelogpath(tasklogpath); dataproblemlog.updatelogpath(problemlogpath); worktimeinfomation.init(); memberinformation.init(); projectmanagement.init(); response.sendredirect(setworktime.jsp); return ; 5.3 用戶管理模塊界面如圖所示,管理員按要求添加、啟用、暫停、

47、刪除、搜索用戶,系統(tǒng)獲取到這些操作后,連接后臺(tái)數(shù)據(jù)庫(kù)中的myuser和contacts表,并對(duì)網(wǎng)頁(yè)中相應(yīng)信息更改。圖 34用戶管理界面圖 35創(chuàng)建新用戶界面用戶管理界面和對(duì)應(yīng)的創(chuàng)建新用戶界面如上圖所示。實(shí)現(xiàn)其功能的主要代碼如下:httpsession session = request.getsession(false);if(session = null | session.getattribute(account)=null | session.getattribute(account).equals()requestdispatcher dispatch = request.getreq

48、uestdispatcher(signin.jsp);dispatch.forward(request, response);return ; string function = request.getparameter(functionmy);if(function.equals(deleteuser)string userid = request.getparameter(accountid);string operation = (string)session.getattribute(account);simpledateformat df = new simpledateformat

49、(yyyy-mm-dd hh:mm:ss);/設(shè)置日期格式string dateedit = df.format(new date();/ new date()為獲取當(dāng)前系統(tǒng)時(shí)間user operationuser = memberinformation.seachuser(integer.parseint(operation);user edituser = memberinformation.seachuser(integer.parseint(userid);string operationname = operationuser.getuserid()+ +operationuser.

50、getname();string path = edituser.getuserlogpath();if(memberinformation.deleteuser(integer.parseint(userid)=1) fileoperation.saveasfilewriter(path,用戶刪除時(shí)間 +dateedit+rn); fileoperation.saveasfilewriter(path,操作人 +operationname+rn); response.sendredirect(usermanager.jsp); return ; elseresponse.sendredirect(error.jsp); return ; if(function.equals(purseuser)string u

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論