软件工程实践总结——七转八起 百折不饶

这个作业属于哪个课程2302软件工程
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标课程回顾与总结、个人技术总结
其他参考文献CSDN、《构建之法》

第一部分:课程回顾与总结

1. 问题回顾

1.1 问题博客

曾经解答过的问题博客

1.2 新的解答

在查看构建之法以及自我实践后,我对这些问题有了新的解答:
Question 1: 花费时间越多,代表工作量越高吗?

    从一般的软件工程视角来看,花费的时间并不一定代表工作量的高低。在软件开发过程中,工作量的评估不仅与时间有关,还涉及任务复杂性、需求清晰度、团队成员技能水平等因素。
    经过一个学期的学习和实践,我意识到:复杂任务需要更多时间进行设计、开发和测试,复杂性增加工作量,即使花费时间相同;需求模糊或频繁变更会增加项目工作量,确保需求明确能减少不必要的返工时间;经验丰富的开发者可能在较短时间内完成复杂任务,而新手则需要更多时间。总之,花费时间与工作量的关系复杂而多变,需综合考虑多个因素。在软件工程实践中,合理任务分解和工作估算是项目管理的关键。

Question 2: 结对编程在双方差距较大时的意义是什么?

    结对编程在双方差距较大时具有重要意义,在我之前回答的基础之上。
    经过一个学期的学习和实践,我意识到,经验丰富的一方可以通过指导新手,提高团队整体的技能水平和效率,而新手则可以通过实践迅速学习和提升自己。这种安排不仅能有效传授知识,还能促进团队合作与沟通。此外,经验丰富者在解释和指导过程中也能加深对知识的理解。结对编程在技能差距较大时,有助于实现知识共享和团队整体能力的提升。

Question 3:个人在团队中角色就像是一个流水线上的机器吗?

    在我之前回答的基础之上,经过一个学期的学习和实践,我意识到,个人在团队中的角色不仅仅像是流水线上的机器。虽然团队协作需要每个人完成特定任务,但软件开发更强调创造力、协作和沟通。每个成员都有独特的视角和技能,能为项目带来创新和改进。团队成员通过分享想法、解决问题和互相学习,共同推动项目进展。因此,团队中的每个人都是主动的贡献者,而不仅仅是执行机械任务的个体。

Question 4:在团队项目中,是选择有利于自身成长、最具挑战性的工作;还是有利于团队、有把握的完成的工作?

    团队项目中,选择有利于自身成长还是有利于团队完成的工作需要权衡。
    经过一个学期的学习和实践,我意识到,在项目初期或关键节点,优先选择有把握完成的工作,有助于确保项目按计划推进,避免风险。但在项目稳定或不太紧迫时,选择具挑战性的工作可以促进个人成长和技能提升。理想情况下,团队成员应根据项目阶段和团队需求灵活调整,既要有利于项目成功,又要促进自身成长。

Question 5:团队成员的学习能力不一,要如何平衡?

    团队成员学习能力不一时,需要通过合理的任务分配和平衡来优化团队工作。
    经过一个学期的学习和实践,我意识到,可以将任务按复杂度和技能需求进行分层,让学习能力强的成员承担更复杂的任务,而其他成员处理相对简单的任务。同时,通过结对编程、知识分享会等方式,促进成员间的知识交流和共同进步。此外,提供针对性的培训和学习资源,帮助能力较弱的成员提升技能,从而实现团队整体能力的均衡发展。

2. 阶段收获

2.1 需求阶段

    在结对编程和团队项目的开发中,我们在需求阶段使用NABCD模型进行需求分析。我学会了如何深入了解业务需求、用户需求和系统需求,并掌握了相应的分析方法和技巧。通过这个模型,确保我们能够准确理解和把握需求,同时培养了需求分析和沟通能力。我学会了提出合理的技术方案以满足需求,并能对需求进行全面的评估和澄清。这一过程不仅提升了我在需求分析和沟通方面的能力,还确保项目需求得到准确传达和有效实现,从而推动项目顺利进行。

2.2 设计阶段

    我学习到了如何设计可扩展、可维护和高性能的后端架构。通过深入了解需求并结合最佳实践,我掌握了数据库设计和接口设计的技巧,能够将需求转化为可执行的技术方案。在设计过程中,我始终考虑系统的可靠性、安全性和性能优化,确保系统能够稳定、安全地运行,并具备良好的性能表现。这些技能不仅提升了我在后端架构设计方面的能力,也为团队项目的成功实施提供了坚实的基础。

2.3 实现阶段

    在结对和团队开发中,我主要负责基于Vue和UniApp框架的前端开发。在这个过程中,我向队友学到了大量的开发知识。最显著的收获是对前端开发语言、框架和工具的深入理解,学会了前端编程思想和如何编写高质量的代码。同时,一些之前未曾遇到的BUG也让我提升了编码和调试能力。这些经验不仅丰富了我的前端开发技能,也加强了我在团队合作中的角色和贡献。

2.4 测试阶段

    在测试阶段,我接触到了更多的测试工具,对于测试方法中的黑盒测试、白盒测试等有了更深刻的理解。我学会了如何全面而不冗余地选择测试用例,并且积累了更多的规范和经验。在测试过程中,我锻炼了自己的测试能力,学会了多维度思考可能出现漏洞的地方,并提高了多维度思考的能力。通过这一的测试,我丰富了测试技能,也为我们项目的成功实施提供了可靠的保障。

2.5 发布阶段

    在发布阶段,我对一个项目整体流程有了更深的理解,特别是在面对日益复杂的项目时,学会了如何进行维护和改进。我意识到,发布阶段不仅仅是项目的结束,更是一个新的开始,需要细致地处理维护和改进工作。此外,我对用户调查报告等发布阶段的收集工作有了比较全面清晰的认识,以及如何协调各成员进度,完成最终项目目标。

