高級軟件工程課程報告_第1頁
高級軟件工程課程報告_第2頁
高級軟件工程課程報告_第3頁
高級軟件工程課程報告_第4頁
高級軟件工程課程報告_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

-大學(xué)研究生課程論文題目 高級軟件工程課程報告 成績專業(yè)年級

軟件工程課程名稱、代碼高級軟件工程062013級學(xué)號時間2014年7月任課教師-大學(xué)研究生答題紙專業(yè) 軟件工程

成績課程名稱、代碼年級

2013級學(xué) 號時間2014

7

月高級軟件工程課程報告摘要:本門課程的前幾次課是由劍飛老師代課,他主要講了軟件項(xiàng)目的開發(fā)流程,重點(diǎn)講述了軟件測試的必要性和重要性。本門課程的后半部分課時都是由黃哲學(xué)老師代課,教學(xué)的主要容是數(shù)據(jù)挖掘相關(guān)的知識。關(guān)鍵詞:軟件項(xiàng)目;軟件測試;數(shù)據(jù)挖掘1軟件工程部分本門課程的前幾次課是由劍飛老師代課,他主要講了軟件項(xiàng)目的開發(fā)流程,重點(diǎn)講述了軟件測試的必要性和重要性。1.1軟件項(xiàng)目開發(fā)流程軟件項(xiàng)目的開發(fā)流程包括以下幾個部分:1需求分析2概要設(shè)計3詳細(xì)設(shè)計4編碼5測試6軟件交付7驗(yàn)收8維護(hù)。在需求分析階段,系統(tǒng)分析員向用戶了解需求,并將細(xì)化后的需求轉(zhuǎn)化為相對應(yīng)的功能模塊,接著開發(fā)者需要對軟件系統(tǒng)進(jìn)行概要設(shè)計,即系統(tǒng)設(shè)計。概要設(shè)計需要對軟件系統(tǒng)的設(shè)計進(jìn)行考慮,包括系統(tǒng)的基本處理流程、系統(tǒng)的組織結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計、運(yùn)行設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計和出錯處理設(shè)計等,為軟件的詳細(xì)設(shè)計提供基礎(chǔ)。在概要設(shè)計的基礎(chǔ)上,開發(fā)者需要進(jìn)行軟件系統(tǒng)的詳細(xì)設(shè)計。在詳細(xì)設(shè)計中,需要描述實(shí)現(xiàn)具體模塊所涉及到的主要算法、數(shù)據(jù)結(jié)構(gòu)、類的層次結(jié)構(gòu)及調(diào)用關(guān)系,說明軟件系統(tǒng)各個層次中的每一個程序,每個模塊或子程序的設(shè)計考慮,以便進(jìn)行編碼和測試。在詳細(xì)設(shè)計之后,編程人員就開始進(jìn)行編碼工作,著手實(shí)現(xiàn)軟件項(xiàng)目。在進(jìn)行各項(xiàng)測試之后,軟件項(xiàng)目就到了交付給用戶的階段,之后就由用戶進(jìn)行項(xiàng)目驗(yàn)收。用戶驗(yàn)收完畢并不是軟件開發(fā)周期的終點(diǎn),后續(xù)還有維護(hù)的過程,在這個階段里,編程人員根據(jù)用戶需求的變化或環(huán)境的變化,對應(yīng)用程序進(jìn)行全部或部分的修改。1.2軟件測試方法隨著軟件市場的逐漸成熟,人們對軟件作用的期望值也越來越高,對軟件質(zhì)量的要求也相應(yīng)提升,軟件測試的目的即是保證軟件質(zhì)量,因此,軟件測試這一之前會被忽略的過程現(xiàn)在越來越受到人們的重視。軟件測試領(lǐng)域主要有兩種類型的測試方法,白盒測試和黑盒測試。軟件的白盒測試是對軟件的過程性細(xì)節(jié)做細(xì)致的檢查。它要求全面了解程序部邏輯結(jié)構(gòu)、對所有邏輯路徑進(jìn)行測試,它是一種窮舉路徑測試。在使用這一方案時,測試者必須檢查程序部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。軟件人員使用白盒測試方法,主要想對程序模塊進(jìn)行如下的檢查:1對程序模塊的所有獨(dú)立的執(zhí)行路徑至少測試1次;2對所有的邏輯判定,取"真”與取"假”的兩種情況都至少測試1次;3在循環(huán)的邊界和運(yùn)行界限執(zhí)行循環(huán)體;4測試部數(shù)據(jù)結(jié)構(gòu)的有效性。不過即使每條路徑都測試了仍然可能有錯誤:窮舉路徑-測試決不能查出程序是否違反了設(shè)計規(guī),即程序本身可能是個錯誤的程序;窮舉路徑測試不可能查出程序中因遺漏路徑而出錯;窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯誤。所以白盒測試雖然深入程序部、更具有技術(shù)特征但并不是萬能的,有些錯誤反而利用黑盒測試更容易檢查出來。黑盒測試主要是測試功能部分是否符合要求。它是一種根據(jù)軟件需求,設(shè)計文檔,模擬客戶場景隨系統(tǒng)進(jìn)行的實(shí)際測試。這種測試技術(shù)涵蓋了測試的方方面面,它主要是為了發(fā)現(xiàn)以下幾類錯誤:是否有不正確或遺漏的功能;在接口上輸入是否能正確的接受及能否輸出正確的結(jié)果;是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息訪問方面的錯誤;性能上是否能夠滿足要求;是否有初始化或終止性錯誤。黑盒測試實(shí)際上是檢查以下幾點(diǎn)是否滿足要求:1計算結(jié)果,命名等方面的正確性;2可用性,即程序是否可以滿足軟件的需求說明;3邊界條件,輸入部分的邊界值,試試最大最小和非法數(shù)據(jù)等等;4性能問題,如果在測試過程中發(fā)現(xiàn)性能問題,修復(fù)起來是非常艱難的,因?yàn)檫@常常意味著程序的算法不好或結(jié)構(gòu)不好,因此在產(chǎn)品開發(fā)的開始階段,就要考慮到軟件的性能問題;5壓力測試,多用戶情況可以考慮使用壓力測試工具;6錯誤恢復(fù)能力,錯誤處理,頁面數(shù)據(jù)驗(yàn)證,包括突然間斷電、輸入臟數(shù)據(jù)等;7安全性測試,例如防火墻、補(bǔ)丁包、殺毒軟件等;8兼容性,不同瀏覽器,不同應(yīng)用程序版本在實(shí)現(xiàn)功能時,希望有著理想的兼容性。1.3軟件工程課程心得通過老師的課程,我了解了軟件項(xiàng)目開發(fā)的完整流程,在學(xué)習(xí)之前我錯誤的認(rèn)為軟件項(xiàng)目開發(fā)完成交付給用戶之后就算得上是軟件項(xiàng)目的結(jié)束了,學(xué)習(xí)之后才知道,后續(xù)還有維護(hù)這一重要的過程,另外老師的課程也讓我認(rèn)識到了軟件測試這一過程在軟件開發(fā)整個環(huán)節(jié)中的重要作用,它是軟件質(zhì)量的保證,是我們從軟件開發(fā)剛開始就需要重視的環(huán)節(jié)。2數(shù)據(jù)挖掘部分本門課程的后半部分課時都是由黃哲學(xué)老師代課,教學(xué)的主要容是數(shù)據(jù)挖掘相關(guān)的知識。2.1數(shù)據(jù)挖掘簡介我們生活在一個被稱作是"大數(shù)據(jù)”的時代,隨著計算機(jī)網(wǎng)絡(luò)的迅速發(fā)展,手機(jī)等移動設(shè)備的快速普及,使得信息的傳播速度越來越快,信息數(shù)據(jù)的量呈現(xiàn)出爆炸式的增長,面對海量的信息,我們可以通過分布式的并行運(yùn)算,來實(shí)現(xiàn)快速的檢索,查詢與統(tǒng)計等常見的數(shù)據(jù)處理功能,但卻很難發(fā)現(xiàn)海量數(shù)據(jù)相互之間存在著的關(guān)系,無法根據(jù)現(xiàn)在有的數(shù)據(jù)來預(yù)測未來的發(fā)展趨勢。在這樣的背景下,數(shù)據(jù)挖掘技術(shù)便應(yīng)運(yùn)而生了。所謂數(shù)據(jù)挖掘,就是從大量無序的數(shù)據(jù)中發(fā)現(xiàn)隱含的,有效的,有價值的,可理解的模式,進(jìn)而發(fā)現(xiàn)有用的知識,并得出時間上的趨向和關(guān)聯(lián),為用戶提供問題求解層次的決策支持能力。數(shù)據(jù)挖掘研究出現(xiàn)于20世紀(jì)80年代后期,是數(shù)據(jù)庫研究中一個很有應(yīng)用價值的新領(lǐng)域,是一門交叉性學(xué)科,融合了人工智能,數(shù)據(jù)庫技術(shù),模式識別,機(jī)器學(xué)習(xí),統(tǒng)計學(xué)和數(shù)據(jù)可視化等多個領(lǐng)域的理論和技術(shù)。2.2關(guān)聯(lián)模式-關(guān)聯(lián)模式是反映一個事件和其他事件之間依賴或關(guān)聯(lián)的知識,其目的是為了生成部分?jǐn)?shù)據(jù)的概要,尋找數(shù)據(jù)子集之間的關(guān)聯(lián)關(guān)系與數(shù)據(jù)之間的派生關(guān)系,即在同一事件中出現(xiàn)的不同項(xiàng)之間的相關(guān)性。如果兩項(xiàng)或者多項(xiàng)屬性之間存在關(guān)聯(lián)關(guān)系,則就可以依據(jù)已知的屬性值預(yù)測*一項(xiàng)的屬性值。關(guān)聯(lián)規(guī)則的挖掘可以分為兩步,首先是通過迭代識別出所有的頻繁項(xiàng)目集,然后再從頻繁項(xiàng)目集中構(gòu)造出可信度不低于用戶設(shè)定的最低值的規(guī)則。識別和挖掘所有頻繁項(xiàng)目集是關(guān)聯(lián)規(guī)則挖掘算法的核心。關(guān)聯(lián)規(guī)則最典型的應(yīng)用是購物籃分析,在關(guān)聯(lián)規(guī)則的分析中有助于發(fā)現(xiàn)交易數(shù)據(jù)庫中,不同商品之間的聯(lián)系,找出顧客購買的行為模式。2.3分類算法分類是通過構(gòu)造一個分類函數(shù),把具有*些特征的數(shù)據(jù)項(xiàng)劃分到*個給定的類別上。分類由模型創(chuàng)建和模型使用兩步組成,模型創(chuàng)建是指通過對訓(xùn)練數(shù)據(jù)集的學(xué)習(xí)來建立分類模型;模型使用是指使用分類模型對測試數(shù)據(jù)和新的數(shù)據(jù)進(jìn)行分類。訓(xùn)練數(shù)據(jù)集中的數(shù)據(jù)帶有類標(biāo)號,通過訓(xùn)練集的訓(xùn)練,使得使用分類函數(shù)可以把標(biāo)號未知的數(shù)據(jù)正確的分類到其相應(yīng)的標(biāo)號中。2.3.1決策樹算法決策樹(DecisionTree)算法是一種以實(shí)例為基礎(chǔ)的歸納學(xué)習(xí)算法,在其樹型結(jié)構(gòu)中,每個結(jié)點(diǎn)表示對一個屬性值的測試,其分支表示測試的結(jié)果,而樹的葉結(jié)點(diǎn)表示類別。它是一種簡單但是廣泛使用的分類器,通過訓(xùn)練數(shù)據(jù)構(gòu)建決策樹,可以高效的對未知的數(shù)據(jù)進(jìn)行分類。決策樹有兩大優(yōu)點(diǎn):1)決策樹模型可讀性好,具有描述性,有助于人工分析;2)效率高,決策樹只需要一次構(gòu)建,反復(fù)使用,每一次預(yù)測的最大計算次數(shù)不超過決策樹的深度。通過下面的表1進(jìn)行舉例:表1決策樹舉例表ID擁有房產(chǎn)(是/婚姻情況(單年收入(單位:無法償還債務(wù)否)身,已婚,離婚)千元)(是/否)1是單身125否2否已婚100否3否單身70否4是已婚120否5否離婚95是6否已婚60否7是離婚220否8否單身85是9否已婚75否10否單身90是-上表里的歷史數(shù)據(jù),記錄已有的用戶是否可以償還債務(wù),以及相關(guān)的信息。通過該數(shù)據(jù),構(gòu)建的決策樹如圖1:圖1決策樹對于一個新用戶:無房產(chǎn),單身,年收入55K,則根據(jù)上面的決策樹,可以預(yù)測他無法償還債務(wù)。從上圖的決策樹中還可以知道是否擁有房產(chǎn)可以很大程度上決定用戶是否有能力償還債務(wù),對借貸業(yè)務(wù)具有指導(dǎo)意義。2.3.2貝葉斯分類算法貝葉斯分類是一類分類算法的總稱,這類算法均以統(tǒng)計學(xué)中的貝葉斯定理為理論基礎(chǔ),通過貝葉斯定理得到的后驗(yàn)概率來預(yù)測類成員關(guān)系的可能性,是一種具有最小錯誤率的概率分類方法。在計算過程中,如果假設(shè)所有變量都是條件獨(dú)立的,則可以使用樸素貝葉斯分類方法,但所有變量都是條件獨(dú)立的情況非常少。下面舉一個例子來說明貝葉斯分類器的應(yīng)用。*個醫(yī)院早上收了六個門診病人,如下表2:表2貝葉斯分類表癥狀職業(yè)疾病打噴嚏護(hù)士感冒打噴嚏農(nóng)夫過敏頭痛建筑工人腦震蕩頭痛建筑工人感冒頭痛教師腦震蕩打噴嚏教師感冒-現(xiàn)在又來了第七個病人,是一個打噴嚏的建筑工人。請問他患上感冒的概率有多大?根據(jù)貝葉斯定理:P(A|B)=P(B|A)P(A)/P(B)可得P(感冒|打噴嚏*建筑工人)P(打噴嚏*建筑工人|感冒)*P(感冒)/P(打噴嚏*建筑工人)假定"打噴嚏"和"建筑工人"這兩個特征是獨(dú)立的,因此,上面的等式就變成P(感冒|打噴嚏*建筑工人)P(打噴嚏|感冒)*P(建筑工人|感冒)*P(感冒)/P(打噴嚏)*P(建筑工人)這是可以計算的。P(感冒|打噴嚏*建筑工人)0.66*0.33*0.5/0.5*0.330.66因此,這個打噴嚏的建筑工人,有66%的概率是得了感冒。同理,可以計算這個病人患上過敏或腦震蕩的概率。比較這幾個概率,就可以知道他最可能得什么病,即通過貝葉斯概率進(jìn)行分類。2.4聚類算法聚類就是將數(shù)據(jù)項(xiàng)分組成多個類或簇,類之間的數(shù)據(jù)差別應(yīng)盡可能大,類的數(shù)據(jù)差別應(yīng)盡可能小,即為"最小化類間的相似性,最大化類的相似性”原則。與分類模式不同的是,聚類中要劃分的類別是未知的,是一種不依賴于預(yù)先定義的類和帶類標(biāo)號的訓(xùn)練數(shù)據(jù)集的非監(jiān)督學(xué)習(xí),無需背景知識,其中類的數(shù)量由系統(tǒng)按照*種性能指標(biāo)自動確定。2.4.1k-Means算法k-Means是一種最經(jīng)典也是使用最廣泛的聚類方法,至今仍然有很多基于其的改進(jìn)模型提出。k-Means的思想很簡單,對于一個聚類任務(wù),首先隨機(jī)選擇k個簇中心,然后反復(fù)計算下面的過程直到所有簇中心不改變(簇集合不改變)為止:步驟1:對于每個對象,計算其與每個簇中心的相似度,把其歸入與其最相似的那個簇中。步驟2:更新簇中心,新的簇中心通過計算所有屬于該簇的對象的平均值得到。k-means算法的工作過程說明如下:首先從n個數(shù)據(jù)對象任意選擇k個對象作為初始聚類中心;而對于所剩下其它對象,則根據(jù)它們與這些聚類中心的相似度(距離),分別將它們分配給與其最相似的(聚類中心所代表的)聚類;然后再計算每個所獲新聚類的聚類中心(該聚類中所有對象的均值);不斷重復(fù)這一過程直到標(biāo)準(zhǔn)測度函數(shù)開始收斂為止。一般都采用均方差作為標(biāo)準(zhǔn)測度函數(shù),k個聚類具有以下特點(diǎn):各聚類本身盡可能的緊湊,而各聚類之間盡可能的分開。2.5數(shù)據(jù)挖掘課程心得-數(shù)據(jù)挖掘是當(dāng)今計算機(jī)學(xué)領(lǐng)域研究的一個主要熱門課題,在各個領(lǐng)域都有廣泛的應(yīng)用,數(shù)據(jù)挖掘的算法對數(shù)據(jù)挖掘技術(shù)的實(shí)現(xiàn)起到關(guān)鍵的作用,也直接影響到能否把數(shù)據(jù)挖掘應(yīng)用到具體的實(shí)踐中。通過黃哲學(xué)老師的課程,我學(xué)習(xí)了一些簡單的關(guān)聯(lián)模式

溫馨提示

  • 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

提交評論