73
社区成员




项目 | 内容 |
---|---|
这个作业属于那个课程 | 软件工程 |
这个作业的要求在哪里 | 第三次个人作业 |
我在这个课程的目标是 | 获得软件工程方面的知识,提高自己的编程能力,团队协作能力。开发一款令自己满意的软件。 |
这个作业在哪个具体方面帮助我实现目标 | 梳理一下自己整个软工课程学习过程中的收获,通过反思达到更好的学习效果 |
之前的问题看到这一篇博客
下面是我现在对于这些问题的理解:
在结对编程与两人合作一文中,邹欣老师提到了许多两个人之间磨合的策略与路线。
但有一点没有覆盖到,我也很疑惑,关于两个人合作的时候,我时常会有一种心态,就是感觉我应该提一种要求,但是也提多了也会感觉有一种“负罪感”,这也属于是磨合的过程吗。有什么办法克服这种心理。
在Scrum/Sprint一文中,提到了Scrum在实践中可能会遇上的问题,可能会流于形式。但想Scrum如果严格执行为每天的会议,很容易会导致这个问题,因为有的时候,这几天的任务可能就是很重需求就是很模糊,大家可能根本也就干不出来什么东西。这个时候每天的会议不仅仅会流于形式,而且会破坏士气。
我认为Scrum Meeting的开展周期可以分阶段开展,而不是按照时间开展。
在邹欣老师的讲义设计阶段Spec中,提到了两个写spec的例子,一个是外星人系鞋带,一个是三峡的防水等级。两个例子都是非常具体的和有趣的。同时还提到了spec最大的两个问题是乏味和时间。但是文中并没有提到如何有效解决这两个问题。
我在其他活动中接触过社科类的同学怎么设计一个问卷,当时了解到的一个方法很有用处。
讲义中提到引导性倾向是一个很大的问题。问卷有一个很大的问题就是区分有效的问卷和无效的问卷,所以有的时候设计一些带有明显倾向的傻瓜题,可以有效的区分有效的问卷和无效的问卷。
问题定义不准确这也是文中提到的一个问题。但我认为这是一个需要折中的问题,太明确的是or不是问题,可能会导致用户的回答不准确,但加入一个没有关心过的选项,则能够有效的区分用户的需求。
在用户界面设计一文中,提到了你姥姥的遥控器的例子,在前面也讲到过典型用户和典型场景的概念。
我认为实际应用中,典型用户可能可以分为几类,这个时候,我们或许需要给前端界面做一些可选项(而且是很容易找到的可选项)。就比如姥姥的遥控器可能需要一个大字体的显示,但是对于年轻人来说,功能丰富一点可能更好。这个时候,我们可以在界面上加一个“老年模式”和“年轻模式”的切换按钮,这样可以有效的解决典型用户的问题。
当然,遥控器这么做会很麻烦,但是在软件界面上,这是一个很好的解决方案。
我们进行了详细的需求分析,使用NABCD的分析方法进行了相关工具的详细调研,我对于软件工程的“需求”来源,如何进行分析有了更加深入的认识。
根据需求,进行功能规格和技术规格的设计,这也是我第一次在进行开发前,进行如此详细的设计工作,设计的重要性还是体会到了的。另外还有一点比较重要的心得就是,设计的时候需要考虑优先级,以及在后续的开发过程中,需要灵活的调整设计。
我主要进行了代码的管理以及前端的美化工作,此前我从没有完整的学过一遍CSS,在学习完之后,感觉真的能够得心应手不少。另外,代码的管理也是一个很重要的环节,我对于git的操作等有了熟悉。另外,这也是第一次着手更改这么大一个Web项目,overleaf整个项目结构和设计思想都有很多值得我学习的地方。
在这一阶段,我主要学习到了如何进行科学全面的测试,功能测试,性能测试,安全测试这一整个完整的矩阵,我认为这是我在软件工程中最重要的一个环节,也是我的一次重要的收获。
发布阶段非常的重要,发布之后的问题收集这也是上面提到的问卷问题,或许现在最有效率的还是微信群直接对接开发人员,其实想来也是,符合直觉,没有程序上的障碍,没有什么比面对面交流更能传达信息了。(这对小项目确实有效,但细想,假如是大项目,这种方式就不太适用了)
维护阶段也是一个很重要的环节,但是软工课程似乎没有涉及到?最后一节课qsgg的发言也让我有很深的感触,这几乎是自己大学很多项目的写照,WeaveX可能要走向社团维护的开源项目道路,希望它能够继续长大,成为我们最开始梦想的那样。
总体来讲,这门课程让我对于软件工程有了更加深入的认识,对于软件开发的整个流程有了更加清晰的认识,对于团队合作也有了更加深入的认识。这一次PM的经历也让我懂得了许多道理,总体来讲,团队内部上下还是一条心的,收获了很多宝贵的回忆。