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

    时间显示软件实现源码

  • 相关阅读:
    this指针详解
    C++处理异常
    C++中的this指针
    c++中的string类
    c面试题总结
    c++中的引用详解
    c++中的new和delete
    函数重载
    BST(二叉排序树)的插入与删除
    ccf行车路线
  • 原文地址:https://www.cnblogs.com/miaowulj/p/12123076.html
Copyright © 2020-2023  润新知