小组成员:

地信1902邹小红

地信1902于航茹

地信1902赵佳乐

地信1902李孟雪

地信1902王晨光

心得体会1

地信1902邹小红的博客:https://www.cnblogs.com/qingqingzijin0537/ 

请点击链接查看更多学习记录

谈谈我在接触软件工程以及做项目过程中的背景。

  刚开始接触软件工程时,我以为这一定是一门非常难的、很需要技术的编程课,还没开始学,就要做出一个软件或者小程序,这简直是不可能。在深入学习之后,才发现事实不是这样的。让我们及其不自信的原因,其实在于我们学习的编程知识比较少,再加上只是刚刚入门,对于编程语言仅仅掌握了C,在编程方面还有很多达不到要求的。所以在做小组的项目时,心里一直不相信自己,认为自己肯定做不出来。但是在后面的学习过程中,跟着老师的节奏,课后按照老师PPT总结,在博客上记录自己学习到的新知识,才发觉好像软件工程也没有想像中那么难,做项目对于几乎是小白的我们来说,也是可以完成的。现在想想,老师当时让我们学习了几章之后,就开例会,开始讨论项目的进程、文档的书写,其实是很有用的。学完之后,就实际动手操作,这样可以及时回顾学到的知识,不至于在最后几周匆匆忙忙赶进度。我们小组的项目是完成一个校园交友小程序,在很大程度上和狮山有你小程序相似,所以最后有计科的学长帮助指导对我们来说真的解决了燃眉之急。在此之前,我们已经完成了需求分析,概要设计,详细设计,到最后的代码我们也实现了一小部分功能。但是对于如何做成一个小程序,把我们的代码实体化,封装,其实我们是一无所知的。直到学长在给我们解疑时说,我们可以在石墨这个软件平台上先完成界面的设计,如果对于代码我们的掌握不大的话,可以先放在一边。因为整个做软件的过程中,其实代码只占小小的一部分,更重要的是把小程序的整个框架搭建起来,向老师同学们展示出我们的项目最终要实现的功能,以及它是以一个怎样的形式来实现的,这比代码更重要。在听了学长的建议后,我们小组开始了界面的设计,对于小程序要展示的功能和界面设计布局,进行了一番商讨,开始了分工合作。现在看来,一个项目的完成,其实并不是一朝一夕就可以做好的,我们仅仅只完成了一部分,但是从中学到的却一点也不少。

接下来谈谈我对软件工程的理解。

  软件工程贯穿整个软件开发的始终,从设计到编码到之后的测试发布以及后期的维护,都离不开软件工程的思想。软件工程其实不仅仅是编码,更重要的是有很多工作要规划、分析、审核。在完成项目文档的书写之后,才会发现,原来我们的项目是一步一步的完成的,要实现的功能是怎么样的,接下来要做的是哪些。在书写文档之后,对于我们的进度安排会更加的清晰合理。总之,软件工程这门课我给我的感觉很特别,和其他实验课程不一样,很有开放思维性。尤其强调的是在做中学,学中做。不是教给我那些枯燥无味的专业知识,而是告诉我如何去理解程序,去理解一个软件,去理解一个工程,如何按照规范有序的顺序对一个软件工程进行有效地的剖析。最重要的是要基于小组成员共同的努力,一个人的想法和力量是真的有限,有时候人还是需要适当的接受外界力量的帮助。当我们小组成员分工合作,互相搭配时,其实结果比想象中的要好太多。

然后说说我在软件工程这门课中的不足以及还需要改进的地方。

  对我来说,第一次做这个项目其实心里也是很没有底气的,因为从来就没有接触过这些,所以对于很多知识都不太了解。但是我发现,其实只要对自己有信心,对小组成员有信心,没有什么会难倒我们的。虽然我们什么都不会,但是最后的结果还是好的。在小组分配任务这一块,其实我是没有做好的,对于每一份文档,我都是完成了自己的那一部分,而其他没有分配给我的,其实我只是泛泛了解,比没有深入去学习。其实一个人写完整个文档是不可能的,做有效的办法就是分工合作,但是在写自己的那份之前,我们可以对于每一部分都做一个总结归纳,理清楚要写的内容和要求,然后再开始写自己的那一份,这样的话,我们不仅知道自己的那部分,还对其他部分也有更多的了解,这样在后面对文档的检查也会更加容易。最后是觉得自己其实并没有做到最好,很多时候在写文档时,我都是按着网上给的模板,然后再看看小组的,进行一个改写,并没有形成自己的思想。而且再画用例图、包图、结构分析图时,由于时间紧张,并没有用电子版图,基本都是手工作图,做出来的图其实一点也不美观。虽然后面也有画电子版的IPO图,但我觉得,其实我可以做得更好。

  最后要到结尾了,这门课程也进入尾声了,很开心选了这门课,收获到了很多很多。

  学习这门课程的过程,充满了挑战,但收获也很多。就像老师说的那样,万般皆项目,很多事情其实都包括在做项目的过程中。无论是计划、分析、实际操作,还是测试、维护,其实都需要我们去投入时间和精力,只有把每一件小事做好,规划好,才能进一步地去做更大的事儿。软件工程是一门需要终身学习的课程,相信随着以后不断的积累,对于软工的认识也会慢慢的加深,就让我继续努力吧!

  姓名:地信1902邹小红

  学号:2019303220230

  时间:6月10日

