第二版軟件工程第一章軟件與軟件工程_第1頁
第二版軟件工程第一章軟件與軟件工程_第2頁
第二版軟件工程第一章軟件與軟件工程_第3頁
第二版軟件工程第一章軟件與軟件工程_第4頁
第二版軟件工程第一章軟件與軟件工程_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023/10/23國防科技大學(xué)計算機(jī)學(xué)院1前言

軟件和軟件工程在信息化社會中的地位和作用2023/10/23國防科技大學(xué)計算機(jī)學(xué)院2八十年代初科學(xué)家的預(yù)言(1/2)Osborne1979將迎來”新的工業(yè)革命”Toffler1980

微電子的發(fā)展是人類歷史上的”第三次浪潮”80年代初 美國商業(yè)周刊雜志在頭版刊登大標(biāo)題:

“軟件:新的驅(qū)動力”

當(dāng)時人們還沒有意識到他們的預(yù)見是多么的正確。2023/10/23國防科技大學(xué)計算機(jī)學(xué)院3八十年代初科學(xué)家的預(yù)言(2/2)Naisbitt1982

人類社會將“從工業(yè)社會向信息社會轉(zhuǎn)變”Feigenbaum1983

計算機(jī)控制的信息和知識將成為20世紀(jì)表現(xiàn)能力的焦點Stoll1989

網(wǎng)絡(luò)和軟件產(chǎn)生的“電子社會”是實現(xiàn)全球知識交流的關(guān)鍵。2023/10/23國防科技大學(xué)計算機(jī)學(xué)院4二十年后的現(xiàn)實1.計算機(jī)的發(fā)展與普及2.計算機(jī)軟件的發(fā)展與普及3.計算機(jī)網(wǎng)絡(luò)的發(fā)展與普及2023/10/23國防科技大學(xué)計算機(jī)學(xué)院5觀察與思考因為普及了計算機(jī)、軟件和網(wǎng)絡(luò)…迎來了信息化社會和知識經(jīng)濟(jì)。2023/10/23國防科技大學(xué)計算機(jī)學(xué)院6軟件在信息化社會中的地位和作用軟件與經(jīng)濟(jì)軟件與政治軟件與軍事軟件與文化軟件與教育軟件與法律道德

2023/10/23國防科技大學(xué)計算機(jī)學(xué)院7結(jié)論軟件是信息化社會和知識經(jīng)濟(jì)的基礎(chǔ),它滲透到人們生活、工作的所有領(lǐng)域,并迅速的改變著人們的生活和工作方式,改變著社會的產(chǎn)業(yè)結(jié)構(gòu)和面貌。人們對軟件的依靠越來越密切,社會需要大量的豐富多彩的軟件,并隨著社會的發(fā)展不斷更新、充實和提高。2023/10/23國防科技大學(xué)計算機(jī)學(xué)院8教材2023/10/23國防科技大學(xué)計算機(jī)學(xué)院9教材和參考書2023/10/23國防科技大學(xué)計算機(jī)學(xué)院10第一章軟件與軟件工程軟件與軟件工程的概念軟件生存周期軟件開發(fā)模型軟件工程工具及環(huán)境軟件工程組織度量2023/10/23國防科技大學(xué)計算機(jī)學(xué)院111.1軟件軟件的概念;軟件的特點;軟件的分類;軟件的發(fā)展;軟件危機(jī)。第一章軟件與軟件工程2023/10/23國防科技大學(xué)計算機(jī)學(xué)院121.1.1軟件的概念

軟件是什么?1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院13軟件的概念軟件是計算機(jī)系統(tǒng)的重要組成部分;軟件是邏輯產(chǎn)品,需要計算機(jī)硬件和系統(tǒng)軟件的支撐;軟件是計算機(jī)控制系統(tǒng)的指揮中樞;軟件是信息轉(zhuǎn)換器,它能對信息進(jìn)行加工、處理或變換;軟件是工具,在人們的生活、工作、休閑,在社會的經(jīng)濟(jì)、軍事、政治、文化、科學(xué)技術(shù)、教育中發(fā)揮具大作用;1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院14軟件的概念計算機(jī)世界的軟件軟件是能夠完成預(yù)定功能和性能,并對相應(yīng)數(shù)據(jù)進(jìn)行加工的程序和描述程序及其操作的文檔。

