Beta阶段项目展示

【软工小白菜】Beta阶段项目展示

一、团队简介

姓名帅气的个人照个人介绍定位博客地址
祝世雷Beta阶段项目展示会一点c/c++, java,python,6系菜鸡,喜欢被带飞的感觉开发/测试链接
陈卓Beta阶段项目展示接触过c/c++/c#,java,会一点点python。希望组里的大佬们可以带飞我开发/测试链接
赵博名Beta阶段项目展示6系菜鸡,虽然有3年编程经历,但实力没有太多长进,会一点c/c++,java和一点点python。没进行过软件开发,希望能在组员的帮助下变得更强,也希望我们开发出的软件能让自己让用户满意。开发/PM链接
刘庆新Beta阶段项目展示编程经验较少的小白,正在试图增加代码行数。对c/c++/java/python有一点点熟悉,接触过微信小程序的开发。希望在团队中获得更多进步,向大家学习取经。开发/测试链接
干毅Beta阶段项目展示编程新老手,学过c/c++/java,python只会一点点,编程较慢。希望能通过这次软件开发经历提升自己,并向组内成员多多学习。开发/测试链接

二、软件工程

1.团队项目的目标,预期的典型用户,预期的功能描述,预期的用户数量在哪里?

我们的目标是开发一款支持网页端大部分功能的安卓手机app。
预期用户如下:

某某高校计算机系软件工程课学生A

用户信息用户情况
姓名Therp
用户身份某校计算机系软件工程学生
用户动机希望方便的在手机上查看在博客园上班级的作业内容以及相关博文内容
用户困难并未携带电脑,无法在电脑上查看班级作业布置内容;助教对作业做出点评,无法快捷的对评论做出回复;对自己的作业提交情况、评分情况没有一个总的查询界面
典型场景1浏览刚刚发布的软工作业,对作业内容、截止日期等内容有大概了解
典型场景2助教对自己的作业做出评论,并短信提醒到自己手机上,打开博客园手机app直接回复
用户偏好希望有一个自己作业提交情况、评分情况的总览界面
用户比例60%

某某学校班级助教B

用户信息用户情况
姓名小胖
用户身份某学校计算机学院某课程助教
用户动机协助教师管理、组织班级,进行教师和学生之间的沟通交流
用户困难缺少手机端的博客园班级,难以在移动端使用功能。
典型场景1小胖在吃着饭,这时班级某尚未加入班级的同学私信他希望帮忙加入班级,小胖就随手掏出手机打开app,小手一点轻松搞定。
典型场景2小胖出门了,晚上有个聚会,但是临时想起来还有一些同学的博客作业没看,他随手掏出手机打开app,小手一点,打开同学提交的博客,用琐碎的时间完成了任务。小胖收到老师通知,要拉一个同学进入班级,时间紧迫,他又正好在吃饭,于是他用手机app添加了该同学
用户偏好希望能在手机端方便的完成添加成员,发布作业,查看博文,回复博文的工作
用户比例10%

某高校计算机系老师C

用户信息用户情况
姓名钟老师
用户身份某大学计算机系教师
用户动机希望可以查看博客园班级的情况
用户困难没有一款手机app支持查看博客园的班级,导致不能随时了解情况
典型场景1在家里休息时想查看多少人还没交作业,好让助教提醒他们,但是由于在卧室,去书房开电脑太麻烦了,所以用手机app查看
典型场景2在开会时由于这部分内容与自己无关,实在无聊想查看博客园同学们提交的作业,并且对其进行评论,但是开会不能用电脑,所以使用博客园手机app评论
用户偏好更偏好使用博客园的班级功能
用户比例10%左右

某某公司普通程序员D

用户信息用户情况
姓名风不停息(网名)
用户身份某公司普通程序员
用户动机由于工作的需要,有时遇到一个不太明白的问题需要在博客园中查找相关知识
用户困难无法在手机上查看博客园的博客,不能在坐地铁去上班的路上查看让人很苦恼
典型场景1在地铁上很无聊,想看一点有关变成的内容打磨一下时间,于是打开手机博客园app开始浏览
典型场景2在家泡澡的时候,突然想到了工作中的某些问题,决定利用这个时间查找一些资料以免加班干活儿,于是拿起旁边的手机打开博客园app开始学习
用户偏好能够有搜索栏可以准确的定位一些博客,方便筛选想看的内容;希望有一个主浏览界面(滚动),可以不停的刷博客看
用户比例20%左右

预期的用户数量在各高校使用博客园上课的学生老师和助教以及一些使用博客园的社会人士。
预期功能如下:

