软件工程实践总结

您所在的位置:网站首页 编程课程总结与反思 软件工程实践总结

软件工程实践总结

2023-06-11 00:44| 来源: 网络整理| 查看: 265

这个作业属于哪个课程2023春季软件工程实践-W班(福州大学)这个作业要求在哪里软件工程实践总结&个人技术博客这个作业的目标课程回顾与总结,个人技术总结其他参考文献《构建之法》

目录一、课程回顾与总结1.1 寒假作业链接1.2 温故而知新——再次回答以前的问题以及反思新的问题1.2.1 温故——再次回答以前的问题1.2.2 知新——反思新的问题1.3 五个阶段的收获1.4 个人项目/结对编程/团队项目的个人心得1.5 七大课程目标的掌握程度二、个人技术总结

一、课程回顾与总结 1.1 寒假作业链接

软件工程实践寒假作业

1.2 温故而知新——再次回答以前的问题以及反思新的问题 1.2.1 温故——再次回答以前的问题

Q1 3.1 代码量与个人的编码能力有直接关系吗?网址:https://bbs.csdn.net/topics/605357023

经过了实践以及课程学习,我对这个问题的回答是:没有直接关系,和一开始的回答一样,准确点代码量与个人的编码核心能力没有直接关系,代码量与个人的编码熟练能力有直接关系,就像我这次实践,我就是构建html结构,敲了一百多行,那也只是对简单的html语法更加熟练了,但是依然对编码核心能力(比如说更适合前端js修改的合理的html结构)没太大帮助。想要提高编码核心能力需要挑战更高一级的任务,而不是待在舒适圈。

Q2 2.3 花费时间越多,代表工作量越高吗?网址:https://bbs.csdn.net/topics/600462046

经过课程学习和课本,现在可以明确了,时间和工作量其实没有直接关联,时间和工作量成本有直接关联,工作量的计量单位有LOC(代码行)以及FP(功能点),而这些更多与项目本身,编码所选语言等有关联,时间不包含在计算公式里面,有包含时间和工作量的那是工作效率以及工作量成本。

Q3 1.2 在找工作方面,计算机科学相比软件工程的同学是否不存在任何优势?网址:https://bbs.csdn.net/topics/605354670

经过课程学习以及实践,我的回答和之前一样,在考虑招人是专业对口而不是追求万能膏的前提下,软工同学在开发岗位,或者说偏实践工程类岗位(需求,设计等)比计算机科学的同学更有优势,因为我们更注重开发的一整个流程,我们的大学一套课程就是为了这个而生的,我们可以在工程的各个环节衔接,而计算机科学的同学就没有学习一套的工业流程,就可能缺少相关的能力,需要另外学习。计算机科学的同学是在研究型领域更有优势,因为他们更偏向理论。当然,现在招人还是有点大材小用,追求万能膏了,在这种情况下计算机科学的同学是可以花比较小的代价转化成开发的(特别是设计相关算法之类的),而软件工程同学想搞研发可能就比较困难了,这样子的情况下,公司可能更喜欢招计算机科学的同学了。

Q4 1.2 为什么要在大学中只用一学期软件工程,时间够吗?网址:https://bbs.csdn.net/topics/600462146

经过实践以及以及课程学习,一个学期其实够的,一个学期的时间其实也是一个小项目的开发周期,经历这一次的实践,我就基本上体验了一整套的软件工程流程,感受颇深,从需求分析,设计,到编码,集成,测试,到Alpha冲刺,Beta冲刺,以及中途的随机对换组员,可以感受到软件工程的神奇魅力。特别是随机对换组员,这个可以说是将工作中有可能发生的情况也让我们经历了,可以为我们未来工作打下了良好的基础。所以一学期其实时间是够的。

Q5 4.4 注释(包括所有源代码)应只用ASCII字符,不要用中文或其他特殊字符,它们会极大地影响程序的可移植性?网址:https://bbs.csdn.net/topics/600464887

经历了实践,我的回答是,是的,但是也不完全,注释除非是语言本身限制,正常情况下完全可以写中文或其他特殊字符,但是源代码中就不能了,因为实际开发会使用各种各样的开发框架,而这些框架往往都是由外国人或者说英语使用者开发的,他们都是使用ASCII字符以及最多UTF-8编码,如果我们贸然使用中文字符或者中文编码(GBK),那么就可能出现框架运行错误,这个就会造成麻烦,最好的做法,是写文档,文档可以解释每一个变量,方法的作用,也方便对方查看使用。

1.2.2 知新——反思新的问题

1.如果队伍里出现极度不配合的队员,他本人,他留下的烂摊子该如何解决?

2.怎么才能比较准确地评估一个功能实现可能需要的开发时间?