軟件=程序+數(shù)據(jù)+文檔程序=算法+數(shù)據(jù)結(jié)構(gòu)1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院151.1.2軟件的特點軟件開發(fā)與傳統(tǒng)的產(chǎn)品生產(chǎn)存在本質(zhì)差別;軟件是邏輯產(chǎn)品,而不是物理產(chǎn)品;軟件不會磨損;1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院16軟件的描述(1/3)

軟件由程序、數(shù)據(jù)、文檔組成。1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院17軟件的描述(2/3)程序設(shè)計語言面向機(jī)器

匯編語言、機(jī)器語言等面向過程Fortran,Pascal,C等面向?qū)ο驝++,Java等面向問題結(jié)構(gòu)化查詢語言SQL等1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院18軟件的描述(3/3)數(shù)據(jù)

用程序設(shè)計語言要求的數(shù)據(jù)結(jié)構(gòu)表示文檔

規(guī)范準(zhǔn)確清晰簡潔無歧義自然語言結(jié)構(gòu)化英語圖表

1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院191.1.3軟件分類系統(tǒng)軟件實時軟件商務(wù)軟件工程和科學(xué)計算軟件嵌入式軟件人工智能軟件個人計算機(jī)軟件1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院201.1.4軟件的發(fā)展軟件發(fā)展的四個階段軟件發(fā)展存在的問題1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院211)軟件發(fā)展的四個階段1950---1965

沒有系統(tǒng)的軟件開發(fā)方法和管理機(jī)制、自定義軟件、批處理、有限分布。1965---1975

產(chǎn)生人機(jī)交互的新概念、新技術(shù)軟件產(chǎn)品、多用戶、實時、數(shù)據(jù)庫。1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院221973---1988

微處理器的出現(xiàn)并廣泛應(yīng)用 分布式系統(tǒng)、嵌入智能、低成本硬件、消費者的影響。1986---2000

廣域和局域網(wǎng)絡(luò)迅速普及 強(qiáng)大的桌面系統(tǒng)、面向?qū)ο蠹夹g(shù)、專家系統(tǒng)、人工智能、神經(jīng)網(wǎng)絡(luò)、并行計算、網(wǎng)絡(luò)計算機(jī)。軟件發(fā)展的四個階段(2/2)1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院232)軟件發(fā)展存在的問題(1/2)軟件開發(fā)能力不能滿足人們的需要。社會對軟件的依賴程度加大,人們普遍關(guān)注軟件的安全和可靠性。建造高可靠性、高質(zhì)量軟件的任務(wù)任重路遠(yuǎn)。1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院24軟件發(fā)展存在的問題

(2/2)若干年前開發(fā)的應(yīng)用軟件經(jīng)過幾十次修改已無人認(rèn)識它的內(nèi)部結(jié)構(gòu),己經(jīng)不可維護(hù)。由于經(jīng)濟(jì)原因,嵌入式系統(tǒng)存在許多怪現(xiàn)象,企業(yè)不愿意投入資源再生產(chǎn),而采取打補(bǔ)丁+時髦界面的方法。1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院251.1.5軟件危機(jī)1.軟件危機(jī)的表現(xiàn)硬件發(fā)展超過軟件,硬件潛能沒有充分發(fā)揮。軟件產(chǎn)業(yè)的發(fā)展長期滯后,與硬件發(fā)展不協(xié)調(diào)。1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院26

軟件危機(jī)軟件開發(fā)成本過高軟件質(zhì)量得不到保證軟件開發(fā)效率低難以控制開發(fā)進(jìn)度,工作量估計困難

軟件不能滿足社會發(fā)展的需求,成為社會、經(jīng)濟(jì)發(fā)展的制約因素1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院27程序規(guī)模、工作量與成本的關(guān)系1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院282.軟件危機(jī)原因軟件的規(guī)模加大、復(fù)雜性提高、性能增強(qiáng)軟件是邏輯產(chǎn)品,尚未完全認(rèn)識其本質(zhì)和特點缺乏有效的、系統(tǒng)的開發(fā)、維護(hù)大型軟件項目的技術(shù)手段和管理方法1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院29軟件危機(jī)原因用戶對軟件需求的描述和軟件開發(fā)人員對需求的理解往往存在差異,用戶經(jīng)常要求修改需求,開發(fā)人員很難適應(yīng)軟件開發(fā)的技術(shù)人員和管理人員缺乏軟件工程化的素質(zhì)和要求,對工程化的開銷認(rèn)識不足………1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院303.軟件危機(jī)仍在繼續(xù)