心得体会2:

 地信1902于航茹的博客https://www.cnblogs.com/rururuaaa/ 

随着漫长夏日的到来,不知不觉间,为期四个月的软件工程课程已渐入尾声。第一次接触这门课时,听介绍得知这是一门综合性比较强的学科,需要涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。对我们现在的水平来说还是能力有限,相对来说还是比较困难的。在前几节课时,我们按照要求分好了组,并确定程序的大致方向,我们想要做一个面向学校的交友小程序。这是一个庞大的工程,初步学习软件工程的基本概念,如软件工程概述、软件过程模型、敏捷软件开发。最开始的PPT介绍和需求分析说明书准备时我们一边翻书一边看PPT,一次又一次确认几个概念性问题,很多次我们讨论地激烈却不知已悄然步入深夜。大家分工明确,遇到不会的或难以解决的问题时会上网查阅资料自学。在第一次汇报时老师针对我们小组出现的问题提出了意见,我们更有方向性的进行修改。课程学习中,第5~8章是结构化开发方法学,结构化分析、设计与测试,包括结构化需求分析,概要设计,详细设计,编码以及测试方法;第10~12章是面向对象开发方法学,面向对象分析、设计与测试,包括面向对象需求分析,概要设计、详细设计、实现与测试方法。第13~14章是软件维护与项目管理,包括软件维护、软件配置管理、软件质量管理、软件进度管理。我们按照上课进度更新自己写的博客,完成课后思考题的同时可以重新学一遍章节内容,印象更为深刻,对知识的理解也更为透彻。在之后的实验过程中,我们也进行过多次小组例会, 对所要研发的小程序具体内容如流程图等有更为详细的改进。学习了这门课程,还有老师的多元化教课,不但让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合。整个一学期下来,总的来说学到的东西还是很多的,这门课程是一个如何去分析和处理问题的过程,成为了一个综合的,一个能够解决问题的思想集合。

软件开发的整个过程:①需要项目团队,组建优秀的团队可以开发出更搞质量的软件产品。任务开发团队要求小而精,成员大多在8人以内,主要成员有项目负责人、开发人员、资料管理员和软件测试员。②项目计划是为了使软件开发各项工作有秩序地进行,包括任务分配和基于里程碑的进度安排,甘特图和任务网络图是用来描述进度计划的工具。项目计划书可以作为软件开发的工作指南。③项目成本估算,由于项目有来自各方面的成本包括工资开支、场地费、差旅费、设备费和资料费等,但是软件主要是对人力成本的估算,常用的方法有程序代码成本估算法等。④软件风险管理包括很多不确定的风险因素,如计划风险、管理风险、需求风险、技术风险、人员风险、产品风险、用户风险和商业风险等等,而风险管理的主要.任务是:风险识别、风险评估、和风险防范。⑤软件文档管理,软件文档是工程模式软件开发的成果体现,包括技术文档、管理文档和用户文档。⑥软件配置管理与软件质量管理,包括配置规划、软件变更控制、软件版本控制和质量控制计划。计算机系统由硬件、软件、数据资源、网络资源、使用系统的人等诸多元素。有三种典型的计算机体系结构:①主机结构,主机集中了全部智能,并依靠终端接口与外部设备连接。②client/server结构,智能分布于服务器与客户机,并依靠网络连接成系统,其中,服务器处于核心位置,提供被动核心服务;客户机处于边缘位置,可主动访问服务器,寻求服务支持。③browser/server结构,可适应互联网远程交互的特殊结构,基于web服务器构建。

