mORMot and Open Source friends SynProject Tutorial--(SynProject 教程)
第一步
本頁介紹SynProject的一些典型用法。
我們將為mORMot框架本身建立一個原始碼儲存庫和相關的文件。
您要求文件,我們將透過SynProject自動生成它!
我們需要什麼
因此,我們在硬碟上的D:\Dev\Lib資料夾中擁有所有mORMot框架原始碼檔案(主單元在D:\Dev\Lib\SQlite3,Synopse公共單元在D:\Dev\Lib)。
您可以直接從SynProject.zip下載二進位制可執行檔案。
將SynProject.exe檔案解壓縮到硬碟上的一個目錄中。安裝完成。
建立一個新專案--版本管理
啟動SynProject。此時它會顯示一個警告訊息:
您從未使用過SynProject,因此您沒有當前專案可以工作。SynProject檢測到了這一點,並要求建立一個新專案。
關於“專案”的說明:
- 請注意,使用SynProject,您可以同時處理多個專案。一個“專案”是一個軟體實體,主要遵循市場和預算方法。您的公司有這樣的“專案”。如果您不知道,請詢問您的專案經理。
- 一個“專案”儲存在.dvs檔案中。實際上,這個檔案是一個有效的.zip歸檔檔案,在其根目錄下包含一個包含所有與專案相關引數(專案描述和目錄,以及所有提交列表)的“commit”文字檔案,然後是專案的所有原始檔,這些原始檔位於與原始碼樹的實際佈局相對應的子資料夾中(實際上,SynProject以專有但非常高效的二進位制格式儲存原始碼檔案的“增量”或“差異”,以原始碼檔名和提交號作為副檔名——十六進位制編碼)。
- 在專案中,您可能擁有文件本身。正如在SynProject螢幕截圖中所述,文件是一個副檔名為.pro的單個文字檔案。
點選“是”,將顯示一個嚮導螢幕。
根據下一張螢幕截圖填寫欄位——這些欄位是專案的主要引數(將儲存在.dvs專案檔案內的“commit”檔案中):
請注意,這些引數可以從SynProject的主使用者介面更改。
以下是這些引數/欄位的一些說明:
- “根目錄”是一個主要引數。所有檔案都應該可以從該位置的子目錄中檢索。
- 由於在文件相關檔案欄位中輸入了“Documents”,因此文件檔案(例如純文字檔案.pro)將在此目錄內找到。
- 對於同一產品,您可能有多種版本:一個專案被投票、開發和釋出,然後另一個專案將對初始專案進行更新。產品相同,但專案隨每次釋出而演變。在您的硬碟上,每個版本或專案都將包含在子目錄中,如ProductName\Release Name。
- 目錄佈局是根據指定的引數建立的(參見下面的第2步):例如,SQLite3.pro檔案將在D:\Dev\Documents\SQLite3\Synopse SQLite3 Framework\Synopse SQLite3 Framework.pro中建立。
- 我們輸入了設計輸入(DI)的第一列表,這些列表將在專案的生命週期中演變。我們只放了兩個設計輸入的標題和一些用於引用它們的數值。您的專案經理或營銷人員可能已經編寫了這樣的專案高階描述,並得到了您的CEO的批准:在這裡使用官方文件中的編號。
- 由於我們已選中“SWRS有自己的子項”核取方塊,因此我們將能夠將初始DI細分為更詳細的軟體規範。這有時會發生,因為營銷人員可能對軟體程式設計知之甚少……因此,在這裡您將能夠填補營銷夢想與現實之間的差距……
- 所有設計輸入都可以在專案生命週期中演變:SynProject將能夠跟蹤這些更改,整個專案的文件將始終保持同步和最新,即使營銷決策發生變化……
然後點選“下一步”,並在必要時確認(點選“是”)。
現在,您的專案的詳細布局引數顯示在嚮導的第二頁上:
預設情況下,引數(尤其是資料夾名稱)用前一頁欄位填充。現在您可以自定義這些欄位的內容。
- 在文件資料夾內建立了一個名為“GG”的目錄,用於儲存臨時GraphViz生成的圖表:因此,這個目錄名將被忽略;
- 您必須指定哪些副檔名要新增到您的專案中——請注意,與其他CVS不同,SynProject會一次性新增所有這些檔案:在我們的專案中,我們不需要基於檔案的提交功能,但如果有必要可以新增——如果您需要它,請為這個GPL專案做出貢獻!# .scr檔案包含所有與跟蹤器相關的問題;目前SynProject中沒有包含跟蹤器,因為我們使用PVCS來實現這個目的;因此,SynProject可以直接與PVCS互動,並從PVCS資料庫中直接檢索任何跟蹤器條目——我們可能會在不久的將來新增與fossil的介面。
- .man檔案包含專案手冊:它只是一個單一的檔案,將建立一個唯一的檔案——您最好使用主要的.pro文件,並向其中新增一個特定部分。
- .pro檔案是著名的主文件文字檔案。
- 由於在前面的嚮導步驟中選中了“SWRS有自己的子項”核取方塊,因此我們可以在這裡自定義SWRS項。我們將暫時保留它,根據DI項的定義。
- 然後可以設定提交模組:只需點選欄位旁邊的“...”按鈕,即可彈出修改螢幕。第一個提交模組包含預設的原始碼(我們將其更改為指向Lib\SQLite3);然後第二個提交模組指向與產品相關的文件(即.scr和.man檔案);然後是專案/釋出相關的文件(即.pro檔案)。如有必要,您可以在目錄樹中新增其他提交模組。請注意,我們不會包含整個D:\Lib資料夾,因為它們不都是SQLite3框架本身的一部分。它們將由另一個專案跟進。
當您點選“儲存更改”按鈕,並透過“是”按鈕確認後,所有必要的資料夾和檔案都將被建立。
對以下通知視窗回答“是”:
對以下通知視窗要求建立的目錄回答“是”:
以及對這一個回答“是”:
然後,系統將要求您連線到PVCS跟蹤器。由於我們現在不使用它,請點選“取消”:
透過“是”確認與釋出相關的目錄建立:
現在,SynProject已經建立了所有必要的檔案和目錄。
我們的第一個提交
SynProject的主螢幕將出現,上面顯示剛剛建立的“Synopse SQLite3框架”專案,如視窗的主要標題欄所述:
目前它是空的。
我們將透過按下“提交”按鈕進行第一次提交。它會顯示以下視窗:
輸入提交描述和下面的註釋;
您可以將此提交與跟蹤器條目(在.scr檔案中)相關聯——請注意“新增到PVCS作為模組”核取方塊,它允許您將相應的提交新增到所選的PVCS跟蹤器條目中。
可以指定此提交的範圍:在這裡我們選擇所有資料夾(主專案原始碼、產品資料夾、釋出資料夾)。
當按下“提交所選”按鈕時(點選“提交全部”應該產生相同的結果),所有相應的原始碼檔案都將新增到儲存庫中。將出現一個日誌螢幕,詳細列出所有修改。日誌螢幕的內容大致如下:
First commit
------------
0 file(s) deleted
61 file(s) modified/added
Lib\SQLite3\c.bat added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\Samples\01 - In Memory ORM\Project01.dof added, on 6/29/2010 6:51:22 PM
Lib\SQLite3\Samples\01 - In Memory ORM\Project01.dpr added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\Samples\01 - In Memory ORM\Project01.res added, on 6/29/2010 6:51:06 PM
Lib\SQLite3\Samples\01 - In Memory ORM\SampleData.pas added, on 6/29/2010 6:51:20 PM
Lib\SQLite3\Samples\01 - In Memory ORM\Unit1.dfm added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\Samples\01 - In Memory ORM\Unit1.pas added, on 6/29/2010 6:51:30 PM
Lib\SQLite3\Samples\02 - Embedded SQLite3 ORM\Project02.dof added, on 6/29/2010 6:53:52 PM
Lib\SQLite3\Samples\02 - Embedded SQLite3 ORM\Project02.dpr added, on 6/29/2010 6:53:52 PM
Lib\SQLite3\Samples\02 - Embedded SQLite3 ORM\Project02.res added, on 6/29/2010 6:52:44 PM
Lib\SQLite3\Samples\03 - NamedPipe Client-Server\Project03Client.dof added, on 6/29/2010 6:54:32 PM
Lib\SQLite3\Samples\03 - NamedPipe Client-Server\Project03Client.dpr added, on 6/29/2010 6:54:22 PM
Lib\SQLite3\Samples\03 - NamedPipe Client-Server\Project03Client.res added, on 6/29/2010 6:54:02 PM
Lib\SQLite3\Samples\03 - NamedPipe Client-Server\Project03Server.dof added, on 6/29/2010 6:56:08 PM
Lib\SQLite3\Samples\03 - NamedPipe Client-Server\Project03Server.dpr added, on 6/29/2010 6:56:00 PM
Lib\SQLite3\Samples\03 - NamedPipe Client-Server\Project03Server.res added, on 6/29/2010 6:55:58 PM
Lib\SQLite3\Samples\03 - NamedPipe Client-Server\Unit2.dfm added, on 1/24/2010 5:33:26 PM
Lib\SQLite3\Samples\03 - NamedPipe Client-Server\Unit2.pas added, on 6/29/2010 6:56:06 PM
Lib\SQLite3\Samples\04 - HTTP Client-Server\Project04Client.dof added, on 6/29/2010 6:56:28 PM
Lib\SQLite3\Samples\04 - HTTP Client-Server\Project04Client.dpr added, on 6/29/2010 6:56:24 PM
Lib\SQLite3\Samples\04 - HTTP Client-Server\Project04Client.res added, on 6/29/2010 6:56:22 PM
Lib\SQLite3\Samples\04 - HTTP Client-Server\Project04Server.dof added, on 6/29/2010 6:57:12 PM
Lib\SQLite3\Samples\04 - HTTP Client-Server\Project04Server.dpr added, on 6/29/2010 6:56:52 PM
Lib\SQLite3\Samples\04 - HTTP Client-Server\Project04Server.res added, on 6/29/2010 6:56:50 PM
Lib\SQLite3\Samples\04 - HTTP Client-Server\Unit2.dfm added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\Samples\04 - HTTP Client-Server\Unit2.pas added, on 6/29/2010 6:58:32 PM
Lib\SQLite3\Samples\05 - Report created from code\TestSQLite3Pages.dpr added, on 6/30/2010 6:16:24 PM
Lib\SQLite3\Samples\05 - Report created from code\Unit1.dfm added, on 6/30/2010 7:07:06 PM
Lib\SQLite3\Samples\05 - Report created from code\Unit1.pas added, on 6/30/2010 7:04:40 PM
Lib\SQLite3\ServiceTestForm.dfm added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\ServiceTestForm.pas added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\ServiceTestSQL3.dof added, on 7/10/2010 6:48:08 PM
Lib\SQLite3\ServiceTestSQL3.dpr added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\ServiceTestSQL3.res added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\sqlite3.c added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3.pas added, on 7/5/2010 6:53:14 PM
Lib\SQLite3\SQLite3BtnOk.bmp added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3Commons.pas added, on 7/12/2010 10:54:16 AM
Lib\SQLite3\SQLite3FastCgiServer.pas added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3HttpClient.pas added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3HttpServer.pas added, on 7/5/2010 5:43:20 PM
Lib\SQLite3\SQLite3i18n.pas added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3Pages.pas added, on 7/10/2010 6:51:22 PM
Lib\SQLite3\SQLite3Service.pas added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3ToolBar.pas added, on 7/6/2010 9:00:06 PM
Lib\SQLite3\SQLite3UI.pas added, on 7/6/2010 9:00:06 PM
Lib\SQLite3\SQLite3UILogin.dfm added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3UILogin.pas added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3UILogin.png added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3UILogin.rc added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3UILogin.RES added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3UIOptions.dfm added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3UIOptions.pas added, on 7/6/2010 9:00:06 PM
Lib\SQLite3\SQLite3UIQuery.dfm added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\SQLite3UIQuery.pas added, on 6/27/2010 5:24:14 PM
Lib\SQLite3\TestSQL3.cfg added, on 7/4/2010 3:30:32 PM
Lib\SQLite3\TestSQL3.dof added, on 7/5/2010 5:56:00 PM
Lib\SQLite3\TestSQL3.dpr added, on 7/5/2010 5:56:00 PM
Lib\SQLite3\TestSQL3.dproj added, on 7/5/2010 4:54:26 PM
Documents\SQLite3\Common\SQLite3 Framework.scr added, on 7/12/2010 1:18:14 PM
Documents\SQLite3\Synopse SQLite3 Framework\Synopse SQLite3 Framework.pro added, on 7/12/2010 1:19:46 PM
"First commit" Commit performed in 0.4 s.
-=- Process complete: press Escape or Enter to close the form -=-
請注意,所有Delphi原始碼檔案都已被新增,以及來自相關文件資料夾的.scr和.pro檔案。
使用Esc鍵關閉日誌螢幕。
現在主螢幕包含了提交資訊。只需點選提交行,所有對應的檔案就會出現在下一列中。雙擊任何檔案可以直接在SynProject中檢視其內容。
製作文件
預設情況下,Synopse SQLite3 Framework.pro檔案已被建立,並根據基本模板填寫了內容。
整個文件過程遵循完整的覆蓋範圍,符合ISO/IEC最佳實踐:
如果上述佈局不能滿足您的需求,您可以向上述步驟中新增自己的文件或要求。或者,您也可以僅使用其中的一部分,例如SAD或測試。但是,當整個文件集都在工具內維護時,SynProject的主要優勢將變得顯而易見。
從SynProject的主螢幕中,點選“Docs”按鈕(帶有Word圖示的那個),或按F2鍵以顯示主要發行版文件編輯器:
提示:您還可以啟動工具,並指定.pro檔名作為命令列引數,以繞過整個.dvs/版本控制功能。也就是說,如果您將.pro副檔名與SynProject.exe相關聯,只需雙擊.pro檔案即可開啟任何文件。
現在我們將對檔案內容進行一些更改。模板目前相當基礎……但更新文件很容易。
文件檔案的結構類似於標準的.ini檔案,即包含一些[節]:
一些節是SynProject必需的,如[People]、[Project]、[DILayout]或[Pictures]。
一些節是相應文件的主要引數,如[DI]用於設計輸入,[RK]用於FMEA/系統級風險評估,[SRS]用於SRS/SWRS,即軟體需求規範,[Risk]用於與DI相關的風險評估,[SAD]用於軟體架構文件(及其相關的[SAD-Source]和[SAD-modules]節),[SDD]用於軟體設計文件,[VV]用於軟體驗證和驗證計劃,[Test]用於測試協議,[SCRS]用於軟體更改請求彙總表,以及[Release]用於發行說明。這些節將具有子節,根據初始[DILayout]內容或[SRS]的子節進行編號。例如,嚮導為您建立了[DI-1.1]、[DI-1.2]、[DI-2.1]和[DI-2.2]節,以及相應的[SRS-*]節。
每個[節]首先以與節相關的引數開始,作為頭部以Name=Value對的形式儲存。當出現空行或以:開頭的標題時,頭部結束。
為了瀏覽文件內容和所有這些節,您可以:
- 點選編輯器最左側列中的任何項:它將僅顯示[節]的內容,右側為頭部(作為Name=Value對),左側為主體內容,如下面的螢幕截圖所示:
- 點選編輯器最左側列中的第一個項(名為"* Whole file"的那個)以一次顯示整個檔案內容:這是處理文件的最有用方式。
- 在* Whole file模式下,您可以左鍵點選螢幕上出現的第二個列表中的任何項以轉到該節。
- 在* Whole file模式下,您可以右鍵點選螢幕上出現的第二個列表中的任何項以彈出選單,並瀏覽所有節和子節以到達您選擇的節。
- 按F10鍵以顯示所有文件標題的列表(請注意,在此螢幕上,在鍵盤上鍵入將搜尋內容)。
現在我們將點選向導按鈕(位於“floppy/save”按鈕和“Word”按鈕之間)以建立必要的設計輸入內容。
請注意,嚮導能夠修改文件的大部分內容。特別是,大多數節的頭部可以從使用者介面上的欄位輕鬆編輯,這對您來說可能很方便。
以下是文件嚮導的主螢幕:
只需點選您想要訪問的頁面。我們將點選“3 - 設計輸入詳情”,然後更新設計輸入值。點選左側列表中的一個DI項,然後更改右側欄位的內容,再點選另一個DI項,並確認儲存更改。
“風險評估”需要填寫一些值。請注意,我們將在關聯的請求和風險理由中填寫“初始釋出”,因為這是專案的首次釋出。
以下螢幕內容:
將被嚮導轉換為以下文件值:
[DI-1.1]
Risk=1,1,3,Arnaud Bouchez,Initial release
Request=Initial release
Ident=The framework must be Client/Server oriented
;該框架必須是客戶端/伺服器導向的
解析原始碼
現在,我們將設定SAD(軟體架構文件)引數,這將允許解析原始碼並從中檢索有用資訊。
從嚮導中,我們將點選“13 - 軟體架構模組”頁面。然後點選第一個模組項(即“SAD-Main”),透過點選“是”確認其建立。接著,我們為這個模組輸入一個顯示名稱和一個版本號。我們在[SAD]部分輸入了“DefaultPath=D:\Dev”作為引數。因此,我們只需在“源路徑”欄位中輸入“Lib\SQLite3”。我們將輸入“TestSQL3.dpr”作為主原始碼檔案:此檔名將被解析,所有使用的單元將被新增到主儲存庫中。
我們需要透過點選“SAD-Main”項來儲存此項的更改,以便啟用“包含路徑”和其他欄位。我們只在包含路徑中輸入“Lib;Lib\SQLite3”,以便所有常見的Synopse庫單元(如SynCommons或SynPDF)將與庫一起被解析。
該模組的頁面將如下所示:
然後,我們強制SynProject解析所有原始碼。從編輯器的主工具欄中,我們點選“Word”按鈕,然後選擇“SAD”文件,再點選名為“再次解析所有原始碼”的特殊命令。
請注意,原始碼將被解析(速度非常快),並且SynProject將建立兩個檔案:
- 在D:\Dev\Documents\SQLite3\Synopse SQLite3 Framework目錄下的Synopse SQLite3 Framework.sad檔案,包含所有解析結果,即註釋和函式/類的宣告。它只是一個與.zip相容的歸檔檔案,每個單元一個檔案,包含PasDoc類的資料流和壓縮資料。
- 在C:\Users\UserName\Documents\Synopse SQLite3 Framework\目錄下的SAD.log檔案,即生成的所有Word(.doc)文件所在的目錄。這個SAD.log檔案包含原始碼解析的日誌檔案。例如,它將包含我們SQLite3框架的日誌。
7/12/2010 2:27:44 PM
Info[0]: Cache file = D:\Dev\Documents\SQLite3\Synopse SQLite3 Framework\Synopse SQLite3 Framework.sad
Info[0]: #&91;SAD].Source = Main FillUnits(SAD-Main) -> TestSQL3.dpr
Info[0]: DefaultPath = D:\DEV Info[0]: IncludePath = Lib;Lib\SQLite3
Info[0]: OutdatedCacheAutoRecreate is ON
Info[2]: Now parsing file Lib\SQLite3\TestSQL3.dpr...
Info[2]: Now parsing file Lib\SynCrtSock.pas...
Info[2]: Now parsing file Lib\SynCommons.pas...
Info[2]: Now parsing file Lib\SQLite3\SQLite3.pas...
Info[2]: Now parsing file Lib\SQLite3\SQLite3Commons.pas...
Info[2]: Now parsing file Lib\SQLite3\SQLite3FastCgiServer.pas...
Info[2]: Now parsing file Lib\SQLite3\SQLite3HttpClient.pas...
Info[2]: Now parsing file Lib\SQLite3\SQLite3HttpServer.pas...
Info[2]: Now parsing file Lib\SynZip.pas...
Info[2]: Now parsing file Lib\SQLite3\SQLite3i18n.pas...
Info[2]: Now parsing file Lib\SQLite3\SQLite3Service.pas...
Info[2]: Now parsing file Lib\SynSelfTests.pas...
Info[2]: Now parsing file Lib\SynCrypto.pas...
Info[2]: Now parsing file Lib\SynWinSock.pas...
Info[2]: Now parsing file Lib\SynPdf.pas...
Info[2]: Write new data to cache
Info[2]: Files not found during process:
Classes.pas,ComCtrls.pas,Contnrs.pas,Controls.pas,ExtCtrls.pas,FastMM4.pas,Forms.pas,Graphics.pas,LibC.pas,Menus.pas,Messages.pas,StdCtrls.pas,SysUtils.pas,Types.pas,UxTheme.pas,Windows.pas,WinSVC.pas
然後,我們將從原始碼建立所有圖表,透過從SAD文件中選擇以下私有選單來實現:
在Vista或Windows 7下,或者在Windows XP系統下如果您不是以管理員身份登入計算機,您首次嘗試生成圖表時可能會收到一個錯誤訊息。這是因為內部GraphViz引擎需要向系統註冊一次。要解決這個問題,您可以執行螢幕上指定的命令列命令,或者以管理員身份執行SynProject.exe一次(右鍵點選SynProject.exe,然後選擇“以管理員身份執行”),然後以管理員身份建立一些圖表。之後,您可以退出SynProject,並以當前使用者許可權再次執行它,這時生成圖表應該不會有問題了。
然後,我們直接點選SAD/SAD選單項,軟體架構文件(作為.rtf檔案)將被建立。接著,這個.rtf檔案會使用Word軟體本身轉換為原生的Word文件,然後開啟的就是生成的Word文件。您還可以選擇“SAD pdf”選項來直接渲染一個.pdf檔案(這要求您的計算機上安裝有Office 2007或更高版本),而無需開啟原始的Word文件——如果文件包含大量資料,直接開啟可能會很慢。
請注意,SynProject建立.rtf檔案的速度非常快,但大部分時間都花在了Word軟體上,用於從.rtf格式轉換為原生的.doc格式,特別是如果文件中包含大量圖表和超連結的話。不過,您可以使用SynProject建立超過1000頁的Word文件,而不會遇到任何問題。雖然Word在處理大量資料時可能會執行緩慢,但SynProject本身不會因為資料量太大而出現問題。
您可以從sampledoc.zip直接下載一個由SynProject生成的示例Word文件。
文件格式
正如您可能已經觀察到的,.pro檔案內容中使用的格式非常容易遵循。
它被分為括號內的部分(如[DI]),每個部分包含一個頭部(以Name=Value對的形式)和一個部分主體(通常用於生成文件的主體內容)。
您可以在任何您想要的地方新增註釋,只需在任何行的開頭加上一個分號(;)。
您可以在文字中使用RTF編碼:{\i 表示斜體},{\b 表示粗體},{\ul 表示下劃線},{\f1 表示Courier/等寬字型}。編輯器的工具欄上有一些對應的按鈕:只需選擇一些文字,然後點選這些按鈕(或按Ctrl+I、Ctrl+B、Ctrl+U、Ctrl+0鍵),即可使用相應的RTF屬性格式化所選文字。您可以看到,SynProject的整合編輯器瞭解這些快捷鍵,並在螢幕上以適當的屬性顯示文字。
文件標題僅是一行以冒號(:)開頭的文字。
文件段落只是一行文字。在SynProject中,每行文字都有一個段落。您可以使用原始RTF命令\line(或Ctrl+K快捷鍵)強制“下一行”換行。您可以使用工具欄上相應的按鈕在編輯器中自動換行段落。但SynProject將自行完成大部分文件佈局。專注於內容,SynProject將負責佈局。
空行將被忽略。它們可能僅在將節的頭部與其主體內容分開時有用。
列表可以在文件中編寫,僅需在每行開頭使用連字元(-)字元即可。您可能已經注意到,段落前後都有一個空格。如果您在行的第一個位置放置多條帶有連字元的行,則所有這些行都將被格式化為列表,而不會在行內容前後留下這些空格。
可以輕鬆地將原始碼插入文件中。只需將程式碼複製並貼上到SynProject編輯器中,然後在原始碼行的第一個位置放置一些專用字元:! 表示Pascal/Delphi,& 表示C或C++,# 表示C#,µ 表示Modula-2,$ 表示常規文字。工具欄上有對應的按鈕:只需選擇幾行,然後點選按鈕並選擇正確的程式碼格式——第一個字元將新增到所選每行的第一個位置。
如果您在行的第二個位置放置一個!字元(在! & # µ $字元之後),原始碼將被高亮顯示:在文件中將以黃色顯示。
可以使用以%字元開頭的行插入圖片。首先使用工具欄上對應的按鈕,然後插入一行%filename.jpg。文件檔案開頭的[Pictures]部分包含所有使用的圖片的列表。必須將圖片複製到當前文件目錄,即.pro檔案所在的資料夾。
插入表格需要三個步驟。首先,透過第一行定義列寬,如“|%30%40%30”——它將根據當前頁面寬度定義三列,寬度分別為30%、40%和30%。然後,像“|Col 1|Col 2|Col 3”這樣放置您的文字:文件中的每一行都是一個行,列內容之間用|字元分隔。當所有行都插入後,用一行“|%”結束表格。
您可以在表格單元格中嵌入圖片,例如,使用@=%picture.png@——在這種情況下,這不是一個“按鈕”——請參閱下一項。
您可以新增“按鈕”,即連結到另一個項,使用@SectionName@(如@DI-4.1@)或@DocName@(如@SRS@)或@PeopleName@(如@Arnaud Bouchez@)或@%Picture.png@。報告將包含連結的名稱和頁面。
Internet連結將被處理為超連結,使用@http://synopse.info的語法。
在[SDD-*]部分中,為每個檔名指定@Module\filename.pas@,為修改過的檔名指定@!Module\filename.pas@,或為指定的過程名指定@!procedurename!Module\filename.pas@。相應的單元(和過程)將在[SAD]文件中被高亮顯示,並在其第二部分列出。只需點選按鈕即可顯示物件瀏覽器視窗,並透過幾次點選選擇單元名稱和函式/類。
使用=[SectionName]在當前位置包含該部分的內容。
一些特殊行被解釋為命令:它們的第一個字元必須是反斜槓,即\字元。
所有可輸入的特殊行命令列表:
\page
強制新的一頁
\landscape
將頁面方向更改為橫向
\portrait
將頁面方向更改為縱向
\footer blabla
更改頁尾文字
\Layout
新增一個包含所有DILayout標題的列表
\LayoutPage
同上,但還包括文件中的相關頁面
\risk
新增風險評估量表表格
\Source
(用於[SAD]部分)新增Source=..模組的列表
\SourcePage
同上,但還包括文件中的相關頁面
\include filename.ext
將任何文字檔案附加到文件內容——文字格式的型別假設來自檔名副檔名本身(例如,some.pas檔案將以Delphi/pascal原始碼檔案的形式顯示)
\graph UniqueImageName [Title]
然後是後續行,可以是.dot純文字,也可以是"\From Text\To Text[\兩者之間的標籤]"——按F12鍵開啟對話方塊
\TableSoftwareChanges
或 \TableTraceabilityMatrix
用於SCRS
\TableNewFeatures
或 \TableBugFixes
或 \TableTests[=October 16, 2008]
用於發行說明
\TableDI=6.3.1.2,6.3.1.3
用於包含所有提供的設計輸入的表格
\TableDocuments[=DI,SRS,SDD,SAD]
用於包含提供的文件細節的表格
\Implements TableImplementsName #.# [Description][\DocumentName]
(如 \Implements ISO 4.3 Software safety classification
)在文字中指向當前文件或指定的DocumentName
\TableImplements=TableImplementsName
(如 \TableImplements=ISO
)建立列表,按升序的#.#數字排序,如果有描述則包含描述和相應的文件
問題與評論
您可以使用我們的論壇和SynProject專用部分來發布您的評論或反饋。
我希望我對SynProject的介紹能引起您的興趣。
而且別忘了,它是作為開源釋出的:歡迎您貢獻,並根據您的需求進行調整——當然,前提是遵循GPL許可條款!