模块功能(详细功能)描述
首页浏览博客浏览博客,下拉刷新,系统会个性化推荐给用户一些博客可以正常显示博客列表,然后下拉会刷新,点击会进入博客的详细界面
动态推荐显示全站的动态按照时间排序显示动态
关注显示我所关注用户的动态若未登陆,则显示“当前处于未登陆状态”,并给出登陆链接。若已登陆,按照时间排序显示本用户所关注用户的动态
我的显示我所发布的动态若未登陆,则显示“当前处于未登陆状态”,并给出登陆链接。若已登陆,按照时间排序显示本用户发布的动态
发布发布动态若未登陆,则显示“当前处于未登陆状态”,并给出登陆链接。若已登陆,则可供用户输入需要发布的动态内容并点击发布后发布,若内容为空,则提示“请输入动态内容”
删除删除我所发布的动态若未登陆,则显示“当前处于未登陆状态”,并给出登陆链接。若已登陆,则可以通过长按完成对自己发布的动态的删除
评论评论动态若未登陆,则显示“当前处于未登陆状态”,并给出登陆链接。若已登陆,则可通过点击评论按钮评论他人发布的动态
博问最新显示最新的发布的博问能够按时间先后显示最新的博问
已解决显示已经解决的博问能够按时间显示出最少有一个回答的博问
我的显示登录用户提出的博问若未登陆,则显示“当前处于未登陆状态”,并给出登陆链接。已登录则按时间显示出该用户的博问
提问写出问题标题、标签和主体,并发布若未登陆,则显示“当前处于未登陆状态”。已登录则能够在填完博问标题主体之后成功发布,为空则提示不可留空。标签可写可不写。
历史显示博问历史记录显示最近浏览过的历史记录,最大存储64条
搜索框显示含有搜索关键词的博问点击输入框输入关键词,过滤出对应博问
删除删除发布博问左滑删除已经发布的博问
班级班级列表查看用户所在的所有班级正确显示用户所在所有班级列表;点击任意班级后可以跳转到各个班级界面
公告查看该班级发布的所有公告信息,并能进行公告的发布、修改、删除正确显示所有公告信息,包括发布人,发布时间等;如果公告过多需要省略部分内容,并配有“展开”按钮;在班级管理界面进行班级公布的发布、修改删除
作业查看班级发布的所有作业,并能进行作业的提交正确显示所有作业列表信息,包括发布人、发布时间、作业状态标识;点击任意作业可以查看改作业的详细信息,并能进行作业的提交
博文查看班级成员发布的所有博客,并进行评论正确显示所有博客的标题信息,包括发布人、发布时间、阅读次数、评论数等;点击任意博客可以查看该博客的全文,并可进行评论、推荐等功能
成员查看班级内的所有成员信息,并能进行班级成员的添加、身份信息的修改、删除班级成员正确显示所有班级成员列表,包括老师、助教、学生;点击任意成员可以跳转到该成员的信息界面,可以查看它已发布的博客等;在班级管理界面进行班级成员添加、修改、左滑删除
我的我的收藏点击后可以查看之前收藏的帖子能按收藏时间的先后罗列所有收藏的帖子
我的博客点击后可以看到自己发布的博客,也可以在其中新建博客发布点击后可以看到自己发布的博客,对每一个博客可以进行管理操作。也可以新建博客并且发布
我的作业点击后会显示所有班级的已提交作业和未提交作业点击后会按照已提交和未提交正确分类,同时在每一项作业中可以进行提交操作和修改操作
关于点击后显示版本号,致谢等信息能正确显示当前软件的版本号和致谢信息,以及开发者信息等等
退出登录点击后退出当前用户登录点击后能退出当前用户的登录且重新加载UI,将退出登录键变为登录键,且最上方的用户名等信息消失

团队的产品如何满足了用户的需求?要看到目标用户使用产品的过程和评价。

我们基于之前分析的用户使用场景设计了功能,并基本完成了用户所需要的全部功能。另外我们也在Alpha的反馈上重新设计了UI,更符合用户审美;我们修复了一些用户用起来不舒服的功能,比如每次退出后都要重新登录,让用户用起来更舒适。用户评价如下:
Beta阶段项目展示
Beta阶段项目展示

事先定义的软件下载量达到了么?为什么没有达到?

我们定的是120人的用户量,目前已超过120人,有一个学长拉的用户群中有100多人,此外百度网盘的下载量在150次作业,达到了我们的标准。
Beta阶段项目展示

团队的成员如何分工协作的?有什么经验教训?

我们由于功能本身分为5部分,又正好有5个人,所以一开始的分工就是每人一部分,这样的好处是在合并代码时几乎没遇到问题,同时由于首页功能在beta阶段增加的功能较少,所以,由其同时负责对整体ui风格的统一工作。

教训:由于在alpha阶段也是分模块的,彼此对他人的代码不太了解,所以在强制转会后,就必须要花时间解读离开成员原来的代码。

团队是如何进行项目管理的?

我们在github上创建了5个分支,每个人分别将自己代码上传到自己的分支上,最后进行统一的整合.另外在小组的github仓库中设置了kanban和issue来控制进度,github仓库的地址如下:

软工小白菜的博客园app

团队如何平衡 时间/质量/资源 争取如期完成任务的?

