奋起上进组 实验六 团队作业3:团队项目需求调研与原型开发
项目 | 内容 |
---|---|
课程班级博客链接 | 2019级卓越工程师班 |
这个作业要求链接 | 实验六 团队作业3:团队项目需求调研与原型开发 |
团队名称 | 奋起上进组 |
团队成员分工 | 曹永兴:任务一、任务四登陆界面、消息界面和上传页面的基本功能的设计与实现 张蓉星:任务二、任务四我的页面的设计与实现 李斌:任务二、任务四发现页面的设计与实现 尚洁:任务三、任务四首页的设计与实现 |
团队的课程学习目标 | 1、学习使用墨刀进行原型设计 2、 体会团队面对一个项目流程 3、体会团队分工与协作 |
这个作业在哪些方面帮助我实现学习目标 | (1)学会了磨刀进行原型设计的使用方法 (2)体会到了团队合理分工的效果 (3)分工协作,尽可能发挥团队优势,提高任务完成度 |
团队博客链接 | 奋起上进组 |
团队仓库 | 仓库 |
任务1:团队协作学习《现代软件工程—构建之法》第8章
一、要求
团队组长主持企业微信会议,采用NABCD法,从五个视角对实验软件项目可行性进行团队合议。
二、软件需求
- 确定需求的步骤
序号 | 名称 | 特征 |
---|---|---|
1 | 获取和引导需求(Elicitation) | 用户不能完全明确的表达出自己的需需求,需要软件团队进行挖掘和引导需求; 需求除了来自用户还可以来自管理机构、软件企业本身、技术团队本身; |
2 | 分析和定义需求(Analysis & Specification) | 规整各个方面获取的需求,定义需求的内涵,从各个角度量化; |
3 | 验证需求(Validation) | 软件团队通过与利益相关者沟通验证对这些需求的认知; |
4 | 在软件产品的生命周期中管理需求(Management) | 软件团队需要不断地对需求进行重新审核并做出相应的调整; |
- 软件需求的划分
- 对产品功能的划分:要求产品必须实现某些功能。
- 对产品开发过程的需求:要求软件的开发流程必须满足某些约束条件。
- 非功能性需求:服务质量需求。
- 综合需求:有些需求不是单单一个软件模块就能满足。
- 软件的利益相关
用户、顾客、市场分析者、监管机构、系统/应用集成商、软件团队、软件工程师
三、获取用户需求——用户调研
- 调研方法
序号 | 方法 | 内容 |
---|---|---|
1 | 焦点小组(Focus Group) | 通过利益相关者和一群目标用户的代表一起讨论确定需求。 特点:由于讨论过程中,讨论者的心理等其他因素影响不能准准确的反映出有价值的想法。 |
3 | 卡片分类(Card Sorting) | 通过卡片将杂乱无章的需求分类,从而更好的统一对软件需求分析的认识、量化各种特性。 特点:更好的定义了软件的信息框架、各种内容的层次关系等。 |
4 | 用户调查问卷(User Survey) | 通过向用户提供事先设计好的问题,让用户回答,通过分析结果推测需求。 特点:调查者可能心不在焉,导致结果出现误差。 |
5 | 用户日志研究(User Diary Study) | 通过分析用户的与软件相关的行为、日记或者收集的信息确定需求。 特点:需要用户足够自律;用户隐私的保护; |
6 | 人类学调查(Ethnographic Studay) | 通过充分和用户接触推测需求。 特点:由于看法与敏感的程度的不同,从而看法不同。 |
7 | 眼动跟踪研究(Eye Tracking) | 通过分析用户使用的互联网应用和网站来推测。 特点:发现了F模式。 |
8 | 快速原型调研(Quick Prototype) | 通过一些模型,经过用户使用,得到反馈推测。 特点:运用了用户参与式设计。 |
9 | A/B测试(A/B Test) | 通过在部分(5%-10%)用户上运行试验,收集数据、分析数据、得到结论。 特点:随着时间推移,成本变高;维护复杂;用户情绪难以掌握,导致风险较大; |
10 | 深入面谈(In-depth Interview) | 通过详细的面谈,广泛而深入地了解用户的需求。 特点:费时费力 |
- NABCD模型
- “NABCD”是由Need、Approach、Benfit、Competitors、Delivery五个单词的首字母组成,分别指需求、做法、好处、竞争、推广五部分。
- 根据“NABCD模型”对“背包问题知识社区系统”进行项目分析
-
N(Need,需求)
背景:背包问题(Knapsack problem) 是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。相似问题经常出现在商业、组合数学,计算复杂性理论、密码学和应用数学等领域中。也可以将背包问题描述为决定性问题,即在总重量不超过W的前提下,总价值是否能达到V?它是在1978年由Merkle和Hellman提出的。
功能需求:尝试设计一款由注册用户共享的背包问题知识社区系统,系统至少具有资源上传、检索、资源审核与管理、背包问题主题知识论坛、资源类型至少包括:典型算法源代码、开源数据集、背包问题相关文献资源,系统设置管理员,用于系统用户管理、资源有效性审核。
非功能需求:实现一个可以让大家对背包问题的认识与简介进行讨论的平台,刺激人们去学习,满足人们精神上的需求。
-
A(Approach,做法)
项目最开始使用墨刀进行原型设计,使团队拥有一个较为明确的目标。确立目标后,使用java、HTML、python、Android四种语言进行前端的实现,三种语言各有千秋,面对不同的需求对语言进行选择。
-
B(Benfit,好处)
对于刚接触背包问题的初学者来说,该背包问题知识社区系统,可以很好对背包问题的了解以及对其包含的算法有深刻的认识。该系统提供了私聊平台,可以和他人进行更全满的探讨。对于对背包问题熟悉的学者来说,可以借此平台发挥自己的光芒,并把自己的疑问提出,得到不同方向的见解,提高自己。
-
C(Competitors,竞争)
市场上知识讨论类的平台很多也很丰富,面对我们一个刚上市的平台,一些资历较深的用户,任就会选择以前的平台。但是我们的平台具有针对性,只对背包问题进行探讨与学习。
-
D(Delivery,推广)
前期使用网络推广与线下推广两种方式结合的办法;有一定用户的时候通过活动让用户寻找用户。
- 功能的划分
杀手功能:OCR文字识别技术,可以在屏幕上取词解释,拥有独家权威词典,等等
外围功能:良好的界面设计,在各个平台上都能运行。
必要需求:单词闻语释义的准确性(如果达不到这一点,用户就不会来使用)
辅助需求;可以做各种皮肤(这也许能让一些用户更喜欢这个软件,但不是决定因素)- 学习截图
任务2:依据任务1讨论情况,实施团队项目软件用户调研活动,并依据调研结果填写《学生“创新能力提升计划”项目申请表》
一、 项目申请理由
项目的研究背景及现状:
- 本次主要是为了解决计算机中一个经典的问题,背包问题给我的思考带来各种各样的思考,基于在背包问题的背景下,我们有所启发,准备开发一个关于背包问题的系统知识社区,一起去探讨,解决背包问题等等。
- 在计算机学习的大环境下,我们之前已经学习了算法设计与分析等课程,对背包问题已经有了一定的了解,对于本次项目我们已经有了一定的知识基础。
二、项目研究内容
-
个人访谈的方式
-
调查问卷分析
-
调查背景
在软件过程的学习过程,我们需要去解决背包问题的相关问题,针对怎么样更好都去学习背包,怎么样更好地去进行对背包问题交流,怎么样去简化背包问题,等一系列所要做的事情,我们想要构建一个背包社区系统,关于本次问题我们展开一个项目研究调查,去现场调研本次问题。 -
调查目的
- 为了更好的满足使用者的要求,为了增强产品的实用性;
- 为我们提供更好地实验思路,和页面设计思路去解决这个问题,使得设计更加完整;
- 吸取使用者意见,集思广益。
-
调查方法
发布问卷调查 -
调查对象
大学生群体 -
数据汇总
1、年级
2、性别
3、是否计算机专业
4、是否了解背包问题
分析:在拥有百分之50的计算机专业的前提下,了解背包问题人数的比列是百分之四十左右,说明部分本专业的学生是对背包问题没有了解的,因此本次的背包系统社区就非常有必要,通过构建背包社区系统可以,为更多的本专业的学生提供在课程学习过程遇到背包问题的时候,提供解决问题的思路和方法。
5、你之前了解过那些解决背包问题的算法?
分析: 通过数据统计,几种算法的比列几乎都是在百分之30到百分之50之间,各个算法的比列差不多是相似的。说明对于解决而言,各个算法都是至关重要的,我们可以在四个算法上的投入比列是相同的,在社区系统设计过程可以更加均匀上传相关算法问题。
6、你认为是否有必要开发一个知识背包社区系统?
分析:百分之八十以上的人认为有必要开发一个知识背包社区系统,看来本次开发特别有必要。
7、你喜欢app还是喜欢网页
分析:百分之68的喜欢手机APP,百分之32的喜欢网页,所以我们打算本次做一个手机APP。
8、你使用知识社区学习时会考虑那些因素?
分析1:百分之七十以上的人使用知识社区的主要原因是可以参考里面的相关文章为自己提供解题思路,最少的是身边同学都在使用,同学推荐只有百分之34.在我们平时大多数人在相关社区上浏览时,可以学习各种各样的知识,和查询代码等等,我们本次设计背包系统时,更多的资料上传下载去加强功能。
分析2:百分之68的喜欢手机APP,百分之32的喜欢网页,所以我们打算本次做一个手机APP。
9、你是否有相关社区开发的经历?
分析:超过百分之七十五的人没有社区系统开发的经历,但是还有四分之一的同学有相关社区开发的经验,通过向部分同学吸取经验,可以有助于对于我们背包系统社区开发的完整性。吸取经验,也为后面的问题提供前提。
10、你期待的背包社区系统有那些功能?
分析:接近九成的人主要需求的功能是资源搜索、上传和下载。发表论坛和博客的功能需求也要超过百分之60,所以本次背包社区系统最核心的功能就是背包问题的相关资源的搜索、上传和下载,并且添加一下发表论坛和博客的功能,然后模块化的完成各个功能需求。
11、对于本次背包社区系统你有哪些建议?
- (1)希望可以开源且用户主导;
- (2)最好用户可以查到原题的代码;
- (3)具有笔记功能;
- (4)简约设计;
- (5)重视资源共享和交流;
分析:以上建议有一些是我们之前没有想到,例如笔记的功能,吸取这些建议对我们会有一定的帮助。
总结分析: 本次调查问卷一共收获了38份,平均完成时间在2分半左右,可能有部分同学填写问卷时候心不在焉,导致所填写的为无效问卷,在最后得到数据以后,我们对填写时间短语一分钟的问卷进行了处理,使得调查问卷更加符合客观事实,例如问卷我们调查喜欢网页还是APP,大多数人喜欢APP,也存在一些客观因素,大多数人对于APP更加的熟悉,导致差不多八成的人都选择APP,因为APP也更加满足大多数都需要,吸取本次调查报告分析结果,我们总结出了背包社区系统APP的雏形,为我们后续软件研发提供基础。
创新创业申请表
- 将任务2编制的申请表上传到Github团队项目仓库
任务二总结 :在完成任务二的完成中,主要包含了九个部分,包含了第一次单人访问调查,第二部分调查问卷及其分析和第三部分创新创业申请表,并规划了本次项目的主要构成。
任务3:关于软件原型方法:原型方法就是快速地建立可运行的、概略的系统,之后不断评价、改进直到获得最终系统。利用原型系统,用户能和你一起看到未来交互的软件蓝图、功能和效果,获得较真实的感受,在不断讨论的基础上完善软件未来的设计。
- 以团队成员姓名命名的墨刀安装界面截图
-
墨刀原型设计工具简介
- 墨刀是一款在线原型设计与协同工具,借助墨刀,产品经理、设计师、开发、销售、运营及创业者等用户群体,能够搭建为产品原型,演示项目效果。墨刀同时也是协作平台,项目成员可以协作编辑、审阅,不管是产品想法展示,还是向客户收集产品反馈,向投资人进行Demo展示,或是在团队内部协作沟通、项目管理。
功能介绍: - 操作简单:简单拖拽和设置,即可将想法、创意变成产品原型。
- 演示:真机设备边框、沉浸感全屏、离线模式等多种演示模式,项目演示效果逼真。
- 团队协作:与同事共同编辑原型,效率提升;一键分享发送给别人,分享便捷;还可在原型上打点、评论,收集反馈意见,高效协作。
- 交互简单:简单拖拽就可实现页面跳转,还可通过交互面板实现复杂交互,多种手势和转场效果,可以实现一个媲美真实产品体验的原型。
- 自动标注及切图:将 Sketch 设计稿墨刀插件上传至墨刀,将项目链接分享给开发人员,无需登录可直接获取到每个元素宽高、间距、字体颜色等信息,支持一键下载多倍率切图。
- 素材库:内置丰富的行业素材库,也可创建自己的素材库、共享团队组件库,高频素材直接复用。
- 适用平台:浏览器注册使用, Windows、Mac 桌面客户端,同时支持 iOS、Android 端预览;
- 墨刀是一款在线原型设计与协同工具,借助墨刀,产品经理、设计师、开发、销售、运营及创业者等用户群体,能够搭建为产品原型,演示项目效果。墨刀同时也是协作平台,项目成员可以协作编辑、审阅,不管是产品想法展示,还是向客户收集产品反馈,向投资人进行Demo展示,或是在团队内部协作沟通、项目管理。
-
团队协作学习墨刀的会议截图或照片
-
团队共同学习《现代软件工程—构建之法》第10章:
- Persona,即典型用户。在产品开发的过程中,我们经常需要描述一组典型的用户。在以前大家通常是以一些抽象的名词来表示用户,如“家用电脑初学者”、“经验丰富的系统管理员”,现在我们建议用一个“典型用户”来代表,典型用户不再是一个抽象的概念,而应该是一个活生生的人物。
- 典型用户的特性:一个典型用户往往描述了一组用户的典型技巧、能力、需要、想法、工作习惯和工作环境。
- 在设计软件的过程中,我们(设计/开发者)往往会以自己使用产品的习惯和对软件行业的熟悉程度出发设计,忘记了我们的软件是给千千万万个不那么会用电脑的人使用的。在这种情况下,分析“典型用户”会使我们在考虑问题时从用户的角度出发。
- 定义典型用户:定义用户的角色,若用户有不同的安全需求,要定义不同的角色来适应这些需求;
受欢迎的典型用户:指那些按设计者的期望使用系统的用户;
不受欢迎的典型用户:指那些有不正当目的的用户(这些用户也许在别的系统中是受欢迎的); - 场景:1) 针对每一个场景,设计一个场景入口(描述场景如何开始);
2)描述典型用户在这个场景中所处的内部和外部环境(内部环境指心理因素等);
3)给场景划分优先级,按优先级排序写场景。
任务4:利用墨刀设计实验项目软件原型;
一、 获得团队项目软件原型系统V1.0,将系统上传到团队项目仓库
二、原型设计界面
1、登录界面
登录界面主要呈现的是用户登录,最开始有一个3S的引导页,有两种不同的登录方式,密码登录和验证码登录;也分别设计了忘记密码以及获取验证码的问题界面。
2、首页面
首页通过设计各个分栏,方便用户按需找到自己的资料。
3、发现界面
发现界面主要呈现的是优秀的文章,参考微博的热搜榜,呈现了热搜榜单,推荐好的文章进行点击阅读。
4、添加界面
上传在交流过程中所需要的资料,也可上传自己迷惑的问题,查看比较经典的问题。
5、消息界面
消息界面主要为用户提供私聊交流的功能,可以通过私聊的方式,使用户交到志同道合的朋友,同时交流自己平时的学习经验。
6、我的界面
我的界面主要呈现的是个人信息,可以对个人信息进行修改,将自己的名片分享给其他人,另外可以通过该界面查看自己的收藏和喜欢的内容,以及自己查看过的足迹,另外自己收到的喜欢以及别人对自己的评论都可以进行查看。
任务5:各任务耗时及作业总结
项目计划表
任务内容 | 计划完成需要时间(min) | 实际完成需要时间(min) |
---|---|---|
计划 | 30 | 35 |
估计这个任务需要多少时间,并规划大致工作步骤 | 610 | 785 |
任务一 | 120 | 160 |
阅读《现代软件工程—构建之法》 | 90 | 110 |
小组讨论 | 30 | 50 |
任务二 | 150 | 210 |
调研与需求获取 | 30 | 60 |
撰写《学生“创新能力提升计划”项目申请表》 | 120 | 150 |
任务三 | 60 | 100 |
任务四 | 220 | 260 |
小组讨论 | 40 | 70 |
原型设计 | 180 | 200 |
任务五 | 70 | 80 |
总结:
本次项目设计了背包问题知识社区系统的快速原型模型,经历了知识理论的学习,实践项目调研,数据分析,原型设计等一些列过程。起初我们小组在决定做APP还是网页的问题上具有分歧,于是在问卷调查中设置了这个问题,最终决定做APP,团队中出现观点不一的情况常见,我们都需要不断磨合,寻找合适的方法促进团队成长。
团队项目在分工时,每人做原型设计的一部分功能,导致最后发生了每个人都有自己的特点,整合时需要再次调整界面等问题,于是组长主持会议,团队再次协作,解决问题。再次明确了团队协作的重要性。