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

个人作业:软件案例分析

项目 内容
这个作业属于哪个课程 2025年春季软件工程(罗杰、任健)
这个作业的要求在哪里 个人作业:软件案例分析
我在这个课程的目标是 通过学习和团队合作,了解敏捷开发流程。提高个人编码素养,掌握软件工程的核心概念和方法。
这个作业在哪个具体方面帮助我实现目标 通过分析市面上存在的典型软件,了解做好一个软件是怎样的。明确了软件开发流程中应该注意的细节,提高自身对软件评价方面的理解。

调研,评测

软件评测

Gitee 是中国领先的代码托管和协作开发平台,类似于 GitHub,专为开发者提供代码托管、项目管理、代码审查、持续集成等服务。它支持 Git 和 SVN 版本控制系统,并提供丰富的开源项目资源。Gitee 还具备企业级功能,如私有仓库、团队协作工具和安全防护,适合个人开发者、团队和企业使用。平台致力于推动开源生态发展,拥有活跃的开发者社区,帮助用户高效管理代码和项目,提升开发效率。

使用

个人主页和仓库管理功能:
登录后,网页会默认进入“我的”页面,展示近期个人对仓库的操作记录,例如代码提交、合并请求等。用户可以通过该页面快速了解自己的开发动态。

进入仓库后,用户可以选择创建仓库或创建分支,以便更好地管理和保存代码。仓库管理页面提供了清晰的操作指引,支持代码的上传、下载、版本控制等功能。

Display 1 Display 2 Display 3

团队协作和项目管理功能:
对于需要团队合作的项目,用户可以创建或加入组织,通过组织管理团队成员和项目权限。平台内置的 Issue 功能 支持任务分配、问题讨论和进度跟踪,帮助团队高效协作。

流水线功能:
平台的流水线功能可以帮助用户批量处理代码,例如自动化测试、构建和部署。通过配置流水线,用户可以显著提升开发效率,减少重复性工作。

开源项目搜索:
用户可以通过开源页面搜索和浏览开源项目,了解最新的技术趋势和优秀实践。平台提供了丰富的开源资源,方便开发者学习和参与开源社区。

Display 7

企业版和教育版:
由于个人用户权限限制,无法体验企业版和教育版的功能。企业版通常提供更高级的团队管理、安全防护和定制化服务,而教育版则专注于为师生提供教学和科研支持。

软件分析

使用流程:

注册并开通账户后,用户可通过个人主页设置 SSH 公钥,实现本地与远端平台的连接。可将本地须管理的项目push到远端仓库,并通过网页进行代码的管理。
同时也可以在线创建仓库,默认分支为 master。支持代码的上传、下载、版本控制等操作,当遇到冲突时,gitee可以在线辅助完成代码的合并。
创建组织,并邀请成员加入,实现团队协作项目。组织管理员可以管理成员权限和项目设置。当团队需要解决问题,设置目标,可通过 Issue 功能 进行任务分配、问题讨论和进度跟踪,提升团队协作效率。
额外在主界面如果有兴趣,可以通过 开源 页面搜索和浏览开源项目。支持参与开源社区,贡献代码或提出改进建议。

用户需求:

  • 对于个人开发者,平台提供了完善的代码托管、版本控制和项目管理功能。

  • 对于团队协作,Issue 功能和组织管理能够有效提升沟通效率和任务跟踪能力。

  • 对于开源爱好者,平台提供了资源和社区支持。

局限性:
本意是对新手中文开发者使用的平台,但是功能很多是对github的借鉴,没有对功能做出统协,存在割裂感。对于新手来说,可能有些功能并不熟悉,会造成使用上的困难。

维度 优点 缺点
数据量 - 支持小规模和大规模代码托管,适合学生个人开发者和中小型团队。 - 对于超大规模项目,可能会遇到性能瓶颈或存储限制。
界面 - 界面主体为中文,操作流畅,适合新手中文开发者。 - 部分功能入口较深,新手可能需要时间熟悉。而且存在对个人开发者无用的广告页面,影响用户体验
功能 - 提供较为全面的代码管理、团队协作和自动化工具。 - 高级功能(如企业版)需要付费,个人用户无法体验,申请流程繁琐。
准确度 - 代码版本控制和合并操作准确度高,操作较为简便。 -
用户体验 - 用户体验良好,支持多设备访问,文档齐全。 - 部分功能(如流水线配置)对新手不够友好,学习曲线较陡。

改进意见

  • 仓库管理页面,增加对代码的搜索功能,方便用户快速定位代码。
  • 提供无广告模式面向诸如学生个人开发者,可以更加方便地使用平台。

用户调研

本次采访了另一个班级的zpy同学,作为一名计算机学院的学生,常使用gitee作为团队开发项目的代码托管平台,对于其中的组织管理和个人仓库功能使用很多,符合平台的典型用户。此外,zpy同学之前使用过其他的代码托管平台,对他进行采访,可以获取到学生用户的真实体验。

