软件工程实践总结——静心竭力,行则将至

222000334郑慧铃 学生 2023-06-07 14:56:44

作业基本信息

软工实践2023年春季软件工程实践-W班
作业要求软件工程实践总结&个人技术博客
作业目标课程回顾与总结、个人技术总结
其他参考文献《构建之法》

目录

  • 1. 技术博客
  • 2. 以前问题的思考
  • 3. 项目每个阶段的收获与理解
  • 4. 对个人项目/结对编程/团队项目经历的理解或心得。
  • 5. 自我评分与解释

1. 技术博客

概述:Spring事务管理

2. 以前问题的思考

寒假作业博客

Q1 服务于小部分典型用户的idea是否应该被鼓励/继续下去?
答:我仍然保持以前的看法:服务于小部分典型用户的idea应该被继续鼓励下去,但要再投入产出合理的条件下。在实际项目过程中,可以先对这部分需求进行用户需求分析与设计然后实现一个简单的版本,在此基础上交付给用户进行体验与改进,然后进行市场调研,最后根据调研结果再考虑是否进行迭代,以此来进行项目成本与收入的平衡。
Q2 “技能”比“解决问题”更重要吗?
答:技能与解决问题的能力相辅相成。实践才能将技能转化成解决问题的能力,如果只掌握技能,比如各种编程思想,设计模式,软件过程模型等,而不能将这些技能灵活地运用到现实的某个具体场景,去解决某一需求或者提高效率,那么技能就是虚假的。当然如果没有技能积累,就更谈不上解决问题了。
Q3 如何让自己能够跟上软件工程发展,做一个永不落伍的开发者呢?
答:找到优质的信息来源,及时关注新兴技术,阅读技术博客进行实践,保持学习与积累。此外还可以在各类技术网站上回答问题,帮助别人的同时也巩固自己的知识。在这次软工实践中我也知道更多提供编程相关知识的学习资源,收获很大。最后我认为一个优秀的程序员,英语是不能差的,当然现在的翻译插件也非常方便,总之是要学会找到技术知识的优质来源。
Q4 为什么过早优化的后果会严重到成为“万恶之源”?
答:这点在软工实践的过程中有一些体会。在敏捷开发过程中需求会随着开发过程的迭代而改变,过早的优化可能会偏离用户的需求,还可能带来软件错误的扩大。软件项目的开发要遵循项目管理的要求,在对的时间做对的事。
Q5 对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢?
答:先学专再学广。鉴于当下岗位职责明确的划分的职场情况,开发从业者首先要有一技之长来适应市场的需求,在此基础上再扩展自己的知识领域积累。学专和学广这两个过程不是严格串行的,而是在学专的同时保持对各种知识的见识与理解。当然,全栈工程师是要学的更广一些了。

3. 项目每个阶段的收获与理解

  • 需求阶段

在这一阶段中,我和团队成员们一起进行产品的定位,完成竞品的分析,用户痛点思考,再通过问券调查等多种形式,结合NABCD模型进行来进行需求分析,最后产出了一份需求分析文档。最大的收获是对NABCD模型进行了实践。

  • 设计阶段

设计阶段的工作是根据需求分析的结果来设计软件的实现方式,包括数据模型的设计,软件的体系结构,软件构件设计等等,在实践过程中,我和小伙伴们一起进行需求建模,利用UML进行软件功能的抽象,使用ER图来设计数据库结构,研究实体类的属性和他们之间的关联。在体系结构的设计上,实践了层次体系结构中的MVC模型,最后进行构件的设计。整个过程下来对设计阶段有了更具体的认识。

  • 实现阶段

实现阶段我们根据各自的职责分工进行编码工作,并完成开发人员应该负责的单元测试。在这个过程中自己的技能得到了一定的提升,因为有ddl,学习技术的效率也高了很多。还有一个收获是实践了代码管理工具的使用,学会了根据代码规范写代码。

  • 测试阶段

技术上掌握了相关框架整合测试工具进行单元测试,如springboot整合junit等。在产品的角度上对软件测评,BUG处理进行了实践,掌握了一些基础的测试原理和测试方法。

  • 发布阶段

发布阶段我们发布了问券对自己的产品进行了调查,根据调研结果得到出了可以改进的一些建议,在此基础上进行产品的优化与更新。此外,在技术上,对linux操作系统的知识进行了巩固,学会了部署项目与维护的基础技能。

