软件工程实践总结——提升自己、不将就
| 这个作业属于哪个课程 | 202302软件工程 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
| 这个作业的目标 | 回顾软件工程实践、进行课程和个人的总结 |
| 其他参考文献 | 《构建之法》等 |
目录
目录
- 一、课程回顾与总结
- 1.以前的博客链接
- 2.再次解答曾经思考的问题
- 3.新的问题
- 二、五个阶段的收获
- 1.需求阶段
- 2.设计阶段
- 3.实现阶段
- 4.测试阶段
- 5.发布阶段
- 三、心得与理解
- 四、七大课程目标的掌握程度
- 目标1
- 目标
- 目标3
- 目标4
- 目标5
- 目标6
- 目标7
- 五、个人技术总结
一、课程回顾与总结
1.以前的博客链接
2.再次解答曾经思考的问题
Q1:在项目或程序比较复杂的情况下,如何高效率的进行程序理解?
A1:在处理复杂项目时,可以通过将程序分解为较小的模块逐步理解各个部分,并通过清晰的命名规范和注释提升代码的可读性。优先阅读文档和注释,了解程序的设计思路和功能。使用调试工具逐步执行程序,观察其行为,编写单元测试和集成测试来验证程序逻辑。通过图表和流程图等可视化工具展示程序结构和数据流动,有助于更直观地理解程序。遇到困难时,向同学、教授或网络社区寻求帮助,与他人讨论问题从而加深理解。
A2:AI辅助编程在某些方面可以说是一种有潜力的技术,但并不是银弹。以下是我对这个问题的看法:
AI辅助编程在提高效率和降低学习门槛方面确实有显著作用,能够自动完成、纠错和生成代码,减少重复劳动和错误,并通过智能建议和提示帮助初学者更快地掌握编程知识。然而,AI并不是解决所有问题的银弹。开发人员仍需具备扎实的编程基础知识,理解代码的质量、效率和可维护性。AI工具只能作为辅助,最终的责任和判断仍在开发人员手中。
A3:花费时间多并不一定代表工作量就越高。工作量的多少与时间的长短之间并不是简单的线性关系。某些任务虽然工作量小,但由于技术难度、沟通成本或者团队协作等因素可能导致时间耗费较长。相反,有些工作量大的任务,借助高效工具和方法,以及熟练的技能,可能花费的时间相对较少。因此,重要的是有效地管理时间和工作量,合理安排任务优先级,使用高效工具和方法,不断提升技能水平,以在较少时间内完成更多工作,提高效率和质量。
A4:代码量并不直接决定个人的编码能力。编码能力更多地与代码的质量、效率、可维护性以及解决问题的能力有关,而不仅仅是代码的数量。一个编码能力强的人能够写出简洁高效、结构清晰、易于理解和维护的代码,即使代码量较少。而编码能力较弱的人可能会写出冗长、混乱、难以理解和维护的代码,即使代码量较多。因此,在评估一个人的编码能力时,应综合考虑代码的质量、效率、规范性、可读性和可维护性等多个因素,而不仅仅是代码的数量。
Q5:通过代码交流是否优于直接交流,能够避免双方各司其职的情况吗?
A5:通过代码交流和直接交流各有其优点和局限性,不能一概而论哪种方式更优。代码交流的优点在于它是一种具体的表达方式,能清晰地展示思路和实现方式,避免了语言交流中可能存在的歧义和误解。通过代码交流,可以更深入地讨论技术细节,避免对抽象概念和流程的描述,使得讨论更具体和有效。同时,代码交流能留下记录,便于后续查阅和理解,特别是在团队协作和跨时区工作的情况下更为重要。然而,直接交流也有其优点,比如更即时和灵活,能快速解决问题,尤其是在紧急情况下。直接交流能更好地传达情感和语气,有助于建立良好的团队氛围和合作关系。通过面对面交流,可以更容易地就问题进行深入讨论,并及时解决可能存在的误解和分歧。然而,无论是代码交流还是直接交流,都不能完全避免双方各司其职的情况。这取决于沟通的方式、环境以及参与者的态度和意愿。有效的沟通和协作需要双方共同努力,注重理解对方的观点和需求,以达成共识并推动工作的顺利进行。
3.新的问题
在学习软件工程的过程中、AI无疑给了我巨大的帮助。在享受AI便利的同时我也不禁会想一个问题:
Q6:在AI时代学习软件工程的意义
在AI时代,学习软件工程具有重要的意义。随着人工智能技术的飞速发展,软件工程将成为AI应用的核心。
二、五个阶段的收获
1.需求阶段
收获的知识:在需求阶段,最大的知识收获是学习如何有效地收集、分析和管理项目需求。这包括学习需求分析方法、需求文档编写技巧以及需求管理工具的使用。
收获的能力:能够理解客户需求并将其转化为可执行的计划。这需要具备沟通技巧、分析能力和项目管理能力,以确保项目的需求得到准确理解和满足。
2.设计阶段
收获的知识:在设计阶段,最大的知识收获是学习如何设计可靠、可扩展和易于维护的软件架构和系统设计。这包括学习设计模式、架构风格以及系统建模方法。
收获的能力:能够将需求转化为系统设计,并考虑到系统的整体结构、模块之间的关系以及数据流动。这需要具备抽象思维能力、系统性思维能力和逻辑思维能力。
3.实现阶段
收获的知识:在实现阶段,最大的知识收获是学习如何编写高质量、可维护和可测试的代码。这包括学习编程语言、编码规范、代码重构技巧以及版本控制系统的使用。
收获的能力:能够将设计转化为实际的可执行代码,并遵循良好的编码实践和团队合作规范。这需要具备编码技能、问题解决能力和团队合作能力。
4.测试阶段
收获的知识:在测试阶段,最大的知识收获是学习如何设计和执行有效的测试方案,以确保软件质量和稳定性。这包括学习测试类型、测试技术、自动化测试和性能测试等。
收获的能力:能够评估软件系统的质量,并发现和修复潜在的缺陷和问题。这需要具备分析能力、测试技能和沟通能力,以确保项目的质量和可靠性。
5.发布阶段
收获的知识:在发布阶段,最大的知识收获是学习如何规划和执行软件的部署和发布流程,以确保软件能够顺利地交付给最终用户。这包括学习部署流程、配置管理、版本控制和持续集成等。
收获的能力:能够管理软件的发布过程,并处理可能出现的问题和挑战。这需要具备组织协调能力、沟通能力和问题解决能力,以确保项目按时交付并满足用户需求。
三、心得与理解
在进行软件工程实践时,尤其是在结对编程和团队项目中,我深刻体会到了团队合作和技术实践的重要性。
首先,团队合作是软件开发中不可或缺的一环。在这两个项目中,与队友密切合作、相互协助是取得成功的关键。我们需要共同讨论问题、分享想法,并相互之间进行代码审查,以确保代码质量和一致性。团队成员之间的良好沟通和合作可以提高项目的效率,同时也能够减少错误和问题的出现。
其次,技术实践是软件工程实践中必不可少的部分。通过使用Spring Boot框架来开发游泳竞赛网页,能够快速搭建起一个稳健的后端系统,并且利用框架提供的功能来简化开发流程。而在开发微信签到小程序时,熟悉微信小程序的开发规范和接口调用方法,这也是一种对技术的实践和应用。不断学习和尝试新技术,不仅能够提高个人的技术水平,也能够为团队项目的成功做出更大的贡献。
最后,项目管理和时间管理也是软件工程实践中需要重视的方面。在团队项目中,我们需要合理分配任务,制定清晰的计划,并确保每个成员能够按时完成任务。及时的沟通和协作可以帮助我们及时发现和解决问题,保证项目顺利进行。
通过结对编程和团队项目的实践,我不仅学到了技术知识和技能,还培养了团队合作精神、沟通能力和项目管理能力。这些经验对我未来的职业发展和团队合作都有着积极的影响。
四、七大课程目标的掌握程度
目标1
100 分。 在本次课堂学习中,我对软件工程师的职业道德规范和实践要求有了更深入的了解,也意识到软件产品对社会的影响。我能够积极倡导积极向上的软件开发理念,并在实践中尽可能地践行。
目标
90 分。通过结对编程和团队编程的需求分析实践,我掌握了需求分析的全过程,并能够准确地表达客户的需求。我还能够使用一些需求表达工具,但还需要进一步的实践和学习来提高准确性和规范性。
目标3
85 分。我在软件开发的全过程中学习了体系结构设计方法和基本设计原则,并设计了模型。但在形成设计方案时,我需要更深入地理解和应用面向高效可靠的服务组件设计方案或软件系统设计方案。
目标4
80 分。我能够执行从组件到软件系统的技术评测,并具备设计模型的评判能力。但在创新设计意识和优选设计方案方面,我还需要更多的实践和经验。
目标5
90 分。在软工实践里,我多次编写文档,能够遵循软件开发各阶段文档标准,掌握了一些文档撰写方法。在规范性和表达准确性上算是不错,但是还有提升空间。
目标6
90 分。我具有良好的团队意识和合作技能,在团队编程实践里能够有效地与其他成员开展沟通和协作,并在团队中扮演着积极的角色。
目标7
80 分。我能够辨别具体软件项目管理中涉及的构成要素,掌握了一些软件规模和工作量的估算方法。我也了解了一些工具规划软件进度的方法,但在管理复杂软件工程项目方面,我还需要更多的实践和经验。
五、个人技术总结
相关推荐
全面掌握现代软件工程的理论与实践
软件工程是IT领域中的重要学科,它不仅仅关注软件的开发,还涉及了软件从概念提出到产品退役的整个生命周期。在这一章节中,我们将简要介绍现代软件工程的基础知识,包括其核心原则、关键活动、以及行业标准等,为后续章节内容奠定坚实的基础。需求规格说明书(Software Requirements Specification,SRS)是描述软件产品功能和性能需求的详细文档。它是开发团队和客户之间沟通的重要桥梁,也是软件开发的法律和合同基础。撰写需求规格说明书时,需要遵循一定的结构和内容。
mongodb-linux-x86_64-ubuntu2004-8.0.13.tgz
mongodb-linux-x86_64-ubuntu2004-8.0.13
chromedriver-linux64-159.0.8135.0(Canary).zip
chromedriver-linux64-159.0.8135.0(Canary).zip
三相四桥臂电压不对称跌落补偿动态电压恢复器DVR(Simulink仿真实现)
内容概要:本文围绕三相四桥臂动态电压恢复器(DVR)在电压不对称跌落情况下的补偿能力展开,重点介绍了基于Simulink平台构建的仿真模型,用于研究和验证DVR对电网电压不平衡的动态补偿性能。系统采用三相四桥臂逆变器结构,利用其独立的中性线控制能力有效处理零序分量,结合多准PR(Proportional Resonant)控制策略实现对正负序电压分量的精确跟踪与快速响应,从而提升在不平衡负载或电网故障条件下DVR的补偿精度与系统稳定性。文中提供了完整的仿真模型及相关参考文献,涵盖控制算法设计、系统建模与参数整定等关键技术环节,适用于复杂电能质量问题的研究与教学演示。; 适合人群:电气工程、电力电子与电力系统相关专业的研究生、科研人员及从事电能质量治理的技术工程师;具备一定的电路理论、自动控制原理和Simulink仿真基础者更佳。; 使用场景及目标:①研究动态电压恢复器在三相电压不对称跌落工况下的补偿机制与控制策略;②掌握三相四桥臂逆变器在不平衡条件下的建模与控制方法;③深入理解多准PR控制器在正负序分离控制中的应用,提升对电能质量调节装置的设计与仿真能力; 阅读建议:建议结合提供的参考文献与说明文档,逐步搭建并调试Simulink仿真模型,重点关注控制器参数设计与系统动态响应特性,通过设置不同类型的电压跌落场景(如单相跌落、两相短路等)来验证控制策略的有效性与鲁棒性。
【MIMO无线编码】在瑞利衰落信道中比较2x2和4x4的BPSK调制系统(Matlab代码实现)
内容概要:本文通过Matlab代码实现,在瑞利衰落信道环境下对2x2和4x4 MIMO系统采用BPSK调制的性能进行仿真与比较,重点分析不同天线配置下的误码率(BER)表现,旨在探讨MIMO系统中天线数量增加对无线通信可靠性和传输性能的影响。研究涵盖了信道建模、信号调制解调、接收端检测算法等关键环节,并通过蒙特卡洛仿真获得统计结果,直观展示了MIMO技术在对抗多径衰落方面的优势。; 适合人群:具备通信原理基础知识和Matlab编程能力的高校学生、科研人员及从事无线通信系统设计的工程技术人员。; 使用场景及目标:①理解MIMO系统在瑞利衰落信道中的工作原理与性能评估方法;②掌握BPSK调制解调及典型MIMO检测技术的Matlab实现;③通过仿真对比不同规模MIMO系统的性能差异,为系统设计提供参考依据。; 阅读建议:建议读者结合Matlab代码逐段运行并观察仿真结果,深入理解各模块功能,同时可尝试修改参数(如信噪比范围、仿真次数、天线数目)以探究其对系统性能的影响,从而加深对MIMO无线编码技术的认知。