ykq:
是否遇到了用户体验不好的地方(如账号记录时间不够长,需要频繁登录)?
zpy:
个人主页中的个人仓库不在最显眼的位置(最显眼的位置是动态);中英文混杂,一些英文原生的单词翻译成中文很奇怪;在浏览开源项目时不需要登录,而查看这些项目的提交时又要求登录;设置issue后没有邮件提醒。
ykq:
是否遇到了用户体验不好的地方(如账号记录时间不够长,需要频繁登录)?
zpy:
利于开发的部分:速度快;克隆仓库时给出了完整的命令(包含“git clone ”)
ykq:
是否遇到了用户体验不好的地方从你的需求来说,你觉得哪些功能需要改进?
zpy:
希望流水线有详细的教程和更友好的界面

bug分析与提交

测试环境与条件

windows11家庭版,Microsoft Edge版本 134.0.3124.66 (正式版本) (64 位).在创建仓库命名时,发现无法创建,提示“同地址仓库”,无法创建。

满足特定条件发生:由于仓库的命名影响着url的生成,gitee对于中文一般采取翻译成英文。当采取中文不同而翻译相同时,会导致仓库的url生成重复。复现流程为,登录gitee后,点击右上角加号,后选择创建仓库,选择如鹤,起重机等翻译相同的仓库名,点击创建,之后就会触发yield提示“同地址仓库”,无法创建。

Bug描述

仓库对于中文名的翻译处理,导致仓库的url生成重复。例如“世宁”和“闪耀着”两个毫不相关的中文名,一个采取拼音翻译,另一个采用英文,生成“shi'ning”和“shining"同样的url.

Bug分析

仓库的url生成规则为:用户名+仓库名+,由于url不支持中文,将会翻译成英文,导致生成重复的url。对于可以翻译成中文的,将会翻译成英文,这样会导致一部分在英文下同名仓库的url生成重复。而且由于翻译功能的弱化,无法识别如"世宁"的含义,导致生成的url和实际意义不符,进而又造成了重复命名。

由于这种翻译错误导致的重复,会造成如下影响:

  • 仓库的url重复,影响了用户的使用体验。
  • 为了避免命名重复,会造成命名混乱,影响了项目的管理。
  • 重要的专有命名可能会因为特殊原因被抢占。
  • 翻译的不准确可能会导致不了解人员对于项目的认知。

软件团队考虑不周,开发者毕竟不是专门的翻译人员,可能选择依赖于第三方翻译软件或是已有的简便翻译工具,没有选择更为高级准确的翻译工具。在之后为了解决问题,给用户开放了自主命名url的权限,来避免重复命名url无法创建的问题。

Bug解决方案

-将仓库名的翻译规则优化,使其更准确,避免生成重复的url,尽可能的全部翻译成拼音或者是英文。
-优化仓库的url生成规则,一些普通用户对于url并不在意,可以采用ucode16进制数的形式。

测试环境与条件

windows11家庭版,Microsoft Edge版本 134.0.3124.66 (正式版本) (64 位).在创建仓库命名时,发现不区分大小写,但实际的url对大小写敏感。

满足特定条件发生:url一般对大小写敏感,在本软件中/A,/a对于不同地址,大小写输入不正确后将会跳转到404页面。

Bug描述

创建仓库名称时,会自动把名称的url忽略大小写,同一转成小写,但是实际的url确实对大小写敏感的,输入仓库名的url后,无法正确跳转到仓库页面,而是跳转到404页面。

Bug分析

功能开发者对于url的大小写敏感性没有做好协调,导致在创建和输入的过程中,实际并不匹配。

对于用户记录仓库的url地址,可能因为仓库名进入了错误的地址,给用户带来不好体验。

Bug解决方案

同一改成大小写敏感或不敏感,使得双方没有割裂感,导致用户进入错误的页面。

评测结论

d.好,不错

分析

工作量分析

查阅(deepseek)后得知github的主要功能模块有:

  • 用户管理:注册、登录、权限管理、个人资料等。

  • 代码仓库管理:创建、删除、克隆、分支管理、合并请求等。

  • 版本控制:集成Git或其他版本控制系统。

  • 问题跟踪:创建、分配、关闭问题,标签管理等。

  • 协作功能:评论、讨论、代码审查等。

  • 持续集成/持续部署(CI/CD):集成CI/CD工具。

  • API和插件支持:提供API接口和插件扩展。

  • 文档和帮助:用户文档、FAQ、社区支持等。

  • 安全性和备份:数据加密、备份、恢复等。

  • UI/UX设计:用户界面设计,用户体验优化。

对于工作量的评判,我将以上学期数据库三人小组开发web程序的效率进行预估

