[I.2] 个人作业:软件案例分析

项目 内容
这个作业属于哪个课程 <2025年春季软件工程>
这个作业的要求在哪里 <[I.2] 个人作业:软件案例分析>
我在这个课程的目标是 学习软件工程的理论,将理论与实际相结合,提升系统思维的能力
这个作业在哪个具体方面帮助我实现目标 通过对于其他成熟软件的分析,学习软件

软件评测

软件使用

1.软件选择

本次作业选择了一款由个人开发的开源音乐播放软件MusicPlayer2,这是我个人经常使用的PC端的本地音乐播放器。

2.软件使用

MusicPlayer2的功能十分强大,不仅有基本的音乐播放功能,还能自动为本地歌曲添加标签,封面和歌词等。MusicPlayer2是一款集音乐播放、歌词显示、格式转换等众多功能于一身的音频播放软件。

  • 音乐播放

这是MusicPlayer2的最基础功能。播放界面的工具栏有多种功能,从左到右依次是循环模式,设置,音效设定,皮肤设置,音乐信息,查找歌曲,深浅色模式切换,段落重复,歌词翻译,以及桌面歌词。

音乐播放页面

  • 桌面歌词

MusicPlayer2也支持桌面歌词,可以通过桌面歌词直接控制歌曲的播放,也可以改变桌面歌词的皮肤。

桌面歌词

  • 下载歌词

MusicPlayer2支持为本地的歌曲下载歌词,并且显示在播放器中。下载的歌词既可以是一个单独的歌词文件,也可以是内嵌到歌曲文件里。下载的歌词来自于网易云音乐。

下载歌词

  • 下载标签

MusicPlayer2支持为本地的歌曲下载标签信息,包括歌手,专辑,流派等信息,也可以通过此功能为歌曲添加封面图片。

下载标签

  • 统计功能

MusicPlayer2支持统计功能,可以查看歌曲的播放时长和次数

统计功能

  • 外观设置

MusicPlayer2支持外观的设置,包括简单的图标设置以及播放音乐时的标题栏设置。对于进阶玩家,MusicPlayer2也支持自定义页面,只需要在文件目录下的skin文件夹里新建并且编写一个xml文件,就可以来配置用户界面。

外观设置

3.软件分析

在初次使用软件时,需要先导入本地的歌曲,然后即可进行播放。用户可以下载歌词,添加标签,添加播放列表等,也可以自定义播放的界面。

对于有能力找到并下载歌曲文件玩家,MusicPlayer2作为一个本地播放器,拥有的功能已经足以满足用户的需要。但是另一方面,MusicPlayer2无法满足在线交流的需要,也没有用户社区(Github可能勉强算用户社区),无法看到歌曲的评论,无法第一时间听到最新的歌曲,不少功能都需要自己配置。MusicPlayer2的基本功能已经足够优秀,但是默认的界面并不好看,需要自己修改,乃至于自己修改配置文件。

4.改进意见

目前的在线下载歌词功能是调用网易云音乐的api,对于某些歌曲来说会出现找不到歌词的情况,如果可能的话希望能增加一些其他源。软件的UI有一点不符合大众的审美,希望能进行更多的美化。

5.用户调研

我的采访对象为使用MusicPlayer2至少两个月以上的朋友,她对于这款软件有着自己的看法。她使用过多种音乐软件,深知不同音乐软件的特点,因此选择她作为被采访的对象。

  • 采访内容

采访图片

6.评测结论

非常推荐。
MusicPlayer2可以说是一个小而美的软件,在播放音乐这一功能上几乎做到了极致。

Bug 分析和提交

Bug1

测试环境

操作系统: Windows 11 23H2
软件版本: V2.77.1

具体情况描述

在切换到深色模式过程中,只有歌词界面会变成深色,而软件本身的状态栏和播放列表不会发生变化。

如图所示,此时为深色模式。

bug1

可复现性

必然发生