需求分析:系统开发前期需求分析很重要,它是为了有效解决用户问题的需要进行的一项工程活动,所需要考虑的需求问题是功能需求、数据需求、性能需求和接口需求,开发者承担分析任务,核心是用户。其步骤有三个:①获取客户需求,客户泛指某个人或机构部门等,一般方法是调查,包括访谈、座谈、问卷、跟班和收集资料,需求规约可表达用户的软件价值。②建立 需求模型,它是用户需求的图解,一- 些常用的模型有:业务树图、用例图、活动图。分别用于结构化需求建模、系统业务举例和反映系统工作流程。③进行需求验证,要验证的主要内容有: 有效性验证、一致性验证、 完整性验证、现实性验证和可检验性验证。结 构化分析建模:它是建立在需求规约基础上的,对软件问题进行全面解说,包括四个方面:①数据建模,它与数据库设计密切相关,er图涉及实体、关系、属性等图形元素,在业务层面建立数据库概念模型,一般用于前期的建模构想。②功能建模,是对系统数据加工的图解,数据流程图是常用的建模工具,涉及数据接口、数据处理、数据流、数据存储等图形元素,用于描述系统数据加工细节。③行为建模,行为模型用于说哦名软件系统与环境的交互,状态转换图常用的软件行为建模工具涉及状态、事件等图形元素。⑤数据字典,是用于定义软件的元素,使软件元素获得严肃的、详密的、精确的规格说明。需求分析模型中的数据、功能、行为等诸多方面的元素,都有必.要通过数据字典给予细节说明,以达到对系统较完整全面的规格定义。

总得来说,在这节课结束之后我们是真正有学到知识的,不是单纯的为了考试而机械的背题,在最后的实验课中,我们每个人分工明确,我刚开始负责代码编程一部分,在找到了敏感词汇过滤器以及距离位置计算代码后,交给了其他组员进行最后总结和调试,我又开始了界面设计以及logo设计,在面对全新的软件时,我是无从下手的,但是在几次碰壁和错误之后,慢慢开始熟练起来,之后的工作也变得得心应手了,按照Word里面的内容仔细删减修改,后来又进行PPT制作添加,在设计logo是也换了好几种想法,最后出来成果我非常有满足感,跟其他人一起合作共同完成一项任务是很开心的,沟通交流很多次并得到解决。这节课使我受益匪浅。

 

心得体会3:

地信1902赵佳乐的博客:https://www.cnblogs.com/zjl2001/ 

 

时光匆匆,不知不觉间《软件工程》的课程已经快学完,虽说没有开发出具体的项目应用,但我们知道了软件工程是将系统化的,规范化的,可度量的方法应用于软件的开发,运行和维护修复的过程。在课程期间,学到了很多实用的东西,老师教会了我们如何去分析和处理问题,教会了我们编写项目软件的流程和注意事项,总的来说是获益匪浅的。

 

初学软件工程,或许很多人都会迷茫,不知道软件工程学有何用。其实,软件工程还没有精确地定义,我自己的理解是,软件工程可以指导我们分析出框架结构,对于项目实现的大体步骤及具体的细节等等高效的开发、使用及维护软件,软件工程是必不可少的。

 

下面我来回顾一下各章的内容,一到三章是软件工程基础,这一章主要讲解的是一些概念性和基础性的内容,例如软件的概念、特性,软件危机的主要表现,软件工程的概念以及软件生存期、典型生存期模型、敏捷软件开发等等。五到九章是结构化开发方法学,主要讲了需求分析的任务,需求分析的步骤及各种描述工具、分析文档;需求的各种描述工具有实体关系图、数据流图、数据字典等等,这是软件项目开发的第一步。介绍了概要设计、详细设计及用户界面设计,我们掌握概要设计方法及详细设计方法。程序编码以及测试方法,重点讲解了结构化程序设计,设计风格及效率,程序设计语言的选择。十到十二章重点讲解了面向对象的概念、分析及设计,掌握什么是面向对象,面向对象有哪些优缺点,了解面向对象的分析和设计方法。统一建模语言UML,讲解了静动态建模机制,理解UML的形成、内容、特点及应用领域并掌握例图、类图进行静态建模的方法、软件测试方法及黑白盒测试用例设计方法,还讲解了软件测试步骤。第十三十四章软件维护与项目管理,主要介绍了软件维护的任务、软件维护活动以及软件维护方法、软件配置管理、软件质量管理和进度管理等进行了介绍。

 