用户管理:
21~28天

核心功能代码仓库管理:

  • 时间:2个月(基础开发) + 1个月(优化)
  • 说明
    • 需要结合Git协议、数据库设计和分布式存储。
    • 团队需熟悉Git操作、数据库使用和分布式存储原理。
    • 如要达到GitHub类似的高优化效果,额外需要1个月。

版本控制和问题跟踪:基于Git的进一步开发,需要时间大约2个月

协作功能: 需要结合前端技术,熟悉前端的开发,熟悉前端的交互设计。学习时间加上开发约为1个月。

持续集成/持续部署(CI/CD):学习时间约为1个月,开发时间1个月。
其余辅助功能合起来,约为2个月时间。
最后是UI的设计和美化,为了和用户达到较好的效果,需要3个月时间实现交互良好的软件。
最后是测试,网站达到稳定且对于大规模数据有一定处理的能力,需要测试人员进行测试,测试时间约为1~3个月不等。

总时间估算

  • 乐观估计:16个月
  • 悲观估计:24个月(总时间 × 1.5)
  • 说明:考虑到未知困难和团队能力,采用悲观估计,总计2年。

GitHub 实际开发过程(deepseek)

初始开发阶段

  • 时间:2007年10月1日
  • 说明
    • 由 Tom Preston-Werner 和 Chris Wanstrath 启动。
    • 最初为周末项目,后发展为正式产品。
    • 3个月内完成第一个版本,包括用户界面和基本代码托管功能。

私人测试版发布

  • 时间:2008年1月
  • 说明
    • 向少数开发者开放。
    • 反馈积极,验证市场需求。

正式上线

  • 时间:2008年4月10日
  • 说明
    • 距离初始开发约6个月。
    • 具备基本代码托管、分支管理和协作功能。

软件质量分析

github在代码托管平台中相比于gitLab(部分功能收费)以及小规模的Bitbucket,gitCafe,功能全面且生态丰富,相比于gitee有更加简洁的界面。在基本功能都有的情况下,额外支持丰富的第三方插件和 API,扩展性强。

独特卖点在于在一个项目上进行分支操作的简单性,为项目贡献代码的操作非常的简单,仅仅就是先点击站点的“fork”,然后将修改加入到 fork 出来的分支中,最后通过组内的“pull request”向项目负责人申请代码合并

缺点:只提供英文,对于英文不好的人来说可能使用有障碍。只支持 git 格式代码托管,不对 csv,svn,hg 等进行支持。

由于github的先发优势,其社区生态更好,是最好的开源平台,其他平台无法比拟。综上所述,github的软件质量可以认为是较为优秀的,位列第一。

建议:优化对中文用户的支持,特别是访问速度和稳定性。部署亚洲地区的 CDN 和边缘节点, 提供中国大陆的镜像服务。

建议与规划

市场现状

随着科技的迅速发展,IT行业正在以前所未有的速度不断演变。如今,IT已经成为全球经济的重要支柱,并在各行各业中扮演着不可或缺的角色。保守估计,2025年,全球IT市场规模将超过1000亿美元,其中,软件开发占比将超过50%。

IT从业者达到数千万甚至上亿,加上高校的学生,用户规模达到亿级别(目前据说有1.5亿用户)。
潜在用户包括希望获取免费开源软件的其他行业从事者,对CS或AI有兴趣的学生,以及对云存储有需求的个人或团队。加上这部分可能达到3~5亿的用户.

市面的的竞品有:gitCafe、gitee、gitlab、bitbucket、coding、gogs等。其中有竞争力的为:gitLab和gitee.
GitLab:
定位:企业级 DevOps 平台,强调 CI/CD 集成和自托管。
优势:功能全面,适合大型团队;提供了免费的开源框架,可以自行搭建代码托管平台。
劣势:用户体验复杂,社区规模较小。
Gitee:
定位:面向中文开发者的代码托管平台。
优势:对中文用户友好,访问速度快。
劣势:功能较为基础,国际化程度低,广告含量高。

github的优势,可以参考github官网。在这里我认为除了技术上的优势,其他方面有——第一:免费,第二:开源社区活跃,第三:用户多,对于强调合作的团队,github是首选,第四:对学生友好,提供学生认证,可以使用众多附加服务。

总结:GitHub 在功能和社区生态上占据绝对优势,但在企业级市场和中文市场面临 GitLab 和 Gitee 的竞争。

市场与产品生态

核心用户:学生、开源爱好者、技术经理、软件开发者。
典型用户
学历:本科及以上,计算机科学或相关专业。
年龄:20-40 岁。
专业:软件工程、计算机科学、信息技术、互联网、通信工程等。
爱好:编程、开源项目贡献、技术分享。
收入:中高收入(开发者、技术经理、CTO 等)。
表面需求:代码托管、版本控制、协作开发。
潜在需求:自动化工作流、项目管理、职业发展机会。
生态与发展:
企业用户与个人开发者之间通过招聘、项目合作等形成商业关系。
众多开发者存在紧密协作关系在开源项目上,从而形成社区。

  • 通过Sponsors机制,激励开发者贡献开源项目,形成良性循环。
  • 提供职业发展平台,连接开发者与企业,为双方提供交流、培训、招聘等服务。企业可以通过本平台选取优秀符合本企业要求的开发者,为其提供职业发展机会。

子产品:

查阅资料有以下子产品:

  • GitHub Actions:GitHub 推出的一项 CI/CD 工具,可以自动化项目的构建、测试、发布等流程。
  • GitHub Pages:GitHub 提供的静态网站托管服务,可以快速搭建个人或组织的博客、项目文档等。
  • GitHub Sponsors:GitHub 推出的商业计划,为开源项目提供资金支持。
  • GitHub Classroom:GitHub 推出的在线教育平台,可以帮助学生学习编程、参与开源项目。
  • GitHub Packages:GitHub 提供的专业级包管理服务,可以托管、分发、管理软件包。
  • GitHub Universe:GitHub 推出的开发者大会,为开发者提供交流、培训、招聘等机会。
  • GitHub Marketplace:GitHub 推出的应用商店,为开发者提供各种优质软件。
  • GitHub Explore:GitHub 推出的发现页面,展示 GitHub 上的优秀项目。
  • GitHub Copilot:GitHub 推出的代码自动补全工具,可以帮助开发者提升编码效率。

可以通过gitHub Copilot来提高初学者和非相关人员的编程效率,吸引潜在用户。由此从Github Classroom来为这些人员提供教育服务,使其成为忠实用户。

GitHub Explore 页面展示了 GitHub 上优秀的开源项目,可以吸引开发者参与其中,同时在Github Sponsors上可以为这些项目提供资金支持。最后可以在Marketplace上发行这些软件让更多的人使用这些软件。

产品规划

随着上述提到的IT市场的火热,越来越多的人希望进入编程领域,体验编程的美好,但是编程总归对于一些非专业人士是十分困难的。所以,我们需要开发一个友好型的编程平台,提供可视化编程工具和互动式教程,让更多的人可以体验编程的过程和乐趣。进一步的提供免费的课程、工具、资源,让这些对编程有一定理解之后的学院真正的学习技巧,成为一名开发者。

NABCD分析

Need:
非专业用户希望体验编程,但缺乏适合的入门工具和资源。市场需要一种更直观、更易用的编程学习方式。
Approach:
可视化编程工具,用户可以通过拖拽组件的方式编写代码。
免费的课程和工具,用户可以免费获得相关的学习资源。

Benefit:

  • 降低了学习编程的门槛,让非专业人士有体会编程之美和学习编程的机会。
  • 吸引用户,扩大潜在用户群体

Competitors:
现有完善的编程学习平台Codecademy、LeetCode。需要有更加直观的编程学习方式,此外希望额外提供设计独特的教学和编码方式,如代码动画,游戏化教学等。

Delivery:
非编程从事者可能并不了解github或者cs的交流平台,需要在如短视频网站,公众号进行推送,方可吸引更多的用户。鉴于github的专业性,过度的广告可能会影响用户的使用体验,投注广告不可过多。

本项目的核心功能是编程友好的playground,在开发过程中我的分工大致是:

  • 开发:2 人(负责可视化编程工具和互动式教程开发)。
  • 测试:1 人(负责功能测试和用户体验优化)。
  • 内容策划:1 人(负责流程设计和资源整理)。
  • 项目经理:1 人(负责需求分析和项目管理,并且选定广告投放策略)。
  • 美工:1 人(负责界面设计和用户体验优化)。

youtube、bilibili、知乎等视频网站也有编程相关的频道,可以提供一些编程相关的教学视频。所以内容策划的工作从优质网站上筛选课程,同时若资金允许可以联系专家开设课程。

计划:

  • 项目名称:GitHub Playground

第 1 周:需求分析与技术调研。

第 2-4周:设计可视化编程工具和互动式教程框架。

第 5-10 周:开发可视化编程工具和互动式教程,同时挑选课程或者自行设计高质量课程。

第 11-13 周:测试功能并优化用户体验,期间可以招揽内部测试。

第 14-15 周:用户反馈与功能调整,完成文档。

第 16 周:正式发布并宣传。

重视设计,对于用户的需求和框架的设计需要较多时间,是前四周重点工作。由于项目难度较大,开发者需要更长的时间来开发,预计为6周。在完成初始版本后需要内部测试,并且根据反馈优化,这是11-15周的任务,最后就是文档和广告的投入。

posted @ 2025-03-16 10:18  八月萑苇  阅读(21)  评论(0)    收藏  举报