<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    迷途書童

    敏感、勤學、多思
    隨筆 - 77, 文章 - 4, 評論 - 86, 引用 - 0
    數據加載中……

    軟件架構設計(二)——軟件架構設計過程

    三、架構設計的過程

    本人經歷過不少項目,一些項目的架構設計負責人能力很強,接到活之后,馬上一頭扎進設計,抽象出一堆玄玄乎乎的概念,講得人暈頭轉向的,讓人覺得高深莫測,但是,在會議上卻被涉眾提的一些簡單的問題問得很倉促,究其根本,還是漏考慮了涉眾的需求,被人提問而又缺乏準備,是不是很多人有類似的經驗?:)

    我們還經常遇到的場景是設計人員通常為一些模型、概念爭論不休,公說公的英俊,婆說婆的漂亮,其實模型概念這東西就像人的人生觀和世界觀,是人對世界和人生的主觀認識,可能隨著年齡階段的變化而變化,而且有時候沒有絕對的對與錯,就像有些人喜歡金戈鐵馬,有些人喜歡與世無爭,我們很難說誰一定是對的一定是錯的!遇到這種清醒時,我建議停下爭論,爭論方各自拿出實際的業務場景來檢驗模型,哪個模型對場景的滿足度更好,實現成本更低則更好,如果兩個都挑不出刺兒,隨便選一個即可。

    還有一些架構設計人員喜歡創造一些與眾不同的概念,讓人看上去顯得高深莫測。我覺得如果一個架構師能夠用最少的語言、文字把問題和方案講清楚,那才是真正的有水平!你讓人暈頭轉向的時間既是項目的成本,因此,我們創造概念詞匯的時候,需要從涉眾的角度出發,我這里的意思不是盲從涉眾語言詞匯,而是說出發點從涉眾角度出發,如果涉眾原本使用的語言不夠準確,我們可以跟他們一起探討,定義更合適的概念詞匯。

    還有一個就是對軟件競爭力的認識。有人通過包裝一堆玄玄乎乎的概念來顯得很高深莫測,試圖通過這種方式讓人覺得有競爭力,我認為,競爭力首先是要跟對手比,其次一定是涉眾能感知的,能夠涉眾帶來正向價值的,比如省多少成本,端到端業務流程節約多少時間。

    我認為遵循一個科學的架構設計過程跟上篇提到的軟件架構4+1視圖法是架構設計的兩個法寶,一個指導思維、定義輸出,另一個指導如何來做,相輔相成,確保架構設計人員全面而正確的理解需求,做好需求平衡、設計平衡,設計出實用的、能落地的架構。

    下面我會按順序講解架構設計的過程,以及每個步驟具體要做的事情。

    3.1 確定涉眾

          一般來講,涉眾包括客戶(資方)、承接方(勞方)、用戶。我們通常找到代表某一類型的涉眾群體的代表人:客戶代表、勞方代表、用戶代表等。訪談的時候直接找代表進行。

    3.2 確定系統邊界

          對于要明確實現某種標準的軟件系統,通常確定邊界非常容易,直接按標準圈定的scope分析即可,比如像SIPServlet容器,是要求遵從JSR168規范的,那么軟件系統的Scope就是JSR168規定的Scope,但是也有例外,比如客戶或者勞方明確指定要復用一個現有的實現了部分功能的系統或組件,那么Scope就不同了。對于沒有標準的軟件系統,就需要分別訪談客戶代表、承接方代表確定系統邊界。為什么要訪談承接方代表呢?因為承接方代表往往是勞方領導,領導肩負企業戰略達成的使命,很有可能對系統提出比客戶更多的要求。舉個例子,某客戶需要一個SIP通信協議棧,以實現三方通話的業務,但是勞方領導認為,后續ICT融合是趨勢,我們構建的系統要支持ICT融合應用部署和運行,支持業務標準JSR168規范。

    3.3 軟件需求收集

          軟件需求可分為二類:

          功能需求(即業務用例):描述Actor(用戶或系統)可基于軟件系統做什么事,要符合什么業務規則;

          非功能性需求又可分為兩類:

          質量屬性:質量屬性指軟件系統的品質,可分為運行期質量屬性與開發期質量屬性。

            運行期質量屬性包括

          (1)性能:性能是指軟件系統及時提供相應服務的能力。具體而言,性能包括速度、吞吐量和持續高速性這三方面的要求。
      (2)安全性:指軟件系統同時兼顧向合法用戶提供服務,又阻止非授權使用功能的能力。
     ?。?)易用性:指軟件系統易于使用的程度。
      (4)可用性:可用性與易用性不相同??捎眯灾赶到y長時間無故障運行的能力。
      (5)可伸縮性:指當用戶增加時,軟件系統維持高服務質量的能力。
     ?。?)互操作性:指本軟件系統與其他系統交換數據和相互調用服務的難易程度。
      (7)可靠性:軟件系統在一定時間內無故障運行的能力。
     ?。?)健壯性:也稱容錯性。是指軟件系統在異常情況仍能夠正常運行的能力。

           開發期質量屬性包括:

       (1)易理解性:是指系統設計能被開發人員理解的難易程度。
     ?。?)可擴展性:為適應新需求或者需求變化,為軟件增加功能的能力。有些時候,稱之為靈活性。
     ?。?)可重用性:重用軟件系統或其中一部分的能力的難易程度。
      (4)可測試性:對軟件測試以證明其滿足需求規約的難易程度。在實際的項目中,主要指進行單元測試等難易程度。
     ?。?)可維護性:修改Bug,增加功能,提高質量屬性。
      (6)可移植性:將軟件系統從一個運行環境轉移到另一個不同的運行環境的難易程度。

          約束:規定開發軟件系統時必須遵循的限制條件,如要基于什么操作系統,要基于什么開發語言等等。

          對于功能需求,可找系統的直接使用用戶代表,對其進行訪談,收集其要基于系統做的事情,可按照標準的用例模板,在訪談的過程中引導用戶代表。之后,繪制業務用例視圖,并針對每個業務用例,使用標準的用例模板將功能需求編檔,通常叫用例規約。

          對于非功能性需求,可找軟件系統的涉眾,依據下面的模板,引導涉眾,收集其對相應質量屬性的要求:

    image image image

    總結:本階段需要輸出業務用例視圖,業務用例規約,非功能性需求。

    待續。。。

    posted on 2012-07-04 22:28 迷途書童 閱讀(1374) 評論(0)  編輯  收藏 所屬分類: 隨感系統設計

    主站蜘蛛池模板: 国产精品亚洲mnbav网站| 国产在线观看免费视频播放器| 中国人免费观看高清在线观看二区| 一区在线免费观看| 久久免费香蕉视频| 国产高清免费视频| 在线免费一区二区| 亚洲成AV人网址| 亚洲高清日韩精品第一区| 麻豆狠色伊人亚洲综合网站| 99亚洲乱人伦aⅴ精品| 香蕉免费一级视频在线观看| 亚洲欧洲国产成人综合在线观看 | 最近免费mv在线观看动漫| 日本中文字幕免费高清视频| 成人奭片免费观看| 国产成人亚洲综合无码| 中文字幕永久免费视频| 亚洲一级特黄大片在线观看| 成人片黄网站色大片免费观看cn| 久久精品国产精品亚洲人人| 亚洲人成7777| 国产男女性潮高清免费网站 | 亚洲人成人伊人成综合网无码| 一本大道一卡二大卡三卡免费| 国产日韩成人亚洲丁香婷婷| 91免费在线视频| 国产免费久久精品| 亚洲人成在线精品| 中文成人久久久久影院免费观看| 亚洲av伊人久久综合密臀性色| 亚洲AV无码国产一区二区三区| aⅴ在线免费观看| 亚洲日本一区二区三区在线 | 深夜福利在线视频免费| 色婷婷7777免费视频在线观看| 亚洲国产精品va在线播放| 中文字幕免费视频精品一| 久久精品国产亚洲av水果派| 日韩精品无码免费专区午夜不卡 | 欧洲亚洲综合一区二区三区|