---影響軟件質(zhì)量的糊涂認(rèn)識(1/3)在項目的初始階段對系統(tǒng)若明若暗就開始寫程序認(rèn)為軟件是靈活的容易修改,對軟件需求的改變不以為然程序調(diào)試成功標(biāo)志著工作的結(jié)束1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院31軟件危機(jī)仍在繼續(xù)

---影響軟件質(zhì)量的糊涂認(rèn)識(2/3)程序運行前無法評價程序的質(zhì)量一個軟件項目給客戶提交的主要是程序,而軟件文檔則認(rèn)為可有可無、可多可少等等。雖然發(fā)布了軟件標(biāo)準(zhǔn)和規(guī)范,但在實踐中執(zhí)行需要額外的開銷,劃不來1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院32軟件危機(jī)仍在繼續(xù)

---影響軟件質(zhì)量的糊涂認(rèn)識(3/3)雖然開發(fā)了許多軟件工具,但很多開發(fā)者對使用這些工具興趣不大為了開發(fā)軟件人們不惜用重金購買最新型號的主機(jī)和工作站而不愿意購買軟件工具在軟件開發(fā)過程中,進(jìn)度遲后就增派更多的程序員突擊,趕進(jìn)度………1.1軟件2023/10/23國防科技大學(xué)計算機(jī)學(xué)院331.2軟件工程的概念1968年NATO計算機(jī)科學(xué)會議軟件危機(jī)-->根源-->解決途徑

軟件工程第一章軟件與軟件工程2023/10/23國防科技大學(xué)計算機(jī)學(xué)院341.2.1.軟件工程的定義(1/3)

軟件工程FritzBauer[nau69]

為了經(jīng)濟(jì)的獲得可靠的,在實際機(jī)器上高效運行的軟件,而建立和使用的好的工程原則。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院35軟件工程的定義(2/3)

軟件工程[教材]軟件工程是運用工程、科學(xué)和數(shù)學(xué)的原則與方法研制、維護(hù)計算機(jī)軟件的有關(guān)技術(shù)和管理的方法。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院36軟件工程的定義(3/3)

軟件工程[IEE93](1)將系統(tǒng)的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護(hù)的過程;(2)

上述方法的研究。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院37軟件工程三要素

過程、方法和工具(1/5)質(zhì)量是軟件工程的生命線,軟件工程以質(zhì)量保證為基礎(chǔ)。質(zhì)量管理促進(jìn)了過程的改進(jìn),創(chuàng)造了許多行之有效的軟件開發(fā)方法和工具。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院38軟件工程三要素

過程、方法和工具(2/5)軟件工程釆用層次化的方法,每個層次都包括過程、方法、工具三要素。方法支撐過程和工具、過程和工具促進(jìn)方法學(xué)的研究。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院39軟件工程三要素

過程、方法和工具將系統(tǒng)的、規(guī)范的、可量化的方法運用到軟件工程的始終,滲透到軟件工程的過程、方法和工具中。1.2軟件工程的概念軟件工程過程方法工具2023/10/23國防科技大學(xué)計算機(jī)學(xué)院40

軟件工程三要素

過程、方法和工具(3/5)軟件工程的過程過程貫穿軟件開發(fā)的各個環(huán)節(jié),各環(huán)節(jié)之間建立里程碑;管理者在軟件工程過程中對軟件開發(fā)的質(zhì)量、進(jìn)度、成本進(jìn)行評估、管理和控制;技術(shù)人員采用相應(yīng)的方法和工具生成軟件工程產(chǎn)品(模型、文檔、數(shù)據(jù)、報告、表格等)。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院41軟件工程三要素

過程、方法和工具(4/5)

軟件工程的方法軟件工程方法是完成軟件工程項目的技術(shù)手段。它支持項目計劃和估算、系統(tǒng)和軟件需求分析、設(shè)計、編程、測試和維護(hù)。軟件工程方法依賴一組原則,它貫穿軟件工程的各個環(huán)節(jié)。軟件工程方法分兩類:傳統(tǒng)方法和面向?qū)ο蠓椒?.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院42軟件工程三要素

