軟件工程的基本目標(biāo)就是在給定的資源約束條件下開發(fā)生產(chǎn)更多更好的軟件產(chǎn)品,具體表現(xiàn)如下:
1、開發(fā)盡可能多的軟件產(chǎn)品,滿足社會(huì)對軟件全方位、不同應(yīng)用領(lǐng)域的應(yīng)用需求,是軟件工程的首要目標(biāo)。
2、提高軟件的生產(chǎn)效率。由于軟件產(chǎn)品的特殊性使得如何提高軟件產(chǎn)品的生產(chǎn)效率成了迫切需要解決的難題。為此,人們從各個(gè)方面研究、探討軟件產(chǎn)品生產(chǎn)的內(nèi)在規(guī)律,包括生產(chǎn)過程的管理、組織形式、開發(fā)工具、程序設(shè)計(jì)方法等,試圖找出比較滿意的求解方案。
3、滿足應(yīng)用的功能需要。這里包括幾層意思:產(chǎn)品功能強(qiáng)、性能好、按期交付使用、易于用戶操作和維護(hù)。
4、降低軟件開發(fā)成本,包括降低軟件設(shè)計(jì)成本和軟件維護(hù)成本,而軟件維護(hù)成本比開發(fā)成本要大得多。因此,提高軟件可維護(hù)性是降低軟件開發(fā)成本的有效途徑。
在具體工程項(xiàng)目的實(shí)際開發(fā)過程中,試圖讓以上幾個(gè)目標(biāo)都達(dá)到理想的程度往往是非常困難的。例如,如果過于追求提高軟件的性能,可能造成開發(fā)出的軟件對硬件有較大的依賴性,從而直接影響到軟件的通用性和可移植性。實(shí)際上軟件工程就是要解決如何在用戶要求的功能、質(zhì)量、成本、進(jìn)度之間取得平衡,滿足應(yīng)用的實(shí)際需要。
模型是用于表現(xiàn)更大、更復(fù)雜的物體、或體制、或概念的經(jīng)過精確刻畫的一種“直觀反映”。模型通常是一個(gè)計(jì)劃的初步產(chǎn)品或結(jié)構(gòu),依據(jù)此模型或從模型中可產(chǎn)生出最終的產(chǎn)品。各傳統(tǒng)領(lǐng)域均用模型來表示實(shí)際產(chǎn)品、實(shí)際產(chǎn)品的生產(chǎn)加工過程及工藝標(biāo)準(zhǔn)等。例如,房產(chǎn)銷售領(lǐng)域通常采用按實(shí)際比例縮小的房屋結(jié)構(gòu)模型來展示他們的商品,這種模型主要從實(shí)際使用角度進(jìn)行模擬,讓用戶能夠直觀地感受“使用”效果;而施工圖紙也是模型,是從建造角度反映制造房屋建筑的結(jié)構(gòu)、質(zhì)量標(biāo)準(zhǔn)、技術(shù)和工藝標(biāo)準(zhǔn)的模型。
在軟件工程領(lǐng)域中,我們也將采用模型來表示軟件產(chǎn)品在各生產(chǎn)階段中的進(jìn)展情況和結(jié)果。例如,在軟件分析階段,可用模型來表示分析結(jié)果,在軟件設(shè)計(jì)階段用模型來反映設(shè)計(jì)方案,測試階段有測試模型;軟件實(shí)現(xiàn)人員根據(jù)分析、設(shè)計(jì)模型進(jìn)行生產(chǎn),測試人員根據(jù)測試模型進(jìn)行軟件測試。
軟件工程的“線性順序模型”也稱“傳統(tǒng)生命周期模型”,或稱“瀑布模型”,是一種最早的、應(yīng)用最廣的、支持直線型開發(fā)的過程模型。圖1是關(guān)于軟件開發(fā)階段的線性順序模型。
線性順序模型從系統(tǒng)分析開始,逐步經(jīng)過各個(gè)開發(fā)階段到軟件開發(fā)完畢、交付使用止。每個(gè)階段的變換結(jié)果是下一個(gè)階段的變換的輸入,相鄰的兩個(gè)階段具有極其密切的因果關(guān)系。該模型以軟件的需求能夠完全被確定為前提,這種模型的特點(diǎn)是“一瀉千里”、易“下”而幾乎不可能“上”,因此又得名“瀑布模型”。
這種模型在分析和設(shè)計(jì)階段需要建立整個(gè)系統(tǒng)的視圖,即在初期就建立所有系統(tǒng)組成部分的需求,因?yàn)檐浖仨毰c系統(tǒng)的其他組成部分——硬件、數(shù)據(jù)庫、人或其他系統(tǒng)進(jìn)行交互,然后把這些需求的相關(guān)部分分配給軟件。
這種模型具有以下幾個(gè)缺點(diǎn):
1、在開發(fā)過程中的每個(gè)變化會(huì)引起不小的混亂。
2、不能接收在項(xiàng)目開始階段中存在的不確定性,即在需求分析階段必須明確軟件系統(tǒng)的全部需
求,實(shí)際上這是較難做到的。
3、需求確定后,進(jìn)行一連串的設(shè)計(jì)、實(shí)現(xiàn)、測試過程,才能制定出軟件的初始版本,軟件的運(yùn)行
版本只能到項(xiàng)目開發(fā)晚期得到。如果在這時(shí)才發(fā)現(xiàn)錯(cuò)誤,則錯(cuò)誤的后果極有可能是災(zāi)難性的,糾正錯(cuò)誤
的代價(jià)將是非常昂貴的。
4、有些開發(fā)者往往要等待其他人員完成任務(wù)后才能進(jìn)行開發(fā)工作。
5、用戶如果提出修改,則代價(jià)往往很大。
原型是一種原始模型,是原始的類型、形式、形狀或例證的描述,是作為后期階段的基礎(chǔ)模型。軟件工程的“原型模型”的基本思想是從用戶處收集到的需求出發(fā),初步定義軟件的總體目標(biāo),然后根據(jù)總體目標(biāo)進(jìn)行快速設(shè)計(jì),建造一個(gè)能夠反映用戶主要需求并且能夠運(yùn)行的軟件系統(tǒng)原型。通過運(yùn)行原型,使得用戶快速了解未來軟件系統(tǒng)的概貌,便于快速判斷需求的正確性、操作的實(shí)用性,以及功能是否遺漏、是否需要改進(jìn)或增強(qiáng)等意見,然后再設(shè)計(jì)、修改原型,再運(yùn)行原型、征求用戶意見,如此重復(fù)直至雙方認(rèn)可。原型模型的整個(gè)構(gòu)造過程是一個(gè)迭代的過程,圖2描述了原型模型。
原型模型可以幫助用戶和開發(fā)者較快速地獲取雙方理解一致的需求,但不是最終交付的軟件產(chǎn)品。原型作為參考,實(shí)際的軟件開發(fā)必須在充分考慮質(zhì)量和可維護(hù)性等因素以后才進(jìn)行。
這種模型的優(yōu)點(diǎn)是:
1、用戶能夠很早就感覺到實(shí)際系統(tǒng)的“模式”,開發(fā)者可以很快地建造出一些供以后實(shí)際開發(fā)的“模型”;
2、如果理想的話,原型可以作為標(biāo)識(shí)軟件需求的一種機(jī)制。
這種模型的缺點(diǎn)是:
1、用戶往往把看到的原型作為軟件的最初“版本”,不理解或難以理解,原型實(shí)際上是沒有考慮軟件的總體質(zhì)量、性能、可維護(hù)性等一系列保證軟件質(zhì)量的因素而快速“拼湊”起來的“演示軟件”,以致誤解軟件開發(fā)的艱難性;
2、由于很早就得到用戶“認(rèn)可”,開發(fā)人員往往就放松對軟件開發(fā)的管理,開發(fā)者也常常進(jìn)行“折中”,把“演示”功能中的不合理部分處理成軟件的實(shí)際功能。
在增量模型中,軟件被作為一系列的增量構(gòu)件來設(shè)計(jì)、實(shí)現(xiàn)、集成和測試。與構(gòu)建大廈類似,先設(shè)計(jì)一個(gè)總體規(guī)劃圖,然后一層層地構(gòu)造搭建整個(gè)建筑。增量模型是把整個(gè)軟件系統(tǒng)分解為若干個(gè)軟件構(gòu)件,開發(fā)過程中,逐個(gè)實(shí)現(xiàn)每個(gè)構(gòu)件,實(shí)現(xiàn)一個(gè)構(gòu)件,展示一個(gè)構(gòu)件。如果發(fā)現(xiàn)問題可以及早進(jìn)行修正,逐步進(jìn)行完善,最終獲得滿意的軟件產(chǎn)品。
在使用增量模型時(shí),第一個(gè)增量往往是實(shí)現(xiàn)基本需求的核心構(gòu)件。該核心構(gòu)件交付用戶使用后,經(jīng)過評(píng)價(jià)形成下一個(gè)增量的開發(fā)計(jì)劃,它包括對核心構(gòu)件的修改和一些新功能的發(fā)布。這個(gè)過程在每個(gè)增量發(fā)布后不斷重復(fù),直到產(chǎn)生最終的完善產(chǎn)品。
1988年,Barry Boehm發(fā)表了“螺旋模型”,它將瀑布模型和快速原型模型結(jié)合起來,強(qiáng)調(diào)其他模型所忽視的風(fēng)險(xiǎn)分析,特別適合于大型復(fù)雜的系統(tǒng)。該模型將開發(fā)分為4個(gè)環(huán)節(jié)(見圖3):制訂計(jì)劃、風(fēng)險(xiǎn)分析、開發(fā)實(shí)施和用戶評(píng)估。開發(fā)活動(dòng)圍繞這4個(gè)環(huán)節(jié)螺旋式地重復(fù)執(zhí)行,直到最終得到用戶認(rèn)可的產(chǎn)品。
形式化方法模型包含了一組導(dǎo)致計(jì)算機(jī)軟件的數(shù)學(xué)規(guī)約的活動(dòng),使得軟件工程師能夠通過使用嚴(yán)格的、數(shù)學(xué)的符號(hào)體系來規(guī)約、開發(fā)和驗(yàn)證基于計(jì)算機(jī)的軟件系統(tǒng)。用形式化方法開發(fā)軟件時(shí),提供一種通過數(shù)學(xué)分析來消除二義性、不完整性、不一致性問題的機(jī)制。這種方法能夠作為程序驗(yàn)證的基礎(chǔ),能夠發(fā)現(xiàn)和糾正在其他情況下發(fā)現(xiàn)不了的問題,可以生產(chǎn)高正確性的軟件。因此,這種方法往往用于開發(fā)航空、醫(yī)療等安全性能要求很高的軟件系統(tǒng),但是在商業(yè)環(huán)境中不可能成為主流開發(fā)方法。
這種模型的軟件開發(fā)的特點(diǎn)是開發(fā)費(fèi)時(shí)且費(fèi)用昂貴,對開發(fā)人員的要求很高,需要具有形式化方法所必要的知識(shí)背景。 2100433B
任務(wù):開發(fā)有用的軟件。目標(biāo):使讓人們節(jié)約大量勞動(dòng)力
軟件中可以通過查看工程量計(jì)算式,查看三維,還可以通過手算來驗(yàn)證
建議先在鋼筋軟件中進(jìn)行識(shí)別,再導(dǎo)入圖形軟件中,因?yàn)殇摻钴浖R(shí)別時(shí)不僅要識(shí)別圖元信息,并且要識(shí)別構(gòu)建屬性即配筋,土建在識(shí)別時(shí),只需要識(shí)別圖元信息,這個(gè)可以直接從鋼筋導(dǎo)入土建。但是若是先導(dǎo)入圖形軟件中,鋼...
格式:pdf
大?。?span id="kymsic8" class="single-tag-height">1.4MB
頁數(shù): 2頁
評(píng)分: 4.6
信息安全工程至今沒有一個(gè)完善的工程模型,可以對軟件工程中的工程模型改造,以便適應(yīng)信息安全工程的需要。由于信息安全的復(fù)雜性,單一工程模型不能為信息安全全程建模,將軟件工程中的瀑布模型、迭代模型、增量模型和噴泉模型綜合起來,提出復(fù)合工程模型,并在實(shí)際工作中予以實(shí)施,以便檢驗(yàn)該復(fù)合模型的可行性。
格式:pdf
大?。?span id="ea28a2c" class="single-tag-height">1.4MB
頁數(shù): 未知
評(píng)分: 4.6
本文主要介紹幾種常見的軟件工程過程模型,比如瀑布模型,螺旋模型,原型模型,并發(fā)開發(fā)模型等。對手模型的選擇,應(yīng)當(dāng)根據(jù)組織定義的標(biāo)準(zhǔn)軟件的過程,參考具體的工程項(xiàng)目所具有的特點(diǎn)和資源狀況進(jìn)行。