《軟件工程》學(xué)習(xí)輔導(dǎo)1(2)

字號(hào):

按開發(fā)分---軟件產(chǎn)品和軟件項(xiàng)目
     軟件產(chǎn)品---指的是不局限于特定領(lǐng)域的、可以被廣大用戶直接使用的軟件系統(tǒng)。如微軟的 windows,office等。這類系統(tǒng)的特點(diǎn)是技術(shù)含量高,開發(fā)時(shí)要考到各種不同的用戶需求;
     軟件項(xiàng)目--也稱定制軟件,是受某個(gè)特定客戶(或少數(shù)客戶)的委托,由一個(gè)或多個(gè)軟件開發(fā)機(jī)構(gòu)在合同的約如我們常說的管理信息系統(tǒng)(mis)和電子商務(wù)系統(tǒng)。這類軟件的特點(diǎn)是領(lǐng)域知識(shí)所占的比重較大,相對(duì)技術(shù)而言工程性更強(qiáng)。例如,軍用防空指揮系統(tǒng)、衛(wèi)星控制系統(tǒng)等均為這類軟件。
     針對(duì)這兩種不同類型的軟件,應(yīng)該有不同的軟件開發(fā)方法去指導(dǎo)項(xiàng)目開發(fā)過程。
     軟件項(xiàng)目的開發(fā),目前比較成熟的軟件開發(fā)方法有軟件成熟度模型(cmm)。 這種軟件開發(fā)模型試圖將整個(gè)軟件開發(fā)過程規(guī)范化和量化,直到可以對(duì)軟件開發(fā)過程進(jìn)行定量的控制和優(yōu)化。
     軟件產(chǎn)品的開發(fā),像微軟公司積累了許多成功的經(jīng)驗(yàn)。
    軟件生產(chǎn)的發(fā)展:
    1 程序設(shè)計(jì)時(shí)代:這個(gè)階段生產(chǎn)方式是個(gè)體勞動(dòng),生產(chǎn)工具是機(jī)器語言,匯編語言。(1946-1956年)
    2 程序系統(tǒng)時(shí)代:這個(gè)階段生產(chǎn)方式是小集團(tuán)合作生產(chǎn),生產(chǎn)工具是高級(jí)語言,開發(fā)方法仍依靠個(gè)人技巧,但開始提出結(jié)構(gòu)化方法。(1956-1968年)
    3 軟件工程時(shí)代:這個(gè)階段生產(chǎn)方式是工程化的生產(chǎn),使用數(shù)據(jù)庫,開發(fā)工具,開發(fā)環(huán)境,網(wǎng)絡(luò),分布式面向?qū)ο蠹夹g(shù)來開發(fā)軟件。(1968年至今
    軟件危機(jī): 軟件開發(fā)技術(shù)的進(jìn)步未能滿足發(fā)展的要求。在軟件開發(fā)中遇到的問題找不到解決的辦法,問題積累起來,形態(tài)尖銳的矛盾,導(dǎo)致了軟件危機(jī)。
    軟件危機(jī)的表現(xiàn):
    1 經(jīng)費(fèi)預(yù)算經(jīng)常突破,完成時(shí)間一再拖延。
    2 開發(fā)的軟件不能滿足用戶要求。
    3 開發(fā)的軟件可維護(hù)性差。
    4 開發(fā)的軟件可靠性差。
    軟件危機(jī)產(chǎn)生原因:
    1 軟件規(guī)模越來越大,結(jié)構(gòu)越來越復(fù)雜。
    2 軟件開發(fā)管理困難而復(fù)雜。
    3 軟件開發(fā)費(fèi)用不斷增加。
    4 軟件開發(fā)技術(shù)落后。
    5 生產(chǎn)方式落后,仍采用手工方式。
    6 開發(fā)工具落后,生產(chǎn)率提高緩慢。
    軟件工程:用科學(xué)的知識(shí)和技術(shù)原理來定義,開發(fā),維護(hù)軟件的一門學(xué)科。
    用工程科學(xué)的觀點(diǎn)進(jìn)行費(fèi)用估算,制定進(jìn)度,制定計(jì)劃和方案。
    用管理科學(xué)的方法和原理進(jìn)行生產(chǎn)的管理。
    用數(shù)學(xué)的方法建立軟件開發(fā)中的各種模型和算法。
     那么為達(dá)到軟件優(yōu)質(zhì)高產(chǎn)這個(gè)目標(biāo),從技術(shù)到管理做了大量的努力,從而逐漸已形成了"軟件工程學(xué)"這一新學(xué)科。
    它包含以下主要內(nèi)容:
    1、軟件開發(fā)方法:軟件工程的方法提供了建造軟件在技術(shù)上需要"如何做"。 方法涵蓋了一系列的任務(wù):需求分析、設(shè)計(jì)、編程、測(cè)試和維護(hù)。
     是在60年代后期才逐步形成了一種軟件開發(fā)方法,在不同的軟件開發(fā)階段對(duì)應(yīng)有不同的方法,例如在軟件的設(shè)計(jì)階段有"結(jié)構(gòu)化分析與設(shè)計(jì)"方法,在軟件測(cè)試階段有"黑盒"與"白盒"測(cè)試技術(shù),等等。