软工实践总结&个人技术博客
这个作业属于哪个课程 2021软件工程实践
这个作业要求在哪里 软件工程实践个人总结&个人技术
这个作业的目标 对一学期的课程学习进行总结
其他参考文献 《构建之法》


第一部分

问题链接

问题链接

问题解答

  • 问题一: 大多数人的思维方式是不一样的,一个问题解决也有多个解决方法,两个人结对编程过程中自己在解决问题,同时也在看对方解决问题,思维在自己和对方的解题思路中不断跳跃,这样花费的时间不会更多吗?怎样才能找到适合结对编程的搭档呢?怎么和搭档在合作中达到1+1>2的效果呢?关于如何结对编程有相关的理论方法吗?比如如何达到高效合作。
    • 解答:首先在开始编程前要同意代码规范,方便在结对过程中阅读对方的代码。在开发过程中,虽然两个人对于解决问题的思维不一样,但是只要在编码前合理划分任务,将有联系问题划分给同一个人做,就不会出现花太多时间在阅读对方代码并理解的问题上,而且在结对编程过程中,遇到问题可以直接问队友,效率高。对于合适的结对编程队友如何寻找,我认为结对编程的队友要在技术上和项目相关,其次是两人能够沟通。在结对编程过程中,因为有随时的复审和交流,程序各方面质量都取决于一对程序员在中较高的那一位,这样程序中错误少,质量高,会省下很多的修改和测试时间。关于达到高效合作主要方法有在编程过程中不断对代码复审,对于正确的错误要正确的给予反馈,用合适的方法让对用听进去。
  • 问题二: 一个刚组成的软件开发团队,彼此都还不是很了解,如何选择适合的开发流程呢?这几种开发方式有比较低风险的吗?如果在团队合作过程中,发现一开始的方式有问题,但内部的调动又会消耗大量的精力,这值得半途换开发流程模式吗?
    • 解答:首先了解所有的团队开发流程模型,再根据团队的成员组成或者项目性质选择合适的团队开发流程。比如 :团队中一些企业开发了流程实质上是由行政领导主导或者由公司老板驱动则可选用老板驱动的流程。团队开发流程模型可能是在团队的开发过程中逐渐形成的,而不是提前选择的。发现问题了,就要及时改正止损,最大限度减少损失。
  • 问题三 :如果存在这样希望降低用户损失(但不是很大的影响)更改界面,但是会使界面变得不美观的情况,应当如何选择?
    • 解答:产品是为了解决用户需求而产生的,关于软件产品的一些额外要求都要在完美解决了用户需求的前提下而存在,所以在UI上也是不能使拥护造成损失,完美实现功能是首要的,其次才是界面美观。
  • 问题四:文中列举了好几个例子,可以看出,在这阶段也投入了大量的时间和精力,软件开发每一个阶段都很重要,在实际项目中,整个团队在每个阶段的时间怎么分配才合理呢?哪个阶段的时间应该花最多的时间和精力。
    • 解答:软件开发周期可分为:计划与管理(15%)、分析/需求(10%)、设计/集成(15%)、实施/功能测试(30%)、度量/评估/验收测试(15%)、工具/环境/变更管理(10%)、维护(开发过程中的修补:5%)。软件开发流程中的每一个阶段都很重要,有些团队会错误的认为编码阶段应该占最多时间,实则不然。
  • 问题五:团队里出现‘不做事’、‘不让别人做事’等之类的人,应该怎么办呢,是耐心的沟通交流,还是粗暴的踢出。
    • 解答:这个问题我没有找到正确的答案,《构建之法》第十七章中说到“当你接受了一个任务,许下了一个承诺,那么你就有责任按时按质交付,否则就会受到领导的追究”,团队中的每一个人都不仅仅要为自己负责,也要为团队和产品负责,所以我们都不能成为‘不做事’或者‘不让别人做事’的人。

五个阶段的收获

  • 阶段一:需求
    • 在《构建之法》书中提到NABCD分析框架,我们小组根据此分析按照五个方向对产品进行调研分析。对整个产品进行了构思,在脑海里描绘整个产品,以及调查、分析、剖析产品应该有什么功能及如何设计比较合理,如何能满足用户的需求,什么样的功能能成为亮点等。
  • 阶段二:设计
    • 在设计阶段团队里的成员各司其职,后端人员设计数据库、类图等后端文档,前端人员编写功能文档等。文档设计合理,对接下去的开发实现工作提供了良好的基础,形成了编码时的合格参照文档。对于我个人来说,在实践中学会了如何细分一个产品的功能、如何划分产品功能才合理。包括对原型设计能力也有了进一步的提升。
  • 阶段三:实现
    • 在实现阶段,学会了小程序的开发。在做这次项目之前都没有尝试过小程序开发,在编码过过程中也提高了自己解决问题的能力,以及查阅资料的能力。在编码阶段主要是负责前端开发,也完成了部分后端开发,学会了微信小程序的云开发。
  • 阶段四:测试
    • 在测试阶段我主要负责前端UI测试。《构建之法》中也描述了几种测试方法,但是对于UI测试好像没有测试方法介绍。在测试过程中发现本来以为无误的代码还是存在错误或者缺陷,再不断改进,在实践中不断提升写代码能力。
  • 阶段五:发布
    • alpha阶段结束后团队的产品就得进行展示,所以我们在alpha阶段做了最主要的功能,一些辅助功能留到了beta阶段再完善,也符合《构建之法》中的内容。我们团队开发的是小程序,我们在微信小程序中发布了我们的产品,负责发布的同学也花费了很多时间和精力,看到自己参与的项目展示出来时收获的是喜悦和自豪。

心得

  • 这次实践团队开发过程相对来说都比较顺利,团队中队长组织得很好,任务安排合理也基本满足了每个人的需求,队友之间和和谐互助,在编码遇到问题的时候也得到了队友的帮助,使得改bug过程也没有浪费太多时间,在项目开发过程中也收获了很多,包括对一个项目开发过程的了解以及项目开发中每个阶段需要注意的地方和可能忽略的地方,对项目开发有了实质的了解和经验。还有对《构建之法》的学习,学习到项目开发中的理论知识,作为实际开发的基础。当产品真正完成并且发布感到开心吧,过程虽然比较辛苦,但看到了收获也满足了。

第二部分

个人技术博客

  • 概述
    微信小程序联表查询问题,在数据库中有两张表,需要联合两张表查询内容,通过某一键值链接。
  • 个人技术--联表查询
posted on 2021-06-28 11:46  zzong  阅读(78)  评论(1编辑  收藏  举报