这个作业属于哪个课程 | 软件工程23春季学期社区 |
---|---|
这个作业要求在哪里 | <结对第一次作业–原型设计> |
团队成员 | 222000115 222000125 |
这个作业的目标 | 在本次作业里,我们需要设计一个平台,通过图表等形式来直观显示<澳大利亚网球公开赛>的选手信息、正式赛每日结果等。平台应具备以下功能:选手排名、每日赛程、详细赛况、晋级图以及尽量发挥自己的想象能力,设计出一个交互友好的原型,介绍澳大利亚网球公开赛的举办背景 |
其他参考文献 | 《构建之法》、CSDN博客 |
文章目录
原型链接
gif展示
PSP表格
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 30 |
• Estimate | • 估计这个任务需要多少时间 | 20 | 50 |
Development | 开发 | 400 | 500 |
• Analysis | • 需求分析 (包括学习新技术) | 150 | 200 |
• Design Spec | • 生成设计文档 | 80 | 60 |
• Design Review | • 设计复审 | 30 | 30 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
• Design | • 具体设计 | 30 | 50 |
• Coding | • 具体编码 | 270 | 300 |
• Code Review | • 代码复审 | 60 | 50 |
• Test | • 测试(自我测试,修改代码,提交修改) | 100 | 120 |
Reporting | 报告 | 100 | 120 |
• Test Repor | • 测试报告 | 10 | 10 |
• Size Measurement | • 计算工作量 | 30 | 30 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 20 |
合计 | 1340 | 1590 |
效能分析
原因
- 最开始计划的时候,我们是建立在从自己读题和其他人的说辞来预估这次的作业消耗时间,对于软件的使用上手速度和互相配合磨合的过于乐观,没有计算到这部分的额外时间消耗。
- 低估了博客的文本量,最开始读题的时候没有注意到每个地方所需要的文本字数的要求,以至于低估了一部分的时间消耗。并且这次做的网页会突然有一定的变动,博客也需要进行相应的变动,这部分时间消耗也没有考虑到。
- 软件使用的不熟悉,导致有一些想法的实现过于缓慢,并且有的实现很困难,这部分的额外时间消耗超出了预期,导致时间超出。
教训
- 在拿到项目时应该从更客观并且考虑更加周到的来估算预计消耗的时间,并且要自己额外预备至少大概百分三十的额外时间来应对出现的状况和由于自身不足所需要额外消耗的时间。
- 对于项目的要求需要仔细阅读,了解甲方的需求才能提高自己的实际开发效率,避免不必要的思考和改动
- 在平时的学习中,自己可以多摸索一些尝试一些软件的使用,完善自己的能力,使用过的软件多了,再适应新的软件的速度就会更快,更容易上手。
原型设计
I、NABCD模型分析
1. N(Need,需求)
上次我们的输出结果只是通过简单的文字来显示,不够直观、具体,对用户不够友好。因此在本次作业里,我们希望能设计一个平台,通过图表等形式来直观显示选手信息、正式赛每日结果等。平台应具备以下功能:
- 选手排名
只需完成Singles Aces Leaders的排名,需要展示Name,Rank,Matches,Aces- 每日赛程
展示每一天的赛事,显示比赛类型(女单男单等),比赛场地,参与选手,比赛时间和比分,且获胜者姓名加粗显示
支持通过切换日期查看不同的赛程
支持点击查看详细赛况- 详细赛程
展示比赛的成绩,包含本场比赛参赛选手,每个小场比分和获胜选手,最终比赛的获胜选手等- 晋级图
可以通过晋级图看到选手的晋升路线,晋级图中要有选手和姓名和比分,并高亮显示晋级选手
鼠标移动到某一场比赛需要高亮或显示边框提示
由于数据量较多,可以从第四轮(4th Round)开始
2. A(Approach,做法)
- 使用了整体导航栏置于最上方,便于用户直观地获取信息。
- 选手排名页面显示各个运动员的姓名,比赛,得分。
- 每日赛程,添加了一个顶部导航条,可以通过鼠标拖动,点击后跳转显示不同的比赛信息。
- 晋级图中,鼠标触碰到某一场比赛时可以高光信息。比赛信息从4th开始,有左右点击按钮可以切换显示。
- 赛况中添加了下拉菜单,可以选择比赛的轮次。
3. B(Benefit,好处)
- 简单方便,利于用户交互,可以直观地获取自己想要看到的数据。
- 网页的形式利于用户访问和操作,无需下载和配置环境就可以在多端使用。
4. C(Competitors,竞争)
- 其他与澳大利亚网球赛有关的页面和APP。
- 优势:
1.界面干净,功能直接,便于用户简单查看数据。
2.便于后续页面维护,可以扩展其他功能。
3.无需注册就可查看,也没有广告,给与用户足够的自由度。- 劣势:
1.缺少别出心裁的小设计(如有趣的动态效果)。
2.不如其他已经完善的各大应用,可以完成更大量数据的操作。
3.网站本身的性能与安全性比不过成熟的平台,可承担的访客量有限。
5. D(Delivery,推广;Data,数据)
- 可以先明确自己的目标人群,在学校的熟人中推广,收集用户关于产品的评价和建议。然后结合专业人士的帮助,进一步优化自己的产品,更明确出自己的特点。最后可以通过各个APP(WX、QQ、B站、抖音)进行推广。
- 总之需要保持不断进取的态度。
II、学习和使用墨刀原型设计工具
- 墨刀是一款打通产设研团队,实现原型,设计,流程,思维导图一体化的在线协同工具。
III、设计过程
首页
实现了一个导航栏,可以跳转到各个页面
选手排名
每日赛程
这里仅实现了day1 和day2 的点击
详细赛程
晋级图
比赛历史
IV、遇到的困难和解决方法
- 问题一 : 不熟悉墨刀的使用和操作。原本不了解墨刀的具体组件和实现操作,在工作的时候很多有创意的动态效果都不知道如何实现。
解决方案 :在B站上学习相关视频,和同学交流技术。
收获:作为一名程序员,不光要学习编程语言,同时也要学习许多软件的应用。培养自己的信息收集能力是至关重要的,这对自己扩展知识面大有帮助。
- 问题二 :晋级图的高光显示。
解决方案:一开始使用的是表格来展示信息,后续添加高光效果时发现墨刀的表格没有边框效果,只能添加一个矩形和表格组合,设置状态1和状态2以及事件来实现。
收获:在进行产品开发前,要对具体的实现效果进行推敲。这样才能避免在开发过程中需要新增功能时不会推翻之前的设计。
- 问题三: 为统一页面的大小部分信息需要能切换展示。
解决方案:在每日赛程部分存在有大量的比赛日期,如果全部挤在页面中会显得不美观。在B站上学习了组件的局部滑动,使得用户可以通过鼠标滑动查看。同样的晋级赛信息庞大,使用了切换按钮来帮助用户浏览。
收获:更熟悉了状态切换的使用,可以通过动态的切换来实现一些更美观有趣的显示。
- 问题四 :第一次体验团队编程项目,虽然对队友很熟悉,但是也是第一次一起共同完成项目,双方在完成作业的风格很不一样,所以会出现一定的冲突。我们都对项目不熟悉,所以不知道怎么分配各自的工作量,也没有进行很好的交流协作,在最后整合时发现各自的风格相差过大。
解决方案:在第一次各自做了一个页面之后,我们发现风格相差很大,所以鉴于第一次团队完成任务,我们后边的项目都是坐在一起完成的,所以双方所花费的时间是几乎一样的,这样算是平分各自的工作量。并且也借鉴他人的完成项目的过程,让自己这次的合作变得更加高效。坐在一起完成工作,随时进行交流,方便随时更改自己的方案,询问同伴的想法,最后整合的时候才水到渠成,没有再如整合各自做的第一个页面那般麻烦。
收获:在这次的团队任务中,虽然不是团队代码任务,但我也深刻体会到了团队对于一个产品开发的重要性,没有团队就没有好的产品。并且在完成团队项目时,我们应该增加双方之间的交流,各自按时完成自己的任务,方便后边的整合项目的按时开展,才能准时提交成品。团队开发就是得学会与他人协作交流,一同完成项目能够大大提高工作开发的效率,这样也才能集思广益一起开发出好的产品。
结对编程
结对过程
结对的感受
- 222000115林函:任何产品的开发都离不开团队的协作。和不同的人合作可以扩展自己的idea,也会得到不同的想法和不同的技术的提升,这次实践也是以后工作团队合作的一次缩影,在这次实践中,我也算是初步感受到了团队编程的魅力。
- 222000125章文佳:在团队开发的过程中,我的感触很深,团队项目跟个人项目有着都会遇到解决不了的问题而去询问小组之外的人这一相同点,在成长的过程中离不开与他人的交互,团队编程则拉大了这一交互的比例,我们需要跟队友沟通分配,安排各自的工作量,分享自己的技术栈,提高互相的编程能力。
评价
- 222000115林函:很强的队友,善于规划开发的具体安排,耐心沟通,总是能提出崭新的美化设计。后期善于落实细节和明确产品特点。
- 222000125章文佳:林函是一个时间观念很强的队友,会督促着你完成自己的进度,完成自己的工作的效率很高,并且会发现产品的一些缺陷,并且带动一起完成修改。
心得体会
一个好产品的开发是不可能在一个人的手里完成的,一个真正的好的产品是需要多人集思广益,多人不断优化改进,并且经过时间的打磨,在不断的更新迭代下,经久不衰。这次的团队编程,让我体会到了团队及编程在面对新问题和工作量大的问题时的可以集思广益,提高解决问题的效率和开发项目的速度。并且我明白了一定要多动手,学习的过程如果只是看视频是远远不够的,脑子觉得会了但是手上还是敲不出代码,任何知识技能都是在使用的过程中慢慢熟练的。最主要的是要多于他人交流配合,不能总是自顾自的,学会与他人协作能够大大提高工作开发的效率,这才是团队的意义所在。