天天看點

軟體案例分析作業

軟體案例分析作業

項目 内容
課程連結 2020春季計算機學院軟體工程(羅傑、任健)
作業要求 個人部落格作業
課程目标 了解如何創造出一個足夠好的軟體
本部落格的收獲 分析比較不同軟體的差別,提出自己的看法

第一部分 調研,評測

我選擇的軟體是CSDN的手機APP。CIT社群CSDN (Chinese Software Developer Network) 創立于1999年,緻力于為中國軟體開發者提供知識傳播、線上學習、職業發展等全生命周期服務。當在程式設計時遇到問題百度時,CSDN肯定會在頭幾個連結中出現。如果有空想向行業内的大佬學習時,CSDN也有非常多優秀的文章可供參考。目前相比所有類似網站,包括部落格園或者簡書,CSDN擁有更高的線上活躍人數。同時配合一系列的周邊擴充型領域發展,可以說CSDN是中國所有程式員交流學習的第一選擇。

1、使用10–30分鐘這個軟體的基本功能(請上傳使用軟體的照片)

軟體案例分析作業

2、描述使用這個産品的過程,解決了使用者的問題麼?軟體在資料量/界面/功能/準确度上各有什麼優缺點?使用者體驗方面有問題麼?

這個APP給人的直覺感受應該是麻雀雖小,五髒俱全。似乎設計中想把它打造成美團那樣的應用,把PC版已有功能結合自己能夠想到的所有功能全部塞在20MB的小小空間内。但問題仍然是沒有任何一技之長,每個功能都沒有做到盡善盡美。

從整體上而言這款應用滿足了普通程式員用手機的一般要求。畢竟對于程式員而言手機是打發時間而不是工作的場所,将所有功能,包括部落格、評論、問答、商城等做到沒有BUG,能夠運作已經是大體滿足要求了,但仍無法吸引核心使用者付費使用。首先廣告過多。當我想搜尋和C語言有關的内容時,彈出頁面如下所示:

軟體案例分析作業

可以看到下載下傳、問答、電子書都混在一起。并且沒有其他軟體搜尋引擎那樣的依照熱度或者日期排序等功能,總體上看上去非常的亂。同時置頂的都是水準非常差的文章,可見在搜尋環節隻是做出了功能,但沒有以使用者為導向,而是以商業為導向。

在對面試題的測試中,首先發現的是對錯題集的整理中隻是簡單的給出了正确答案,而沒有給出相關的延伸資料或者内容。死記硬背的方式顯然不利于面試者的備考環節。

軟體案例分析作業

在看完面試題後使用錯題延伸功能,本以為會有相關資料作為參考,結果給我推薦了一推廣告網課。我選擇的是系統運維類的面試,其中對LINUX入門還能了解,但我搞不懂推薦給我JAVA和Kotlin是什麼原因。似乎設計的結構隻是不加甄别的海量推選。

軟體案例分析作業

總體上而言CSDN APP解決了使用者在手機端浏覽部落格,進行學習交流的需求,同時也為平台的開發者提供了盈利的空間,為每個使用者創造了個性化的空間。功能已經齊全了,但是在細節上還有待打磨。APP的優點包括非常充分完整的功能、較高的活躍使用者數以及非常海量的部落格和資料。缺點在于相比其他同類産品,例如簡書或者leetcode的手機APP而言,CSDN APP界面和排版非常的混亂,并且摻雜了過多的商業廣告元素,導緻使用者的體驗感非常差。

我對該産品的改進意見是在手機APP上簡化不必要搜尋功能,例如在手機端的搜尋中就沒必要加入下載下傳檔案這樣必須在PC端才需要的内容,同時手機端如此海量的網課也非常多餘,我的建議是保留幾類适合在手機端浏覽的精品課程,删除必須在PC端學習的課程。同時在排版上,我認為CSDN APP可以向stackoverflow或者leetcode app學習,在部分闆塊中給出固定的格式要求,讓讀者和部落格寫作者能夠更加清晰地分享知識并交流。

總體上我對CSDN APP的評分為c),具體量化評分如下圖所示:

類别 描述 評分 (滿分 10 分, 良好 6 分, 及格 4 分,聊勝于無 1 分, 很差 -3 分)
功能 核心功能 部落格浏覽,學習交流 8
細節 有什麼為使用者考慮的細節? 小細節并不多,主界面底部按鈕展現了細節 7
使用者體驗 當使用者完成功能時,不幹擾使用者 (例如: 是否不斷彈出不相關廣告)。 大量廣告,體驗較差
輔助功能 一些輔助功能如皮膚等 無法快速找到輔助功能 6
差異化功能 這個軟體獨特的功能. 它對使用者的吸引力有多大? 活躍人數較多,相較同類APP有天然優勢 9
軟體的效能 占用記憶體, 啟動速度, 記憶體洩漏情況 占用記憶體較小,但啟動較慢,容易出現卡頓情況
體驗 軟體的适應性 PC端和移動端都能良好互動,适應性還是不錯的
成長性 記住使用者的選擇, 适應使用者的特點,使用者越用越友善 自動推薦系統薄弱
使用者有控制權 系統狀态有回報,等待時間要合适。關鍵操作有确認提示,有明确的錯誤資訊。 讓使用者友善地從錯誤中恢複工作, 快捷操作鍵可調整。 退出操作為例,并沒有任何提示,導緻多次誤退出
自選 自選評分項目 内容品質參差不齊,差别較大

3. BUG報告

給出我使用CSDN APP的幾個BUG:

1、第一項應該不算BUG,但屬于重大的設計缺陷。在修改個人生日時不能直接輸入指定的日期,隻能從目前日期倒回。在倒回時隻能以月為機關進行倒回,不能以年為機關進行倒回。總體操作非常繁瑣,修改操作花費時間非常長。

軟體案例分析作業

2、在浏覽部落格評論區的時候我發現所有部落格評論區的連結都是以以下方式給出,沒有給出完整域名,同時在跳轉時也沒有知乎那樣的危險提示頁面。如果有不法分子在評論區放置一個釣魚網站很容易導緻使用者中招。

軟體案例分析作業

第二部分 分析(參考8.6節對工作的估計,和14.1節軟體工程的品質)

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

個人認為所需時間必定會在5個月以上。本APP雖然品質并不高,細節打磨也并沒有做到完善,但是APP功能非常繁多複雜,個人推算開發者需要解決的問題包括對于使用者個人應用需求的滿足,對于部落格内容的廣泛整理以及分類,搜尋引擎的建立,對于網課和視訊的支援,廣告的布局,個人動态以及關注的釋出和建立以及付費使用者和非付費使用者的不同功能差別以及充值環節。其中不同的功能之間也存在着互動行為,需要在開發完成之後進行大量DEBUG操作。同時CSDN資料量和日均使用者數非常的龐大,作為大量程式設計者使用的論壇,CSDN的安全性也需要得到郵箱的保障。而作為計算機大學畢業生,我認為在正式開發之前每個人最少都需要3周時間重新學習對于大型APP開發的相關知識。是以5個月時間隻是保守估計,個人認為時間可能會更多。6個人的團隊之中如果沒有一個好的架構師,可能會因為大量的錯誤和漏洞導緻軟體品質較低。

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

經過個人的調研,同類産品主要包括簡書APP,部落格園APP以及leetcode APP。簡書APP相較于CSDN而言,内容更傾向于精品化,排版布局也更加的優秀。但CSDN優勢在于隻聚焦于服務計算機類部落格,而簡書覆寫面則較廣,無法成為碼農們的第一首選。部落格園APP與CSDN同樣專注服務于程式員,但是部落格園體量明顯較小,缺少論壇等配套服務,隻聚焦于部落格内容,并且在細節功能上不如CSDN APP,多為學生在應用,缺少大牛的支援。而leetcode作為新興的APP,優勢在于對于算法領域的專注化,但和CSDN相比問題較多,包括活躍人數的極度缺失以及APP功能仍然不夠完善。總體而言,這類APP更像是作為網站的複制而存在,而不是緻力于在手機端實作PC端所不具備的更多應用,是以總體使用品質都不太高。相較于其它APP而言,CSDN有着較大的體量以及非常高的活躍人數,是以我估計CSDN APP在同類産品中能夠名列第一。

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