過程、方法和工具(5/5)軟件工程工具它為軟件工程的過程和方法提供自動化或半自動化的工具支持。將若干工具集成起來,與軟件工程數(shù)據(jù)庫和計算機(jī)系統(tǒng)構(gòu)成一個支持軟件開發(fā)的系統(tǒng)稱“計算機(jī)輔助軟件工程(CASE)”,系統(tǒng)中某一工具的信息加工結(jié)果可以作為另一工具的輸入。集成的軟件工程工具再加上人的因素構(gòu)成了軟件工程環(huán)境。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院43軟件開發(fā)方法和軟件工具結(jié)構(gòu)化分析方法結(jié)構(gòu)化程序設(shè)計語言面向?qū)ο蠓终鄯椒嫦驅(qū)ο蟪绦蛟O(shè)計語言1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院443.軟件和軟件開發(fā)過程軟件過程和軟件產(chǎn)品密切相關(guān)。大型軟件項目沒有良好的軟件開發(fā)過程,不可能建造出用戶滿意的優(yōu)質(zhì)產(chǎn)品;反之,一個好的軟件產(chǎn)品隱含著良好的軟件開發(fā)過程。計算機(jī)軟件領(lǐng)域產(chǎn)品和過程不斷交替創(chuàng)新,促進(jìn)軟件工程的進(jìn)步和發(fā)展。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院451.2.2軟件工程目標(biāo)

(1/6)在給定成本、進(jìn)度的前提下,開發(fā)出具有

可修改性、有效性、可靠性、可適應(yīng)性、可追蹤性、可移植性、可互操作性并滿足用戶需求的軟件產(chǎn)品。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院46軟件工程目標(biāo)

(2/6)有效性能有效地利用計算機(jī)的時間和空間資源可修改性容許對系統(tǒng)進(jìn)行修改而不增加原系統(tǒng)的復(fù)雜性,它支持軟件的調(diào)試與維護(hù)。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院47軟件工程目標(biāo)

(3/6)可靠性具有能夠防止因概念、設(shè)計和結(jié)構(gòu)等方面的不完善而造成的系統(tǒng)失效,具有挽回因操作不當(dāng)造成軟件系統(tǒng)失效的能力可理解性系統(tǒng)具有清晰的結(jié)構(gòu),能直接反映軟件需求。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院48

軟件工程目標(biāo)

(4/6)可維護(hù)性便于對軟件增加新功能、改進(jìn)性能、修改錯誤、移植

可重用性軟件易于被再次使用1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院49軟件工程目標(biāo)

(5/6)可適應(yīng)性采用流行的程序設(shè)計語言、運行環(huán)境、標(biāo)準(zhǔn)的術(shù)語和格式??勺粉櫺詫浖M(jìn)行正向和反向追蹤的能力

1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院50軟件工程目標(biāo)

(6/6)可移植性從一個環(huán)境搬遷到另一個環(huán)境

可互操作性多個軟件要素相互通訊協(xié)同完成任務(wù)的能力

1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院511.2.3軟件工程原則

(1/6)在軟件開發(fā)過程中,為了達(dá)到軟件開發(fā)目標(biāo),必須遵循下列原則:

抽象模塊化信息隱藏局部化一致性完全性可驗證性1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院52軟件工程原則

(2/6)抽象關(guān)注事物基本、重要的部分,忽略不相關(guān)成分

抽象可以使我們的思維聚焦于問題本質(zhì),從而簡化問題,控制問題復(fù)雜度,支持復(fù)雜、龐大軟件系統(tǒng)的開發(fā)。1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院53軟件工程原則

(3/6)模塊化模塊是程序中一個邏輯上相對獨立、具有良好的接口定義的編程單位:過程、函數(shù)、類、程序包等模塊化是,將復(fù)雜的系統(tǒng)分解為一個個相對獨立的模塊來加以實現(xiàn),有助于抽象和信息隱藏以及表示復(fù)雜的系統(tǒng)1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院54軟件工程原則

(4/6)信息隱藏模塊中的軟件設(shè)計決策信息封裝起來的技術(shù),只知道它的功能以及對外的接口,而不知它的內(nèi)部細(xì)節(jié)

有助于軟件開發(fā)人員的注意力集中于更高的抽象層次

1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院55

軟件工程原則

(5/6)局部化物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計算資源

確保模塊內(nèi)各成分關(guān)系密切而??熘g的關(guān)系松散,保證模塊具有良好的獨立性

1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院56軟件工程原則

