簡介
軟體配置管理SCM(Software Configuration Management)是一套規範、高效的軟體開發基礎結構。SCM 可以系統地管理軟體系統中的多重版本;全面記載系統開發的歷史過程;管理和跟蹤開發過程中危害軟體質量以及影響開發周期的缺陷和變化。SCM 能夠對開發過程進行有效的管理和控制,完整、明確地記載開發過程中的歷史變更,形成規範化的文檔,從而保護企業寶貴的代碼資源,幫助企業積累軟體財富,提高軟體重用率,加快投資回報。
有效的SCM管理是企業實現ISO 9000 和SEI CMM的強有力助推器。
Hansky公司的軟體配置管理系統Firefly是Hansky軟體開發管理套件中的重要組件。使用Firefly可以輕鬆管理、維護整個企業的整個軟體資產,包括程式代碼和相關文檔。Firefly是一個功能完善、運行速度極快的軟體配置管理系統,可以支持不同的作業系統和多種集成開發環境,因此它能在整個企業中的不同團隊,不同項目中都得以廣泛套用。
Firefly基於真正的客戶機/伺服器體系結構,不依賴於任何特殊的網路檔案系統,可以平滑地運行在不同的LAN、WAN環境中。它的安裝配置過程簡單易用,開發團隊可以快速掌握Firefly的使用技巧,立即進入高效率的工作狀態。Firefly可以自動、安全地保存代碼的每一次變化內容,避免代碼被無意地覆蓋、修改。 項目管理人員使用Firefly可以有效地組織開發力量進行並行開發和管理項目中各階段點的各種資源,使得產品發布易於管理;並可以快速地回溯到任一歷史版本。系統管理員使用Firefly的內置工具可以方便的進行存儲庫的備份和恢復,而不依賴於任何第三方工具。
套用
為什麼需要Firefly軟體配置管理系統?
在項目開發過程中,由於軟體版本的不斷變化,開發時間的緊迫以及多平台開發環境,企業往往無法有效地管理軟體變更,這使得企業在軟體開發過程中經常面臨著如下風險和挑戰:
1. 部門主管無法確切得知項目的進展情況;
2. 開發人員溝通不夠,代碼復用難,使開發工作重複,留下大量難以維護的代碼;
3. 團隊工作時,開發人員無法並行工作,使開發進度減緩;
4. 隨著軟體產品的需求日益增加,無法快速標識和查找軟體的歷史版本;
5. 開發的環境日趨複雜,無法支持更多的運行開發平台;
6. 缺乏規範化的管理,無意的變更有可能破壞整個系統,而且不易跟蹤;
7. 對於客戶提出的問題,回響及解決遲緩。
隨著企業開發團隊的日益擴大,開發項目的不斷增加,軟體配置管理逐漸成為企業進行軟體開發管理的重要工具。
套用Hansky Firefly,將幫助企業解決軟體配置管理中的許多問題。一旦擁有Firefly,企業可非常清楚地了解:
軟體將在什麼時間發布;
當前發布版本中有哪些功能;
當前版本中加入了針對哪些Bug的修改;
軟體的某個修改是誰認可的;
如何建立新的發布版本等等。
套用Firefly,團隊的軟體開發過程實現了環環相扣,規範管理。管理者能夠輕鬆控制產品的進度、質量;開發人員將有更多的時間進行創造性的工作;測試人員將依照一個標準的流程高效完成日常工作; 產品發布人員能夠確保交到用戶手中的產品的質量。
套用Firefly,開發團隊將不再浪費時間於重複勞動,管理負擔和開發人員工作負荷大大減少,軟體錯誤數量得以有效控制。內部科學而規範的產品管理,將有效提高產品質量,加速產品市場推廣速度,提高市場回響能力,從而最大限度地提高客戶滿意度,增強企業的市場競爭能力。
Firefly產品技術特點
以下為Firefly的功能特色介紹。
跨平台使用
漢星天的所有產品都是基於Java1.4開發的。 它可以在支持JDK1.4或更高版本的任何一個平台上運行,如Window NT,Windows 2000, Linux, Solaris, HP-UX, AIX等,其移植非常方便,構想用戶以前是在Windows 2000 Server上使用該系統,而現在要運行在Solaris平台上,不需作任何改動,只需簡單的拷貝和配置,在短短几分鐘之內就可以完成。對於使用多個不同的平台進行軟體開發、測試、運行的公司來說,一個統一、支持多平台的配置管理系統是最理想的。如果使用的配置管理系統只支持單一平台,那么勢必給開發、測試、發布的各環節帶來很大的不便,大量的時間將被浪費於代碼的手工上傳、下載中。
並發版本控制
Firefly支持多用戶並行開發。它是一個基於Copy-Modify-Merge(拷貝、修改、合併) 的並行開發模式,團隊的開發人員之間無須好象排隊一樣等待修改代碼。開發人員可以並行開發、更改代碼。並行開發可能會帶來代碼衝突,如兩個同時修改了同一個檔案,工具可以自動檢測到代碼衝突,並自動合併,或幫助開發人員手動解決。並行開發使團隊開發快速、高效。
異地開發支持
Firefly 通過在每個開發地點建立複製、能自動或手動同步的存儲庫,為地理分布的開發團隊提供很好的支持。支持兩種異地開發模式:並行開發——每個地點在自己的工作空間中進行開發工作,互不干擾,然後通過歸併的手段集成所有的開發工作;連續開發模式——開發團隊在同一工作空間工作,通過控制許可權的轉換,實現順序開發。
基於TCP/IP協定,支持不同的LAN或WAN
客戶端和伺服器端的程式完全通過TCP/IP協定來通信,因此不依賴於象NFS那樣的已分享檔案系統,SCM系統更加安全可靠,能在任何區域網路(LAN)或廣域網(WAN)中正常工作。如果依賴於NFS等檔案系統,則需要將存儲區共享出來,客戶端才能使用,這樣使得存儲數據極不安全,前段時間廣泛蔓延的尼姆達(Nimda)和尼姆達二號病毒就是專門攻擊網路上的已分享檔案夾,致使很多配置管理系統癱瘓,數據嚴重損壞。
一旦將檔案從伺服器上複製到用戶自己的機器上,普通的用戶操作是無需訪問網路的,如編譯、刪除、移動。支持脫機工作、移動辦公,在不同網路環境中提供100%的兼容性,所以無論在什麼樣的作業系統下,所有客戶端程式和伺服器端程式都是兼容的。
原子事務
在產品中引入了原子事務的概念。對於一個包含多個檔案改變的入庫操作都有一個單一的提交點,保證原子級的事務交易。例如,您為了修改一個Bug而修改了三個檔案,當您提交這些改變時,會確保您在伺服器端同時改變了這三個檔案,或者一個都沒改變,伺服器的workspace能夠保證數據的一致性。這樣能夠處理一些操作過程中的異常情況,比如提交過程中網路中斷等。大多數SCM系統尚不支持這一功能,一個不完整的putback將有可能導致同事無法build。
Defect 跟蹤的整合
Firefly完全整合於Butterfly(漢星天公司的錯誤跟蹤系統)。在Firefly上的每一個改變,都能與Butterfly中的一個Defect、RFE (建議請求Request for Enhancement) 或Task相聯接。這兩個系統都提供了基於瀏覽器的用戶界面,當你修改了一些檔案,在putback到Firefly時提供了相應的Bug ID, 那么兩個系統中都會建立相互的連結。此時,Butterfly中全面記載了整個開發的歷史過程,包括誰作了修改,修改了什麼,為什麼修改;便於管理和追蹤開發過程中危害軟體質量以及影響開發周期的缺陷和變化。
Visual Studio集成
Firefly支持Microsoft SCC API, 用戶能夠在Visual Studio中直接使用Firefly進行原始碼版本控制。
快速標記(標籤)
在Firefly中標記一個workspace是極快的,並且對於資料庫來說大小几乎是沒有改變的。在workspace中建立一個檢查點(Checkpoint)也是相當容易的。 標記Workspace有很多作用,如保存一個基線版本或發布版本。有了標記,查找一個檔案的某一歷史版本,如/src/main.c在alpha1版中的內容,將非常容易。
易於代碼檢驗
Firefly在伺服器上可以跟蹤所有客戶端的workspace,在putback到父workspace之前,用戶可以把local workspace中的修改先上載到伺服器端的鏡像中。這樣代碼檢驗的人甚至不用離開座位,就可以通過使用瀏覽器瀏覽這些代碼,檢查哪些檔案修改了、新加了、刪除了、移動位置了,及修改哪些內容。
跟蹤workspace的改變
Firefly中一個workspace的修改可以記錄一系列的檔案改變,並不只針對某一單一檔案的改變。每個workspace修改基本上是為了完成一件工作,並且相應的有一個詳細的描述。Firefly中workspace的修改記錄著相關檔案的新建、刪除、移動、複製以及更新。這樣我們可以從整體的角度了解項目的變化,例如可以迅速列出為了增加一個新功能而改動或新添的檔案列表。
跟蹤branch的改變
Firefly中一個branch的修改可以記錄一系列的檔案改變,並不只針對某一單一檔案的改變。每個branch修改基本上是為了完成一件工作,並且相應的有一個詳細的描述。Firefly中branch的修改記錄著相關檔案的新建、刪除、移動、複製以及更新。這樣我們可以從整體的角度了解項目的變化,例如可以迅速列出為了增加一個新功能而改動或新添的檔案列表。
安全性
Firefly支持身份驗證和訪問控制。用戶需要一個用戶名/密碼來訪問Firefly的伺服器,並且Firefly的伺服器workspace能對許可權進行配置,諸如以下操作update、bringover、putback和admin。這些都能幫助企業保護機密數據。
處理二進制檔案
Firefly不僅可以處理文本檔案,並且也可以管理二進制檔案,修改後的二進制檔案只存儲其不同的部分,大大節省了存儲空間。
檔案的重命名
Firefly允許檔案重命名和移動位置。這些操作也能象檔案的修改操作一樣傳播給其他關聯workspace。 大多數SCM系統對於檔案改名、移動和刪除的處理能力很低,而且使用繁瑣。Firefly對這些操作有極好的支持。這個功能對於代碼的組織是極為重要的。
數據的完整性
Firefly可以對於每個檔案和每個delta(檔案修改的部分)進行校驗。因為這些數據很重要,每一個檔案Firefly都提供冗餘校驗,使用MD5作為檔案的校驗和。檔案的內容錯誤可能是由壞的存儲(DIMM),出錯的NFS,或是SPARC/Linux的快取別名中的Bug所導致。這些錯誤都可以被Firefly發現。
Email通知
對於每一個workspace用戶可以針對bringover/putback操作設定Email通知。這樣,當一個開發人員putback了一些修改,系統可以自動通知其他相關人員。
特點
隨著軟體產業的崛起,軟體工程技術正吸引著越來越多關注的目光。作為軟體工程的一個重要的領域,軟體配置管理也日益受到人們的重視。“工欲善其事,必先利其器。”配置管理軟體可以最佳化軟體流程,進行有效的度量,很大程度決定著軟體項目的成敗。
Firefly是漢星天公司開發的新一代軟體配置管理工具,具有良好的易用性,開發團隊可以快速掌握Firefly的使用技巧,立即進入高效率的工作狀態。Firefly具有6大特性:基於項目的分支和標記管理、方便的分支比較和分支歸併、強大高效的並行開發支持、面向任務的開發模式、完善的異地分散式開發支持、良好的跨平台能力。
可擴展性
Firefly具有優秀的底層架構和良好的可擴展性,可以支撐到具有上百個開發人員的企業級套用項目中,通過使用ServerSync模組,Firefly可以支持物理上分布的開發團隊在同一個項目上進行異地開發。在一個中等配置的計算機上(PIII 1.8G,256M),Firefly伺服器可以很好的支持50G以上的存儲庫數據和50個以上的並發訪問用戶。同時它也兼具良好的靈活性,可以在於3到5人的小規模開發團隊中靈活部署使用。
Firefly不僅提供圖形化的用戶界面、基於命令行方式的訪問以及基於Web的訪問界面,並且能夠和大多數主流的IDE工具集成,比如:WebLogic Workshop、IBM WSAD/Eclipse 、Microsoft Visual Studio、Microsoft Visual Studio .NET以及Borland JBuilder等等。
數據安全
Firefly為Server/Client架構的應用程式,採用Java Remoting技術作為客戶端和伺服器的通訊協定。該協定是一種快速的基於TCP/IP的協定,無需Firefly伺服器共享任何目錄,從而確保了伺服器端數據的安全性。Firefly使用特有的存儲庫。套用Firefly,並不需要其它第三方的資料庫。並且,Firefly內置了對存儲庫的備份(支持全備份和增量備份)和恢復功能。這樣,也是保護的企業數字資產的安全。
開發支持
Firefly具有強大的並行開發處理能力,使用業界領先的FleXtream技術,Firefly使得處理並行開發變得非常容易;用戶可以方便的實現Stream-Based開發模式。用戶可以方便的進行分支的建立、比較、歸併等操作。 使用分支來隔離開發路線(code line, stream),可以保證開發任務的隔離,不會互相干擾,保證開發效率且確保每個開發線路的安全;並且在適當的時候可以對分支之間的改動進行歸併(merge)。
許可權控制
Firefly具有獨有的檔案級安全訪問控制功能。類似NTFS中對檔案和目錄的訪問控制,Firefly中的分支管理員可以設定不同的用戶對分支中的不同檔案(或目錄)具有不同的許可權(CD、List、Read、Update、Move、Insert)。通過該種設定,企業可以最大限度的達到保護數字資產的目的:沒有許可權的用戶絕對不會得到沒有許可權的數據或檔案。
降低風險
使用Firefly,可以達到保護企業數字資產的目的,集中管理原來散落在不同人員處的文檔、原始碼,使之對其它用戶可視化;並且建立完美的協同工作環境,幫助企業提高效率和核心競爭力。作為優秀的配置管理工具,Firefly可以完整的記錄項目發展歷史以及檔案開發歷史,真正的做到可追溯性,並且保證用戶可以在任何時間準確地重建歷史信息。通過使用Firefly,用戶可以在最大限度上降低項目的風險,使一切改變都記錄在案,保證項目在安全的軌道上順利前進。
作為新一代的配置管理系統,Firefly具有卓越的底層架構,使其在性能、可擴展性、適用性等方面明顯優於其他配置管理工具,能夠幫助企業建立規範化的軟體環境,規範開發過程,提高軟體開發效率。 目前使用Firefly的國內知名軟體企業以及研發機構超過1000家。每天有數萬名工程師在該平台進行軟體開發工作的管理