Bug分析

  • 可能成因:在进行状态栏和播放列表的前端设计时,软件可能使用了模块化的设计,不同界面的主题管理是分开处理的。歌词界面的深色模式实现可能是独立的,而状态栏和播放列表的主题切换逻辑未被正确绑定或调用。

  • 严重程度:★★✰✰✰

  • 未修复原因:可能是不同模块的重新统一工作量比较大,开发者没有动力进行修改

Bug改进建议

开发者可以检查使用的UI框架文档,确保正确实现深色模式支持。

Bug 反馈

已经向开发者提供了反馈。

反馈

反馈链接

Bug2

测试环境

操作系统: Windows 11 23H2
软件版本: V2.77.1

具体情况描述

MusicPlayer2 预设了几种界面,切换到其中的test页面并且使用小窗口时,会发生按钮的重叠,当最大化以后,不会发生这样的问题。

如图所示,此时为正常窗口状态,歌词界面右上角的按钮会重叠。

bug2

Bug分析

  • 可能成因:在前端设计时,可能是软件的各种组件使用了固定的布局方式,而没有根据窗口的变化而动态调整。

  • 严重程度:★★★✰✰

  • 未修复原因:可能是考虑到不同设备的适配性问题,不容易做到统一的组件样式

Bug改进建议

开发者可使用自适应布局管理器,确保按钮位置随窗口大小动态调整。

软件分析

工作量分析

12个月左右。

经过工具分析,此项目的代码共有20万行左右,使用C++编写。在敏捷开发的流程下,实现各个功能大概需要12个月。

软件质量分析

同类对比

MusicPlayer2 是一款比较小众的本地音乐播放软件,在这里和一款十分流行的在线音乐服务平台-网易云音乐进行对比。

特性 MusicPlayer2 网易云音乐
主要用途 本地音频播放、歌词显示、格式转换 在线音乐流媒体、社交互动、音乐下载
支持的音频格式 几乎所有常见格式(基于BASS库) 广泛支持(在线格式为主,如MP3、FLAC等)
在线流媒体 不支持 支持(核心功能)
本地播放 支持(核心功能) 支持(需下载后)
歌词支持 支持显示、卡拉OK样式、在线下载 支持显示、同步、评论互动
界面自定义 主题颜色支持 支持主题、个性化推荐界面
频谱分析 支持 支持
音效设置 支持 支持(均衡器、音效增强)
社交功能 支持评论、分享、关注用户
音乐库规模 依赖用户本地文件 超1亿首歌曲、34亿播放列表
下载功能 不适用(本地播放器) 支持(部分需付费)
轻量级 是(约3MB压缩,8-10MB解压) 否(安装包较大,功能丰富)
操作系统 Windows(XP及以上) Windows/Mac/Android/iOS
便携性 默认便携(配置保存为INI文件) 无(需安装或登录使用)
格式转换 支持 不支持
开源性 是(GPL-3.0) 否(商业软件)
收费模式 免费 免费+付费订阅(增值服务)
社区活跃度 较低(GitHub维护) 高(8亿+注册用户,活跃社区)
AI功能 支持(AI推荐、音乐创作工具如天音)

以上借助了AI大模型的帮助。

改进建议

MusicPlayer2的产品质量在本地音乐播放器的市场上可以说是数一数二,在Github上有相当良好的口碑。
对于开发者来说,由于MusicPlayer2是由一个人开发的软件,所以更新频率会比较慢,几乎每隔一年才会有一次更新。这对于广大用户来说不是一个好消息。如果MusicPlayer2能扩大一下开发者团队,显然会更好一点。

建议和规划

市场现状

目前喜欢听音乐的人越来越多,各家音乐播放器打起了价格战,版权战以吸引新的用户。实际上,现在的音乐播放器市场已经饱和,基本上形成了QQ音乐,网易云音乐,酷狗音乐三分天下的局面,这三家音乐软件为了留住老用户,吸引新用户,开始在软件的个性化下功夫,并且纷纷引入新功能,逐渐形成一个成熟的用户社区。
而本地音乐播放器则截然相反。流媒体音乐占据了89%以上的收入份额,成为市场核心。本地播放器用户数量难以统计,主要集中在对音质、离线播放有需求的用户群体,难以与流媒体竞争。

