个人作业——软件工程实践总结&个人技术博客
这个作业属于哪个课程 | 2020春|S班(福州大学) |
---|---|
这个作业要求在哪里 | 个人作业——软件工程实践总结&个人技术博客 |
这个作业的目标 | 课程回顾,总结收获 |
作业正文 | 本文 |
其他参考文献 | 暂无 |
一、回望
(1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
之前一直希望学校多开此类课程,并亲自动手参与一定量的工作以获得进步和检测自己的不足,结束后,我对软件工程的概念有了更加透彻的理解,知道即使是一件很复杂的任务也是有章可循的,想必对将来做工程类工作有很多帮助。经过几次作业后,个人比较显著的进步应该是能够尽快融入一件复杂的事务并理解清楚自己所承担的角色和任务。不足的方面仔细想其实依旧不足,因为课程的实践阶段与我而言过于快餐式,深度思考的时间非常有限,我并不能较为扎实的掌握所有接触过的技能。
(2)你在第一次作业的个人简历中描述了这门课程结束后,你预期你将增长的能力、技术、技能,并绘制了学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
我曾经写下的预期值是:工程能力:更加贴近实际应用的编程与合作编程;技术技能:版本管理、文档和自动化部署工具。回顾所学,我本学期参与了个人、结对以及团队编程,每一次完成的应用都是具有实际意义的,比如疫情统计系统、疫情可视化系统和校园帮扶软件。尤其是前两次与疫情系统有关的作业,我认为这个选题非常棒,因为非常贴合实际并且被大家需要,并且我可以从用户的角度出发,扩展出一些比较创新的功能。在这几次作业中我预期中的工程能力确实得到了提高。技术技能中,除了自动化部署工具没有用到,其他两项则是在团队任务中需要经常接触的。
(3)哪一次作业让你印象最深刻?为什么?
1.结对第二次作业——某次疫情统计可视化的实现
首先是因为我和队友的coding能力都比较薄弱,这次作业对我而言难度是比较大的。和队友确定了用python编写后,我立即上网搜集各种博客进行学习,从技术的角度而言,几乎是从零开始的一次作业。意外之喜就是学会了利用爬虫获取数据,对我们后来的工作很有帮助!然后几乎每天都加班吃宵夜胖了好几斤。
2.团队项目alpha冲刺
对比之前的团队工作,本次冲刺明显难度增加,而我自己之前并没有项目所需的框架知识基础,后端编码语言也是不熟悉的python,所以在实践中遇到了很多困难,即使有一些参考资料,也因为个人时间安排不周没有来得及精读。底层知识薄弱导致我编码的速度也很慢,甚至用了两天时间才完成数据库部分的编码。在这次团队冲刺中,我和另一位组员共同接手了笔记功能模块的后端编码,整个过程困难重重,在组长提供了多次帮助,以及其他组员的不断协调的情况下才完成了作业。
(4)在课程问卷中,我们统计了你在课程上花费的精力和提升;现在请你再次将这些数据罗列出来,作为个人的记录。包括以下内容:
统计一下,你在这门软件工程实践中,一共完成了多少行的代码; | 4.5k左右 |
---|---|
累计花了多少个小时在软工实践上?平均每周花多少个小时? | 累计432h,平均72h |
学习和使用的新软件; | Axure,postman |
学习和使用的新工具; | Git |
学习和掌握的新语言、新平台; | python |
学习和掌握的新方法; | 接口测试 |
工程能力的提升; | 编码能力提升、学习了flask |
团队合作上的提升; | 学会共同处理难点 |
其他方面的提升; | 还没想到 |
- 软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 耗时(h) |
---|---|
软工实践寒假作业(1/2) | 5 |
软工实践寒假作业(2/2) | 60 |
结对第一次—某次疫情统计可视化(原型设计) | 48 |
团队作业第一次—团队展示和项目展示 | 3 |
结对第二次作业——某次疫情统计可视化的实现 | 60 |
团队作业第二次—团队Github实战训练 | 4 |
团队作业第三次—项目需求分析 | 18 |
团队作业第四次—项目系统设计与数据库设计 | 24 |
个人作业——软件评测 | 8 |
团队作业第五次——站立式会议+alpha冲刺 | 50 |
团队作业第六次——beta冲刺+事后诸葛亮 | 50 |
个人作业——软件工程实践总结&个人技术博客 | 5 |
二、团队总结
软件工程实践是大学里少有的团队协作经历。
你是组员还是组长?你觉得你自己在哪些地方做得好?你觉得自己还有什么可以改进的地方,具体可以怎么改进?
我是组员,我在组内征集意见是分配任务时比较积极,善于提出自己的见解并尝试一些新的任务。我觉得自己的编码能力比较薄弱,如果没有组长组员的帮助,很难独立完成一个模块。改进的方法是多学习计算机基础课程,学习优秀的项目代码,并动手练习。
你觉得你的组长(组员们)在哪些地方做得好?你觉得ta(ta们)还有什么可以进一步提升的地方,有什么具体的建议吗?
我的组长项目经历丰富,编码能力强,掌握的技术比较多。希望ta与组员多些沟通,制定和分配任务时更多的考虑下合理性。
《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
萌芽阶段:
在团队github实训前应该属于萌芽阶段,那时候大家都不太熟悉,组内氛围比较生涩,工作缺乏计划和章程。磨合阶段:
从项目需求分析开始大家就在逐渐磨合了,因为任务量大,每天组长都需要询问进度和调整,组内沟通也频繁起来。规范阶段:
之后应该都在规范阶段,尤其是两次冲刺,每天会议和进度填报必不可少,有问题及时提出组内共同解决。
从开发的角度,你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?
我担任后端开发,很多地方都没完成,由于难度较大,学习时间也比较长,我并未在短时间内进行知识与应用的转化。我觉得我不太适合该角色。
三、人月神话
1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。
(1)研发出符合用户需求的软件
应用暂未公开发布,暂未调研
(2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
总规划:
时间区间 | 任务内容 | 完成状态 |
---|---|---|
2.26-3.7 | 完成组队、团队展示 | 已完成 |
3.15-3.15 | 完成Github团队实训 | 已完成 |
3.16-3.21 | 完成项目原型设计 | 已完成 |
3.22-3.28 | 完成需求规格说明书 | 已完成(当前进度) |
3.29-4.4 | 完成项目系统设计 | 未开始 |
4.5-4.11 | 完成项目数据库设计 | 未开始 |
4.12-4.18 | 基础的小组功能和计划功能实现 | 未开始 |
4.19-4.26 | 小组计划交互以及计划发布功能优化 | 未开始 |
4.27-5.2 | 细节优化、测试完成 | 未开始 |
5.3-5.10 | 引入教务处相关对接 | 未开始 |
5.11-5.18 | 优化人机交互和帮扶活动 | 未开始 |
5.19-5.26 | 优化项目管理 | 未开始 |
5.27-6.6 | 修复开发过程中已知BUG | 未开始 |
6.7-.... | 保持app维护、升级与推广 | 未开始 |
alpha:
时间 | 后端 | 前端 |
---|---|---|
4.26 | 熟悉Pycharm的基本使用,阅读代码规范 | 熟悉Android Studio的使用,阅读《第一行代码》 |
4.27 | 数据库的构建以及环境配置 | 完成登录 注册 找回密码等基础功能 |
4.28 | 完成注册、登录、找回密码等基础功能 | 完成认证 学业情况 笔记模块布局 |
4.29 | 完成认证、获取成绩接口、笔记模块等基本功能 | 完成修改头像 个人中心 |
4.30 | 完成获取头像、获取资料等用户基本操作接口 | 完成发布笔记 查看笔记 我的笔记 辅导模块布局 |
5.01 | 完成笔记模块的基本功能以及辅导模块的初始化构建 | 完成发布辅导 查看辅导 我的辅导 |
5.02 | 完成预约等基础功能 | 完成辅导预约 |
5.03 | 完成辅导模块所有功能 | 完成查看辅导记录 辅导评价 |
5.04 | 迭代更新完善接口代码 | 完成辅导列表 辅导搜索 |
5.05 | Alpha版本程序测试 | Alpha版本程序测试 |
beta:
时间 | 后端 | 前端 |
---|---|---|
5.27 | 整合接口文档,任务细分,依赖安装 | 完成帮扶列表查看,提交帮扶申请 |
5.28 | 消息模块构建,帮扶模块数据库构建,完善默认头像等 | 完成我的帮扶、打卡、综测申请 |
5.29 | 消息模块代码编写,熟悉flask-socketio库 | 完成消息列表、发送消息、接收消息 |
5.30 | 完善消息模块代码,编写帮扶模块代码 | 完成后台首页、添加帮扶对象 |
5.31 | 完善后台代码,测试帮扶模块、消息模块接口 | 完成批准帮扶、综测申请审核 |
6.01 | 代码整合、复审 | 代码复审与优化 |
6.02 | 服务器架设,Beta版本程序的测试 | 对遗留的bug进行修复 |
(3)并且通过数据展现软件是可以维护和继续发展的。而不是找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
项目采用前后端分仓库管理,可以继续发展。
2、写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,字数不限,开放命题,可以使用你自己喜欢的方式表达
经过历次作业,我认为在团队工作中编码能力强是最基础的要求,这属于硬实力的范畴,需要长期积累。
四、建议
对下一届同学的建议,或者对于开学初的你,对于大一的你,你有什么建议和想要告知的呢?请写下你对后来人的期许。
1.对于下一届同学,或者大一的同学,你想说:
计算机基础课程的深度学习很有必要,有条件的话可以通过万能的互联网寻找名校的课程资源。同时上课不练手,等于白上课。
2.对于自己今后,你有哪些建言?
计算机学科的热门领域不断更迭,希望自己尽快找到感兴趣的领域并深耕。
3.对于助教工作,你有哪些建议?
暂无建议。
4.对于软工实践课程,你有哪些建议?对于软工实践课程的上课形式和内容,你有什么具体的意见和建议?在哪儿需要强化或者剔除?
时间安排在大三下有些不太合理。选题可设置开发类和算法类,供不同兴趣的同学选择。
五、个人技术总结
概述:Flask-Admin是一个功能齐全、简单易用的Flask扩展,可以为Flask应用程序增加管理界面。用这样一种方式实现管理后台,开发者拥有应用程序的外观和功能的全部控制权。