天天看點

軟體案例分析

項目 内容
課程 軟體工程
作業 軟體案例分析
我在這個課程的目标是 開發出足夠好的軟體
這個作業在哪個具體方面幫我實作目标 分析軟體優劣的能力

第一部分 調研,評測(軟體的bug,功能評測,黑箱測試,第8章使用者調研,12章軟體的使用者體驗)(必答)

分析的軟體是Visual Studio、VS Code。

調研

Visual Studio是一個內建開發環境,它包括了整個軟體生命周期中所需要的大部分工具,如UML工具、代碼管控工具、資料庫內建、伺服器設定等。

visual studio code是一個輕量級的源代碼編輯器,主要針對檔案而不是項目。

使用截圖

--Visual Studio

軟體案例分析

--vs code

軟體案例分析

功能性bug

  1. 代碼補全功能不友善。vs中出現如下圖所示的補全提示不能通過enter鍵自動補全(候選項為藍色邊框)。
軟體案例分析

需要候選項全部變藍才可以,如下所示。到達這一步需要使用鍵盤中的箭頭上下選擇或者滑鼠選中,筆者認為選中這一步有些多餘,應該在上圖的狀态就能補全,否則會誤導使用者直接敲擊enter反而變成換行。

軟體案例分析
  1. 調試按鈕的位置。

調試中會反複按“逐語句”按鈕,它位于頂部狀态欄,很小容易點錯;調試資訊位于底部,經常要點開檢視類的成員狀态。于是調試的時候一上一下比較費勁。

軟體案例分析
  1. 調試斷點的位置。

第一次使用斷點時,我憑直覺認為斷點在黃色箭頭所指區域。實際在更外圍,而且斷點的背景顔色和視窗狀态欄一緻(發灰色),會讓使用者以為是視窗邊框。

軟體案例分析
  1. 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就會覺得麻煩。

  1. 微軟 Visual Studio(VS)

    VS支援建立各種類型的程式,包括從桌面應用、Web應用、移動APP、到視訊遊戲。它支援多達36種不同的程式設計語言。

  2. NetBeans

    NetBeans是一個免費開源的Java內建的開發環境軟體,主要用于Java開發。适

  3. PyCharm

    PyCharm是著名的PythonIDE,有知名的IDE開發商JetBrains出品。

  4. IntelliJ IDEA

    由Jet Brains出品的另外一款IDE。主要用于JAVA開發,內建了廣泛的工具,可以用于Web和安卓移動應用程式開發。

  5. 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,優化美工。