中圖分類號:G808.22文獻(xiàn)標(biāo)識碼:A 文章編號:1008-925X(2011)09-0050-01
摘要:在當(dāng)今的軟件工程時代,每個項目涉及眾多的人力和物力,管理問題日益突出。對于規(guī)模大、人員多、開發(fā)時間長的軟件項目,必須要有良好的管理和力求在確定的時間和預(yù)算范圍內(nèi)有效地、合理地組織人力、物力,按計劃完成預(yù)定的軟件項目。
關(guān)鍵詞:計算機 工程管理
1 引言
軟件工程管理目前還沒有引起人們的足夠重視。究其原因:首先是人的傳統(tǒng)觀念,工程管理不為人們所重視;另一方面軟件工程是一個新興的學(xué)科領(lǐng)域,軟件工程管理的問題也是剛被提出的。同時,由于軟件產(chǎn)品的特殊性,使軟件工程管理涉及到很多學(xué)科。因此,對軟件工程管理,人們還缺乏經(jīng)驗和技術(shù)。但事實證明,由管理失誤造成的后果要比程序錯誤造成的后果更為嚴(yán)重。很少有軟件項目的實施進程能準(zhǔn)確地符合預(yù)定目標(biāo)、進度和預(yù)算的,這也就足以說明軟件工程管理的重要。
2 軟件工程管理的內(nèi)容
目前軟件生產(chǎn)自動化程度很低,在開發(fā)過程中人是起決定性的因素,因此,軟件工程管理很大程度上是對人的管理。我們可根據(jù)軟件產(chǎn)品的特點,分析軟件工程管理的具體內(nèi)容,它包括對開發(fā)人員、組織機構(gòu)、使用者、文檔資料等方而的管理。
2.1 開發(fā)人員。軟件開發(fā)人員一般分為:項目負(fù)責(zé)人、系統(tǒng)分析員、高級程序員、初級程序員、資料員和其他輔助人員。根據(jù)項目的規(guī)模大小,有可能一人身兼數(shù)職,但職責(zé)必須明確。
不同職責(zé)的人,要求的素質(zhì)不同。如項目負(fù)責(zé)人需要有組織能力、判斷能力和對重大問題能做出決策的能力;系統(tǒng)分析員則要有概括能力、分析能力和社交活動能力;程序員需要有熟練的編程能力等。
人員要少而精,選人要慎重。軟件生命期各個價段的活動有分工又互相聯(lián)系。因此,要求選擇各類人員既能勝任工作,又要能相互很好地配合。沒有一個和諧的工作氣氛很難完成一個復(fù)雜的軟件項目。
2.2 組織機構(gòu)。組織機構(gòu)不等于開發(fā)人員的簡單集合。這里的組織機構(gòu)要求:好的組織結(jié)構(gòu)、合理的人員分工和有效的通訊。軟件開發(fā)的組織機構(gòu)沒有統(tǒng)一的模式。下面簡單介紹三種組織機構(gòu)。
2.2.1 單位提出的主程序員組是軟件系統(tǒng)結(jié)構(gòu)化思想在組織上的體現(xiàn)。它的目的是為了保證全組的協(xié)調(diào)和統(tǒng)一。一位高級工程師(主程序員)主持計劃、協(xié)調(diào)和復(fù)審組的全部技術(shù)活動。技術(shù)人員(一般2~5人)負(fù)責(zé)分析和開發(fā)活動,一位后援工程師支持高級工程師的工作,并且在該項目繼續(xù)進行時,可以代替高級工程師工作,以減少可能的損失。
2.2.2 專家組。專家組強調(diào)每個人的才能,把每個人都看作是某一方面的專家,由這些專家組成一個開發(fā)機構(gòu)。這種組織結(jié)構(gòu)雖然能發(fā)揮所有工作人員的積極性,但往往有可能出現(xiàn)協(xié)調(diào)上的困難,選擇這種方式要慎重。
2.2.3 民主組織。民主組織由從事各方面工作的人員輪流擔(dān)任組長。很顯然,這種組織結(jié)構(gòu)對調(diào)動積極性和個人的創(chuàng)造性是很值得稱道的。但是由于過多地進行組長信息“轉(zhuǎn)移”不符合軟件工程化的方向。
2.3 使用者。我們是為使用者開發(fā)軟件的,在開發(fā)過程中自始至終必須得到使用者的密切合作和支持。作為項目負(fù)責(zé)人,要特別注意與使用者保持聯(lián)系,掌握使用者的心理和動態(tài),防止來自使用者的各種干找和阻力。
2.3.1 使用者不積極,不配合。這種表現(xiàn)通常來自對采用先進技術(shù)持懷疑態(tài)度的使用者,他們心理上的抵觸情緒會在行動上表現(xiàn)為消極、漠不關(guān)心。在需求階段,做好這部分人的工作很重要,通過他們中的業(yè)務(wù)骨干,才能真正了解到使用者的要求。要使他們認(rèn)識到:計算機的發(fā)展和應(yīng)用是現(xiàn)代化的必然趨勢,使用計算機將會帶來巨大的經(jīng)濟效益;讓他們掌握新的技術(shù)和方法去取代某些可能過時的或淘汰的專長。
2.3.2 使用者求快求全。這種表現(xiàn)來自對使用計算機持積極態(tài)度的人。他們中一部分人希望一個早上就能用上計算機,并且全能用上計算機。要他們認(rèn)識到:開發(fā)一個軟件項目不是一朝一夕就能完成的,軟件工程不是靠人海戰(zhàn)術(shù)就能加快的工期。另外,即使計算機能夠處理的事情,系統(tǒng)也不能一下于包羅萬象,貪大求全。要根據(jù)現(xiàn)有的條件量力而行。如果系統(tǒng)大而全,必然會很復(fù)雜,開發(fā)時間就拖得很長,因此可能會導(dǎo)致一個系統(tǒng)的失敗或性能太差。
2.3.3 使用者需求變化。在軟件開發(fā)過程中,使用者可能會不斷提出新的要求和修改以前提出的要求。從軟件工程的角度不希望有這種變化。但實際上,不允許使用者提出變動的要求是不可能的。因為一方面每個人對新事物有一個認(rèn)識過程,不可能一下子提出全面的、準(zhǔn)確的要求;另一方而還要考慮到與使用者的關(guān)系。對來自使用者的這種變化要正確對待:要向使用者解釋軟件工程的規(guī)律,并在可能的條件下部分或有條件地滿足使用者的合理要求。例如:軟件需求分析階段結(jié)束后軟件的設(shè)計目標(biāo)已經(jīng)確定,這時使用者要求的重大變化要導(dǎo)致設(shè)計目標(biāo)的變化,特別是到軟件開發(fā)的后期,一般不可能滿足這種變化的要求。要向使用者解釋清楚工程的內(nèi)在規(guī)律,但對使用者提出的如性能等局部方而的要求,只要是合理的,就要加以考慮。
2.3.4 控制。人員控制是對開發(fā)組織內(nèi)部人員控制。就是要保證開發(fā)人員的積極性和穩(wěn)定性。人員的頻繁更換或流動將會大大增加軟件出錯誤的機會。至少要保證軟件項目每一期工程或軟件生命期每一階段中人員的相對穩(wěn)定性。同時注意發(fā)揮每個開發(fā)人員的積極性和創(chuàng)造性。經(jīng)費控制要編制詳細(xì)的經(jīng)費預(yù)算。并在各階段進行經(jīng)費的核算。在經(jīng)費上失去控制,軟件項目就沒有經(jīng)濟保證。質(zhì)量控制與各階段的復(fù)審在意義和作用上是一致的,在此不再敘述。
2.3.5 文檔資料。開發(fā)過程的各種活動后都要反映在文檔資料上。每一個階段的文檔資料是以后各階段工作的基礎(chǔ),又是對前面各階段工作的復(fù)審。軟件工程管理很大程度上是通過對文檔資料管理來實現(xiàn)的。因此,要把開發(fā)過程中的初步設(shè)計、中間過程、最后結(jié)果等建立成一套完整的文檔資料。文檔標(biāo)準(zhǔn)化是文檔管理的重要方面。
在當(dāng)今的軟件工程時代,每個項目涉及眾多的人力和物力,管理問題日益突出。對于規(guī)模大、人員多、開發(fā)時間長的軟件項目,必須要有良好的管理和力求在確定的時間和預(yù)算范圍內(nèi)有效地、合理地組織人力、物力,按計劃完成預(yù)定的軟件項目。