软件工程实践总结_来日之路光明灿烂

222100303陈昕 2024-06-06 23:02:43
这个作业属于哪个课程2302软件工程
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标完成软工实践过程中的总结
其他参考文献构建之法、csdn

目录

  • 第一部分:软工实践心得总结
  • 一、收获和心得
  • 1.1五个阶段的收获
  • 需求阶段
  • 设计阶段
  • 实现阶段
  • 测试阶段
  • 发布阶段
  • 1.2理解和心得
  • 个人项目
  • 结对编程
  • 团队项目
  • 1.3对各个课程目标的掌握程度
  • 二、问题的思考和回答
  • 2.1以前问题思考的博客链接
  • 2.2对自己曾经思考过的问题再次进行解答
  • 2.3新的问题
  • 第二部分:个人技术总结
  • 2.1博客链接
  • 2.2技术概述

第一部分:软工实践心得总结

一、收获和心得

1.1五个阶段的收获

需求阶段

学会了利用NABCD(需求、方法,优点,竞争,delievery)模型更好的来分析产品需求。系统的需求分析能够帮助我们更好地分析和完善产品,发现需求不足并提出改进建议。通过模型系统的分析能让我们更全面的考虑,并不断完善产品规划。

设计阶段

在设计阶段学习了使用原型设计工具磨刀,并在结对编程和团队实践中运用。设计不仅要注重产品的功能性,同时也需要重视产品的审美性和用户体验。原型在设计过程中扮演着重要的角色,能够帮助我们更好地验证设计方案,并进行快速迭代。

实现阶段

在这一阶段,我了解了前后端的大概体系结构,软件开发的整体流程,包括前后端的相关技术包括vue、flutter、springboot等。并学会了部分测试手段,如接口测试。同时还需使用一些开发工具,如API管理工具和版本控制工具Git。

测试阶段

测试工作的体系是非常庞大和复杂的,包括功能测试、性能测试、安全测试等多种类型。我了解了使用黑盒、白盒等不同的测试知识。测试内容涉及接口、界面显示、压力测试等。通过实践,我也掌握了一些常用的测试工具的使用方法,包括apipost和jmeter等。

发布阶段

在团队应用的beta冲刺,我们进行了用户使用调研报告。通过调研我们可以更好的、更客观全面的了解我们的产品,了解其优缺点和待改进之处。产品发布后还需要持续关注用户反馈,及时修复bug,并根据市场变化不断迭代优化产品。同时也要了解如何组织发布过程,包括打包、部署、回滚等。

1.2理解和心得

个人项目

个人项目包括寒假作业,文件读取、软件测评

  • 寒假作业

进行了对过去的回顾,立足当下的思考和对未来的展望,制定了在接下来几个月的技术路线和期待的收获。在此时较为系统和清晰的对自我进行思考和也使未来更加清晰和明确。

初次了解git和基本操作。

  • 文件读取

本次作业内容真的挺多,学习了很多的新的知识,细节待处理处也很多,在本次作业中,巩固了个人的git操作做练习。同时学习了json解析,复习了c++编程。同时意识到了时间管理和合理任务安排的重要性。提高了个人抗压能力。

  • 软件测评

软件测评是一个全面,细致的过程。在这次作业中,我们对多个ai工具网站进行了功能(主要)方面的测评并尝试找出网站的bug和对网站进行打分排名。

结对编程

在结对编程阶段,进行了网站的从设计到实现的过程。在这一阶段初步进行了git的团队合作做。同时第一次开始运用NABCD模型进行需求分析和运用原型进行产品设计。开始上手学习相关开发技术和尝试进行网站的建立。

  • 合作和沟通能力、共同进步:我原先并没有flutter的开发基础,队友帮助我更快更好地上手。遇到问题时,一起讨论和共同思考也极大促进了开发效率,增强了搜索和解决问题的能力。合作在隐形中提高了我们的自觉程度和积极性,学会提前规划、注意把握进度,逐渐培养良好的开发习惯。
  • 学习能力:在本次任务,需要对学习原型设计和flutter开发两种全新技术,遇到的很多问题需要解决。在解决问题的过程中提高了自我思考能力,查错能力和信息检索能力。

团队项目

在团队项目阶段,完整经历了需求分析,原型设计,两次编程实现以及测试部署调研等过程。学习了开发的大概框架流程,熟练使用原型设计,学习和使用各类测试手段和相关工具。

  • 时间管理能力:在任务很多的时候,要合理的分配和管理个人时间,合理利用碎片化时间,劳逸结合和注重效率才能更好完成工作。
  • 抗压能力:大三下学期真的很忙碌orz.我们需要一个强健的体魄和良好的精神状态才能够更好的应对接下来的挑战。在以后的生活中要注重调整作息和调节心情心态。
  • 沟通能力:在团队合作中,沟通是非常重要的,良好的沟通能够事半功倍。要注意沟通时的语言得体和沟通技巧。

