天天看點

BUAA2020軟工作業(五)——軟體案例分析

項目 内容
這個作業屬于哪個課程 2020春季計算機學院軟體工程(羅傑 任健)
這個作業的要求在哪裡 軟體案例分析作業
我在這個課程的目标是 進一步提高自己的編碼能力,工程能力
這個作業在哪個具體方面幫助我實作目标 學習其他軟體的優點和不足,并吸取經驗
其他參考文獻 《建構之法——現代軟體工程》第二版

一、寫在前面

本次作業我選擇了微軟公司的兩個代碼編輯器:Visual Studio、VS Code來做評測。為什麼選擇這兩款軟體呢?是因為這兩款軟體非常熱門,一個是Windows上最強大的編譯器,一個是一款便捷好用的跨平台編輯器。

Visual Studio(簡稱VS)是美國微軟公司的開發工具包系列産品,是一個基本完整的開發工具集,它包括了整個軟體生命周期中所需要的大部分工具,如UML工具、代碼管控工具、內建開發環境(IDE)等。通俗的講,是一款編譯器。

VS Code,表面上看就是在VS後面加了個Code,但是它和VS的本質截然不同。VS Code是美國微軟公司的一個項目:運作于 Mac OS X、Windows和 Linux 之上的,針對于編寫現代 Web 和雲應用的跨平台源代碼編輯器。通俗地講,VS Code是一款編輯器,也就是說它的本質是用來寫代碼的,而不是做調試和開發的。

但是,和其他文本編輯器(Atom,Sublime Text等)類似,VS Code也有豐富的插件庫。通過這些插件的配置,我們也可以在VS Code中實作代碼的編譯運作調試功能。

二、調研,評測

1. Visual Studio

使用VS運作一個demo的截圖:

BUAA2020軟工作業(五)——軟體案例分析

和相關的內建開發環境(CodeBlocks,Clion)相似,直接在代碼編輯好後一鍵運作即可。圖中可以看到VS是用的獨立的控制台進行運作。

資料量

VS軟體很大,使用基本功能大概就需要幾個G的空間,是因為它內建了很多功能,有着很完備的調試系統和測試系統。

界面

VS的預設界面看起來很亂,尤其是調試的時候,可能是因為功能多的緣故。但是我認為功能多和界面美觀二者不沖突。這方面可以對比JB公司的Clion。我在日常中絕大部分時間使用Clion,不僅界面美觀,而且個人感覺調試功能不輸VS。

如圖,VS的調試界面:

BUAA2020軟工作業(五)——軟體案例分析

如圖,Clion的調試界面:

BUAA2020軟工作業(五)——軟體案例分析

可以看到Clion在調試時會把各個變量的資訊打在變量出現的響應位置,看起來更加清晰。而且Clion有自帶的console,在運作程式的時候不會再彈出一個控制台,也改善了使用體驗。這就是為什麼我一直喜歡用Clion的原因。

功能和準确度

功能方面,VS最強大的編譯器的稱号實至名歸,功能豐富程度方面是任何其他IDE不能比的。

關于VS的幾個bug:

  1. VS的代碼靜态檢查延遲非常高,有時它會提示我們缺少了某個頭檔案,需要我們手動添加,但是當添加了以後VS要過很長時間才會取消這個提示。在我們的結對作業中,我就感受到了這種高延遲的不便,如圖:
BUAA2020軟工作業(五)——軟體案例分析

在我添加了這個UILine頭檔案後,這個vector裡面的UILine還是會報錯,隻有切換一下檔案才會變成正常格式。這裡并不是我的電腦比較卡,我的mac有16G記憶體,屬于性能比較高的那種了。是以VS在代碼靜态檢查的效率方面還有待優化。

  1. VS的Live Share插件可以說是非常難用了,有以下幾個特點:首先延遲非常高,連結上去大概要2-3分鐘,而且有可能連上去也看不到對方的檔案,而且有的時候寫着寫着代碼突然就斷連了,這樣之前寫的東西都白費了,不知道是不是需要代理伺服器的原因,但是使用起來非常不友善就是了。而且有這麼個神奇的現象:剛進共享視窗的時候,參加者的視角會随着分享者的滾動而滾動,也就是說你的滑鼠滾輪是沒有用的,分享者的視角滾動也會影響你。這個現象隻能通過手動切換到另一個檔案再切換回來才能解決。
BUAA2020軟工作業(五)——軟體案例分析

2. Visual Studio Code

但是,和其他文本編輯器(Atom,Sumlime Text等)類似,VS Code也有豐富的插件庫。通過這些插件的配置,我們也可以在VS Code中實作代碼的編譯運作調試功能。下面是我用VS Code的C/C++插件編譯運作一個C程式demo的圖檔:

BUAA2020軟工作業(五)——軟體案例分析

和VS比起來,VS Code就算是輕蠅量級的了,整個軟體隻有幾百MB,插件也非常小,并且對所有系統都支援(VS隻能在Windows上用)。

從上面圖檔可以看到VS的UI十分幹淨整潔,使用起來友善,沒有VS的花裡胡哨的功能,是我比較喜歡的編輯器的類型。

