时间显示软件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

时间显示软件实现源码

猜你喜欢

转载自www.cnblogs.com/miaowulj/p/12123076.html