我認為該應用可以在準确性和易用性兩個方面提高。

  • 準确性:在搜尋中删除所有和下載下傳相關的内容(對手機端沒有太多意義),同時改善推薦系統。例如在推薦課程時能夠通過最近的搜尋記錄推薦幾門精選的課程,而不是固定的羅列幾百門對使用者毫無用處的課程。
  • 易用性:适當減少廣告,使頁面更加整潔,友善使用者直接擷取有用資訊。同時增加改善使用者體驗的功能,例如退出應用時的提示,以及跳轉時的安全警告,更好地服務使用者。

4、你在第一部分發現的bug,為何軟體團隊不能在釋出前修複?他們是不知道,還是有意不修複?你覺得是什麼原因?

我認為我發現缺陷沒被修複的最主要原因是軟體團隊對于細節處理的缺失導緻缺陷産生。例如生日設定以及網頁連結的羅列,我認為開發團隊的想法是隻需要快速實作這類功能就萬事大吉,将主要精力投入在部落格以及付費闆塊的開發中。與其花費更多時間打磨程式,不如開發更多花哨的功能吸引更多使用者。

第三部分 建議和規劃(參考《建構之法》第8章功能的定位和優先級;第9章項目經理)

  • 首先,市場有多大?潛在的使用者有多少?

據不可靠的資料統計,我國的程式員人數大約為200萬人左右,但是與計算機相關聯的,包括各類理工科學生以及行業從業人數保守估計3700萬人左右。而2011年注冊人數官方宣布為600萬人,目前保守估計為1000萬人左右。由此可見市場和潛在的使用者數量依然是非常龐大的。

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

内容請參照第二部分第二點的回答

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

屬性 學生 IT從業者
學曆 大學、專科及以上 大學、專科或社會機構畢業人士
年齡 20-25 23-40
專業 計算機類 JAVA、PYTHON具體開發類
愛好 學習 提升技術實作跳槽和加薪
收入 我無 7000k+
表面需求 初步走入IT社會,學習他人經驗 解決工作中遇到的問題,尋求志同道合的朋友
潛在需求 DEBUG,找到BUG原因 擷取更優秀開發者的工作經驗,把握行業方向
  • 如果你有錢可以招聘6個人,有4個月的時間,你作為項目經理,應該如何配置角色(開發,測試,美工等等)?描述你的團隊在16周期間每周都要做什麼,才能在第16周如期釋出軟體的改進版本,并取得預想中的成績。

    配置:1位PM,2位美工,2位程式開發人員以及1位測試人員。

    第1-2周:進行項目需求分析。由6人共同參與。由于PC端已經實作了大量的功能,是以需求分析的關鍵在于哪些功能可以被移植到移動端,哪些功能需要删除。

    第3-4周:進行UI設計。由PM和2位美工參與。第一個關鍵點,将内容從PC端移植到移動端後排版的分布。第二個關鍵點是對于軟體提供的功能如何将它們合理地分布在程式中。最後一個關鍵點是如何合理地植入廣告内容。

    第5-10周:開始APP開發階段。由PM和2位程式開發人員參與。總體上分為2個階段。第一個階段在于整個程式的總體架構,包括邏輯分塊,接口定義,評估各部分實作所需的人手和複雜度。第二個階段開始正式的程式設計。在寫代碼的同時也要對需求部分以及規劃部分做出及時回報,報告無法實作的部分,重新調整需求或者重新規劃。

    第11-14周:測試階段。由PM,2位程式開發人員和測試人員參與。作為功能繁多的程式,測試環節非常重要,所要花費時間也較多。主要進行DEMO測試和壓力測試。DEMO測試包括對于新增加子產品功能,以及老的子產品功能可用性測試。壓力測試通過人為增加大量資料通路,看看APP的部落格通路等功能會不會因為新增功能的原因出現崩潰。

    第15-16周:試運作階段。由1位美工,1位開發人員,1位測試人員以及PM參與。将APP版本小規模釋出,讓部分核心使用者搶先體驗産品。在進一步彙報BUG的同時結合使用者回報對一些細節部分重新調整,并重新測試。