本学期总结

第一个问题:上一个学期还算勤快,这个学期有点水,我学习的时间没以前多了,有点堕落说实话。这学期学spring框架断断续续的,也可能是我缺少外部压力,学的很慢,效率很低。但也说明我并不是那种自律的人,我是需要外部压力的。这点我得pua自己,毕竟不自律就没办法提升自己。

第二个问题:就是这学期有个团队合作项目,我们组很摸鱼,我心有余而力不足,专业知识不够硬,这点我感受很深,我会的东西太少了,所以我给自己制定了暑假计划,当然这不是我第一次这么干,但是我一旦进入温室,立马就蔫了,温室里的fw也不过如此,所以我未来怎么样,还是取决我自己怎么做。

第三个问题:上课专注力下降,以前把我上课是不看手机的,大一或大二上学期只要不是水课我基本不会上课看手机,但我现在在什么课都回掏出手机看几眼,肯定不是因我我老油条了,我失去了刚上大学那会的精气神了,我是想通过大学来弥补曾经的遗憾,结果现在,呵呵,什么凌云壮志都抛在脑后了,寄。生活需要活力,学习也需要动力,我希望自己做一个有激情的人。

本学期总结:

首先,我学习了软件工程的基本概念和软件开发的过程。软件开发过程可以分为需求分析、设计、编码、测试和部署等几个阶段,每个阶段都有特定的任务和目标。在需求分析阶段,我们需要了解客户的需求,并将其转化为准确的需求规格说明书;在设计阶段,我们需要根据需求规格说明书,设计出符合要求的软件架构和详细设计文档;在编码阶段,我们需要根据设计文档实现软件功能;在测试阶段,我们需要对软件进行各种测试,确保软件功能的正确性和稳定性;在部署阶段,我们需要将软件部署到目标机器上,并进行实际使用和运维。我们也学习了代码重构、TDD和敏捷开发等方法论。代码重构是指通过优化代码结构、提高效率、增强代码可读性等方式来改善代码质量的过程。在本学期的课程中,我们学习了许多常见的代码重构技巧,如提炼函数、内联函数、移动函数等。这些技巧能够帮助我们消除代码中的冗余和重复,简化代码结构,减少代码的维护成本。而TDD则是一种以测试为驱动的开发方法,即先编写测试用例再编写代码,确保代码的正确性和可靠性。敏捷开发则是一种灵活、快速响应需求变化的开发方法,通过迭代和反馈循环来逐步完善软件产品。其次,我们学习了一些软件开发工具,如Github等。这些工具在团队协作中起到了非常重要的作用。通过学习Git,我们可以更好地管理代码版本、避免代码冲突和错误,并且能够方便地协作和分享代码。而通过学习JIRA,我们可以更好地跟踪项目进度、规划和调度任务,确保项目顺利完成。此外,我们还学习了使用UML图来描述软件设计和架构,包括类图、序列图和状态机图等。本学期的软件工程课程还涉及到了软件测试、软件质量保证和软件项目管理等方面的知识。在软件测试方面,我们学习了不同类型的测试方法,如单元测试、集成测试和验收测试等,并且学会了使用一些常见的测试工具和框架,如JUnit和Mockito等。通过测试,我们能够发现和纠正代码中的错误和缺陷,提高软件质量和可靠性。而在软件质量保证方面,我们学习了一些常见的设计原则和模式,如SOLID原则和MVC模式等,这些原则和模式可以帮助我们编写易于维护和扩展的代码,并提高软件的可读性和可维护性。此外,在软件项目管理方面,我们学习了一些常用的管理方法和工具,如Scrum和Kanban等。这些方法和工具可以帮助我们更好地规划和管理软件项目,包括任务分配、进度追踪、风险评估和团队协作等方面。学习这些管理方法和工具,对于日后的团队协作和项目管理都大有裨益。最后,我认为这门课程的另一个重要收获是培养了我们的团队协作和沟通能力。在小组项目中,我们需要与同学们紧密合作,分工合作,并且及时沟通进展和问题。这些经验在今后的职业生涯中将极为重要,因为软件开发往往需要团队协作完成,一个高效的团队能够带来更好的工作效率和质量。

  我们学习了详细设计的方法,其原则是过程描述是否易于理解、复审和维护,进而过程描述能够自然地转换成代码,并保证详细设计与代码完全一致。软件工程对于初学者来说,知识基础较薄弱,对一些应用操作、概念、工具方法等理解起来较为困难,要能从整体概念上较好地理解和把握、学好软件工程,不是仅仅把几本专业书籍细致地看几遍,然后上机练习几次就可以成功,学习过程中要注意多看多练要注意结合实际,更要多思考,面对错误不要一范就问,要尝试自己去解决。但是还要注意什么都学,肯定是什么都学不透的,要集中精力打攻坚战,学习软件工程首先要明白自己的学习目标究竟是什么,根据自己的实际工作出发,有针对性的在相应的学习方向上进行提高,制定出详细的学习规划。还要注意与其他科目的相辅相成,就像我们在学习面向对象分析的时候要结合大一学习的面向对象及其方法学这一专业科目进行研究拓展;在学习语言时,要看看与C语言的联系,多思多想,把从各个科目学到的知识通汇贯通。在软件工程的学习中,我了解到了软件并非是一些代码这么简单,在开发软件的过程中,编写代码的工作量其实只占不到所有工程量的30%,而后期的管理和维护更是占了60%到80%之多。一个完整的项目规划须包括,软件的定义,可行性分析报告,项目开发计划,软件需求说明书,概要设计说明书,详细设计说明书,用户操作手册,测试计划,测试分析报告,开发进度报告,项目开发总结报告,软件维护手册,软件问题报告,软件修改报告,等多个文档,每个文档都要上级验收审查,而文档数量众多,要做好这点真的不是很容易,而恰恰写好文档正能保证完成软件工程其中一个目的的关键,既研究如何用最小的开销做出生存期较长的软件,再加上各个阶段都要进行周密的策划、详细的分工部署和人员安排,且各阶段要据具体情况不断的反复才能达成,所以代码只是开发软件这个浩大的工程的一个小小的过程。

        具体到每一步的工作要怎样完成,是非常灵活的,只要把握住大体的方向就行。在进行分析,设计,编码,调试,维护这几部分的工作的时候,最核心的就是文档的编写。文档的作用在于以下3个方面,一是可以帮助整理思路。把要完成的目标,系统的结构,每一个模块的功能等整理一下,然后分门别类地写下来,这样在开发的过程中,就有据可依,在需要回过头来修改设计的时候,也有证可考。二是便于交流。想象一下开会时的情形。一大帮子人争先恐后,激烈辩论,然后会终人散,思想灵感也就随之散了,结果是开了半天,什么也没讨论出来。这就是后来会议记录被发明出来的原因。在脑子里的东西一多,就会散而且乱,用语言表达的时候,很容易会丢三落四,别人也很难把握住你的思想。但经过整理写在纸上以后,则会清晰得多,无论是别人还是自己,看起来都可以一目了然。三是可以作为以后维护时的参考资料。有一句名言,“笔和纸永远都比大脑可靠”,意思就是说,放在大脑里的东西说不准哪天就忘了,但写在纸上的东西只要不发生什么意外。一般是丢不了的。当过了一段时间,你需要再回过头来修改你的程序的时候,你就会发现,你以前写下的文档实在太有价值了。别指望你的源代码,对于复杂一点的程序来说,单纯的源代码几乎会扼杀掉你所有的时间。 需求分析是要决定“做什么,不做什么”。 需求分析为什么困难,有几种原因使需求分析变得困难1:客户说不清楚需求2:需求自身经常变动3:分析人员或客户理解有误。 客户说不清楚需求,有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。有些客户心里非常清楚想要什么,但却说不明白。 事实上,用简单的话来说明需求过程,就是确定系统该做些什么以及该符合什么条件。话虽然简单,实现起来可没有那么容易。所以科学的需求过程有一整套完整的理论、工具、方法来实现。

综上所述,本学期的软件工程课程让我受益匪浅,在理论和实践方面都有了很大的提升。通过学习各种知识和技能,我对软件开发的整个流程有了更加深入的了解,同时也增强了我未来在软件开发领域的就业竞争力。我相信这些知识和经验将对我未来的职业生涯产生深远的影响。

 

posted @ 2023-06-01 23:48  你好,幸会  阅读(30)  评论(0编辑  收藏  举报