软件工程实践教学手记2

能治疗白癜风的医院 http://m.39.net/pf/a_4331581.html

CodeWisdom-教学手记

软件工程实践教学手记-2

导语

年春季学期继续给复旦大学软件学院大二本科生教授《软件工程》课程。因为疫情的影响,在过去的七周里我们一直采用网络教学的方式。有赖于同学们的认真投入和助教的大力协助,课程教学工作开展还比较顺利,而且利用网络在线交流的方式加强了课堂互动。同时,我们还依托华为软件开发云DevCloud提供的在线开发和部署平台开展课程实践。有感于同学们在课程实践中的不断成长和一些出人意料的出色表现,特以此教学手记系列记录之。

背景介绍

开学至今我们已经布置了三次课堂实践任务,我们课堂实践任务的总体目标是以迭代化开发的形式完成一个基于SpringBoot+Vue框架的在线论文投稿和审稿系统。

任务序列

任务一

以个人为单位完成,主要内容是熟悉DevCloud及Git版本库,Fork助教准备好的Web项目内容,利用Maven完成项目构建并在华为云上进行在线部署。

任务二

以小组为单位完成(一般4人一组),任务是实现系统的注册、登录以及会议申请等基本功能,并在华为云上进行部署。

任务三

任务也是以小组为单位,完成系统中的会议的申请与管理相关的功能,同时也需要在华为云上进行部署。在此次任务中,我们首先要求同学们进一步完善第二次任务中实现的项目,对未完成的功能进行完善,对于测试中暴露出来的bug进行修复。此次任务中我们提出了四个方面的要求:保证会议申请与管理相关功能实现的正确性和完整性;使用DevCloud和Git版本库来确保开发过程的规范性;实践单元测试,要求项目中的代码测试覆盖率不低于80%;提升代码质量,使用DevCloud代码质量检查工具进行代码质量检查,解决检查中暴露出来的代码质量问题。

相比于第二次任务而言,在本次任务中同学们对于Git、Maven、DevCloud以及SpringBoot+Vue框架都更加熟悉了,并且在功能实现、开发过程规范性和代码质量等方面都有了很大的提升与进步,各个小组基本都圆满完成了任务,但是也暴露出来一些问题。

问题1

不少组同学都忘记了按照指定的tag进行编译构建。

问题2

界面的用户友好性部分同学没有考虑到。在检查过程中发现,虽然同学们大多很好地完成了所要求的功能,但界面交互上存在一些不太友好的情况:点击PCMember邀请之后系统没有任何提示;PCMember拒绝邀请之后无法看出拒绝的状态;无法查看当前会议已经有了多少PCMember了。

问题3

实验报告中反映出少数同学还并没有意识到前后端分离开发中建立好接口的契约的重要性,出现了实验过程中并没有完全按照契约编写的情况,导致最后接口联调时出现了种种意外情况,一定程度上拖慢了进度。

问题4

一些小组代码缺陷还比较多。有的组虽然采用了单元测试,但测试用例本身不完整,因此导致一些bug未被发现。此外,有些小组的代码重复率比较高,存在一些不合理的重复代码。

问题5

一些小组代码缺陷还比较多。有的组虽然采用了单元测试,但测试用例本身不完整,因此导致一些bug未被发现。此外,有些小组的代码重复率比较高,存在一些不合理的重复代码。

课堂展示

和上次实验一样,这次我们同样邀请了一些组进行课堂分享。通过分享展示,我们发现一些组在某些方面已经展现出了很好的工程化开发素养,在软件开发中进行了很多良好的实践。

课堂展示·1

有的小组对软件设计有很好的掌握,对项目的前后端都做了充分的设计。比如对前端的各种组件结构进行了详细完善的设计。

课堂展示·2

有的小组学会了测试驱动开发(Test-DrivenDevelopment,简称TDD),通过JUnit工具编写测试用例,对类或方法进行单元测试,并保证了一定的代码覆盖率。

课堂展示·3

有的小组对前后端交互的接口也做了非常明晰的设计,避免了后期因为前后端接口的不明确而对项目整体进度的影响。

课堂展示·4

有的小组为了保障代码质量,还进行了代码评审。通过这种代码同行评审的手段,可以帮助开发人员更好的发现代码中的缺陷。

课堂展示·5

有的组学会利用华为云DevCloud的代码质量检查工具,对前后端的项目代码进行了全面的代码扫描,并根据质量检查结果,对存在质量问题的代码进行了修改和完善。

当然,同学们分享的除了成功经验之外也有一些经验教训。例如,有的小组因为对于项目的需求了解的不充分,分析的不全面,没有从用户的角度去进行需求分析,造成了后期改动较大的复工成本。

总结

通过这三次的实践任务,同学们已经已经初步掌握了版本库、单元测试、基于云的开发及部署等开发实践,熟悉了Web开发框架,同时对于团队协作开发模式也有了更深刻的理解。在接下来的实践任务中,我们将在迭代化需求变更的基础上继续加入缺陷报告与管理、软件设计、持续集成等方面的实践要求。

CodeWisdom

欢迎


转载请注明:http://www.zjiaren.com/yjly/11705.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了