1.3 五个阶段的收获 阶段收获需求我觉得最大的收获之一,就是必须要有用例图以及用例文档,这个真的是重中之重,哪怕你只是个人开发自己用的工具,除非你功能简单到只有一个,要不然一个好的用例图以及用例文档可以让你后面设计分析更简单。另外一个收获就是NABCD模型,如果要开发非个人的软件,这个模型真的对整个项目的指引非常好用,可以让你更好的项目规划。设计设计是仅次于需求第二重要的了,设计一个好的软件体系设计,可以让一个软件体系更容易维护,扩展性更高,也可以让开发省去很多的麻烦。然后就是原型工具的重要性,可以更加方便确定软件最后的效果,这个不仅仅团队项目,商业项目有用,个人项目其实也值得使用。实现如果需求以及设计都是完美的,那么实现其实就已经省去一大半的工作了,就是对着设计图敲,如同盖房子有了设计图,那剩下的就是体力活,搬砖搬水泥罢了。当然实现的时候也会发现设计的问题,这个时候就会比较麻烦了,有可能需要修改设计原稿。【比如说这次实践,我需要的一个功能就要复杂的排序以及调用接口实现,但是这很消耗前端的运行时间和内存,而且也消耗后端流量,这就是不合理之处了,需要后端处理排序,一次就返回所需要的结果。】测试软件测试是保证软件最终交付质量,以及开发过程中的保证开发流程重要步骤。不过这次实践我觉得单元测试以及集成测试还是很不理想的,单元测试和集成测试很混乱,单元测试我还得问后端开发情况然后才知道哪些可以测试,哪些本来就没实现,集成测试就很模糊,好像没有,但是又好像融合到对接去了。发布这次服务器部署项目我并没有参与,所以我也没太多收获,不过就我在边上观看来看,这个还是很麻烦的,因为存在各种各样奇怪的问题,包括服务器跨域问题,文件访问权限问题,访问路径问题等等。这些还是需要系统学习可能才会缓解。 1.4 个人项目/结对编程/团队项目的个人心得 个人项目:个人项目让我重新熟悉了java的编程,更多是让我找回了编程的手感(毕竟也有一段时间没写代码了)。不过一开始拿到题目的时候还是受到了震撼,一大坨文字丢过来给我看傻了,比数学大题还多的文字量,给我都看晕了,CPU都烧了,然后就是因为一段时间没写代码了,突然叫我解析json而且是套娃套了好几层的json还要输出结果,我都快哭了(不说笑,真快哭了(T▽T))。但是冷静下来之后分析,其实也还好,将大问题化解成小问题,一点一点抽丝剥茧还是可以实现的。(虽然还是因为拖延症拖到最后两天写,然后没办法实现附加功能以及进一步测试XD) 写完之后,感觉整个人都升华了,手感又回来了 (力量又回来了) ,成就感很足。 结对编程:结对编程,我觉得有一个好的队友挺有必要的。也让我初步体验到了合作比单人更有效率,一人负责一块的内容,写起来比个人作战轻松很多了。当然让我印象最深的还得是 被迫 上台演讲,我们被抽到上去演讲原型如何代码实现。一开始我还很紧张,心都在跳,但是当我队友讲解到代码部分,然后我接手开始讲之后,讲着讲着,就不紧张了 (还有蜜汁自信) ,然后可以沉着应对,下台之后真的感觉内心非常平静,回过味来才开始激动,感觉演讲能力得到了提升。 团队项目:团队项目,则是最百感交织的了。一开始我们的选题是游戏,可惜根本不出彩被淘汰了(虽然在分析的时候,我自己都觉得通过可能性很低),最后我们选择了制作菜谱分享网站。本以为是个很轻松的项目(就是标准的CURD),结果呢,还是出现了很多的意外。图片问题,对接问题,跳转问题,手机注册等等,问题真的太多了,而且更要命的是,队伍里有即不配合又不做事的队友,交给他的任务完成的一团乱,害得我们给他擦屁股,真的很令人恼火。而且怎么说呢,队友之间交流也存在问题,不积极以及态度不好。虽然最后还是实现了很多东西,但是还是没达到一开始的预期,只能说无奈和遗憾吧。 1.5 七大课程目标的掌握程度 目标得分(100分)解释理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。95其实就是不学习课程,我已经理解了软件工程师应该有的职业道德规范,毕竟这是职业的底线,不能不知道,而课程学习加深了我对这些的理解和思考,让这些更加深入我的心里掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型90还是可以比较好地分析出用户的需求以及潜在的需求,以及使用相关模型进行描述和传达掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。80可以比较好分析出需要的分析类,但是对于设计还是存在薄弱,当然也不是完全不会,只是可以进一步优化能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。77能够优选设计方案,但是从组件到软件系统的技术评测和设计模型的评判能力还是偏弱,创新设计意识较高遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。75能遵循软件开发各阶段文档标准,采用规范的表达,但是需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法掌握度还不是很高具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。90有良好的团队意识和合作技能,可以协调团队开展工作,能够与其他成员开展有效的沟通和协作能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。80能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,具备初步的管理复杂软件工程项目的能力,但是选择合适的工具规划软件进度并对项目管理过程进行配置还是偏弱 二、个人技术总结

个人技术博客——v-for生成绑定函数

概述:vue的v-for生成的组件自动绑定函数的参数,参数和组件本身的索引值(index)或者就是本身(item)有关系。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3