(6/6)一致性整個軟件系統(tǒng)均使用統(tǒng)一的符號、概念和術(shù)語完全性整個軟件系統(tǒng)不丟失任何重要的成分,軟件完全實現(xiàn)系統(tǒng)所需的功能、行為和性能可驗證性軟件系統(tǒng)應(yīng)易于檢查、測試和評審1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院57軟件開發(fā)目標(biāo)在給定成本、進(jìn)度和滿足用戶需求的前提下,開發(fā)的軟件產(chǎn)品應(yīng)具有

可修改性有效性可靠性適應(yīng)性可追蹤性可移植性可互操作性1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院58軟件開發(fā)原則

在軟件開發(fā)過程中,為了達(dá)到軟件開發(fā)目標(biāo),必須遵循下列原則:

抽象模塊化信息隱藏局部化一致性完全性可驗證性1.2軟件工程的概念2023/10/23國防科技大學(xué)計算機(jī)學(xué)院591.3軟件生存周期軟件產(chǎn)品從形成概念開始,經(jīng)過開發(fā)、運行(使用)和維護(hù)直到退役的全過程稱為軟件生存周期,包括軟件定義、開發(fā)、使用和維護(hù)三部分。軟件工程的目標(biāo)和原則貫穿整個軟件生存周期。第一章軟件與軟件工程2023/10/23國防科技大學(xué)計算機(jī)學(xué)院60

軟件的定義和開發(fā)過程問題定義可行性研究需求分析軟件開發(fā)概要設(shè)計詳細(xì)設(shè)計實現(xiàn)組裝測試確認(rèn)測試可行性研究需求分析概要設(shè)計

詳細(xì)設(shè)計

實現(xiàn)

組裝測試確認(rèn)測試1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院611.3.1問題定義

1.可行性研究任務(wù)

了解用戶要求和現(xiàn)實環(huán)境

從技術(shù)、經(jīng)濟(jì)、市場等方面研究并論證開發(fā)該軟件系統(tǒng)的可行性1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院62可行性研究

(2/3)技術(shù)可行性當(dāng)前的軟件開發(fā)方法和工具能否支持需求的實現(xiàn);操作可行性用戶能否在特定的環(huán)境下使用這個軟件;經(jīng)濟(jì)可行性開發(fā)和使用、維護(hù)這個軟件的成本能否被用戶所接受。1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院63可行性研究(3/3)

階段性產(chǎn)品可行性論證報告制定初步項目開發(fā)計劃(人員,進(jìn)度)1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院64問題定義2.需求分析任務(wù)

確定用戶對軟件系統(tǒng)的需求:功能需求軟件必須要完成的功能;性能需求軟件的安全性、可靠性、可維護(hù)性、精度、錯誤處理、適應(yīng)性、用戶培訓(xùn)等;運行環(huán)境約束待開發(fā)的軟件產(chǎn)品必須滿足的環(huán)境要求1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院65需求分析(2/4)重要性軟件開發(fā)的依據(jù),軟件驗收的標(biāo)準(zhǔn)困難難以說清、

動態(tài)變化、

歧義、復(fù)雜、應(yīng)用軟件的需求分析涉及應(yīng)用領(lǐng)域的知識和經(jīng)驗。1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院66需求分析

(3/4)需求分析過程需求分析人員必須與用戶不斷、反復(fù)地交流和商討,使用戶需求逐步準(zhǔn)確、一致、完全。方法

面向數(shù)據(jù)流的分析方法面向數(shù)據(jù)流的分析方法面向?qū)ο蟮姆治龇椒ǔ橄蟆栴}分解、快速原型、多視點等工具

RationalRose,WitClass,VisualModel1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院67需求分析

(4/4)階段性產(chǎn)品軟件需求規(guī)格說明書SRS用軟件需求規(guī)格說明語言描述軟件系統(tǒng)的功能需求、性能需求、接口需求、設(shè)計需求、軟件產(chǎn)品的基本結(jié)構(gòu)、采用的開發(fā)標(biāo)準(zhǔn)和驗收原則等。用戶手冊概要。1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院681.3.2軟件開發(fā)1.概要設(shè)計任務(wù)根據(jù)SRS建立目標(biāo)軟件系統(tǒng)的總體結(jié)構(gòu)、設(shè)計全局?jǐn)?shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu),規(guī)定設(shè)計約束,制定組裝測試計劃等等。1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院69

概要設(shè)計

(2/3)方法根據(jù)軟件需求規(guī)格說明書,

自頂向下、逐步求精、

抽象、

模塊化、

局部化、信息隱藏…堅持功能模塊內(nèi)部緊耦合,功能模塊之間松耦合的原則;堅持與需求規(guī)格說明書的一致性