4. 对个人项目/结对编程/团队项目经历的理解或心得。

  • 个人项目

个人项目部分的作业通过代码对收集到的澳网比赛数据进行了处理,实现了一个以Json格式展示赛事数据的控制台程序。在这个过程中我学会了使用浏览器开发者工具进行一个简单的数据爬取,复习了编程语言基础,同时对前后端数据传输的Json格式有了更具体的认识,给后面的项目开发打了个基础。此外还学会了单元测试,设计测试用例来提高测试的覆盖率。最后是对PSP表格的应用,虽然是很简单的时间的统计,但对复盘总结与改进确实是个非常有用的工具。

  • 结对编程

结对编程部分和合作的同学一起完成了一个关于澳网赛事的网站,这也是自己学习软件开发以来部署的第一个站点,看到部署在自己服务器上的项目,可以通过自己的IP和域名进行访问,感受很奇妙。完成的过程中和同伴一起进行原型设计,学习原型工具来实现自己的网站原型,再到最后编码实现,积累了web项目的开发经验,也对前端工作有了更具体的认识。

  • 团队项目

在团队项目中,我和团队成员们一起参与了产品从构思设计到编码实现,测试发布的全部过程。在这个过程中,和组员讨论交流,确定每个设计,每个方案,分工合作,一步步推进项目的进展。非常幸运遇上这个团队,有协调全局的组长,每个人都很积极,讨论氛围宽松,可以及时提出问题,对分歧进行讨论,最后得出一个大家都认可的解决方案,也在这个过程中认识到项目管理,团队沟通的重要性,只有高效的项目管理,才能有明确的任务安排和顺利的进度推进。软件工程不只是软件,技术只是整个环节中的一部分,只埋头编码是远远不够的。相信这次课程中积累的经验会给日后进入工作的我带来潜移默化的帮助。

5. 自我评分与解释

目标内容解释掌握程度(100分)
目标1理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。在课堂上看到的几个具体例子让我深刻认识到软件工程师的职业道德规范的重要性,没有职业道德的约束或是法律意识淡薄就会做出删库跑路或者靠技术非法牟利的行为。今后会在工作中更关注职业道德和社会责任。95分
目标2掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。在本次课程中,我学习了如何运用NABCD模型进行需求分析,认识到开发团队需要从用户的描述中提炼需求,分析需求,因为用户通常无法用专业术语清晰地表达自己的需求。但是,使用需求表达工具,规范描述需求这一点还需要进一步提升以应对不同的业务分析场景。85分
目标3掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。通过本次课程的学习,我参与了软件开发的全过程,学习了体系结构设计方法和基本设计原则。但是,在实践中对知识的应用还不够灵活,需要继续在实践中多多锻炼。80分
目标4能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。在本次课程中,我学习了从组件到软件系统的技术评测方法,以及如何优选设计方案。但是,创新意识还不够,需要进一步提高自己技术测评能力,更好地应对不同的评测场景。80分
目标5遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。在团队项目实践过程中,我参与了需求规格说明书、系统设计说明书、系统测试报告等文档产出的全过程,掌握了文档撰写的基本的方法,具备与业界同行交流的能力。但是,文档撰写和表达能力还有提升空间。90分
目标6具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。在本次课程中,我学习了团队合作和沟通的重要性,并具备了一定的团队协作能力。但是,组织,协调和指挥团队的能力还需要再培养。85分
目标7能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。通过本次课程的学习,我认识了软件项目管理中涉及的构成要素,以及软件规模和工作量的估算方法,初步具备管理复杂软件工程项目的能力。但还存在开发经验不够丰富,管理实践不多的问题,需要在之后的职业生涯中慢慢提升。85分
...全文
115 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

软件工程不只是软件,技术只是整个环节中的一部分,只埋头编码是远远不够的。相信这次课程中积累的经验会给日后进入工作的我带来潜移默化的帮助。

确切的说是一个项目/产品能够成功,只有技术是远远不够的。希望课程的内容能够引发你对未来职业发展的思索。

688

社区成员

发帖
与我相关
我的任务
社区描述
2023年福州大学软件工程实践课程W班的教学社区
软件工程团队开发软件构建 高校 福建省·福州市
社区管理员
  • FZU_SE_teacherW
  • 张书旖
  • 郭渊伟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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