【正文】
用戶的角度以一種高度負(fù)責(zé),甚至近乎苛刻的嚴(yán)格態(tài)度來(lái)對(duì)軟件進(jìn)行徹底的測(cè)試。所以說(shuō),尤其在軟件進(jìn)入具體開發(fā)階段后,能否遵循要點(diǎn)進(jìn)行管理是很重要的。除非這個(gè)項(xiàng)目經(jīng)理在項(xiàng)目開始階段就已經(jīng)提出來(lái)了這個(gè)項(xiàng)目會(huì)失敗,或者是完全屬于項(xiàng)目之外不可抗拒的原因?qū)е率?。難道是程序員技能不夠?項(xiàng)目經(jīng)理是如何面試的?怎么在項(xiàng)目失敗了才發(fā)現(xiàn)是程序員技能不夠?有問(wèn)題早提出來(lái)嘛。程序很多流程都通過(guò)不了,程序還屬于開發(fā)調(diào)試階段,與測(cè)試人員有什么關(guān)系?我曾經(jīng)在單位參加一些項(xiàng)目,發(fā)現(xiàn)有這樣一個(gè)概念很多項(xiàng)目經(jīng)理都沒(méi)有搞清楚:什么叫開發(fā)階段?我認(rèn)為開發(fā)階段最多只能包括單元測(cè)試這一部分。程序隨便正常操作都出現(xiàn)好多bug屬于開發(fā)還沒(méi)有完成,絕對(duì)還沒(méi)有過(guò)單元測(cè)試階段,離綜合測(cè)試和驗(yàn)收階段還早著呢。不懂程序設(shè)計(jì)的項(xiàng)目經(jīng)理,往往不注重code開發(fā)人員,其實(shí)這是一個(gè)嚴(yán)重的錯(cuò)誤。也就是說(shuō),我們盡量不要讓測(cè)試人員來(lái)發(fā)現(xiàn)問(wèn)題。這樣的版本根本就不應(yīng)該拿出來(lái)進(jìn)行測(cè)試。總的說(shuō)來(lái),一個(gè)項(xiàng)目的成敗與否,與項(xiàng)目的各個(gè)階段皆有關(guān)系:需求都不清楚,開發(fā)起來(lái)肯定是南轅北轍;分析設(shè)計(jì)不夠好,會(huì)讓程序員難以維護(hù),隨著新增需求的增多,會(huì)導(dǎo)致整個(gè)系統(tǒng)混亂不可控制;編碼不好,整個(gè)系統(tǒng)不穩(wěn)定是必然的,Bug也是抓不盡的;測(cè)試不做好,系統(tǒng)是沒(méi)有保證的,少了哪個(gè)環(huán)節(jié)都不行。不要說(shuō)項(xiàng)目的失敗是因?yàn)樾滦枨笠鸬?一個(gè)沒(méi)有新增需求和風(fēng)險(xiǎn)的項(xiàng)目是不存在的,承認(rèn)這一點(diǎn)之后,我們就不會(huì)有很多怨言了。項(xiàng)目計(jì)劃一定要包括這幾方面的內(nèi)容:各階段里程碑時(shí)間點(diǎn),各個(gè)里程碑的輸出結(jié)果,風(fēng)險(xiǎn)預(yù)測(cè),意外應(yīng)對(duì)。進(jìn)度監(jiān)控:對(duì)每個(gè)階段把握好,每個(gè)階段要完成的任務(wù)一定要完成,如果完不成,是什么原因?qū)е碌??我們的?yīng)對(duì)策略是什么?我們要信任別人,但是不要忘記鎖門。有的項(xiàng)目經(jīng)理說(shuō),我也進(jìn)度監(jiān)控啦,他說(shuō)完成了就完成了,誰(shuí)想到?jīng)]有完成?到底是程序員不誠(chéng)實(shí)還是項(xiàng)目沒(méi)有管理好?你沒(méi)有鎖好門,能怨別人偷你東西嗎?還有一種情況就是不懂如何鎖門,根本就不知道這一階段的輸出結(jié)果是什么?當(dāng)然進(jìn)度監(jiān)控就是一句空話了。需求分析階段的質(zhì)量監(jiān)控就是完整而又正確的理解用戶需求,需求是否清楚可懂,寫用例的測(cè)試人員是否明白需求?分析設(shè)計(jì)階段的質(zhì)量監(jiān)控就是設(shè)計(jì)是否完全滿足需求?這個(gè)設(shè)計(jì)方案是否滿足以后新功能的擴(kuò)展?以及是否有考慮到新功能的意外和設(shè)備環(huán)境,運(yùn)行平臺(tái)的變化?編碼階段的質(zhì)量監(jiān)控就是變量命名是否規(guī)范?代碼是否可讀?是否有詳細(xì)的注釋?是否有重復(fù)代碼?要知道重復(fù)代碼是必然會(huì)造成系統(tǒng)不穩(wěn)定,bug成群的。要知道上面講的每一部分如果沒(méi)有做好,都會(huì)導(dǎo)致后期的產(chǎn)品出現(xiàn)大量問(wèn)題。單元測(cè)試階段的質(zhì)量監(jiān)控任務(wù)就是單元測(cè)試代碼是否測(cè)試通過(guò)?代碼覆蓋是否完全?單元測(cè)試報(bào)告提交情況如何?單元測(cè)試用例有沒(méi)有做好? 綜合測(cè)試階段質(zhì)量監(jiān)控任務(wù)當(dāng)然就是看用例是否完全?是否全部真正執(zhí)行?測(cè)試報(bào)告有沒(méi)有寫好?回歸測(cè)試當(dāng)然得看以前測(cè)試的Bug是否還在,如果還在,當(dāng)然是無(wú)條件打回去重新開發(fā)。以上就是我重學(xué)《軟件工程》并結(jié)合實(shí)際工作經(jīng)驗(yàn)所得到的啟示,不妥之處請(qǐng)劉老師批評(píng)指正!第三篇:軟件工程總結(jié)軟件工程課程總結(jié)摘要:計(jì)算機(jī)是20世紀(jì)最重大的科學(xué)技巧成就之一,使當(dāng)代社會(huì)的經(jīng)濟(jì)、軍事、科研、教育、服務(wù)等方面在概念和技巧上發(fā)生了性的變化,對(duì)人類社會(huì)的進(jìn)步已經(jīng)并還將產(chǎn)生極為深刻的影響。電子計(jì)算機(jī)早期功效主要是計(jì)算,后來(lái)已遠(yuǎn)遠(yuǎn)超越單純計(jì)算的功效,還可模擬、思維、進(jìn)行自適應(yīng)反饋處理等等,把它叫做“電腦”更為合實(shí)際。計(jì)算機(jī)學(xué)科分為四個(gè)領(lǐng)域,分別是計(jì)算機(jī)科學(xué),計(jì)算機(jī)工程,軟件工程和信息系統(tǒng)。包括項(xiàng)目管理,分析,設(shè)計(jì),程序的編寫,測(cè)試和質(zhì)量控制。學(xué)了《軟件工程》這門課程和一些有關(guān)資料后,感覺一些東西都曾經(jīng)接觸過(guò),但在實(shí)際工作中有些理論要完全遵循可能還有些障礙,軟件工程只是提供了理論上的一些結(jié)論,但對(duì)項(xiàng)目的具體可操作性的規(guī)范的制定方面卻做的很少,《軟件工程》發(fā)展了幾十年,光是開發(fā)模型就達(dá)到了10多種,對(duì)不同的項(xiàng)目采用合適的開發(fā)模式,有些項(xiàng)目在不同的開發(fā)階段可能還要轉(zhuǎn)換開發(fā)模式,把它們靈活的應(yīng)用到實(shí)際中還是很困難的。當(dāng)今世界,信息技術(shù)正處于新一輪重大技術(shù)突破的前夜。近年來(lái),從 IT 界到一些國(guó)家首腦,都高度關(guān)注以物聯(lián)網(wǎng)為標(biāo)志的新一輪信息技術(shù)的發(fā)展態(tài)勢(shì),認(rèn)為這是繼 20 世紀(jì) 80 年代 PC 機(jī)、90 年代互聯(lián)網(wǎng)、移動(dòng)通信網(wǎng)之后,將引發(fā) IT 業(yè)突破性發(fā)展的第三次 IT 產(chǎn)業(yè)化浪潮。近年來(lái),信息技術(shù)、軟件技術(shù)、軟件系統(tǒng)與軟件產(chǎn)業(yè)的發(fā)展備受關(guān)注,已有不少論述、分析與判斷。業(yè)界關(guān)于軟件工程的代表性觀點(diǎn)創(chuàng)立與使用健全的工程原則,以便經(jīng)濟(jì)地獲得可靠且高效率的軟件。與開發(fā)、管理及更新軟件產(chǎn)品有關(guān)的理論、方法及工具。實(shí)際應(yīng)用科學(xué)知識(shí)在設(shè)計(jì)、建構(gòu)電腦程序,與相伴而來(lái)所產(chǎn)生的文件,以及后續(xù)的操作和維護(hù)上。7建造由工程師團(tuán)隊(duì)所開發(fā)之大型軟件系統(tǒng)有關(guān)的知識(shí)學(xué)科。系統(tǒng)化地應(yīng)用工具和技術(shù)于開發(fā)以計(jì)算機(jī)為主的應(yīng)用?!盾浖こ獭肥且婚T綜合性和實(shí)踐性很強(qiáng)的核心課程,它屬于是一門交叉學(xué)科,包含有:軟件開發(fā)技術(shù)(軟件開發(fā)方法學(xué)、軟件開發(fā)過(guò)程、軟件工具和軟件工程環(huán)境)、軟件工程管理(軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)、軟件心理學(xué))。本課程是面向準(zhǔn)備從事軟件開發(fā)的畢業(yè)生而開設(shè)的一門專業(yè)課程。我理解,軟件工程是按照工程學(xué)的管理方式,有組織、有計(jì)劃的,在一定的質(zhì)量基礎(chǔ)、時(shí)間限度和成本范圍內(nèi),實(shí)現(xiàn)功能明確的軟件系統(tǒng)。軟件工程項(xiàng)目是一個(gè)需要一步一步的計(jì)算,分析思考而來(lái)的,需要不斷思考,研究不斷進(jìn)步,軟件業(yè)作為一個(gè)服務(wù)業(yè),要想得到發(fā)展,首先必須形成一個(gè)對(duì)軟件服務(wù)有迫切需要的市場(chǎng)。軟件的消費(fèi)群體簡(jiǎn)單一點(diǎn),可以分為個(gè)體消費(fèi)和企業(yè)消費(fèi)。上規(guī)模的企業(yè)極少。隨著信息化時(shí)代的到來(lái)其地位越來(lái)越受到人們的重視,軟件工程從一個(gè)學(xué)科,或是某一個(gè)研究方向來(lái)說(shuō),人員僅僅是過(guò)程,方法的執(zhí)行者,所以人員素質(zhì)往往被忽略,軟件工程是一門實(shí)踐性很強(qiáng)的學(xué)科,所以在實(shí)際的軟件研究過(guò)程中,人員的素質(zhì)占有很重要的地位。軟件技術(shù)不是一成不變的,是隨著社會(huì)的進(jìn)步的不斷進(jìn)步,不需要不斷的創(chuàng)新,不斷的改善的,需要我們不斷的學(xué)習(xí),不斷的研究,不斷進(jìn)步。程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列。文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文資料。軟件的特性,判斷正誤:、不可見的邏輯實(shí)體,因此,軟件是無(wú)法描述的。(對(duì))有缺陷的軟件就是廢品。(錯(cuò))由于軟件的開發(fā)充滿人的個(gè)性特點(diǎn),因此管理并不決定軟件開發(fā)的成敗(錯(cuò))。(對(duì))合格的軟件產(chǎn)品不需要維護(hù),軟件需要維護(hù)說(shuō)明其質(zhì)量不合格。(錯(cuò))軟件的分類:1,系統(tǒng)軟件:能與計(jì)算機(jī)硬件緊密配合在一起,使計(jì)算機(jī)系統(tǒng)各個(gè)部件,相關(guān)的軟件和數(shù)據(jù)協(xié)調(diào),高效的工作的軟件。3,支撐軟件,也叫工具軟件,是協(xié)助用戶開發(fā)軟件的工具性軟件。IEEE給出的定義:軟件工程是開發(fā),運(yùn)行,維護(hù)和修復(fù)軟件的系統(tǒng)方法。軟件危機(jī)的典型表現(xiàn)成本太高,預(yù)算不準(zhǔn)超過(guò)預(yù)計(jì)時(shí)間軟件質(zhì)量標(biāo)準(zhǔn)不明確生產(chǎn)率低缺乏文檔資料,難以維護(hù)。除了知識(shí)背景的差異,缺少合適的交流方法及需求描述工具。4,隨著軟件規(guī)模的增大,其復(fù)雜性往往會(huì)呈指數(shù)級(jí)升高。軟件危機(jī)發(fā)生的主要原因有:遇到了無(wú)法解決的高難度技術(shù)問(wèn)題(不是)無(wú)法招聘到足夠的編程高手(不是)軟件人員與用戶互相不理解(是)計(jì)劃和管理不科學(xué)、落實(shí)不力(是)軟件質(zhì)量標(biāo)準(zhǔn)不明確(是)軟件的質(zhì)量特性包括(選擇)問(wèn)題1:功能性可靠性使用性經(jīng)濟(jì)性(不包括)軟件的質(zhì)量特性包括(選擇)問(wèn)題2:效率可維護(hù)性可移植性經(jīng)濟(jì)性(不包括)軟件工程的目標(biāo)是運(yùn)用先進(jìn)的軟件開發(fā)技術(shù)和管理方法來(lái)提高軟件的質(zhì)量和生產(chǎn)率,也就是要以較短的周期,較低的成本生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,并最終實(shí)現(xiàn)軟件的工業(yè)化生產(chǎn)。軟件生存期由軟件定義,軟件開發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可劃分為若干個(gè)階段。通常又分為3個(gè)階段:?jiǎn)栴}定義,可行性研究,需求分析。由概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試4個(gè)階段組成。開發(fā)過(guò)程中的典型文檔:軟件需求規(guī)格說(shuō)明書。軟件測(cè)試計(jì)劃。用戶手冊(cè)。需求分析工具結(jié)構(gòu)化圖形工具箱。包括DFD圖形工具,實(shí)體關(guān)系圖(ER)圖形工具,Jackson圖形工具,Warnier圖形工具,Visio綜合工具,面向?qū)ο蠊ぞ?,Rational Rose,PowerDesigner,Visio 設(shè)計(jì)工具(1)概要設(shè)計(jì)工具:設(shè)計(jì)目標(biāo)軟件的體系結(jié)構(gòu)、控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。模塊的數(shù)據(jù)結(jié)構(gòu)通常用實(shí)體關(guān)系圖來(lái)描述。Rational Rose 詳細(xì)設(shè)計(jì)工具。詳細(xì)設(shè)計(jì)描述方法有輸入處理輸出(IPO)圖。盒圖(NS圖)。程序設(shè)計(jì)語(yǔ)言(PDL)。判定表。獲取并理解用戶的需求是軟件工程師所面對(duì)的最困難的任務(wù)之一。與用戶進(jìn)行各種方式的交流,并使用調(diào)查研究方法收集信息。將獲取的需求文檔化,形式有用例,決策表,決策樹等。獲取具體的需求的途徑1,與用戶交流。3,系統(tǒng)需求規(guī)格說(shuō)明。5,市場(chǎng)調(diào)查和用戶問(wèn)卷調(diào)查。關(guān)于需求獲取問(wèn)題的認(rèn)識(shí)辨析:沒(méi)有與用戶交流就不可能獲取系統(tǒng)需求。(一些需求從用戶以外的途徑獲?。┫到y(tǒng)開發(fā)必須獨(dú)立完成,參考類似系統(tǒng)及技術(shù)文檔屬于抄襲行為,應(yīng)予避免。(對(duì))需求調(diào)查時(shí),用戶所說(shuō)的需求未必是真實(shí)、準(zhǔn)確的需求,因此需求分析需要依賴用戶,但是不能過(guò)分迷信用戶。(對(duì))軟件需求分析階段的任務(wù):需求獲取,需求分析,需求定義,需求驗(yàn)證。結(jié)構(gòu)化分析方法:是一種建模技術(shù)。功能模型用數(shù)據(jù)流圖(DFD)來(lái)描述使用實(shí)體—關(guān)系圖(ER圖)建立數(shù)據(jù)模型。數(shù)據(jù)字典。需求建模的依據(jù)是需求描述數(shù)據(jù)建模,ER圖,需要認(rèn)真看。軟件的體系結(jié)構(gòu)設(shè)計(jì),模塊化設(shè)計(jì)都是分而治之策略的具體表現(xiàn)。模塊是構(gòu)成軟件的基本構(gòu)件。模塊的獨(dú)立性是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而與軟件系統(tǒng)中其他模塊的接口是簡(jiǎn)單的,若一個(gè)模塊只具有單一的功能且與其他模塊沒(méi)有太多的聯(lián)系,那么稱此模塊有獨(dú)立性。復(fù)用是指同一事物不做修改或稍加修改就可以多次重復(fù)使用,將服用的思想用于軟件開發(fā),稱為軟件復(fù)用。2是如果確實(shí)需要?jiǎng)?chuàng)建新的構(gòu)件,則在設(shè)計(jì)時(shí)應(yīng)該考慮將來(lái)的可重復(fù)使用性。從技術(shù)的角度,傳統(tǒng)的結(jié)構(gòu)化方法將軟件設(shè)計(jì)劃分為體系結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)和過(guò)程設(shè)計(jì)4部分;概要設(shè)計(jì)包括體系結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)。軟件設(shè)計(jì)各項(xiàng)設(shè)計(jì)工作的依據(jù):體系結(jié)構(gòu)設(shè)計(jì),定義軟件模塊及其之間的關(guān)系,依賴于數(shù)據(jù)流圖。接口設(shè)計(jì),依賴于頂層數(shù)據(jù)流圖。典型的數(shù)據(jù)流類型有變換型數(shù)據(jù)流和事務(wù)型數(shù)據(jù)流。軟件模塊結(jié)構(gòu)的改進(jìn)方法:1,模塊功能的完善化。3,模塊的作用范圍應(yīng)在控制范圍之內(nèi)。5,避免或減少使用病態(tài)連接。接口設(shè)計(jì)的依據(jù)是數(shù)據(jù)流圖中的自動(dòng)化系統(tǒng)邊界。第五章編碼編碼容易出現(xiàn)的風(fēng)格不足變量或函數(shù)名字缺乏具體含義變量或函數(shù)名字與其用途不符變量或函數(shù)未加上必要的注釋函數(shù)未說(shuō)明其功能、參數(shù)的意義引用的符號(hào)未加以解釋和說(shuō)明對(duì)循環(huán)等重要的程序語(yǔ)句未注釋對(duì)用到的重要庫(kù)函數(shù)沒(méi)有解釋說(shuō)明對(duì)結(jié)構(gòu)體等復(fù)雜數(shù)據(jù)結(jié)構(gòu)的組成成分沒(méi)有解釋說(shuō)明缺乏必要的提示語(yǔ)句 第六章軟件測(cè)試方法軟件測(cè)試是在軟件投入生產(chǎn)性運(yùn)行之前,對(duì)軟件需求分析,設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終復(fù)審,是軟件質(zhì)量控制的關(guān)鍵步驟。