软工实践总结——Nothing to lose

222100104林辰恬 2024-06-03 17:15:23
这个作业属于哪个课程2023软件工程
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标对软件工程实践的总结与思考
其他参考文献....

目录

  • 一、思考问题
  • 1.1 思考问题的链接
  • 1.2 回顾曾经的思考
  • 1.3 新问题
  • 二、阶段收获
  • 2.1 需求阶段
  • 2.2 设计阶段
  • 2.3 实现阶段
  • 2.4 测试阶段
  • 2.5 发布阶段
  • 三、总结经验与心得体会
  • 3.1 个人项目
  • 3.2 结对编程
  • 3.3 团队项目
  • 3.4 总结
  • 四、自我评分
  • 五、个人技术总结
  • 5.1 回顾技术准备
  • 5.2 技术总结

一、思考问题

1.1 思考问题的链接

222100104林辰恬寒假作业

1.2 回顾曾经的思考

问题一: 团队成员的学习能力不一,要如何平衡?
一个项目的开发需要许多不同的角色、需要不同方面的开发,若学习能力不一,可以提前分配好角色,提前下发每个成员的具体工作。在本次项目实践中,我们的团队就很好的化解了这个问题,组长在选题阶段就已经询问并安排好每个人的分工,可以提早进行技术学习,所以在开始进行冲刺阶段的时候,大家都能根据之前学到的技术进行项目开发。

问题二:软件工程师的几个成长方向是否有主次之分?
软件工程师的成长方向通常并没有绝对的主次之分,因为不同的方向适合不同个人的兴趣、职业规划和长期目标。每个方向都有其价值和挑战,工程师应根据个人兴趣、职业目标以及市场需求来决定自己的成长重点。在职业生涯的不同阶段,可能还会根据实际情况调整方向。因此,最重要的是持续学习,保持灵活性,并适时做出最适合自己的职业选择。参考的博客:从零到一:软件开发工程师的成长之路

问题三:想从事软件开发的大学生是去企业实习成长更快还是在学校实验室实习成长更快呢?
想从事软件开发的大学生在考虑实习成长速度时,企业实习和学校实验室实习各有优势,成长速度也取决于个人情况、实习环境和目标。在学校实验室实习,可以巩固基础知识,积累科研项目经验,得到老师和前辈的指导与帮助,对于未来深造或从事科研工作是个很好的起点。在企业实习,获得实战经验,体会团队协作,提高职业素养,企业实习有助于培养职场沟通、时间管理和项目管理等职业素养,这些是学校难以全面覆盖的内容。同时很多企业的实习生有机会转为正式员工,实习期间的表现可以直接影响到毕业后的就业。在与老师和学长学姐的交流中可以发现,拥有不同目标的人对于实习地点的选择有所不同。

问题四:在找工作方面,计算机科学相比软件工程的同学是否不存在任何优势?
在找工作方面,计算机科学与软件工程专业的同学各自拥有不同的优势,并不能断定一方绝对优于另一方。具体优势取决于行业需求、个人技能、职业兴趣及目标岗位的要求。在与学长学姐的交流中发现,其实我们学校这两个专业的学生在找工作时并没有哪一个专业更有优势的现象,而是个人能力等作为有力的优势。

问题五:如何发现社会的潜在需求?
发现社会的潜在需求是一项既艺术又科学的活动,涉及对市场、人群和社会趋势的深刻理解。同时,还需要保持创新思维和跨界合作的精神,不断探索新的市场机会和解决方案。在本次团队实战中,选题就是通过大家讨论生活中的需求,有人提出对零食购买系统的小程序不多,市场需求也大,所以通过商议最终确定了这个选题。

1.3 新问题

问题:当进行代码审查后的调整或在软件维护阶段对代码进行更改时,应如何确保这些更改对系统的其他部分造成的干扰降到最低?若更改导致多个部分受到影响,我们又应如何做出决策?
通过编写单元测试,确保每个更改都伴随着相应的单元测试,这些测试应该覆盖更改的功能,并验证其是否按预期工作。并且进行集成测试,以确保更改与其他组件的交互没有问题。集成测试应该覆盖所有与更改相关的接口和交互。使用版本控制系统来跟踪和管理代码更改,如果更改导致问题的话,允许回滚到以前的版本。
如果更改导致多个部分受到影响,与团队成员沟通更改的影响和计划,并根据影响的严重性和紧急性,制定一个优先级列表。首先处理那些对系统稳定性和用户满意度有直接影响的问题。

二、阶段收获

2.1 需求阶段

  • 收获最大的知识: 用户需求分析。学习到了如何与用户有效沟通,理解他们的真实需求,并将其转化为可操作的软件功能需求。通过调查问卷与访问的形式,充分了解大家对零食商城有怎样的需求。

    2.2 设计阶段

  • 收获最大的知识: 软件架构设计。通过完成原型设计满足用户需求,也对开发阶段所需的技术有了基本的了解。
  • 收获最大的能力: 系统思维能力。学会了从系统的角度思考问题,考虑各个部分之间的关联和依赖。

    2.3 实现阶段

  • 收获最大的知识: uniapp语言和HBuilder、微信开发者工具的使用。并了解他们的优缺点。同时,提高了代码编写的可读性与高效性。
  • 收获最大的能力: 问题解决能力。在实现过程中,遇到了各种各样的问题和挑战,学会了如何独立分析问题、查找资料、调试代码,并最终找到解决问题的方法。

