張 瑋
(貴州輕工職業技術學院,貴州 貴陽 550025)
軟件工程中結構化方法與面向對象方法的比較研究
張 瑋
(貴州輕工職業技術學院,貴州 貴陽 550025)
文章主要對軟件工程中結構化方法與面向對象方法進行分別闡述,并將二者加以比較,相較而言,結構化方法在延展性與重用性方面較差,但運行效率較高;面向對象方法在延展性與重用性方面較好,但運行效率較低。
軟件工程;結構化方法;面向對象方法
計算機技術的發展離不開軟件工程的不斷進步,現階段,軟件工程已經逐漸成為信息社會下的核心競爭力之一,隨著技術發展與理念進步,軟件開發方法也在不斷革新,而結構化方法與面向對象方法為兩種最為重要開發方法。
軟件工程中,結構化方法是較為經典的設計與開發方式之一,是沿用了系統性的科學方式,以自上而下層次劃分的方式來對系統進行分析與設計。結構化方法設計分析、設計與程序設計3個環節,其中,結構化分析與結構化設計相對較為抽象,結構化程序設計內容相對具象,屬學科設計領域。結構化方法通常包括兩種類型:(1)基于尤頓設計方法學的結構化設計的面向過程的設計方法;(2)以結構化數據系統開發方法為代表的面向數據結構的設計方法。
結構化方法在軟件工程中的應用理念,是將需要處理的問題看作一個整體性的問題,以系統化和科學化的方式來對問題加以分析并解決,通常需要遵循抽象化原則、分解性原則與模塊化原則。結構化方法在軟件工程中應用的核心問題與核心技術在于模型的構建問題,其本質目的是出于進一步理解現實世界的需要,模型的構建通常首先進行系統需求分析,運用結構化方法,以結構化分析方式來對系統與環境進行分析,并構建系統模型;以結構化設計方法對系統活動與功能模型進行確定;以結構化程序設計方法來確定系統環境模型,并在其基礎上對系統行為與功能模型加以明確,合理描述系統的內部行為。通常所需要采用構建系統活動與功能模型的開發工具包括數據字典、數據流圖、狀態圖與實體模型等[1]。
(1)數據字典工具即包括全部系統數據元素定義的數據集,在定義數據元素時必須保證其精準性與真實性,通常而言,一個數據字典工具需要包括的內容有:名稱、學名、使用方法、內容簡述、其他信息。(2)數據流圖是在運用結構化分析與結構化設計方法時的基礎與核心,以面向處理過程作為系統描述的主要思想,對信息與數據從錄入到輸出應用圖形變換的全部過程加以描述,對系統的邊界進行模擬,并展示系統內外部信號接口,展示數據錄入、輸出與存儲的過程。(3)狀態圖是對對象變遷進行實時描述的狀態,注重對于系統時間的依賴。狀態圖在某些方面與數據流圖較為相似,但實際上二者有著相當大的差異,數據流圖更加注重對于數據流及數據轉換的描述,狀態圖則更加注重狀態的變化,例如,對操作的起始狀態與結束狀態的描述。通常狀態圖中會產生一個與輸入數據流相互對應的條件,這個條件同時會與控制流相對應。(4)實體模型其實是用以模擬系統中各環節之間相互關系的一種模型,與當前的系統及程序設計語言相互獨立。
面向對象方法是基于面向對象理念為核心進而展開軟件工程設計與開發方法的整合,這種設計與開發方法的核心就是對象,對于現實世界進行抽象化構造,并開發與之相應的軟件工程。面向對象方法的本源是面向對象程序,涉及了許多相關理念,受到這一語言的影響,隨后不斷涌現更加創新、更加實用的面向對象程序設計語言,面向對象方法得以快速發展[2]。
面向對象方法的基本理論是基于分類學中所闡述的人類認知世界的3種普遍方式而發展出來的,這3種普遍方式在于:(1)對對象特征與屬性加以區分的方式;(2)對對象的整體與局部加以區分的方式;(3)對對象和類加以區分或整合的方式。面向對象方法的基本原理正是基于以上3種認知理念而構建的,在現實應用過程中,通常采用以上的3種理念對系統進行分解、整合、分析與設計,符合理論來源于實踐,實踐反哺理論的探索方法。
2.3.1 面向對象分析模型
面向對象分析方法,更加關注現實模型的構建問題,依據系統科學的相關理論,對系統進行拆解與分層,一直以來,基于面向對象分析方法而產生的分層方法數量較多,且各有其獨特性,例如,彼得·科特與愛德華·尤頓的分層方法,是將面向對象分析模型進行拆解,將之劃分為主題、對象、結構、屬性與服務5個層次,面向對象分析方法的主要目標是就這5個層次的內容進行模型的構建。對這5個層次進行闡述:(1)主題層面,是基于面向對象分析模型中的不同情況,向用戶提供交流渠道的一種機制,能夠提高人們理解系統模型的能力。(2)對象層面,將對象看作屬性的一個封裝集合,是對出于問題域中的客觀事物加以抽象描述的一種方法,對象是類的集合產生的,類是對對象的描述方式,都能夠通過屬性與服務加以闡述。(3)結構層面,面向對象方法中,結構整合與結構分解是非常重要的類型,分別對“整體性與局部性”的關系及“一般性與特殊性”的關系進行描述,就結構整合而言,是基于人類認知世界的普遍方法之一—對整體與局部的區分方法而發展出來的;就結構分解而言,是基于人類認知世界的普遍方法之一—對對象和類加以區分的方式而發展出來的。(4)屬性層面,是對對象和類中數據單元進行描述的一層,其中的每一個對象都有獨立的屬性,這些屬性是用以描述狀態的數據。(5)服務層面,每一個服務都是得到一條指令之后執行命令的一種操作機制,是對現實世界抽象化模擬的一種方式。
2.3.2 面向對象設計模型
面向對象分析模型與面向對象設計模型之間無需考慮相互轉換的問題,面向對象設計模型依據現實情況下的設計需求,對面向對象分析模型所建立的5個層次進行必要調整,能夠實現人機交互、任務與數據管理等層面的內容抽象化,能夠保證面向對象設計模型的完整性。
2.3.3 面向對象分析模型與面向對象設計模型的實現
運用面向對象程序設計語言來構建面向對象分析模型與面向對象設計模型,相對來說較為簡單,這是由于面向對象程序設計兩種模型之間的構造相類,同樣能夠支持對象、類與繼承等相關概念,運用面向對象方法需要格外注意結構問題。面向對象方法的相關概念能夠在語言結構中加以呈現,更多的是表現方式而非表現能力的問題,而由于軟件工程的開發需要將程序語言進行數據語言的轉換,因而使用面向對象程序設計語言會產生更好的效果[3]。
綜上所述,將結構化方法與面向對象方法進行比較(見表1)。
實例:以程序設計語言來對網上書城銷售業績加以表現(模擬代碼呈現)。
描述1:結構化方法《狼圖騰》數量=5
《月亮與六便士》數量=6
《新教倫理與資本主義精神》數量=4
《藝術與現實的審美關系》數量=7
……
//銷售程序段
《狼圖騰》數量=《狼圖騰》數量-1//售出1本《狼圖騰》
《藝術與現實的審美關系》數量=《藝術與現實的審美關系》-2//售出2本《藝術與現實的審美關系》
……
//采購程序段
《月亮與六便士》數量=《月亮與六便士》數量+3//采購3本《月亮與六便士》
運用Microsoft Excel統計處理數據、計算平均值和標準差,結合SPSS 21.0軟件,采用單因素方差分析(One-way ANOVA)的Duncan多重比較法,分別對不同時間對照和增溫處理下美國薄荷的各項生理指標進行分析,比較不同時間各指標的處理組與對照組之間差異顯著性。數據在進行方差分析前,均進行了方差齊性檢驗。運用Oringin 9.1軟件繪圖。
《新教倫理與資本主義精神》數量=《新教倫理與資本主義精神》數量+2//采購2本《新教倫理與資本主義精神》
……
基于以上設計語言可以看出:(1)對變量及初始值加以定義;(2)依據時間順序進行相應處理。
描述2:面向對象方法
網上書城{
《狼圖騰》數量;
《新教倫理與資本主義精神》數量;
《藝術與現實的審美關系》數量;
售出(書名,數量){
書名=書名-數量;
}
采購(書名,數量){
書名=書名+數量;
}
}
面向對象方法的基本理念在于,對問題加以分解,模仿人類思維方式構建問題模型,對結構與行為進行模擬,盡量保證軟件工程更加趨近于現實世界[4]。

