1.結構化方法:分析,設計,程序設計構成,面向數(shù)據(jù)流的開發(fā)方法,分解和抽象的原則,數(shù)據(jù)流圖建立功能模型,完成需求分析工作。
2.Jackson方法:面向數(shù)據(jù)結構開發(fā)方法。數(shù)據(jù)結構為驅動,適合小規(guī)模的項目,當輸入數(shù)據(jù)結構和輸出結構之間沒有對應關系,難用此方法,JSD(Jackson Structure Prograamming)是JSP(JacksonSystem Development)的擴充
3.原型化方法:和演化模型相對應,需求不清,業(yè)務理論不確定,需求經(jīng)常變化,規(guī)模不大去不太復雜時采用。
4.面向對象開發(fā)方法:分析,設計,實現(xiàn),Booch,Coad,OMT,為統(tǒng)一各種面向對象方法的術語,概念和模型,推出UML (Unified Modeling Language)統(tǒng)一化建模語言,成為工業(yè)標準。
軟件開發(fā)是一項包括計劃、分析、設計、編碼和測試、維護系統(tǒng)工程。
一、計劃
對所要解決的問題進行總體定義,包括了解用戶的要求及現(xiàn)實環(huán)境,從技術、經(jīng)濟和社會因素等3個方面研究并論證本軟件項目的可行性,編寫可行性研究報告,探討解決問題的方案,并對可供使用的資源(如計算機硬件、系統(tǒng)軟件、人力等)成本,可取得的效益和開發(fā)進度作出估計,制訂完成開發(fā)任務的實施計劃。
二、分析
軟件需求分析就是對開發(fā)什么樣的軟件的一個系統(tǒng)的分析與設想。它是一個對用戶的需求進行去粗取精、去偽存真、正確理解,然后把它用軟件工程開發(fā)語言(形式功能規(guī)約,即需求規(guī)格說明書)表達出來的過程。
三、設計
軟件設計可以分為概要設計和詳細設計兩個階段。實際上軟件設計的主要任務就是將軟件分解成模塊是指能實現(xiàn)某個功能的數(shù)據(jù)和程序說明、可執(zhí)行程序的程序單元。可以是一個函數(shù)、過程、子程序、一段帶有程序說明的獨立的程序和數(shù)據(jù),也可以是可組合、可分解和可更換的功能單元。
四、編碼
軟件編碼是指把軟件設計轉換成計算機可以接受的程序,即寫成以某一程序設計語言表示的“源程序清單”。充分了解軟件開發(fā)語言、工具的特性和編程風格,有助于開發(fā)工具的選擇以及保證軟件產(chǎn)品的開發(fā)質量。
五、測試
軟件測試的目的是以較小的代價發(fā)現(xiàn)盡可能多的錯誤。要實現(xiàn)這個目標的關鍵在于設計一套出色的測試用例(測試數(shù)據(jù)與功能和預期的輸出結果組成了測試用例)。
六、維護
維護是指在已完成對軟件的研制(分析、設計、編碼和測試)工作并交付使用以后,對軟件產(chǎn)品所進行的一些軟件工程的活動。即根據(jù)軟件運行的情況,對軟件進行適當修改,以適應新的要求,以及糾正運行中發(fā)現(xiàn)的錯誤。編寫軟件問題報告、軟件修改報告。
擴展資料:
軟件開發(fā)是根據(jù)用戶要求建造出軟件系統(tǒng)或者系統(tǒng)中的軟件部分的過程。軟件開發(fā)是一項包括需求捕捉、需求分析、設計、實現(xiàn)和測試的系統(tǒng)工程。軟件一般是用某種程序設計語言來實現(xiàn)的。通常采用軟件開發(fā)工具可以進行開發(fā)。
軟件分為系統(tǒng)軟件和應用軟件,并不只是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟件的一部分。
參考資料來源:百度百科-軟件開發(fā)
軟件開發(fā)一般分為五個階段:
1.問題的定義及規(guī)劃
此階段是軟件開發(fā)與需求放共同討論,主要確定軟件的開發(fā)目標及其可行性。
2.需求分析
在確定軟件開發(fā)可行性的情況下,對軟件需要實現(xiàn)的各個功能進行詳細需求分析。需求分析階段是一個很重要的階段,這一階段做的好,將為整個軟件項目的開發(fā)打下良好的基礎?!拔ㄒ徊蛔兊氖亲兓旧怼?,同樣軟件需求也是在軟件愛你開發(fā)過程中不斷變化和深入的,因此,我們必須定制需求變更計劃來應付這種變化,以保護整個項目的正常進行。
3.軟件設計
此階段中偶要根據(jù)需求分析的結果,對整個軟件系統(tǒng)進行設計,如系統(tǒng)框架設計、數(shù)據(jù)庫設計等。軟件設計一般分為總體設計和詳細設計。還的軟件設計將為軟件程序編寫打下良好的基礎。
4.程序編碼
此階段是將軟件設計的結果轉化為計算機可運行的程序代碼。在程序編碼中必定要制定統(tǒng)一、符合標準的編寫規(guī)范。以保證程序的可讀性、易維護性。提高程序的運行效率。
5.軟件測試
在軟件設計完成之后要進行嚴密的測試,一發(fā)現(xiàn)軟件在整個軟件設計過程中存在的問題并加以糾正。整個測試階段分為單元測試、組裝測試、系統(tǒng)測試三個階段進行。測試方法主要有白盒測試和黑盒測試。
. 邊做邊改模型(Build-and-Fix Model) 好吧,其實現(xiàn)在許多產(chǎn)品實際都是使用的“邊做邊改”模型來開發(fā)的,特別是很多小公司產(chǎn)品周期壓縮的太短。
在這種模型中,既沒有規(guī)格說明,也沒有經(jīng)過設計,軟件隨著客戶的需要一次又一次地不斷被修改。在這個模型中,開發(fā)人員拿到項目立即根據(jù)需求編寫程序,調(diào)試通過后生成軟件的第一個版本。
在提供給用戶使用后,如果程序出現(xiàn)錯誤,或者用戶提出新的要求,開發(fā)人員重新修改代碼,直到用戶和測試等等滿意為止。這是一種類似作坊的開發(fā)方式,邊做邊改模型的優(yōu)點毫無疑問就是前期出成效快。
對編寫邏輯不需要太嚴謹?shù)男〕绦騺碚f還可以對付得過去,但這種方法對任何規(guī)模的開發(fā)來說都是不能令人滿意的,其主要問題在于:缺少規(guī)劃和設計環(huán)節(jié),軟件的結構隨著不斷的修改越來越糟,導致無法繼續(xù)修改;忽略需求環(huán)節(jié),給軟件開發(fā)帶來很大的風險;沒有考慮測試和程序的可維護性,也沒有任何文檔,軟件的維護十分困難。2. 瀑布模型(Waterfall Model) 瀑布模型是一種比較老舊的軟件開發(fā)模型,1970年溫斯頓·羅伊斯提出了著名的“瀑布模型”,直到80年代都還是一直被廣泛采用的模型。
瀑布模型將軟件生命周期劃分為制定計劃、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。在瀑布模型中,軟件開發(fā)的各項活動嚴格按照線性方式進行,當前活動接受上一項活動的工作結果,實施完成所需的工作內(nèi)容。
當前活動的工作結果需要進行驗證,如驗證通過,則該結果作為下一項活動的輸入,繼續(xù)進行下一項活動,否則返回修改。瀑布模型優(yōu)點是嚴格遵循預先計劃的步驟順序進行,一切按部就班比較嚴謹。
瀑布模型強調(diào)文檔的作用,并要求每個階段都要仔細驗證。但是,這種模型的線性過程太理想化,已不再適合現(xiàn)代的軟件開發(fā)模式,幾乎被業(yè)界拋棄,其主要問題在于:各個階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量;由于開發(fā)模型是線性的,用戶只有等到整個過程的末期才能見到開發(fā)成果,從而增加了開發(fā)的風險;早期的錯誤可能要等到開發(fā)后期的測試階段才能發(fā)現(xiàn),進而帶來嚴重的后果。
各個軟件生命周期銜接花費時間較長,團隊人員交流成本大。瀑布式方法在需求不明并且在項目進行過程中可能變化的情況下基本是不可行的。
3. 迭代模型(stagewise model) 迭代模型(也被稱作迭代增量式開發(fā)或迭代進化式開發(fā))是一種與傳統(tǒng)的瀑布式開發(fā)相反的軟件開發(fā)過程,它彌補了傳統(tǒng)開發(fā)方式中的一些弱點,具有更高的成功率和生產(chǎn)率。在迭代式開發(fā)方法中,整個開發(fā)工作被組織為一系列的短小的、固定長度(如3周)的小項目,被稱為一系列的迭代。
每一次迭代都包括了需求分析、設計、實現(xiàn)與測試。采用這種方法,開發(fā)工作可以在需求被完整地確定之前啟動,并在一次迭代中完成系統(tǒng)的一部分功能或業(yè)務邏輯的開發(fā)工作。
再通過客戶的反饋來細化需求,并開始新一輪的迭代。教學中,對迭代和版本的區(qū)別,可理解如下: 迭代一般指某版本的生產(chǎn)過程,包括從需求分析到測試完成; 版本一般指某階段軟件開發(fā)的結果,一個可交付使用的產(chǎn)品。
與傳統(tǒng)的瀑布模型相比較,迭代過程具有以下優(yōu)點:降低了在一個增量上的開支風險。如果開發(fā)人員重復某個迭代,那么損失只是這一個開發(fā)有誤的迭代的花費。
降低了產(chǎn)品無法按照既定進度進入市場的風險。通過在開發(fā)早期就確定風險,可以盡早來解決而不至于在開發(fā)后期匆匆忙忙。
加快了整個開發(fā)工作的進度。因為開發(fā)人員清楚問題的焦點所在,他們的工作會更有效率。
由于用戶的需求并不能在一開始就作出完全的界定,它們通常是在后續(xù)階段中不斷細化的。因此,迭代過程這種模式使適應需求的變化會更容易些。
因此復用性更高4. 快速原型模型(Rapid Prototype Model) 快速原型模型的第一步是建造一個快速原型,實現(xiàn)客戶或未來的用戶與系統(tǒng)的交互,用戶或客戶對原型進行評價,進一步細化待開發(fā)軟件的需求。通過逐步調(diào)整原型使其滿足客戶的要求,開發(fā)人員可以確定客戶的真正需求是什么;第二步則在第一步的基礎上開發(fā)客戶滿意的軟件產(chǎn)品。
顯然,快速原型方法可以克服瀑布模型的缺點,減少由于軟件需求不明確帶來的開發(fā)風險,具有顯著的效果。快速原型的關鍵在于盡可能快速地建造出軟件原型,一旦確定了客戶的真正需求,所建造的原型將被丟棄。
因此,原型系統(tǒng)的內(nèi)部結構并不重要,重要的是必須迅速建立原型,隨之迅速修改原型,以反映客戶的需求??焖僭湍P陀悬c整合“邊做邊改”與“瀑布模型”優(yōu)點的意味。
5、增量模型(Incremental Model) 與建造大廈相同,軟件也是一步一步建造起來的。在增量模型中,軟件被作為一系列的增量構件來設計、實現(xiàn)、集成和測試,每一個構件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構成。
增量模型在各個階段并不交付一個可運行的完整產(chǎn)品,而是交付滿足客戶需求的一個子集的可運行產(chǎn)品。整個產(chǎn)品被分解成若干個構件,開發(fā)人員逐個構件地交付產(chǎn)品,這。
軟件開發(fā)
軟件開發(fā)是copy根據(jù)用戶要求建造出軟件系統(tǒng)或者系統(tǒng)中部分軟件的過程。它是
一項包括需求捕捉,需求分析,需求設計,實現(xiàn)、測試和維護的系統(tǒng)工程。
常見2113的軟件開發(fā)方法有
結構化開發(fā)方法
結構指系統(tǒng)內(nèi)各組成要素之間的相互聯(lián)系、相互作用的框架。結5261構化開
發(fā)方法強調(diào)系統(tǒng)結構的合理性以及所開發(fā)的軟件的結4102構的合理性
,
主要是面
向數(shù)據(jù)流的
,
因此也被稱為面向功能的軟件開發(fā)方法或面向數(shù)據(jù)流的軟件開
發(fā)方法。結構化技術包括結構化分析、1653結構化設計和結構化程序設計三方面
內(nèi)容。
B、快速建立起來的系統(tǒng)加上連續(xù)的修改可能會造成 產(chǎn)品質量底下增量模型:(采用隨著日程時間的進展而交錯的線性序列,每一個線性徐磊產(chǎn)生軟件的一個可發(fā)布的“增量”,第一個增量往往就是核心的產(chǎn)品)與其他模型共同之處:它與原型實現(xiàn)模型和其他演化方法一樣,本質都是迭代與原型實現(xiàn)模型不同之處:它強調(diào)每一個增量均發(fā)布一個可操作產(chǎn)品,(它不需要等到所有需求都出來,只要摸個需求的增量包出來即可進行開發(fā))優(yōu)點:1、人員分配靈活,一開始不需要投入大量人力資源
2、當配備人員不能在限定的時間內(nèi)完成產(chǎn)品時,它可以提供一種先推出核心產(chǎn)品的途徑,可現(xiàn)發(fā)布部分功能給用戶(對用戶起鎮(zhèn)靜作用)
3、增量能夠有計劃的管理技術風險缺點:1、如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統(tǒng)分析注:
這種模型將功能細化后分別開發(fā)的方法較適應于需求經(jīng)常改變的軟件開發(fā)過程原型模型:(樣品模型,采用逐步求精的方法完善原型)主要思想:
先借用已有系統(tǒng)作為原型模型,通過“樣品”不斷改進,使得最后的產(chǎn)品就是用戶所需要的。原型模型通過向用戶提供原型獲取用戶的反饋,使開發(fā)出的軟件能夠真正反映用戶的需求,采用方法:
原型模型采用逐步求精的方法完善原型,使得原型能夠“快速”開發(fā),避免了像瀑布模型一樣在冗長的開發(fā)過程中難以對用戶的反饋作出快速的響應優(yōu)點: (1)開發(fā)人員和用戶在“原型”上達成一致。這樣一來,可以減少設計中的錯誤和開發(fā)中的風險,也減少了對用戶培訓的時間,而提高了系統(tǒng)的實用、正確性以及用戶的滿意程度。 (2)縮短了開發(fā)周期,加快了工程進度。
(3)降低成本。
缺點:1、當重新生產(chǎn)該產(chǎn)品時,難以讓用戶接收,給工程繼續(xù)開展帶來不利因素。
2、不宜利用原型系統(tǒng)作為最終產(chǎn)品。采用原型模型開發(fā)系統(tǒng),用戶和開發(fā)者必須達成一致: 噴泉模型:(以用戶需求為動力,以對象為驅動的模型,主要用于采用對象技術的軟件開發(fā)項目)它認為軟件開發(fā)過程自下而上周期的各階段是相互迭代和無間隙的特性
相互迭代:軟件的摸個部分常常被重復工作多次,相關對象在每次迭代中隨之加入漸進的軟件成分
無間隙:它在各項活動之間沒有明顯邊界(如分析和設計活動之間)優(yōu)點:1、可以提高軟件項目開發(fā)效率,節(jié)省開發(fā)時間,適應于面向對象的軟件開發(fā)過程不便之處:
1、由于噴泉模型在各個開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項目的管理。
2、這種模型要求嚴格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況螺旋模型:(適合用于需求經(jīng)常變化的項目)它主要是風險分析與評估,沿著螺線進行若干次迭代,
過程:1、制定計劃:確定軟件目標,選定實施方案,弄清項目開發(fā)的限制條件
3、實施工程:實施軟件開發(fā)和驗證;
4、客戶評估:評價開發(fā)工作,提出修正建議,制定下一步計劃。優(yōu)點:1、它由風險驅動,強調(diào)可選方案和約束條件從而支持軟件的重用,有助于將軟件質量作為特殊目標融入產(chǎn)品開發(fā)中
缺點:1、難以讓用戶確信這種煙花方法的結果是可以控制的
2、建設周期長(而軟件技術發(fā)展比較快,所以經(jīng)常會出現(xiàn)軟件開發(fā)完畢后,和當前的技術水平有很大的差距,無法滿足當前用戶的需求)
(核心思想:按工序將問題化簡,將功能的實現(xiàn)與設計分開,便于分工協(xié)作,采用結構化的分析與設計方法將邏輯實現(xiàn)與物理實現(xiàn)分開,依照軟件生命周期自上而下,相互銜接的次序)缺點:1、在項目各個階段之間極少有反饋,各個階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,增加了工作量
2、用戶只有在項目生命周期的后期才能看到結果,增加了開發(fā)的風險
3、需要過多的強制完成日期和里程碑來跟蹤各個項目的階段
4、在每個階段都會產(chǎn)生循環(huán)反饋
(如果有信息未被覆蓋或是發(fā)現(xiàn)問題了,必須返回到上一個階段并進行適當?shù)男薷?,只有當上一階段都被確認后才進行下一階段)
5、早期的錯誤可能要等到開發(fā)后期的測試階段才能發(fā)現(xiàn),進而帶來嚴重的后果優(yōu)點:1、為項目提供了按階段分的檢查點
2、當完成一個階段后,只需要去關注后續(xù)階段
3、可在迭代模型中應用瀑布模型按照瀑布模型的階段劃分,軟件測試可以分為單元測試,集成測試,系統(tǒng)測試注:由于每個階段都會產(chǎn)生循環(huán)反饋,對于經(jīng)常變化的項目而言,瀑布模型毫無價值,這種模型的線性過程太理想化,已不適合現(xiàn)代的軟件開發(fā)模式
一般來說軟件開發(fā)是根據(jù)用戶要求建造出軟件系統(tǒng)或者系統(tǒng)中的軟件部分的過程。
軟件開發(fā)是一項包括需求捕捉、需求分析、設計、實現(xiàn)和測試的系統(tǒng)工程。軟件一般是用某種程序設計語言來實現(xiàn)的。通常采用軟件開發(fā)工具可以進行開發(fā)。軟件分為系統(tǒng)軟件和應用軟件,并不只是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟件的一部分。
軟件設計思路和方法的一般過程,包括設計軟件的功能和實現(xiàn)的算法和方法、軟件的總體結構設計和模塊設計、編程和調(diào)試、程序聯(lián)調(diào)和測試以及編寫、提交程序。
常見的軟件開發(fā)語言:JAVA、C/C++/php/JSP/ASP/POWERBUILDER/DELPHI/.NET/C#/vb/等。
與應用最關鍵的需要用到數(shù)據(jù)庫,常見數(shù)據(jù)庫:MySQL/SQLSERVER/ORACLE等。
現(xiàn)代設計方法是隨著當代科學技術的飛速發(fā)展和計算機技術的廣泛應用而在涉及領域發(fā)展起來的一門新興的多元交叉學科。它是以設計產(chǎn)品為目標的一個總的知識群體的總稱。目前它的內(nèi)容主要包括:優(yōu)化設計、可靠性設計、計算機輔助設計、工業(yè)藝術造型設計、虛擬設計、疲勞設計、三次設計、相似性設計、模塊化設計、反求工程設計、動態(tài)設計、有限元法、人機工程、價值工程、并行工程、人工神經(jīng)元計算方法等。在運用他們進行工程設計時,一般都以計算機作為分析、計算、綜合、決策的工具。本節(jié)以計算機輔助設計、優(yōu)化設計、可靠性設計、有限元法、工業(yè)藝術造型設計、設計方法學、三次設計等為例來說明現(xiàn)代設計方法的基本內(nèi)容與特點。
?1、計算機輔助設計
計算機輔助設計(Computer Aided Design),簡稱CAD。他是把計算機技術引入設計過程并用來完成計算、選型、繪圖及其他作業(yè)的一種現(xiàn)代設計方法。計算機、繪圖積極其他外圍設備構成CAD硬件系統(tǒng),而操作系統(tǒng)、語言處理系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)和應用軟件等構成CAD的軟件系統(tǒng)。通常所說的CAD系統(tǒng)是只由系統(tǒng)硬件和系統(tǒng)軟件組成,兼有計算、圖形處理、數(shù)據(jù)庫等功能,并能綜合利用這些功能完成設計作業(yè)的系統(tǒng)。典型的CAD工作過程如圖1-3所示。
?2、優(yōu)化設計
優(yōu)化設計(Optimal Design)是把最優(yōu)化數(shù)學原理應用于工程設計問題,在所有可行方案中尋求最佳設計方案的一種現(xiàn)代設計方法。
在進行工程優(yōu)化設計時,首先把工程問題按優(yōu)化設計所規(guī)定的格式建立數(shù)學模型,然后選用合適的優(yōu)化計算方法在計算機上對數(shù)學模型進行尋優(yōu)求解,得到工程設計問題的最優(yōu)設計方案。
在建立優(yōu)化設計數(shù)學模型的過程中,把影響設計方案選取的那些參數(shù)稱為設計變量;設計變量應當滿足的條件稱為約束條件;而設計者選定來衡量設計方案優(yōu)劣并期望得到改進的指標表示為設計變量的函數(shù),稱為目標函數(shù)。設計變量、約束函數(shù)、目標函數(shù)組成了優(yōu)化設計問題的數(shù)學模型。優(yōu)化設計需要把數(shù)學模型和優(yōu)化算發(fā)放到計算機程序中用計算機自動尋優(yōu)求解。常用的優(yōu)化算法有:0.618法、鮑威爾(Power)法、變尺度法、復合型法、懲罰函數(shù)法。
3、可靠性設計
可靠性設計(Reliability Design)是以概率論和數(shù)理統(tǒng)計為理論基礎,是以失效分析、失效預測及各種可靠性試驗為依據(jù),以保證產(chǎn)品的可靠性為目標的現(xiàn)代設計方法。
可靠性設計的基本內(nèi)容是:選定產(chǎn)品的可靠性指標及量值,對可靠性指標進行合理的分配,再把規(guī)定的可靠性指標設計到產(chǎn)品中去。
?4、有限元法
有限元法(Finite Method)是以電子計算機為工具的一種數(shù)值計算方法。目前,該方法不僅能用于工程中復雜的非線性問題、非穩(wěn)態(tài)問題(如結構力學、流體力學、熱傳導、電磁場等方面的問題)的求解,而且還可以用于工程設計中進行復雜結構的靜態(tài)和動力學分析,并能準確地計算復雜零件的應力分布和變形,成為復雜零件強度和剛度計算的有利分析工具。
?5、工業(yè)藝術造型設計
工業(yè)藝術造型設計時工程技術與美學藝術相結合的一門新學科。他是旨在保證產(chǎn)品使用功能的前提下,用藝術手段按照美學法則對工業(yè)產(chǎn)品進行造型活動,包括結構尺寸、體面形態(tài)、色彩、材質、線條、裝飾及人際關系等因素進行有機的綜合處理,從而設計出優(yōu)質美觀的產(chǎn)品造型。實用和美觀的最佳統(tǒng)一是工業(yè)藝術造型的基本原則。
這一學科的主要內(nèi)容包括:造型設計的基本要素、造型設計的基本原則、美學法則、色彩設計、人機工程學等。
?6、反求工程設計
反求工程設計(Reverse Engineering)是消化吸收并改進國內(nèi)外先進技術的一系列工作方法和技術的總和。它是通過實物或技術資料對已有的先進產(chǎn)品進行分析、解剖、試驗,了解其材料、組成、結構、性能、功能,掌握其工藝原理和工作機理,已進行消化仿制、改進或發(fā)展、創(chuàng)造新產(chǎn)品的一種方法和技術。它是針對消化吸收先進技術的系列分析方法和應用技術的組合。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據(jù)《信息網(wǎng)絡傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:3.588秒