2.4 测试阶段

  • 收获最大的知识: 了解了各种软件测试方法。
  • 收获最大的能力: 学会了如何与开发团队协同工作,共同提升软件的质量。

    2.5 发布阶段

  • 收获最大的知识: 项目管理和部署流程。了解了整个项目的发布流程,包括版本控制、构建和部署等环节。
  • 收获最大的能力: 团队协作和沟通能力。在发布阶段,与团队成员进行了频繁的沟通和协作,完善项目的不足。

三、总结经验与心得体会

3.1 个人项目

  • 由于是软工实践开始的第一个项目,刚拿到题目的时候由于对代码的不熟悉产生了很强烈的恐惧。查阅资料后,学到了json如何解析,命令行输入如何使用,读写文件的方法。在开始写的时候有些不知所措,但在编写具体代码的过程中,逻辑一步一步清晰,锻炼我的设计组织的能力,也提高我的代码编写能力。也体会到了单元测试的意义,在测试中也发现了不少问题。总而言之,这个作业对我个人对项目流程和代码编写方面有所提高。

    3.2 结对编程

  • 结对编程的体验体验获得了极为良好的效果。除了平日中我们常常会一起学习并展开相应的讨论,该次结对环境的优越性亦促进了我们的合作,使得所取得的成效远超过各自单独行动。
  • 在面对困难的时候,我们之间相互协同并且致力于钻研问题的解决方案,体现了相互支持与帮助的价值。结对体验意味着我们不再独自面对挑战,而是可以相互配合,其间交流的过程能够很好地协同思维并揪出问题的关键点。同时,个人的拖延症问题也得以一定的改善。
  • 协同开发提高了我的沟通交流能力,为之后的团队协作打下基础。

    3.3 团队项目

  • 团队项目是目前参与过的规模最大、复杂度最高的项目。在这个项目中,我与其他成员共同合作,完成了需求分析、系统设计、编码实现、测试验收等多个阶段的工作。这个过程让我深刻体会到了团队合作的力量和重要性。
  • 在团队项目中,学会了如何与团队成员进行有效的沟通和协作。我们共同制定项目计划、分配任务、监控进度并解决问题。我也学会了如何倾听他人的意见和建议,并在团队中发挥自己的作用。
  • 此外,团队项目也让我认识到了项目管理的重要性。我们需要对项目的时间、成本和质量进行管理和控制,以确保项目能够按时按质完成。在这个过程中,我学会了使用项目管理工具来辅助我们的工作,并提高了自己的项目管理能力。

    3.4 总结

  • 通过个人项目、结对编程和团队项目的经历,我深刻认识到了作为软件工程师所需的关键技能和素质,包括自主思考与问题解决、团队协作、沟通以及项目管理等。这些经历不仅加深了我对团队协作价值的认识,也激发了我在未来的学习和职业生涯中继续发挥个人长处和不断提升自我的动力。

四、自我评分

目标评分解释
1.理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。95作为软件工程师,理解职业道德规范和实践要求是非常重要的,这不仅关系到个人职业发展,也关系到整个行业的健康发展和社会的稳定。
2.掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。90在本次实践中通过绘制功能图、流程图等相关模型图,我认为自己已经能够熟练的运用这些工具构建需求模型,并表达客户的需求。
3.掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。85通过团队实战,能够了解到 软件开发所需的流程以及相关技术,完成了项目的原型设计,为之后的开发阶段打下基础。
4. 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。85本次实践中,能够根据项目需求和环境来选择合适的设计方案。 具备创新设计意识,丰富项目设计
5. 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。85在团队项目实践中,我面板了需求规格说明书、系统设计说明书和系统测试报告等文档的重要性,了解到这些文档的基本内容有哪些。
6. 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。95在本次实践中,与组员团结协作,各司其职,能够按时完成指定的任务与工作。遇到问题与困难及时协商处理,不拖累项目进度。能够清晰、准确地表达自己的观点和需求,并倾听他人的意见和建议。
7. 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。85通过对项目的工作量及完成时间的估算,对各类项目进行初步的分析,已经能够具备初步的管理复杂软件工程项目的能力。

五、个人技术总结

5.1 回顾技术准备

  • 在第一次作业的“准备篇”中,我为自己制定了一个详尽的学习路线,包括掌握基础编程语言、理解软件工程原理、熟悉常用的开发工具和技术栈,以及提升团队协作和沟通能力等方面。
  • 目前,我已经按照学习路线取得了显著的进展。完成了对前端技术vue框架以及uniapp技术的学习,但没有完成对Node框架的学习。同时,我也熟悉了如Git这样的版本控制工具,能够有效地管理我的代码版本。
  • 在团队开发中,担任了开发角色。在开发过程中解决了ui界面设计以及搭建、数据库调用等技术。

5.2 技术总结

技术总结

...全文
98 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

122

社区成员

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

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