一、学期回顾
1.1 回顾对于软件工程课程的想象
软件工程(实践者的研究方法)是一门研究如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,并运用计算机科学理论和技术以及工程管理原则和方法,按预算和进度要求开发和维护满足用户要求的软件产品的学科。在本学期尚未开始上课前,我对这门课程十分憧憬,因为大学前两年学习的都是偏向底层和基础的内容,作为一名计算机专业学生,大学生涯已经过半,却没有什么拿得出手的项目经验,所以我希望通过这门课程来提高自己的水平。一开始上这门课的时候,我以为理论课会涉及到实践编程中一些编程语言的技巧,但是理论课程教的是软件工程的基本概念如软件开发生命周期、需求分析、设计模式、测试方法等,一开始我觉得这些知识离我们很远,但是随着实践课程的逐步开展,我慢慢能够理解这些理论知识在实际项目中的应用,体会到软件工程理论知识对完成一个完整的项目的重要性和必要性。总的来说,我对课程的目标和期待有:丰富项目经验,积累高效开发方法,提升编程能力。通过一个学期理论和实践的所学所练所得,我认为在丰富项目经验方面达到了我的期待和目标,回想之前多次熬夜最终完成的个人作业,结对作业和团队大作业,每次完结后都觉得自己的能力提高了一个层次,还是挺有成就感的。但是我觉得在积累高效开发方法和提升编程能力方面还有不足,虽然在理论课程上学到了不少高效开发方法,但实际在团队大作业开发过程中应用到的方法并不多。编程能力方面,虽然本学期学习熟悉了python,vue和javascript语言,但是我觉得我对这些语言的理解还不够透彻,仍有很大的提升空间。
1.2回顾在这门课程中的投入与产出
在软工实践课程当中我编写了大约5000行代码。
在团队项目中我参与了行趣的设计与开发,我在其中所承担的角色为前端设计员。
软工实践的各次作业分别花费的时间:
作业 | 花费时间 |
---|---|
第一次个人作业 | 3.5h |
第二次个人作业 | 15.5h |
第一次结对作业 | 14.5h |
第二次结对作业 | 61h |
第一次团队作业 | 5h |
第二次团队作业 | 10h |
现场编程作业 | 3.5h |
团队作业alpha冲刺 | 50h |
团队作业beta冲刺 | 20h |
在软件工程课程上花费的时间
累计时间 | 实际周均时间 | 预计周均时间 |
---|---|---|
216h | 16h | 17.5h |
1.3令你印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?
令我印象最深刻的是现场编程开发作业--记账本开发。因为这一次作业的限定时间是最短的,需要在一个下午完整一个项目的开发,感觉压力很大。还记得那天中午吃完饭后在床上躺着睡不着,然后一点半就收到群里的信息,马上前往教室查看题目要求。那一次的作业也是我们小组十个人第一次一起编程,经过三个多小时的交流协作,最终顺利完成了任务。我觉得现场编程的顺利完成对后续小组大作业开发的帮助挺大的,增进了小组成员的交流协作能力。
二、总结收获
2.1 展开说说你的软工实践故事
本学期软件工程令我收获满满。个人编程中让我接触到了python开发,深刻感受到了python开发的便捷性和高效性。同时让我第一次作为一个游戏开发者的身份,在对游戏的基本功能确定后,我不断的调整UI设计,尽可能的增加附加功能,不断优化自己的作品。结对编程给我的经验总结是最丰富的,为后续所有编程作业的开发积累了丰富且可贵的经验。我跟我的舍友是一组的,这很有利于我们对项目的交流协作。首先,由于我们两个人的开发经验都不算丰富,我们先是在网络上寻找高效的辅助开发工具,发现uniapp平台开发十分高效便捷,于是在学习了大致用法后,第一次通过github协作开发。整个项目开发过程中,我对前端开发的理解加深了许多,包括对交互反馈的设计优化,不同手机型号状态栏适配方法,优化数据等待处理......开发末尾阶段,两个人之间对项目细节的多次优化处理和github协作的经验总结,对后续项目开发有很大帮助。现场编程通过利用结对编程的经验技巧,虽然过程比较紧张,但总体完成的比较顺利。团队项目实践是整个课程的重心部分,我认为期间最重要的是协作,在整个开发过程中小组内开展过多次站立式会议和团队编程。我作为前端组的小组成员,与前端组组长和后端组的交流颇多,通过不断的交流协作,实现前后端的对接和优化,为项目顺利完结做出自己的贡献。
2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?
python--Python是一种高效、易学的编程语言,学习Python帮助我快速构建原型,处理复杂的逻辑以及进行数据处理。在游戏开发中,使用Python实现了游戏的核心逻辑,极大地提高了开发效率。
pycharm游戏开发--PyCharm可以与Pygame等Python游戏开发框架配合使用,帮助快速构建游戏原型和开发游戏逻辑。
vue--Vue用于构建用户界面。易于上手,构建高效、性能高。通过学习Vue,我能够更清晰地组织前端代码,使用组件化开发方式提高了代码的可维护性。
javascript--在学习JavaScript后,我能够编写更加复杂的前端逻辑。
uniapp进行app开发。--uniapp基于Vue框架,可以利用熟悉的Vue语法开发应用程序,同时uniapp拥有成熟的插件市场,活跃的开发者社区和完善的官方文档,极大提高了我项目开发的效率。
2.3 技术之外,这门课程还给你带来了哪些方面的提升?
系统化的思维方式
学习了需求分析、设计、编码、测试等软件开发的全生命周期管理方法,使我在面对复杂问题时,能够分步骤、系统化地进行规划和解决,更擅长从全局出发制定开发计划,并兼顾每个阶段的细节。
团队协作能力
软件工程中强调的是团队开发,课程中通过小组项目体验了团队合作的全过程,如任务分配,代码合并和冲突解决。学会了在团队中有效沟通,合理分配任务,利用github协作完成项目。
文档与规范意识
在软件工程中,文档贯穿整个开发过程,包括需求文档、设计文档、作业文档等。课程培养了我规范撰写文档的能力,让我意识到清晰、完整的文档在团队开发和项目维护中的重要性。我养成了撰写规范文档的习惯,使团队成员和后续开发者能够更高效地理解和维护项目。
持续学习的能力
软件工程课程中强调技术栈的更新和方法论的迭代,让我认识到技术和工具需要随着需求不断更新,如使用大语言模型,利用ai协助开发。我逐渐培养了自我驱动的学习能力,希望能够快速适应新的开发环境和技术挑战。
2.4 如果还有什么想记录的或者想说的,就写在这儿吧!
首先,软件工程课程让我对自己的职业方向有了更明确的认识。通过项目实践,我发现自己更倾向于做面向用户体验的开发,比如前端交互设计和移动应用开发。我希望未来能专注于开发实用且美观的软件,同时不断探索如何通过技术改善用户的生活。
其次,给未来Z班的学弟学妹们留下一句鼓励:珍惜学习和实践的过程。理论知识可能很枯燥,实践过程可能很艰难,但收获一定会有很多。
最后,是一些值得记录的图片:
三、致谢
一个学期的软工工程之旅终于画上了句号,在这段充满挑战与收获的旅程中,我想:
感谢我的结对搭档高鑫源,我的所有团队伙伴
我们一起完成了多个项目作业,经历了从零开始的迷茫到逐渐磨合的默契。我们一起熬夜修复Bug和优化功能,每一次的沟通,交流,修改和完善都是值得的,每一次顺利完成的喜悦感和成就感令我印象深刻。
感谢张栋老师和吴越钟老师
老师在课堂上清晰地讲解每个知识点,能及时解答同学的困惑,友好亲切地沟通交流协调,从软件工程理论到实际开发经验,让我对软件工程这门课程留下了美好的记忆。
感谢自己
一路上虽然困难重重,但我从未放弃,一步步完成了自己的目标和任务,不断突破和成长。