大三下學期,我們學習的軟件工程這門課的課程設計,主要是針對一個管理系統,從需求分析到概要設計再到詳細設計,還好,不要求寫代碼。
下面是我做的辦公室日常信息管理系統的設計。
軟件架構文檔
1. 介紹
1.1 目的
這篇文檔提供了對辦公室日常信息管理系統架構的總攬,從不同的視角描述了該系統。包含架構分析的關鍵決策,目的在於幫助開發人員理解辦公室日常信息管理系統的基本結構,系統的功能和非功能的需求。
1.2 范圍
介紹了辦公室日常信息管理系統的登錄系統、注冊系統、會議管理系統、文件管理系統、考勤系統和日常事務管理系統。使用此系統的管理員可以進行系統的管理;使用此系統的職員可以通過此系統進行信息的查看和查詢。此系統的功能如下:
職員可以注冊成為正式職員;
職員可以輸入正確的用戶名和密碼,登錄系統;
職員可以查看系統的會議、文件、考勤、日常事務等基本信息;
職員可以進行注冊信息的修改;
管理員可以注冊成為合法管理員;
管理員可以輸入正確的用戶名和密碼,登錄系統;
管理員可以刪除離職的職員和管理員,即用戶管理;
管理員可以維護業務數據,包括文件、考勤、會議、日常事務的增刪改查等;
管理員和職員退出系統。
1.3 定義,縮寫詞
職員-辦公室的在職人員。
管理員-管理辦公室日常信息管理系統的人。
用戶-職員和管理員。
系統-辦公室日常信息管理系統。
1.4 參考文獻
[1]趙池龍,程努華 .實用軟件工程.電子工業出版社.2012
[2]張華麗.基於 J2EE 的檔案管理系統設計與實現[J].現代商貿工業. 2010:14-17
[3]杜獻峰 . 基於三層 B/S 結構的檔案管理系統開發 [J]. 中原工學院學報, 2009:19-25
[4]劉冬立.基於 Web 的企業檔案管理系統的設計與實現[D].同濟大學,2007:14-23
[5]程成,陳霞.軟件工程[M].機械工業出版社,2003:46-80.
1.5 內容概覽
1.5.1 登錄系統
職員想要查詢某些信息,需要輸入正確的用戶名和密碼,如果輸入錯誤,則停留在登錄頁;
管理員想要管理辦公室日常事務,需要輸入正確的用戶名和密碼,如果輸入錯誤,停留在登錄頁。
1.5.2 注冊系統
新來的公司的人員,需要注冊成為職員。
管理員需要注冊,成為合法的管理員。
1.5.3 文件管理系統
職員可以根據文件的編號、種類、名稱和存放的位置進行文件的查詢;
管理員可以添加、修改、刪除和查看文件。
1.5.4 會議管理系統
職員可以根據文件的編號、種類、名稱和存放的位置進行文件的查找;
管理員可以添加、修改、刪除和查看文件。
1.5.5 考勤管理系統
職員可以根據姓名、年齡、職務、日期進行考勤記錄的查看;
管理員可以添加、修改、刪除和查看考勤。
1.5.6 日常事務管理系統
職員可以根據事務的時間、何種事務和記錄人進行日常事務的查看;
管理員可以添加、修改、刪除和查看日常事務。
1.5.7 管理員用戶管理
管理員對用戶進行增刪改查等操作。
1.5.8 職員修改注冊信息
職員需要修改自己的注冊信息時,對於可以進行修改的地方進行修改保存操作。
1.5.9 退出系統
職員和管理員在執行各種操作時,可以隨時退出系統,返回登錄界面。
2. 體系結構表示方法
這篇文檔使用一系列視圖反映系統架構的某個方面;
用例視圖:概括了架構上最為重要的用例和它們的非功能性需求;
邏輯視圖:展示了描述系統關鍵方面的重要用例實現場景(使用交互圖);
過程視圖:通過展示數據在系統中的流動路徑,得出組件之間的交互關系;
部署視圖:展示構建在處理節點上的物理部署以及節點之間的網絡配置(使用部署圖);
數據視圖:描述了數據流、持久性數據模式、對象與持久性數據之間的模式映射、對象到數據庫、存儲過程以及觸發器的映射機制(使用類圖描述數據模型,活動圖表示數據流)。
3. 辦公室日常信息管理系統要達到的目標和限制
3.1 目標
職員可以正確登錄,在登錄頁面輸入信息時能夠在輸入錯誤的同時看到錯誤提示;正確登錄后可以查詢自己的考勤情況,同時可以查看公司的文件信息、會議信息和日常事務信息。
職員在首頁可以很方便地進行注冊,輸入的注冊信息要進行驗證,驗證正確后將信息存入數據庫。
管理員正確登錄后可以管理職員信息,文件、考勤、日常事務和會議信息。
3.2 限制
職員和管理員的界面分開,職員不能修改邏輯上不能修改的信息;
管理員不能修改用戶密碼,還有同級別的管理員的信息。
4. 用例視圖
辦公室日常信息管理系統描述的主要用例有:職員和管理員注冊,職員登錄系統,職員修改注冊信息,管理員登錄系統,管理員用戶管理,查看業務數據,管理員維護業務數據,管理員和客戶退出系統。
4.1 系統用例圖
系統用例圖:管理員可以登錄、注冊、管理用戶、管理業務數據;職員可以登錄、注冊、修改注冊信息、查看業務數據;業務數據管理包含了查看業務數據。
圖4.1 系統用例圖
以下是對系統的各個用例進行描述,畫出各個用例的活動圖,即從用戶角度描述用例。
4.2 查看業務數據
4.2.1 用例簡述
管理員或者職員輸入相應的需要查詢的信息,系統查找相應的記錄,並顯示查詢情況。
4.2.2 基本事件流
1 管理員或職員:在管理頁面,根據提示輸入相應的信息,提交查找請求;
2 系統:在系統中檢索與輸入條件相符的數據;
3 系統:把檢索條件相符的數據顯示在頁面上;
4 用例結束。
4.2.3 查看業務數據的活動圖
圖4.2 查看業務數據的活動圖
4.3 職員或者管理員注冊
4.3.1 用例簡述
新人進入公司,需要注冊成為公司正式職員。
管理員注冊成為合法管理員。
4.3.2 基本事件流
1 職員或管理員:在注冊頁面,輸入職工編號、姓名、性別、年齡、密碼、工作部門等信息,提交注冊請求;
2 系統:對注冊輸入的信息進行檢查;
3 系統:注冊的信息被系統保存;
4 系統:顯示注冊完了頁面,提示注冊成功;
5 用例結束。
4.3.3 注冊的活動圖
圖4.3 注冊的活動圖
4.4 職員修改注冊信息
4.4.1 用例簡述
職員修改自己的注冊信息。
4.4.2 基本事件流
1 職員:進入在職員信息頁面;
2 系統:顯示此職員的職員編號、密碼、工作部門等信息,其中除職員編號外,其他都是可修改項目;
3 職員:編輯能夠被修改的項目;
4 系統:檢查職員輸入的信息;
5 系統:職員輸入的信息被系統保存;
6 系統:顯示注冊信息更新完了畫面,提示職員修改注冊信息更新成功;
7 用例結束。
4.4.3 活動圖
職員修改注冊信息的活動圖
圖4.4 修改注冊信息的活動圖
4.5 職員登錄系統
4.5.1 用例簡述
職員輸入合法的職工編號和密碼后,登錄系統。
4.5.2 基本事件流
1 職員:在職員登錄頁面上,輸入用戶編號和密碼;
2 系統:根據職工編號和密碼檢索系統,獲得職員信息;
3 系統:在職員信息頁面上,顯示歡迎職員登錄系統;
4 結束用例。
4.5.3 活動圖
職員登錄系統的活動圖
圖4.5 職員登錄系統的活動圖
4.6 管理員登錄系統
4.6.1用例簡述
管理員輸入有效的用戶編號和密碼后,登錄系統。
4.6.2基本事件流
1 管理員:在管理員登陸頁面上,輸入用戶編號和密碼,提交登錄系統的要求;
2 系統:查詢系統,獲得管理員的信息,並將賦予管理員相應的權限;
3 系統:根據登錄管理員的權限,在管理機能頁面上顯示相應的管理頁面的入口;
4 用例結束。
4.6.3活動圖
管理員登錄系統的活動圖
圖4.6 管理員登錄系統的活動圖
4.7管理業務數據
4.7.1用例簡述
管理員管理文件、會議、考勤、日常事務等相關的業務數據,包括對數據的新增,更新,刪除,查詢。
4.7.2基本事件流
1 管理員:進入業務相應的模塊,實施業務數據的新增,更新,刪除,查詢操作;
2 系統: 在系統中實現對業務數據的相關操作;
3 用例結束。
4.7.3活動圖
管理業務數據的活動圖
圖4.7 管理業務數據的活動圖
4.8 管理員用戶管理權限
4.8.1用例簡述
管理員管理用戶。
4.8.2基本事件流
1 管理員:對職員進行增刪改查操作;
2 系統:在系統中實現相關的操作;
3 用例結束。
4.8.3活動圖
管理員管理系統權限的活動圖
圖4.8 管理員管理系統權限的活動圖
4.9 管理員職員退出系統
4.9.1用例簡述
管理員職員退出系統。
4.9.2基本事件流
1 管理員和職員:提交退出系統的請求;
2 系統:注銷,並返回登錄界面。
5. 邏輯視圖
邏輯視圖部分主要敘述了設計階段的工作。
5.1 總攬
圖5.1的領域模型是辦公室日常信息管理系統的總類圖;
IYeWuDataDao和 wj kq hy sw 這幾個實體類之間是組合關系,即整體與部分的關系。
User--->IUserDao--->IUserService--->loginUIServlet--->loginServlet,登錄的依賴關系。
User--->IUserDao--->IUserService--->registerUIServlet--->registerServlet/xgregisterServlet,注冊、修改注冊信息的依賴關系。
IYeWuDataDao--->IYeWuDataService--->YeWuUISercvlet--->YeWuServlet,業務處理的依賴關系。
圖5.1 領域模型
5.2類說明:
類名 |
作用說明 |
User |
存放用戶的JavaBean類(只包含簡單的屬性以及屬性對應的get和set方法,不包含具體的業務處理方法) |
wj |
保存文件的JavaBean類 |
kq |
保存考勤的JavaBean類 |
hy |
保存會議的JavaBean類 |
sw |
保存日常事務的JavaBean類 |
IUserDao |
存放訪問用戶數據庫的操作接口類 |
IYeWuDataDao |
存放訪問業務數據庫的操作接口類 |
IUserService |
存放處理用戶接口類 |
IYeWuDataService |
存放處理系統業務接口類 |
loginUIServlet |
存放為用戶提供用戶登錄界面的servlet |
registerUIServlet |
存放為用戶提供用戶注冊界面的servlet |
YeWuUIServlet |
存放為用戶提供業務處理界面的servlet |
RegisterFormBean |
封裝用戶注冊表單的實體類 |
xgRegisterServlet |
對修改注冊注冊信息的處理 |
loginServlet |
登錄處理的servlet |
logoutServlet |
退出處理的servlet |
registerServlet |
注冊處理的servlet |
YeWuServlet |
業務處理的servlet |
6. 過程視圖
過程視圖部分敘述幾個主要子系統的處理流程。
6.1 用戶注冊
順序圖:從計算機的角度描述用例,指對象間的交互。
6.1.1 用戶注冊的系統順序圖
圖6.1 用戶注冊的系統順序圖
6.1.2 用戶注冊的類圖
圖6.2 用戶注冊的類圖
類圖說明:
對用用例: |
用戶注冊 |
|
類名 |
說明 |
|
《broundry》 registerUIServlet |
存放為用戶提供用戶注冊界面servlet |
|
《interface》IUserDao |
存放訪問用戶數據庫的操作接口類 |
|
《interface》IUserService |
存放處理用戶接口類 |
|
《controller》RegisterServlet |
注冊的處理 |
|
User |
存放用戶的JavaBean類 |
|
RegisterFormBean |
封裝用戶注冊表單的實體類 |
6.2 管理業務數據
6.2.1 管理業務數據的系統順序圖
圖6.3 管理業務數據的系統順序圖
6.2.2 管理業務數據的類圖
圖6.4 管理業務數據的類圖
管理業務數據包含了查看業務數據.
類圖說明:
對用用例: |
管理業務數據 |
|
類名 |
說明 |
|
IYeWuDataDao |
存放訪問業務數據庫的操作接口實現類 |
|
《interface》IYeWuDataDao |
存放訪問業務數據庫的操作接口類 |
|
IYeWuService |
存放處理系統業務接口類 |
|
YeWuUIServlet |
存放為用戶提供業務處理界面的servlet |
|
YeWuServlet |
業務處理的servlet |
6.3 用戶登錄
6.3.1 用戶登錄的順序圖
圖6.5 用戶登錄順序圖
6.3.2用戶登錄的類圖
圖6.6 用戶登錄的類圖
類圖說明:
對用用例: |
用戶登錄 |
|
類名 |
說明 |
|
《entity》User |
用戶的基本信息表 |
|
UserDao |
存放訪問用戶數據庫的操作接口實現類 |
|
《interface》IUserDao |
存放訪問用戶數據庫的操作接口類 |
|
UserService |
存放處理用戶接口實現類 |
|
《interface》IUserService |
存放處理用戶接口類 |
|
《controller》loginServlet |
登錄處理的servlet |
|
《boundry》loginUIServlet |
存放為用戶提供用戶登錄界面的servlet |
6.4 職員修改注冊信息
6.4.1 職員修改注冊信息的順序圖
圖6.7 職員修改注冊信息順序圖
6.4.2 職員修改注冊信息的類圖
一個職工一次可以修改一個注冊信息,即自己的注冊信息。
圖6.8 職員修改注冊信息的類圖
類圖說明:
對應用例: |
用戶管理 |
|
類名 |
說明 |
|
User |
用戶的基本信息表 |
|
RegisterFormBean |
封裝用戶注冊表單的實體類 |
|
IUserDao |
存放訪問用戶數據庫的操作接口類 |
|
IUserService |
存放處理用戶接口類 |
|
RegisterUIServlet |
存放為用戶提供用戶注冊界面servlet |
|
xgRegisterServlet |
修改注冊處理的sevlet |
7.部署視圖
部署視圖描述了如何將具體軟件制品分配到計算節點 (具有處理服務的某種事物) 上,表示了軟件元素在物理架構上的部署,以及物理元素之間的通信。
7.1 部署視圖
辦公室日常信息管理系統的部署視圖:
圖7.1辦公室日常信息管理系統部署視圖
7.2 Generic PC
普通的個人計算機。
7.3 Web Browser
通用個人計算機上的網頁瀏覽器,如:IE6.0,Firefox等。
7.4 Apache
Web服務器,可以運行在所有廣泛使用的計算機平台上。
7.5 Struts
一個為開發基於模型-視圖-控制器模式的應用架構的開源框架,是利用Java Servlet和JSP構建Web應用的一項非常有用的技術。事件從客戶端(瀏覽器)由用戶操作出發的事件,Struts使用Action來接受瀏覽器表單提交的事件。
7.6 Tomcat 6.0
Tomcat 6.0提供Servlet容器。
7.7 Hibernate
Hibernate提供對象關系映射框架,對JDBC進行了非常輕量級的對象封裝,使得可以使用對象編程思維來操縱數據庫,完成數據持久化。
7.8 MySQL
MySQL是小型關系型數據庫管理系統,其體積小、速度快、總體擁有成本低,開放源碼數據庫。
8. 數據視圖
辦公室日常信息管理系統在關系數據庫中的組織。
圖8.1 辦公室日常信息管理系統的數據視圖
數據視圖說明:
kq表中用到了User表,是1:1的關系,即一個用戶對應一個考勤。wj表、hy 表、sw表、kq表之間沒有關聯,User表可以管理它們。
9. 規模和性能
9.1滿足的規模
能夠滿足50人同時登陸系統,20人同時進行有關數據庫的操作。
9.2 滿足的性能
能夠滿足讓職員可以認同的相應時間。
10. 質量
系統正式使用時,登錄、注冊、查看業務數據、管理業務數據的流程正常。
11.總結
此次軟件架構課程設計只要對我們學習的實用軟件工程這門學科的實踐和應用,軟件工程包括了市場調研、正式立項、需求分析、項目策划、概要設計、詳細設計、編程、測試、試運行、產品發布、用戶培訓、產品復制、實施、系統維護、版本升級等一系列的過程,每一個過程都應該有相應的文檔說明,文檔指揮程序,文檔的重要性不言而喻。我們此次所做的課程設計就是遵循“五個面向”的實踐論,面向流程進行需求分析,面向元數據進行概要設計,面向對象進行概要設計和編程實現,面向功能進行模塊測試、集成測試等,對軟件生命周期各個階段進行過程管理和過程改進。需求分析階段,主要畫出了系統的頂層用例圖和系統的總類圖,設計了系統的數據視圖,根據三層架構,將系統分為界面層、控制邏輯層和數據層,各層可以隨着需求或技術的變化而獨立的升級和維護,各層通過各自的接口來互相訪問,這樣可以減小程序員的壓力。用UML描述工具,描述軟件系統的圖形和語法,畫出系統主要的順序圖和類圖,對各個功能進行具體描述。在進行畫圖的過程中,我也遇到了一些問題,不會畫總類圖、順序圖,經過百度和查閱資料,看了一些例子,聽了老師的講解與指導,對圖進行完善,完成了此次課程設計,收獲還是挺大的。