软件工程实践总结---揣着一口袋的知识完美落幕
| 这个作业属于哪个课程 | 2022年福大软件工程实践-W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
| 这个作业的目标 | 1、课程回顾与总结 2、个人技术总结 |
| 其他参考文献 | <<构建之法>> |
目录
- 一、课程回顾与总结
- 1、寒假作业博客链接
- 2、新看法新解答
- 3、产生的新问题
- 4、每个阶段收获的知识或能力
- 4.1、需求阶段
- 4.2、设计阶段
- 4.3、实现阶段
- 4.4、测试阶段
- 4.5、发布阶段
- 5、结合经历收获的理解或心得
- 5.1、个人项目
- 5.2、结对编程
- 5.3、团队项目
- 6、自我评分
- 6.1评分目标
- 6.1自我评分
- 二、个人技术总结
- 1、链接
- 2、概述
一、课程回顾与总结
1、寒假作业博客链接
2、新看法新解答
-
A: 我还是认为
花费时间越多并不代表工作量越高
通过此次实践任务的工作来看,其实Web端在第二阶段冲刺的时候已经有很多工作是比较重复性的了,但是也花费了我们很多时间去完成,然后还有一些比较有难度的功能,比如文件上传等,也花费了我们较多时间,但是其实工作量并没有很高。
其次,由于我们对于技术掌握不够扎实,本来一个可能很简单的功能,我们花了超出本身需要花的时间去学习完成。
所以总结一下,我们还是要将技术掌握扎实,在学中做,在做中学,这样子才能在工作中更高效的去完成任务。 -
A: 寒假的回答(思考方式)我依旧认为是学生与职业程序员的一个区别。
其次在本次完成软工实践任务的时候,有时候遇到困难,会在CSDN一些问答网站上进去求助提问或者寻找答案,会发现一些职业程序员的解决方法比我们原本的更加的高效、简单,并且代码书写规范和习惯也很优美,我觉得这个是我们学生需要不断加强的一个点,不要为了完成功能去完成功能,当你完成这个功能以后,想一想,有没有更简洁优雅的代码方式。 -
A: 我认为作为学生团队的话,我感觉不应该仅仅只是一个流水线上的机器,我觉得每个人都应该
担负起这个团队的责任,不能将自己置身事外,因为我们是一个team,是一个整体,既然选择加入这个团队,首先应该完成团队布置给成员的任务,其次当其他组员有需要帮助的时候,也会及时伸出援手,我认为这才是一个团队成员应该在团队中完成任务的标准。
Q4、会不会有很多软件工程师可以更短时间内完成任务却特意花更长时间呢?
A:就本次实践经历来看,因为我们的团队分工任务是在冲刺时间之前就已经分工好了,并且每天需要完成的工作量也是提前布置安排的,所以这首先确保了我们团队的进度是正常的,其次我们团队大部分同学都能
合理安排时间,反而用更短的时间去完成需要更长时间完成的任务,然后利用节省下来的时间去帮助其他队友,所以我目前没有遇到这种可以更短时间内完成任务却特意花更长时间的软件工程师,但是我认为如果是在安排的时间段内完成任务,并且不影响团队的前提下,我觉得无可厚非。-
A:
git是一个非常高效、便利的工具,并且以后在工作中也是经常需要使用到的工具,利用git其实就可以比较完美的解决多人合作中的代码同步问题,并且还有备注功能,我们可以更好的去回溯代码等。
3、产生的新问题
- Q1:我比较想进一步了解,作为组长应该怎么样更好的去管理你的团队,如果遇到团队成员以及自己也解决不了的问题的时候,是如何解决的。
- Q2:在技术上,想要更深入的了解一下在真正实战过程中,前端人员工作的分配应该是按页面呢,还是按照功能进行分配,因为一个项目中有些页面中的功能都是重复的,如果一个人做一个页面是否会造成时间安排上的浪费等。
- Q3:在测试上,感觉没有一个很完整的测试流程步骤,比较想要了解公司发布一个软件的时候,当产品上线时,是如何进行完整的测试的。
4、每个阶段收获的知识或能力
4.1、需求阶段
- 在需求设计阶段我们学习了
NABCD模型,其主要是从需求、做法、好处、竞争、推广这五个方面来对我们的产品功能来进行分析,我认为这个模型让我进一步的从只会编写代码的升级到了如何站在用户的角度多维度的去思考问题,并且也能让我们的思维有所上升,比如当我们去使用其他软件的时候,也会想着我是用户或者我是开发者,这个功能或者交互我要怎么做更有利于用户使用或者如何进行更好的推广等。
4.2、设计阶段
- 在设计阶段,我们主要完成的是
数据库设计、用况图等设计,因为我们的角色功能较多,所以一开始对于数据库如何设计比较没有思绪,后来有查阅一些相关资料,我们在完成用况图等一些类图的基础上,再去实现我们的数据库设计就更加的轻松快捷,所以我觉得在设计阶段,UML图绝对是一个必不可少的好帮手,并且通过UML图,我们对于一些权限分配等功能的代码编写有了更加全面的认识。
4.3、实现阶段
- 在实现阶段,由于我负责的主要是
前端工作,所以对于VUE+element+Axios的使用需要比较娴熟,这个是必不可少的基本功,其次如何在完成原型图的基础上,去更加美化和优化我们的界面和交互也是一个需要不断探索的新技能,以及一些代码或者组件的复用,也是需要提前构思好的,前端不单单只是一个编写界面的功能,其要涉及到范围也是很广的,它不仅承接着和后端的数据交流工作,也承接着和用户的交互工作,所以我认为我在实现阶段,不仅提升了自己的前端知识,也收获了如何更高效的和后端沟通解决问题。
4.4、测试阶段
- 测试阶段,我们的项目我主要是负责界面的一些交互功能是否有出现bug,
用户使用体验感和界面展示效果是否达到了我们的预期,但是正如我在上述提出来的问题,我认为这一阶段我们可以改进的地方还是非常多的,我们还是没有对与测试有一个很完善的体系,每个功能的测试步骤,以及如何进行改善等,感觉比较凌乱,只是达到了一个这个功能不出错,那么我测试就算完成的一个基础。所以希望后面有机会,可以进入真正的社会实战,去体验一下前端的测试工作要如何进行。
4.5、发布阶段
- 在发布阶段,因为我们前后端是分离的,所以我们只需要将前端代码部署到服务器上即可,在这个阶段我主要学会了如何在服务器上去
安装一些我们需要的环境,比如APache等,如何学会了如何打包我们的项目,生成dist包,放入相应的服务器的目录下,学会了一下简单的Linux的操作指令。并且也发布了问卷,让使用者对我们的产品进行反馈,并且在第一个冲刺阶段发布的第一个版本中,完善了我们的原型图,第二个冲刺阶段完善了第一阶段的不足。
5、结合经历收获的理解或心得
5.1、个人项目
- 个人实战的时候算是首次接触到比较
完整的需求,因为之前的实践作业都比较开发性,并没有将要求给的比较详细,所以在完成个人实战项目后,再去测试时,发现有很多题目的需求没有完善,所以在个人项目阶段也算是为后续打下了一个基础,告诉我们题目或者以后进入社会用户的需求是需要仔细阅读分析的,要在明确需求后再进行代码编写。5.2、结对编程
- 结对编程阶段我是负责后端代码的编写,由于之前没有接触过比较完整的前后端分离的项目,所以结对编程阶段
锻炼了自己的自学能力,我觉得我在这个阶段很大的一个收获是一定要提前主动去学习摄入一些知识,而不要等到需要用的时候再来学,那样子可能会有点来不及。5.3、团队项目
- 团队项目的两次冲刺阶段是我比较完整的模拟目前市面上公司团队合作的模式进行的一次项目,我觉得不仅锻炼了我们团队
分工的能力,而且还提升了我应该如何和前端、后端、测试人员沟通的能力,并且最重要的是有一个非常深刻的领悟,一个团队的领导人真的非常重要,他决定了会带领你非常高效率的完成任务还是低效率的完成任务!
6、自我评分
6.1评分目标
| 目标 | 具体内容 |
|---|---|
| 目标1 | 理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。 |
| 目标2 | 掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。 |
| 目标3 | 掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。 |
| 目标4 | 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。 |
| 目标5 | 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。 |
| 目标6 | 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。 |
| 目标7 | 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。 |
6.1自我评分
| 目标 | 分数 | 理由 |
|---|---|---|
| 目标1 | 90 | 本次软工实践的项目主要从“以人为本”出来,目的都是为了便利同学老师的生活并且完成任务过程中,遵循软件产品积极向上的开发理念。 |
| 目标2 | 90 | 在完成项目功能过程中,会模拟使用者对软件进行测试,致力于改善交互等,让用户使用起来更加方便,并且掌握了绘制原型等工具,便于表达需求。 |
| 目标3 | 87 | 在项目开始前,完成了需求分析、数据库设计等体系结构设计方法,并且在后续开始编写代码中,也按照前期设计的模型进行改良,最后构建了一个较为满意的软件系统设计方案。 |
| 目标4 | 87 | 在现有的大众的软件上,通过多次使用后,在其基础上进行创新改进,设计出更加令用户使用方便的软件。 |
| 目标5 | 86 | 在软工实践组队过程中,锻炼了与后端、APP端、前端同学的沟通能力,对于如何进行高效沟通并且快速定位问题、解决问题有了更深的认识,对于编写产品的需求规格说明书等文档撰写方法也有了更加标准规范的认识。 |
| 目标6 | 86 | 在两次冲刺阶段,冲刺日都会有站立式会议的开展,通过大家分别展示当天完成的内容,以及提出自己代码的一些疑问,团队其他成员帮忙进行解决等交流,使我们具有了更团结更融洽的团队氛围,并且懂得了如果以后我们担任组长需要了解的开会的流程等。 |
| 目标7 | 89 | 掌握了如何对一个大任务进行拆分,将其拆分成小任务,并且对任务工作时间量进行估计,选择合适的规划软件等来对我们的项目进行每日进程管理。 |
二、个人技术总结
1、链接
2、概述
Axios是一种基于promise的Ajax的网络请求库,本次个人技术总结主要讲解了Axios的常用使用和如何进行封装以及GET和POST使用误区。
相关推荐
windows窗口界面的单机4人麻将游戏源码
除了普通打牌外还包括听牌考验,打牌时还能设置为明打、用户玩家默打、委托给程序等。
基于双闭环控制的反激式Flyback开关电源闭环仿真设计【仿真+文献+Mathcad计算书】
内容概要:本文围绕“基于双闭环控制的反激式Flyback开关电源闭环仿真设计”展开,提供了完整的仿真模型、技术文献及Mathcad计算书等资源。核心内容涵盖反激式开关电源的基本工作原理、双闭环控制系统(通常包含电压环和电流环)的设计与实现方法,以及利用仿真工具对其动态响应、系统稳定性、负载调整率等关键性能指标进行全面验证。文档不仅详细展示了电路参数的设计计算过程,还特别强调了理论分析与工程实践的紧密结合,适用于从事开关电源研发的技术人员进行深入学习与项目复现。; 适合人群:具备电力电子技术基础,熟悉开关电源基本原理,且拥有一定仿真软件操作经验的电气工程、自动化及相关专业的研究生、科研人员和工程师。; 使用场景及目标:① 掌握反激式开关电源双闭环控制系统的完整设计流程与工程实现细节;② 学习并实践基于仿真工具的电源系统建模、参数扫描及性能分析方法;③ 通过配套的Mathcad计算书深入理解关键设计参数的理论推导与计算依据,有效提升独立设计与优化能力。; 阅读建议:建议读者结合所提供的仿真文件、技术文献和Mathcad计算书进行系统性学习,首先理解整体设计思路与架构,然后逐步剖析各个功能模块的实现原理,并亲自动手操作仿真以验证和深化对理论分析的理解,从而达到理论与实践融会贯通的学习目标。
YOLO26算法室内手持遥控器目标检测+训练好的模型+111张数据集+pyqt可视化界面.zip
附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[遥控器(remote)] · 训练集:105 张 · 验证集:4 张 · 测试集:2 张 · 总计:111 张 该数据集聚焦于室内环境中手持遥控器的精准识别,旨在为智能家居系统、家电控制终端及人机交互设备提供高质量的视觉检测基础。通过覆盖多种握持角度与拍摄姿态,数据集有效模拟了真实用户操作场景,具备高度实用价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 60 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9950** mAP50-95 | 0.7089 Precision | 0.9860 Recall | 1.0000 train/box_loss | 0.8613 train/cls_loss | 0.4944 val/box_loss | 1.2640 val/cls_loss | 0.4215 【训练过程分析】 我从头到尾盯着了 60 轮的训练曲线。前 30 轮,loss 情况是先快后慢。初期,模型似乎对识别遥控器这种特定物体有了飞快的反应,box_loss 跳水式地下降,从 1.2 下降到 0.9,然后 cls_loss 也快速收敛。不过,过了 30 轮,loss 曲线开始变得平滑,不再有显著波动,整体都保持在较低的水平,特别是 box_loss 没有出现明显的平台期或反弹现象。这说明模型在前半程对目标定位准确,且收敛... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。
基于PSO-DWA无人机三维动态避障路径规划研究(Matlab代码实现)
内容概要:本文研究了基于粒子群优化算法(PSO)与动态窗口法(DWA)相结合的无人机三维动态避障路径规划方法,并提供了Matlab代码实现。该方法利用PSO进行全局路径优化,以搜索从起点到目标点的最优路径,同时结合DWA实现局部动态避障,使无人机能够在飞行过程中实时规避静态或移动障碍物。通过融合两种算法的优势,不仅提升了路径规划的全局寻优能力,还增强了对复杂动态环境的适应性与响应速度。文中系统阐述了算法的设计原理、实现流程以及在三维空间中的仿真验证过程,充分展示了该方法在复杂场景下的有效性、鲁棒性及工程应用潜力。; 适合人群:具备一定MATLAB编程基础,从事无人机导航、智能优化算法、路径规划及相关领域的科研人员、研究生及工程技术人员。; 使用场景及目标:①应用于无人机在城市空域、灾害救援、智能巡检等复杂动态环境下的自主导航与实时避障任务;②为智能交通系统、移动机器人、无人车等领域的路径规划问题提供先进的算法参考与技术支持;③支持科研工作者复现、改进PSO-DWA混合算法,推动智能路径规划领域的创新研究与实践应用。; 阅读建议:建议读者结合提供的Matlab代码进行动手实践,按照文档结构逐步学习算法原理与实现细节,重点关注PSO与DWA的协同机制、参数配置策略及三维仿真环境的构建方法,深入理解算法在动态避障中的决策逻辑,以便更好地掌握其核心技术并应用于实际科研与工程项目中。
车间调度基于非支配排序遗传算法NSGAII的柔性作业车间调度问题研究(Matlab代码实现)
内容概要:本文系统研究了基于非支配排序遗传算法(NSGA-II)的柔性作业车间调度问题(FJSP),旨在解决多目标优化背景下制造系统中的复杂调度难题。通过Matlab代码实现,该方法能够有效处理多个相互冲突的优化目标,如最小化最大完工时间(makespan)、均衡机器负载以及降低生产成本等。文中深入阐述了NSGA-II算法在FJSP中的具体应用机制,涵盖问题建模、染色体编码策略、适应度函数构造、非支配排序与拥挤度距离计算等关键技术环节,并结合典型算例开展仿真实验,充分验证了算法在求解质量与收敛稳定性方面的优越性能。研究还进一步分析了关键参数对优化结果的影响,提出了合理的参数配置方案,增强了算法的实用性与鲁棒性。; 适合人群:具备一定优化算法理论基础和Matlab编程能力的研究生、高校科研人员以及从事智能制造、生产调度系统开发的工程技术人员。; 使用场景及目标:①为制造企业实现高效的柔性作业车间调度提供可行的智能优化方案;②作为多目标优化问题的经典案例,为NSGA-II算法的学习、复现与改进提供完整的代码参考与实践指导;③支撑学术研究中关于智能算法在生产调度领域应用效果的验证与对比分析。; 阅读建议:读者应结合Matlab代码与文中的算法流程进行对照学习,重点关注非支配排序、精英保留策略及选择操作的代码实现细节,建议通过调整种群规模、交叉变异概率等参数来探究其对Pareto前沿分布的影响,并尝试在不同的FJSP标准算例上进行测试,以深化对算法性能的理解和掌握。


