软件工程概念
軟件工程概念
? ? ? ? ??軟件
? ? ? ? ? 軟件的概念:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。
? ? ? ? ? 軟件危機(jī)的概念:軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)、使用和維護(hù)過程中遇到的一系列嚴(yán)重問題。
? ? ? ? ? 軟件生存周期的概念:軟件生存周期是指一個(gè)計(jì)算機(jī)軟件從功能確定、設(shè)計(jì),到開發(fā)成功投入使用,并在使用中不斷地修改、增補(bǔ)和完善,直到停止該軟件的使用的全過程。
? ? ? ? ??軟件工程
? ? ? ? ? 軟件工程的概念:軟件工程學(xué)是一門指導(dǎo)軟件開發(fā)和維護(hù)的工程學(xué)科,是為了經(jīng)濟(jì)地獲得能夠在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件而建立和使用的一系列完善的工程化原則。它應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,借鑒傳統(tǒng)工程的原則、方法來生產(chǎn)軟件,以達(dá)到提高質(zhì)量、降低成本的目的。
? ? ? ? ? 軟件工程三要素:方法,工具和過程。
? ? ? ? ? 方法為軟件開發(fā)提供了“如何做”的技術(shù),是指導(dǎo)研制軟件的某種標(biāo)準(zhǔn)規(guī)范。它包括了多方面的任務(wù),如項(xiàng)目計(jì)劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、算法的設(shè)計(jì)、編碼、測(cè)試以及維護(hù)等。軟件工程方法常采用某種特殊的語言或圖形的表達(dá)方法及一套質(zhì)量保證標(biāo)準(zhǔn)。
? ? ? ? ? 工具是指軟件開發(fā)、維護(hù)和分析中使用的程序系統(tǒng),為軟件工程方法提供自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境。
? ? ? ? ? 過程則是將軟件工程的方法和工具綜合起來以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開發(fā)的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理及軟件開發(fā)各個(gè)階段完成的“里程碑”。
? ? ? ? ??軟件開發(fā)方法
? ? ? ? ??結(jié)構(gòu)化方法
? ? ? ? ? 結(jié)構(gòu)化方法的基本思想可以概括為自頂向下、逐步求精,采用模塊化技術(shù)和功能抽象將系統(tǒng)按功能分解為若干模塊,從而將復(fù)雜的系統(tǒng)分解成若干易于控制和處理的子系統(tǒng),子系統(tǒng)又可分解為更小的子任務(wù),最后的子任務(wù)都可以獨(dú)立編寫成子程序模塊,模塊內(nèi)部由順序、選擇和循環(huán)等基本控制結(jié)構(gòu)組成。這些模塊功能相對(duì)獨(dú)立,接口簡(jiǎn)單,使用維護(hù)非常方便。所以,結(jié)構(gòu)化方法是一種非常有用的軟件開發(fā)方法,是其他軟件工程方法的基礎(chǔ)。
? ? ? ? ??面向?qū)ο蠓椒?/span>
? ? ? ? ? 面向?qū)ο蠓椒ㄅc過程盡可能接近人類認(rèn)識(shí)世界、解決問題的方法與過程,將客觀世界中的實(shí)體抽象為問題域中的對(duì)象。
? ? ? ? ??軟件開發(fā)工具
? ? ? ? ? 軟件開發(fā)工具為軟件開發(fā)方法提供自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境。當(dāng)一種方法提出并證明有效后,往往就會(huì)隨之研制出相應(yīng)的軟件開發(fā)工具,來幫助實(shí)現(xiàn)和推行這種方法,提高軟件設(shè)計(jì)效率,減輕勞動(dòng)強(qiáng)度。
? ? ? ? ??傳統(tǒng)軟件工程
? ? ? ? ? 傳統(tǒng)的軟件工程采用瀑布模型作為軟件工程的基本模型,把軟件開發(fā)和運(yùn)行過程劃分為6個(gè)階段:軟件計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試、運(yùn)行和維護(hù)等,強(qiáng)調(diào)各階段的完整性和先后順序,根據(jù)不同階段的工作特點(diǎn),運(yùn)用不同的手段完成各階段的任務(wù)。軟件開發(fā)人員遵循嚴(yán)格的規(guī)范,在每一階段工作結(jié)束時(shí)都要進(jìn)行階段評(píng)審和確認(rèn),以得到該階段的一致、完整、正確和無多義性的文檔資料,把這些文檔資料作為階段結(jié)束的標(biāo)志“凍結(jié)”起來,并以它們作為下一階段工作的基礎(chǔ)。然后,再一步步地實(shí)現(xiàn)這些目標(biāo),從而保證軟件的質(zhì)量。
? ? ? ? ??面向?qū)ο蟮能浖こ?/span>
? ? ? ? ??基本思想
? ? ? ? ? 面向?qū)ο蠓椒ǖ幕舅枷胧菑默F(xiàn)實(shí)世界中客觀存在的事物出發(fā)來構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類的自然思維方式。開發(fā)一個(gè)軟件是為了解決某些問題,這些問題所涉及的業(yè)務(wù)范圍稱作該軟件的問題域。面向?qū)ο蠓椒◤?qiáng)調(diào)直接以問題域(現(xiàn)實(shí)世界)中的事物為中心來思考問題、認(rèn)識(shí)問題,并根據(jù)這些事物的本質(zhì)特征,把它們抽象地表示為系統(tǒng)中的對(duì)象,作為系統(tǒng)的基本構(gòu)成單位。因此,面向?qū)ο蠓椒梢允瓜到y(tǒng)直接地映射問題域,保持問題域中事物及其相互關(guān)系的本來面貌。
? ? ? ? ??出發(fā)點(diǎn)和基本原則
? ? ? ? ? 盡可能模擬人類所習(xí)慣的思維方式,使開發(fā)軟件的方法和過程盡可能接近人類認(rèn)識(shí)世界、解決問題的方法和過程,即使描述問題的問題域與實(shí)現(xiàn)解法的求解域在結(jié)構(gòu)上盡可能一致。
? ? ? ? ??主要內(nèi)容
? ? ? ? ? 面向?qū)ο蟮能浖こ贪嫦驅(qū)ο蟮姆治觥⒚嫦驅(qū)ο蟮脑O(shè)計(jì)、面向?qū)ο蟮木幊毯兔嫦驅(qū)ο蟮臏y(cè)試。
? ? ? ? ??主要優(yōu)點(diǎn)
? ? ? ? ? 符合人們通常的思維方式
? ? ? ? ? 高度連續(xù)性
? ? ? ? ? 重用性好
? ? ? ? ? 可維護(hù)性好
總結(jié)