所以MusicPlayer2真正的竞争对手是其他本地音乐播放软件,主要就是系统自带的音乐播放器。MusicPlayer2相比起来显然拥有更多的功能。

市场与产品生态

MusicPlayer2 这样的本地播放器主要服务于注重音质、不依赖网络、或希望离线管理的用户。这些用户希望自己对于音乐有更高的控制权,不希望自己被数据追踪,所以更加偏爱本地播放器。

对于在线的的流媒体音乐播放器,由于版权问题,可能会出现“数字难民”群体,这为本地音乐播放器的生存提供了空间。

MusicPlayer2 的用户群体不存在专门的社区,而是主要集中在Github中,多为技术爱好者,会向开发者提供反馈,在Github中形成自己的社区。有时也能参与到软件的开发过程中。他们会向开发者提供捐赠,这也是开发者的收入来源之一。

产品规划

NABCD分析

  • 需求(Need):用户需要更好看的界面,并且希望自定义软件的皮肤
  • 解决(Approach):开发一款全新界面,并且支持用户修改皮肤
  • 利益(Benefit):增加更多技术爱好者,吸引来自流媒体播放器的用户
  • 竞争(Competitor)MusicPlayer2 在本地播放的领域几乎不存在竞争,只需要继续深耕就好了
  • 落地(Delivery):在Github上进行发布和部署

团队角色配置(6人)

角色 人数 职责
UI/UX 设计师 1 负责界面设计、用户体验优化、视觉风格确定
前端开发 2 实现新界面设计,优化交互逻辑,
后端开发 1 维护核心功能(音频播放),支持前端集成新界面
测试工程师 1 利用自动化工具功能测试、界面测试、性能测试,确保无 Bug 和崩溃
产品经理 1 需求管理、进度协调、用户反馈收集,兼顾流程管理)

详细规划:

(以下部分使用大模型)

需求分析与界面设计

周次 任务 负责人
第 1 周 通过Github收集用户反馈,定义界面改进需求 产品经理
研究竞品界面风格 UI/UX 设计师
第 2 周 设计初步界面草图,确定设计风格 UI/UX 设计师
确定技术栈,明确现有框架是否支持新设计) 前端开发+后端开发
第 3 周 完成设计稿,包括主界面、设置页、播放器视图 UI/UX 设计师
需求评审,确认设计与开发对接 全体
第 4 周 设计可自定义主题方案 UI/UX 设计师
开始前端基础准备,并且开始搭建新界面框架 前端开发

核心界面开发

周次 任务 负责人
第 5 周 开发新主界面(播放器视图、歌曲列表) 前端开发
检查后端接口兼容性 后端开发
第 6 周 开发设置页面和主题切换功能 前端开发
初步测试主界面功能,检查有无bug 测试工程师
第 7 周 优化交互体验,优化动画效果、响应速度 前端开发
后端支持新界面数据加载 后端开发
第 8 周 对主界面和设置页测试,收集内部反馈 测试工程师+产品经理

细节优化与扩展

周次 任务 负责人
第 9 周 添加歌词视图次级界面 前端开发
设计至少 3 种风格的主题 UI/UX 设计师
第 10 周 实现主题切换逻辑和额外主题 前端开发
测试次级界面和主题切换 测试工程师
第 11 周 优化性能,提高启动速度 前端开发+后端开发
用户体验测试 测试工程师+产品经理
第 12 周 修复Bug,准备 Beta 版 全体

测试与发布

周次 任务 负责人
第 13 周 发布 Beta 版至 GitHub,收集社区反馈 产品经理
全面测试 测试工程师
第 14 周 根据 Beta 反馈修复 Bug,优化界面细节 前端开发+后端开发
更新文档和发布说明 产品经理
第 15 周 进行最终测试,进行回归测试、压力测试 测试工程师
打包发布版本 前端开发+后端开发
第 16 周 正式发布至 GitHub,进行新版本的宣传 产品经理
收集发布后反馈,规划后续迭代 全体
posted @ 2025-03-15 15:46  starz1027  阅读(46)  评论(0)    收藏  举报