版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
水利水電工程XXXXX輔助決策支持系統(tǒng)團隊開發(fā)規(guī)XXXXX設計二XXX年十二月
文檔信息:文檔名稱水利水電工程XXXXX輔助決策支持系統(tǒng)團隊開發(fā)規(guī)描述該文檔詳細定義了團隊開發(fā)的角色及職責、項目開發(fā)流程、開發(fā)過程控制的約定、協(xié)作開發(fā)的約定、代碼版本控制、交流機制等負責人XX狀態(tài)最終版文檔變更歷史:時間修改人章節(jié)描述2008-8-29XXX所有章節(jié)創(chuàng)建文檔初稿2008-12-10XXX所有章節(jié)修改文檔名稱:團隊開發(fā)規(guī).doc審核結果:審核人意見簽名檔TOC\o"1-5"\h\z\o"CurrentDocument"1團隊組成 1\o"CurrentDocument"產品管理 1\o"CurrentDocument"項目管理 2\o"CurrentDocument"開發(fā) 3\o"CurrentDocument"測試 4\o"CurrentDocument"角色共享 5\o"CurrentDocument"開發(fā)小組 5\o"CurrentDocument"專家小組 6\o"CurrentDocument"開發(fā)流程 7\o"CurrentDocument"達成共識 7\o"CurrentDocument"完成項目計劃 8\o"CurrentDocument"完成功能 8\o"CurrentDocument"穩(wěn)定與發(fā)布 8\o"CurrentDocument"代碼管理 10\o"CurrentDocument"編碼規(guī) 10\o"CurrentDocument"版本管理 10\o"CurrentDocument"概述 10\o"CurrentDocument"代碼管理 10\o"CurrentDocument"4附錄:系統(tǒng)開發(fā)編碼規(guī) 11\o"CurrentDocument"類型級單位的命名 11\o"CurrentDocument"類 H\o"CurrentDocument"枚舉和結構 12\o"CurrentDocument"委派類型 12\o"CurrentDocument"接口 .2\o"CurrentDocument"模塊 .3\o"CurrentDocument"方法和屬性的命名 13\o"CurrentDocument"方法 .3\o"CurrentDocument"屬性 .3\o"CurrentDocument"事件 .3\o"CurrentDocument"變量和常數 14\o"CurrentDocument"前綴 15\o"CurrentDocument"對象 15\o"CurrentDocument"變量/常量的圍 L5\o"CurrentDocument"標簽 16\o"CurrentDocument"名字空間 17\o"CurrentDocument"格式化 17\o"CurrentDocument"塊 .7\o"CurrentDocument"縮進 .7\o"CurrentDocument"流 .7\o"CurrentDocument"注釋 18\o"CurrentDocument"注釋規(guī) 18\o"CurrentDocument"類(包括Form等)、模塊、組件、控召 19\o"CurrentDocument"4.8.3方法、函數、事件與屬 .9\o"CurrentDocument"完整性 20\o"CurrentDocument"4.10安全性 201團隊組成我們的整個軟件開發(fā)團隊由4種角色組成,分別為:.產品管理(ProductManagement).項目管理(ProgramManagement).開發(fā)人員(Development).測試人員(Test)各角色在團隊的地位相當,各司其職。各個角色的具體目標、職能以及責任在以下的小節(jié)中進行詳述。1.1產品管理⑴目標滿足客戶需求。產品管理的目標就是滿足客戶需求。一個成功的項目必須要能夠滿足客戶和用戶的要求。即使項目達到了預算和時間的目標,只要未能滿足客戶需求,那這就是一個失敗的項目。首先必須認清和理解客戶。有時,使用方和投資方的目標需求并不完全相同,因此就需要清晰地區(qū)別和分析所有的需求。⑵職能.市場-推動市場和公關,以對目標客戶發(fā)生效用-突出產品與其他競爭對手的區(qū)別性,以利于競爭-分發(fā)解決方案,以便用戶能夠容易地獲得-為用戶提供支持,以使其無論在購買還是使用過程中都留下正面的印象.業(yè)務價值-定義并維護項目的業(yè)務正確性-定義并衡量業(yè)務價值的實現和評價?發(fā)展客戶-推動項目和解決方案的遠景目標-負責客戶期望值和溝通?產品計劃-收集、分析客戶和業(yè)務需求,并區(qū)分其優(yōu)先級?執(zhí)行市場調查、市場開拓和競爭對手分析-確定業(yè)務和成功的標準-識別多目標的發(fā)布計劃1.2項目管理⑴目標在項目的約束條件下完成解決方案。整個團隊的一個主要目標就是在項目的約束條件下完成項目。項目的約束條件包括預算和進度等。大部分項目會根據時間和資金的使用來衡量項目的結果。為了實現這個目標,項目管理負責并推動進度表、功能集和預算資金。他必須保證能夠在正確的時間發(fā)布正確的項目或產品,保證正確理解了項目投資方的期望,并自始至終貫穿于項目執(zhí)行過程中。⑵職能?項目管理-跟蹤和管理預算資金-管理控制進度表-推動風險管理流程-加強團隊溝通和協(xié)調-跟蹤進度和報告項目狀態(tài)-管理資源分配?解決方案構建-推動整體項目設計-負責功能規(guī)?負責解決方案圍和重要決定?流程控制?推動流程質量控制?定義并推薦可改進處?管理服務?實現項目的管理流程并提供支持?提供管理服務以保證高效的團隊運作1.3開發(fā)⑴目標按照功能規(guī)說明、《軟件開發(fā)需求分析報告》和《總體結構設計》的要求進行開發(fā)。功能規(guī)說明詳細描述了整個團隊將要提供給客戶的交付物。對整個團隊來說,應該盡可能精確地按照功能規(guī)說明來實現整個項目,因為功能規(guī)說明可以看成是整個團隊和客戶之間所達成的共識。開發(fā)人員必須按照客戶需求和功能規(guī)說明來構建整個解決方案。同時,開發(fā)人員還需要為整個團隊提供技術方面的咨詢,這樣在設計和技術選擇時可以盡量減少開發(fā)風險。開發(fā)人員提供較低層次的功能設計,并預估完成設計所需的時間。⑵職能?技術咨詢?為團隊提供技術咨詢服務?評估并驗證所用技術?積極參與功能規(guī)說明的創(chuàng)建和審核?定義開發(fā)標準?實現架構和設計-提供針對解決方案的應用程序、數據和技術細節(jié),以便將企業(yè)架構映射到解決方案架構的實現上-負責并實現解決方案的邏輯和物理設計.應用程序開發(fā)-根據設計規(guī)編寫代碼以實現功能-在開發(fā)過程中進行代碼審核,并共享知識和經驗-在測試人員的幫助下,根據測試計劃執(zhí)行單元測試.架構開發(fā)-為自動安裝開發(fā)腳本-開發(fā)安裝文檔1.4測試⑴目標在確認所有的產品質量問題都得到妥善處理后,批準產品發(fā)布。所有的軟件產品在發(fā)布時都存在著缺陷。最重要的是,在發(fā)布前,必須清楚地認識和鑒別出這些問題,可以以問題的形式給出解決方法,或者是給出如何繞開該問題的文檔記錄。寧愿對于已知的問題,提供了文檔或解決方法,也不要存在一些未知的問題。因為這些未知的問題,可能會帶來不可預知的后果。⑵職能.計劃測試-開發(fā)測試方法和計劃-參與設置質量標準-開發(fā)測試說明.測試-開發(fā)并維護自動測試案例、工具和腳本-執(zhí)行測試,以確定產品開發(fā)過程的狀態(tài)-負責定義構造流程測試報告-為團隊提供與產品質量相關的數據-跟蹤所有缺陷,并保證在發(fā)布前得到妥善處理1.5角色共享盡管團隊組成包含了4種角色,但并不意味著一個團隊至少需要4個成員,也不意味著一個人只能承擔一種角色,重要的是這4種角色必須在一個團隊中體現。一般情況下,團隊成員常常共享角色。在一些較小的團隊中,不同的角色只能進行兼任。角色共享有兩條重要原則:一是開發(fā)組成員不能共享角色。開發(fā)人員是項目的構建者,他們不應該從他們的主任務中分身。如果對開發(fā)組成員要求額外的角色,往往會使得他們無法按時完成進度要求。二是不要試圖組合具有一定利益沖突的角色。比如,產品管理和項目管理的利益具有沖突點,所以他們的角色不能組合。產品管理注重滿足客戶需求,而項目管理主要關心、在時間和預算的限度完成項目。如果這兩個角色組合在一起,那么在需求發(fā)生變更時,可能會發(fā)生一些情況,諸如沒有足夠地考慮客戶滿意度而忽略該變更,或者是沒考慮對項目的沖擊盲目地接受變更。讓不同的團隊成員擔任這樣的角色有助于確保每個方面得到相當的考慮和重視程度。同樣,這也適用于組合開發(fā)人員和測試人員。1.6開發(fā)小組開發(fā)小組成員組成性別年齡職務/職稱業(yè)務專業(yè)本項目分工所在單位
1.7專家小組性別年齡職*/職稱業(yè)務專業(yè)本項",工所在單位專家小組負責系統(tǒng)開發(fā)過程中重要階段的評審、導截流技術問題的解答和指導等。主要目標是保證系統(tǒng)的理論先進性、更好的滿足客戶需求和保障開發(fā)質量。2開發(fā)流程在開發(fā)過程中,采用多里程碑式的過程模型,如圖1所示。而其中每一個循環(huán)均包含四個里程碑。時間圖1多里程碑模型這四個里程碑組成的循環(huán)放大后如圖2所示,稱為“過程模型”。圖2過程模型2.1達成共識基本完成需求調研和分析(產品管理負責).確定大方向和長中短期目標?所有角色都參與討論并真正認同結論.產生的文檔-常見用戶情景:覆蓋80%以上功能-前景:言簡意賅地說明大方向,并有激勵團隊的作用2.2完成項目計劃?編寫詳細的功能規(guī)(項目管理)?在編程前想清楚所有功能流程,并引導用戶明確需求?所有角色都參與審閱功能規(guī)?制訂開發(fā)計劃和進度表(開發(fā)團隊)?制訂測試計劃和進度表(測試團隊)?分配資源(人力和預算)?形成項目綜合計劃和綜合進度表2.3完成功能?開發(fā)人員分別完成自己的功能?進行版本合理的控制?對每一項可測試的功能進行測試,無需等待?通過測試用例,對功能進行完整和重復的檢驗?記錄所有程序問題?實現解決缺陷的自動流程?按照綜合進度表不斷檢查進度2.4穩(wěn)定與發(fā)布?測試組全面地測試功能,包括性能和穩(wěn)定性?開發(fā)組全力配合解決缺陷?監(jiān)測質量情況?預測發(fā)布日期?專家會診機制-決定缺陷的優(yōu)先度-決定哪些缺陷可以在下個里程碑或版本中解決-決定由誰解決某個缺陷3代碼管理3.1編碼規(guī)請參看附錄,系統(tǒng)開發(fā)編碼規(guī)。3.2版本管理概述版本控制有如下好處:?可以獲得連續(xù)的受版本控制的項目,并保存不同版本的區(qū)別以作比較?能獲得版本控制工具中保存的任何版本?能夠把出錯或誤操作的最新版的項目恢復到正確的歷史版本?獲得歷史版本的詳細信息在開發(fā)過程中,核心、程序員對版本進行控制、對系統(tǒng)源代碼進行集中管理,并做好程序的備份和工作。3.2.2代碼管理核心程序員根據系統(tǒng)結構設計和詳細設計,對系統(tǒng)實現的功能進行分解,將實現各功能的小模塊分配給項目組的開發(fā)人員,并事先設計好各模塊的接口。開發(fā)人員根據接口要求進行編碼。編碼完成后進行單元測試。單元測試由開發(fā)人員完成。單元測試后開發(fā)人員將本部分模塊代碼上交給核心程序員,核心程序員負責加入模塊后的系統(tǒng)測試。系統(tǒng)的全部代碼由核心程序員管理,其它開發(fā)人員負責配合進行各模塊的開發(fā)。4附錄:系統(tǒng)開發(fā)編碼規(guī)在開發(fā)中保持良好的編碼規(guī)是十分重要的。程序開發(fā)人員應該嚴格遵循系統(tǒng)開發(fā)編碼規(guī)進行編碼。4.1類型級單位的命名類在為類(class)命名前首先要知道它是什么,如果通過類名的提供的線索,你還是想不起這個類是什么的話,那么你的設計就還做的不夠好。超過三個詞組成的混合名是容易造成系統(tǒng)各個實體間的混淆。對于派生類的命名應該避免帶其父類名,一個類的名字只與它自身有關,和它的父類叫什么無關。1類命名以Class聲明的類,都必須以名詞或名詞短語命名,使用大寫字母作為詞的分隔,其他的字母均使用小寫,名字的首字母使用大寫不要使用下劃線(_)。如:ClassIndicator當類是一個特性(Attribute)時,以Attribute結尾,當類是一個異常(Exception)時,以Exception結尾,如:ClassColorSetExceptionClassCauseExceptionAttribute當類只需有一個對象實例(全局對象,比如Application等),必須以Class結尾,如:ClassScreenClassClassSystemClass當類只用于作為其他類的基類,根據情況,以Base結尾:MustInheritClassIndicatorBase如果定義的類是一個窗體,那么名字的前面或后面必須加Frm。在本系統(tǒng)編碼中,對于前處理和處理器模塊使用的窗體,在名字的后面加后綴Frm,在后處理模塊中使用的窗體在名字的前面加前綴Frm。如果是Web窗體,必須加后綴Page:ClassPrintFrm:InheritsForm‘*Windows窗體ClassStartPage:InheritsPage‘*Web窗體2類庫命名目前命名空間正在越來越廣泛的被采用,以避免不同廠商和團體類庫間的類名沖突。當未采用命名空間的時候,為了避免類名沖突,一般的做法是在類名前加上獨特的前綴,兩個字符就可以了,當然多用一些會更好。例如:John Johnson的數據結構類庫可以用Jj做為前綴,如下:classJjLinkList4.1.2枚舉和結構同樣必須以名詞或名詞短語命名。最好體現枚舉或結構的特點,如:EnumColorButtons ''以復數結尾,表明這是一個枚舉StructureCustomerInfoRecord''以Record結尾,表明這是一個結構體4.1.3委派類型普通的委派類型以描述動作的名詞命名,以體現委派類型實例的功能:DelegateSubDataSeeker(ByValSeekStringAsString)用于事件處理的委派類型,必須以EventHandler結尾,如:DelegateSubDataChangedEventHandler(ByValSenderAsObject,ByValeAsDataChangedEventArgs)4.1.4接口與其他類型不同,接口必須要由I作為前綴,并用形容詞命名,突出表現實現接口的類將具有什么能力:InterfaceISortable4.1.5模塊模塊不是類型,他的名稱除了必須以名詞命名外,必須加以后綴Module:ModuleSharedFunctionsModule上述所有規(guī)則的共同特點是,每個組成名稱的詞語都必須是大寫開頭,禁止完全大寫或小寫的名稱。4.2方法和屬性的命名方法最好采用與類命名一致的規(guī)則,無論是函數還是子程序,方法都必須以動詞或動詞短語命名。無需區(qū)分函數和子程序,也無需指明返回類型。SubOpen(ByValCommandStringAsString)FunctionSetCopyNumber(ByValCopyNumberAsInteger)參數需要指明ByVal還是ByRef,這一點寫起來會讓程序變長,但非常必要。如果沒有特別情況,都使用ByVal。參數的命名方法,參考后面“變量的命名方法''。需要重載的方法,一般不寫Overloads,根據需要編寫重載方法。屬性原則上字段(Field)是不能公開的,要訪問字段的值,一般使用屬性。屬性以簡潔清晰的名詞命名:PropertyConcentrationAsSinglePropertyCustomerAsCustomerTypes4.2.3事件事件是特殊的屬性,只能在事件處理上下文中使用。命名的原則一般是動詞或動詞的分詞,通過時態(tài)表明事件發(fā)生的時間:EventClickAsClickEventHandlerEventColorChangedAsColorChangedEventHangler4.3變量和常數常數以表明常數意義的名詞命名,一般不區(qū)分常數的類型:ConstDefaultConcentrationAsSingle=0.01在嚴格要求的代碼中,常數以c_開頭,如c_DefaultConcentration,但最好不要用它,它會帶來輸入困難。普通類型的變量,只要用有意義的名字命名即可,不可使用簡稱和無意義的名稱諸如A,x1等,下面給出了良好的例子:DimIndexAsIntegerDimNextMonthExpenditureAsDecimalDimCustomerNameAsString不能起太長的名字,應該盡量簡潔,如下面的例子:DimVariableUsedToStoreSystemInformationAsString''*太復雜了DimSystemInformationAsString ''*正確,簡單明了DimsysInfoAsString ''*錯誤,過于簡單特殊情況可以考慮一個字母的變量:DimgAsGraphic對于控件,應該指明控件的類型,方法是直接在變量后面加以類名:FriendWithEventsNextPageButtonAsButton''*按鈕FriendWithEventsColorChoicerPanelAsPanel''*面版FriendWithEventsCardFileOpenDialogAsFileOpenDialog''*文件打開對話框等等,無需規(guī)定某種類型的變量的前綴,只需把類型寫在后面就行了,試對比下列代碼:btnCancel.Text=&CancelCancelButton.Text=&Cancel顯然后者更能使閱讀者明白變量的類型是一個按鈕。4.4前綴對象1標準對象名稱前綴例子說明System.ArrayarrarrUsers用戶集合System.BooleanblnblnDoesUserExist用戶是否存在System.BytebytbytStreamContent字節(jié)流容System.CharchrchrKeyPress按鍵System.DateTimedtedteCreatedDateTime創(chuàng)建日期System.DecimaldecdecYearlySaleQuota年度銷售額System.DoubledbldblTotalPrice總金額System.IntergerintintMessages消息數System.ObjectobjobjExternalFunction夕卜部功能System.SinglesngsngFinishRate完成率System.StringstrstrLoginName登陸名稱System.ExceptionexcexcRet錯誤System.EnumenmenmUserStates用戶狀態(tài)StructurestustuEmployees員工類型System.Data.SqlClient.SqlConnectionnnDatabase數據庫連接System.Data.SqlClient.SqlDataReadersdrsdrUserData用戶數據讀取器2自定義對象我們規(guī)定應該根據自定義對象的名稱來確定該對象類型的前綴,例子如下:對象:SysSet前綴:ss例子:ssSafety4.4.2變量/常量的圍根據變量與常量的生存周期,我們應該定義不同的生存周期前綴以示區(qū)別,以便我們清楚該變量/常量的圍。1類、模塊、組件、控件我們規(guī)定在類、模塊、組件、控件圍,變量的生存周期前綴應該添加“m_”(Module—模塊)。例子如下:名稱前綴例子說明System.Arraym_arrm_arrUsers用戶集合System.Booleanm_blnm_blnDoesUserExist用戶是否存在System.Bytem_bytm_bytStreamContent字節(jié)流容System.Charm_chrm_chrKeyPress按鍵System.DateTimem_dtem_dteCreatedDateTime創(chuàng)建日期System.Decimalm_decm_decYearlySaleQuota年度銷售額System.Doublem_dblm_dblTotalPrice總金額System.Intergerm_intm_intMessages消息數System.Objectm_objm_objExternalFunction夕卜部功能System.Singlem_sngm_sngFinishRate完成率System.Stringm_strm_strLoginName登陸名稱2過程、函數、屬性、事件我們規(guī)定在過程、函數、屬性、事件圍,變量的生存周期前綴應該添加“o_"(Owner—私有)。例子如下:名稱前綴例子說明System.Arrayo_arro_arrUsers用戶集合System.Booleano_blno_blnDoesUserExist用戶是否存在System.Byteo_byto_bytStreamContent字節(jié)流容System.Charo_chro_chrKeyPress按鍵System.DateTimeo_dteo_dteCreatedDateTime創(chuàng)建日期System.Decimalo_deco_decYearlySaleQuota年度銷售額System.Doubleo_dblo_dblTotalPrice總金額4.5標簽標簽就是用于Goto跳轉的代碼標識,由于Goto并不推薦使用,所以標簽的使用也比較苛刻。標簽必須全部大寫,中間的空格用下劃線—代替,而且應該以—開頭,比如:_A_LABEL_EXAMPLE:如此定義標簽是為了與其他代碼元素充分區(qū)別。4.6名字空間通常,一個工程使用一個名字空間,通常不需要用Namespace語句,而是在工程選項的“RootNamespace”中指定,使用根名字空間可以使代碼更加整齊,容易修改,這一點是VB十足的優(yōu)點。名字空間的語法是:公司名.產品名[.組件名的復數]如:NamespaceCOM.NETNamespaceCOM.File.IO.Files隨便起一個名字空間的名字絕對不是一個好主意,一定要遵守上述規(guī)定。4.7格式化良好的格式化代碼對我們的瀏覽與維護有相當的好處。塊.NET提供7#Region...#EndRegion塊控制。我們應該根據代碼所實現的功能分類并以塊組織起來??s進每個層次直接都應該以Tab進行縮進,而不是Space(空格鍵)。流每個方法、函數、屬性、事件應該有且只有一個入口和一個出口。如果遇見多層嵌套而需要直接跳出的時候,請使用局部Boolean或者Integer變量來標示用以多層跳出。如:PrivateFunctionTestForReturn()AsBooleanDimo_blnRetAsBoolean二FalseDimiAsInteger,jAsIntegerFori=1To100Forj=1To10If(x)Theno_blnRet二TrueExitForElseEndIfNextIf o_blnRet ThenExit ForElseEndIfNextReturno_blnRet''這里是唯一出口EndFunction4.8注釋注釋規(guī)1) 注釋中,應標明對象的完整的名稱及其用途,但避免對代碼過于詳細描述2) 每行注釋的最大長度為100個字符3) 將注釋與注釋分隔符用一個空格分開4) 不允許給注釋加
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手車輛轉讓合同模板
- 北京市交通事故賠償協(xié)議書范本
- 裝修材料采購合同
- 建筑師培訓合同范例
- 景區(qū)與旅行社合作協(xié)議書范本
- 電纜租賃合同范本2024年
- 學校間合作交流協(xié)議模板
- 單位房產無償租賃協(xié)議
- 工業(yè)項目合同樣本
- 2024年大企業(yè)職工勞動合同書
- 20起典型火災事故案例合集-2024年消防月專題培訓
- 大藥房《質量管理體系文件》-管理制度
- 人教版二年級數學上冊第六單元《表內乘法(二)》說課稿(含14課時)
- 2024年個人信用報告(個人簡版)樣本(帶水印-可編輯)
- 16J914-1 公用建筑衛(wèi)生間
- 2024年廣東恒健投資控股有限公司招聘筆試參考題庫含答案解析
- 初中化學儀器與藥品編碼
- 建筑垃圾綜合處理廠項目可行性研究報告(完整版)
- 《職工基本養(yǎng)老保險繳費流水情況范本表格》
- 醫(yī)院臨床帶教指導教師考核細則(完整版)
- 防靜電檢測方法
評論
0/150
提交評論