我们的目标是质量优先,我们希望发布的功能没有影响使用的bug,同时会在实现新的功能时进行回归测试保证原有功能不受影响。同时由于时间较为紧张,在质量优先的前提下,我们可能会放弃一些原本计划有但是后期经过评估发现不是很实用的功能。在时间方面,我们也是能肝即肝,最后如期完成了beta阶段的功能。

代码规范

我们并没有具体的文档制定一些详细的代码规范,但是为了避免命名冲突,我们有口头约束一些文件和变量的命名规则。比如变量使用Android studio自带的类驼峰格式检查设计,文件名根据不同模块划分了不同的前缀和下划线,比如班级部分所有文件名需要加Edu_前缀。这样提高了代码的可读性,也使我们整合时更加方便。

齐全的文档

功能规格说明书

技术规格说明书

Beta阶段设计和计划

技术博客:

  1. 黑犀:利用SharedPreferences来实现登录状态的记忆功能
  2. 黑犀:通过ItemTouchHelper实现侧滑删除功能
  3. 炎龙:OKhttp3使用get,post,delete,patch四种请求
  4. 风鹰:利用handler实现线程之间的消息传递

Beta阶段发布声明

Beta阶段测试报告

有些项目是在原来的基础上改进的,那么我们团队的软件工程项目质量有什么样的提高?

我们的项目对上一届的软工作业进行了改进。对于Beta阶段6,我们经历了计划、scrum meeting、测试、事后分析、缓冲区改进等一系列步骤,保证项目的开发;在测试阶段,除了功能bug测试,我们还进行了兼容性测试,保证软件的可靠性。另外我们扩展了其部分功能,例如搜索、历史记录等,提升用户使用体验感。

原来的项目有些代码混乱,没有注释,没有详细的文档,你们的项目是如何更好解决这个问题的?明年的同学继续开发这个项目,会不会出现类似的抱怨?如果一个新学生在一台新机器上想编译并运行你的项目, 请问能顺利完成么?有什么样的文档能指导新学生?

原来的项目代码还是可读、容易理解的,我们主要参考了上届的作业要求和上届团队的博客。我们几乎没有费什么精力读代码,该项目是容易上手的。对于明年同学继续开发事宜,我们会提供博客、源码及对应的功能和技术说明。对于编译运行项目,在github仓库README中有具体的环境配置以及安装步骤。

对于项目的目标用户是一般学生的项目, 你们如何找到学生做需求分析?他们给你什么样的反馈?

我们提供了留言通道,用户可以在我们的博客下留言,此外还有一个用户支持群,大家也在里面对我们的app提出了很多宝贵的改进意见,因为我们自己也是学生,需求分析还是比较好做的,找了很多朋友讨论了一下有哪些需求。

所有的项目都会收集到用户的数据,请问你们对这类数据做了什么样的分析,这些分析如何验证或推翻了原来的假设?这些数据如何帮助项目改进软件工程的质量?

因为我们的项目没有后端,所以没有办法收集到用户数据。

三、项目进展与发布功能

1.项目燃尽图

Beta阶段项目展示

2.发布的功能

新增功能描述展示
我的收藏的删除功能可以通过左滑实现我的收藏的删除Beta阶段项目展示
博问的历史记录功能增加了博问的历史记录页面,实现便捷查看已访问过的博问,提升用户使用体验感Beta阶段项目展示
问答搜索功能可以通过关键字搜索问答,在首页点击搜索框就会进入搜索界面,在搜索界面输入关键字,点击搜索按钮,之后页面就会显示出检索出的内容了Beta阶段项目展示
博问的删除功能对于自己发布的博问可以通过左滑进行删除Beta阶段项目展示
闪存的评论功能增加了对闪存的评论功能Beta阶段项目展示
闪存的删除功能可以长按删除自己发布的闪存Beta阶段项目展示
班级公告的发布功能老师和助教可以在班级内发布公告Beta阶段项目展示
班级公告的修改功能对于已经发布的公告,老师和助教可以对其进行修改Beta阶段项目展示
班级公告的删除功能老师和助教可以删除当前发布的公告Beta阶段项目展示
班级成员的添加功能老师和助教可以根据同学的博客园昵称来添加成员Beta阶段项目展示
修改班级成员信息功能老师和助教可以点击该成员对其基本信息(姓名,身份)进行修改Beta阶段项目展示
班级成员的删除功能老师和助教可以通过左滑来删除成员Beta阶段项目展示

3.发布地址

发布在了百度网盘上,链接地址如下:

4.用户反馈

Beta阶段项目展示
Beta阶段项目展示

5.燃尽图如何反应项目真实状态的?

一开始进度缓慢主要是我们在完成新增功能的UI,同时讨论了一下UI的设计,因此进度较慢,到了中期UI完全添加完毕后发现patch和delete命令有bug,找了半天bug发现是博客园官方的功能出现了问题,当他们修复完这个问题后,进度飞速,赶在ddl之前完成所有任务。

四、团队成员在Alpha阶段的角色和具体贡献

五、特色功能

六、用户反馈

七、总结

td

相关推荐