1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院70概要設(shè)計(3/3)工具

面向數(shù)據(jù)流的設(shè)計方法結(jié)構(gòu)圖面向數(shù)據(jù)流的設(shè)計方法面向?qū)ο蟮脑O(shè)計方法RationalRose階段性產(chǎn)品概要設(shè)計規(guī)格說明書數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu)設(shè)計說明書集成測試計劃。1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院712.詳細(xì)設(shè)計任務(wù)細(xì)化概要設(shè)計所生成的各個模塊,并詳細(xì)描述程序模塊的內(nèi)部細(xì)節(jié)(算法,數(shù)據(jù)結(jié)構(gòu)等),形成可編程的程序模塊,制訂單元測試計劃階段新產(chǎn)品詳細(xì)設(shè)計規(guī)格說明書,單元測試計劃1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院723.實現(xiàn)任務(wù)根據(jù)詳細(xì)設(shè)計規(guī)格說明書編寫源程序,并對程序進(jìn)行調(diào)試、單元測試、系統(tǒng)集成,驗證程序與詳細(xì)設(shè)計文檔的一致性1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院73實現(xiàn)(2/2)方法以詳細(xì)設(shè)計規(guī)格說明書為依據(jù)、基于某種程序設(shè)計語言進(jìn)行編碼結(jié)構(gòu)化程序設(shè)計面向?qū)ο蟪绦蛟O(shè)計工具VisualC++,VisualJava,etcIDE階段產(chǎn)品源程序代碼1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院74

4.組裝測試任務(wù)

組裝測試應(yīng)滿足概要設(shè)計的要求。途徑測試模塊連接的正確性;測試系統(tǒng)或子系統(tǒng)的I/O;測試系統(tǒng)的功能和性能。產(chǎn)品滿足概要設(shè)計要求的程序、組裝測試報告。1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院755.確認(rèn)測試

任務(wù)根據(jù)軟件需求規(guī)格說明書,測試軟件系統(tǒng)是否滿足用戶的需求

方法用戶參與,以軟件需求規(guī)格說明書為依據(jù)進(jìn)行確認(rèn)測試工具專用測試工具階段性產(chǎn)品可供用戶使用的軟件產(chǎn)品(文檔,源程序)1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院761.3.3軟件的使用、維護(hù)和退役軟件的使用確認(rèn)測試后的軟件安裝在用戶環(huán)境中;測試通過后移交用戶使用;盡量擴(kuò)大軟件發(fā)行量發(fā)揮更大的社會和經(jīng)濟(jì)效益;軟件使用過程中用戶要認(rèn)真收集軟件錯誤,并撰寫軟件問題報告和軟件維護(hù)報告1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院77軟件的使用、維護(hù)和退役軟件的維護(hù)軟件工作環(huán)境不斷變化,軟件也必然跟著變化,軟件必須不斷進(jìn)化以滿足客戶的需求變化,這是軟件產(chǎn)品最根本的特性。軟件維護(hù)占用軟件開發(fā)60%以上的工作量。正確性維護(hù);擴(kuò)充性維護(hù);適應(yīng)性維護(hù)。軟件產(chǎn)品的新版本

1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院78軟件的使用、維護(hù)和退役軟件的退役終止軟件運行。1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院79軟件定義開發(fā)與測試的關(guān)系1.3軟件生存周期2023/10/23國防科技大學(xué)計算機(jī)學(xué)院801.4軟件開發(fā)模型軟件開發(fā)模型是軟件開發(fā)全過程、軟件開發(fā)活動以及它們之間關(guān)系的的結(jié)構(gòu)框架軟件項目的管理提供里程碑和進(jìn)度表為軟件開發(fā)提供原則和方法第一章軟件與軟件工程2023/10/23國防科技大學(xué)計算機(jī)學(xué)院81軟件開發(fā)模型三類軟件開發(fā)模型1.以軟件需求完全確定為前提的瀑布模型2.在軟件開發(fā)初期只能提供基本需求所采用的漸進(jìn)式開發(fā)模型如原型模型、螺旋模型3.以形式化開發(fā)方法為基礎(chǔ)的變換模型1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院821.4.1瀑布模型

(1/4)

主要思想軟件開發(fā)過程與軟件生命周期是一致的相鄰二階段之間存在因果關(guān)系需對階段性產(chǎn)品進(jìn)行評審1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院83瀑布模型

