項目 | 内容 |
---|---|
課程 | 軟體工程 |
作業 | 軟體案例分析 |
我在這個課程的目标是 | 開發出足夠好的軟體 |
這個作業在哪個具體方面幫我實作目标 | 分析軟體優劣的能力 |
第一部分 調研,評測(軟體的bug,功能評測,黑箱測試,第8章使用者調研,12章軟體的使用者體驗)(必答)
分析的軟體是Visual Studio、VS Code。
調研
Visual Studio是一個內建開發環境,它包括了整個軟體生命周期中所需要的大部分工具,如UML工具、代碼管控工具、資料庫內建、伺服器設定等。
visual studio code是一個輕量級的源代碼編輯器,主要針對檔案而不是項目。
使用截圖
--Visual Studio
--vs code
功能性bug
- 代碼補全功能不友善。vs中出現如下圖所示的補全提示不能通過enter鍵自動補全(候選項為藍色邊框)。
需要候選項全部變藍才可以,如下所示。到達這一步需要使用鍵盤中的箭頭上下選擇或者滑鼠選中,筆者認為選中這一步有些多餘,應該在上圖的狀态就能補全,否則會誤導使用者直接敲擊enter反而變成換行。
- 調試按鈕的位置。
調試中會反複按“逐語句”按鈕,它位于頂部狀态欄,很小容易點錯;調試資訊位于底部,經常要點開檢視類的成員狀态。于是調試的時候一上一下比較費勁。
- 調試斷點的位置。
第一次使用斷點時,我憑直覺認為斷點在黃色箭頭所指區域。實際在更外圍,而且斷點的背景顔色和視窗狀态欄一緻(發灰色),會讓使用者以為是視窗邊框。
- vs2019某一版本,生成的單元測試項目無法#include "CppUnitTest.h",我在完成作業的時候遇到這個問題,重新下載下傳目前最新版以後這個問題被修複了。這個問題是Microsoft.Cpp.UnitTest.props這一檔案位置的錯誤造成的。
使用這個産品的過程,解決了使用者的問題麼?軟體在資料量/界面/功能/準确度上各有什麼優缺點?使用者體驗方面有問題麼?
visual studio和vs code能滿足開發者的需求。
我認為visual studio産品對使用者體驗思考的很細緻,是IDE界的翹楚,隻是有些小地方顯得考慮過度。另外,功能強大帶來的一個弊端是運作起來非常慢,容易卡死。
visual studio的優點是代碼自動調整格式,節省了程式員調整格式花費的大量時間。visual studio也有特别豐富的拓展子產品,從代碼分析插件,到ui設計子產品一應俱全。
vs code也有一些visual studio不能取代的功能,比如它的可移植性更好,可以在linux和ios上使用。vs code還有連接配接遠端伺服器的插件,比使用xshell友善很多。
對産品有什麼改進意見?
visual studio的ui可以根據使用者的操作習慣做一些優化。使用過程中,我覺得visual studio的編譯器報錯不夠準确,展現在錯誤資訊名稱比較寬泛,以及錯誤定位不準。我把代碼從自己的vs複制到别的編譯器,或者vs其他版本,會出現不同的報錯,反而給我更準确的錯誤提示,為我找bug提供了很多線索。
給這個軟體下一個評價:
我非常推薦visual studio和vs code,它作為一個明星産品持續接受着使用者的檢驗,長久以來吸納各方的意見,更新疊代的速度很快。
具體評分
類别 | 描述 | visual studio評分(10) | vs code評分(10) |
---|---|---|---|
核心功能 | 功能設計和品質。 | 10 | 9 |
細節 | 有什麼為使用者考慮的細節? | 8 | |
使用者體驗 | 當使用者完成功能時,不幹擾使用者 (例如: 是否不斷彈出不相關廣告)。 | ||
輔助功能 | 一些輔助功能如皮膚等 | ||
差異化功能 | 這個軟體獨特的功能. 它對使用者的吸引力有多大? | ||
軟體的效能 | 占用記憶體, 啟動速度, 記憶體洩漏情況 | 7 | |
軟體的适應性 | 在聯網/斷網, 大小螢幕, 沒有滑鼠的情況下都可以順暢操作. 和不同平台的軟體能流暢協作 | ||
成長性 | 記住使用者的選擇, 适應使用者的特點,使用者越用越友善 | ||
使用者有控制權 | 系統狀态有回報,等待時間要合适。關鍵操作有确認提示,有明确的錯誤資訊。 讓使用者友善地從錯誤中恢複工作, 快捷操作鍵可調整。 | ||
上手難度 | visual studio面對項目的開發方式增加了上手難度。 |
第二部分 分析(參考8.6節對工作的估計,和14.1節軟體工程的品質)
使用此服務的所有功能,估計這個軟體/網站/服務做到這個程度大約需要多少時間(團隊人數6人左右,計算機大學畢業生,并有專業UI支援)。(必答)
visual studio
visual studio是一個支援了軟體開發過程幾乎所有需要的內建開發環境,我認為6人團隊是不可能完成旗鼓相當水準的産品的。visual studio是一個持續版本疊代的産品,需要花費大量時間設計項目結構,書寫文檔,來為後期的需求提供增量開發的接口。實作一個擁有基本功能和美觀界面的普通IDE,我估計至少需要一個6人團隊五年時間。在此基礎上實作擴充功能,完善細節,打磨成擁有核心競争力的出色IDE還需要幾年。但市場的機會稍縱即逝,開發VS需要更龐大的團隊。
vs code
通過調研vs code真正的開發團隊是二十多人,他們專注于核心功能的開發,為使用者提供簡介流暢的體驗,豐富的功能由第三方插件提供,是以vs code的架構還比較簡單。我估計6人團隊需要兩年時間來開發。
分析這個軟體目前的優劣(和類似軟體相比),這個産品的品質在同類産品中估計名列第幾?(必答)
我比較熟悉的世界頂級IDE有以下這些,我覺得VS可以排在首位。它的優點是支援的程式設計語言最多,不給使用者名稱上的暗示。而且VS有一個強大的開發團隊在持續疊代,很關注使用者體驗。一旦習慣了VS的格式自動修改,再用其他IDE就會覺得麻煩。
-
微軟 Visual Studio(VS)
VS支援建立各種類型的程式,包括從桌面應用、Web應用、移動APP、到視訊遊戲。它支援多達36種不同的程式設計語言。
-
NetBeans
NetBeans是一個免費開源的Java內建的開發環境軟體,主要用于Java開發。适
-
PyCharm
PyCharm是著名的PythonIDE,有知名的IDE開發商JetBrains出品。
-
IntelliJ IDEA
由Jet Brains出品的另外一款IDE。主要用于JAVA開發,內建了廣泛的工具,可以用于Web和安卓移動應用程式開發。
-
Eclipse
被廣泛應用的免費開源的Java編輯器和IDE。可以靈活的适用于初學者和專業人。
你在第一部分發現的bug,為何軟體團隊不能在釋出前修複?他們是不知道,還是有意不修複?你覺得是什麼原因?
對于ui的問題,可能是VS團隊對使用者偏好掌握的不好。開發者和使用者有時候是兩個不同的視角,比如那個代碼補全的功能,在IDE檢測出候選單詞的時候,使用者也有可能敲enter就是需要換行而不是補齊,是以設計的時候等使用者選中才能補齊。但我在使用中絕大多數都需要補齊,再選一下有些磕絆。
對于那個Microsoft.Cpp.UnitTest.props檔案位置出錯導緻單元測試項目無法#include "CppUnitTest.h"的問題,應該是開發人員粗心了。
第三部分 建議和規劃(參考《建構之法》第8章功能的定位和優先級;第9章項目經理)
首先,市場有多大?潛在的使用者有多少?
我檢視了全世界軟體開發人員的數量:
埃文斯資料公司(Evans Data Corporation) 2019最新的統計資料(原文)顯示,2018年全球共有2300萬軟體開發人員,預計到2019年底這個數字将達到2640萬,到2023年達到2770萬。
這些人(軟體開發從業者)都是潛在使用者,應該大多數都接觸過VS,但使用頻率不一定最高。除了從業者,還有計算機相關專業的學生教師,其他行業也需要跨界開發的人。我認為潛在使用者超過了千萬。
作為新的項目經理,這個産品的核心使用者群是什麼樣的人,典型使用者長什麼樣?學曆,年齡,專業,愛好,收入,表面需求,潛在需求都是什麼?
核心使用者群是從事軟體開發的人,貌似使用.net和c類語言的人最多。
大部分學曆在大學以上,也有其他學曆的程式設計愛好者。年齡在20-45歲,計算機、軟體工程專業為主,愛好程式設計(或許二次元?),男性比例遠超于女性,收入較高。
表面需求是找到一款好用的IDE,有符合審美的ui。程式設計學習者比較重視輕便性,易用性,從業者重視功能性,插件豐富性等等。潛在需求是在IDE上高效、正确地完成任務,減少環境配置帶來的問題。
如果你有錢可以招聘6個人,有4個月的時間,你作為項目經理,應該如何配置角色(開發,測試,美工等等)?描述你的團隊在16周期間每周都要做什麼,才能在第16周如期釋出軟體的改進版本,并取得預想中的成績。
1-2周:
需求分析,架構設計(2人)開發(4人)
3-10周:
開發(4人)美工(2人)
11-16周:
開發(2人)測試(2人)美工(2人)
我認為前兩周要明确開發的方向,設計好需要實作的功能,代碼架構和前後端的接口。然後前、後端一起開工用8周時間開發。美工嚴重影響使用者體驗,是以一直安排兩人把關。最後6周,測試人員開始測試,前後端對接,修改bug,優化美工。