586
社区成员




这个作业属于哪个课程 | 软件工程-23年春季学期 |
---|---|
这个作业要求在哪里 | 软件工程实践总结&个人技术总结 |
这个作业的目标 | 软件工程实践总结 |
其他参考文献 | 《构建之法》 |
博客链接
问题1:花费时间越多,代表工作量越高吗?
不一定。花费时间越多,工作量不一定高。虽然大多数人都这么认为:工作时间越长,工作量就越大。但是实际上并不是这样,因为工作量通常跟工作的复杂度、完成相应工作需要的专业技能有关,而不只是与完成工作的时间有关。很多时候,一个人完成一项任务花费了大量的时间,往往是因为该任务比较复杂,需要投入大量的时间精力,也可能是完成任务所需的专业技能还未掌握,需要时间先学习相关的职业技能,才能开始完成任务。很多情况下,完成任务的时间也和工作效率有关,如果工作效率低,完成任务的时间也相应变长,比如在嘈杂的环境中工作,工作效率会很低。同时花费的时间多,也可能是在提高任务的完成质量,总之,花费时间和工作量间并没有直接的关联。
没有直接的关系。编码能力强往往是指一个人编写代码的能力和水平较高,能在较短的时间内完成很多的任务,以及熟练掌握运用编写代码所需的专业技能。而代码量并不能衡量一个人编码能力的强弱,代码量越多,一个人的编码能力不一定越强,也可能是在不断编写一些较低质量的代码,而如果掌握了一些设计模式相关的知识,可以显著地降低代码量。而且代码量越多,有时候并不是一件好事,因为代码编写后还需要进行维护,如果编写后的代码不易维护,那么再多的代码量也无济于事。因此,我认为代码量和个人的编码能力没有直接关系。
问题4:团队角色可以按需配置么?
可以。根据项目需求来分配团队角色能极大的提高团队的开发效率。分配团队角色时可以根据团队人员掌握的技能,以及开发的经验,同时根据项目的具体需求来将人员分配到相应的岗位上,这样就能确保团队人员能够充分发挥出自己的优势,促进团队项目的开发,促进项目开发进度。
问题5:应该在什么时候使用goto?
需求
我认为需求阶段是整个项目的北极星,指导着项目的前进方向,如果没有明确且具体的需求,那么后面项目的设计和实现就没有了根基,而且需求需要具体、完整、明确,将项目的整体基本需求都确定下来,切忌在开发过程中频繁地更改需求,这样不仅会使得项目需求变得混乱,结构不明,而且容易让已经编写好的代码作废,让小组成员的努力白费,并且容易引起成员的不满。因此,需求阶段需要好好设计,我们小组的需求就不是很明确,在开发的过程中不断增加新的需求,导致成员开发积极性不佳,任务没有完成的尽头。
设计
项目的设计主要分为原型界面设计和数据库设计。
原型界面设计:大部分还是采用原型设计工具进行设计开发,我们小组采用的是Axure原型设计工具进行原型的设计,在原型设计开发的过程中我也不断学会了Axure的使用,熟练运用其中的组件进行开发原型。
数据库设计:我参与了我们小组的数据库设计工作,在设计数据库的过程中我学会了掌握具体的设计规范,比如表名和列名的命名规范,以及一对多,多对多时数据库表应该如何设计,怎样能提高查询的效率等方面。
实现
我们小组的项目实现采用的是前后端分离的形式进行开发实现,前端采用的是vue,后端采用的是springboot。我负责后端部分的开发实现,在开发的过程中,我也学会了前后端是如何进行数据的交互,以及编写具体业务逻辑时代码的具体实现,同时我们小组还在基本业务实现的基础上添加了许多功能,比如邮箱验证登录,支付宝沙箱支付,聊天室等功能。
测试
我们测试主要还是人为地进行测试,没有采用一些自动化的测试软件,在测试后端接口能否可用时主要还是用postman发请求来进行测试,而前端则是直接通过页面来测试。
发布
项目的打包发布都是由我来处理,后端springboot打包是运用maven集成的打包工具进行打包,并使用宝塔面板部署到服务器上,前端则是运行相应的npm指令进行打包并部署。
个人项目是个人完成的,主要还是技术方面可能会存在问题,经过相应的学习后就能进行处理。
结对编程时主要还是依赖于双方的合作,我主要负责页面的美化,而另一个队友则是负责具体逻辑应该如何实现,这时我已经认识到分工合作的好处了。
团队项目时理解心得较多,我们团队项目的完成不仅依赖于大家的分工合作,在出现问题时能互相协作帮助解决,前后端交互也很重要,需要制定相应的接口文档来协调双方的交互问题,同时使用的工具也很重要,我们前端使用vue开发,主要还是希望界面能好看一点,而后台则对美观没有太高要求,因此采用yii框架快速搭建并能够使用。
目标 | 分值(百分制) | 解释 |
---|---|---|
理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念 | 82 | 软件工程师需要遵守最基本的职业道德,不能做出危害社会的行为 |
掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型 | 90 | 熟练运用原型设计工具,能生成项目需要的原型 |
掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案 | 85 | 掌握软件开发的基本过程,能遵循体系结构设计方法和基本设计原则 |
能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案 | 90 | 对项目功能的实现能提出自己的见解,并和组员交流 |
遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力 | 95 | 掌握一定的文档编写能力 |
具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作 | 90 | 有良好的团队合作能力 |
能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力 | 90 | 能够用适合的工具帮助项目的管理 |
我们小组的需求就不是很明确,在开发的过程中不断增加新的需求,导致成员开发积极性不佳,任务没有完成的尽头。
你们后来如何解决的呢?