3. 心得体会

3.1个人项目收获和心得

    在个人项目中,我学会了如何绘制各种思维导图,如何去爬取网站的信息以及编写相应的程序进行筛选和输出,也学会了如何独立自主的去搜索相应的教程和信息。同时我也学会了如何去规范地查找bug,对百度的文心一言和科大讯飞星火进行了bug查找和评测。

3.2 结对编程收获和心得

    结对项目是我与队友合作开发的一次经历。相较于个人开发,结对合作需要更多的沟通与合作,以确保工作进展得顺利流畅。在结对编程中,我与队友一起进行了原型设计,从中我学习到了NABCD分析,我学会了如何在结对过程中与队友进行有效的交流沟通。
    第二次的编程实现,我负责的是前端部分,我学习了新的框架vue,vue是我之前没有涉及过的,对我而言一周的学习时间太过紧迫了,所以前端工作完成得并不是很好,这也导致我们的第二次结对编程作业分数比较低。但是,这一次的结对编程为我之后的团队作业打下了坚实的vue基础,让我可以完成后面使用uniapp框架的开发,并且进一步提高了自己的团队协作能力,对后面的团队项目起到了巨大的帮助。

3.3 团队项目收获和心得

    团队合作需要进行合理分工、制定合理的计划,并通过有效的沟通和协作来推进项目进展。在一开始被分好组后,经过组长的组织,我们小组立刻进行了职责分工,因为在结对编程中,我有过vue的学习经验,因此我选择了uniapp前端的职位。在几次冲刺中我们实践了在理论课上学习到的模型,对团队项目开发有了更强的认知。同时,我也学到了如何与团队成员合作,共同解决问题。
    在团队编程作业中,两次的冲刺总结博客都是由我进行编写的,同时我也编写了beta冲刺前的alpha总结和凡事预则立的博客,通过这些博客的编写经历,我现在十分熟悉文档标准的规范表达和各阶段文档的具体内容。同时,通过与队友的合作和交流,我也了解了需求规格说明书、系统设计说明书、系统测试报告等文档的撰写方法,这是我这次团队编程作业中最大的收获之一。
    在最后一次冲刺的交换组员中,我做一被交换的一员进入了另一个组里,因为和我交换的人也是负责前端的,同时微信小程序的开发和我之前负责的uniapp框架开发有很多相似之处,因此我可以借助之前的文档和与新组员的沟通进行快速的上手。这也提醒我重视文档编写和沟通脚镣的重要性,以便于团队成员之间的沟通和应对团队人员的变更。
    经过这一次的软件工程实践课程,我不仅真实地学习了vue、uniapp框架等,同时还提高了我的沟通能力和团队合作能力,我相信这段宝贵的经历将对我的未来职业生涯受益匪浅。

4. 自我评估

目标描述掌握程度理由
1理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。92通过寒假作业,让我对软件工程师的要求和规范有了更深刻的理解。并且使得我可以在接下来的结对编程和团队编程作业中,始终保持着良好的软件工程心态和思想进行合作和交流。
2掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。95在结对编程和团队编程两次项目的需求分析中,我学会了如何使用NABCD模型进行需求模型构建,通过这两次的实践,我了解了对于需求分析的全过程,以及把握好客户的各种需求,掌握使用原型设计工具的重要性。
3掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。85在团队项目中,我参与了软件开发的部分过程,尽全力把握所参与的过程的细节,但因为团队作业中分工细致,所以我无法参与全部的过程。虽然如此,我通过与队员的对接工作中,也间接的了解和参与了部分的其他工作,同时我也专注于自己的任务和与队友有所交叉的方面。
4能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。89在结对编程中,我与另一位队友,一起进行了网页的原型设计,同时在软件测评作业中,我也完成了对百度的文心一言和科大讯飞星火的测评。
5遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。95在团队编程作业中,两次的冲刺总结博客都是由我进行编写的,同时我也编写了beta冲刺前的alpha总结和凡事预则立的博客,通过这些博客的编写经历,我现在十分熟悉文档标准的规范表达和各阶段文档的具体内容。同时,通过与队友的合作和交流,我也了解了需求规格说明书、系统设计说明书、系统测试报告等文档的撰写方法,这是我这次团队编程作业中最大的收获之一。
6具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。92在结对编程和团队编程作业中,我能够与其他成员进行有效的沟通和协作。作为前端开发人员,我也能够与后端开发人员进行有效的对接,完成开发任务。同时,我在beta冲刺中,作为被交换出去的组员,也通过与被交换组员和新的组员们进行有效的沟通和交流 ,快速地上手了新的任务和职位。
7能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。88虽然我不是这一次团队的组长,而是负责一部分的前端工作,但是在分配任务时,我也有积极地参与进去,在编写团队作业的两次的总结报告时,我也十分充分地了解了软件项目管理中涉及的各个要素。我对软件项目管理中的设计要素,包括人员构成与职责、风险管理等有一定的了解,并通过实践和理论学习对软件规模和工作量的估计有了新的认识,通过编写博客,我也掌握了PSP表格的使用。

第二部分:个人技术总结

个人技术总结——UniAPP 路由配置及页面跳转

概述:在这次团队编程作业中,我负责前端部分的开发,因为我是第一次接触vue和uniapp框架,所以在最基础的路由配置和跳转上就遇到了很多的坑。我认为任何的学习,都不在于多高深,而在于对于基础的掌握是否牢靠,因此我就对UniAPP 路由配置及页面跳转进行了技术总结,通过深入浅出的理解和钻研,基本掌握了uniapp关于路由配置和跳转的相关知识。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值