發布時間:2023-09-21 17:35:06
序言:作為思想的載體和知識的探索者,寫作是一種獨特的藝術,我們為您準備了不同風格的5篇軟件管理方案,期待它們能激發您的靈感。
關鍵詞:項目管理;配置管理;代碼自動化生成;.NET
中圖分類號:TP315文獻標識碼:A文章編號:1009-3044(2012)04-0849-03
Solution of Lightweight Software Project Management
ZHAI Jing-xuan
(China University of Mining and Technology, Xuzhou 221116, China)
Abstract: A lightweight software project management solutions. Include the project management, configuration management, project modeling, requirements management, bug management and automatic code generation analysis, and gives useful CASE tool about software project management.省略
“軟件危機”是指落后的軟件生產方式無法滿足迅速增長的計算機軟件需求,從而導致軟件開發與維護過程中出現一系列嚴重問題的現象。“軟件危機”于1968年由北大西洋公約組織的計算機科學家第一次提出,并隨之誕生了“軟件工程”這一學科。軟件工程主要目的是研究用工程化方法構建和維護有效的、實用的和高質量的軟件,從而避免“軟件危機”。
“軟件危機”已經提出40多年來,軟件工程領域研究成果顯著,取得了較大的成就。由于微電子技術的發展和計算機應用的普及,軟件成本在計算機成本中所占的比例持續增長,軟件項目日趨復雜,軟件開發效率的提高也遠遠落后于信息化普及速度。因此導致“軟件危機”問題不僅沒有解決,而且愈演愈烈。對于軟件工程的研究依然是一個比較熱門的領域。軟件項目的管理方法研究是軟件工程學的研究領域之一,良好的軟件項目管理模式對于對提高項目的成功率,減少開發成本和提升軟件質量具有促進作用。
軟件項目管理主要包括進度管理、成本管理、質量管理、風險管理與配置管理等。要進行有效的過程管理,必須制定科學的管理辦法和使用有效的軟件項目管理工具。
軟件工程發展至今,陸續誕生了CMM(軟件能力成熟度模型)、CMMI(能力成熟度模型集成)、RUP(統一軟件開發過程)與MSF(微軟解決方案框架)等成熟管理模型。這些解決方案對項目管理進行了全面的定義,一定程度上緩解了軟件危機問題。諸如,CMMI中定義了詳細的項目管理及過程管理模型,適合研發團隊進行規范化設計。但對于不具有很高的復雜程度軟件研發項目,完全按照CMMI或其它成熟的模型不切合實際,但是又必須以成熟模型為主要參考目標。本文根據實際軟件項目管理與研發經驗,提出了一種適合于中小型項目的輕量級項目管理解決方案。該方案主要適用于采用平臺進行開發的項目團隊。
1輕量級項目管理過程
輕量級項目管理過程包括計劃、需求、設計、編碼、測試、與維護5個階段。
計劃階段主要工作為調研用戶需求,分析系統目標,分析系統開發的可行性,制定初步的項目計劃。
需求階段主要工作內容為與用戶溝通,編寫完善的“需求規格說明書”。“需求規格說明書”包括軟件的功能需求、性能需求、非功能性需求、環境約束和外部接口等。
設計階段主要包括概要設計和詳細設計兩個部分,由架構師針對軟件的需求設計出系統總體流程、子系統、數據與對象描述、算法和程序接口等。
編碼階段的主要工作內容為將設計描述為可編譯的源程序。
測試階段的主要工作任何為根據需求規格和設計文檔,對軟件的功能進行驗證。測試與需求階段同步開始,到項目驗收前結束。
階段的主要工作是,對于軟件產品進行安裝部署,以后還需要根據用戶要求和產品實際情況進行維護。
輕量級軟件項目管理解決方案的目標是針對中小型軟件項目運作的實際情況,建立行之有效的管理體系和溝通機制,提供項目開發效率,保障產品質量,確保項目能如期交付。主要管理的內容是開發過程中的各類文檔、進度控制管理、BUG跟蹤與代碼同步協作開發。
2輕量級項目管理實施
筆者所在的團隊主要以為基礎開發平臺,數據庫采用SqlServer系列,軟件項目管理方案主要基于以上經驗獲得。因此本方案主要適用于使用.NET平臺的開發的各類中小型項目,B/S與C/S項目均可。方案主要內容為:
2.1項目計劃管理
軟件項目管理的目的主要是確定項目的范圍、進度和費用。項目計劃就是要對項目整個實施過程的目標、任務、進度和責任委派做出具體的規定和部署,它在項目管理中處于中心地位。項目計劃主要包括設計工作分解結果。此階段主要使用的工具為:Microsoft Project等。
2.2配置管理
配置管理過程是對處于不斷演化、完善過程中的軟件產品的管理過程。其最終目標是實現軟件產品的完整性、一致性、可控性,使產品極大程度地與用戶需求相吻合。它通過控制、記錄、追蹤對軟件的修改和每個修改生成的軟件組成部件來實現對軟件產品的管理功能。常見的用于支持配置管理的工具有CVS、Subversion、VSS、StarTeam、CC等等。我們選擇VSS2005為團隊配置管理工具。主要原因是:VSS為輕量級平臺,便于部署和遷移;VSS與微軟的產品Visual 2008/2010等兼容性非常好。
配置管理模板包括PP(項目計劃)、RD(需求)、TS(設計)、V&V(驗證與確認)等環節的各類文檔,如需求規格說明書、項目計劃、RD_用例報告、TS_概要設計說明書、詳細設計說明書、數據庫設計說明書、安裝維護手冊、測試計劃、測試方案與單元測試記錄等。
2.3項目建模
方案采用的建模工具有Enterprise Architect與PowerDesigner。
Enterprise Architect是以目標為導向的軟件系統。它覆蓋了系統開發的整個周期,除了開發類模型之外,還包括事務進程分析,使用案例需求,動態模型,組件和布局,系統管理,非功能需求,用戶界面設計,測試和維護 等。Enterprise Architect是一個完全的UML分析和設計工具,它能完成從需求收集經步驟分析、模型設計到測試和維護的整個軟件開發過程。它基于多用戶Windows平臺的圖形工具可以幫助您設計健全可維護的軟件。除此,它還包含特性靈活的高品質文檔輸出。用戶指南可以在線獲取。
Sybase PowerDesigner是一個"一站式"的企業級建模及設計解決方案,它能幫助企業快速高效地進行企業應用系統構建及再工程(Re-engineer)。使用該工具可以設計數據流程圖、概念數據模型與物理數據模型,包括了數據庫建模的全過程。該工具在項目中主要用于數據庫建模。支持數據庫的正向和反向工程,便于數據字典維護與調整。
2.4需求管理與Bug跟蹤
我們采用Mantis作為項目管理和Bug跟蹤平臺。Mantis是一款基于Web的Php+Mysql的開源BUG管理系統,一款簡單實用的系統,具有截圖功能和強大的報表功 能。Mantis還具有良好電子郵件支持,可將需求與Bug的各種狀態定義按照預定設置發送到項目組相應郵箱。
對于新增需求變更,經歷提出需求、確認需求、開發需求、測試需求到需求五個階段,這五個階段分別由需求工程師、開發工程師、測試工程師與配置管理工程師進行完成。通過Mantis提供的基于Web的協作系統,可以很方便的進行需求變更管理和跟蹤。
對于已的項目所產生的Bug,通過Mantis也可以進行記錄、跟蹤。其郵件提醒功能使得Bug狀態一旦發生改變,會立即通知到相關責任人進行處理。同時,其強大的統計和報表功能也便于統計各項目的Bug量,統計測試人員報告的數量等關鍵值。
2.5代碼自動化生成
輕量級項目均采用三層結構進行設計。三層結構模式如圖2。
圖2三層結構框架
三層結構包含:表示層(UI),業務邏輯層(BLL),數據訪問層(DAL),各層特點如下:
數據訪問層:主要是對原始數據的操作層。可以操作數據庫、文本文檔或XML文件等多種數據格式,執行對數據庫的增、刪、查、改操作。數據訪問層還可以通過OR映射進行擴充。
業務邏輯層:是系統的核心層,位于數據層和表示層中間,主要實現業務規則制定與業務流程實現。業務邏輯層直接調用數據層,并接受表示層的調用,起到承上啟下的作用。
表示層:表示層是與用戶直接交互的一層,主要處理用戶的輸入操作,提供交互式接口。在項目實現過程中,表示層一般為WebForm或WinForm等形式。
三層結構的劃分,體現了“高內聚、低耦合”的設計思想,有效降低層與層之間的依賴,增強各層的復用性,有利于標準化開發。但三層結構也存在著降低性能、級聯修改等問題。但輕量級項目一般側重于業務流程,對于系統性能要求不高,而且計算機芯片的發展使得項目開發效率越來越比性能更重要。因此,輕量級軟件項目均采用三層結構設計。
除此之外,還有業務實體層(Model),這個層主要內容是存放可持久化的實體類;通用工具類庫(Common),主要用于存放通用的管理類庫。類庫的存在形式一般為Static類和Static方法。由于開發模式基本相似,所以開發過程中的大量相似代碼,如:實體類、數據庫操作類、UI界面,均可采用工具生成。.NET平臺下比較優秀的代碼生成工具有李天平的動軟.NET代碼生成器Codematic和國外成熟的代碼生成器CodeSmith。
輕量級項目采用動軟.NET代碼生成器為主要生成工具。動軟.省略程序員設計的自動代碼生成器,Codematic生成的代碼基于面向對象的思想和三層架構設計,結合了微軟Petshop中經典的思想和設計模式,可以通過反射支持多數據庫,支持對連接字符串加密等。Codematic在項目中主要針對數據庫中的表或視圖生成表示層、業務層、數據層及實體等代碼。使得開發人員完全從重復的錄入過程中解脫。最新版本的Codematic還支持模板語法,開發人員可根據實際項目需要生成相應的表示層或數據層的SQL代碼。以下是動軟.NET生成器生成的Visual Studio .NET2010解決方案結構。
3結束語
本文根據中小型研發項目實際需要,提出了一種輕量級開發的項目管理解決方案。方案主要針對項目計劃管理、配置管理、項目建模、需求管理與Bug跟蹤、代碼自動化生成5個方面進行了定義和分析,給出了各過程中最佳的解決方案和管理工具。輕量級的項目管理解決方案已經大量應用于團隊所承擔的各類研發項目中,與方案實施前相比,開發更高效、項目進度可控,能有效的提高軟件產品質量。
參考文獻:
[1]季麗萍.淺談.NET三層結構及其應用[J].福建電腦,2009(6).
[2]李立芳,周小平.軟件項目管理活動淺析[J].中國科技信息,2010(10).
[3]范振鈞.省略的三層結構實現方法研究[J].計算機科學,2007(4).
[4]孫繼紅.基于.NET三層架構的網上商城設計與實現[J].電腦編程技巧與維護,2008(16).
[5]于紅波.三層結構各層次的實現技術研究[J].山東紡織科技,2008(1).
[6]劉宇翔.軟件項目管理的流程設計分析[J].科技資訊,2010(36).
軟件項目風險管理方案是在深入分析公司項目管理整體狀況、風險管理的現狀和問題、風險管理約束條件的基礎上,結合經典的軟件風險管理理論進行設計的,設計的方案包括兩部分內容:軟件公司風險管理過程以及風險管理工具和方法。本文對公司風險管理過程風險管理計劃制定、風險識別、風險分析、風險監控、風險應對和風險管理工具和方法進行詳細的探討。
【關鍵詞】
風險管理;軟件項目;方案設計
1 公司風險管理過程
對于大型軟件企業來說,細致和規范化的工作步驟定義有利于項目風險管理的成功。而對于中小型軟件企業來說,由于項目規模相對較小,項目周期相對較短,風險的數量以及風險管理的工作量都相對較小,風險管理的步驟可以適當簡化。結合經典的風險管理理論以及軟件公司的實際情況,本文將軟件公司的風險管理過程劃分為風險管理計劃制定、風險識別、風險分析、風險監控、風險應對這五部分。
由于軟件公司的背景情況限制,對公司進行風險管理過程設計應本著提煉風險管理每個階段的重點環節,把握必要的管理步驟,同時操作過程不像大型項目那樣繁瑣,要簡單方便,投入人力和物力要求不高。
1.1 風險管理計劃制定過程
軟件公司風險管理計劃制定,首先需要獲取所承攬項目的相關信息,尤其是項目類型信息,這對軟件公司制定風險管理控制的重點、風險臨界值、風險預算有重要意義。另外還要收集項目目標、合同約定、軟件規模、公司目前的風險承受能力,以及計劃在風險管理上的投入等信息,作為制定風險管理計劃的依據。由于軟件公司項目規模小,項目組人員主要是專職組成,可以由項目經理組織召開規劃會議,通過會議的方式對風險管理計劃的相關內容進行討論,在會上制定相關的風險責任人,最終根據會議內容編寫風險管理計劃。
風險管理計劃的制定過程比較簡單,首先收集信息,然后確定內容,最終編寫文檔。這是一種簡單成熟的文檔編寫方法,適合軟件公司采用。軟件公司在風險管理計劃過程中,尤其要注意收集項目信息的全面性,有些信息可能沒有成文的資料查閱,需要多方面的溝通和調研。
1.2 風險識別過程
軟件公司所承接的軟件規模不大,周期相對較短,并且項目具有共性,對其進行風險識別的過程相對簡單,主要的精力可以放在對不同類型項目特有的風險因素識別上,保證風險在范圍上被廣泛識別。
本文設計了軟件公司進行風險識別的過程。軟件公司首先需要收集資料,對項目類型區分,對內在的風險項目進行識別,這是風險識別。其中收集記錄資料有項目信息、風險數據庫等歷史信息、風險管理計劃、項目約束條件、合同文件。項目范圍說明書、項目管理計劃、章程等。之后辨別風險事件發生的影響形式和主要原因。再通過辨別出來的風險因素影響和風險事件去推測之后可能發生的結果。最后為了方便以后的風險分析和交流組成風險登記冊。
1.3 風險分析過程
本文根據軟件公司的特點設計了操作簡單的風險分析過程。什么是風險分析呢,該工作是在知道什么是風險后將其記錄在手冊上,隨后將其分到某種風險類別上,去掉沒有用的風險,接著分析該風險的原因和推動力,再利用之前確定的風險度量估計風險帶來的影響,把認為重要的風險因素先按照重要性排個順序,列出其風險的優先級清單,把不重要的風險因素,按照低級優先度再列清單,其中要是發現了沒有出現過的風險類型或者已經識別的現在又沒有的因素,就應該重編風險記錄本。
1.4 風險監控過程
對于如何實施風險監控,軟件公司也做了規劃,第一步,考察風險現狀,對已經出現的風險重新下定義,并預測其帶來的影響。就目前情況而言,風險事件還有很多不確定因素,實施環境時刻在變化,這些變化主要包括已經出現的風險發生的概率、其影響的重要性,什么時候采取措施,環境惡劣的情況下還有可能有其他新的變化,為了應對這些變化,則需要指定相關的負責人,對項目開展過程中的風險進行檢測,并每隔一段時間對其重新評估,以此來制定出新的應對方案。第二步,將項目目前狀況與風險的最大最小值進行對比,要使項目進展順利則顯示信息應該在其風險范圍之內,如果在其范圍之外,則應該改變計劃,商討新的應對措施。
2 風險管理工具和方法
目前,風險管理領域的工具和方法主要是定性的方法,缺少適合中小規模企業的、操作簡單、技術難度要求不高的工具和方法,尤其是定量的方法。因此為了解決軟件公司缺少適合的風險管理工具和方法的問題,本研究對風險管理每階段軟件公司可以采用的工具和方法進行了深入探討。此部分只對針對軟件公司提出的工具和方法進行深入探討,以往資料中有過詳細介紹或應用成熟的方法不再探討。
2.1 風險管理計劃的工具與方法
對于中小規模軟件公司,風險管理投入有限,軟件公司可采用最簡單和直接的方法――專家會議法收集相關信息,進行計劃的編制。專家會議是指在一定規章制度的前期下,選出一些優秀專家,按照一定的活動規則召開會議,借助專家的聰明才智,對項目以后的發展情況等做出一定的評估。這種方法有很對有點,其中專家們的意見可以相互參考,相互激發,相互補充,將內部信息最大化,最后做出統一的決定,慢慢的再在統一寄出上再次發生思維碰撞出現其他的奇思妙想,這樣就能到達在較短的時間內達到最好的效果,從而制定出最佳方案。
2.2 風險識別的工具與方法
由于軟件公司承接的項目類型和特點不同,項目管理的側重點不同,每個類型項目的風險因素和影響也有所區別,但也有共同之處,這些項目都屬于企業信息化建設中的軟件開發項目,項目規模不大,開發內容主要是辦公自動化、市場經營管理、檔案管理、資產管理、項目管理等信息管理系統,項目在實施流程和技術上有相似性,有很多風險是這些項目都可能發生的。因此軟件公司的軟件項目風險識別工作不僅需要識別軟件項目的共性風險因素,還要針對項目類型,研究每個類型項目需要重點識別和控制的風險因素。
軟件公司在進行風險識別過程中,可以采用一些常識的判斷,或者借鑒以前經歷過的項目的經驗、教訓、資料等,也可以請本公司內或行業內的專家進行指導。
2.3 風險分析的工具與方法
對于軟件公司這樣的中小規模軟件公司來說,采用定性的方法實施簡單,節省資源,但是精度不夠,采用定量的方法則實施復雜,對資源要求高,結果相對準確。根據軟件公司的具體情況,本文對其風險分析過程中可采用的工具和方法進行了深入的探討,提出了風險度量標準表、層次分析法、故障樹風險分析這三種定性和定量相結合的方法。這幾種方法便于使用者理解和操作,同時又能達到軟件公司這樣的中小規模軟件風險分析需要。
2.4 風險監控的工具與方法
目前,使用最為普遍的項目跟蹤方法是項目跟蹤會議。項目的負責人可以通過項目會議在較短的時間內對項目內每個人的工作進展程度進行深入的了解,以便于更好地掌握項目運行時出現的問題,同時根據項目的風險程度決定其投入資源的多少。其中需要檢查的項目內容有產品的市場需求、產品的受眾群、產品呢的概念、基礎設計和編程、基礎和功能檢測、組成檢測、運行能力檢測、產品包裝,對每個需要檢測的環節都做出最好成績,并依此為模范,爭取達到這種優秀水平。項目進行過程中,項目的重難點也會隨之變化,會議負責人也應該注意到這點,并及時和上級領導做好溝通,同時做好會議記錄。
【參考文獻】
該方案可以自動解決安全管理軟件同防病毒軟件的沖突問題,大大減少了安全管理軟件在部署、實施、運維過程中,網管人員的工作量,同時也提高了用戶體驗,減少了用戶的抵觸情緒,為企業內網安全方案的落地打下良好的基礎。
關鍵詞 安全管理;殺毒軟件;代碼簽名;驅動
中圖分類號TP39 文獻標識碼A 文章編號 1674-6708(2014)116-0212-03
0 引言
從電腦誕生之日起,病毒和各種安全問題就一直困擾著人們。特別是在網絡購物越來越普遍,互聯網理財越來越普及的情況下,防病毒軟件已經成為當前PC的標配。
在企業中,工作PC和服務器的安全問題,就更加重要。企業不僅僅要在每臺工作PC和服務器上安裝好殺毒軟件、防火墻,并且還需要在終端上安裝對主機安全更有保障的安全管理軟件,如銳捷網絡的GSN,華為的TSM,華三的IMC等。這些安全管理軟件,一般都具有1X認證、微軟補丁更新、外設管理、進程管理、注冊表管理、系統服務管理、網絡攻擊防御、防機密數據泄漏等功能,可以極大的增強企業內網安全,保護企業敏感數據。但是,這些安全管理軟件,都不可避免的存在一個共同的問題:那就是安全管理軟件同防病毒軟件的沖突問題。
有過安全管理軟件部署和使用的網絡管理員,都應該有這樣的體會:除了初次部署時的各種兼容性問題排查,日常運行管理過程中也還會遇到各種各樣的沖突問題。也許在安全管理軟件升級了,或者防病毒軟件升級病毒庫之后,沖突問題又忽然爆發。這樣的問題,讓安全管理方案的落地存在很大的問題,原本為了提高企業內部安全,降低網絡管理人員工作而引入安全管理軟件,反而成為了一個新的痛苦點。那么,這樣的問題有沒有辦法徹底解決呢。本文主要針對該問題進行一些分析和探討。
1 什么會有這么多的沖突問題
要解決問題,首先就要先了解問題發生的原因。安全管理軟件和防病毒軟件為什么會發生這樣的沖突呢?這首先要從防病毒軟件的病毒檢測機制說起,一般來說防病毒軟件的檢測機制有被動檢測和主動檢測兩種。目前基本上所有防病毒軟件都兼具兩種檢測方式,只是不同的品牌側重點不同。對于被動檢測,也就是根據各種病毒特征(如應用程序PE文件的特征,MD5值、進程名稱等)進行判斷,殺毒軟件通過不斷的升級病毒庫來增加各種病毒庫特征。對于主動檢測,其實就是殺毒軟件根據應用程序的行為(如調用了哪些敏感API,監聽了哪些端口,訪問了哪些敏感資源,或者某幾種動作的組合)等來進行判斷是否存在風險。
從以上分析可以發現,防病毒軟件和安全管理軟件存在天然的沖突問題,因為安全管理軟件事實上從技術的角度來看,和黑客軟件的行為有著很大的相似之處。如也會調用一些敏感資源,檢查某些文件、注冊表,防殺(如惡意用戶通過惡意殺掉安全管理軟件的進程來逃脫監管)等。不過安全管理軟件不會如黑客軟件那樣,惡意竊取敏感信息,惡意復制、刪除、創建惡意文件等,如當年臭名昭著的“熊貓燒香”病毒,就是通過篡改感染用戶的各種可執行文件,導致用戶主機癱瘓,資料丟失。
也正因為如此,防病毒軟件產品也經常將安全管理軟件進行誤殺。那么,有什么辦法來解決這些問題呢?
2 如何防止誤殺
要解決誤殺問題,首先要解決的就是信任問題。要讓殺毒軟件信任安全管理軟件,目前一般會采用如下一些解決辦法:
方法一:用戶手動將安全管理軟件加入防病毒軟件的白名單中(如360的文件白名單)。
方法二:安全管理軟件廠商每次版本之前,將安全管理軟件申請放到防病毒軟件廠商的免殺列表中。
方法三:安全管理軟件盡量不調用一些敏感的API,不訪問一些敏感的資源,做一些類似病毒的行為。
如上幾個方法,似乎可行,但是實際上并不好使。
如方法一,似乎可行,但是首先一點是,對于企業用戶,很多人對于IT技術并不熟悉。讓其手動添加白名單,特別是一些企業的老員工,更是一竅不通。即使是比較精通IT技術的年輕人,也不一定能夠判斷出某進程是否安全。
如方法二,首先,該方法是一種企業間的白名單行為。不是所有防病毒廠商都提供這樣的服務,特別是一些海外的防病毒軟件廠商,在國內只有商,通常是無法聯系到廠商的售后的。即使是對于有提供這些服務的防病毒軟件廠商,也有問題。如有的廠商需要一定的費用(長期以來,對于安全管理軟件廠商來說,也是一個負擔),有的廠商審核周期太長,可能需要好幾天,甚至一個月。這對于一些面臨驗收的項目,或者出現嚴重故障,急需修復BUG的安全管理產品來說,也是不可接受的。更重要的是,加入白名單,很多時候,只能避免安裝過程沒問題。當進行一些敏感操作時,還是會被誤殺。
如方法三,首先,這不太可能,因為安全管理軟件需要做一些安全相關的防護,甚至會做到驅動級別,因此不調用敏感API,就無法實現這些功能。一些敏感資源也是必須訪問的,如禁用U盤,U盤加密等。這是安全管理軟件很常見的一些功能。對于ARP欺騙等網絡攻擊行為,安全管理軟件甚至還需要分析網絡報文來對攻擊行為進行防御和定位(如銳捷GSN產品中的ARP立體防御解決方案)。
綜上所述,如上的這些方案,都無法完全解決這些問題。那么還有其他什么解決方案嗎?
解決方案的著眼點,應該還是信任問題。如果通過各種技術來反檢測,那么最終可能會演變為一種新的“3Q大戰”。那么是否存在第三方的信任機構,來對應用程序提供信任擔保呢。事實上,的確有。業界早就存在第三方的安全認證機構,如VeriSign、GlobalSign、StartCom。說起這些機構,大家可能都不熟悉。但是如果談到https或者ssl,可能大家就比較熟悉了。目前任何銀行和電子商務平臺,都是必須用到這些技術的。而這些第三方安全認證機構目前提供最多的就是SSL證書。SSL證書是數字證書的一種,通過非對稱算法,在客戶端和服務端之間建立一條安全的通訊通道。而這個通訊通道建立的前提,就是這些第三方機構提供的電子證書是被業界所有廠商都認可的。如微軟的OS就內嵌了VerSign,StartCom的根證書。
SSL主要用于客戶機和服務器之間的安全信任問題。類似的,對于應用程序之間的信任,也有一種對應的電子證書:代碼簽名證書。
代碼簽名證書能夠對軟件代碼進行數字簽名。通過對代碼的數字簽名來標識軟件來源以及軟件開發者的真實身份,保證代碼在簽名之后不被惡意篡改。使用戶在下載已經簽名的代碼時,能夠有效的驗證該代碼的可信度。也就是說,代碼簽名證書其實主要解決兩個問題,一個是軟件來源問題,一個是保證代碼不被篡改。而代碼簽名證書,本身有一套非常完善的機制,如使用非對稱算法(RSA)來進行代碼簽名證書的生成和防篡改等,從技術上就能做到證書的防偽造。
因為這個代碼簽名證書是業界認可的第三方證書,也就是可信的,所以利用代碼簽名證書的這兩個特性,應該可以很好的解決安全管理軟件和防病毒軟件的沖突問題。經過測試可以發現,國內外的殺毒軟件,全部都承認代碼簽名證書。對于有使用代碼簽名證書簽名的安全管理軟件程序,防病毒軟件都會認為其是安全的,不會再進行各種誤殺和攔截。
既然代碼簽名證書可以解決這個沖突問題,并且可以防止被防病毒軟件誤殺,那么木馬病毒程序是否可以采用這種方式來避免被防病毒軟件殺掉呢?理論上是可以的,但是事實上存在一定難度。因為代碼簽名證書的申請不是隨便誰都可以申請的,是需要提供各種企業執照和證明文件,如果出現這樣的病毒。那么對應的企業是需要承擔法律責任的。所以,擁有這種代碼簽名證書的企業需要很小心的保管自己公司的代碼簽名證書。同時,代碼簽名證書也是有時效的,超過時效,那么這個代碼簽名將不會認可,防病毒軟件就照殺不誤了。如果出現證書丟失等異常情況,也有相應的證書吊銷機制可以解決這個問題。
4 如何解決惡意破壞
綜上所述,安全管理軟件的安裝和執行得到了信任,那么是不是安全管理軟件和防病毒軟件的沖突就可以徹底解決了呢。大部分是已經可以了,但是還不完全,前面我們提到有些惡意用戶為了繞開安全監管,會采用防病毒軟件的相關機制來破壞安全管理軟件的正常運行。一種很典型的做法就是,使用防火墻軟件,禁止安全管理軟件客戶端和服務器端的通訊。這樣一樣,網絡管理人員就無法通過下發安全管理策略,來管理企業網內部的工作PC了。部署安全方案的目的也就無法很好的達成。
除了惡意破壞,還存在如下兩種情況,導致客戶端無法同服務器端進行通訊,正常的安全管理業務流程失敗。
問題一:上網用戶由于網絡知識有限,不懂如何配置防火墻使安全管理軟件客戶端能夠同服務器端進行通訊。
問題二:上網用戶在防火墻判斷是否放行時,由于無法作出判斷,出于安全起見,禁止安全管理軟件客戶端訪問網絡。
對于這些問題,業界還沒有好的解決方案,一般只能由管理員幫助上網用戶進行配置和解決問題,但是如果企業內部工作PC數量眾多,各種工作PC的應用環境復雜,所使用的殺毒軟件和防火墻產品、版本和實現機制各不相同,耗費的工作量是巨大的。而且在防火墻升級、工作PC重裝操作系統,客戶改用其他殺毒軟件的情況下,又需要耗費大量的時間進行折騰。而且,網管的技術能力目前在業界也是良莠不齊,很多網管也無法解決這些問題。
通過分析,可以發現當前業界主流的防火墻主要采用2種技術:SPI和NIDS中間層驅動。
SPI:簡單一點說就是防火墻中同進程關聯的一種報文過濾技術,它能夠截獲進程發起的網絡連接,然后判斷該進程是否允許發起這個網絡鏈接。
NIDS中間層驅動:NIDS驅動位于更底層,它能夠對網絡訪問的所有報文進行過濾。但是無法根據進程信息進行過濾。也就是如果其允許目的端口為80的報文通過。那么所有使用目的端口為80進行網絡訪問的進程發出的網絡報文都能夠通過。
一般業界的防火墻均采用2兩種技術進行組合來實現。這樣就可以解決其他進程冒用NIDS中間層驅動允許端口進行訪問的問題。也可以解決,NIDS無法定位進程的問題了。
由于基于SPI的防火墻是工作于應用層的,因此能夠攔截應用程序發起的網絡鏈接,在某些情況下,就可能將客戶端發起的網絡鏈接阻斷。
由于基于NIDS驅動的防火墻是工作在核心層的,因此能夠攔截所有固定特征的報文。在某些情況下,就可能將客戶端發起的網絡鏈接阻斷。
因此,要解決客戶端同服務器端的通訊不被防火墻阻斷,本文可通過實現一個“客戶端驅動程序”(如上圖所示)來解決該問題。該客戶端驅動程序為TDI驅動,與TCP/IP這個TDI驅動同一位置,因此所有網卡收到的報文都將同時拷貝一份給“客戶端驅動程序”,不會經過系統自帶的TCP/IP驅動和TCP/IP協議棧,因此不會被基于SPI(甚至基于TDI驅動)的防火墻所過濾,而目前能夠實現根據程序進行報文過濾的防火墻基本都是使用這兩種技術。該“客戶端驅動”由于同TCP/IP位于同一位置,因此無法使用Socket等WindowsAPI來實現TCP/IP傳輸。因此要實現客戶端同服務端的通訊,還需要“客戶端驅動程序”實現TCP/IP協議的相關功能。由于TCP過于復雜,因此“客戶端驅動程序”采用實現UDP相關功能來實現IP報文的傳輸。“客戶端驅動程序”能夠防止通訊報文被基于SPI和基于TDI方式進行過濾的防火墻所過濾。
通過以上方式,客戶端和服務端通訊的報文還可能被基于NIDS中間層驅動的防火墻給過濾。如瑞星防火墻就默認過濾所有報文,只開放少數必備端口,如80(http)和53(dns).對于使用NIDS驅動進行報文過濾的防火墻,由于上網用戶訪問網絡是一定要訪問DNS服務的(DNS的訪問端口53),并且NIDS無法得到進程信息。因此可以使“客戶端驅動程序”的目的端口采用這些必備端口即可,本文中采用53端口(通過將端口修改為其他一定能夠訪問的端口也是可以的,53只是一個比較通用的做法,因為大部分人訪問網絡都是為了訪問internet)。
通過以上兩種方式,即可解決客戶端同服務器端網絡通訊被防火墻阻斷的問題。下圖為實現本方案,客戶端程序至少需要實現的模塊:
業務解析模塊:同業務相關的模塊(不同的產品是不一樣的),從自定義傳輸協議棧獲取服務器端發送過來的業務信息。將業務信息發送給自定義傳輸協議棧。
自定義傳輸協議棧:將業務相關的信息,根據自定義協議,封裝到IP報文中。該傳輸協議棧,本方案只規定了采用UDP協議實現。UDP報文中的內容,不同的產品根據不同要求能夠有不同的實現(如報文大小,安全要求程度不一樣,應用層的實現都是不一樣的)。
客戶端驅動程序:TDI驅動,接收服務端發送過來的報文,并轉發給自定義傳輸協議棧處理。接收自定義傳輸協議棧封裝好的報文,并通過網卡轉發給服務端。
對于服務器端,需要實現對應的自定義傳輸協議和業務解析模塊,但是不需要實現客戶端驅動。因為服務端都是管理員負責管理的,不存在這個防火墻的問題。
本方案既能夠應用于Windows操作系統環境下的TCP/IP網絡環境,也可以擴展到其他操作系統上的,如Linux和Unix等,因為其網絡體系架構基本上是一樣的。不過,目前國內的企業網,基本上都是Windows操作系統的終端,采用其他OS的PC很少。
4 結論
雖然目前殺毒軟件和防火墻軟件功能已經越來越強大。但是,這些軟件的功能,主要還是針對用戶的操作系統環境,進行病毒的檢測和防御。對于安全要求較高的企業網,部署相應的安全解決方案,還是很有必要的。對于一些裸奔(不安裝任何殺毒軟件和防火墻軟件)的PC,其安全性是完全無法保障的,企業信息的泄密幾率也大大的增加。但是,安全管理軟件同防病毒軟件的沖突問題,卻使安全解決方案的部署無法達到預期的效果。本文針對這個問題,通過使用“代碼簽名證書”,基于底層驅動的“客戶端驅動程序”,解決了業界普遍存在的安全管理軟件和防病毒軟件的沖突問題,使安全管理方案的落地有了一個良好的基礎。大大提高了企業內網的安全,極大的減輕了企業網網絡管理員的工作負擔。
參考文獻
[1]代碼簽名證書.http:///link?url=B4VdrnuSOBmgeRYdAsssYwGZ32a4MRZbzMKhLrlu9n-6IhCgYqbOKSqQKGArOFvNdDB8etVjoy0eG-M9yvoGb.
金算盤eERP-B財務管理軟件是由金算盤(eAbax)軟件有限公司開發。金算盤eERP-B財務管理軟件主要為小企業管好錢,管好賬,管好固定資產,管好工資,是財務人員的好幫手,將小企業內部信息化與電子商務有機融合,幫助小企業實現全程電子商務化。
一、金算盤eERP-B財務管理軟件詳細功能
(一)賬務處理
1.軟件可對科目類別、性質進行管理和修改、復制、合并、拆分、停用,以及恢復處理與財務預算功能,任意定義憑證的輸入輸出界面,提供語音復讀功能和輸入算術表達式。2.軟件具有外幣核算、跟蹤查詢、自動核銷往來賬功能,與用戶可任意定義通用轉賬憑證,支持在任一時間進行科目計息,期末結賬時系統自動檢查提折舊、期末調匯、損益結轉、憑證號連續等。
(二)現金銀行
1.軟件提供收付款單、復幣式收付款單、應收應付核銷和現金折讓功能。2.軟件可以設定對賬單和銀行賬相差的天數及手工對賬功能。
(三)往來管理
1.軟件對往來單位按類型、片區、級別、性質等進行管理及指定往來單位付款條件和折扣率。2.軟件提供信用額度管理和應收計息功能。
(四)工資管理
1.軟件有一個月內多次發放不同工資項目能力和集成為銀行提供工資數據接口。2.軟件對工資數據可自定義生成記賬憑證和任意生成工資條、工資表、配款表以及個人所得稅代扣代繳表。
(五)固定資產管理
1.軟件有固定資產進行分部門、類別和提供批量打印固定資產卡片的功能,提供“按現在凈值和剩余期間計提折舊”和“按原值和預計使用期間計提折舊”兩種方法,對同一固定資產多部門使用和折舊費用多科目核算及對入賬前固定資產的多種折舊方法進行管理。2.軟件提供“按現在凈值和剩余期間計提折舊”“按變動后各因素計提折舊”和“按變動前各因素計提折舊”三種折舊計算以及“不調整以前累計折舊”“重新計算折舊并自動計算累計折舊”兩種累計折舊調整方法。
(六)采購管理
1.軟件可進行采購訂單執行情況管理,查詢采購單據、到貨情況,并進行技能型定購未到貨稽查。2.軟件可進行訂單中指定商品進行關閉操作,針對不同供應商自動記憶,可處理貨到票未到、票到貨未到和票貨同到業務,控制采購成本和庫存積壓,進行現金計算,也可掛往來賬,自動生成采購憑證,生成采購發票。
(七)銷售管理
1.軟件可進行銷售訂單、控制銷售成本和短缺商品管理,并能自動跟蹤訂單、收款單、銷售發票。2.軟件可依據地區、單位、部門、職員等要素統計銷售,掌握商品的發貨及結算,自動生成銷售憑證。
(八)庫存管理
1.軟件支持自制產品入庫和企業內部材料、商品(產品)領用出庫管理,接受捐贈、樣品、禮品及采購商品溢余等由其它入庫進行管理。2.軟件支持對批次管理的商品進行批次盤點,通過“盤點處理”功能自動產生盤盈盤虧單據。
(九)存貨核算
1.軟件提供庫存商品成本調整和調價功能,能對自制入庫物品設置實際成本。2.軟件對出入庫成本、盤盈盤虧成本根據商品對應成本計算方法自動得到,對移動平均、先進先出、后進先出、個別計價商品提供成本計算底稿,對單個、多個、全部商品計算成本及成本或差異差價結轉,提供計提存貨跌價準備功能。
二、金算盤eERP-B財務管理軟件財務管理解決方案
(一)財務管理
操作人員權限管理基礎編碼管理財務預算管理會計日常業務管理多幣種管理賬冊查詢、分析、結賬通用轉賬損益結轉和收支結轉。
(二)應收、應付管理
1.應收賬。物品銷售應收借項錄入應收計息應收計息貸項應收賬。2.應付賬。物品采購應收貸項錄入應付借項應付賬。3.現金銀行。收到款項支付款項收付款憑證銷售收款采購付款現金、銀行日記賬。4.工資管理。工資計算工資發放費用計提代扣個人所得稅工資賬表工資的核算、管理和統計分析。5.固定資產管理。卡片式固定資產信息固定資產增減值變動自動計提折舊并生成記賬憑證。6.電子報表。資產負債表現金流量表損益表工作表圖形分析報表數據引入引出。
【關鍵詞】軟件項目管理 項目計劃 管理意識 解決方案
軟件行業是一個極具挑戰性和創造性的行業,軟件開發是一項復雜的系統工程,牽涉到各方面的因素,在實際工作中,經常會出現各種各樣的問題,甚至面臨失敗。如何總結、分析失敗的原因,得出有益的教訓,對一個公司來說,是在今后的項目中取得成功的關鍵。
1 項目管理在軟件開發中的應用的成因
目前我國大部分軟件公司,無論是產品型公司還是項目型公司,都沒有形成完全適合自己公司特點的軟件開發管理模式,雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范,但并沒有從根本上解決軟件開發的質量控制問題。這樣導致軟件產品質量不穩定,軟件后期的維護、升級出現麻煩,同時最終也會損害用戶的利益。
2軟件項目管理常見問題及解決方案
(1)缺乏項目管理系統培訓
在軟件企業中,以前幾乎沒有專門招收項目管理專業的人員來擔任項目經理,被任命的項目經理主要是因為他們能夠在技術上獨當一面,而管理方面特別是項目管理方面的知識比較缺乏。
解決方案:項目經理接受系統的項目管理知識培訓是非常必要的,有了專業領域的知識與實踐,再加上項目管理知識與實踐和一般管理的知識和經驗的有機結合,必能大大提高項目經理的項目管理水平。
(2)項目計劃意識問題
項目經理對總體計劃、階段計劃的作用認識不足,因此制定總體計劃時比較隨意,不少事情沒有仔細考慮;階段計劃因工作忙等理由經常拖延,造成計劃與控制管理脫節,無法進行有效的進度控制管理。
解決方案:計劃的制定需要在一定條件的限制和假設之下采用漸近明細的方式進行不斷完善。提高項目經理的計劃意識,采用項目計劃制定相關知識、技術、工具,加強對開發計劃、階段計劃的有效性進行事前事后的評估。
(3)管理意識問題
部分項目經理不能從總體上把握整個項目,而是埋頭于具體的技術工作,造成項目組成員之間忙的忙、閑的閑,計劃不周、任務不均、資源浪費。有些項目經理沒有很好的管理方法,不好安排的工作只好自己做,使項目任務無法有效、合理地分配給相關成員,以達到“負載均衡”。
解決方案:加強項目管理方面的培訓,并通過對考核指標的合理設定和宣傳引導項目經理更好地做好項目管理工作。技術骨干在擔任項目經理之前,最好能經過系統的項目管理知識,特別是其中的人力資源管理、溝通管理的學習,并且在實際工作中不斷提高自己的管理素質,豐富項目管理經驗,提高項目管理意識。
(4)溝通意識問題
在項目中一些重要信息沒有進行充分和有效的溝通。在制定計劃、意見反饋、情況通報、技術問題或成果等方面與相關人員的溝通不足,造成各做各事、重復勞動,甚至造成不必要的損失;有些人沒有每天定時收郵件的習慣,以至于無法及時接收最新的信息。
解決方案:制定有效的溝通制度和溝通機制,提高溝通意識;采取多種溝通方式,提高溝通的有效性。通過制度規定對由于未及時收取郵件而造成損失的責任歸屬;對于特別重要的內容要采用多種方式進行有效溝通以確保傳達到位,例如:除發送郵件外還要電話提醒、回執等,重要的內容還要通過舉行各種會議進行傳達。
(5)風險管理意識問題
有些項目經理沒有充分意識到風險管理的重要性,對計劃書中風險管理的章節簡單應付了事,隨便列出幾個風險,隨便地寫一些簡單的對策,對于后面的風險防范起不到什么指導作用
解決方案:通過學習項目管理知識掌握風險識別、量化、對策研究、反應控制的工具和方法,掌握項目風險管理所必備的知識。通過加強對項目規劃中風險管理計劃的審核提高項目組的風險管理意識。總結本行業項目中常見的風險及其對策作為風險管理計劃中必要的風險內容,并切實評估相應對策的有效性和可行性。
(6)項目干系人問題
在范圍識別階段,項目組對客戶的整體組織結構、有關人員及其關系、工作職責等沒有足夠了解以至于無法得到完整需求或最終經權威用戶代表確認的需求;或者是多個用戶代表各說各話、昨是今非,但同時又要求項目盡早交付;項目后期需求變化隨意,造成項目范圍的蔓延,進度的拖延,成本的擴大。
解決方案:項目的目的就是實現項目干系人的需求和愿望。項目干系人管理應當從項目的啟動開始,項目經理及其項目成員就要分清項目干系人包含哪些人和組織,通過溝通協調對他們施加影響,驅動他們對項目的支持,調查并明確他們的需求和愿望,減小其對項目的阻力,以確保項目獲得成功。
(7)項目團隊內分工協作問題
項目團隊內部有時由于各階段不同角色或同階段不同角色之間的責任分工不夠清晰而造成工作互相推諉、責任互相推卸的現象;有時各階段不同角色或同階段不同角色之間的責任分工比較清晰,但是各項目成員只顧完成自己那部分任務,不愿意與他人協作。這些現象都將造成項目組內部資源的損耗,從而影響項目進展。
解決方案:項目經理應當對項目成員的責任進行合理的分配并清楚地說明,同時應強調不同分工、不同環節的成員應當相互協作,共同完善。
3 結束語
實施有效的項目管理絕非易事,對于軟件企業而言,這不是一個小的改變,而是一種變革,企業需要為此付出艱苦的努力,同時,成熟有效的項目管理無疑將對企業起著至關重要的作用,項目管理的水平將是企業核心競爭力之一。
參考文獻
[1]吳吉義.軟件項目管理理論與案例分析.中國電力出版社,2007,08.
[2]李幟,林立新,曹亞波.軟件工程項目管理:功能點分析方法與實踐.清華大學出版社,2005,03.