最近正在猛看軟件工程,發現這門學科真的很有用,尤其是對于企業級別的軟件的開發作用巨大。下面我就寫一些關于軟件工程方面的東西,就當作總結一下所學的內容吧。
我想這個問題應該從軟件危機開始講起吧,軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重的問題。具體來說:
l????????
對軟件開發成本和進度的估計常常很不準確。
l????????
用戶對“已完成的”軟件系統不滿意的現象經常發生。
l????????
軟件產品的質量往往靠不住。
l????????
軟件常常是不可維護的。
l????????
軟件通常沒有適當的文檔資料。
l????????
軟件成本在計算機系統總成本中所占的比例逐年上升。
l????????
軟件開發生產率提高的速度,既跟不上硬件的發展速度,也遠遠跟不上計算機應用迅速普及深入的趨勢。
而軟件工程這門學科的出現也是為了從宏觀的角度來觀察軟件,解決危機。軟件工程師把系統化的、規范的、可度量的途徑應用于軟件開發、運行和維護的過程,也就是把工程化應用于軟件中;研究中提到的途徑。
軟件工程的過程可以用軟件生命周期來表示,生命周期的具體內容為:問題定義、可行性研究、需求分析、概要設計、詳細設計、編碼和單元測試、綜合測試、軟件維護。生命周期模型又分為以下幾種:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型。
E-R
圖、數據流圖、狀態轉換圖是結構化分析中的重點圖。
E-R
圖中包含了實體、關系和屬性等三種基本成分。通常用矩形框代表實體,用連接相關實體的菱形框表示關系、用橢圓形或圓角矩形表示實體的屬性,并用無向邊把實體與其屬性連接起來。數據流圖有四種基本符號:正方形表示數據的源點或終點;圓角矩形代表變換數據的處理;開口矩形代表數據存儲;箭頭表示數據流,即特定數據的流動方向。在狀態圖中,初態用實心圖表示,終態有一對同心圓表示。中間狀態用圓角矩形表示,可以用兩條水平橫線把它分成上、中、下
3
個部分。上面部分為狀態的名稱,這部分是必須有的;中間部分為狀態變量的名字和值,這部分時可選的;下面部分是活動表,這部分也是可選。
數據字典是所有與系統相關的數據元素的有組織的列表,并且包含了對這些數據元素的精確、嚴格的定義,從而使得用戶和系統分析員雙方對輸入、輸出、存儲的成分甚至中間計算有結果有共同的理解。簡而言之,數據字典是描述數據的信息的集合,是對系統中使用的所有數據元素的定義的集合。大多數數據字典都包含以下信息:名字、別名、使用地點與方式、內容描述、補充信息。
說完了結構化分析,該說說結構化設計了。其中模塊是很重要的概念。模塊是由邊界元素限定的相鄰的程序元素的序列,而且有一個總體標識符來代表它。有五條標準來評價一種設計方法定義有效的模塊系統的能力:模塊可分解性、模塊可組裝性、模塊可理解性、模塊連續性、模塊保護性。有效的模塊化的軟件比較容易開發出來。這是由于能夠分割功能而且接口可以簡化,當許多人分工合作開發同一個軟件時,這個優點尤其重要。獨立的模塊比較容易測試和維護。這是因為相對說來。修改設計和程序需要的工作量比較小,錯誤傳播范圍小,需要擴充功能時能夠“插入”模塊。模塊的獨立程度可以由兩個定性標準來度量,這兩個標準分別成為內聚和耦合。耦合衡量不同模塊彼此間互相依賴的緊密程度;內聚衡量一個模塊內部各個元素彼此結合的緊密程度。最好能做到松耦合、高內聚。
表示軟件結構的圖形工具有層次圖、
HIPO
圖和結構圖,通常使用層次圖描繪軟件的層次結構。在層次圖中一個矩形框代表一個模塊,框間的連線表示調用關系。在自頂向下逐步求精設計軟件的過程中,使用層次圖很方便。
HIPO
圖是美國
IBM
公司發明的“層次圖加輸入
/
處理
/
輸出圖”的英文縮寫。為了使
HIPO
圖具有可追蹤性,在層次圖里除了頂層的方框之外,每個方框都加了編號。結構圖和層次圖類似,也是描述軟件結構的圖形工具,圖中一個方框代表一個模塊,框內注明模塊的名字或主要功能;方框之間的箭頭(或直線)表示模塊的調用關系。因為按照慣例總是圖中位于上方的方框代表的模塊調用下方的模塊,即使不用箭頭也不會產生二義性,為了簡單起見,可以只用直線而不用箭頭表示模塊間的調用關系。
之后應該是過程設計了。過程設計的工具有:程序流程圖、盒圖(
N_S
圖)、
PAD
圖、判定表、判定樹、過程設計語言(
PDL
)。程序流程圖又成為程序框圖,它是歷史最悠久的使用最廣泛的描述過程設計的方法,然而它也是用得最混亂的一種方法。盒圖有下述特點:
l????????
功能域明確,可以從盒圖上一眼就看出來。
l????????
不可能任意轉移控制。
l????????
很容易確定局部和全程數據的作用域。
l????????
很容易表現嵌套關系,也可以表示模塊層次結構。
PAD
圖是問題分析圖的英文縮寫,自
1973
年由日本日立公司發明以后,已得到一定程度的推廣。判定表能清晰地表示復雜的條件組合與應做的動作之間的對應關系。一張判定表由四部分組成,左上部列出所有條件,左下部是所有可能作的動作,右上部是表示各種條件組合的一個矩陣,右下部是和每種條件組合相對應的動作。判定表右半部的每一列實質上是一條規則,規定了與特定的條件組合相對應的動作。(未完待續)