您的位置:群走网>学习总结>软件工程学习总结
软件工程学习总结
更新时间:2023-12-16 07:07:55
  • 相关推荐
软件工程学习总结

  总结是在某一特定时间段对学习和工作生活或其完成情况,包括取得的成绩、存在的问题及得到的经验和教训加以回顾和分析的书面材料,它可以给我们下一阶段的学习和工作生活做指导,让我们好好写一份总结吧。那么你真的懂得怎么写总结吗?以下是小编整理的软件工程学习总结,仅供参考,大家一起来看看吧。

软件工程学习总结1

  这学期学习了软件工程实践这门课,我觉得这是对上学期的软件工程课程学习的检验,上学期学习软件工程只是我们浅显的认识,相比之下,这学期就更加全面的说明了开发一个项目所需要的步骤以及开发项目过程中所需要注意的诸多细节。如果说上学期的课程注重理论基础的话,那么这学期的软工实践,顾名思义,就是侧重我们动手操作的能力。

  原来我认为开发一个项目最重要的就是写代码,似乎整个软件都是编代码,因为自己动手能力不强所以就很排斥做项目。可是经过我们学习软工课程到团队做项目再到学习软件工程实践课程之后,我才真正意识到实施一个软件工程项目并不是说简单的会编码就能够解决问题的,因为一个软件的生命周期分为三个时期:软件定义时期、开发时期、维护时期,而这三个时期整体又分为七个阶段,他们分别是:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试,由此可看出,当我们开发一个项目时,更多的精力不是放在编码上,编码只是一个很小的模块,而是项目的整体结构上。

  在写软工实践体会之前,我想在这里总结一下上学期三人团队做项目的相关事宜。上学期我们三人团队根据软件开发的步骤开发一个名为“西大老乡‘荟’”的社交系统,主要是为西大学子提供一个找老乡的平台。虽然只进行到详细设计阶段,没有进一步实现,但是我还是从中学到很多东西的。首先要先确定项目主题,也就是这个项目用来做什么,可以解决什么问题。接着就是这个项目是否有研究的必要以及是否有解决的办法,针对我们的项目,我们对西大的一些学生做了问卷调查,并从调查中继续完善系统本身的做用户。第三步根据我们确定的项目主题进行需求分析,这一步骤当时做的不是很好,比如所画E—R图、数据流图等都有考虑不周的问题,导致接下来的概要设计、详细设计进行的很困难,有些步骤甚至还需要返工。

  从我们在需求分析中出现的问题,使我们明白了软件定义阶段对于一个项目的开发是至关重要的,当软件定义阶段完成时必须要用正式的文档准确的地记录目标系统的需求。只有前期的准备工作做得好,后面的工作才能顺利进行。虽然项目最后没有完全实现,但是起码我们已经初步体会到软件项目开发的步骤,以及每一步所需要完成的文档等内容。

  这学期的软件工程实践虽然不是亲自动手开发一个系统,但是张元平老师以“物联网物流仓储管理系统”为主给我们讲解了一个真实系统的开发过程,从计划到项目系统的发布实施,以及每一步必须生成的文档。我主要从以下五个方面谈一下我的心得体会。

  第一、行业背景说明方面

  对于一个软件系统的开发,第一步就是问题定义,了解所开发系统的行业背景,制定计划。当我们计划确定以后就要对项目系统本身进行可行性研究,主要从技术可行性、经济可行性和操作可行性三个方面着手。就比如《物联网物流仓库管理系统》的行业背景说明文档中非常详细地分析了当下物联网物流行业的整体业务说明、应用背景、未来发展趋势以及相关应用案例等四个方面,项目团队中系统分析员就可以根据这份文档以及相关的调查资料对将要开发系统的进行定义等工作。

  原来我们写这类文档的时候就是草草了事,不会做得这么详细,而这次看到大型项目的行业背景说明也是这么详细,也让自己认识到不管是软件开发的那个阶段都要认真对待,这些琐碎的文档都是后期开发项目的支撑,只要它们做的透彻,后面的开发工作才能更顺利的进行。

  第二、项目需求说明方面

  这部分项目需求说明就是软件定义时期中需求分析阶段,而该阶段的主要目的就是了解用户的需要,根据用户的需要确定系统必须完成那些工作,并对目标系统提出完整、准确、清晰、具体的要求。在需求分析结束之前系统分析人员要写出一份需求规格说明,即为《物联网物流仓储管理系统》项目需求说明文档。我们可以看出该文档也是非常详细,相比之下我们之前做项目时写的需求规格说明书就非常不合格,不仅格式不正确内容也是少之又少。

  在这方面,这篇文档给我启发很大。首先就是文档的格式,要美观整齐,让人看着舒服方便。其次就是文档的内容,原来它不是很重要,写文档的时候也不知道怎么写就借鉴下网上的内容,结果根本就没有把自己项目的需求写明白,以至于自己最后都有些糊涂,所以根据以前的经验教训我会对这部分更加重视。

  第三、系统概要设计方面

  这部分内容分说的是软件设计时期的概要设计阶段,该阶段的主要目的就是实现系统的功能、设计软件的结构、模块组成以及模块之间的关系。在概要设计阶段,我们可以站在全局的高度上,花较少的成本,从抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的结构。在这个阶段还会具体画出E—R图、数据流图等方面的设计。

  比如《物联网物流仓库管理系统》的系统概要设计从项目概述、设计约束、功能单元与功能模块设计、数据E—R图设计、总体设计、界面设计等六个方面介绍,通过读这个文档,我觉得最重要的还是总体设计,分别从逻辑架构设计、物理架构设计、技术架构设计设计系统。在这个阶段中模块要做到高内聚低耦合,这样开发出来的系统才会具有更高的独立性。

  在原来做项目时没有编写过这类文档,在该阶段只是画了结构图、层次图以及相关的模块划分,对该类文档尚未重视。通过张老师的讲解和自己的学习,我相信在以后做项目的时候一定会注意到这类文档的.编写。

  第四、详细设计与分析方面

  详细设计阶段就是把概要设计阶段的每个模块进一步设计,确定每个模块所需要的算法和数据结构。在这个阶段还是需要我们设计出程序的详细规格说明,而不是编写程序。在详细设计阶段,系统设计人员可以通过使用程序流程图、盒图、PAD图等过程设计的工具和Jackson图等面向数据结构的设计工具进一步设计系统相关接口,主要包括界面设计接口、业务单设计接口、单元模块设计接口等,这些对于以后的编码工作都是极其重要的。

  第五、编码和测试方案方面

  关于编码,我认为编码要想做的完美必备条件就是前面的软件定义和软件设计时期要按部就班的做,文档一定要按要求书写,不能偷懒也不能草草书写。对于编码也要有相应的文档书写规范,要使源程序代码的逻辑简明清晰、易读易懂。这样尽管我们不是设计系统的人员,当看到源程序代码的时候也能容易读懂代码的意思。

  其次就是测试的内容,从测试的文档中我们可以得出,其实测试在软件开发中同样占据了重要的地位,它主要就是尽可能多的找到问题并排除其中的潜藏的错误,最终把一个高质量的软件系统交给用户使用。它要求测试人员也要有很高的技术水平。

