时间显示软件SHOW_TIME的设计与实现
一轉眼就大三了嗷?。。∵@突然而來的緊張感是怎么肥事捏?噢,下半年就要準備考研了喂?(???)?。趁著做這個軟件的機會,再好好復習一下Java編程,順便融入一把剛學了一丟丟的設計模式,真是再舒服不過。(〃'▽'〃)
一.時間顯示軟件SHOW_TIME設計說明
基本功能:
★通過NTP協議讀取服務器時間,將時間轉換為 世界UTC時間、北斗時間、GPS時間、北京時間顯示;
★提供設置NTP服務器IP地址;
★下面配置表盤顯示圖形,指針可隨時間變化轉動;
★要求界面設計美觀、科技感強;下面這個時間顯示界面作為其中一幅;
二.時間顯示軟件SHOW_TIME開發過程
1.用戶需求
可以假定為用戶的最初想法可能是:用戶可以通過如下圖形用戶界面直觀的觀察到各類時間
用戶對時間顯示軟件的定義很簡單:可以通過該軟件獲取指定IP地址的時間服務器,然后通過圖形化界面動態展示出來
2.需求分析
2.1 業務規則
2.1.1 概念實體
●終端:給用戶顯示的載體,這里使用PC。
●鐘表盤:顯示在終端,供用戶直接觀察的鐘表盤,在此軟件設計中,需要4個鐘表盤,分別顯示GPS時間、北斗時間、北京時間和UTC時間。
●時間服務器:此軟件必須依賴于指定的時間服務器,時間服務器上運行著用戶需要的時間數據。用戶需要我們設計軟件從終端獲取時間服務器的時間數據。
●IP地址:IP地址是鏈接終端和時間服務器的"key",終端需要通過指定的IP地址,才能找到目標服務器,從而獲取準確的時間
2.1.2 業務流程
●時間獲取規則:終端通過用戶輸入的IP地址找到目標服務器,基于TCP協議,獲取時間。通過協議返回時間信息到終端。
●時間顯示規則:終端需要對返回的時間數據進行解析,然后通過指定的算法將時間轉化為各個類型的時鐘。時鐘表盤得到正確的各類時間數據,不僅要求在圖形界面中動態的刷新字符串顯示正確的時、分、秒,還需要畫出動態表盤。
●時間校正規則:由于系統的時鐘不一定準確,需要設置指定時間對時間進行校正
●時間存儲規則:用戶希望輸入IP地址后,下次運行軟件時,不再需要輸入IP地址,會自動顯示出來
●時間顯示模塊替換規則:用戶首先進入空工作模式輸入Ip地址,點擊進入后進入工作模式,根據時間畫出鐘表盤,動態刷新時間表盤。
2.1.3 屬性總結
基于2.1.2小結的分析,以下屬性需要重點考慮
| 名稱 | 說明 |
|---|---|
| IP地址 | 目標服務器的IP地址 |
| GPS時間 | 通過時間信息轉化的時間 |
| 北斗時間 | 通過時間信息轉化的時間 |
| 北京時間 | 通過時間信息轉化的時間 |
| UTC時間 | 通過時間信息轉化的時間 |
| 空工作模式 | 用來輸入IP地址的模式 |
| 工作模式 | 提供呈現給用戶的觀看界面的模式 |
2.1.4 指令集
要完成整個軟件設計需要使用到的指令集
| 編號 | 指令(中文) | 類別 |
|---|---|---|
| 1 | 空表盤模式 | showEmptyModule |
| 2 | 輸入IP地址 | IPConfig |
| 3 | 工作模式 | showWorkModule |
2.2 用例分析
| 用例名 | 輸入IP地址 |
|---|---|
| 級別 | 用戶目標 |
| 主要參與者 | 用戶 |
| 涉眾及關注點 | 用戶:希望能保存輸入的IP地址,下次自動顯示出來,并且希望有一個默認的IP可供選擇 |
| 前置條件 | 進行簡單操作來到空工作模式 |
| 主成功場景 | 1.用戶輸入正確IP地址 2.點擊確定,系統找到目標服務器 3.下次打開軟件,把本次輸入IP顯示出來 |
| 擴展 | …… |
| 主要參與者 | 系統 |
|---|---|
| 級別 | 系統目標 |
| 涉眾及關注點 | 系統:在規定時間內,能根據用戶輸入的IP地址找到目標服務器;返回服務器上的時間信息 |
| 前置條件 | 用戶輸入正確的目標服務器IP |
| 主成功場景 | 系統在規定時間得到目標服務器返回的時間信息;系統在規定時間沒有取回事件信息,報錯,提示錯誤信息 |
| 擴展 | …… |
| 用例名 | 轉換為四類時間信息 |
|---|---|
| 級別 | 系統目標 |
| 主要參與者 | 系統 |
| 涉眾及關注點 | 系統:將從服務器返回的事件信息正確解析,通過簡單算法得到四類時間 |
| 前置條件 | 系統得到目標服務器返回的時間信息 |
| 主成功場景 | 正確解析時間信息,成功轉換為GPS、北斗、北京、UTC時間 |
| 擴展 | …… |
| 用例名 | 以標簽形式顯示四類時間信息 |
|---|---|
| 級別 | 系統級 |
| 主要參與者 | 系統 |
| 涉眾及關注點 | 系統:以便簽形式每秒鐘刷新一次顯示時間,不出異常 |
| 前置條件 | 正確解析返回的時間信息 |
| 主成功場景 | 在圖形界面中,以便簽形式每秒鐘刷新一次 |
| 擴展 | …… |
| 用例名 | 以表盤形式顯示四類時間信息 |
|---|---|
| 級別 | 系統級 |
| 主要參與者 | 系統 |
| 涉眾及關注點 | 系統:以表盤形式每秒鐘刷新一次顯示時間,不出異常 |
| 前置條件 | 正確解析返回的時間信息 |
| 主成功場景 | 在圖形界面中,以表盤形式每秒鐘刷新一次 |
| 擴展 | 表盤中顯示小點,模擬真實表盤 |
2.3 非功能性需求
◆運行平臺:windows
◆輸入/輸出設備:鍵盤與電腦屏幕(分辨率1920*1080 縮放與布局100%)
2.4 面向對象分析
2.4.1 對象結構圖
2.4.2 對象順序圖
系統的時間獲取職責
動態刷新圖形界面職責
2.5 設計類圖
所遇到問題與解決方案
見博客https://www.cnblogs.com/miaowulj/p/12038421.html
時間顯示軟件實現源碼
總結
以上是生活随笔為你收集整理的时间显示软件SHOW_TIME的设计与实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入浅出多网卡绑定技术
- 下一篇: 企业中squid+iptables多模块