1.3对各个课程目标的掌握程度

目标理由分数
目标一:深入学习和理解软件工程师的职业道德规范和实践要求。通过寒假作业和实践过程的总结和反思。我意识到软件工程师肩负着为社会创造价值的责任,不能只注重技术本身,还要考虑软件对社会、健康、文化等的影响。我将努力树立正确的软件开发理念,在实践中发挥应尽的社会责任。90
目标二:掌握需求分析的全过程,熟练使用需求表达工具,提高需求分析建模能力。通过结对作业和团队实践的需求建模作业。我了解到需求分析是软件开发的关键环节,学习和使用墨刀等工具进行需求建模,同时注意软件ui设计。95
目标三:深入理解软件开发全过程,提高设计与实现能力。软件开发涉及多个环节。通过结对作业和团队实践的全程,我已具有一定了解,但在开发实现等方面还需加强实践。85
目标四:提升软件测试和优化设计的能力。在团队实践中,我负责了管理员端测试工作。在软件项目中,我能发现一定数量的bug并记录。学习了解了测试体系内容,并学习使用了jmeter和apipost等工具进行测试。95
目标五:规范文档编写能力,提高与业界同行交流的能力。文档编写是软件工程的重要组成部分,我在团队项目中有所实践,但还需进一步学习标准化的表达方式。同时,我也希望通过与同行的交流,不断提高自己的专业能力。92
目标六:增强团队协作和项目管理能力。在团队项目中,我学会了如何有效沟通协作,并在管理过程中不断优化。未来我将继续提升团队意识和管理技能,为复杂软件工程项目做好准备。90
目标七:掌握软件项目管理的基本方法和工具。我学习了估算工作量和进度,并使用相关工具进行项目管理。但需要进一步熟练。88

二、问题的思考和回答

2.1以前问题思考的博客链接

https://bbs.csdn.net/topics/618077449

2.2对自己曾经思考过的问题再次进行解答

Q1:软件的行为和用户的期望值不一样,就一定是 Bug 吗?

A1:我认为并不一定意味着一定存在Bug。Bug通常指的是软件在运行过程中的错误。然而,软件行为与用户期望不一致的情况可能有多种原因,并不都是由程序错误引起的。软件行为与用户期望不一致的有如:用户、开发者期望不一致;环境影响;开发者故意设计。

虽然原因多样,但是如期望不一致,环境因素(操作系统,硬件)影响带来的问题,还是一定程度的会影响到用户体验,个人观点认为:

对于期望不一致:开发者和用户需积极进行沟通,找到双方都愿意接受的办法。因为即使不属于bug但仍影响了用户体验。

对于环境因素:对产品进行修改和完善,使之能够更好的兼容不同环境,以提供更好的用户体验。

Q2:花费时间越多,代表工作量越高吗?

A2:我认为该观点不成立。影响工作花费时间的因素很多样:包括工作效率、个人能力、工作复杂度等等。软工实践的任务覆盖多个方面不同技术,不同任务的时间各有不同但绝对无法简单的用来衡量。

  • 越高的工作效率将极大缩短工作时间。且工作效率取决于时间、状态、压力、心情等多方因素。
  • 个人能力:每个人擅长的部分各有不同,对于擅长的内容完成速度一般也更快。
  • 工作复杂度:有的工作更多的像是重复的体力活(重复操作多,原理接近);有的工作则是涵盖多种方面更加更加多样化,完成也需要更多的时间去熟悉和上手。

Q3:需求分析:“最好”还是“最合适”?

A3:我认为选择使用"最好"还是"最合适"取决于具体的上下文和目标,但更支持"最合适"。

在实际软件开发中,需求分析更应该关注"最合适"而非简单的"最好"。团队常会追求理想化的"最好"解决方案,但现实中的资源、时间、预算等限制往往无法实现。需要团队与用户密切沟通,平衡各方面因素,找到在给定条件下最能解决用户问题的"最合适"方案。有时可以采取分阶段开发的方式,先交付核心功能,后续再逐步完善。关键在于理解用户的实际需求痛点,不断调整和优化,在有限资源下交付可用且满足关键需求的产品。

Q4: 如何让自己能够跟上软件工程发展,做一个永不落伍的开发者呢?

经过这学期的学习实践,我认为:

  1. 持续学习和保持好奇心是关键,积极了解和学习行业最新趋势和技术。
  2. 积极参与社区活动,如技术论坛、开发者社交群组等,与同行交流经验、分享知识。
  3. 保持实践和锻炼,参与开源项目、个人开发等,不断提升实际项目经验。这样能更好地理解和应用新技术。
  4. 掌握软件工程的核心原理和概念,如数据结构、算法、设计模式等,这些是理解和应用新技术的基础。
  5. 定期总结反思,找出自身不足,制定改进计划,不断提高编码质量、设计能力和解决问题的能力。

