• 2020软工-软件案例分析


    软件案例分析

    Q A
    这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健)
    这个作业的要求在哪里 软件案例分析
    我在这个课程的目标是 系统地学习软件工程开发知识,掌握相关流程和技术,提升工程化开发的能力
    这个作业在哪个具体方面帮助我实现目标 分析评测软件,体会软件工程的原则在实践中的种种体现,帮助我们在之后的工作中中做得更好。

    第一部分

    调研,评测(软件的bug,功能评测,黑箱测试,第8章用户调研,12章软件的用户体验)

    ​ 我选择评测的软件是CSDN app,官方对CSDN的介绍是:CSDN(China Software Developer Network 或 Chinese Software Developer Network,中国软件开发者网络),中文IT知识服务集团,业务有IT信息传播、技术交流、教育培训和专业技术人才服务。旗下有网络社区、学习平台和交流平台。可以看出它是一个针对IT领域,功能比较综合的学习类app。从应用介绍来看,它的主要功能包含以下几个方面:

    1.全新的技术交流社区-Blink等你加入。

    2.技术难点精准定位-解决bug轻松无压力。

    3.热点博文一键收藏-想看就看很方便。

    4.高质量的IT资讯及时更新-让你走在互联网前端。

    5.熬夜还在敲代码-夜间模式呵护你。

    1.使用10–30分钟这个软件的基本功能(请上传使用软件的照片)。

    注册登陆软件及软件界面:

    2.描述使用这个产品的过程,解决了用户的问题么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?

    • 界面

      ​ 首先是CSDN的图标,为了对比同类app的不同,我下载了以下软件进行简单的使用,当然主要体验的还是CSDN,红色大概是CSDN的特点之一,包括PC端的网页头部也是红底白字的大写的‘C’,很个性化。在以下几种软件中,我觉得CSDN的图标看起来还是很简约美观的,有一种亲切感(大概是因为使用的频率比较高吧)

    点进去CSDN的首页,包含上方的搜索条,导航栏,中间的主要内容,还有下方的五个功能模块;在整体页面设计上还添加了夜间模式;有四种字体大小可以自己调整;首页博文标题清晰,按照内容的不同分为Java,前端,Python,架构等多个导航栏,精准分类,让用户可以各取所需;在“学习”模块(这大概是颜色最丰富的模块)有热门课程,直播课,电子书,面试题,霸王课几种分类,价格和听课人数数据标注清晰;在“Blink”模块,有关注用户的动态和推荐动态以及排行榜,页面上方还设置有热门话题(让我有一种刷微博的感觉);在“消息”模块主要是交流中心,关于点赞、评论、粉丝、系统消息提醒;“我的”模块主要是用户个人信息,发布动态、浏览数据等。整体来说我觉得CSDN的界面设计很清晰,配色也不会觉得突兀,让人感觉很舒服。大多数软件下方的模块设置大概都是这样,只是主题颜色有不同,包括知乎(蓝色)、掘金(蓝色)、开源中国(绿色)、极客时间(黄色)等,不断敲键盘的小猴子大概是CSDN的吉祥物(?),每次加载界面都能看到他,但是敲太久了不免有点捉急,让我觉得有点小惊喜的是小猴子在夜间模式和普通模式是有一点差异的,还挺可爱:

    • Blink交流社区

      ​ Blink社区包含各类用户的动态,包括疑难问题求解、生活日常、技术分享等;看到喜欢的动态可以转发点赞评论收藏,想看就看很方便;并且还有发布Blink的快捷键,可以添加话题、图片、链接等,只有等级大于4的用户才可以发布音频和文档,还有树洞发布的功能,但是好像无法设置动态的分享范围,要么匿名要么实名要么删除,无法设置仅自己可见或是好友圈可见;Blink的上方有推荐排行榜,是按周按获赞数来排名的,但是好像仅显示2019和2020年的数据,并且2019年上半年的数据没有显示,私以为这个按周来排名或者按周索引的方式会不会粒度太小了点,同时很难和日期对应起来,要是添加月排行会不会更好呢?在这个排行榜上只有用户名字和点赞数信息,没有相应的标签,想要通过排行榜来关注某位用户还需要进一步了解。

      ​ 我转发了原力菌的一则动态,一个小时内有三位用户点赞,我点进去他们的主页发现内容都比较干净,没有博客没有帖子没有Blink,粉丝数却都上百,有点困惑...

    • 技术难点搜索解决

      ​ 这一部分的功能大概是我使用最多的,虽然之前都是在PC端搜索,一出来好多都是CSDN的相关博客。就我自己的使用体验来说,CSDN的确是可以提供很多有效的解答困惑,消除bug的答案,有很多精品的帖子实用性很强,技术分享也很细致;除此之外,CSDN覆盖问题十分广泛,从软件环境配置到各种语言的编译bug,从学习笔记到各类项目的源码分享,从职业道路的选择到前沿技术的分析,可以说是包罗万象,可以很好的解决用户的问题。在首页部分Java板块有专门的Java频道,订阅需要充值,但是可以查看免费的Java日报,是日日更新的,我阅读了几则日报,感觉干货满满,但是为什么只有Java板块有呢,其他语言是不是也可以考虑开发专属频道?
      ​ 在搜索某个问题,比如“vs qt调用dll”,在博客板块可以按相关性和按热度分类,但是会出来一些不相关的博客;按热度排序,大概就是按照访问量排序?可以看出访问量是递减的,但是博客的评论数和点赞数似乎和排序没有什么关系,不知道这个热度在后台是否有访问量、点赞数、收藏数、评论数的权重计算公式,如果有的话大概会更好;若是按照热度分类,前几名都是在很早之前的博客,vs的版本也有很大很大的变化,这样的博客对现在的参考意义应该不会很大;可以按时间选择所有时间、最近一周、最近三月、最近半年的博客,要想找到适合自己的问题的解决方案,要花费不少力气;按相关性排序,点开会发现不少雷同的博客,在PC端也习惯了解决一个问题打开十几个页面...然后关掉大部分重复内容。

    • IT资讯

      IT资讯可以从首页的推荐动态看到,我觉得资讯和技术分享应该是分开的,但是在首页可以看到不同类型的博客是混杂在一起的,这大概对闲暇时间像刷微博一样刷CSDN的用户是比较有效的,用碎片时间获取信息,但是对于目的明确只是想了解前沿技术发展现状的用户就不那么友好了。后来发现有一个"CSDN资讯"的官方账号,从阅读量和评论数来看似乎影响力并不大。在"我的"模块还有论坛,主要是讨论问题,解答疑惑的地方,可以根据自己的兴趣确定上方的目录栏,但是没有针对各个板块的搜索栏,在右上角有一个图标点进去发现是"CSDN论坛-IT技术交流平台",搜索栏也不会出现搜索结果;也有可能这个板块的使用人数不多,看发帖时间间隔平均上有三四天。

      ​ 这一点上我把CSDN和开源中国、IT之家做了比较。在开源中国的"综合"模块,上方可以选择专门的“资讯”目录以了解最新的IT动态、比如软件更新、框架发布等,并且有分门别类的软件和开源信息介绍;在IT之家也有很多有意思的最新资讯,侧重点在系统、软件更新方面,在技术分享上做的不精,有一点浅尝辄止的感觉,更适合关注技术结果而不需要了解开发的用户。开源中国在技术难点搜索解决上没有CSDN上的全面,在IT资讯和开源项目方面做的很完善。IT之家有很多莫名其妙的东西,比如一些淘宝风的衣服鞋子零食推荐(缓缓打出一个问号)。

      CSDN:

    开源中国:

    IT之家:

    • 学习功能

      ​ 在学习模块有各种语言各种研究领域的课程和电子书,基本上都需要付费或者vip,因为没有上过这类课程,所以也不做评价。但是关于某些课程的标题,比如"八小时零基础快速转型AI","21天通关Python","6天入门Python",我觉得还是挺有挑战性的。在面试题板块尝试做了几套题,有错题集的功能,但是对错误的客观题只有答案没有解析,并且尝试了几套题都没有刷到主观题;而且反复进去同一个公司同一个职位的面试题是大部分是相同的,只是顺序不同;在客观题题目有代码时,没有排版换行空格,看起来不那么方便;每次进去面试题都会有小猴子和几句鼓励的话,感觉首次进入出现就可以了?

      ​ 在这个方面,牛客做的更专业更丰富,是面向求职的,包含有公司真题,专项练习,错题练习和面试宝典,社区还有面试分享、求职资讯、内推资源;面向用户除了求职者还有HR,也与企业建立联系。我觉得要是想在求职上有所收获,牛客是一个很不错的选择。

      CSDN:

    牛客:

    • 数据量

      ​ 一点开CSDN就有"成就1亿技术人"的界面,大概用户有一亿?在这方面我没有找到确切的数据,wiki上提到CSDN有1000万用户,在百度上提到2010年06月CSDN 注册会员突破1500万,按照CSDN的影响力和近十年互联网行业的迅速发展,我觉得大概一亿也不是没有可能。但是活跃的用户数和注册用户数差距应该还是比较大的,有些用户有输入有输出,也有一部分用户只是有时候搜索解决问题的,并不会写博客或者转赞评,注册账号也只是为了能够不受限的阅读博客。

    3.对产品有什么改进意见?

    使用了一两个小时,没有特别严重或者紧急的错误,但是有一些小bug:

    • 收藏夹数目有误

      我发布了一则Blink动态,收藏后在收藏夹里可以浏览到,收藏夹数目也实现了+1,但是删除Blink动态后,在收藏夹里无法再找到那则动态,收藏夹数目却没有变化:

    • 阅读总时长有误

      专注使用CSDN有快两个小时,浏览博客的时间也比较长(并且不算上PC端的阅读时间),但是在"我的"模块阅读总时间还是只有一分钟:

    • 论坛搜索功能

      这是之前提到过的"CSDN论坛-IT技术交流平台",在搜索栏输入数据没有返回结果,并且不知道这个搜索功能是针对哪个方面的,帖子关键字?用户?

    • 博客编辑

      在app上可以编辑博客,虽然我觉得写博客在PC端更方便,但是这个功能肯定是有使用者的,我稍早时候在网页编辑的博客还没审核通过(八个小时都在待审核队列),晚上在app端想修改权限为私密但是却发现好像没有办法改变权限:

    除此之外,我还想提出几点小小的建议:

    • 审核增加查重功能

      ​ 在CSDN上只要有博主发了比较好的文章,就会有很多人复制粘贴并且只字不改不标明来处,从搜索引擎搜出来一堆相关文章但是点进去看才发现其实是同一篇文章,时间跨度可以从零几年到二零年,不同标题不同作者,但内容却完全一样。经常会发现搜一个问题,进到CSDN里是:楼主解决了没,楼主还在吗?楼主只回复解决了三个字或者根本不回复。当然我相信肯定存在真诚交流、友善对话、版权意识清晰、有原则的用户,并且这样子的用户是大多数。但是如果侵权泛滥,原创无法维护自己的权益,这样长此以往会打击很多创作者的积极性吧。在CSDN发布博客需要审核,在审核博客是否符合法律法规的时候也加上查重审核会不会更好呢,在查重率达到一定量时,要么必须在文中标清楚来源,要么只能将博客设置为私密。

    • 长代码块折叠

      ​ 在博客中常常会有引用源码的情况,在使用的时候发现点击代码块可以横屏阅读,这个功能真的很惊喜了,尽管是在手机比较窄的界面上也可以比较顺利的阅读代码:

    但是在某些博客中,引用的代码过长,用户可能希望先阅读文字再决定要不要仔细分析源码,这时候长代码可能就会比较影响阅读体验,要是有代码块折叠功能大概会更好~

    • 博客搜索功能

      虽然我在CSDN只发布了一篇博客,但是似乎只有分类专栏,没有博客关键字搜索功能,要是博客数量很多,管理和查找起来比较麻烦,搜索功能感觉是可以锦上添花的,包括在足迹和收藏里也是。

    • 增加举报功能

      使用CSDNapp的时间不算长,但是在这期间就有用户关注并且私信,私信内容肯定是不符合国家法律法规的,但是我却只能在右上角屏蔽没有办法举报,也没有办法删除私信界面或是删除管理粉丝(真是妖魔鬼怪哪都有),挺影响使用体验的。要想CSDN能有社交性,并且是友善的交流,我觉得对用户身份的审核和验证还是挺必要的,因此感觉举报功能比较重要。

    4.结论经过这么多工作,你一定有充分的理由给这个软件下一个评价:

    • a) 非常不推荐

    • b) 不推荐

    • c) 一般

    • d) 好,不错

    • e) 非常推荐

      综合以上的比较评价,我会选择c,CSDN的网页版感觉已经足以满足用户的基本需求,定量测评如下:

    类别 描述 评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分)
    功能 核心功能 博客搜索、学习答疑交流功能完善;技术难点精准定位;技术交流社区比较成熟 10
    细节 没有很严重的问题,夜间模式和代码横屏比较加分;但是之前提到的一些小bug是减分项 6
    用户体验 界面舒适,内容丰富,功能完善,没有特别恼人的广告;但是无法确保用户质量管理粉丝比较减分 6
    辅助功能 夜间模式很舒适;但是比如签到、抽奖一类的,我不太能理解这些小功能的作用 7
    差异化功能 定位在IT领域的交流社区和技术难点分析解疑,我觉得CSDN在同类app里还是有很强大的受众和影响力的 8
    软件的效能 占用内存不多,还可以清理缓存,启动速度较快 8
    体验 软件的适应性 在断网情况下无法使用(大部分app都如此吧),电脑、手机、ipad可以实现账号信息互通 9
    成长性 能够记住用户的选择, 适应用户的特定 7
    用户有控制权 关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 6

    第二部分

    分析(参考8.6节对工作的估计,和14.1节软件工程的质量)

    在书上我们看到:

    程序 = 算法 + 数据结构

    软件 = 程序 + 软件工程(软件服务还有数据,内容的因素)

    软件企业 = 软件 + 商业模式

    1.使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。(必答)

    ​ 计算机大学毕业生,并有专业UI支持,如果说是简单的实现所有功能,并且完成测试部署上线,我觉得大概需要半年左右;首先计算机专业毕业也不一定有开发app的能力和经验,前期可能需要学习相关知识以及软件工程必备的理论,还有团队磨合分工讨论交流的时间成本;然后再开始正式开发,这个"开发"理解为"仿造"CSDN app,所有的需求已经比较明确,只是实现功能;开发测试需要迭代进行(由于软件功能的复杂,测试和debug估计要花费不少时间精力),最后要到功能完善可以上线的程度,大概需要半年甚至更长。上线只是说明软件完成了,还没有商业模式的营销和推广,CSDN有现在的影响力和巨大的用户群体是从1999年到现在一步步累积起来的,这二十年里也是见证了互联网行业飞速的发展历程,现在再做一个同类app要想达到CSDN的高度,拥有大规模受众,感觉是挺有挑战性的事情。

    2.分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?(必答)

    优点

    ​ 1.软件技术难点定位精准;技术交流社区比较成熟,功能丰富且完善。

    ​ 2.有稳定的使用群体和比较大的影响力。

    ​ 3.界面简约美观,某些小细节比较惊喜。

    缺点

    ​ 1.博客重复率比较高,找到真正实用的信息需要一定时间。

    ​ 2.从技术交流社区的功能拓展开去,虽然有了网课或者面试题等的功能,但是没有专门的app做得好,比如mooc,牛客等,要做到广而精且不会让用户觉得混乱还是比较困难的。

    ​ 3.用户质量没有把关。

    综上,在IT领域技术交流社区和技术难点定位方面,我会把CSDN放在第一位,毕竟类似开源中国,IT之家,掘金、博客园等的涵盖范围相比CSDN还是稍窄,CSDN在IT领域也可以说是比较完善的先锋者了;但是在IT学习和求职方面,我觉得CSDN的针对性没有那么强,名次可能在4、5名。

    3.从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。

    ​ 1.在测试的时候可以更细致,比如现在还是存在一些小bug。

    ​ 2.增强对博客质量和用户的审核,在用户体验上还有很多可以优化的地方。

    ​ 3.关注博客的时效性,搜索某一关键词,时间跨度太大,是否可以考虑清理某些无用的博客。

    4.你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?可以从下面的可能性中选取几个:

    ​ 我觉得CSDN对用户的需求把握的很好,在第一阶段发现的bug也不是重要且紧急的bug,我猜测大概只是因为没有测试到,毕竟软件是需要不断迭代的,用户反馈也是重要的一环,可以帮助软件更完善。

    第三部分

    建议和规划(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)

    1.首先,市场有多大?潜在的用户有多少?

    ​ CSDN主要是针对IT领域有技术需求的用户,现在计算机编程能力也算比较普及比较重要,不只是计算机专业,几乎所有工科专业都会涉及到各种各样的技术问题,并且互联网行业更新极快,需要不断地学习,CSDN无疑是百科全书一样的存在,抛开现有庞大的用户数目来说,还有非工科专业的IT从业者以及每年不断增加的用户数目,所以市场是非常广泛的。

    2.目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?

    ​ 目前市场上比较类似的产品有IT之家,开源中国,掘金,博客园,牛客等;他们的优势在于专攻某一方面,比如之前提到的牛客对求职的针对性和专业性是CSDN比不上的,开源中国的新兴资讯是CSDN所欠缺的,但是CSDN的综合性和影响力也的确让其他产品望尘莫及。考虑到CSDN功能的复杂以及技术交流分享社区的完善,似乎还没有发现可以跟他正面刚的产品,但是作为目的性很强的用户来说,要是想要专注某一方面,CSDN可能就不那么占优势了。

    3.作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?

    核心用户我觉得可以分为学生和IT从业者。

    学生:学历主要应该分布在本科;年龄在18-25岁;专业包括但不限于计算机专业,大部分理工科应该都会学习编程,也就会涉及到CSDN;爱好(写代码?创造bug?);收入不固定;表面需求是学习新知识安装软件配置环境DEBUG等等,潜在需求是从输入到输出,在CSDN上分享自己的经验,寻求共鸣。

    IT从业者:学历应该在本科或者专科以上,也或许是从培训机构毕业的IT就业者;年龄在26及以上;专业不限,毕竟谁都有可能转换自己的求职目标;爱好(创造世界?);收入稳定;表面需求应该也是解决问题,潜在需求是把握行业动态,让自己处于时常更新的状态。

    4.如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。

    ​ 如果我是PM,我会配置两位开发,两位测试,两位美工;

    ​ 在第1-2周PM需要组织用户调查,明确用户需求,了解比较竞争对手的产品,然后进行产品设计,分解任务,指定流程,这个阶段可能需要PM组织,团队里所有人都参与讨论和交流。

    ​ 第三周开始以功能为主导的开发,若分前端后端,则需要确定接口;测试人员在这个时候也需要匹配开发人员的进度进行测试,及时反馈;美工人员开始依照功能具体设计界面。从这一周开始每天记录进度,每周开会;进度记录不需要很细致,文档也要避免冗余,达到基本要求就好。开会需要总结反馈这一阶段的问题,整个团队需要互相了解进度,商讨解决方案,及时调整流程。

    ​ 第三周到第十一周应该都需要维持这样子的工作状态,开发、测试、美工平行进行;在第十二周进行平台的初步部署和发布,先在小规模范围内进行软件试用,及时收集反馈、需求和调整bug。

    ​ 十三周到十五周进行工作迭代,由于第一轮开发时间比较紧急,可能在初次发布会有比较重要的bug待解决以及架构、功能的按需调整。

    ​ 第十六周进行软件的部署、发布和维护,或许还需要一定程度的营销,整个团队都需要及时关注用户反馈,进行产品的更新和优化。

  • 相关阅读:
    JSONObject的问题- 在用JSONObject传参到controller接收为空白和JSONArray添加json后转string不正确
    SpringContextHolder使用报错:applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder
    MQ报错Waiting for workers to finish.Stopping container from aborted consumer.Successfully waited for workers to finish.
    nacos的docker启动
    问题总结
    ubuntu docker中文乱码问题
    你该用HTTP2了
    Redis哨兵(Sentinel)模式快速入门
    Redis主从复制的原理
    Redis持久化的原理及优化
  • 原文地址:https://www.cnblogs.com/venturenn/p/12571956.html
Copyright © 2020-2023  润新知