系統(tǒng)程序開發(fā)規(guī)范_第1頁
系統(tǒng)程序開發(fā)規(guī)范_第2頁
系統(tǒng)程序開發(fā)規(guī)范_第3頁
系統(tǒng)程序開發(fā)規(guī)范_第4頁
系統(tǒng)程序開發(fā)規(guī)范_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 Panorama系統(tǒng)程序開發(fā)規(guī)范之二1.匈牙利命名規(guī)則變動 前綴 類型 a Array b Boolean by Byte c Char /有符號型字符 cb Char Byte /無符號型字符(沒多大用處) cr ColorRef /顏色參考值 cx,cy Length of x,y (ShortInt) /坐標差(長度) dw Double Word fn Function h Handle i Integer m_ Member of a class n Short Integer np Near Pointer p Pointer lp Long Pointer (str) s St

2、ring sz String with Zero End /以字符0結尾的字符串 tm Text /文本內容 w Word x,y Coordinate /坐標 2.Panorama系統(tǒng)的命名約定 2.1 VC中變量命名時的前綴約定Array a. /例:CStringArray saText BOOL b.UINT i.short n.long l.WORD w.DWORD dw.float f.char c.char* psz.TCHAR* psz.LPCTSTR lpsz.CString str.COLORREF cr.LPLOGPALETTE lp. (包括LP開頭的類型差

3、不多上如此)POINT pt.CPoint pt.HANDLE h.HGLOBAL h. (包括H開頭的類型差不多上如此)講明: 1.假如是指向上述類型的指針,就在上面規(guī)范前加 p ; 2.假如是指向上述類型的雙重指針,就在上面規(guī)范前加 pp ; 3.假如是類成員變量,則在上面規(guī)范前加 m_; 4.全局變量,則在上面規(guī)范前加 g_; 5.在類型前加了const,命名約定不變;2.2 VC中變量命名時的后綴約定1.MFC類CWnd* p.Wnd 省去的地點一般為該類的用途 (假如是某一個類的成員,則還應該在前加 m_)又如:CView* p.View2.3 局部變量應盡量易明白簡潔,使用常見的變

4、量,如Num,nCount,i,j,k,n,len,pos, offset,nReadNum,index,nRet,ret, string,filename臨時變量,如ltmp,ftmp,tmpStr,tempStr 。2.4 函數命名也應該見名知意。如CalcAllDataStyle(),ReadDocDataFromTime(),GetIndexInfo()常見的函數Init_, Open_, Create_, Get_, Set_, Read_, Load_, Write_, Start_, Stop_, Check_, Test_, Fill_, Process_, Sort_, Do

5、_, Select_, Is_, Exist_,_Ex2.5 禁止使用漢語拼音來命名;2.6在代碼中盡量不用具體的大小數值,定義成宏,便于以后維護,如:#define MAX_DOWNLOADNUM 20struct DownInfo m_DownInfoMAX_DOWNLOADNUM;2.7 VC中一些控件的縮寫:ComboBox cmbEdit edtDialog dlgListBox lstPicture picAnimate ani 3. 編排3.1 函數間要有空行分開,一個程序中的空行數目最好占8%-16% ;3.2 變量的定義盡可能放在最開始處,多態(tài)函數和功能相近的函數集中放在一起

6、;3.3 聲明變量時對齊變量名,并在定義時加以注釋講明; 4. 程序開發(fā)環(huán)境規(guī)約4.1 工作目錄結構的規(guī)定:project name(項目名稱)bin 執(zhí)行文件log 日志文件lib 庫文件include頭文件src 源程序dat 數據文件4.2工程中不起作用的文件或類應刪除,工程目錄下的非工程文件也應該移走,保持工程的清潔,幸免混淆難于治理;4.3在VC環(huán)境下,建議將常用的頭文件全部放入stdafx.h中,而在每個cpp開始處嵌入stdafx.h。幸免頭文件的交叉引用,假如有嚴峻的交叉引用,適當使用類的聲明。4.4 將獨立性比較強的模塊抽出來,做成DLL,控件或COM組件,該模塊可單獨編寫和

