<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 連載:面向對象葵花寶典:思想、技巧與實踐(21) - SSD 用例圖是用來描述系統的,而SSD(系統序列圖)又是來描述用例的,oh?my?god,這不是在玩我們么?![](https://box.kancloud.cn/2016-01-20_569f5cca18ca1.gif) System?Sequence?Diagram,縮寫為SSD(注意不要與SSD硬盤混淆),中文翻譯為“**系統順序圖**”,主要用于描述某個用例的某個分支場景下,外部參與者與系統的交互過程。簡單來說:SSD就是用例的可視化描述。 ? 細心的朋友可能會發現,前面我們在介紹“用例方法”的時候說不需要畫圖,這里又說SSD是用來描述用例的,這不是互相沖突了么? ? 事實上并不沖突,原因在于:用例方法分析需求的時候,確實不需要圖;但用例方法分析完成后得到的用例,我們可以使用SSD讓用例更直觀一些。 ? SSD有幾點需要特別注意: 1)SSD不是標準的UML圖形:UML只有順序圖、用例圖,但是沒有一個專門的“系統順序圖”;之所以叫做“系統”順序圖,是因為這個順序圖中只有兩類對象:系統、與系統交互的對象; 2)SSD是用來描述某個用例的某個分支,而不是描述系統的結構; 3)畫SSD的時候,整個系統被當做一個黑盒,不涉及系統的分解; 4)不需要為每個用例每個分支都畫一個SSD,挑出關鍵的用例和分支即可; ? 有的朋友可能會有疑問:如何知道哪些用例的哪些分支是關鍵的呢? ? 我的答案是:你認為是關鍵的你就畫,你認為不是關鍵的你就不畫;如果你認為所有的用例都很關鍵,那么所有的用例你都畫即可,只要你不怕麻煩或者工作量太大;如果你認為所有的用例都很簡單,那么一個都不畫也可以。至于你的判斷是否正確,主要靠經驗積累,當經驗不夠的時候,也可以求助有經驗的人。 ? 以POS機為例,假如我們認為POS機的正常處理流程是關鍵分支,則對應的SSD如下: ?![](https://box.kancloud.cn/2016-01-20_569f5cca29524.jpg) 仔細對照SSD和POS機的用例,我們會發現SSD和用例基本上是對應的,但并不完全對應,例如: ??用例中第1步是“顧客攜帶選擇好的商品到收銀臺”,但SSD中第1步是開始交易; ??用例中“顧客將錢交給收銀員”,但SSD中并沒有對應的步驟; ??用例中最后一步是“買單完成,顧客攜帶商品和小票離開”,但SSD中最后一步是“交易結束”; ? 為什么會出現這種不對應的情況呢? 主要原因在于:用例是整個業務的流程,而SSD是站在系統的角度來描述系統與外部對象的交互,這就需要我們在畫SSD的時候做一些技巧性的處理: ??刪除系統無關的業務步驟 例如上述的“顧客將錢交給收銀員”,這個步驟和POS機沒有關系,因此無需體現,再說了,就算你想體現,你也體現不了; ??將業務語言轉換為系統語言 例如用例中是描述“顧客攜帶選擇好的商品到收銀臺”,但對應系統來說,這就意味了“交易開始”;同樣,“買單完成,顧客攜帶商品和小票離開”意味著“交易結束”。 ? 有的朋友可能會認為,應該在用例分析的時候就應該詳細寫清楚。例如,“買單完成,顧客攜帶商品和小票離開,收銀員告訴POS機交易結束”。 這種想法本身沒錯,但問題在于,理想和現實總是有差距的,用例不可能那么完善,甚至有的時候用例可能都存在錯誤,如果我們自己沒有一定的分析和理解能力,完全依賴原始的用例,這樣做是不可能設計出優秀的系統的,甚至連合格的系統都可能做不到。 ? 綜合上面的分析,我們可以看到,SSD雖然來源于用例,但還需要在用例的基礎上稍微加工一下,使得SSD能夠更加聚焦于“系統”這個主角。 ? 最后小小吐槽一下:**用例圖是用來描述系統的,而SSD又是來描述用例的,oh?my?god,這不是在玩我們么?**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看