淺談軟件開發(fā)過程中的方法問題-_第1頁
淺談軟件開發(fā)過程中的方法問題-_第2頁
淺談軟件開發(fā)過程中的方法問題-_第3頁
淺談軟件開發(fā)過程中的方法問題-_第4頁
淺談軟件開發(fā)過程中的方法問題-_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、淺談軟件開發(fā)過程中的方法問題摘要:先進(jìn)的制造模式要求信息集成和功能集成貫穿于產(chǎn)品生命周期的每一階段,功能的集成需要軟件系統(tǒng)的支持,從而推動先進(jìn)制造模式的實現(xiàn)。軟件開發(fā)過程是建造軟件解決方案的關(guān)鍵要素。本文詳細(xì)討論了兩類主要的過程開發(fā)方法,即面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法。關(guān)鍵詞:軟件開發(fā)過程;面向?qū)ο蠓椒?結(jié)構(gòu)化方法methodological issues in the process of software development xia xue(beijing elite creation technologyco.,ltd.,beijing100081,chinaabstract:advan

2、ced manufacturing model requires information integration and functional integration throughout the product life cycle at every stage of the functional integration needs the support of the software system,thus promoting the realization of advanced manufacturing mode.the software development process i

3、s a key element of construction software solutions.this paper discusses the two main types of process development methods,object-oriented methods and structured methods.keywords:software development process;object-orientedmethods;structured approach一、軟件系統(tǒng)的開發(fā)過程軟件可劃分為智能軟件、系統(tǒng)軟件和應(yīng)用軟件三個領(lǐng)域。由于不同的軟件采用的開發(fā)知識不

4、同,從而構(gòu)成各自相應(yīng)的方法。盡管,智能軟件和應(yīng)用軟件分屬不同的領(lǐng)域,但智能軟件和應(yīng)用軟件都是計算機軟件。建造軟件系統(tǒng)的解決方案由三個關(guān)鍵的相互關(guān)聯(lián)的基本要素組成:1.軟件工程過程(sep。2.軟件工程過程支持環(huán)境(sepse,如開發(fā)工具和建模語言等。3.培訓(xùn)、指導(dǎo)和咨詢服務(wù)。watts humphrey曾經(jīng)說過,“軟件工程過程就是將客戶需求轉(zhuǎn)化為軟件產(chǎn)品的所有必須活動的集合”。在整個解決方案中首當(dāng)其沖而且也是最重要的要素是過程。二、當(dāng)前主流的軟件開發(fā)方法(一結(jié)構(gòu)化方法1.結(jié)構(gòu)化程序設(shè)計方法20世紀(jì)60年代,圍繞是否應(yīng)取消goto語句,人們展開了一場激烈的爭論。最終人們認(rèn)識到,軟件開發(fā)中的問題的

5、解決不僅僅是簡單的取消goto語句,而是應(yīng)該改變傳統(tǒng)軟件開發(fā)思維觀念,在此基礎(chǔ)上創(chuàng)建新的程序設(shè)計方法。圍繞goto語句爭論的結(jié)果使人們形成了新的思維觀念:編寫程序時,在正確地實現(xiàn)了軟件功能的前提下,必須考慮到程序的可維護(hù)性,重視程序的可讀性、清晰性和可理解性,而不能隨心所欲地去過分追求程序編寫技巧。由于使用三種基本程序結(jié)構(gòu)(順序、選擇、循環(huán)組成的程序具有良好的可讀性、清晰性和可理解性,容易維護(hù),所以逐漸成為主流的程序結(jié)構(gòu)標(biāo)準(zhǔn)。按照這樣的新思維觀念,形成了一個新的程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法,結(jié)構(gòu)化程序設(shè)計是根據(jù)結(jié)構(gòu)程序設(shè)計原理,將每個模塊的功能用相應(yīng)的標(biāo)準(zhǔn)控制結(jié)構(gòu)表示出來,從而實現(xiàn)詳細(xì)設(shè)計。

6、2.結(jié)構(gòu)化分析方法和結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法的巨大成功推動了結(jié)構(gòu)化分析方法和結(jié)構(gòu)化設(shè)計方法的發(fā)展。1974年,stevens、myers和constantine發(fā)表文章structured analysis,提出了結(jié)構(gòu)化分析和結(jié)構(gòu)化設(shè)計的概念。結(jié)構(gòu)化分析方法根據(jù)分解與抽象的原則,按照系統(tǒng)中數(shù)據(jù)處理的流程,用數(shù)據(jù)流圖來建立系統(tǒng)的功能模塊,從而完成需求分析工作。結(jié)構(gòu)化設(shè)計方法使用模塊化和自頂向下逐步細(xì)化技術(shù),將數(shù)據(jù)流圖等結(jié)構(gòu)化分析的結(jié)果轉(zhuǎn)化為軟件系統(tǒng)總體結(jié)構(gòu),用軟件結(jié)構(gòu)圖來建立系統(tǒng)的物理模型,實現(xiàn)系統(tǒng)的概要設(shè)計。結(jié)構(gòu)化軟件開發(fā)方法成為20世紀(jì)70年代和80年代占主導(dǎo)地位的軟件開發(fā)方法,它有

7、效地遏制了軟件危機的蔓延,直到現(xiàn)在仍在發(fā)揮作用。結(jié)構(gòu)化方法簡單實用,技術(shù)成熟,應(yīng)用廣泛,但難以承擔(dān)大規(guī)模的項目或特別復(fù)雜的項目,難以解決軟件重用(復(fù)用問題,難于適應(yīng)需求變化,且軟件維護(hù)依然比較復(fù)雜。(二面向?qū)ο蠓椒嫦驅(qū)ο筌浖_發(fā)方法包括面向?qū)ο蠓治龇椒?object-oriented analysis,簡稱ooa、面向?qū)ο笤O(shè)計方法(object -oriented design,簡稱ood和面向?qū)ο蟪绦蛟O(shè)計(object-oriented pro -gramming,簡稱oop,其核心是面向?qū)ο蟪绦蛟O(shè)計方法。一般認(rèn)為軟件由程序和文檔組成,而程序又由數(shù)據(jù)結(jié)構(gòu)和算法組成,在傳統(tǒng)的程序設(shè)計方法中,

8、數(shù)據(jù)(數(shù)據(jù)結(jié)構(gòu)和施加在數(shù)據(jù)上的操作(算法被分離成兩個獨立的部分,而程序被看作是工作在數(shù)據(jù)上的一系列過程或函數(shù)的集合,然而客觀世界的實體既有靜態(tài)的屬性(即數(shù)據(jù),又有動態(tài)的行為(即對數(shù)據(jù)的操作,因此這兩方面內(nèi)容密切相關(guān),由于傳統(tǒng)的程序設(shè)計方法將這兩方面內(nèi)容分離,無形中加深了問題空間與解空間之間的裂痕,增加了軟件開發(fā)的難度。相反,面向?qū)ο蠓椒ㄓ邢铝幸c:客觀世界是由各種對象(object組成的,復(fù)雜對象可以由簡單對象組成。有共同屬性和方法的一組對象抽象為一個類(class。一個類(子類可以繼承另外一個類(父類的方法和屬性,這一特性稱為繼承。對象之間通過傳遞消息進(jìn)行通信。以上特點可以歸結(jié)為如下的公式:

9、object-ori-ented =object +classification +inheritance +commu-nication with messages。在面向?qū)ο蟪绦蛟O(shè)計方法中,數(shù)據(jù)和施加在數(shù)據(jù)上的操作被封裝在一起,形成類和對象的概念,用對象分解取代了傳統(tǒng)方法的功能分解。這一思維觀念創(chuàng)新使得問題空間與解空間的結(jié)構(gòu)基本一致,有利于軟件復(fù)用,也與人們通常認(rèn)識世界的思維方式相符,更利于加強代碼的易懂性。20世紀(jì)60年代末,kristen nygaard和ole-johan dahl在挪威計算中心開發(fā)出simula67語言,提出許多面向?qū)ο蟮母拍睢?972年,alankay引用simu

10、la語言中關(guān)于類和對象的概念,開發(fā)出第一種真正的面向?qū)ο笳Z言smaltalk。smalhalk語言的發(fā)布引起了人們的廣泛關(guān)注,隨后產(chǎn)生了數(shù)十種面向?qū)ο笳Z言,例如著名的c+和java。在面向?qū)ο蟪绦蛟O(shè)計方法基礎(chǔ)上,許多面向?qū)ο蠓治龊驮O(shè)計(ooa /ood方法被提出,比較著名的如wirfs -brock方法、booch 方法、coad/yourdon方法、對象建模技術(shù) omt(objectmodeling technique、面向?qū)ο筌浖こ蘯ose(object-oriented software engineering等。這些面向?qū)ο蠓治龊驮O(shè)計方法各有各的特點,為了吸收它們各自的優(yōu)點,形成統(tǒng)一

11、的面向?qū)ο蠓治龊驮O(shè)計方法,booch、jacobson 和 rambaugh 三人合作,于 20 世紀(jì) 90 年代后期提 出了統(tǒng)一建模語言 uml(unified modeling language) 。在 uml 基 礎(chǔ)上形成的面向?qū)ο筌浖_發(fā)方法開始得到廣泛的應(yīng)用,成為 20 世紀(jì) 90 年代直到目前占主導(dǎo)地位的軟件開發(fā)方法,面向?qū)ο蟪绦?設(shè)計方法這一思維觀念創(chuàng)新可以被稱為程序設(shè)計方法的第二次飛 躍。 然而,在面向?qū)ο蠓椒ㄖ?,軟件開發(fā)階段的劃分是比較模糊的, 通常要在分析、設(shè)計與實現(xiàn)等階段間進(jìn)行多次迭代。 (三)形式化方法 隨著科技的發(fā)展,計算機軟件越來越多地被用來執(zhí)行那些可能會 導(dǎo)致嚴(yán)重

12、后果甚至危及生命的任務(wù),例如宇宙飛船發(fā)射、鐵路安全 監(jiān)控和核反應(yīng)堆監(jiān)控等任務(wù),這些系統(tǒng)的軟件復(fù)雜性遠(yuǎn)遠(yuǎn)超過一般 軟件,如何在軟件復(fù)雜性增加的情況下仍能確保軟件執(zhí)行結(jié)果安全 可靠至關(guān)重要,達(dá)到這一目標(biāo)的一種途徑就是使用形式化方法。 軟件工程中的形式化方法就是依靠數(shù)學(xué)模型和計算來描述和驗證 一個目標(biāo)軟件系統(tǒng)的行為和特性,包括需求規(guī)格、設(shè)計和實現(xiàn)等, 形式化方法最根本的特征就是建立在嚴(yán)格的數(shù)學(xué)基礎(chǔ)上,如果一個 方法有良好的數(shù)學(xué)基礎(chǔ) (這個基礎(chǔ)提供一系列精確定義的概念, 如:一致性和完整性,以及定義規(guī)范的實現(xiàn)和正確性) ,那么它就 是形式化的,典型的以形式化規(guī)約語言給出。 形式化方法能很好地解決在軟件

13、開發(fā)中經(jīng)常出現(xiàn)的二義性問題, 因為形式化方法主要是符號系統(tǒng),這種符號系統(tǒng)具有一定的數(shù)學(xué)性 質(zhì)。 形式化方法也有其缺點,首先是規(guī)范所使用的數(shù)學(xué)工具與模型并 不能保證規(guī)范的絕對正確和安全性;其次是對于任何一種數(shù)學(xué)規(guī) 范,在其基本的數(shù)學(xué)意義下,針對不同的工程背景,并不是只有一 種解釋。當(dāng)然,這些不是二義性問題,而是不同領(lǐng)域?qū)σ?guī)范的解釋 和相容性問題。 三、結(jié)論 計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展及其在制造業(yè)中的應(yīng)用,產(chǎn)生許多新的 制造模式,如并行工程,敏捷制造和全球制造。這些新的模式對產(chǎn) 品進(jìn)行生命周期的設(shè)計和管理提出了進(jìn)一步的要求。結(jié)構(gòu)化方法和 面向?qū)ο蠓椒ㄊ乾F(xiàn)今主要的軟件開發(fā)過程方法。構(gòu)化方法貫徹自頂 向下逐步細(xì)化的“功能分解”思想,其基于功能分解的特點,使之 不足明顯。面向?qū)ο蠓椒▌t是從問題域中客觀存在的事物出發(fā)來構(gòu) 造系統(tǒng),用對象作為對這些事物的抽象表示,并以此作為系統(tǒng)的基 本構(gòu)成單位,面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法的相比有了更大的進(jìn)步。 參考文獻(xiàn): 1王健,程虎.系統(tǒng)軟件開發(fā)過程中的軟件工程技術(shù)j.計算機 研究與發(fā)展,1996,33(04:263-271 2ivar jacobson. the road to th

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論