VS Code隻是一款編輯器,是以功能也不是特别豐富,在這方面是比不過VS的。由于平時我使用的不是特别多,是以也沒有發現什麼bug或是使用不友善的地方。

三、分析

以下問題隻針對VS和其中發現的bug來談。

1. 使用此服務的所有功能,估計這個軟體/網站/服務做到這個程度大約需要多少時間(團隊人數6人左右,計算機大學畢業生,并有專業UI支援)。

既然有專業UI支援,那麼我們隻考慮後端開發問題。首先VS的功能十分強大,目前我使用了大概兩個月的時間,個人估計隻使用了其中不到1/3的功能,包括代碼編寫,調試和單元測試等。因為之前寫過類C文法編譯器,以我個人的經驗來看,對于一種語言,寫一款内置編譯工具大概就需要一個多月的時間,還不能說寫的有多好。再加上調試工具,測試架構,以及對于計算機大學畢業生而言相關新知識的學習,我感覺實作最基礎的功能就得用一年的時間。其他的功能例如代碼分析,靜态檢查等也需要很久的時間才能開發出來,對于一種語言,開發時間至少在三年以上,何況VS還內建了多種語言。是以說Windows上的最強IDE的稱号VS實至名歸,需要很多資深開發專家組成團隊取開發,想要一個6人的大學畢業生團隊開發出來幾乎是不可能的事情。

2. 分析這個軟體目前的優劣(和類似軟體相比),這個産品的品質在同類産品中估計名列第幾?

優點:VS的優點就是功能非常全面,可以用來做幾乎所有的開發,這裡我們和Jetbrains公司的軟體進行對比,JB公司對于每一種語言都設計了一款對應的IDE,是以說綜合性不是很好,VS一個軟體包含了所有的功能,我們隻需要有選擇性地安裝即可。

缺點:VS的缺點也是功能太全面了,對于大部分使用者來說,一些功能幾乎是用不到的,但在安裝的時候也會被安裝進去,這就顯得VS的軟體十分龐大,是以對于大部分使用者來說會轉向VS Code或者Clion(本人Clion玩家)。這就造成了軟體普及型不是特别好。

如果要我排名的話,Clion > VS Code > VS。

3. 從各方面的問題,推理出這個軟體團隊在軟體工程方面可以提高的一個重要方面(具體建議)。

開發一個VS Lite版,像JetBrains公司那樣對于每種語言針對性地實作一個軟體,此外,UI也要能簡則簡,這樣可以很大程度上減小軟體體積,增加使用者數量。

四、建議和規劃

1. 這個軟體市場有多大?潛在的使用者有多少?

VS是這個世界上最出名的IDE,是以市場規模是世界性的,潛在使用者包括大中小軟體開發企業的工程師。但是應該沒有太多學生使用,因為它太專業了,在我了解的範圍内,大多數同學偏愛VS Code。

2. 目前市場上有什麼樣的産品了,它們的優勢劣勢在哪裡?和它直接競争的産品在哪裡?

  • Eclipse:免費開源的Java編輯器和IDE,有很好的插件機制,支援各種各樣的擴充和插件。最初是一個Java IDE。現在擴充到支C/C ++,Java、Peri、PHP、Python、Ruby以及更多的語言。
  • Code:: Blocks:免費開源的自由軟體,是一款支援高度定制跨平台IDE,并堅持所有平台上執行始終如一地的效果。對于經常在不同平台切換的開發人員而言,非常友善。它支援三種語言C、C ++和Fortran語言。優點是體積小,小型開發和學習足夠用了。缺點是功能不完備,并且UI界面太醜。
  • Xcode:Xcode是Apple出品的Mac OS X下的內建開發環境。内置一系列的工具集用于為iPad,iPhone和Mac的應用開發。Xcode是一個單窗體界面,在這個界面中控件可以很容易地與實作代碼進行連接配接。支援AppleScript、C/C ++、Java、Swift 和Objective-C。優點是沒有競争對手,開發ios和mac os應用必備,比較容易市場化。缺點是對語言和windows應用開發支援的少。
  • JetBrains:JB公司旗下有Clion,Pycharm,Idea等多款應用,每個應用支援一種語言。優點是對于一種語言的開發者來說不需要裝太多的東西,體積小,并且UI界面美觀,比較受青年開發者的喜愛。缺點是內建性不夠好,不能一個軟體使用多種語言。

3. 作為新的項目經理,這個産品的核心使用者群是什麼樣的人,典型使用者長什麼樣?學曆,年齡,專業,愛好,收入,表面需求,潛在需求都是什麼?

目前VS的核心使用者是資深軟體開發工程師,年齡30歲以上,學曆大學以上,專業是軟體開發,收入年薪20萬以上。

作為項目經理,我會開發一個Lite安裝模式,略去大部分的不常用功能進行安裝,保證正常使用。同時我會優化UI界面,使VS更年輕化。這樣的話學生黨以及對UI美觀程度要求比較高的年輕使用者也會選擇進行VS使用。這樣可以拓展使用者群體,使VS在市場上有更好的發展前景。

VS

繼續閱讀