您好,登錄后才能下訂單哦!
這篇文章主要介紹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圖之如何實現關聯類”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。