7、測試,也增強了其可重用性。4.5 一個比較大的工程應留有一定的消息接口或插件接口等。4.6 工程的版本操縱要嚴格,版本格式為xx.xx.xx,必要時使用Build次數或日期。高版本盡量兼容低版本的用法、數據或協(xié)議。4.7 工程的編譯宏定義和工程參數設置應正確,每作一個新工程時應檢查工程參數是否正確。建議字節(jié)對齊方式為1字節(jié)對齊。 5. 程序備份5.1. 要有備份記錄備份時注明備份日期和要緊增加的功能5.2. 定時備份 依照程序量的多少,能夠每天備份一次,也能夠半天備份。5.3. 多種介質備份 至少在硬盤上做2個備份,在軟盤上做一個備份;在使用他人主機進行備份時,不可放于沒有密碼愛護的ftp服務

8、器上,能夠發(fā)送到自己的email信箱中進行備份。 5.4 在軟盤上備份時,應該去掉中間文件和執(zhí)行文件,vc能夠自動生成的文件如*.clw, *.ncb, *.opt等也可刪除,最后壓成一個zip文件,復制到軟盤中。 6. VC程序界面設計規(guī)范 6.1.顏色選擇: 6.1.1 基調應以WINDOWS顏色(灰色)為主,同一個窗體中除白、黑、灰色之外,其它的顏色總數不宜超過3種(對以生產和學習為目的的軟件而言,娛樂性軟件能夠做得花哨一些; 6.1.2 窗體和控件(除EDIT、RICH EDIT等編輯控件外)的背景色也宜用灰色,當一個控件有輸入焦點或鼠標焦點時,能夠用較明亮的顏色; 6.1.3 非激活

9、狀態(tài)下,字體前景宜用黑色,背景用灰色;6.2.字體的選擇: 6.2.1 漢字字體一般選宋體,字體大小選10號; 6.2.2 一般選系統(tǒng)常用的字體,絕對不要選自己加入的而系統(tǒng)沒有的字體;6.3.圖片的選擇 6.3.1 在窗體的工具攔中的按鈕能夠用圖標,文字能夠寫上也能夠不寫,假如不寫則一定要使用tip來提示用戶該按鈕完成的功能; 6.3.2 在按鈕中使用的圖片要能表達按鈕對應功能的意義; 6.3.3 不宜對一般的按鈕只用圖標做外觀;6.4.操作的便利性 6.4.1 為方便用戶的使用,所有的輸入控件應該按tab鍵和回車鍵排序,特不是密碼輸入時,應該能用回車切換輸入框的焦點;6.5.數據安全 6.5

10、.1 對程序的退出、寫數據等有破壞可能或數據丟失可能的操作應該給用戶一次確認的機會;6.6.關心文件 6.6.1 關心文件宜用html格式,因為hlp格式的文件只能在windows中用;6.7.窗體大小的確定 6.7.1 一般窗體的大小應該能夠讓用戶自己調整,窗體的初始長寬比例為4:3 6.7.2 要考慮到用戶可能會用到不同的分辨率,在開發(fā)時應使用當時流行的分辨率; 6.7.3 除非必要,否則不宜用模態(tài)窗體,但能夠讓用戶選擇使窗體成為模態(tài)窗體; 6.7.4 應用程序的大小不固定時(拖動窗口的右下角時能夠改變窗體大小),應處理窗體變化時窗體內各控件大小和位置的變化;6.8.視圖的選擇(單/多文檔

11、界面類型) 6.8.1 關于一個簡單的文本編輯器應用程序,選擇CEditView; 6.8.2 關于一個能編輯多信息文本格式( RT F )文件的應用程序,選擇CRichEditView(這一選擇將導致應用程序為文檔類選擇CRichEditDoc類); 6.8.3 關于一個圖形應用程序,選擇CScrollView; 6.8.4 關于一個簡單的監(jiān)控或帳目治理應用程序,選擇CListView; 6.8.5 要著手創(chuàng)建一個資源治理器類型的應用程序,請選擇CTreeView(在以后的步驟中,能夠手工添加一個CListView); 6.8.6 在對話框模板外創(chuàng)建一個視圖,選擇CFormView(一個對話

12、框是一個被幾個控件窗口占據的窗口,諸如按鈕和編輯框);6.9. MFC應用程序類型的選擇: 6.9.1 假如創(chuàng)建一個用戶界面需求有限的應用程序,或假如想界面完全單一,那么就創(chuàng)建一個對話框應用程序。典型的對話框應用程序包括配置硬件設備的應用程序、屏幕愛護程序和游戲程序等;對話框要易用且簡潔,字體和控件的組織搭配要得體,能簡單不復雜,各控件的焦點、Tab順序等要講究,視應用場合要適當支持鍵盤。在簡潔易用的前提下,力求個性化,設計得更加友好。程序各對話框的風格要保持一致。 6.9.2 假如應用程序要編輯一個文檔,應該選擇單/多文檔界面類型。那個地點的“編輯一個文檔”是廣義上的意思,所指的文檔能夠是一

13、個文本文件、電子數據表文件、第三方數據庫的一個或多個表、或者是自己的二進制文件,甚至能夠是大量硬件設備的儲存設置。編輯僅僅表示對其中任何一個類型的文檔進行添加、刪除或修改操作。 6.9.3 單文檔界面應用程序一次只同意處理一個文檔。假如應用程序實際上一次只需處理一個文檔,諸如監(jiān)視一組硬件設備的應用程序,那么應該選擇單文檔界面;否則應該創(chuàng)建一個多文檔界面應用程序,即使在開始時一次編輯多個文檔并未顯出有任何好處。 6.9.4 一個多文檔界面應用程序同意一次編輯多個文檔,它并不比一個單文檔界面應用程序復雜,但卻帶來了一次至少查看多個文檔的方便。6.9.5 在重要的窗口或區(qū)域應能彈出右鍵,實現常見操作

14、。工具欄上放最常用的操作按鈕,必要時動態(tài)更換按鈕。狀態(tài)欄顯示足夠多的有用信息。消息主控在Mainframe中,單文檔的主控也可在View中,所有的對話框的彈出或非模態(tài)對話框的操縱都在主控窗口中完成,具體的數據處理放在單獨的文件中或設計成類。在App類中實現Ini讀寫,各數據對象的定義和析構,全局變量的賦值和初始計算,存盤退出等。各視圖的OnDraw和GDI畫圖盡量使用內存位圖的方式,以免閃耀。6.10. 操作進度指示6.10.1 把鼠標光標臨時變成沙漏形狀,以指示一個漫長的操作,要求用戶應該等待。 6.10.2 能夠用沙漏光標指示短暫的等待。關于長時刻的等待,能夠考慮使用一個無模式對話框,并在

15、上面顯示簡短的消息,描述正進行什么處理;6.11. 分隔線控件 6.11.1 為統(tǒng)一起見不要使用分組框、按鈕等控件做分隔線,應按如下做法:用Picture Control,屬性設為Etched和Frame,使該控件縮小到一條直線;7. 其他7.1. 為保證系統(tǒng)間的兼容性,不使用int類型(因為不同系統(tǒng)之間的存儲字節(jié)長度往往不同),應使用long或short型。7.2. 頭文件名應小寫,如用#include“abcdef.h”;7.3. 本系統(tǒng)中注釋統(tǒng)一只用“/”;7.4 if(0 = GetDataType()比if(GetDataType() = 0) 好,縱使誤將=寫成=,在編譯一層就會報

16、錯。7.5 函數定義short GetInputType( const char * lpzInput)比short GetInputType (char * lpzInput)好,以免lpzInput在函數體中被破壞。7.6 變量在定義時賦初值,類析構時或程序退出時推斷釋放所有變量。7.7 編碼空間一定要充分預留,編碼時注意可擴充性, 如:定義保留字段,供以后擴充使用7.8 不要大量使用無符號型變量。無符號變量在推斷時易造成錯誤,甚至死循環(huán),盡量少用。7.9 少使用malloc,free,realloc;多用new,delete;new,delete是規(guī)范的C+語法,通用性強,realloc

17、易造成內存抖動。7.10 代碼中不要用+2,+4,要用+sizeof(short),+sizeof(int);不要用 filename40,而是filenameMAX_PATH。 附錄A 程序維護手冊格式講明文檔編號 版 本 號 密 級 文檔名稱 XXXX程序維護手冊項目編號: 項目名稱: 開發(fā)部門: 項目負責人: 編寫 年 月 日校對 年 月 日審核 年 月 日批準 年 月 日程序維護手冊1引言11 編寫目的 闡明編寫維護手冊的目的,簡述其內容。指出讀者對象(程序維護人員、研發(fā)人員)。12 開發(fā)單位 講明項目的提出者、項目的托付單位、開發(fā)單位和使用場所。13 定義 列出本文擋中用到的專業(yè)術語

18、的定義和縮寫詞的原文。14 參考資料 可包括:a.用戶操作手冊;b.于本項目有關的文檔。列出這些資料的作者、標題、編號、發(fā)表日期、出版單位或資料來源以及保密級不。2 系統(tǒng)講明21 系統(tǒng)用途 講明系統(tǒng)具備的功能,輸入和輸出。22 安全保密 講明系統(tǒng)安全保密方面的考慮。23 總體講明 講明系統(tǒng)的總體功能、對子系統(tǒng)和作業(yè)作出綜合性的介紹,并用圖表方式給出系統(tǒng)要緊部分的內部關系。24 程序講明 講明系統(tǒng)中每一程序、分程序的細節(jié)和特性。241 程序1的講明2411 功能 講明程序的功能。2412 方法 講明實現方法。2413 輸入 講明程序的輸入、媒體、運行數據記錄、運行開始時使用的輸入數據的類型和存放

19、單元、與程序初始化有關的入口要求。2414 處理 處理特點和目的,如:a. 用圖表講明程序的運行的邏輯流程; b. 程序要緊轉移條件;c. 對程序的約束條件;d. 程序結束時的出口要求;e.與下一個程序的通信與聯(lián)結(運行、操縱); f. 由該程序產生并供處理使用的輸出數據類型和存放單元。g.程序運行所用存儲量、類型及存儲位置等。2415 輸出 程序的輸出。2416 接口 本程序與本系統(tǒng)其他部分的接口。2417 表格 講明程序內部的各種表、項的細節(jié)和特性。對每張表的講明至少包括:a. 表的標識符;b. 使用目的;c. 使用此表的其他程序;d. 邏輯劃分,如塊或部,不包括表項;e. 表的差不多結構

20、;f. 設計安排,包括表的操縱信息。表目結構細節(jié)、使用中的特有性質及各表項的標識、位置、用途、類型、編碼表示。2418 特有的運行性質 講明在用戶操作手冊中沒有提到的運行性質。242 程序2 的講明 與程序1 的講明相同。以后其他各程序的講明相同。3 操作環(huán)境31 設備 逐步講明系統(tǒng)的設備配置極其特性 32 支持文件 列出系統(tǒng)使用的支持軟件、包括他們的名稱和版本號。33 數據庫 講明每個數據庫的性質和內容,包括安全考慮。331 總體特征 如:a. 標識符 b. 使用這些數據庫的程序;c. 靜態(tài)數據;d. 動態(tài)數據;e. 數據庫的存儲媒體;f. 程序使用數據庫的限制。332 結構及詳細講明332

21、1 講明該數據庫的結構,包括其中的記錄和項;3322 講明記錄的組成,包括首部或或操縱段、記錄體;3323 講明每個記錄結構的字段,包括:標記或標號、字段的字符長度和位數該字段的同意值范圍。3324 擴充:講明為記錄追加字段的規(guī)定;4 維護過程41 約定 列出該軟件系統(tǒng)設計中所使用全部規(guī)則和約定,包括:a. 程序、分程序、記錄、字段和存儲區(qū)的標識或標號助記符的使用規(guī)則;b. 圖表的處理標準、卡片的連接順序、語句和記號中使用的縮寫、出現在圖表中的符號名;c. 使用軟件的技術標準;d. 標準化的數據元素極其特征。42 驗證過程 講明一個程序修改后,對其進行驗證的要求和過程(包括測試程序和數據)及程

22、序周期性驗證的過程。43 出錯及糾正方法 列出出錯狀態(tài)及其糾正方法。44 專門維護過程 講明文檔其他地點沒有提到的專門維護過程,如:a. 維護該軟件系統(tǒng)的輸入部分(如數據庫)的要求、過程和驗證方法;b. 運行程序庫維護系統(tǒng)所必須的要求、過程和驗證方法;c. 對閏年、世紀變更所需要的臨時性修改等。45 專用維護程序 列出維護軟件系統(tǒng)使用的后備技術和專用程序(如文件恢復程序、淘汰過時文件的程序等)的目錄,并加以講明,內容包括:a. 維護作業(yè)的輸入輸出要求;b. 輸入的詳細過程及硬件設備上建立、運行并完成維護作業(yè)的操作步驟。46 程序清單和流程圖 引用資料或提供附錄給出程序清單和流程圖。附錄B 部分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論