目录
第一部分 调研,评测 福大助手的bug IOS端Android端福大助手结构体系的思维导图为什么开发人员没有发现这个bug假设团队开发这款app,应注意哪些方面(架构、部署运维、微服务等)?采访福大助手采访:第二部分 分析 估计这个项目做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)分析这个软件目前的优劣(和类似软件相比),并推理出开发团队在软件工程方面可以提高的一个重要部分(具体建议)根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果;针对不同的维度评分,对用户体验方面、Ul界面美观度、核心功能,分别打分。第三部分 建议和规划 如果你是项目经理,如何提高从而在竞争中胜出?目前市面上有什么样的产品了?你要设计什么样的功能?为什么要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可用nabcd分析。如果你来领导团队,会有什么不一样?如果你的团队只有5个人,4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16个周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定。项目发布后,有没有考虑过项目该怎么部署才能满足需求。依据附录图(某校教务处系统的部署)作为参考,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。第四部分 增量开发设计 优化/新增功能点的原型界面基本实现思路优化/新增功能点与原有产品如何接入第五部分 答辩总结 贡献度及分工问题回答评分结果第六部分 个人部分个人PSP个人学习进度条测试报告组长博客链接
作业链接
评测:
应注意采用微服务构架以及提高运维要求两方面。
众所周知,福大助手是由福大本校学生组成的西二在线所开发,随着学生不断的毕业以及新技术的不断尝试,团队本身的人员组成以及项目使用的技术会以相当高的频率迭代。同样,作为福大本地化软件,福大助手无疑会在将来不断地进行优化。
对于这类快速更新迭代的团队,随着时间及项目规模的扩大,传统的单体架构有着“复杂性逐渐变高”、“技术债务逐渐上升”、“部署速度逐渐变慢”、“阻碍技术创新”及“无法按需伸缩”的问题。 在此我们先引入微服务这一理念。
微服务,以单一职责、服务自治、轻量级通信及接口明确为设计原则的一种架构风格;而针对福大助手这一app,我们认为最应该注意的是项目应该采用微服务构架。 为什么这样说呢?我们看看微服务和传统单体构架的区别:
单体架构所有的模块全都耦合在一块,代码量大,维护困难;微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
单体架构所有的模块都共用一个数据库,存储方式比较单一,微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。
单体架构所有的模块开发所使用的技术一样,微服务每个模块都可以使用不同的开发技术,开发模式更灵活。
很明显 ,微服务架构其本质便是在结构上实现各个服务模块的松耦合。 就福大助手来说,微服务能为团队带来主要好处如下:
易于开发和维护:微服务单个模块就相当于一个项目,开发时仅需观察其单独的逻辑,易于团队开发和维护app功能。能够局部修改且容易部署:同样,当某个模块出现bug时,团队能够仅关注于完善出现bug的模块,在解决后只需要单独重启这一模块的服务即可,部署相对简单。技术栈不受限:由于微服务“单一职责”和“服务自治”的设计原则,技术人员在实现微服务模块时仅需考虑模块本身的业务逻辑,其实现技术本身并没有限制,有利于项目长远的技术创新,同样方便新加入的团队成员接手项目。按需伸缩:类似与3中所述,开发时仅需关注模块自身逻辑,进行性能扩展时不必考虑其它模块的情况,团队能够及时根据需求对功能模块进行调整优化。然而,在微服务带来种种好处的同时,它也有一些需要注意的不足:
对团队的运维提出了很高的要求: 对于单体架构来讲,我们只需要维护好这一个项目就可以了,但是对于微服务架构来讲,由于项目是由多个微服务构成的,每个模块出现问题都会造成整个项目运行出现异常,想要知道是哪个模块造成的问题往往是不容易的,因为我们无法一步一步通过debug的方式来跟踪,这就对运维人员提出了很高的要求。在团队的实际资源分配中,势必要比以往投入更多的资源在运维上。微服务是一个分布式系统 对于单体架构来讲,我们可以不使用分布式,但是对于微服务架构来说,分布式几乎是必会用的技术,由于分布式本身的复杂性,导致微服务架构也变得复杂起来。采访一
介绍采访对象的背景和需求 使用过易班、福大教务通、超级课程表等相关软件。除了现有功能没有什么其他需求。让采访对象使用福大助手(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)描述用户使用这个产品的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么? 这个软件功能很强大,可以解决想要解决的问题。在数据方面,数据量大,可以查很多东西。界面很友好。准确度没有什么问题。用户体验上,它的功能很复杂,在只想看课表的时候更倾向于教务通,因为它功能单一,看起来比较清晰简单。福大助手平时反而不会用。用户对产品有什么改进意见? 这款软件很强大,没有意见。结论 非常推荐采访二:
介绍采访对象的背景和需求 使用过易班、福大教务通、超级课程表等相关软件。希望通过软件方便自己学习和生活。让采访对象使用福大助手(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)描述用户使用这个产品的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么? 这个软件功能很强大,可以解决想要解决的问题。里面东西很多,被安利了。界面有更换主题功能,非常适合自己。功能上,还希望能增加交水电费和校园卡充值功能。准确度上和其他类似软件没有区别。用户对产品有什么改进意见? 增加交水电费和校园卡充值功能。结论 推荐采访三:
介绍采访对象的背景和需求 使用过易班、福大教务通、超级课程表等相关软件。希望只用一款app包括所有内容的软件,不想自己的qpp太多。让采访对象使用福大助手(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)描述用户使用这个产品的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么? 这个软件功能很强大,可以解决想要解决的问题。数据量方面,里面包括了教务通和易班的大部分内容,界面方面,非常不友好,感觉不好看,iOS手机界面和android手机不同,课程表界面和侧边栏界面不好看。准确度方面,和另外两款没差。用户体验上,第一感觉界面不友好。用户对产品有什么改进意见? 将ios的界面设计得更友好。结论 一般重要度为蓝色框,完成度为橘色框
参考《构建之法》第8章 功能的定位和优先级;第9章 项目经理
这个软件有很多可以提高的部分。
优化部分:
课程查询 提供查询其他专业开课情况的功能,用户在查询到感兴趣的课程的情况下可以使用课程表内现有的添加课程功能将课程添加到课程表。课程导出到日历提示 点击导出到日历功能后出现弹窗显示:在设置-清除数据里可撤销导出操作。学业分析(ios版本有,Android版本没有) 提供可视化的绩点排名变化、修习学分统计、修习情况的分析。校历查看(ios版本有,Android版本没有) 查看活动安排、假期安排等情况。创新部分:
同学帮实名制的同学互动平台。分成学习、生活两部分。学习部分主要用来发布一些面向用户的个人学习信息。用户可以在这个板块发布找研友、有偿考研信息分享交流、有偿期末答疑解惑等消息。生活部分主要用来发布一些生活上的便利互助信息,如打车拼单、闲置物品转让出售等。在线签到点名 最小以班级为单位在该板块上发布签到活动,用户在指定地点附近输入特定信息可进行签到签退点名。教师信息查询 提供教师的个人资料,授课情况,挂科率高分率、学生评价。总结:福大助手侧边栏支持自定义,理论上只要是有用的功能都能加上去,且不影响用户使用。考虑到实现成本与收益的问题我们为福大助手增加了以上优化和新增功能点。
在为什么要做这个功能,而不是其他功能?这个问题里已经有体现。
我们对福大助手app改进的主要创新点在同学帮这个模块。
N(Need,需求) 现阶段大学校园内资料分享、物品交易等活动十分丰富,但是此类活动沟通的平台往往是在qq、微信群聊中,充满了不确定性且交易的效率低下。A(Approach,做法) 我们为福大助手app设计了“同学帮”这个模块用于同学间的交流。福州大学的学生可在此平台上分享或出售考研资料,寻找研友,交易闲置物品,发布拼单信息等。B(Benefit,好处) 福大助手实名制的特点使沟通变得透明安全且更有效率。因此这个功能预计可以带来可观用户群体。C(Competitors,竞争) 目前基于福大其他校内的服务软件均未提供这个功能。福大助手ios版本推出的“二手市场”模块和超级课程表推出的沟通功能“下课聊”是匿名制,用户群体小且与我们基于实名制的创新点没有冲突。D(Delivery,推广) 在物品交易、考研分享群里宣传,让更多潜在用户体验该功能。累积一定用户群体后,我们可以在社区化的模块里的广告版面投入诸如考研信息等广告进行盈利。一个产品从想法的萌芽到最后的交付给用户使用,甚至上架销售,私以为包括了五个部分:需求分析,冲刺安排,冲刺,测试和迭代,上架宣传。《构建之法》的第185页谈到:“PM做开发和测试之外的所有事情”,所以一个优秀的PM是不会参与或者尽可能少的参与软件的开发的。所以来说,如果我来领导团队,中间的三部分是不会发生变化的,所以我这里主要说明对于需求分析和上架宣传的看法。对于需求分析部分,《构建之法》的第八章,功能的定位和优先级中进行了详细的说明。我们可以通过《构建之法》提出的使用四个象限来描述“福大助手”的功能分析:
杀手功能这一列是稳定的加分项,这里我们按下不表。来看外围功能这一列功能,该列描述了一些杀手功能以外的或关键或不关键的功能。在很久之前,我就听到同学们说过“福大助手”的“一键评议”功能苹果可以用,安卓不可以用,这导致我很晚才下载它,甚至在前两天还有同学和我说“福大助手对苹果十分友好,但在安卓端感觉可有可无”,我+1。 除了这个方法,《构建之法》上还提出的另一种方法,将软件的功能分为惊喜,核心功能和基本功能或属性。“福大助手”的惊喜包括了:一键评议,课程表导出到日历,提醒成绩正在更新,主题设置和自定义侧边栏等等的功能,核心功能是课程表和成绩查询,基本功能可以不谈。这样看来“福大助手”还是不错的。 再来看“福大助手”的宣传方面,这款APP我是在第一学期期末要看成绩时从舍友口中听到的,单单从这一点就能体现出很多问题:1.“福大助手”是通过同学之间好的评价来进行宣传的,2.这个学期前面的时间我没用过福大助手,之前一直使用教务通,3.当我听到他很方便时,安卓端却不能使用“一键评议”(大一时,现在可以用了)。这三点体现出了,宣传渠道匮乏,前期流失了大量的用户,即使能100%地保留下ios端的用户,安卓用户少之又少也是个问题,毕竟你不能忽略安卓系统庞大的使用群体。 总结一下,“福大助手”优秀的地方很优秀,但是很多功能安卓端的不适用和后期宣传力度不大给了它致命一击。如果我来做PM,我会注意这两个方面,在研发的安排阶段将核心功能的各个移动端适用这一重要的地方强调一下,并且在后期宣传时加大力度,这一点抽屉就做得很好,可以向他学习一下。 最后偷偷说一句,我比较喜欢很多人一起吃饭,如果我做了PM,估计会经常和团队一起出来吃饭,交流感情。
在需求分析和软件开发准备阶段大家要一起参与进来,尽快完成自己的任务,提前研发开始的时间。研发阶段,1个人负责Android前端,1个人负责Android后端,1个人负责ios前端,1个人负责ios后端,1个人负责美工。后期测试阶段,Android端可以和ios端互换软件进行测试工作。宣传阶段大家也是要一起参与,我认为这部分工作大家都是一样的所以大家要一起来做。
假设我的团队都具有一定的开发基础和开发经验,那么我会这么安排我的团队:
基本的服务器框架都是C/S结构的,请求和相应流程是这样的:
现通过增设以下设备以达到优化功能:
中间层DLA: DLA采用缓冲队列和连接池设计。 客户端大并发请求到来时,DAL设计缓冲队列,存储等待的请求,并且DAL中设计数据库连接池,当数据库连接池中有空闲连接,那么从缓冲队列中取出一个请求处理,以此类推。这种做法有效的降低了服务器的压力,保证请求被缓存。缓存数据库: 将常用的数据加载入缓存, 有请求到来时,应用服务器先从缓存中获取数据,如果缓存中有数据,那么不需要访问数据库,如果缓存中没有,在访问数据库取出数据,并更新缓存。如此一来处理效率不受限于数据库的并发数。增设的备份redis数据库则能够实现数据的备份和持久化。在单独应用服务器上部署缓存服务器: 将缓存部署在单独服务器上,通过访问该缓存服务器,方便各个应用服务器访问彼此缓存。将关系型数据库实现读写分离和负载均衡: 当有大量复杂的写操作数据库时,读写分离可以保证读数据库操作不被阻塞;由于数据库读操作会比写操作多,那么可以对数据库执行负载均衡。主流数据库都有replication机制,采用replication机制可以实现负载均衡。中间层的写数据库操作投递到主数据库中,读操作从读数据库中读取,当主数据库中数据被修改后,数据库采用replication机制将数据同步给备份服务器。任务服务器: 单独设计一个任务服务器,让应用服务器主动去请求任务服务器,主动获取任务处理,如果应用服务器处于忙碌状态就不需要请求新的任务,空闲的应用服务器会去请求任务服务器中的任务,这是最合理的负载均衡。如果所有应用服务器都处于忙碌状态, 那么任务服务器将任务缓存至自己的任务队列,当应用服务器空闲时会来取任务。这样便对应用服务器实现了负载均衡备用任务服务器: 设置多台任务服务器,并且实现failover机制,多台任务服务器之间实现心跳,如果检测不到对方心跳,则使自己成为主任务服务器,防止任务服务器出现故障。优化后框架图如下:
最终设备如下:
带宽计算方法是这样的: 每秒钟下载文件的字节数×8/0.7 = 宽带的速率 流量和带宽的换算是,带宽:流量=1:150 假设2400人同时在线,2400人并发同时操作,每个人的要恢复30KB的备忘录数据,那么合算成带宽就是:2400/(30KB*8)=10Mb
因为预计在线人数较多以及云备份的使用频率频繁,所以选择4核8G服务器。
既然你对产品有这么多的意见和建议,请就你认为产品的可提升功能、新增需求点做出增量开发设计,要求:
第一组
Q1:演讲缺乏对专业测评工具的介绍,可以介绍一下你们所使用的应用在线测评工具吗? 答:感谢提问!我们使用的测评工具是Testin云测试。Testin云测试是一个真机自动化云测试服务平台,可实现自定义终端进行批量自动化兼容适配测试以及功能、性能、稳定性测试。我们在平台上传了福大助手的apk文件获得了测试报告数据。
Q2:项目测评是否有发布问卷调查,对应用进行一个大基数的调查?
答:感谢提问!我们没有采取发布问卷调查的形式。我们认为问卷调查的形式对我们的评测帮助并不大,一是没想到什么有针对性的问题,二是对一个软件的评测和分析是需要对软件细致地测试得出的,大多数同学不会通过日常的操作找到什么我们测试人员没有发现的bug,三是我们通过线下了解,同学们的需求比较单一,对福大助手现有的功能都比较满意,提出的如校园卡充值等需求对非技术性的要求较高,不在我们考虑的增量开发范围内。当然,以上仅代表我们组的观点。贵组的问卷调查分析结果是一个亮点,说明贵组的问卷问题和结果分析做的很好,我们会多多学习。
Q3:项目的增量开发难度如何,以小组实力需要多久的开发时间? 答:感谢提问!增量开发的主要功能同学帮涉及到实时交互的功能,难度较高,以小组实力初步估计要两个月左右的时间。
第二组Q1:是否也有使用问卷调查的形式呢? 答:感谢提问!我们组这次的测试报告中没有考虑到使用问卷调查的形式,因为感觉大家都是轻使用这款App只会使用一些基础的功能,所以不必采用问卷调查的形式。当然,如果测试报告的形式更有利于我们进行测试的话,我们之后会考虑采用这种方式来进行测试工作。
Q2:假如由贵小组来开发该软件,觉得需要多久呢? 答:感谢提问!由我们组来进行开发的话,由于大家都是在校大学生,且经验不甚丰富,所以我认为助教学姐给出的四个月是个不错的建议。
Q3:具体的评测方法是什么? 答:感谢提问!我们组的测试同学使用的是名为“testin”的网站,该网站只用上传APK文件,就会给出关于该软件的测试报告,若有兴趣,欢迎讨论!
第三组Q1:在测试的过程中并未提及对应的软件产品的版本号,这就使得bug没有针对性,有些或许并不是所有用户目前所使用的版本都潜在的问题,存在指向不明的情况 答:感谢提问!我们确实没有填,下次注意。但bug是只要一个设备存在,就需要去修改。
Q2:虽然有着详细的测试数据,但并没有给出一定的解释性说明,这造成虽然堆有大量数据但大众很难去理解其所代表的含义,可以挂出你们对于数据的解读吗? 答:感谢提问!其实数据解读我们在测试文档里面有给出来,如果你们还是觉得不是很能理解,可以看我们的详细excel文档。
3:指出的分析大都和数据的安全性相关,能否就你们所目前所指出的安全性给福大助手app提出具体的一揽子解决方案呢? 答:感谢提问!我们也很想提供一揽子解决方案,但确实做不到。
第四组Q1:测试报告及ppt中均有错别字,为什么没有认真审核呢? 答:感谢提问!对于PPT数字“5”和“五”不统一的问题深感抱歉,由于疏忽影响观看美感。我们下次会注意的。对于测试报告中存在错别字我们团队没有发现,希望可以更明确的指出错误之处方便我们做出修改。
Q2:测试报告没有上传pdf文件,下次能否考虑上传pdf文件呢?毕竟pdf文件不会因为打开软件的不同呈现不同。 答:感谢提问!对于我们没有上传pdf文件给你们带来的不便表示抱歉,我们下次会尽量考虑到大家阅读的友好型做出改进。但是这次作业中也没有明确要求为pdf文件,所以还请谅解。
3:用户采访仅放了三张图,是否不够有说服力呢?毕竟图中部分同学神似团队成员呢? 答:感谢提问!我们的采访是线下面对面采访,虽只放置三张图片但并非代表只采访了三个对象。这在PPT演示过程中已有陈述是抽取三个代表性对象进行展示。而相较于您方放置的一个线下采访短视频是否我们就可以等价的认为您方说服力也不够强呢?对于“图中神似团队成员”的问题,我们团队中就有一半的成员在之前为使用过福大助手。首先,对象已经是属于我们的采访对象范围;其次,我们图中确实存在一位团队成员,但她便是我们挑选出来的代表性对象,我们认为这并没有什么不妥。最后,如果您方认为说服力不够,我们很乐意看到您方所谓比较有说服力的采访数据和证据。
第五组Q1:测评可以加入问卷调查的,了解下大家对这个软件的认识,因为我发现其实还是很多人不知道的。 答:感谢提问!这是一个很棒的建议!之后我们会多考虑问卷的。
Q2:其实我觉得福大助手在响应时间方面并不是很好,很多东西都半天出不来,也不知道是不是手机问题。 答:感谢提问!其实我们团队也有类似的感觉,不过似乎易班及福大教务通等一众教务类软件都具有这些毛病,或许和服务器也有一定关系。
Q3:PPT一共有四页给福大助手来了一脚,虽然这APP确实很多地方有问题,但还是别踢了,都肿了。(滑稽) 答:感谢提问!柯大魔王要求如此,一人一脚也是无奈之举。(莫非柯老板是西二在线幕后股东?)
第七组1:你们的测试看起来非常有料,可以具体分享一下是怎么测试的嘛? 答:感谢提问!测试的过程虽然是我们组的核心机密,但是看在我们小组之间的关系非常不错。我们做的测试主要是黑盒测试,除此之外我们还使用了testin,上传apk文件,他们提供了很多款机型做测试,同时也给出测试的方式,性能测试、安全测试和兼容性测试等。不过一个账户只能免费使用一次软件测试。
Q2:你们的增量开发中有“同学帮”,可以具体的介绍一下同学帮是干什么的嘛?可以实现什么? 答:感谢提问!同学帮的功能:实名制的同学互动平台。分成学习、生活两部分。学习部分主要用来发布一些面向用户的个人学习信息。用户可以在这个板块发布找研友、有偿考研信息分享交流、有偿期末答疑解惑等消息。生活部分主要用来发布一些生活上的便利互助信息,如打车拼单、闲置物品转让出售等。我们觉得这个功能能够提供一个很好的校内交流氛围。
Q3:你们认为增量开发难度如何? 答:感谢提问!增量开发的难度视内容而定吧,要是您们指的是“同学帮”功能的话,开发上我觉得是有一定的难度,毕竟功能比较繁杂,不过物品转让在ios上已经有做尝试;对于学习部分,开发难度上类似于一个在线聊天系统,难度应该也不大。
第八组Q1:对于增量设计中的在线点名功能认为是否有必要加这个?是不是加剧代签之类的情况? 答:感谢提问!本组觉得在线点名功能是可以扩展的功能,至于是否会加剧代签之类的情况,本组觉得教务处账号涉及个人隐私太多,大部分同学可能都不愿意为了签到借给他人。
Q2:可以抽取一部分的思维导图或者逻辑框图展示在ppt中,ppt中好像没有体现。 答:感谢提问!本组认为把思维导图或者逻辑框图放在ppt中没有很大的意义,因为这些图如果放在ppt中很难让同学们看清。
Q3:产品分析感觉这部分内容有点少了。 答:感谢提问!下次会在这方面有所改进。
评审表
测试文档
测试ppt
评审表
转载于:https://www.cnblogs.com/hyh1072797231/p/10085711.html
相关资源:JAVA上百实例源码以及开源项目