团队作业3——需求分析与设计
需求分析
1.访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求,为软件最终可用奠定基础。
这次的需求分析我们通过做调查问卷来进行分析,调查问卷发送到朋友圈,有不同年龄段的人来进行调查。
这边是该问卷调查链接:https://www.wjx.cn/jq/22425407.aspx
对调查问卷进行分析:通过对将近三十个人的问卷调查分析结果可以得出,使用的年龄段在二十五岁以下的人居多,而年龄越往上使用的人数越少,初步分析该四则运算适用的人群可能是正在学习四则运算的学生或者教学生的老师们,大部分的人都在手机上使用过四则运算的小程序,不过这人数基数比较少,不能够体现准确性,还会在继续通过更多的调查来使得数据更具有准确性。对于之前四则运算程序,用户体验算一般,大部分人认为在微信小程序上使用四则运算练习是方便的,所以做该四则运算微信小程序还是会被使用的。复习功能和错题集功能是四则运算小程序需要具备的特点,会增加用户体验的好感。
2.参考《软件需求规格说明书》国标规范文本,撰写对应项目的软件需求规格说明书。提供《需求规格说明书》的Git链接。
码云地址:https://gitee.com/yycl/soft_work_team_work/commits/master
3.NABCD 写作
-
N (Need 需求)
首先微信四则运算小程序面向的主要用户应该是中小学生和他们的老师,这个程序可以免去教师出题的繁琐步骤,而且现在几乎人手一个微信,即使是中小学生,也有很大一部分手机使用者,这个时候微信四则运算小程序就能发挥它的作用了,这样老师就可以通过引导学生来使用这个程序进行一些方便快速的算术测试。而考虑到出题者和做题者的不同,我们也许会需要不同的登录模式,来实现老师创建群组,学生加入群组并由老师开启测试。有做题就必然有错题,那么就需要一个用来记录错题的错题本。然后我认为单纯的算术题显然是枯燥无味的,所以可能要有一个有趣的界面和音效,并加入一些计时,积分,排名,难度分级,多人竞赛等方式来提升这个小程序的可玩性和趣味性。我觉得做算术题无论是对现在还是对以后的中小学生来讲都是一种刚性需求,而且这个需求看起来不那么受人喜欢,所以我们只能在辅助性需求上不断改变满足这个刚性需求的方式,来让这个程序的受众更多,更喜欢它,比如上述的增加可玩性和趣味性,但是我觉得现阶段满足需求的潜在用户不太好找,不同年龄层的需求应该也会有所不同。 -
A (Approach 做法)
结合以上的需求分析以及团队目前的情况,具体实现的功能如下:
首先进入程序有一个登陆界面,登入后是个人主页界面,有开始答题,查看历史分数,错题集,排行榜,退出等功能;主界面可以选择难度,控制音乐开关,开始答题,PK匹配答题等。答题时会有倒计时,判断正误并提示,答题结束后统计分数和所用时间,并将记录添加到错题本和排行榜中。具体可以参考下面的原型。 -
B (Benefit 好处)
我觉得这个小程序最大的好处就是能在这个手机电脑广泛普及的信息化社会中,用现在流行的方式,更快更好地提高中小学生的算术水平,老师不用再出一套套繁琐的算术练习卷,不用批改花心思批改那些课后练习,节省了相当一部分的精力,而学生也不用永远面对着那些看起来就枯燥无味的练习卷,边学边玩往往有奇效。而且微信小程序本身的运行并不耗费太多的资源,随时随地,方便快捷。 -
C (Competitors 竞争)
就竞争这一方面,目前同类产品还是比较少的,市场上的现有软件功能都相对简单,而且并没有针对到这些软件的主要需求 -
D (Delivery 交付)
主要是借助微信这一广大平台,但是由于这个小程序适用人群的年龄层较低,局限性也比较大,推广难度也就大了。
将NABCD要点组成一段话:
各位领导/投资人/用户/合作伙伴:我们的产品“微信四则运算小程序”是为了解决中小学生厌烦做算术题,出题难,做题难的问题而设计的。他们需要在不断地做题来提高自身的算术能力的同时愉快地享受这个过程而不至于烦躁,但是现有的方案并没有很好地解决这些需求,我们有独特的办法,通过加入PK模式,进行答题计时和排名,它能给用户带来一定的紧迫感,竞技感和成就感,远远超过目前市场上的竞争对手“加减大师”“算术王者”。 同时,我们有高效率的交付方法,通过微信好友或者朋友圈分享等,能很快地让大部分用户知道我们的产品,并进一步传播。
4.团队协作,加强分工,需要描述每个成员的具体分工及占整个文档任务的工作量比例。
需求问卷调查及分析:李心宇(35%)、余腾鑫(35%)、陈鸿鹏(30%)
软件需求规格说明书:黄腾龙(70%)、梁林(30%)
NABCD写作:叶城龙(70%)、梁林(30%)
原型设计
原型设计能够在表现层将设计合成一个逻辑整体,用户能和你一起看到未来交互的软件蓝图、功能和效果,获得较真实的感受,在不断讨论的基础上完善未来的设计思想。因此,原型设计能起到有效沟通的作用,漂亮,直观的原型图更是让人赏心悦目。
任务分解WBS
编码规范
代码风格规范:
缩进:4个空格
行宽:100个字符
括号:在复杂的条件表达式中,用括号表示逻辑优先级
断行与空白的 { } 行格式:
If (condition)
{
DoSomething();
}
Else
{
DoSomethingElse();
}
分行:不把多个变量定义放在一行上
命名和大小写:驼峰式,英文单词首字母大写,函数用动词或动宾组合词表示,如DoSomething();
下划线:用来分隔变量名字中的作用域标注和变量语义,如:一个类型的成员变量通常用m_来表示或者用一个下划线来做前缀
注释:尽量简单,复杂的注释应该放在放在函数头,注释要随着程序修改不断更新,注释应该只用ASCII字符,不要用中文或者其他特殊字符
代码设计规范:
函数:一个函数做好一个功能,一个函数最好有单一的出口,要清晰体现程序的逻辑
错误处理:参数处理在DeBug版本中,所有的参数都要验证其正确性。在正式版本中,从外部(用户或别的模块)传递过来的参数要验证其正确性;觉得某事肯定发生要用断言,觉得某事可能发生要用代码来处理。
系统设计
1.如何才能最大限度地实现这些需求,这就是架构设计要解决的问题。请给出系统的架构设计
2.完成团队项目的数据库设计,并在随笔中提供相应ER图(如果必要)
小结
黄腾龙:需求分析对整个项目的进行还是非常重要的,奠定了该项目的基调,知道了方向就会比较好去实践,不过还是需要对该项目进行充足的技术准备,微信小程序使用了其自带了编写程序,所使用的编写语言之前也没有接触过,所以技术准备的阶段是比较难的,不过我相信在团队的努力下,一定会完成好这个项目的。
陈鸿鹏:在团队分工之后明确了自己在团队中的位置 也清楚的知道了自己在这个项目开发中需要完成的部分 在队长和各位伙伴的帮助下 完成了任务 也深刻认识到了自己的不足 希望以后日渐长进 有所提升。
叶城龙:本周的作业量比较大,但是在团队的分工配合下还是勉强完成了,这次我主要承担了部分需求分析和架构设计,需求分析阶段经过团队成员的讨论和研究后提出了挺多想法,但是有于整体的实现能力有限,最终还是定了一个比较简单的方案,前期的准备和规划基本完成,而相比于上次,团队的合作和交流也增强了不少,总之各司其职,一起努力吧!
梁林:在这个团队里,大家都有共同的目标,团队具有目标一致性,感受到了一种归属感,正是这种归属感使得我感到在为团队努力的同时也是在为自己实现目标。与其他成员在一起为这个目标而努力,激起了我更强的学习动机,对于目标贡献的积极性油然而生,使得效率比个人单独时要高出很多,这正是团队工程的优越性所在。随着工程项目的不断推进,我一定会不断提升自己,然后再反哺团队。
李心宇:团队又经过了一周的磨练和交流,大家的进步都很大,配合也越来越默契,大家都能把自己的意见毫不保留的说出来,我相信我大家只要继续保持这个状态,一定能取得很大的进步的。
余腾鑫:这次团队作业涉及了很多项目具体问题,我们想了许多需求,但是要实现并不现实,导致在做任务时不怎么顺利,但是多亏了大家把想法说了出来,后来得到了改进。这是一个团结合作共同进步的任务,希望能体会到实验的乐趣,获得成功。