软件工程实践总结——努力会有收获

222000216林仕强 2023-06-07 23:52:37
这个作业属于哪个课程软件工程-23年春季学期
这个作业要求在哪里软件工程实践总结&个人技术总结
这个作业的目标软件工程实践总结
其他参考文献《构建之法》

目录

  • 一、课程回顾与总结
  • 1. 问题思考的博客链接
  • 2.对问题的重新解答
  • 3.项目各个阶段收获
  • 4.理解心得
  • 5.自我评分
  • 二、个人技术总结

一、课程回顾与总结

1. 问题思考的博客链接

博客链接

2.对问题的重新解答

  • 问题1花费时间越多,代表工作量越高吗?

    不一定。花费时间越多,工作量不一定高。虽然大多数人都这么认为:工作时间越长,工作量就越大。但是实际上并不是这样,因为工作量通常跟工作的复杂度、完成相应工作需要的专业技能有关,而不只是与完成工作的时间有关。很多时候,一个人完成一项任务花费了大量的时间,往往是因为该任务比较复杂,需要投入大量的时间精力,也可能是完成任务所需的专业技能还未掌握,需要时间先学习相关的职业技能,才能开始完成任务。很多情况下,完成任务的时间也和工作效率有关,如果工作效率低,完成任务的时间也相应变长,比如在嘈杂的环境中工作,工作效率会很低。同时花费的时间多,也可能是在提高任务的完成质量,总之,花费时间和工作量间并没有直接的关联。

  • 问题2代码量与个人的编码能力有直接关系吗?

    没有直接的关系。编码能力强往往是指一个人编写代码的能力和水平较高,能在较短的时间内完成很多的任务,以及熟练掌握运用编写代码所需的专业技能。而代码量并不能衡量一个人编码能力的强弱,代码量越多,一个人的编码能力不一定越强,也可能是在不断编写一些较低质量的代码,而如果掌握了一些设计模式相关的知识,可以显著地降低代码量。而且代码量越多,有时候并不是一件好事,因为代码编写后还需要进行维护,如果编写后的代码不易维护,那么再多的代码量也无济于事。因此,我认为代码量和个人的编码能力没有直接关系。

  • 问题3结对编程在双方差距较大时的意义是什么?

    • 相互交流学习:能力强的一方往往有更多的开发经验,这些经验可以给另一方进行学习,促进交流。
    • 减少经验不足的一方犯错的概率,在能力较差的一方犯错时,能力强的一方可以予以纠正。
    • 提高双方团队协作的能力,在结对编程中双方可以发现对方的缺陷,并进行互补,可以提高开发效率。
  • 问题4团队角色可以按需配置么?

    可以。根据项目需求来分配团队角色能极大的提高团队的开发效率。分配团队角色时可以根据团队人员掌握的技能,以及开发的经验,同时根据项目的具体需求来将人员分配到相应的岗位上,这样就能确保团队人员能够充分发挥出自己的优势,促进团队项目的开发,促进项目开发进度。

  • 问题5应该在什么时候使用goto?

    • 错误处理或释放资源时:当程序运行出错时需要进行错误处理时,可以考虑使用goto跳转到指定代码块进行错误的处理。
    • 其他情况下一般不建议使用goto语句,因为使用goto语句会使得程序的逻辑结构变得混乱,不易维护和阅读。

3.项目各个阶段收获

  • 需求

    我认为需求阶段是整个项目的北极星,指导着项目的前进方向,如果没有明确且具体的需求,那么后面项目的设计和实现就没有了根基,而且需求需要具体、完整、明确,将项目的整体基本需求都确定下来,切忌在开发过程中频繁地更改需求,这样不仅会使得项目需求变得混乱,结构不明,而且容易让已经编写好的代码作废,让小组成员的努力白费,并且容易引起成员的不满。因此,需求阶段需要好好设计,我们小组的需求就不是很明确,在开发的过程中不断增加新的需求,导致成员开发积极性不佳,任务没有完成的尽头。

  • 设计

    项目的设计主要分为原型界面设计和数据库设计。

    原型界面设计:大部分还是采用原型设计工具进行设计开发,我们小组采用的是Axure原型设计工具进行原型的设计,在原型设计开发的过程中我也不断学会了Axure的使用,熟练运用其中的组件进行开发原型。

    数据库设计:我参与了我们小组的数据库设计工作,在设计数据库的过程中我学会了掌握具体的设计规范,比如表名和列名的命名规范,以及一对多,多对多时数据库表应该如何设计,怎样能提高查询的效率等方面。

  • 实现

    我们小组的项目实现采用的是前后端分离的形式进行开发实现,前端采用的是vue,后端采用的是springboot。我负责后端部分的开发实现,在开发的过程中,我也学会了前后端是如何进行数据的交互,以及编写具体业务逻辑时代码的具体实现,同时我们小组还在基本业务实现的基础上添加了许多功能,比如邮箱验证登录,支付宝沙箱支付,聊天室等功能。

  • 测试

    我们测试主要还是人为地进行测试,没有采用一些自动化的测试软件,在测试后端接口能否可用时主要还是用postman发请求来进行测试,而前端则是直接通过页面来测试。

  • 发布

    项目的打包发布都是由我来处理,后端springboot打包是运用maven集成的打包工具进行打包,并使用宝塔面板部署到服务器上,前端则是运行相应的npm指令进行打包并部署。

4.理解心得

个人项目是个人完成的,主要还是技术方面可能会存在问题,经过相应的学习后就能进行处理。

结对编程时主要还是依赖于双方的合作,我主要负责页面的美化,而另一个队友则是负责具体逻辑应该如何实现,这时我已经认识到分工合作的好处了。

团队项目时理解心得较多,我们团队项目的完成不仅依赖于大家的分工合作,在出现问题时能互相协作帮助解决,前后端交互也很重要,需要制定相应的接口文档来协调双方的交互问题,同时使用的工具也很重要,我们前端使用vue开发,主要还是希望界面能好看一点,而后台则对美观没有太高要求,因此采用yii框架快速搭建并能够使用。

5.自我评分

目标分值(百分制)解释
理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念82软件工程师需要遵守最基本的职业道德,不能做出危害社会的行为
掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型90熟练运用原型设计工具,能生成项目需要的原型
掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案85掌握软件开发的基本过程,能遵循体系结构设计方法和基本设计原则
能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案90对项目功能的实现能提出自己的见解,并和组员交流
遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力95掌握一定的文档编写能力
具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作90有良好的团队合作能力
能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力90能够用适合的工具帮助项目的管理

二、个人技术总结

...全文
297 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoftwareTeacher 2023-06-14
  • 打赏
  • 举报
回复

我们小组的需求就不是很明确,在开发的过程中不断增加新的需求,导致成员开发积极性不佳,任务没有完成的尽头。


你们后来如何解决的呢?

586

社区成员

发帖
与我相关
我的任务
社区描述
软件工程-2022-23学年(第二学期)
软件工程 高校
社区管理员
  • LinQF39
  • promisekoloer
  • 异梦1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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