軟件系統分析與設計 | 分析、設計的理解及UML使用

分析、設計的理解

  • 分析是對軟件進行需求分析(明確所要做的內容),技術可行性分析(實現軟件的可行性),風險評估分析(可能面臨的問題),強調對軟件的認識與研究。
  • 設計是設計軟件系統的整體結構、劃分功能模塊、確定每個模塊的實現算法以及編寫具體的代碼,形成軟件的具體設計方案,強調的是軟件的具體實現。

面向對象的分析與設計的優勢

以人類對世界的認識爲原型,將程序的執行者抽象爲一個個實體(對象),簡化設計複雜度,便於多人協作共同開發,同時,封裝、繼承、多態等特性豐富編程技巧,易於實現複雜的功能。

UML(統一建模語言)的作用

UML(Unified Modeling Language,統一建模語言) 是一組用於描述OOAD過程的圖形化表達方式。

  1. UML作爲草圖:非正式、不完整的圖,藉助可視化語言的功能,可以用於探討問題或解決方案空間的複雜部分。
  2. UML作爲藍圖:相對詳細的設計圖,用於逆向工程中對現有代碼可視化或者是前向工程中的代碼生成
  3. UML作爲編程語言:完成軟件系統可執行規格的說明。

其具體的種類有:

  • 用例圖:用戶角度:功能、執行者
  • 靜態圖:系統靜態結構
    • 類圖:概念及關係
    • 對象圖:某種狀態或時間段內, 系統中活躍的對象極其關係
    • 包圖:描述系統的分解結構
  • 行爲圖:系統的動態行爲
    • 交互圖:描述對象間的消息傳遞
      • 順序圖:強調對象間消息發送的時序
      • 合作圖:強調對象間的動態協作關係
    • 狀態圖:對象的動態行爲。狀態-事件-狀態遷移-相應動作
    • 活動圖:描述系統爲完成功能而執行的操作序列
  • 實現圖:描述系統的組成和分佈狀況
    • 構件圖:組成部件及其關係
    • 部署圖:物理體系結構及軟件單元的對應關係

軟件範圍(需求)控制的可行性

項目的首要約束是 scope(範圍), time(工期), quality(質量)budget(預算) 四個基本元素,也稱爲項目管理三角模型。在實際軟件項目中,即使在有明確的軟件開發合同條件下,這四個約束並不是不可商量的。原因在於軟件生產是易變、不可見、獨特的智力生產!另一方面,軟件的本質特徵(complexity(複雜性)conformity(一致性)changeability(可變性)invisibility(不可視性))導致軟件開發的較爲困難,並且由於客戶需求往往不夠明確,導致開發軟件範圍的不可控更加嚴重。
但是,在軟件項目中應該使用2/8 法則,細化 20% 有效需求,可滿足 80% 客戶需要,所以,我們應該將80%的工程量用在20%的需求上,剛開始我們只需剔除客戶都不明確的需求,着手於最爲重要的需求任務上,之後在不斷地用戶反饋和迭代中完善軟件。

看板管理

團隊看板如下:
在這裏插入圖片描述

UML繪圖工具使用

例圖選自《UML和模式應用》Page 7:圖1-5
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章