天天看點

項目經理、系統架構師經常使用的軟體大全

按照軟體系統的生命周期的六個階段,一般分為需求分析階段、系統設計階段、系統開發階段、軟體測試階段、系統釋出階段、系統維護階段,這幾個階段都需要有不同工具的支援。

一、需求分析階段:

第一、項目管理及需求管理工具

    項目管理工具很多公司都在使用,為什麼要使用這些工具?假如沒有使用這些工具,而是使用Excel或Word進行記錄,那當需求變更?需求實作情況的跟 蹤?軟體是否能按時傳遞?将是一件非常煩鎖且容易出錯的事情。一個軟體項目、開發團隊能否獲得成功,管理非常關鍵。比較有名的商業化工具 有:MicroSoft Project Server及Project 2003、IBM Rational RequisitePro、JIRA、PowerDesinger。比較有名的開源需求管理工具包括:OSRMT(Open Source Requirements Management Tools)、Xplanner、Openworkbench等等。

    很多軟體公司都會使用SharePoint,在SharePoint平台上,隻要你想得到,基本上都可以通過配置方式來滿足你的業務需求。在SharePoint上,可以跟MicroSoft Project Server很好的結合,再配置Project 2003為用戶端,進行公司的項目管理。也許對Project操作習慣的問題,在Web界面進行項目管理的時候,總覺得很不友善。

    IBM Rational RequisitePro(http://www.ibm.com ) 可以算是最骨灰級的一個軟體了,假如你公司整個軟體生命周期管理都是采用IBM的解決方案,那使用RequisitePro是一個非常好的解決方案。需要 這些軟體可以到IBM官方網站上去下載下傳一個最新版本,或者在電驢上面下載下傳一些“特别”版本。設計工具、管理工具的完美結合,這個正是IBM Rational RequisitePro的強項。RequisitePro跟Offce結合得也是非常完美。

    JIRA(http://www.atlassian.com ) 原來隻是一個缺陷跟蹤系統,你可以在JIRA上面建立新的ISSUE,當ISSUE配置設定給某個程式員時,系統會自動發送一封郵件給該程式員,提示有新的 BUG。JIRA也有提供一個Eclipse插件,你可以在Eclipse上面,查到屬于自己的ISSUE,并快速解決。現在JIRA也可以用來做項目管 理,在操作方面非常人性化,個人一直非常喜歡使用JIRA來進行項目管理、缺陷管理,再結合Eclipse,簡直就是完美!但作為商業的軟體,價格也非常 貴,網際網路上也有很多Crack,大家有興趣也可以搜一下。

    OSRMT(http://sourceforge.net/projects/osrmt )是一個開源的需求管理工具,分為用戶端跟伺服器,也提供了一個安裝界面供使用者安裝,做開源的已經算是做得非常完美了。目前最新版本是V1.5,有興趣的朋友可以下載下傳一個最新版本玩一下,操作還算是挺人性化的。

    Xplanner(http://www.xplanner.org )是一個開源的,基于XP程式設計的項目管理軟體,它可以幫我們生成一些統計圖表。這個軟體從06年底釋出0.7b7版後,就再也沒有更新過了,我對開源工具的看法就是:版本号沒有超過1.0版,我都不會應用于生産!對于Xplanner,也是停留在試用的階段。

    Openworkbench(http://www.openworkbench.org )也是一個開源的項目管理軟體,其功能跟Project 2003相似,是一個值得大家去使用的一個工具,但對于中國很多軟體公司,都是使用特别版的Project 2003。假如你很尊重版權,又不想使用Project 2003,那Openworkbench是一個非常好的選擇。

第二、需求分析工具

    需求分析工具用得比較多可能就是Rational Rose、MicroSoft Visio或MindManager,一般我們使用Rational Rose來進行用例分析,畫用例圖,畫狀态圖;使用MicroSoft Visio來畫出應用系統的結構圖、流程圖等。當然,對于MicroSoft Visio能畫出來的東西,其實Rose也一樣可以實作,隻是,大家都是這麼幹,我們也沒有必要專門去做一些特例的東西,特别是對于一些比較特殊的公司及行業。

    Ration Rose 2003是一個值得懷念的工具,至今還是有很多公司跟個人都是使用,個人覺得這個軟體版本算是最經典的一個,但對于現在所見即所得的要求下,使用Rose 2003,可能沒有辦法滿足你,因為它需要經過一些小操作才能滿足你的要求。但不可否認,它是一個非常優秀的軟體。現在對于一些喜歡使用新工具新技術的程式員,也許現在他們正在使用RSA。

    MicroSoft Visio(http://www.microsoft.com )是每個搞設計的人都會用的一個工具,我們一般使用Visio來畫系統結構圖、關鍵流程圖、系統部署結構圖等。MicroSoft Visio也提供了UML的功能,可以用它來畫用例圖、類圖、狀态圖,時序圖等,但一般這個功能很少使用。至少我基本上不用。

    MindManager(http://www.mindjet.com ) 是一個非常好用的工具,我們用來描述我們的思維,很多人都不喜歡通過軟體來描述,而是通過一張紙,然後在上面進行塗鴉,接着跟客戶或團隊進行思維溝通。 MindManager很好地解決了這個問題。MindManager跟Office結合得非常完美,可以生成Word、Excel、PDF等檔案。這個 工具是我一直在使用的一個軟體,非常好用。最新版本為7,大家有興趣可以下載下傳一個試用一下,也可以在網搜搜尋一些“特别”版本。

二、系統設計階段:

第一、系統設計工具

    主流的系統設計工具有大家非常熟悉的Rose2003,不過,現在已經不叫Rose了,現在IBM最新的設計工具是RSA(Ration Software Architect),Borland Together,SyBase PowerDesinger,MicroSoft Visio,對于開源的系統設計工具也有很多,比如ArgoUML、DBDesigner等等。

    RSA(http://www.ibm.com ):IBM 最新的設計工具,它是一個基于Eclipse平台的一個工具,對于你使用RSA,那也許你會将你的整個團隊的工具都采用IBM的整套解決方案,使用 RequisitePro來進行需求管理、使用RSA來進行模組化、使用ClearCase來進行配置管理、使用ClearQuest來進行缺陷跟蹤、使用 RFT(Rational Functional Tester)來進行測試……RSA有一個最大的優點,那就是跟Word結合得非常好。這一點可以肯定。

    Together(http://www.borland.com ):Borland 公司的NB的設計工具,Together 2006版本也是一個基于Eclipse平台的軟體,功能也是非常強大,其所見所得的功能,是我非常喜歡它的一個原因。還有一個原因就是基于 Eclipse平台,這個可以跟我的開發工具很完美地整合在一起。不過,整合要注意一個問題,那就是Eclipse相容性問題,這一點是非常煩人的。

    PowerDesigner(http://www.sybase.com ): PowerDesigner是“一站式”模組化與設計解決方案,實體資料模型的資料庫平台無關性,所見即所得,反向工程,報表生成等等功能,使得它成為資料 庫設計人員心目中最好的産品,它的易用性深深地吸引了我!特别它的Repository模型庫的功能,更讓我們實作了模型設計的版本控制。最新的 PowerDesigner,使得我覺得它是一件藝術品。做設計的人員一般會使用PowerDesigner來進行資料庫實體模型設計,它是我心目中的首 選工具。之前曾經對比過RSA、Together、ERWin的資料庫模型設定工具,最終我還是更加喜歡使用PowerDesigner,也許,我的操作 習慣已經被PowerDesigner腐蝕。

第二、開發的技術架構

    技術架構的選擇是非常關鍵,一個好的技術架構,可以讓我們的開發更加快速、團隊的分工更加合理、系統能夠支援多種資料庫平台、我們的維護更加友善。

    Web前端MVC架構是Struts 2。Struts 2可以說是Struts穿上了WebWork的外衣,其核心大部分都是采用了WebWork的技術,并且基于AOP的設計思想,讓我們在軟體設計上的能夠更加多地展現“高内聚,低耦合”的設計思想。

    J2EE架構是Spring,作為一個開源的J2EE架構,雖然它沒有太多的新技術點,但它的整合性,拿得我們的開發更加簡單,IOC、AOP、事務處理、開源架構的整合支援等等,使得作為一個J2EE架構的首選。

    持久層架構是Hibernate,作為一個開源的項目,我想,沒有一個開源項目的社群能夠你Hibernate一樣,豐富的文檔,活躍的社群,基于 Hibernate的開發團隊的龐大,使得它作為持久層架構的首先。基于 Hibernate,我們可以開發出資料庫平台無關性的産品。但是,Hibernate也有自身的問題,假如使用不當,也許會有所失控,一旦失控,它所帶 來的,就是性能問題。對于最新的Hibernate3,存儲過程的支援,外部SQL的定制,很好地解決了這個問題。但在關聯關系上,使用還是要小心為好。

    頁面架構,可以多考慮使用DIV技術、JSTL标簽庫、Struts 2标簽庫、DWR、AJAX、XML+XSLT等技術來讓我們頁面更好維護,使用OSCache緩存技術來提高我們頁面的通路速度。

第三、開發規範的定制

    檔案命名規範、資料庫設計規範、編碼規範、團隊協作規定等等一些規範性的東西,需要在系統開發前就規定好,并且做相應的教育訓練。QA也要做好監督的作用,定期做評審工作,對已發生的問題及可能出現的問題,及早發現,及早處理。

第四、開發工具的選擇

    團隊一定要選擇同樣的開發工具,開發工具相同,軟體版本相同。為什麼要這樣子做,其實假如你作為一個Team Leader,你會在管理你的團隊的時候發現很多問題,而解決這個問題,那在項目編碼前,就把什麼東西都規定好,以免其中發生問題,影響整個團隊的開發速 度。開發工具的選擇也是非常重要的,目前企業用得比較多的開發工具有:Eclipse、Jbuilder、NetBeans、IDEA。

    Jbuilder:最新的Jbuilder版本是2007,2007版基本上可以算是重新開發的版本,因為它是基于Eclipse之上的。我算是 Borland公司最為忠實的Fans啦,從Jbuilder6,到Jbuilder7,再到Jbuilder8,再到Jbuilder9、 Jbuilder X,Jbuilder 2005,Jbuilder 2006,我經常跟我學生說,對于Jbuilder,相信沒有人比我更熟悉他了,做Java開發接近6年時間,超過4年的時間,每天都都在使用的工 具,Jbuilder見證了我的長成。使用過Jbuilder的人很多人知道一點,就是Jbuilder的盜版問題,安裝完Jbuilder之後,假如你 一個不小心,沒有安裝防火牆,那Jbuilder會不時通過8888端口向Borland總部發送一些你的計算機資訊,這個是一種非常可怕的“木馬”,什 麼是“木馬”?這個就是!這種情況自從Jbuilder X以後就一直有。假如你不怕Borland公司的人跟工商局過來查你公司的軟體的話,那選擇Jbuilder是一個不錯的選擇。作為Java IDE開發平台的老大,Jbuilder在企業應用開發是非常有優勢的,特别是開發EJB跟WebService,偶隻能用一個句來形容,那就是牛。 Jbuilder 2007,王者歸來,相信對于很多Borland的Fans,還是非常喜歡并樂意去嘗試的,不過,價格還是會讓很多公司都受不了、速度會讓很多程式員也受 不了。我的Jbuilder的緣分到2006就基本上已經結束了。現在我的開發環境基本上都是Eclipse。

    Eclipse:IBM捐出來的好東西,發展挺快的,現在已經到了Eclipse3.3,非常好用的一個工具。但Eclipse隻是一個基礎平台,假如你 需要其他的功能,那你需要下載下傳相關的插件進行擴充,下載下傳的插件要注意一下跟Eclipse平台的相容性問題。Eclipse+MyEclipse(http://www.myeclipseide.com )是個是很多WEB開發人員都是在采用的一個整合工具,但MyEclipse要錢,如果公司願意為此支付29.9美元的話,那它是一個非常好的選擇;比MyEclipse更上一個檔次的還有Exadel(http://www.exadel.com/web/portal/home ),不過,價格貴得離譜,因為它本身就是一家咨詢服務公司做出來,主要還是靠咨詢服務,教育訓練掙錢,并且,運作時的不穩定,也讓我放棄了選擇這個插件作為我的開發工具,雖然這個工具真的是很強大。Eclipse+WTP(http://www.eclipse.org )也是一個非常好的免費的開發工具,從eclipse官方網站上可以下載下傳WTP跟Eclipse整合在一起的工具,現在教學基本上用這個。Lomboz(http://lomboz.objectweb.org/ ) 也是一個非常好用的免費J2EE插件,學生用的很多,因為好像有不少書都是用這個進行教學的。通過插件來的擴充本來是一件好事,但當它的版本問題?相容性 問題?安全性問題?語言問題?出現的時候,你就會罵着,為什麼不提供一站式開發平台呢?如果你下載下傳了語言包,你會發現,有些地方是中文的,有些地方是英文 的,極其醜陋!也許,Eclipse作為一個基礎平台,它确實是太基礎了。但現在,我們也可以下載下傳一些All-In-One版本的Eclipse,但個人 感覺還是不夠,很多功能,我們還需要去找插件來進行擴充。也許,Eclipse的決策者認為,作為基礎平台,肯定是越簡單越好,需要什麼就加什麼,這樣, 資源占用會更少。正如東方标準最咨深的平面老師曾宇飛講過一句話:你會去麥當勞點酸菜魚吃嗎?

    NetBeans:作為Sun公司出品的開發工具,功能一樣也是非常強大,不管你是做應用程式開發還是做應用系統開發,NetBeans都是一個不錯的選 擇。NetBeans也跟Eclispe一樣,也是一個基礎平台,但這個基礎平台做得比Eclipse強大很多,基本上你下載下傳一個NetBeans就可以 開發應用程式或J2EE應用系統了。并且,NetBeans的中文支援非常好,基本上一個新版本出來,就已經有中文版、英文版跟日語版了。看 來,NetBeans的決策者還是比較看好這些人群的。NetBeans的Mobile插件開發J2ME是最快最好用的,至少我個人這麼認為。開發 J2ME應用産品,我首選的就是NetBeans。目前NetBeans已經發展到6.0的版本了,界面非常華麗,有興趣的朋友可以下載下傳一個玩一下。 NetBeans的下載下傳位址是:http://www.netbeans.org 。

    IDEA:對于IDEA的評價,我隻能用六個字來形容,那就是:實用的藝術品。它非常好用,界面非常華麗,相當如果你是一個女性的項目經理或技術牛人,你 會喜歡上這件藝術器的。IDEA開發應用程式非常強大,這一點絕對可以肯定。官方提供的插件也非常豐富,當你需要那一方面的功能,基本上都可以找得到,找 插件,你隻需要在官方插件庫裡面去找就可以了,并且自動安裝,自動更新。作為2003年拿到JavaWorld大将的一個作品,相信,它可以帶來很多 IDEA的創新。它是屬于商業化的工具,價格也隻有499美元,而個人買也就249美元,如果你願意犧牲某些功能,那你完全可以下載下傳一個免費的版本。價格 方面,個人覺得完全對得起這件藝術品價值。有興趣的話可以下載下傳一個試用版玩一下:http://www.jetbrains.com/idea ,小聲地說,上一下baidu,插件一下,其實你可以找到很多注冊号。

    Ant是apache的一個開源項目,可以從Ant官方網站上下載下傳一個最新的版本:http://ant.apache.com 。雖然該項目雖然現在發展變得非常緩慢,但可以非常肯定地講,它是一個好東西。我們可以使用ant來對我們整個工程進行編譯,打包,單元測試,部署等等,基本上你想得到的東西,Ant可以幫你做得到。Maven(http://maven.apache.com ) 是一人比Ant還要強大的工具,現在大有Maven将會代替Ant的趨勢,Maven也是項目經理要關注的一個技術點。基本上現在主流的開發工具都提供共 了對Ant的支援,有些甚至是依賴,比如:NetBeans,你在NetBeans當中建立一個新的工程,那系統會自動地建立一個ant的運作腳本程式。 對于你進行編譯、打包、釋出,那完全都是依賴于這個ant腳本。我們可以使用Ant來開發一個DailyBuild(微軟叫每日産品生成,XP叫持久集 成)的流程,來提高我們整個團隊的軟體開發品質。Ant的使用非常簡單,多看手冊,多花點心思,那你會做得更好。

三、開發階段

第一、配置管理工具

代碼管理工具有很多,現在公司用得比較多的代碼管理工具有CVS、VSS、SVN。

對于一個開發團隊隻有2-5個人,并且這兩三個人是同一間辦公室裡,那使用VSS是一個非常不錯的選擇,個人覺得他小團隊的管理方面非常好用。個人覺得 VSS唯一的缺點就是一個檔案當被一個人鎖定,那其他人就沒有辦法進行修改了,當一個檔案為多個人所共用且開發團隊人數較多時,這種問題将會顯示非常嚴 重。VSS用戶端跟伺服器你都可以從Visio Studio裡面找到。

Eclipse的VSS用戶端插件:http://vssplugin.sourceforge.net/

    對于一個開發團隊有超過5個人,那此如選擇CVS或SVN将是一個更好的選擇,并且,假如你的團隊是分散的,可能不在一間辦公室或者根本不在同一個城市,那使用CVS或SVN是一個非常更想的選擇。CVS的伺服器一般是使用CVSNT或CVSServer。

CVSServer:

Linux for X86:http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-linux/RPMS/i386/

Window for X86:http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/

CVSNT:http://www.cvsnt.org/

CVSClient:

    WinCVS:http://www.wincvs.org

    TortoiseCVS:http://www.tortoisecvs.org/

    JBuilder、Eclipse、NetBeans、IDEA內建的CVS用戶端

    作為版本管理工具,CVS出現至今,已經有二十個年頭,可以說他已經走到了盡頭,但可以肯定,它将繼續存在着。SVN是作為CVS的代替産品而出現的。現 在很多開源組織,都慢慢地轉到SVN上,比如Apache跟SourceForge。SVN有着比CVS更強大的功能,比如,它可記錄目錄的更改,它的性 能比CVS會快很多等等。目前SVN慢慢地被企業所接受,但個人覺得其Eclipse的用戶端的穩定性還有待提高,也許這個跟Eclipse的版本相容性 有一定關系。但這些不穩定性,讓我現在對這個産品的使用還繼續停留在試用的階段。

SVNServer:http://subversion.tigris.org/

SVNClient:

    TortoiseSVN :http://tortoisesvn.net/

    Eclipse插件:http://subclipse.tigris.org/

目前SVN插件支援包括Eclipse、Jdeveloper、NetBeans等開發工具。

第二、知識庫管理工具

團隊每一個人在開發的時候都會發現一些問題,最終,有些問題可能沒有辦法解決,有些問題可以解決。一般情況,大部分問題經過團隊成員的共同努力,都是可以 解決的,那解決問題的方法,解決問題的步驟,這些都應該形成知識。作為一個團隊的Leader,我們必須重視這些知識,因為,這些知識非常有用,它對于一 些新手或沒有遇到此類問題的同僚,能夠提供相應的幫助。

    Confluence(http://www.atlassian.com/software/confluence ),跟JIRA來自同一家公司的産品,它跟JIRA可以整合得非常好。我們可以通過JIRA的ISSUE,将該ISSUE上升為一個知識。假如你是使用JIRA來進行項目管理跟缺陷管理,那使用Confluence是一個最佳選擇。

    PHPBB(http://www.phpbb.com ), 論壇其實也是一個非常好的知識庫管理工具,當某一個工程師遇到一些疑難雜症的時候,最終,通過自己的努力或團隊其他同僚的努力,終于解決問題了。那作為 Leader的你,應該鼓勵他們将這些知識,寫一些文章,然後釋出在公司自己的BBS上。供大家參考及讨論。這個是一種很好的方法。記得我以前,我在網上 看到一些有用的資訊,我就把它儲存在我本機的PHPBB上。隻可憐,後來電腦被人偷了。賊郁悶。

四、軟體測試階段 

第一、缺陷管理工具

    軟體你不能保證它永遠不會錯,隻是,有些錯誤你暫時還沒有發現而已;有些錯誤需要在某些特定的環境下它才會發生。就像Windows,時不時會有一些系統 更新檔案要求更新。可能這些更新不是錯誤,隻是一些系統安全方面的隐患。這些都可以算是軟體系統的缺陷。那這些缺陷我們應該怎麼進行管理?怎麼進行跟蹤 呢?現在缺陷管理用得比較多的有兩個:第一個是開源的bugzilla,另一個是商業的JIRA。

    Bugzilla(http://www.bugzilla.org ), 作為開源界缺陷管理系統的鼻祖,它發展到現在已從98年到現在經有10的時間了。它的開發語言是Perl,這使得它的安裝變得很麻煩,Bugzilla可 以安裝在Windows、Linux、Unix等作業系統上。現在的Eclipse也提供了對它的支援,我們可以在Eclispe平台上,找到應用系統的 BUG,功能做得非常強大。如果安裝能更加輕松一點,或者提供一個All-In-One版本,那會更好!

    JIRA,作為商為上化的缺陷管理系統,JIRA的價格對得起它的功能。JIRA不隻是一個缺陷管理系統,它更是一個集項目管理、缺陷管理、統計分析為一身的工具。這個工具我一直在使用,隻是使用一些“特别”版本而已。

第二、軟體性能監測工具

    Jprofiler(http://www.ej-technologies.com )是一個非常好的性能監測工具,使用這個工具,你可以快速發現系統那些子產品出現性能瓶頸或算法導緻的性能問題;它還可以分析記憶體洩漏的問題。這個工具也提供了相應的Eclipse插件,讓你開發更加快速友善。它支援主流的伺服器。

    Borland Optimizeit Suite(http://www.borland.com )也是一個非常好的性能監測工具,它跟Borland産品整合得非常好。不過,運作這個工具,你最好準備一下,最好有2G記憶體,否則,本來系統好好的,一運作起來,你機器反而死掉了。

第三、軟體性能測試工具

    Ant+Windows計劃任務建立公司的DailyBuild自動化測試流程,這個是以前做的一個測試流程。使用這種測試流程,無非一個目的,就是提高公司的軟體品質。

    Jmeter(http://jakarta.apache.org/jmeter ),這個工具是apache出品的,作為apache忠實的Fans,我對Jmeter也是很喜歡,使用Jmeter,你可以摸似多使用者環境,對應用系統進行測試,測試整個應用系統能夠承受的最大并發量。

    LoadRunner(http://www.hp.com ),假如你不知道這個軟體,那你肯定做不了測試工程師,這個是最專業的一個軟體性能測試工具,它可以模似上千萬個使用者量來進行壓力測試,檢測系統能夠承受的最大并發量。這個軟體我隻用過幾次,編寫腳本,進行測試,使用來講其實算是比較簡單。

五、軟體釋出

    軟體的釋出我們會怎麼去做呢?我們一般做法就是,将資料庫腳本化,包括建表語句、初始化資料等,還有制作WAR檔案或EAR檔案。然後到客戶那邊,我們需 要将資料庫表及資料進行初始化,接着,将WAR或EAR檔案釋出到應用伺服器上。這個也許是我們到客戶現在釋出經常在做的一件事情。那能不能做得更加簡單 呢?做法一般有兩個,第一個就是使用Ant,編寫一個初始化資料庫跟釋出應用程式子產品的Ant腳本,然後到生産機上直接運作該腳本即可;第二個就是制作安 裝檔案,一般用來制作安裝檔案的有IzPack,這個是用得最多的一個免費工具,你可以使用這個免費工具來制作安裝程式。也許客戶都習慣了安裝程式的安裝 方式了,制作一個可執的安裝程式,有助于提高軟體産品化的檔次。

六、軟體維護階段

第一、客戶CASE跟蹤管理工具

    客戶CASE跟蹤系統相信很多做CISCO公司金牌代理的人都會用過。我們必須在公司内部建立相應的CASE跟蹤制度。當使用者使用系統的時候,發現一些問 題,那我們需要對這些問題進行錄入并進行跟蹤。像客戶呼叫服務系統等等一些商業化的軟體外面還是很多的,這些系統其實公司自己開發一個也是很快的。但必須 要有。這個也是提高整個公司整體服務形象的一種态度。

繼續閱讀