Q5:如何更好地预估完成任务的时间?

①了解任务的要求:在预估任务完成时间之前,我们可以充分仔细阅读任务需求.

②分解任务:将任务分解为更小的子任务或阶段,将任务划分并单独预估时间,最终相加得到总时长。

③基于经验和历史数据:根据过去完成类似任务的经验,参考历史数据来预估任务的完成时间。

④考虑风险和不确定性:提前分析可能出现的风险,预留出响应时间。

⑤能力和资源:成员个人能力以及团队所拥有资源也是影响时间的重要因素。

⑥利用专业工具和技术:使用项目管理工具、时间跟踪软件或其他相关的技术工具来辅助任务预估。

通过实践经历我认为第1、2、3点较为有效,尤其要重视第一二点。

2.3新的问题

  • Q1:如何区分一个好的程序员和不好的程序员呢?
  • Q2:软件开发是年轻人的饭碗,吃的是青春饭?
  • Q3. 在项目或程序比较复杂的情况下,如何高效率的进行程序理解?

第二部分:个人技术总结

2.1博客链接

https://bbs.csdn.net/topics/618863355

2.2技术概述

在软工团队作业——git实战初次接触到“压力测试‘这一概念,当时进行了限定时间内的学习和实践;在后面的alpha和beta冲刺里,也有进行一定的运用。

软件压力测试是一种性能测试的方法,目的是评估软件系统在高负载和极限条件下的行为和响应。通过施加超出正常使用范围的负载,压力测试可以揭示系统的性能瓶颈,发现潜在的故障点,从而确保软件在高并发、大流量等场景下的可靠性和稳定性。

...全文
522 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文聚焦于电力电子化电力系统中变换器端口导纳的黑盒提取与振荡模式辨识,结合Matlab与PSCAD仿真平台开展建模、仿真与分析。通过黑盒建模方法提取变换器在不同工况下的端口导纳特性,利用频域扫描与系统辨识技术获得其小信号阻抗模型,并基于广义奈奎斯特判据等频域稳定性分析工具对系统的潜在振荡模式进行精确辨识与评估。研究涵盖了小信号建模、阻抗测量、频域稳定性判据应用等关键技术,旨在解决高比例电力电子设备接入引起的次同步振荡、宽频振荡等稳定性难题,提升复杂电力系统的安全稳定运行能力。; 适合人群:具备电力系统分析、电力电子技术及自动控制理论基础的研究生、科研人员,以及从事新能源并网、微电网、柔性输电系统等领域的工程技术人员。; 使用场景及目标:① 掌握电力电子变换器的黑盒导纳建模方法,理解其在多变换器交互系统中的等效动态行为;② 学习并应用阻抗分析法进行系统级频域稳定性评估,深入理解振荡机理与失稳诱因;③ 熟练运用Matlab与PSCAD联合仿真平台,完成从建模、小信号扰动仿真、数据采集到频域分析的全流程研究,服务于新型电力系统稳定性分析与控制器设计优化。; 阅读建议:建议读者在掌握电力系统小信号稳定性理论的基础上,结合文中提供的Matlab与PSCAD仿真案例进行实践操作,重点关注阻抗提取的仿真设置、频率扫描策略、数据处理方法以及Nyquist判据在多输入多输出系统中的应用细节,以深入理解系统振荡的成因、传播路径及抑制策略。
内容概要:本文围绕基于混沌系统与DNA编码的彩色数字图像加密解密体系展开研究,提出了一种多层级、高复杂度的复合加密方案。通过结合混沌系统的伪随机遍历特性与DNA编码的海量组合优势,实现了对彩色图像RGB三通道的像素混淆与扩散,有效提升了加密算法的密钥空间与抗破解能力。研究重点包括加密解密流程设计、密钥敏感性分析,并系统性开展了抗噪声与抗裁剪性能测试。实验结果表明,该算法在面对高斯噪声、椒盐噪声及不同程度的图像裁剪攻击时,仍能较好地恢复图像主体结构与核心信息,展现出优异的鲁棒性与实用性。; 适合人群:具备一定图像处理或信息安全基础知识的科研人员、研究生及从事多媒体安全技术开发的工程技术人员。; 使用场景及目标:①用于保障彩色图像在开放网络环境中的安全传输与存储;②应对图像在传输过程中遭受的噪声干扰与恶意裁剪攻击;③为高鲁棒性图像加密算法的设计与评估提供理论依据和技术参考。; 阅读建议:建议读者结合Matlab代码实现,深入理解混沌序列生成、DNA编码映射及像素置乱扩散的具体过程,并通过复现实验验证算法在不同干扰场景下的性能表现。

122

社区成员

发帖
与我相关
我的任务
社区描述
FZU-SE
软件工程 高校
社区管理员
  • LinQF39
  • 助教-吴可仪
  • 一杯时间
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