(2/4)1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院84瀑布模型的優(yōu)點(3/4)軟件生命周期模型,使軟件開發(fā)過程可以在分析、設(shè)計、編碼、測試和維護(hù)的框架下進(jìn)行;軟件開發(fā)過程具有系統(tǒng)性、可控性,克服了軟件開發(fā)的隨意性

。1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院85瀑布模型的缺點(4/4)

項目開始階段用戶很難精確的提出產(chǎn)品需求,由于技術(shù)進(jìn)步,用戶對系統(tǒng)深入的理解,修改需求十分普遍。項目開發(fā)晚期才能得到程序的運行版本,這時修改軟件需求和開發(fā)中的錯誤代價很大。采用線性模型組織項目開發(fā)經(jīng)常發(fā)生開發(fā)小組人員“堵塞狀態(tài)”,特別是項目的開始和結(jié)束。1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院861.4.2快速原型模型用戶/客戶給出軟件產(chǎn)品的一般需求開發(fā)小組和用戶共同定義軟件總體目標(biāo),標(biāo)識已知需求對界面、功能、人機(jī)交互方式等,進(jìn)行設(shè)計并建造原型1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院87快速原型模型強(qiáng)調(diào)“快速”,釆用基于構(gòu)件的軟件開發(fā)方法,盡量縮短軟件開發(fā)周期,不宜釆用過多的新技術(shù)用戶/客戶對原型進(jìn)行評估修改需求、更新設(shè)計、完善原型直至確定需求。1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院88原型模型示意圖1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院89RAD模型的開發(fā)過程(1/3)業(yè)務(wù)建模按照下列問題建立業(yè)務(wù)功能的信息流模型:什么信息驅(qū)動業(yè)務(wù)流程?生成什么信息?誰生成該信息?該信息流往何處?誰處理它?數(shù)據(jù)建模精化信息流,形成一組支持該業(yè)務(wù)所需的數(shù)據(jù)對象。標(biāo)識出每個對象的特征(稱為屬性),并定義這些對象間的關(guān)系。業(yè)務(wù)建模數(shù)據(jù)建模過程建模應(yīng)用生成測試修正1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院90RAD模型的開發(fā)過程(2/3)過程建模對定義的數(shù)據(jù)對象進(jìn)行變換,實現(xiàn)一個業(yè)務(wù)功能所需的信息流。創(chuàng)建過程描述以增加、修改、刪除或檢索一個數(shù)據(jù)對象。業(yè)務(wù)建模數(shù)據(jù)建模過程建模應(yīng)用生成測試修正1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院91RAD模型的開發(fā)過程(3/3)應(yīng)用生成

采用第四代技術(shù)創(chuàng)建軟件、重用已有的程序構(gòu)件或創(chuàng)建可重用的構(gòu)件。使用自動化工具輔助軟件建造。測試修正RAD過程強(qiáng)調(diào)重用,許多程序構(gòu)件已經(jīng)過測試,但所有新構(gòu)件和接口必須測試。業(yè)務(wù)建模數(shù)據(jù)建模處理建模應(yīng)用生成測試修正1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院92原型模型的優(yōu)點原型模型支持軟件需求開發(fā),幫助用戶和開發(fā)人員理解需求,是軟件需求工程的關(guān)鍵。它產(chǎn)生的正式需求文擋,是軟件開發(fā)的基礎(chǔ)。如果開發(fā)的原型是可運行的,它的若干高質(zhì)量的程序片段和開發(fā)工具可用于工作程序的開發(fā)。原型的開發(fā)和評審是系統(tǒng)分析員和用戶/客戶共同參予的迭代過程,每個迭代循環(huán)都是線性過程。1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院93原型模型的缺點對于大型軟件項目,原型模型需要足夠的人力資源以建立足夠的原型組。原型模型要求開發(fā)者和客戶在一段時間內(nèi)共同完成原型系統(tǒng)的開發(fā),如果任何一方?jīng)]有實現(xiàn)承諾,會導(dǎo)致原型開發(fā)的失敗。如果系統(tǒng)難以模塊化,建造原型所需構(gòu)件就有問題;如果高性能是一個指標(biāo),原型模型也可能不奏效。原型模型不適合采用很多新技術(shù)的項目1.4軟件開發(fā)模型2023/10/23國防科技大學(xué)計算機(jī)學(xué)院94原型模型

溫馨提示

  • 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

提交評論