软件工程学习总结2

  一、 软件生命周期各阶段任务目的和主要方法

  在分阶段总结之前,首先要明确以下三个问题:

  1、什么是软件生存周期?

  软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 主要包括:

  (1)问题定义;

  (2)可行性研究;

  (3)需求分析;

  (4)概要设计;

  (5)详细设计;

  (6)编码;

  (7)测试;

  (8)软件维护 。

  2、软件生存周期为什么划分成阶段?

  (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

  (2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。

  (3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。

  3、应该怎样来划分阶段?

  (1)每一个阶段的任务尽可能独立;

  (2)同一阶段内的任务性质尽可能相同;

  (3)每一个阶段任务的开始和结束有严格的标准。

  下面分别对各阶段进行讨论:

  1、问题定义

  目的是将用户提出的要求具体化、定量化,任务是确定研制系统的范围,明确研制的边界。

  方法步骤:

  (1)通过调查研究,了解系统要求;

  (2)需求方与开发方讨论确定系统的功能、性能、可靠性、安全保密性等方面的要求,以及费用、进度等方面的要求。

  2、可行性研究

  可行性研究说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性,评述为合理地达到开发目的可能选择的各种方案,目标是用最小的代价在尽可能短的时间内确定问题是否能够解决。

  可行性研究的方法是首先需要进一步分析和澄清问题定义;然后分析员导出系统的逻辑模型;最后对未来的行动方针提出建议。

  在导出逻辑模型的过程中,具体要根据以下四个方面分析可行性:

  (1)经济可行性:进行成本效益分析,评估项目的开发成本,估算开发成本是否会超过项目预期的全部利润.分析系统开发对其它产品或利润的影响。

  (2)技术可行性:根据客户提出的系统功能,性能及实现系统的各项约束条件,从技术的角度研究实现系统的可行性。

  (3)法律可行性:研究在系统开发过程中可能涉及的各种合同,侵权,责任以及各种于法律相抵触的问题。

  (4)开发方案的选择性:提出并评价实现系统的各种看法方案.从中选出一种用于软件项目开发。

  3、需求分析

  需求分析是为了有效解决用户的需要而进行的一项工程活动,要考虑的问题是功能需求、数据需求、性能需求和接口需求,开发者承担分析任务,核心是用户。

  软件项目的失败大半源于需求分析没有做好,软件开发人员首先应该明确用户的意图和要求,正确获取用户的需求,然后形成一个软件需求规格说明,它是软件开发的重要基础。

  需求分析的方法:

  (1)需求获取:获取客户需求,客户泛指某个人或机构部门等,一般方法是调查,包括访谈座谈、问卷、跟班和收集资料,需求规约可表达用户的软件价值。

  (2)需求分析与规格说明:建立需求模型,它是用户需求的图解,一些常用的模型有:业务树图、用例图、活动图。分别用于结构化需求建模、系统业务举例和反映系统工作流程。

  (3)需求验证:要验证的主要内容有:有效性验证、一致性验证、完整性验证、现实性验证和可检验性验证。

  需求建模的方法:

  (1)关联模型

  (2)面向对象模型

  (3)原型方法

  4、系统设计

  此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等,一般分为概要设计和详细设计,好的软件设计将为软件程序编写打下良好的基础。

  概要设计是对需求规格说明书中提供的软件系统逻辑模型进行进一步的分解,从而建立软件系统的总体结构和各个子系统间及各个模块间的关系,定义各子系统接口界面和各模块的功能描述,并根据设计结果产生概

  要设计文档。 概要设计在早期有模块化方法、功能分解方法;在

  60年代后期提出了面向数据流和面向数据结构的设计方法;近年来又提出面向对象的设计方法等。

  详细设计过程根据概要设计形成的结果对各个模块的内部实现进行规划设计,并根据设计结果产生详细设计文档。 详细设计主要方法是通过采用结构化和面向对象的方法从视图、控制、模型三层模型上细化概要设计的各个模块,并完成伪代码为编码阶段做准备。

  5、编码和测试

  编码是将软件设计的结果转换成计算机可执行的'程序代码。 主要方法是依据详细设计文档实现设计中的算法、功能、接口、数据结构,采用结构化和面向对象化的方法编写代码。

  编码过程中要制定统一,符合标准的编写规范,以保证程序的可读性,易维护性,提高程序的运行效率。

  软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。

  测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随

  意性。

  6、软件维护

  软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。

  软件的维护包括纠错性维护和改进性维护两个方面。

  二、 课程主要收获

  《软件工程》课程强调概念和知识的理解和掌握,侧重软件项目的分析、设计、实现和维护的基本技能。比较注意“点”和“面”的结合,是一门理论性和实践性都较强的学科。作为一名已经在IT领域工作十年之后又重返校园的大龄学生,虽然已经不是第一次学习这门课程了,去年也刚在单位取得了信息系统项目管理高级工程师资格,从另一个侧面对软件开发过程有了更深层次的理解。不过温故而知新,这次仍然选修这门课,我还是得到了一些新的启示。最大的收获就是在我看来,软件工程与其说是一门课程,不如说是一门思想,是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,它已经成为了一个综合的能够解决问题的思想集合。

  此外,通过对软件开发过程的重学习,并结合之前在软件开发管理工作中的经验,我对自己在软件开发主要阶段管理工作中的不足有了更进一步的认识,总结了相应的管理要点,具体阐述如下:

  1、 概要设计

  主要任务:系统应该怎样做,或概括地说,系统应该如何实现 。 本阶段特点:将用户的具体要求转为抽象的计算机软件设计 。 管理要点:

  通过分析对比,从多种可能的实现方案和软件结构中选出最佳方案及最合理的,即:

  1 设想供选择的方案→推荐最佳方案→选取合理的方案

  2 功能分解→ 软件设计结构 → 数据库设计

  3 确定测试要求并确定测试计划

  作为项目管理者必须从概要设计开始就应该从全局角度开始把握整个系统的进展,并必须从此阶段开始,时刻从全局观的问题来发现问题,解决问题。

  2、详细设计

  主要任务:系统应该怎样具体地做,或概括地说,系统应该如何具体地去实现所有的要求 。

  本阶段特点:将抽象的计算机软件设计转为形象的,具体的,面向用户的计算机界面设计 。

  管理要点:

  本阶段尚未涉及具体编写程序,而是要设计出程序的“蓝图”,所以详细设计的结果基本上决定了最终的程序代码的质量。

  1 逻辑是否正确

  2 性能是否满足要求

  3 是否容易阅读和理解

软件工程学习总结3

  这次软件工程实训是从20xx。12。26号开始的,截至20xx。12。31号。实训内容是用java相关知识(主要是jsp)做一个物流配送系统。下面谈谈对这次实训的看法。

  因为自己平时对java知识储备不足,特别是jsp这一块基本不了解怎么回事,所以一拿到这个项目,我心里都是没有底的,再加上我被分到的那个组,我知道就意味着是我一个人在战斗了。呵呵,26号,实训开始了,我们的老师是来自中软国际公司的程序员,一个是周褀,一个是朱映,都是一身朴素的着装,让我感觉做软件的也没什么两样。老师介绍了自己之后,就直接切入正题了,分析了下我们各个组的系统,即将用到的知识,然后就总体把觉得需要补充的知识(jsp和数据库连接等这几块)给我们实际操作了下,因为当时看到用jsp,还讲的那么认真,当时我就后悔了,平时要是多听点,现在老师这么认真的给我们讲,这是一个多么难得的机会啊。后悔也没用啊,开始还勉强能理解一点,后来就直接晕了。然后再给大家介绍了一些即将用到的工具,比如rationalRose,SVN,MyEclipse等等。接下来的几天就不再细讲了。下面谈谈通过这次实训的心得体会吧。

  通过这次实训,让我了解到工程开发的过程,可行性分析——>需求分析——>概要设计——>详细设计——>代码编写——>测试——>验收。从技术方面上,我开始jsp基础基本上就是零的,在老师和syz2(另外一个物流小组,我一个人基本上是跟她们做的,或者说是看着她们做的)的帮助下,对jsp有了一个大概的认识。其实实训开始前,我还以为做个系统没什么大不了,可是当真正拿到一个项目,我却真的无从下手了,而且就是在知道需求分析和详细设计,在代码编写时,一样寸步难行。通过这个实训,也让我了解到,团队协作是多么的重要。一个人的精力是多么的有限。进一步理解到,企业为什么如此重视团队协作。同时借用老师的话就是团队协作固然重要,但是是建立在个人素质的基础上,假设你个人素质不行,将会影响到整个团队,就别提对团队作更多贡献了。**老师说这几句话的时候,朝向了我,估计是有特殊意义的吧,所以,我将谨记老师的教导。

  还有一个收获是从一个同学(小胖)那里得到的,他的那组成员跟我的'这组大体一样,我倒是觉得没什么了,不过他倒是很重视这个问题吧。然后他说出来,我也觉得这个问题确实其实是个大的问题。就是不管你会不会这门技术,会不会做这个东西,态度要正确才好,就算你不会做,你也应该认真的对待,将来出身到社会,就不是说像你现在,不会做就不做,跑去玩游戏了。小胖说出了这段话,也在我身上有了一个印证,虽然我jsp技术知识为0,但我也还是在认真的跟着他们一起做,不会做,就多问,毕竟现在我们是学生,可以毫不顾忌的询问各种问题,老师也会尽力为你回答。将来出身社会就不一样了。虽然,我就算个打酱油的水平,但是这个酱油也要打得有涵量啊。不管怎么样,我能对自己有个交待,虽然我不会,但是这次实训我确实是认真对待了,六天的实训,除了晚上加班外,还花了2个通宵来完成不同阶段的任务,完成与否也不重要了,我至少我做了,这点,是这次我应该对自己的一个肯定。

  这次实训的心得基本上就是这些了,最后特别感谢中软国际带我们的那两个老师(周褀,朱映),这两个老师对待我们很平易近人,对我们提出的问题,总是不光解决了,还进行了扩展,晚上也跟我们一起加班加到很晚,印象尤其深刻就是朱映老师为了给小胖解决一个问题,脸都变红了,还在继续努力,这点我并不会觉得老师知识储备不够,我想应该是这个问题的突发吧,一时没想到怎么处理。相反让我感觉更多的就是老师很认真,很负责。还要感谢就是syz2小组的倾力支持,辅导。

【软件工程学习总结】相关文章:

软件工程工作总结03-12

软件工程工作总结05-24

软件工程师工作总结06-14

软件工程师工作总结11-24

软件工程师工作总结范文08-22

有关软件工程师工作总结05-05

软件工程的实习报告04-03

软件工程实习报告05-09

软件工程实践报告07-19