<<軟體設計學習筆記>> (轉)

amyz發表於2007-08-15
<> (轉)[@more@]

 

<>

閱讀一篇關於軟體設計的文章,文章對軟體設計講述的非常全面,但對於細節都沒有展開討論,不過其中推薦了一些參考資料,看了這個文章後就能對軟體設計有一個比較全面
的瞭解,如果還需要在一些細節上深入就要找相關資料了。

************
文章的章節結構
************
** 軟體設計的基本概念
  *** 一般的設計概念
  *** 軟體設計內容
  *** 軟體設計過程
  *** 基本的軟體設計概念
  *** 軟體設計的關鍵點
** 軟體體系結構
  *** 體系結構和視點
  *** 結構化和模式(宏觀結構)
  *** 設計模式(微觀結構)
** 軟體設計的質量分析和評估
  *** 質量屬性
  *** 質量分析和評估工具
  *** 座標
** 軟體設計的標註
  *** 結構化描述(靜態視角)
  *** 動作化描述(動態視角)
** 軟體設計的策略和方法
  *** 一般方法
  *** 面向功能的方法
  *** 面向的方法
  *** 其他方法
** 軟體設計工具
  *** 數學工具
  *** CASE工具
  *** 座標工具??
** 與軟體設計相關的標準

****
要點
****
  *** OOD方法是目前的熱點,OOD和UML的聯絡,UML中的物件圖、序列圖、狀態圖、協作圖等等圖形

  *** 介面設計、實時設計、設計等等並非所有這些都屬於軟體設計

  *** 軟體設計的基本概念:解決問題、目標、、表示、解決方法
 
  *** 如何保證模組性,便於可維護性和易於更改?

  *** 併發的考慮:如何將系統分解為過程、程式和執行緒,並處理相應的原子級、同步和排程問題??

  *** 控制要素和處理事件:如何組織控制流程,如何解決互動和暫時的事件透過不同的機制,例如,明確的或呼叫棧等等??

  *** 分佈問題:軟體如何分佈在中?有什麼樣的作用?

  *** 處理錯誤和意外問題: 如何組織和容忍錯誤並處理意外情況?

  *** 互動的系統和對話方塊的獨立:如何從使用者介面同業務邏輯區分開來??使用者介面設計不在討論的範圍。

  *** 平臺獨立性: 如何確保軟體的平臺獨立性

**********
軟體結構分類
**********

  *** 一般的結構:例如層、管道等等、
 
  *** 分佈系統(客戶-服務、三層結構、等等)
 
  *** 互動系統(MVC,抽象控制)
 
  *** 適應性系統(微核心)
 
  *** 其他形式(批處理,直譯器,過程控制,基於規則)

***********
設計模式分類
***********
  *** 建立性模式:builder,factory,,singleton,等
  *** 結構化模式: adapter,bridge,composite,decorator,fa?ade,flyweight,等
  *** 動作化模式:command, interpreter,iterator,mediator,memento,observer,state,strategy,template,visitor等

*********************
軟體設計的質量分析和評估
*********************
質量屬性:不同的屬性對於獲取一個良好質量的設計是相當重要的,可維護性、可測試性等等
質量分析和評估工具:軟體設計複查、靜態分析、模擬和構造原型
標準:繼承樹的深度、每個類的重方法、結構複雜度


************
軟體設計的說明
************
結構化描述(靜態觀點) :圖形,描述結構化方面,類圖,子系統和包,過程(動態物件)或者物理(實施圖)
動作描述(動態觀點):活動圖、資料流圖、序列圖、狀態轉換圖和設計語言

*****************
軟體設計的策略和方法
*****************
一般方法
面向功能的設計方法:實體-關係圖、結構圖
物件導向的設計方法
資料結構中心設計方法
其他方法 

******************
與軟體設計相關的標準
******************
UML,Ada,PDL,

*********
相關知識
*********
科學
 *** 基礎:複雜度分析、離散數學、自動化、形式化規約
 *** 演算法和資料結構: 基本資料結構、資料資料型別、排序和查詢
 *** 體系結構: 和結構、介面和通訊
 *** 資訊管理: 資料庫建模、事務處理、資料
 *** 介面計算: 人機互動、多
 *** : 任務、過程和執行緒、過程協作和同步、系統、基礎、、保護、分散式系統。
 *** 基礎和技巧:程式碼生成、問題解決方法
 *** 網路中心計算: 分散式物件、企業級計算、網路級安全

數學
 *** 離散數學
 *** 機率
 *** 數學邏輯


 *** 專案整合管理
 *** 專案範圍管理
 *** 專案時間管理
 *** 專案成本管理
 *** 專案質量管理
 *** 專案風險管理

計算機工程
 *** 系統設計

系統工程
 *** 過程:動作分析、構造原型、規格

********
推薦資料
********
 *** 軟體實際結構
 軟體結構、質量屬性、結構風格、結構描述語言、產品線開發、案例分析
 *** 面向模式的軟體結構
 結構模式、設計模式、模式間的聯絡、軟體結構、方法、、基本的軟體設計概念:抽象、封裝、資訊、內聚
 *** 統一建模語言使用者指南
 *** 軟體工程
 軟體工程論文集
 *** 物件、元件和框架關於UML
 元件設計
 *** 軟體設計引路
 老書
 *** 可重用物件導向軟體的要素
 *** 物件分析和設計
 *** 軟體工程的整合方法
 *** 統一過程
 *** 物件導向軟體構造
 *** 計算機輔助軟體工程


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-959045/,如需轉載,請註明出處,否則將追究法律責任。

相關文章