一转眼就大三了嗷!!!这突然而来的紧张感是怎么肥事捏?噢,下半年就要准备考研了喂ᕦ(・ㅂ・)ᕤ。趁着做这个软件的机会,再好好复习一下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