(二) 與軟件維護(hù)有關(guān)的問(wèn)題
軟件維護(hù)人員通常不是該軟件的開(kāi)發(fā)人員,這給軟件維護(hù)帶來(lái)很大的困難,特別是有些軟件在開(kāi)發(fā)時(shí)沒(méi)有遵循軟件開(kāi)發(fā)的準(zhǔn)則,沒(méi)有開(kāi)發(fā)方法的支持,維護(hù)這樣的軟件就更困難。下面列舉一些與軟件維護(hù)有關(guān)的問(wèn)題。
。1)要維護(hù)一個(gè)軟件,首先要理解它。而理解別人的程序通常是非常困難的,尤其是對(duì)軟件配置(指各種文檔)不齊的軟件,理解起來(lái)更為困難。
(2)需要維護(hù)的軟件往往缺少合格的文檔,或者文檔資料不齊,甚至沒(méi)有文檔。在軟件維護(hù)中,合格的文檔十分重要,它有助于理解被維護(hù)的軟件。合格的文檔不僅要完整正確地反映開(kāi)發(fā)過(guò)程各階段的工作結(jié)果,而且應(yīng)該容易理解并應(yīng)程序源代碼一致。而錯(cuò)誤的文檔會(huì)把對(duì)程序的理解引入歧途。
(3)在軟件維護(hù)時(shí),不要指望得到原來(lái)開(kāi)發(fā)該軟件的人員的幫助。開(kāi)發(fā)人員開(kāi)發(fā)完一個(gè)軟件后,往往去從事另一軟件的開(kāi)發(fā),甚至已調(diào)離開(kāi)發(fā)單位。即使原先的開(kāi)發(fā)人員還在,也可能因?yàn)橄喔魰r(shí)間太久而遺忘了實(shí)現(xiàn)的細(xì)節(jié)。
。4)多數(shù)軟件在設(shè)計(jì)時(shí)沒(méi)有考慮今后的修改,給軟件的修改帶來(lái)困難,而且在修改軟件時(shí)容易帶來(lái)新的差錯(cuò)。對(duì)那些缺乏模塊獨(dú)立性和非結(jié)構(gòu)化的程序來(lái)說(shuō),更是如此。
。5)軟件維護(hù)通常不是一件吸引人的工作。從事維護(hù)工作常使維護(hù)人員感到缺乏成就感。這也嚴(yán)重影響維護(hù)工作。從而導(dǎo)致維護(hù)質(zhì)量的不高。可以看出,上述的有些問(wèn)題都與被維護(hù)的質(zhì)量密切相關(guān),所以在開(kāi)發(fā)軟件時(shí),要認(rèn)真寫(xiě)好各類(lèi)文檔,并且應(yīng)注意提高軟件的可維護(hù)性,這樣可在很大程序上緩解軟件維護(hù)的困難。
。ㄈ 可維護(hù)性軟件可維護(hù)性是指理解、改正、改動(dòng)、改進(jìn)軟件的難易程度。通常影響軟件可維護(hù)性的因素有可理解性、可測(cè)試性和可修改性。
1.可理解性
2.可測(cè)試性
可測(cè)試性是指測(cè)試和診斷軟件(主要指程序)中錯(cuò)誤的難易程度。測(cè)試主要是發(fā)現(xiàn)軟件中的錯(cuò)誤,而診斷錯(cuò)誤的性質(zhì)和出錯(cuò)的位置通常是調(diào)試的任務(wù)。提高軟件可測(cè)試性的措施有:書(shū)寫(xiě)詳細(xì)正確的文檔,采用良好的程序結(jié)構(gòu),使用測(cè)試工具和調(diào)試工具,保存以前的測(cè)試過(guò)程和測(cè)試用例等等。
3.可修改性
可修改性是指修改軟件(主要指程序)的難易程度。在修改程序時(shí)經(jīng)常會(huì)發(fā)生這樣的情況:修改程序中某個(gè)錯(cuò)誤的同時(shí)又產(chǎn)生新的錯(cuò)誤(由程序的修改引起的),或者在程序中增加了某個(gè)功能的同時(shí),原先的某些功能不能正常執(zhí)行。這主要是因?yàn)槌绦蛑懈鞒煞种g存在著許多聯(lián)系,當(dāng)程序中某處修改時(shí),這個(gè)修改可能會(huì)影響到程序的其他部分。如果修改程序時(shí)稍有考慮不周,就會(huì)出現(xiàn)上述顧此失彼的情況。因此,如果一處修改所涉及到的范圍越少,發(fā)生上述情況的概率也越小,其可修改性也越好。在軟件設(shè)計(jì)中我們介紹的那些設(shè)計(jì)準(zhǔn)則都是影響可修改性的因素,如信息隱蔽原則、模塊獨(dú)立、模塊間聯(lián)系的低耦合高內(nèi)聚等等。
。ㄋ模 軟件維護(hù)活動(dòng)流程
凡是需要軟件維護(hù),都應(yīng)有一個(gè)軟件維護(hù)的申請(qǐng)報(bào)告。改正性維護(hù)的申請(qǐng)報(bào)告應(yīng)完整地描述導(dǎo)致錯(cuò)誤的環(huán)境,包括輸入數(shù)據(jù)、錯(cuò)誤清單以及有關(guān)的材料。適應(yīng)性維護(hù)或完善性維護(hù)的申請(qǐng)報(bào)告應(yīng)提供一份簡(jiǎn)短的需求說(shuō)明書(shū)。維護(hù)申請(qǐng)書(shū)由維護(hù)管理員和系統(tǒng)管理員審批。并指明所需修改的性質(zhì),申請(qǐng)修改的優(yōu)先級(jí),所需的工作量等。維護(hù)活動(dòng)的第一步是確定維護(hù)的類(lèi)型,若是改正性維護(hù),則要估計(jì)錯(cuò)誤的嚴(yán)重程度,對(duì)嚴(yán)重的錯(cuò)誤,則馬上分派人員執(zhí)行維護(hù)任務(wù);對(duì)不嚴(yán)重的錯(cuò)誤,則可將其暫時(shí)保存,在以后適當(dāng)時(shí)候再進(jìn)行改正。若是適應(yīng)性維護(hù)或完善性維護(hù),則要根據(jù)其優(yōu)先級(jí)來(lái)決定維護(hù)的先后次序,優(yōu)先級(jí)高的維護(hù)則馬上開(kāi)始;優(yōu)先級(jí)低的可暫時(shí)保存,以便統(tǒng)籌安排。適應(yīng)性維護(hù)或完善性維護(hù)的過(guò)程相當(dāng)于一個(gè)小的開(kāi)發(fā)過(guò)程,它同樣要經(jīng)歷需求分析、設(shè)計(jì)、編碼、測(cè)試等階段。不管是哪種維護(hù),有些工作是每種維護(hù)活動(dòng)都必須做的,如在修改程序代碼的同時(shí)還要修改(如有必要)相應(yīng)的需求說(shuō)明文檔、設(shè)計(jì)文檔等,還要進(jìn)行回歸測(cè)試和軟件配置復(fù)審等。
五、軟件管理
軟件工程項(xiàng)目高質(zhì)量高效率的完成與其他產(chǎn)品的工程項(xiàng)目一樣,不僅取決于所采用的技術(shù)、方法和工具,還決定于管理的好壞。兩者相輔相成,缺一不可。就目前軟件開(kāi)發(fā)中的問(wèn)題,更多的是管理問(wèn)題。本節(jié)將集中討論與管理方面有關(guān)的問(wèn)題。
。ㄒ唬 確定工作范圍和資源
1.軟件工作范圍
軟件計(jì)劃的第一個(gè)任務(wù)就是確定軟件的工作范圍,即軟件的用途及對(duì)軟件的要求。其中主要包括軟件的功能、性能、接口和可靠性等四個(gè)方面。計(jì)劃人員必須使用管理人員和技術(shù)人員都能理解的無(wú)二義性的語(yǔ)言來(lái)描述工作范圍。對(duì)于軟件功能的要求,在某些情況下要進(jìn)行求精細(xì)化,以便能夠提供更多的細(xì)節(jié),因?yàn)槌杀竞瓦M(jìn)度的估算都與功能有關(guān)。軟件的性能包括處理時(shí)間的約束、存儲(chǔ)限制以及依賴(lài)于機(jī)器的某些特性。要同時(shí)考慮功能和性能,才能做出正確的估計(jì)。接口又可分為硬件、軟件和人三類(lèi):
(1)硬件指執(zhí)行該軟件的硬件,如中央處理機(jī)和外部設(shè)備,以及由該軟件控制的各種間接設(shè)備,如各種機(jī)器和顯示設(shè)備等;
。2)軟件指已有的而且必須與新開(kāi)發(fā)軟件連接的軟件,如數(shù)據(jù)庫(kù)、子程序包和操作系統(tǒng)等;
(3)人指通過(guò)終端或輸入/輸出設(shè)備使用該軟件的操作人員。在這三種情況下,都要詳細(xì)地了解通過(guò)接口的信息傳遞。計(jì)劃人員還必須考慮各個(gè)接口的性質(zhì)及復(fù)雜程度,以確定對(duì)開(kāi)發(fā)資源、成本和進(jìn)度的各種影響。
希望與更多計(jì)算機(jī)等級(jí)考試的網(wǎng)友交流,請(qǐng)進(jìn)入計(jì)算機(jī)等級(jí)考試論壇
更多信息請(qǐng)?jiān)L問(wèn):考試吧計(jì)算機(jī)等級(jí)考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |