个人博客作业-软件案例分析

个人博客作业-软件案例分析

作业要求简介

本文是北京航空航天大学计算机学院软件工程课程的个人博客作业-软件案例分析。

思辨是十分重要的学习手段,本次作业,我们将以一种身边的成熟软件为案例,思考他的设计理念以及软件工程方法的优点缺点,分析、评测、辩论、总结,在实践中理解软件工程的原理在好/坏软件上所起的作用。

项目 内容
本作业属于北航软件工程课程 博客园班级博客
作业要求请点击链接查看 个人项目作业
我在这门课程的目标是 获得成为一名软件工程师的能力
这个作业在哪个具体方面帮助我实现目标 分析、评测、辩论、总结

一、调研与测评

我选择进行评测的软件是博客园班级博客。

(一)使用软件的基本功能

博客园班级博客是博客园开发的供班级教学使用的博客讨论交流平台。在此平台上,老师可以方便地建立班级,并将同学加入班级。老师可以布置作业,同学通过博客的形式提交作业。

  • 先创建一个班级,并把自己设置为老师

    个人博客作业-软件案例分析_第1张图片

  • 测试添加一个同学的功能

    个人博客作业-软件案例分析_第2张图片

  • 测试发起作业,批改作业的功能

    个人博客作业-软件案例分析_第3张图片

  • 测试发起投票的功能

    个人博客作业-软件案例分析_第4张图片

  • 测试公告和推荐博客功能

    ![image-20200324201151233](/Users/huangjihui/Library/Application Support/typora-user-images/image-20200324201151233.png)

(二)测试情况与发现的bug

在以上基本测试中没有发现导致崩溃或者功能无法使用的bug,但是在用户交互,逻辑设计上有很多问题(广义bug)。

I. 博客园班级博客网页版

  1. 添加成员后不自动更新成员列表

    在添加成员后,更人性化的设计是要更新一下成员列表,如果不更新的话,用户可能以为添加失败,造成不必要的麻烦。此项应属于广义bug,可以改进。

  2. 添加成员时,被添加人没有确认机制

    添加成员后,该成员直接被添加到班级里,不给成员拒绝的权利在某些情况下可能不是一个好的设计。例如攻击者可以建立多个班级,然后将某个用户添加到每一个班级,由于用户没有确认机制,所以会莫名其妙地加入很多班级中。造成不必要的麻烦。

  3. 侧边栏最新投票点开后没有添加功能

    按照正常的逻辑,在主页上的侧边栏的投票板块应该有一个添加投票的小图标,在点开投票板块后应该有编辑投票的功能,事实上并没有快捷小图标,也没有编辑功能。添加投票需要到发布作业的界面完成。

    个人博客作业-软件案例分析_第5张图片

(三)评价

类别 描述 评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分)
功能 核心功能 分析三个核心功能,功能设计和质量。 6
细节 有什么为用户考虑的细节? 细节并不多,主要是界面设计 6
用户体验 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 无广告 6
辅助功能 一些辅助功能如皮肤等 博客有一些皮肤 4
差异化功能 这个软件独特的功能. 它对用户的吸引力有多大? 以博客为载体,把老师学生班级这几个概念连接到一起 10
软件的效能 占用内存, 启动速度, 内存泄漏情况 10
体验 软件的适应性 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 10
成长性 记住用户的选择, 适应用户的特点,用户越用越方便 基本没有 1
用户有控制权 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 缺少用户权限的保护,比如用户可以在不接受的情况下被拉入班级 -3

二、分析

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

    个人认为所需时间在1个月主要。本身网站的UI设计并不精致复杂,功能也都是常用的功能。但是考虑到博客的配置,管理比较复杂。对于这类网站我认为最耗费时间的不是技术问题,而是合理的推广,积累用户,因此把服务做到这种程度需要上年的时间。

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

    经过个人的调研,同类产品主要包括简书APP,CSDNAPP以及leetcode APP。简书内容更倾向于精品化,排版布局也更加的优秀。CSDN只聚焦于服务计算机类博客,而简书覆盖面则较广,无法成为码农们的第一首选。博客园APP体量明显较小,缺少论坛等配套服务,只聚焦于博客内容,并且在细节功能上不如CSDN APP,多为学生在应用。而leetcode作为新兴的APP,优势在于对于算法领域的专注化。从质量的角度可以达到前三。

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

    我们应该从权限管理和易用性两方面提高。

    • 管理权限:在添加学生到班级的时候,班级只能发出一个邀请请求,学生收到请求后选择是否接受。
    • 易用性:尽量把基本功能或者功能的提示放到表面。
  4. 你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?可以从下面的可能性中选取几个:

    • 对用户需求掌握不好
    • 具体的设计质量不高
    • 开发人员粗心大意
    • 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
    • 其他

    我认为是测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试

三、建议和规划

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

    据不可靠的数据统计,我国的程序员人数大约为200万人左右,但是与计算机相关联的,包括各类理工科学生以及行业从业人数保守估计3700万人左右。而2011年注册人数官方宣布为600万人,目前保守估计为1000万人左右。由此可见市场和潜在的用户数量依然是非常庞大的。

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

    见上

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

    属性 学生 IT从业者
    学历 本科、专科及以上 大学、专科或社会机构毕业人士
    年龄 20-25 23-40
    专业 计算机类 JAVA、PYTHON具体开发类
    爱好 学习 提升技术实现跳槽和加薪
    收入 7000k+
    表面需求 初步走入IT社会,学习他人经验 解决工作中遇到的问题,寻求志同道合的朋友
    潜在需求 DEBUG,找到BUG原因 获取更优秀开发者的工作经验,把握行业方向
  • 如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩

    配置:1位PM,1位美工,2位程序开发人员以及1位测试人员。

    第1-2周:进行项目需求分析。构建实体逻辑关系图,并对其进行优化。

    第3-4周:进行UI设计。由PM和美工参与。第一个关键点,如何保证UI符合使用逻辑又不会过于复杂。第二个关键点是对功能如何将它们合理地分布在程序中。

    第5-10周:开始APP开发阶段。由PM和2位程序开发人员参与。总体上分为2个阶段。第一个阶段在于整个程序的总体架构,包括逻辑分块,接口定义,评估各部分实现所需的人手和复杂度。第二个阶段开始正式的编程。在写代码的同时也要对需求部分以及规划部分做出及时反馈,报告无法实现的部分,重新调整需求或者重新规划。

    第11-14周:测试阶段。由PM,2位程序开发人员和测试人员参与。作为功能繁多的程序,测试环节非常重要,所要花费时间也较多。对于新增加模块功能,以及老的模块功能可用性测试。压力测试通过人为增加大量数据访问,看看APP的博客访问等功能会不会因为新增功能的原因出现崩溃。

    第15-16周:试运行阶段。由1位美工,1位开发人员,1位测试人员以及PM参与。将APP版本小规模发布,让部分核心用户抢先体验产品。在进一步汇报BUG的同时结合用户反馈对一些细节部分重新调整,并重新测试。

你可能感兴趣的:(个人博客作业-软件案例分析)