十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍EA画UML图之如何实现关联类,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
示例:
有一个温度控制系统,通过传感器测量温度。传感器的输出是1v到5v,对应的温度为0到100摄氏度。
控制器每0.1秒获取一次温度值,然后根据实际温度和期望的温度的偏差来决定输出值,计算的周期为1秒,输出值的范围为0%到100%。这个输出值发送给一台加热器来控制温度。
加热器的控制端在输入1v时的输出功率为0KW,输入5v是输出功率为10KW。
这个系统应该如何建模呢?先来第一步,识别类和关联。
接下来将全部信息都反映到模型上。
不要被满篇的属性吓倒,耐心地,慢慢地读下去,你会理解的。
传感器Sensor
传感器Sensor的功能其实就是将现实世界中的0度(m_tempLow)到100度(m_tempHigh)的温度经过线性变换转换成1v(m_outputLow)到5v(m_outputHigh)的电压信号。
控制器Controller
控制器每0.1秒(m_sampleCycle)获取一次Sensor的电压输出,将这个电压值从范围[m_sensorOutoutLow,m_sensorOutputHigh]线性变换到[m_tempLow,m_tempHight]之间,然后由控制器根据实际温度的和期望温度之间的偏差来决定输出值,计算的周期为1秒(m_controlCycle),输出值的范围为0%(m_controllerOutoutLow)到100%(m_controllerOutoutHigh)。这个输出值再经过线性变换变成一个[m_heaterInputLow,m_heaterInputHigh]之间的值,发送给加热器来控制温度。
加热器Heater
加热器的控制端接受到1v(m_intputLow)到5v(m_intputHigh)之间的电压值以后经过线性变换转换成0KW(m_outoutLow)到10KW(m_outputHigh)之间的功率。
谢谢你坚持读到这里。回头来审视一下模型,有没有发现什么问题?
是的,Controller类太大,功能也太多了。
这个问题的解决方案就是本文的话题:关联类。当关联足够复杂,复杂到必须需要利用属性来描述细节,利用操作来定义动作的时候就该关联类出场了。
在本例中取得温度值(GetTemperature),输出(SetOutput)两个关联,要进行线性变换,各自需要四个属性(实际上还应该有操作),都可以定义为关联类。就像下面这样。
前面废了那么多口舌,到主角的时候反而简单了。
如果要总结的话,关联类的内容就是补充描述关联的那些信息。
以上是“EA画UML图之如何实现关联类”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!