千文網(wǎng)小編為你整理了多篇相關(guān)的《軟件工程實(shí)踐課個(gè)人總結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在千文網(wǎng)還可以找到更多《軟件工程實(shí)踐課個(gè)人總結(jié)》。
第一篇:軟件工程實(shí)踐學(xué)習(xí)心得
軟件工程實(shí)踐學(xué)習(xí)心得
這學(xué)期學(xué)習(xí)了軟件工程實(shí)踐這門課,我覺得這是對(duì)上學(xué)期的軟件工程課程學(xué)習(xí)的檢驗(yàn),上學(xué)期學(xué)習(xí)軟件工程只是我們淺顯的認(rèn)識(shí),相比之下,這學(xué)期就更加全面的說明了開發(fā)一個(gè)項(xiàng)目所需要的步驟以及開發(fā)項(xiàng)目過程中所需要注意的諸多細(xì)節(jié)。如果說上學(xué)期的課程注重理論基礎(chǔ)的話,那么這學(xué)期的軟工實(shí)踐,顧名思義,就是側(cè)重我們動(dòng)手操作的能力。
原來我認(rèn)為開發(fā)一個(gè)項(xiàng)目最重要的就是寫代碼,似乎整個(gè)軟件都是編代碼,因?yàn)樽约簞?dòng)手能力不強(qiáng)所以就很排斥做項(xiàng)目。可是經(jīng)過我們學(xué)習(xí)軟工課程到團(tuán)隊(duì)做項(xiàng)目再到學(xué)習(xí)軟件工程實(shí)踐課程之后,我才真正意識(shí)到實(shí)施一個(gè)軟件工程項(xiàng)目并不是說簡(jiǎn)單的會(huì)編碼就能夠解決問題的,因?yàn)橐粋€(gè)軟件的生命周期分為三個(gè)時(shí)期:軟件定義時(shí)期、開發(fā)時(shí)期、維護(hù)時(shí)期,而這三個(gè)時(shí)期整體又分為七個(gè)階段,他們分別是:?jiǎn)栴}定義、可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試,由此可看出,當(dāng)我們開發(fā)一個(gè)項(xiàng)目時(shí),更多的精力不是放在編碼上,編碼只是一個(gè)很小的模塊,而是項(xiàng)目的整體結(jié)構(gòu)上。
在寫軟工實(shí)踐體會(huì)之前,我想在這里總結(jié)一下上學(xué)期三人團(tuán)隊(duì)做 項(xiàng)目的相關(guān)事宜。上學(xué)期我們?nèi)藞F(tuán)隊(duì)根據(jù)軟件開發(fā)的步驟開發(fā)一個(gè)名為“西大老鄉(xiāng)‘薈’”的社交系統(tǒng),主要是為西大學(xué)子提供一個(gè)找老鄉(xiāng)的平臺(tái)。雖然只進(jìn)行到詳細(xì)設(shè)計(jì)階段,沒有進(jìn)一步實(shí)現(xiàn),但是我還是從中學(xué)到很多東西的。首先要先確定項(xiàng)目主題,也就是這個(gè)項(xiàng)目用來做什么,可以解決什么問題。接著就是這個(gè)項(xiàng)目是否有研究的必要以及是否有解決的辦法,針對(duì)我們的項(xiàng)目,我們對(duì)西大的一些學(xué)生做了問卷調(diào)查,并從調(diào)查中繼續(xù)完善系統(tǒng)本身的做用戶。第三步根據(jù)我們確定的項(xiàng)目主題進(jìn)行需求分析,這一步驟當(dāng)時(shí)做的不是很好,比如所畫E-R圖、數(shù)據(jù)流圖等都有考慮不周的問題,導(dǎo)致接下來的概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)進(jìn)行的很困難,有些步驟甚至還需要返工。
從我們?cè)谛枨蠓治鲋谐霈F(xiàn)的問題,使我們明白了軟件定義階段對(duì)于一個(gè)項(xiàng)目的開發(fā)是至關(guān)重要的,當(dāng)軟件定義階段完成時(shí)必須要用正式的文檔準(zhǔn)確的地記錄目標(biāo)系統(tǒng)的需求。只有前期的準(zhǔn)備工作做得好,后面的工作才能順利進(jìn)行。雖然項(xiàng)目最后沒有完全實(shí)現(xiàn),但是起碼我們已經(jīng)初步體會(huì)到軟件項(xiàng)目開發(fā)的步驟,以及每一步所需要完成的文檔等內(nèi)容。
這學(xué)期的軟件工程實(shí)踐雖然不是親自動(dòng)手開發(fā)一個(gè)系統(tǒng),但是張?jiān)嚼蠋熞浴拔锫?lián)網(wǎng)物流倉(cāng)儲(chǔ)管理系統(tǒng)”為主給我們講解了一個(gè)真實(shí)系統(tǒng)的開發(fā)過程,從計(jì)劃到項(xiàng)目系統(tǒng)的發(fā)布實(shí)施,以及每一步必須生成的文檔。我主要從以下五個(gè)方面談一下我的心得體會(huì)。
第一、行業(yè)背景說明方面
對(duì)于一個(gè)軟件系統(tǒng)的開發(fā),第一步就是問題定義,了解所開發(fā)系統(tǒng)的行業(yè)背景,制定計(jì)劃。當(dāng)我們計(jì)劃確定以后就要對(duì)項(xiàng)目系統(tǒng)本身進(jìn)行可行性研究,主要從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性三個(gè)方面著手。就比如《物聯(lián)網(wǎng)物流倉(cāng)庫(kù)管理系統(tǒng)》的行業(yè)背景說明文檔中非常詳細(xì)地分析了當(dāng)下物聯(lián)網(wǎng)物流行業(yè)的整體業(yè)務(wù)說明、應(yīng)用背景、未來發(fā)展趨勢(shì)以及相關(guān)應(yīng)用案例等四個(gè)方面,項(xiàng)目團(tuán)隊(duì)中系統(tǒng)分析員就可以根據(jù)這份文檔以及相關(guān)的調(diào)查資料對(duì)將要開發(fā)系統(tǒng)的進(jìn)行定義等工作。
原來我們寫這類文檔的時(shí)候就是草草了事,不會(huì)做得這么詳細(xì),而這次看到大型項(xiàng)目的行業(yè)背景說明也是這么詳細(xì),也讓自己認(rèn)識(shí)到不管是軟件開發(fā)的那個(gè)階段都要認(rèn)真對(duì)待,這些瑣碎的文檔都是后期開發(fā)項(xiàng)目的支撐,只要它們做的透徹,后面的開發(fā)工作才能更順利的進(jìn)行。
第二、項(xiàng)目需求說明方面
這部分項(xiàng)目需求說明就是軟件定義時(shí)期中需求分析階段,而該階段的主要目的就是了解用戶的需要,根據(jù)用戶的需要確定系統(tǒng)必須完成那些工作,并對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。在需求分析結(jié)束之前系統(tǒng)分析人員要寫出一份需求規(guī)格說明,即為《物聯(lián)網(wǎng)物流倉(cāng)儲(chǔ)管理系統(tǒng)》項(xiàng)目需求說明文檔。我們可以看出該文檔也是非常詳細(xì),相比之下我們之前做項(xiàng)目時(shí)寫的需求規(guī)格說明書就非常 不合格,不僅格式不正確內(nèi)容也是少之又少。
在這方面,這篇文檔給我啟發(fā)很大。首先就是文檔的格式,要美觀整齊,讓人看著舒服方便。其次就是文檔的內(nèi)容,原來它不是很重要,寫文檔的時(shí)候也不知道怎么寫就借鑒下網(wǎng)上的內(nèi)容,結(jié)果根本就沒有把自己項(xiàng)目的需求寫明白,以至于自己最后都有些糊涂,所以根據(jù)以前的經(jīng)驗(yàn)教訓(xùn)我會(huì)對(duì)這部分更加重視。
第三、系統(tǒng)概要設(shè)計(jì)方面
這部分內(nèi)容分說的是軟件設(shè)計(jì)時(shí)期的概要設(shè)計(jì)階段,該階段的主要目的就是實(shí)現(xiàn)系統(tǒng)的功能、設(shè)計(jì)軟件的結(jié)構(gòu)、模塊組成以及模塊之間的關(guān)系。在概要設(shè)計(jì)階段,我們可以站在全局的高度上,花較少的成本,從抽象的層次上分析對(duì)比多種可能的系統(tǒng)實(shí)現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的結(jié)構(gòu)。在這個(gè)階段還會(huì)具體畫出E-R圖、數(shù)據(jù)流圖等方面的設(shè)計(jì)。
比如《物聯(lián)網(wǎng)物流倉(cāng)庫(kù)管理系統(tǒng)》的系統(tǒng)概要設(shè)計(jì)從項(xiàng)目概述、設(shè)計(jì)約束、功能單元與功能模塊設(shè)計(jì)、數(shù)據(jù)E-R圖設(shè)計(jì)、總體設(shè)計(jì)、界面設(shè)計(jì)等六個(gè)方面介紹,通過讀這個(gè)文檔,我覺得最重要的還是總體設(shè)計(jì),分別從邏輯架構(gòu)設(shè)計(jì)、物理架構(gòu)設(shè)計(jì)、技術(shù)架構(gòu)設(shè)計(jì)設(shè)計(jì)系統(tǒng)。在這個(gè)階段中模塊要做到高內(nèi)聚低耦合,這樣開發(fā)出來的系統(tǒng)才會(huì)具有更高的獨(dú)立性。
在原來做項(xiàng)目時(shí)沒有編寫過這類文檔,在該階段只是畫了結(jié)構(gòu)圖、層次圖以及相關(guān)的模塊劃分,對(duì)該類文檔尚未重視。通過張老師的講解和自己的學(xué)習(xí),我相信在以后做項(xiàng)目的時(shí)候一定會(huì)注意到這類文檔的編寫。
第四、詳細(xì)設(shè)計(jì)與分析方面
詳細(xì)設(shè)計(jì)階段就是把概要設(shè)計(jì)階段的每個(gè)模塊進(jìn)一步設(shè)計(jì),確定每個(gè)模塊所需要的算法和數(shù)據(jù)結(jié)構(gòu)。在這個(gè)階段還是需要我們?cè)O(shè)計(jì)出程序的詳細(xì)規(guī)格說明,而不是編寫程序。在詳細(xì)設(shè)計(jì)階段,系統(tǒng)設(shè)計(jì)人員可以通過使用程序流程圖、盒圖、PAD圖等過程設(shè)計(jì)的工具和Jackson圖等面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)工具進(jìn)一步設(shè)計(jì)系統(tǒng)相關(guān)接口,主要包括界面設(shè)計(jì)接口、業(yè)務(wù)單設(shè)計(jì)接口、單元模塊設(shè)計(jì)接口等,這些對(duì)于以后的編碼工作都是極其重要的。
第五、編碼和測(cè)試方案方面
關(guān)于編碼,我認(rèn)為編碼要想做的完美必備條件就是前面的軟件定義和軟件設(shè)計(jì)時(shí)期要按部就班的做,文檔一定要按要求書寫,不能偷懶也不能草草書寫。對(duì)于編碼也要有相應(yīng)的文檔書寫規(guī)范,要使源程序代碼的邏輯簡(jiǎn)明清晰、易讀易懂。這樣盡管我們不是設(shè)計(jì)系統(tǒng)的人員,當(dāng)看到源程序代碼的時(shí)候也能容易讀懂代碼的意思。
其次就是測(cè)試的內(nèi)容,從測(cè)試的文檔中我們可以得出,其實(shí)測(cè)試在軟件開發(fā)中同樣占據(jù)了重要的地位,它主要就是盡可能多的找到問題并排除其中的潛藏的錯(cuò)誤,最終把一個(gè)高質(zhì)量的軟件系統(tǒng)交給用戶 使用。它要求測(cè)試人員也要有很高的技術(shù)水平。
第二篇:軟件工程實(shí)踐實(shí)習(xí)報(bào)告大綱
軟件工程、軟件測(cè)試專業(yè)第七學(xué)期“軟件工程實(shí)踐”實(shí)習(xí)報(bào)告大綱(學(xué)生提交)
1、實(shí)習(xí)概要
實(shí)習(xí)時(shí)間(起始和結(jié)束)(按照學(xué)校的教學(xué)日歷從第1周到第19周,2011年8月29日至2012年1月6日)
實(shí)習(xí)單位、單位的實(shí)習(xí)地點(diǎn)或者校內(nèi)工作地點(diǎn)
實(shí)習(xí)崗位
實(shí)習(xí)指導(dǎo)老師姓名(校內(nèi))與校外指導(dǎo)老師姓名
2、實(shí)習(xí)內(nèi)容
(培訓(xùn)內(nèi)容(含入職教育、安全教育等)、學(xué)習(xí)課程、技術(shù)訓(xùn)練、實(shí)習(xí)內(nèi)容、項(xiàng)目?jī)?nèi)容)(這一部分要寫詳細(xì),可能每項(xiàng)都有,可能只有部分有,但項(xiàng)目環(huán)節(jié)應(yīng)該每個(gè)同學(xué)都寫)
3、項(xiàng)目情況
(按照軟件工程過程:1)需求分析;2)概要設(shè)計(jì);3)詳細(xì)設(shè)計(jì);4)代碼編寫;
5)系統(tǒng)測(cè)試;6)性能測(cè)試;7)驗(yàn)收測(cè)試;8)項(xiàng)目實(shí)施與部署;9)項(xiàng)目維護(hù)等內(nèi)容進(jìn)行組織,同學(xué)自己參加的階段重點(diǎn)描寫,其它軟件項(xiàng)目階段可以只做介紹。)
4、實(shí)習(xí)總結(jié)
(收獲、心得體會(huì)等)
第三篇:軟件工程實(shí)踐報(bào)告5個(gè)
軟件工程實(shí)踐實(shí)驗(yàn)報(bào)告
姓名: 學(xué)號(hào):
班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)
實(shí)驗(yàn)一 軟件需求分析
1軟件需求分析
任務(wù)分析 ATM自動(dòng)提款機(jī)系統(tǒng)。ATM自動(dòng)取款機(jī)是由計(jì)算機(jī)控制的持卡人自我服務(wù)型的金融專用設(shè)備。ATM是英文Automatic Teller Machine的縮寫。在ATM自動(dòng)取款機(jī)上可以進(jìn)行賬戶查詢、修改密碼和轉(zhuǎn)賬的業(yè)務(wù)。作為自助式金融服務(wù)終端,除了提供金融業(yè)務(wù)功能之外,ATM自動(dòng)取款機(jī)還具有維護(hù)、測(cè)試、事件報(bào)告、監(jiān)控和管理等多種功能。ATM自動(dòng)取款機(jī)系統(tǒng)向用戶提供一個(gè)方便、簡(jiǎn)單、及時(shí)、隨時(shí)隨地可以隨心所欲存取款的互聯(lián)的現(xiàn)代計(jì)算機(jī)化的網(wǎng)絡(luò)系統(tǒng)。可以大大減少工作人員,節(jié)約人力資源的開銷,同時(shí)由于手續(xù)程序減少也可以減輕業(yè)務(wù)員的工作負(fù)擔(dān),有效地提高了整體的工作效率和精確度。減少了用戶辦理業(yè)務(wù)的等待時(shí)間;用戶可以隨時(shí)隨地可以隨心所欲存取款,并且操作簡(jiǎn)單易懂。
我們所需要的是建立一個(gè)與后臺(tái)用戶數(shù)據(jù)信息數(shù)據(jù)庫(kù)綁定的集查詢,存款,取款,轉(zhuǎn)賬等功能為一體的ATM自助服務(wù)系統(tǒng)。實(shí)驗(yàn)?zāi)康?/p>
學(xué)習(xí)圖形工具軟件VISIO,掌握結(jié)構(gòu)化需求分析方法,熟練繪制數(shù)據(jù)流圖; 學(xué)習(xí)快速原型工具的使用?;疽?/p>
(1)針對(duì)銀行ATM系統(tǒng)進(jìn)行需求分析工作,了解銀行ATM系統(tǒng)的功能、流程;(2)安裝VISIO2003以上版本軟件,熟練應(yīng)用Visio繪制DFD圖,繪制銀行ATM系統(tǒng)數(shù)據(jù)流圖,完成系統(tǒng)的軟件邏輯模型;
(3)安裝Axure RP Pro 或者Balsamiq Mockups快速原型軟件,學(xué)習(xí)繪制軟件原型,完成銀行ATM系統(tǒng)的軟件原型。ATM自動(dòng)柜員機(jī)業(yè)務(wù)系統(tǒng)需求分析
需求分析:由于科技發(fā)展迅速,幾乎所有的銀行都配備了簡(jiǎn)易的人工操作的ATM自動(dòng)取款機(jī)。人們可以隨時(shí)隨地進(jìn)行交易,不再受銀行的服務(wù)時(shí)間的約束,取款也很方便快捷,可以減少排隊(duì)等待時(shí)間。
ATM機(jī)系統(tǒng)的主要功能:1.取款2.存款3修改密碼4..憑條打印5.轉(zhuǎn)賬6.余額查詢7.交易明細(xì)查詢。
⒈取款
持卡人在ATM機(jī)上提取現(xiàn)金。余額不足時(shí)不能取出取款所需的現(xiàn)金。ATM機(jī)可以提供指定取款金額的快速取款畫面。ATM機(jī)取款成功后,要向銀聯(lián)系統(tǒng)寫入操作,并對(duì)客戶余額進(jìn)行相應(yīng)處理。⒉存款
ATM機(jī)要能清點(diǎn)現(xiàn)金,將相應(yīng)操作信息寫入銀聯(lián)系統(tǒng),對(duì)客戶余額進(jìn)行 修改。⒊ 修改密碼
若新密碼1和新密碼相同則修改密碼成功,要修改客戶密碼表,并將操作 信息寫入銀聯(lián)系統(tǒng)。否則,修改密碼不成功。⒋ 打印憑條
對(duì)客戶做的操作及用戶基本信息進(jìn)行打印。⒌轉(zhuǎn)賬
完成不同銀行卡之間資金的轉(zhuǎn)移。若客戶余額不足則轉(zhuǎn)賬識(shí)別。轉(zhuǎn)帳成 功,對(duì)客戶和收賬人的余額進(jìn)行相應(yīng)的修改,寫入賬戶余額表,并向銀 聯(lián)系統(tǒng)寫入操作。6.余額查詢
客戶查詢銀行卡,在屏幕上顯示銀行卡賬戶余額。⒎ 交易明細(xì)查詢
完成銀行卡賬戶的近十筆交易明細(xì)查詢,在屏幕上顯示。
ATM機(jī)工作流程:插入卡->輸入密碼->選擇操作類型->交易流程->確定交易->寫入賬戶信息和銀聯(lián)系統(tǒng) ATM自動(dòng)柜員機(jī)業(yè)務(wù)系統(tǒng)數(shù)據(jù)流圖
3.1頂層數(shù)據(jù)流圖
3.2一層數(shù)據(jù)流圖
將銀行卡從讀卡器插入ATM機(jī),輸入密碼登錄,登陸成功,則在LCD顯示屏 上顯示無ATM機(jī)不提供的操作的功能選擇界面,進(jìn)行操作并顯示信息、進(jìn)行相關(guān)處理。三次錯(cuò)誤輸入密碼則吞卡。ATM機(jī)鈔箱缺錢時(shí)則通知加鈔。
一層數(shù)據(jù)流圖
3.3二層數(shù)據(jù)流圖
客戶插入銀行卡后開始識(shí)別銀行卡所屬的銀行和賬戶信息,識(shí)別后開始校驗(yàn)客 戶輸入的密碼,判斷是否和正確密碼相符,若相符則進(jìn)行ATM機(jī)自檢,去掉暫時(shí)不能提供的操作,讓用戶選擇操作。若不相符則提示錯(cuò)誤,輸入三次都不相符,則吞卡。
登錄的第二層數(shù)據(jù)流圖
成功登錄后選擇交易,并在交易過程中進(jìn)行操作倒計(jì)時(shí),以防用戶忘記取卡 而丟失卡,交易完成可以選擇打印憑條和退卡。
動(dòng)作的第二層數(shù)據(jù)流圖
超時(shí)或連輸三次錯(cuò)誤的密碼都會(huì)吞卡,并自動(dòng)凍結(jié)卡,顯示吞卡信息并打印 吞卡憑條。
吞卡的第二層數(shù)據(jù)流圖
ATM機(jī)缺錢時(shí)發(fā)送鈔箱缺錢信息,進(jìn)行清機(jī)對(duì)賬,驗(yàn)鈔點(diǎn)鈔,打開金庫(kù),將錢放入鈔箱。
加鈔的第二層數(shù)據(jù)流圖 3.4三層數(shù)據(jù)流圖
ATM自查時(shí)查鈔箱余額和憑條打印機(jī)的紙墨余量,以在功能選擇界面上去掉 ATM暫時(shí)不能提供的操作。
ATM機(jī)自檢的第三層數(shù)據(jù)流圖
選擇交易,進(jìn)行存款、查詢、取款、改密、轉(zhuǎn)賬等操作,同時(shí)對(duì)操作進(jìn)行倒計(jì)時(shí),并向后臺(tái)銀聯(lián)系統(tǒng)提供信息,在LCD顯示屏上顯示信息。
交易的第三層數(shù)據(jù)流圖
3.5四層數(shù)據(jù)流圖
選擇存款操作后,打開存款槽,存款后,關(guān)閉存款槽,點(diǎn)鈔機(jī)點(diǎn)鈔,將金額 和張數(shù)顯示在LCD屏上,確定后向后臺(tái)提供信息,修改余額信息。
存款的第四層數(shù)據(jù)流圖
選擇查詢功能后,再在兩個(gè)子功能下選擇進(jìn)行的是余額查詢還是交易明細(xì)查 詢,并在 LCD顯示屏上顯示提示信息。
查詢的第四層數(shù)據(jù)流圖
選擇取款功能后,比較客戶的余額是否大于取款金額,并修改客戶的余額信 息,在LCD屏上顯示提示信息,向后臺(tái)系統(tǒng)提交信息。
取款的第四層數(shù)據(jù)流圖
改密時(shí)先輸入一遍新密碼,再輸入一遍新密碼,若兩次密碼相符,則改密成功,對(duì)用戶名密碼表進(jìn)行相關(guān)修改,在LCD屏上顯示提示信息,向后臺(tái)提供信息。否則顯示改密失敗。
轉(zhuǎn)賬時(shí),先輸入一遍收賬人賬戶,再輸入一遍,若相符,則比對(duì)客戶余額是否大于轉(zhuǎn)賬金額,若是,則轉(zhuǎn)賬成功,修改兩個(gè)賬戶的余額,在LCD顯示屏上顯示提示信息,向后臺(tái)提供信息。若否,則顯示轉(zhuǎn)賬失敗。
改密的第四層數(shù)據(jù)流圖
3.6五層數(shù)據(jù)流圖
選擇查詢賬戶余額信息時(shí),查客戶余額表,顯示在LCD顯示屏上。
余額查詢的第五層數(shù)據(jù)流圖
選擇查詢賬戶交易明細(xì)后,查客戶交易明細(xì)信息表,并在LCD顯示屏上顯示出信息。
轉(zhuǎn)賬的第四層數(shù)據(jù)流圖
交易明細(xì)查詢的第五層數(shù)據(jù)流圖 ATM自動(dòng)柜員機(jī)業(yè)務(wù)系統(tǒng)原型系統(tǒng)
1、待機(jī)歡迎界面
2、輸入密碼界面
3、服務(wù)選擇界面
4、取款金額選擇界面
5、取款結(jié)束界面
6、存款提示界面
7、存款信息界面
8、存款結(jié)束界面
9、查詢選擇界面。
10、查詢余額界面
11、查詢明細(xì)界面
12、轉(zhuǎn)帳賬戶輸入界面
13、賬戶錯(cuò)誤界面
14、轉(zhuǎn)帳金額輸入界面
15、轉(zhuǎn)帳成功界面
16、退卡提示界面
17、密碼驗(yàn)證界面
18、新密碼輸入界面
19、新密碼確認(rèn)界面
20、修改成功界面
21、修改失敗界面
實(shí)驗(yàn)二 面向?qū)ο蟮能浖治雠c設(shè)計(jì)
實(shí)驗(yàn)?zāi)康?/p>
學(xué)習(xí)UML和UML軟件工具,掌握面向?qū)ο蠓治雠c設(shè)計(jì)方法
基本要求
1、學(xué)習(xí)面向?qū)ο蠓治雠c設(shè)計(jì)方法和UML;
2、安裝StarUML 和Rational Rose軟件,熟練使用UML軟件工具,對(duì)目標(biāo)系統(tǒng)進(jìn)行分析,完成用例圖、類圖。
3、完成序列圖、狀態(tài)圖、活動(dòng)圖等圖形的繪制。
4、學(xué)習(xí)UML模型和源代碼的雙向工程,完善報(bào)告。前言
由于科技發(fā)展迅速,幾乎所有的銀行都配備了簡(jiǎn)易的人工操作的ATM自動(dòng)取款機(jī)。人們可以隨時(shí)隨地進(jìn)行交易,不再受銀行的服務(wù)時(shí)間的約束,取款也很方便快捷,可以減少排隊(duì)等待時(shí)間。問題說明
客戶插入銀行卡,要求ATM自動(dòng)柜員機(jī)能識(shí)別卡,若能夠識(shí)別出卡,則要求客戶輸入密碼,若輸入密碼正確,讓客戶選擇業(yè)務(wù),若輸入密碼錯(cuò)誤,則讓客戶再次輸入密 碼,輸入三次錯(cuò)誤的密碼則執(zhí)行吞卡操作。
選擇的業(yè)務(wù)若是取款,則讓客戶輸入取款金額,超過賬戶余額,則取款失敗,否則取款成功,取款槽吐出現(xiàn)金,修改賬戶余額,并記錄操作信息。
選擇的業(yè)務(wù)若是存款,則打開存款槽,讓客戶放入現(xiàn)金,并能啟動(dòng)點(diǎn)鈔機(jī),清點(diǎn)客戶放入的現(xiàn)金數(shù)目,修改賬戶余額,并記錄操作信息。
選擇的業(yè)務(wù)若是轉(zhuǎn)賬,則讓客戶輸入兩遍轉(zhuǎn)賬賬號(hào)和轉(zhuǎn)賬金額,若兩遍轉(zhuǎn)賬賬號(hào)不一致,則不能轉(zhuǎn)賬,若輸入轉(zhuǎn)賬金額超過賬戶余額,則轉(zhuǎn)賬失敗,否則轉(zhuǎn)賬成功。
選擇的業(yè)務(wù)若是查詢,則從服務(wù)器中查找出客戶的余額或交易明細(xì)信息,并顯示出來。
選擇的業(yè)務(wù)若是修改密碼,則要求客戶輸入兩遍新修改的密碼,若兩遍密碼一致,則改密成功,并修改賬戶密碼,密碼不一致,則改密失敗。選擇打印憑條,則啟動(dòng)憑條打印機(jī),打印憑條并吐出憑條。選擇退卡,則讓讀卡器吐出銀行卡。Use Case圖
3.1賬戶用例圖
3.2系統(tǒng)維護(hù)人員用例圖
3.3設(shè)備管理人員用例圖
3.4系統(tǒng)時(shí)鐘用例圖
3.5總的用例圖 類圖 序列圖 5.1登錄基本序列圖
5.2登錄備選序列圖(密碼錯(cuò)誤)
5.3登錄備選序列圖(密碼錯(cuò)誤吞卡)
5.4 取款序列圖
5.5取款備選序列圖(余額不足)
5.6查詢序列圖
5.7 存款序列圖
5.8 修改密碼序列圖
5.9 修改密碼備選序列圖(兩次密碼不一致)
5.10 轉(zhuǎn)賬序列圖
5.11 轉(zhuǎn)賬備選序列圖(兩次輸入賬戶不同)
5.14退卡序列圖
6協(xié)作圖
6-1協(xié)作圖
7-1識(shí)別銀行卡活動(dòng)圖
7-2登錄活動(dòng)圖
7-3取款活動(dòng)圖
7-4存款活動(dòng)圖
7-5修改密碼活動(dòng)圖
7-6轉(zhuǎn)賬活動(dòng)圖
7-7查詢活動(dòng)圖
7-8打印憑條活動(dòng)圖
7-9退卡活動(dòng)圖
7-10吞卡活動(dòng)圖
7-11備份活動(dòng)圖
7-12加鈔活動(dòng)圖
7-13維護(hù)活動(dòng)圖
8狀態(tài)圖
實(shí)驗(yàn)三 集成編程環(huán)境與編碼規(guī)范
1.實(shí)驗(yàn)?zāi)康?/p>
學(xué)習(xí)PHP、.Net、JAVA集成編程環(huán)境,熟悉各語(yǔ)言的編碼規(guī)范。
2.基本要求
(1)學(xué)習(xí)PHP語(yǔ)言基礎(chǔ),學(xué)習(xí)PHP集成編程環(huán)境EPP,了解常用插件,掌握Z(yǔ)end debuger PHP斷點(diǎn)調(diào)試功能;
(2)學(xué)習(xí).C#語(yǔ)言基礎(chǔ),學(xué)習(xí).Net集成編程環(huán)境,掌握集成環(huán)境中的調(diào)試技術(shù);
(3)學(xué)習(xí)JAVA集成編程環(huán)境Eclipse,參考《Java編碼規(guī)范及實(shí)踐》了解JAVA設(shè)計(jì)模式。
3.實(shí)驗(yàn)內(nèi)容
選擇JAVA集成編程環(huán)境Eclipse,了解JAVA語(yǔ)言以及Eclipse的安裝與使用。
4.語(yǔ)言簡(jiǎn)介
JAVA是一種可以撰寫跨平臺(tái)應(yīng)用程序的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。
5. 開發(fā)環(huán)境介紹
本次實(shí)驗(yàn),JAVA語(yǔ)言的開發(fā)環(huán)境選用集成開發(fā)環(huán)境Eclipse,Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。
6.準(zhǔn)備工作
第四篇:軟件工程實(shí)踐報(bào)告5個(gè)
軟件工程實(shí)踐實(shí)驗(yàn)報(bào)告
姓名: 學(xué)號(hào):
班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)
實(shí)驗(yàn)一 軟件需求分析
1軟件需求分析
任務(wù)分析 ATM自動(dòng)提款機(jī)系統(tǒng)。ATM自動(dòng)取款機(jī)是由計(jì)算機(jī)控制的持卡人自我服務(wù)型的金融專用設(shè)備。ATM是英文Automatic Teller Machine的縮寫。在ATM自動(dòng)取款機(jī)上可以進(jìn)行賬戶查詢、修改密碼和轉(zhuǎn)賬的業(yè)務(wù)。作為自助式金融服務(wù)終端,除了提供金融業(yè)務(wù)功能之外,ATM自動(dòng)取款機(jī)還具有維護(hù)、測(cè)試、事件報(bào)告、監(jiān)控和管理等多種功能。ATM自動(dòng)取款機(jī)系統(tǒng)向用戶提供一個(gè)方便、簡(jiǎn)單、及時(shí)、隨時(shí)隨地可以隨心所欲存取款的互聯(lián)的現(xiàn)代計(jì)算機(jī)化的網(wǎng)絡(luò)系統(tǒng)??梢源蟠鬁p少工作人員,節(jié)約人力資源的開銷,同時(shí)由于手續(xù)程序減少也可以減輕業(yè)務(wù)員的工作負(fù)擔(dān),有效地提高了整體的工作效率和精確度。減少了用戶辦理業(yè)務(wù)的等待時(shí)間;用戶可以隨時(shí)隨地可以隨心所欲存取款,并且操作簡(jiǎn)單易懂。
我們所需要的是建立一個(gè)與后臺(tái)用戶數(shù)據(jù)信息數(shù)據(jù)庫(kù)綁定的集查詢,存款,取款,轉(zhuǎn)賬等功能為一體的ATM自助服務(wù)系統(tǒng)。實(shí)驗(yàn)?zāi)康?/p>
學(xué)習(xí)圖形工具軟件VISIO,掌握結(jié)構(gòu)化需求分析方法,熟練繪制數(shù)據(jù)流圖; 學(xué)習(xí)快速原型工具的使用?;疽?/p>
(1)針對(duì)銀行ATM系統(tǒng)進(jìn)行需求分析工作,了解銀行ATM系統(tǒng)的功能、流程;(2)安裝VISIO2003以上版本軟件,熟練應(yīng)用Visio繪制DFD圖,繪制銀行ATM系統(tǒng)數(shù)據(jù)流圖,完成系統(tǒng)的軟件邏輯模型;
(3)安裝Axure RP Pro 或者Balsamiq Mockups快速原型軟件,學(xué)習(xí)繪制軟件原型,完成銀行ATM系統(tǒng)的軟件原型。ATM自動(dòng)柜員機(jī)業(yè)務(wù)系統(tǒng)需求分析
需求分析:由于科技發(fā)展迅速,幾乎所有的銀行都配備了簡(jiǎn)易的人工操作的ATM自動(dòng)取款機(jī)。人們可以隨時(shí)隨地進(jìn)行交易,不再受銀行的服務(wù)時(shí)間的約束,取款也很方便快捷,可以減少排隊(duì)等待時(shí)間。
ATM機(jī)系統(tǒng)的主要功能:1.取款2.存款3修改密碼4..憑條打印5.轉(zhuǎn)賬6.余額查詢7.交易明細(xì)查詢。
⒈取款
持卡人在ATM機(jī)上提取現(xiàn)金。余額不足時(shí)不能取出取款所需的現(xiàn)金。ATM機(jī)可以提供指定取款金額的快速取款畫面。ATM機(jī)取款成功后,要向銀聯(lián)系統(tǒng)寫入操作,并對(duì)客戶余額進(jìn)行相應(yīng)處理。⒉存款
ATM機(jī)要能清點(diǎn)現(xiàn)金,將相應(yīng)操作信息寫入銀聯(lián)系統(tǒng),對(duì)客戶余額進(jìn)行 修改。⒊ 修改密碼
若新密碼1和新密碼相同則修改密碼成功,要修改客戶密碼表,并將操作 信息寫入銀聯(lián)系統(tǒng)。否則,修改密碼不成功。⒋ 打印憑條
對(duì)客戶做的操作及用戶基本信息進(jìn)行打印。⒌轉(zhuǎn)賬
完成不同銀行卡之間資金的轉(zhuǎn)移。若客戶余額不足則轉(zhuǎn)賬識(shí)別。轉(zhuǎn)帳成 功,對(duì)客戶和收賬人的余額進(jìn)行相應(yīng)的修改,寫入賬戶余額表,并向銀 聯(lián)系統(tǒng)寫入操作。6.余額查詢
客戶查詢銀行卡,在屏幕上顯示銀行卡賬戶余額。⒎ 交易明細(xì)查詢
完成銀行卡賬戶的近十筆交易明細(xì)查詢,在屏幕上顯示。
ATM機(jī)工作流程:插入卡->輸入密碼->選擇操作類型->交易流程->確定交易->寫入賬戶信息和銀聯(lián)系統(tǒng) ATM自動(dòng)柜員機(jī)業(yè)務(wù)系統(tǒng)數(shù)據(jù)流圖
3.1頂層數(shù)據(jù)流圖
3.2一層數(shù)據(jù)流圖
將銀行卡從讀卡器插入ATM機(jī),輸入密碼登錄,登陸成功,則在LCD顯示屏 上顯示無ATM機(jī)不提供的操作的功能選擇界面,進(jìn)行操作并顯示信息、進(jìn)行相關(guān)處理。三次錯(cuò)誤輸入密碼則吞卡。ATM機(jī)鈔箱缺錢時(shí)則通知加鈔。
一層數(shù)據(jù)流圖
3.3二層數(shù)據(jù)流圖
客戶插入銀行卡后開始識(shí)別銀行卡所屬的銀行和賬戶信息,識(shí)別后開始校驗(yàn)客 戶輸入的密碼,判斷是否和正確密碼相符,若相符則進(jìn)行ATM機(jī)自檢,去掉暫時(shí)不能提供的操作,讓用戶選擇操作。若不相符則提示錯(cuò)誤,輸入三次都不相符,則吞卡。
登錄的第二層數(shù)據(jù)流圖
成功登錄后選擇交易,并在交易過程中進(jìn)行操作倒計(jì)時(shí),以防用戶忘記取卡 而丟失卡,交易完成可以選擇打印憑條和退卡。
動(dòng)作的第二層數(shù)據(jù)流圖
超時(shí)或連輸三次錯(cuò)誤的密碼都會(huì)吞卡,并自動(dòng)凍結(jié)卡,顯示吞卡信息并打印 吞卡憑條。
吞卡的第二層數(shù)據(jù)流圖
ATM機(jī)缺錢時(shí)發(fā)送鈔箱缺錢信息,進(jìn)行清機(jī)對(duì)賬,驗(yàn)鈔點(diǎn)鈔,打開金庫(kù),將錢放入鈔箱。
加鈔的第二層數(shù)據(jù)流圖 3.4三層數(shù)據(jù)流圖
ATM自查時(shí)查鈔箱余額和憑條打印機(jī)的紙墨余量,以在功能選擇界面上去掉 ATM暫時(shí)不能提供的操作。
ATM機(jī)自檢的第三層數(shù)據(jù)流圖
選擇交易,進(jìn)行存款、查詢、取款、改密、轉(zhuǎn)賬等操作,同時(shí)對(duì)操作進(jìn)行倒計(jì)時(shí),并向后臺(tái)銀聯(lián)系統(tǒng)提供信息,在LCD顯示屏上顯示信息。
交易的第三層數(shù)據(jù)流圖
3.5四層數(shù)據(jù)流圖
選擇存款操作后,打開存款槽,存款后,關(guān)閉存款槽,點(diǎn)鈔機(jī)點(diǎn)鈔,將金額 和張數(shù)顯示在LCD屏上,確定后向后臺(tái)提供信息,修改余額信息。
存款的第四層數(shù)據(jù)流圖
選擇查詢功能后,再在兩個(gè)子功能下選擇進(jìn)行的是余額查詢還是交易明細(xì)查 詢,并在 LCD顯示屏上顯示提示信息。
查詢的第四層數(shù)據(jù)流圖
選擇取款功能后,比較客戶的余額是否大于取款金額,并修改客戶的余額信 息,在LCD屏上顯示提示信息,向后臺(tái)系統(tǒng)提交信息。
取款的第四層數(shù)據(jù)流圖
改密時(shí)先輸入一遍新密碼,再輸入一遍新密碼,若兩次密碼相符,則改密成功,對(duì)用戶名密碼表進(jìn)行相關(guān)修改,在LCD屏上顯示提示信息,向后臺(tái)提供信息。否則顯示改密失敗。
轉(zhuǎn)賬時(shí),先輸入一遍收賬人賬戶,再輸入一遍,若相符,則比對(duì)客戶余額是否大于轉(zhuǎn)賬金額,若是,則轉(zhuǎn)賬成功,修改兩個(gè)賬戶的余額,在LCD顯示屏上顯示提示信息,向后臺(tái)提供信息。若否,則顯示轉(zhuǎn)賬失敗。
改密的第四層數(shù)據(jù)流圖
3.6五層數(shù)據(jù)流圖
選擇查詢賬戶余額信息時(shí),查客戶余額表,顯示在LCD顯示屏上。
余額查詢的第五層數(shù)據(jù)流圖
選擇查詢賬戶交易明細(xì)后,查客戶交易明細(xì)信息表,并在LCD顯示屏上顯示出信息。
轉(zhuǎn)賬的第四層數(shù)據(jù)流圖
交易明細(xì)查詢的第五層數(shù)據(jù)流圖 ATM自動(dòng)柜員機(jī)業(yè)務(wù)系統(tǒng)原型系統(tǒng)
1、待機(jī)歡迎界面
2、輸入密碼界面
3、服務(wù)選擇界面
4、取款金額選擇界面
5、取款結(jié)束界面
6、存款提示界面
7、存款信息界面
8、存款結(jié)束界面
9、查詢選擇界面。
10、查詢余額界面
11、查詢明細(xì)界面
12、轉(zhuǎn)帳賬戶輸入界面
13、賬戶錯(cuò)誤界面
14、轉(zhuǎn)帳金額輸入界面
15、轉(zhuǎn)帳成功界面
16、退卡提示界面
17、密碼驗(yàn)證界面
18、新密碼輸入界面
19、新密碼確認(rèn)界面
20、修改成功界面
21、修改失敗界面
實(shí)驗(yàn)二 面向?qū)ο蟮能浖治雠c設(shè)計(jì)
實(shí)驗(yàn)?zāi)康?/p>
學(xué)習(xí)UML和UML軟件工具,掌握面向?qū)ο蠓治雠c設(shè)計(jì)方法
基本要求
1、學(xué)習(xí)面向?qū)ο蠓治雠c設(shè)計(jì)方法和UML;
2、安裝StarUML 和Rational Rose軟件,熟練使用UML軟件工具,對(duì)目標(biāo)系統(tǒng)進(jìn)行分析,完成用例圖、類圖。
3、完成序列圖、狀態(tài)圖、活動(dòng)圖等圖形的繪制。
4、學(xué)習(xí)UML模型和源代碼的雙向工程,完善報(bào)告。前言
由于科技發(fā)展迅速,幾乎所有的銀行都配備了簡(jiǎn)易的人工操作的ATM自動(dòng)取款機(jī)。人們可以隨時(shí)隨地進(jìn)行交易,不再受銀行的服務(wù)時(shí)間的約束,取款也很方便快捷,可以減少排隊(duì)等待時(shí)間。問題說明
客戶插入銀行卡,要求ATM自動(dòng)柜員機(jī)能識(shí)別卡,若能夠識(shí)別出卡,則要求客戶輸入密碼,若輸入密碼正確,讓客戶選擇業(yè)務(wù),若輸入密碼錯(cuò)誤,則讓客戶再次輸入密 碼,輸入三次錯(cuò)誤的密碼則執(zhí)行吞卡操作。
選擇的業(yè)務(wù)若是取款,則讓客戶輸入取款金額,超過賬戶余額,則取款失敗,否則取款成功,取款槽吐出現(xiàn)金,修改賬戶余額,并記錄操作信息。
選擇的業(yè)務(wù)若是存款,則打開存款槽,讓客戶放入現(xiàn)金,并能啟動(dòng)點(diǎn)鈔機(jī),清點(diǎn)客戶放入的現(xiàn)金數(shù)目,修改賬戶余額,并記錄操作信息。
選擇的業(yè)務(wù)若是轉(zhuǎn)賬,則讓客戶輸入兩遍轉(zhuǎn)賬賬號(hào)和轉(zhuǎn)賬金額,若兩遍轉(zhuǎn)賬賬號(hào)不一致,則不能轉(zhuǎn)賬,若輸入轉(zhuǎn)賬金額超過賬戶余額,則轉(zhuǎn)賬失敗,否則轉(zhuǎn)賬成功。
選擇的業(yè)務(wù)若是查詢,則從服務(wù)器中查找出客戶的余額或交易明細(xì)信息,并顯示出來。
選擇的業(yè)務(wù)若是修改密碼,則要求客戶輸入兩遍新修改的密碼,若兩遍密碼一致,則改密成功,并修改賬戶密碼,密碼不一致,則改密失敗。選擇打印憑條,則啟動(dòng)憑條打印機(jī),打印憑條并吐出憑條。選擇退卡,則讓讀卡器吐出銀行卡。Use Case圖
3.1賬戶用例圖
3.2系統(tǒng)維護(hù)人員用例圖
3.3設(shè)備管理人員用例圖
3.4系統(tǒng)時(shí)鐘用例圖
3.5總的用例圖 類圖 序列圖 5.1登錄基本序列圖
5.2登錄備選序列圖(密碼錯(cuò)誤)
5.3登錄備選序列圖(密碼錯(cuò)誤吞卡)
5.4 取款序列圖
5.5取款備選序列圖(余額不足)
5.6查詢序列圖
5.7 存款序列圖
5.8 修改密碼序列圖
5.9 修改密碼備選序列圖(兩次密碼不一致)
5.10 轉(zhuǎn)賬序列圖
5.11 轉(zhuǎn)賬備選序列圖(兩次輸入賬戶不同)
5.14退卡序列圖
6協(xié)作圖
6-1協(xié)作圖
7-1識(shí)別銀行卡活動(dòng)圖
7-2登錄活動(dòng)圖
7-3取款活動(dòng)圖
7-4存款活動(dòng)圖
7-5修改密碼活動(dòng)圖
7-6轉(zhuǎn)賬活動(dòng)圖
7-7查詢活動(dòng)圖
7-8打印憑條活動(dòng)圖
7-9退卡活動(dòng)圖
7-10吞卡活動(dòng)圖
7-11備份活動(dòng)圖
7-12加鈔活動(dòng)圖
7-13維護(hù)活動(dòng)圖
8狀態(tài)圖
實(shí)驗(yàn)三 集成編程環(huán)境與編碼規(guī)范
1.實(shí)驗(yàn)?zāi)康?/p>
學(xué)習(xí)PHP、.Net、JAVA集成編程環(huán)境,熟悉各語(yǔ)言的編碼規(guī)范。
2.基本要求
(1)學(xué)習(xí)PHP語(yǔ)言基礎(chǔ),學(xué)習(xí)PHP集成編程環(huán)境EPP,了解常用插件,掌握Z(yǔ)end debuger PHP斷點(diǎn)調(diào)試功能;
(2)學(xué)習(xí).C#語(yǔ)言基礎(chǔ),學(xué)習(xí).Net集成編程環(huán)境,掌握集成環(huán)境中的調(diào)試技術(shù);
(3)學(xué)習(xí)JAVA集成編程環(huán)境Eclipse,參考《Java編碼規(guī)范及實(shí)踐》了解JAVA設(shè)計(jì)模式。
3.實(shí)驗(yàn)內(nèi)容
選擇JAVA集成編程環(huán)境Eclipse,了解JAVA語(yǔ)言以及Eclipse的安裝與使用。
4.語(yǔ)言簡(jiǎn)介
JAVA是一種可以撰寫跨平臺(tái)應(yīng)用程序的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。
5. 開發(fā)環(huán)境介紹
本次實(shí)驗(yàn),JAVA語(yǔ)言的開發(fā)環(huán)境選用集成開發(fā)環(huán)境Eclipse,Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。
6.準(zhǔn)備工作
第五篇:軟件工程實(shí)踐心得
軟件工程(SE)
軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它包括程序、相關(guān)數(shù)據(jù)及其說明文檔。軟件工程(Software Engineering,簡(jiǎn)稱為SE)是針對(duì)軟件這一具有特殊性質(zhì)的產(chǎn)品的工程化方法。SE涵蓋了軟件生命周期的所有階段,并提供了一整套工程化的方法,來指導(dǎo)軟件人員的工作。任何事物都是從無到有的,軟件當(dāng)然也不例外。上世紀(jì)中期,軟件產(chǎn)業(yè)從零開始起步,經(jīng)過半個(gè)多世紀(jì)的發(fā)展,其大致經(jīng)歷的3個(gè)階段:程序設(shè)計(jì)階段、軟件設(shè)計(jì)階段和軟件工程時(shí)代,現(xiàn)已成為推動(dòng)人類社會(huì)發(fā)展的龍頭產(chǎn)業(yè),隨著信息化時(shí)代的發(fā)展,軟件對(duì)人類社會(huì)也將越看來越重要。人們對(duì)軟件的認(rèn)識(shí)自然經(jīng)歷了一個(gè)由淺入深的過程,在得到巨大需求的同時(shí),也遇到了一系列嚴(yán)重問題,即軟件危機(jī)。所謂軟件危機(jī),是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一些嚴(yán)重問題,其實(shí)質(zhì)是軟件產(chǎn)品的供應(yīng)趕不上需求的增長(zhǎng)。概括的說包含兩方面的問題:
一、如何開發(fā)軟件,以滿足不斷增長(zhǎng),日趨復(fù)雜的要求;
二、如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。為研究和解決軟件危機(jī),一門新興的學(xué)科——軟件工程,應(yīng)運(yùn)而生。
軟件工程的概念是為了有效地控制軟件危機(jī)的發(fā)生而被提出來的,它的中心目標(biāo)就是把軟件作為一種物理的工業(yè)產(chǎn)品來開發(fā),要求“采用工程化的原理與方法對(duì)軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù)”,它的主要對(duì)象是大型軟件,它的最終目的是擺脫手工生產(chǎn)軟件的現(xiàn)狀,逐步實(shí)現(xiàn)軟件開發(fā)和維護(hù)的自動(dòng)化。軟件工程的概念自提出來后,經(jīng)過幾
十年的發(fā)展,雖然軟件危機(jī)沒有得到徹底的解決,但在軟件開發(fā)方法和技術(shù)方面已經(jīng)有了很大的進(jìn)步,提出了軟件工程知識(shí)體系、軟件工程三段論、軟件工程生存期模型、服用原則等等。
軟件開發(fā)過程大致經(jīng)過7個(gè)階段:可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、提交與維護(hù)。接下來逐一分析本人見解:
一、可行性分析:顧名思義,就是看項(xiàng)目究竟“能不能做”。有3個(gè)方面:技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性。要確定項(xiàng)目,首先要客觀的、科學(xué)的了解項(xiàng)目的規(guī)模、難度和時(shí)間限制,才可以確定應(yīng)該投入多少人力、物力和財(cái)力去做這個(gè)項(xiàng)目,必須準(zhǔn)確的估計(jì)項(xiàng)目的規(guī)模與難度。看項(xiàng)目是否有價(jià)值去做,如果沒有價(jià)值,就放棄;如果有價(jià)值,就要看目前的資源是否能滿足項(xiàng)目的開發(fā)。如果項(xiàng)目有價(jià)值,且有必需的資源,那么就可以確定能做這個(gè)項(xiàng)目了。
二、需求分析階段:解決“做什么、不做什么”的問題。圍繞兩個(gè)核心問題開展需求分析:應(yīng)該了解什么?通過什么方式去了解?
一、了解什么:應(yīng)該先了解宏觀的問題,再了解細(xì)節(jié)的問題。最好為每個(gè)需求注釋“為什么”,這樣可以讓程序員了解需求的本質(zhì),以便選用最合適的技術(shù)來實(shí)現(xiàn)此需求。同時(shí),需求說明不可有額二義性,更不能前后矛盾,如果有二義性貨前后相矛盾,則要重新分析此需求。然后,選擇合適的生存周期,建立合適的需求模型;
二、通過什么方式去了解:直接與客戶交談;有些需求客戶講不清楚,分析人員又猜不透,這是就要請(qǐng)教行家。需求分析是非常重要的階段,如果做不好 的話,后果很麻煩。
三、概要設(shè)計(jì):解決“怎么做”的問題。將需求描述的“做什么”問題變?yōu)橐粋€(gè)實(shí)施方案的創(chuàng)造性過程,使得整個(gè)項(xiàng)目在邏輯上和物理上能夠得意實(shí)現(xiàn)。概要設(shè)計(jì)是第一個(gè)開發(fā)活動(dòng),也是最重要的活動(dòng),是軟件項(xiàng)目實(shí)現(xiàn)的關(guān)鍵階段。設(shè)計(jì)質(zhì)量的高低直接決定了軟件項(xiàng)目的成敗,缺乏或者沒有軟件設(shè)計(jì)的過程會(huì)產(chǎn)生一個(gè)不穩(wěn)定的、甚至是失敗的軟件系統(tǒng)。一個(gè)良好的軟件設(shè)計(jì)是進(jìn)行快速軟件開發(fā)的根本,沒有良好的設(shè)計(jì),會(huì)將時(shí)間花在不斷的調(diào)試上,無法添加新功能,修改時(shí)間越來越長(zhǎng),隨著給程序打上一個(gè)有一個(gè)的補(bǔ)丁,新的功能需要更多的代碼實(shí)現(xiàn),就變成一個(gè)惡性循環(huán)了。概要設(shè)計(jì)是軟件設(shè)計(jì)級(jí)別中的高級(jí)設(shè)計(jì),是從需求出發(fā),描述了總體上系統(tǒng)架構(gòu)應(yīng)該包含的要素。概要設(shè)計(jì)盡可能模塊化,因此描述了各個(gè)模塊之間的關(guān)聯(lián),主要是根據(jù)需求規(guī)格或規(guī)格定義,合理、有效地實(shí)現(xiàn)產(chǎn)品規(guī)格中定義的各項(xiàng)需求,完成軟件模塊的劃分并描述模塊之間的關(guān)系,并不斷分解系統(tǒng)模塊,從高層分解到低層分解。它注重框架設(shè)計(jì)、總體結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、接口設(shè)計(jì)、網(wǎng)絡(luò)環(huán)境設(shè)計(jì)等,將產(chǎn)品分割成一些可以獨(dú)立設(shè)計(jì)和實(shí)現(xiàn)的部分并保證各個(gè)部分可以和諧的工作。此過程中畫數(shù)據(jù)流圖、IPO圖、E-R圖、界面設(shè)計(jì)等。
四、詳細(xì)設(shè)計(jì):解決“具體做什么”的問題,將解決問題的辦法進(jìn)行具體化。軟件設(shè)計(jì)的低級(jí)設(shè)計(jì),亦即詳細(xì)設(shè)計(jì),主要描述實(shí)現(xiàn)各個(gè)模塊的算法和數(shù)據(jù)結(jié)構(gòu)以及用特定計(jì)算機(jī)語(yǔ)言實(shí)現(xiàn)的初步描述,是針對(duì)程序開發(fā)部分來說的,但這個(gè)階段不是真正編寫程序,而是設(shè)計(jì)
出程序的詳細(xì)規(guī)格說明,這種規(guī)格說明類似于其他工程領(lǐng)域中工程師經(jīng)常使用的工程藍(lán)圖,程序員根據(jù)其中所包含的必要的細(xì)節(jié)寫出實(shí)際的程序代碼。用另一種方式說就是,詳細(xì)設(shè)計(jì)是將概要設(shè)計(jì)的框架內(nèi)容具體化、明細(xì)化,將概要設(shè)計(jì)轉(zhuǎn)化為 可以操作的軟件模型,但在實(shí)際項(xiàng)目進(jìn)行過程中,依據(jù)項(xiàng)目的具體情況和項(xiàng)目要求,這個(gè)過程可能可以省略(邏輯上沒有省略,表現(xiàn)在概要設(shè)計(jì)階段或者編碼階段),直接按照概要設(shè)計(jì)進(jìn)行編碼;不過,個(gè)人認(rèn)為最好有,有詳細(xì)設(shè)計(jì)可以更好的保證編碼順利的進(jìn)行,可以預(yù)先掃清編碼過程中的障礙,提高代碼的質(zhì)量和編碼的效率。主要包括模塊描述、算法描述、數(shù)據(jù)描述,可以采用圖形、表格或者文字描述等方式表達(dá)出來。
五、編碼:實(shí)現(xiàn)項(xiàng)目。由項(xiàng)目的概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),將設(shè)計(jì)變?yōu)榇a需要通過編碼過程來完成。實(shí)現(xiàn)設(shè)計(jì)有很多種選擇,有很多實(shí)現(xiàn)語(yǔ)言、工具等可供選擇,但一般而言,在設(shè)計(jì)中會(huì)直接或間接地確定了實(shí)現(xiàn)語(yǔ)言。編碼過程的一個(gè)主要標(biāo)準(zhǔn)時(shí)變成與設(shè)計(jì)的對(duì)應(yīng)性和統(tǒng)一性。如果編碼沒有按設(shè)計(jì)的要求進(jìn)行,設(shè)計(jì)就失去意義了。設(shè)計(jì)過程中的算法、功能、接口、數(shù)據(jù)結(jié)構(gòu)都應(yīng)該在編碼過程中體現(xiàn)。如果需求發(fā)生變更,設(shè)計(jì)業(yè)對(duì)應(yīng)地發(fā)生變更,同時(shí)代碼也應(yīng)該一致地發(fā)生變更,這可以通過配置管理配置控制??梢姡绻幋a和設(shè)計(jì)不一致,很容易“跑偏”,走火入魔。編碼時(shí)要嚴(yán)格遵循編碼標(biāo)準(zhǔn)和規(guī)范,并提供必要的程序注釋,增加可讀性。另一個(gè)就是重構(gòu)的理解,所謂重構(gòu)是對(duì)軟件內(nèi)部的一種調(diào)整,目的是在不改變軟件基本功能和性能的前提下,提高其可理解性,降低成本,當(dāng)添加功能、修改代碼和復(fù)查
代碼的時(shí)候,更不要錯(cuò)過重構(gòu),另外,重構(gòu)可以和設(shè)計(jì)互補(bǔ)。還有一點(diǎn)值得注意,要在必要的時(shí)候部署編碼文檔。
六、測(cè)試:看軟件是否符合標(biāo)準(zhǔn)。軟件編碼完成之后,將軟件提交給用戶之前,需要對(duì)軟件進(jìn)行測(cè)試,這是保證軟件產(chǎn)品質(zhì)量的一個(gè)重要標(biāo)準(zhǔn),也是評(píng)估產(chǎn)品質(zhì)量的主要手段。軟件測(cè)試是從軟件工程中演化出來的一個(gè)分支,有著非常廣泛的內(nèi)容,并且隨著軟件產(chǎn)業(yè)的發(fā)展,它已經(jīng)變得越來越重要。軟件與生俱來就可能存在缺陷,為了防止和減少這些可能存在的缺陷,進(jìn)行軟件測(cè)試是有必要的,測(cè)試是最有效的的排錯(cuò)和防止缺陷和故障的手段。最原始的測(cè)試莫過于直接運(yùn)行軟件了,后來測(cè)試手段逐漸多樣化。測(cè)試手段有靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試面向?qū)ο蟮臏y(cè)試、自動(dòng)化測(cè)試等等之分。靜態(tài)測(cè)試或稱靜態(tài)分析是指一種不通過執(zhí)行程序來進(jìn)行測(cè)試的一種技術(shù),主要是檢查軟件的表示和描述是否一致,覆蓋程序的編碼格式、程序語(yǔ)法、檢查獨(dú)立語(yǔ)句的結(jié)構(gòu)和使用等,主要包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量等等,可以通過人工進(jìn)行,亦可借助工具(如:語(yǔ)法分析器)自動(dòng)進(jìn)行。動(dòng)態(tài)測(cè)試是運(yùn)行被測(cè)試的程序,通過輸入測(cè)試用例,對(duì)其運(yùn)行情況進(jìn)行分析,以達(dá)到檢測(cè)的目的,顯然動(dòng)態(tài)測(cè)試封像我們通常意義上的“測(cè)試”。動(dòng)態(tài)測(cè)試主要包括白盒測(cè)試、黑盒測(cè)試、灰盒測(cè)試(介于黑盒和白盒之間)。其他測(cè)試不再一一介紹。
七、提交與維護(hù):測(cè)試完之后,就要把軟件交給用戶使用了。提交不是剪裁,給人家就行了,還要教會(huì)客戶怎么使用這個(gè)系統(tǒng)。如果用戶不會(huì)使用系統(tǒng),就會(huì)不滿意系統(tǒng)的性能,那之前的努力就白費(fèi)了,打水漂了。為了保證成功地將我們開發(fā)的軟件提交給用戶,我們需要對(duì)用戶進(jìn)行培訓(xùn),同時(shí)提交必要的文檔及用戶手冊(cè)軟件。維護(hù)就不用多說了,就是售后服務(wù)了。維護(hù)需要分析人員、編碼人員和設(shè)計(jì)人員等角色的參與,有糾錯(cuò)行維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)等。維護(hù)后,要寫軟件維護(hù)過程文檔,至少提交一個(gè)軟件維護(hù)記錄。
以上是軟件工程及其幾個(gè)階段的介紹,知道怎樣開發(fā)軟件只是軟件工程的一部分,搞好團(tuán)隊(duì)合作也是很重要的。項(xiàng)目是一個(gè)很大的工程,需要一個(gè)團(tuán)隊(duì)的統(tǒng)籌規(guī)劃,團(tuán)結(jié)協(xié)作,集思廣益,舉一反三,才能夠按預(yù)期完成。