在学习软件工程过程中,或许有诸多不解,要从整体概念上较好地理解和把握、学好软件工程,学习时要注意多看多练要注意结合实际,更要多思考,面对错误不要一范就问,要尝试自己去解决。但是还要注意什么都学,肯定是什么都学不透的,要集中精力打攻坚战,学习软件工程首先要明白自己的学习目标究竟是什么,根据自己的实际工作出发,有针对性的在相应的学习方向上进行提高,制定出详细的学习规划。还要注意与其他科目的相辅相成,软件工程与空间数据库课程有很多共同之处,对二者研究拓展,多思多想,把从各个科目学到的知识通汇贯通。

 

在做一个软件工程项目的时候,我们首先要有整体的结构和思路,这样才能照着一定的思想一定思路去写下去。写软件一般都是在沿着现有思路一步一步地写下去,而软件工程注重于宏观的来构思整个软件的思路,重在创新。所以说软件工程最重要的核心就是——创新。任何产品的成功出现都是因为它成功的创新,虽然创新的程度不一样,而软件也一样最重要的不是代码的编写而是软件的分析与整体构思。学习软件工程对软件工程有了初步的认识,带着软件工程的思维或说是眼光在做项目的同时不断积累经验,总会有能够独立分析与构思整个软件系统能力的那天。但并不是说可以独立分析软件系统就是软件工程的最终目标,毕竟学无止境,知识是无尽头的,我们仍需要不懈的努力。

 

软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。

 

在学习的过程中,老师让我们做一个自己的团队项目,第一次通过团队做项目开发,我们都有很多的体验,知道团队的合作非常重要,争议固然存在,但需要的是通过讨论、协商,群策群力,在不断地磨合中达成一致与默契,应该注意的是团队的合作要合理的分工;在一个团队中,团队的成员能力各有高低,应该互相尊重,各取所长,不宜妄自菲薄;组长需要多加协调,组员积极配合才能合作愉快,才能完全的发挥出团体的实力。

 

软件工程课程虽已结束,但我对于软件工程的学习也许才刚刚开始,王老师的课让我受益匪浅。我体会到项目管理的重要性,随着软件规模、复杂度的不断增加,项目开发中更多的是协作、管理和控制。我也学习到了很多一般性的方法,例如:需求获取、模块化、分治、估算、计划等等。有了软件工程基本的知识,我们无论是做项目还是写软件都有了一套方法,这将是解决问题的有效途径,我们要学会合理的利用。

 

在这个飞速发展的软件时代,随着软件应用的日益广泛,软件规模日益扩大,《软件工程》显得格外的重要,《软件工程》强调基本概念和基本知识的理解掌握,又侧重软件项目的分析、设计、实现和维护的基本技能;我们已经学到理论的知识,但是软件的开发测试对逻辑思维、学习能力、反应思维要求很高,我们仍需要不断地锻炼严密和逆向的思维,在具体的项目中获得实践的经验,实践才是检验真理的唯一标准,只有将理论与实践结合,才能发挥我们所学的知识的作用,才能更直接的创造效益,才能为国家和社会有所贡献。

 

最后,要感谢辛勤付出的王老师,让我们学到这么多实用的知识,这门课程使我获益良多,在此对您说一声“辛苦了,谢谢您的教导!”。

心得体会4:

地信1902李孟雪的博客:https://www.cnblogs.com/1002-/ 

本学期有幸学习了软件工程这门课程。这门课程一开始,老师就让我们组队进行,随着课程的进行,我逐渐体会到了小组合作的优点。由于我们的编码能力有限,所以一开始我们对于做出一个项目感觉非常不可思议,但是随着课程的进行,老师不断鼓励我们要积极尝试,对于软件的结构等方面进行分析,从小的地方入手,逐渐形成大的体系。起先感觉摸不到头脑,感觉无从下手,但是按照学过的知识体系进行一步步探索,我逐渐掌握了它的入门。

先回顾一下学过的内容。第一部分是软件工程概述,主要讲解了软件的概念、性质、软件过程以及软件工程所遵循的原理和方法;第二部分是软件需求分析,主要讲解了需求分析的任务、步骤以及各种描述工具、需求文档等,其中包括实体关系图、数据流图、数据字典等工具。第三部分是软件设计,主要详细介绍了概要设计、详细设计以及用户界面设计;第四部分是面向对象技术,这一部分重点讲解了面向对象的概念、分析和设计,需要了解面向对象的分析和设计方法;第五部分是UML,理解UML的形成、内容、特点以及应用领域并且掌握例图、类图等方法;第六部分是软件测试,详细介绍了软件测试方法以及黑盒测试和白盒测试;第七部分是软件维护,主要介绍了软件维护的任务、软件维护活动以及软件维护的方法。