表1 結構化方法與面向對象方法之間的比較
考慮到軟件工程的開發應該在滿足用于需求的基礎上實現成本的最小化,綜合考量兩種方法,建議在實際的軟件開發工作中,針對用戶的實際需求來選用不同的設計方式,以充分發揮結構化方法與面向對象方法的不同優勢,或可將二者加以有機結合,互相彌補兩種方法的短板,以實現軟件開發的優化。
[1]周民,王秀麗.結構化方法與面向對象方法結合方案的探討[J].科技創新導報,2012(20):42-43,45.
[2]汪寒昊,謝加勝,邢躍.軟件開發方法—結構化方法與面向對象方法比較[J].科技信息,2011(13):77-78.
[3]藺茹.軟件工程中面向對象方法的優勢分析[J].電子技術與軟件工程,2014(24):54-55.
[4]曹昊,許玲,謝贊福,等.結構化較面向對象方法優勢應用域的研究[J].微計算機信息,2010(21):194-196.
Research on the comparison of structured method and object-oriented method in software engineering
Zhang Wei
(Guizhou Light Industry Technical College, Guiyang 550025, China)
This paper mainly describes structured method and object-oriented method in software engineering, the two are compared, in contrast, the structured method is poor in scalability and structured method of reuse, but high efficiency; object oriented method is better in scalability and reusability, but low operation efficiency.
software engineering; structured method; object-oriented method
張瑋(1981— ),女,貴州銅仁人,講師,學士;研究方向:計算機科學與技術。