首先是要建立工程化的思想,其实编码在整个软件建立的过程中只占很小的一部分,而我们平时感觉可以草草了事的需求分析和可行性分析才是这次项目的拦路虎。首先,选择一个合适的项目继续开展下去,并且能被市场接受和认可是一件非常困难的事情。请过多次商讨以及将原有的项目推翻重来,我们最终确定了做一个大学生社交小程序,一是基于我们自身的切实体会,二是希望能够通过这个项目对大家能够有切实的帮助。

随着课程的进展,我们合作完成了软件需求规格说明书、概要设计说明书、详细设计说明书以及测试文档,并且在最终呈现出了小程序的前端设计以及部分功能实现。在这三个月的过程中,我们曾经不知道从何下手来构建一个小程序,到最终能够呈现出较为满意的结果,我在这个过程中受益匪浅。我逐渐意识到项目管理的重要性,随着软件规模、复杂度的不断增加,项目开发中所需要的更多的是协作、管理和控制。只有在大家的协同努力下,才能够让这个项目得到最完美的呈现。

在学习软件工程的过程中,或许有诸多疑惑,我们首先要从整体概念上较好的理解和把握好软件工程的整体脉络,在学习时要多看多听多练,在实际中思考问题,而不能只是空想。并且要从自己的实际情况出发,有针对性的在相应的学习方向上进行完善和提高,与已经学过的内容进行融会贯通。要带着软件工程的思维来积累经验,独立分析和整理整个项目的总体思想。

在这个飞速发展的信息化时代,软件的规模逐渐扩大,《软件工程》这门课显得日渐重要。我们不仅要强调基本概念和基本知识的理解,最重要的是要掌握软件项目的分析、设计、实现和维护的基本功能。我们仍然应当在今后的日子里不断将学到的理论知识与实际生活中的实践相结合,更大可能的发挥我们所学知识的作用。这也是我学习这门课的收获。

心得体会5:

地信1902王晨光

 2019303220212

在王颖老师的悉心教导下,我学习软件工程一学期以来受益匪浅。在学习本课程之前,我对一个软件是如何产生的完全没有概念,可以说是一无所知,但经过对软件工程课程的学习,我对软件的认识有了很大的提升,也通过亲身的实践知道了一个软件的产生是一个不易且复杂的过程:从需求分析,到概要设计、详细设计、再到最后的编码、测试,每一步都要花费很大的精力,通过对本课程的学习,我深刻认识到了程序员的不易。此外,通过对软件工程课程的学习,我还知道了软件并不等同于程序,程序仅仅只是软件的一个组成部分,一个软件除此之外还包含使用和维护程序的所有文档。

作为一名初学者,一开始软件工程对我来说比较困难,在参与小组编写需求说明时,我也不是很清楚自己的部分该怎么写,但经过与小组同学的讨论以及上网查阅资料后,最后还是很快地完成了自己的部分。这也让我知道了软件工程是一个合作的课程,在学习软件工程时,尤其是在完成软件工程的实践时,一定要和同小组的同学们充分讨论自己不明白、不清楚的地方,想要写好需求分析,还要多看其他人是怎么写的,要学习别人是如何把需求清楚地表达出来的。

在学习过程中,我还知道了要想真正做出一个程序,时间规划是十分重要的。如果没有时间规划,就没有一个短期的目标,总觉得时间还非常多,到最后什么也做不出来。我认为在生活中也是这样,不管做什么事都要有一个规划,按照规划来一步步完成,我相信大部分事情都会迎刃而解。

在本学期,我了解了完整项目规划的流程,一个完整的项目规划,是包含软件的定义,可行性分析报告,项目开发计划,软件需求说明书,概要设计说明书,详细设计说明书,用户操作手册,测试计划,测试分析报告等多个文档在内的规划。经过和小组同学们一学期的共同努力和学习,我学会了各个说明书的编写规范以及E-R图、DFD图等的画法,让我受益颇多。另外,这门课让我清楚地认识到了实践的重要性,光学习理论知识而不实践是学不会、更学不好软件工程的,只有将课上老师讲的知识与课后和小组同学们的一起实践相结合才能更好的掌握这门课。

软件工程这门课马上就要结束了,我真的感觉收获很多。在我看来,我们学习软件工程这门课不仅是为了这几个学分和这门课的成绩。我们在这门课程中学到的制作软件的整个流程以及团队协作的重要性是更为重要的。这些宝贵的经历,在我们毕业之后也会非常实用,即使我们毕业后可能不会做软件开发相关的工作,但我们在课程中学到的团队合作也会让我们受益终身。

 

posted on 2021-06-25 09:22  We-like  阅读(105)  评论(0)    收藏  举报