搜档网
当前位置:搜档网 › 软件工程学习心得体会

软件工程学习心得体会

软件工程学习心得体会

【篇一:软件工程导论心得与感想】

软件工程导论

在前不久的几周里,刚刚结束了“软件工程导论”课程的学习。这门

课程带给了我很大的启发,让我对软件工程这一新兴学科有了全面的,深刻的认识。卢苇老师精彩的讲演,同学们积极地提问与回答,都带给了我深刻的认识。下面是我在学完该课程后的一些启发。

一、我对软件行业的认识

其次是我国的软件力量。我们国家面临着一个良好的社会的环境,

社会安定,政府稳定,特别是当前经济发展迅速,法制建设不断完善,高新技术领域突飞猛进。但是由于法律制度不完善,并且从业

人员普遍创新的意识不够完善等等多方面的因素,我国的市场并非

特别乐观。我们都能清晰地看到许许多多成功的企业都未做到完全

的创新,如“淘宝网”便是借鉴“亚马逊”网站,而“人人网”也与facebook有极大的相似度,而腾讯更是众所周知的山寨之王。但是

换个角度看看,这正说明,我国的软件具有极大地潜力,在未来的

几年,几十年之间,我国的软件行业必会重新洗牌,涌现出强大的

软件企业,而我们,也一定有机会实现自己的软件梦。

第三是我国软件行业的人员构成。我国的软件行业目前主要还是中

低素质人员构成。打不风程序员,他们没有系统的、完整的学习整

个软件工程的知识,仅仅靠自学或者短期学习,掌握到部分的、片

面的知识就已经进入从业阶段,这样的学业使他们不能够胜任自己

的工作。而高端的软件从业人员相比较而言是相对稀少的,所以我

国的软件行业并未真正崛起。我们急需那样的高端人才,而这些人才,便是现在我们学院所努力培养的。

二、我对我们学院软件工程专业的认识

it行业是随着电子信息产业的发展而逐步发展起来的,并且日益得

到完善。it行业的平稳增长必然会带来软件工程师需求的增长,目前随着it产品出现的技术融合,市场需求的巨大和专业人才的缺乏,

由此可知,软件行业还是比较乐观的。但软件行业需要的也是复合

型人才,软件工程师需要掌握更多的编程语言。

北京交通大学软件学院是经教育部批准的国家示范性软件学院。学

院成立于2003年2月,是为适应我国经济结构战略性调整的要求和

软件产业发展对人才的迫切需求,实现我国软件人才培养的跨越式

发展而建立的。学院充分发挥学校的计算机学科优势和 it 企业资源

综合优势,利用已有的办学与市场资源,与国内外著名的 it 企业开

展合作,在管理体制、运

行机制、教育思想与理念、人才培养方案与课程体系、教学模式与

方法、产学研合作等领域大胆创新,已探索出一条有效地培养“国际化、工业化、高层次、复合型” 软件人才的办学之路。

作为教育部批准的全国36所示范性软件学院和学校教育体制改革与办学机制创新的试验田,北交大软件学院承载着学校的殷切期望。

作为国家重要的软件人才培养基地,在管理体制、运行机制、教育

思想与理念、人才培养方案与课程体系、教学模式与方法、产学研

合作等领域大胆创新,探索出一条有效地培养“国际化、工业化、高

层次” 软件人才的办学之路,推出了“2+1+1”人才培养模式。作为一

名北京交通大学软件学院的靴子,我感到十分自豪。

三、我未来的职业规划

在学习完院长的导论课后,我对自己的直接规划产生了很深的想法

并且做出了很大的改变。首先,我一定要努力完成大学的学业。在

大学一年级,我要认真地完成专业课程,努力学好c语言和java的

课程,同时扩大自己的知识面,多多学习一些有关软件方面的知识,不断地充实自己。

在大学二、三年级,我要注重学习java基础知识、多学习项目开发

经验,了解项目开发业务知识,并在学习中掌握db2数据库的sql

语句的复杂查询以及管理操作,并深入学习了解struts、hibernate、spring相关操作。同时在大三结束之前,我要至少了解并熟悉2门

编程语言,如.net、c++、php;并学习掌握noracle、ms-sql数据

库管理操作;掌握软件开发各个阶段的基本技能,如市场分析, 可行

性分析, 需求分析, 结构设计, 详细设计, 软件测试等。如果有时间的话,还要学习管理方面的相关知识,由技术型向管理型方面的转移。我要多多锻炼自己的能力,不论待人接物,还是进行演练,都要积

极参见,努力争取较大的提升。

在大学四年级,学校会安排比较多的实习,到那时候,就要好好工作,发挥自己前三年学到的知识,努力完成自己的毕业实习,最后,优秀地完成自己的大学学业。如果能够,我将选择继续深造,可以

通过保研,考研等等许多途径,努力获得研究生的资格。同时,就

业也是一个不错的选择,但是不论考研还是工作,我都要一如既往

地补充自己,不断提高自己的专业水平。在工作时,我会优先选择

私人的,创意性比较强的公司,从中积累经验,并且努力奋斗,成为复合型人才,我便可凭此进入大公司或者帮助自己的公司变得更加强大和成功,最后成为it行业中优秀的一员。

四、总结

卢苇教授的“软件工程导论”真的让我获益良多,对于软件工程专业有了深刻的了解,对自己以后的道路的安排也有了深刻的认识。上课的日子总是很快,不知不觉中遍结了课,我感到如梦初醒,因为我们才敲开软件知识的大门。路漫漫其修远兮,吾将上下而求索。不经历风雨怎能见彩虹。我要时刻保持一颗清醒的头脑,随时为自己的目标而奋斗。其实,每个人心中都有一幅画,描述着理想、信念、追求、抱负;每个人心中都有一片森林,承载着鸟语花香的甜蜜、阴森恐惧的彷徨。一个人,若要获得成功,必须拿出勇气,付出努力、拼搏、奋斗、成功。机遇不同情眼泪的忧伤、不相信颓废的绝望,只期待爱打拼、时刻准备着的人。

【篇二:学习《软件工程》课程心得体会】

软件工程课程

——心得体会

摘要:高校教职工工资管理系统是为了解决教职工工资管理的而设计的,目的是建立一个能够初步实现高校教职工工资管理系统的智能化管理,该系统能跟据每位教师的职称不同而确定不同的基本工资,同时能根据每个教职工的出勤率,加班时间计算出每个教职工的月工资,还能根据每个月的情况计算出年终奖金。利用此系统能减少工资计算管理教职工数量,增加教职工效率,同时还能使公司工资管理更加合理、透明,为高校节约成本。在进行软件需求说明书设计及概要设计的心得体会。

关键字:工资管理功能心得

绪论:软件工程课程设计的题目是高校教职工工资管理系统,本文主要是对于软件工程课程设计中需求分析与概要设计分析的心得。我们进行设计的项目是高校教职工工资管理系统。高校教职工工资管理系统是为了解决教职工工资管理的而设计的,目的是建立一个能够初步实现高校教职工工资管理系统的智能化管理,该系统能跟据每位教师的职称不同而确定不同的基本工资,同时能根据每个教职工的出勤率,加班时间计算出每个教职工的月工资,还能根据每个月的情况计算出年终奖金。利用此系统能减少工资计算管理教职

工数量,增加教职工效率,同时还能使公司工资管理更加合理、透明,为高校节约成本。

一、需求分析和概要设计。

1)需求分析

按照软件工程的软件过程来说:

1需求分析产生了软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。 2.概要设计产生了软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。

在进行需求分析时,我们既是开发者又是用户,本系统的业务流程与业务分类的定义比较难。我们的团队进行了研讨,还充分运用了身边的各种资源,大量的查找了很多网络上关于工资系统的资料。通过资料的进行讨论、根据我们的课题进行分析,最后确定了用户的需求为:

1.本系统在高校应用后高校工资管理方面的教职工将减少至目前的50%左右;

2.本系统在高校应用后将在高校各方面的成本将会有所降低;

3.本系统在高校应用后将教职工的工资达到完全透明,计算更加精确教职工因纠纷事件减少到1%。根据分析将系统的功能从一般教职工与系统管理者两个角度将功能划分为7个模块,当然介于我们的知识有限,有的功能没有实现:员工工资与考勤直接挂钩,但本系统无法与员工考勤系统挂钩相连,由于涉及此系统时该高校并没有员工考勤系统,而且我们在最初进行商量的时候也没有提出该要求。

2)概要设计

从概要阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。由概要设计说产生大的概要说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。

在本阶段主要涉及处理流程的设计、总体结构和模块外部设计、功能分配。在接口设计上有用户接口、外部接口、内部接口;数据结

构设计有逻辑结构设计、物理结构设计等等。在接口设计时参考了

大量的资

软件工程课程设计——心得体会

料。

最后就是编写文档——软件需求说明书、概要分析说明书。

而文档的作用在于:一是可以帮助整理思路。把要完成的目标,系

统的结构,每一个模块的功能等整理一下,然后分门别类地写下来,这样在开发的过程中,就有据可依,在需要回过头来修改设计的时候,也有证可考。二是便于交流。三是可以作为以后维护时的参考

资料。

三、软件工程课程设计——心得体会

我们进行了为期一周的课程设计。通过这次课程设计,我拓宽了知

识面,锻炼了能力,综合素质得到较大提高。安排课程设计的基本

目的,在于通过理论与实际的结合、人与人的沟通,进一步提高思

想觉悟。尤其是观察、分析和解决问题的实际工作能力,以便培养

成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。作为整个学习体系的有机组成部分,课程设计虽然安排在一周进行,但并不具有绝对独立的意义。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论

知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作

的现代化提出一些有针对性的建议和设想。检验学习成果,看一看

课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习

中存在的不足,以便为完善学习计划,改变学习内容与方法提供实

践依据。对我们信息管理与信息系统专业的学生来说,实际能力的

培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过

课程设计,让我们找出自身状况与实际需要的差距,并在以后的学

习期间及时补充相关知识,为求职与正式工作做好充分的知识、能

力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了

我系人才培养计划的完善和课程设置的调整。

在一个星期的课程设计之后,我们普遍感到不仅实际动手能力有所

提高,更重要的是通过对软件开发流程的了解,进一步激发了我们

对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行

更深入的学习。

软件工程课程虽已结束,但我对于软件工程的学习才刚刚开始。我

体会到项目管理的重要性,随着软件规模、复杂度的不断增加,项

目开发中更多的是协作、管理和控制。我学习到很多一般性的方法,例如:需求获取、模块化、计划等等。同时,我也认识到使用计算

机解决实际问题的复杂性,人们认识表达的过程不断反复、逐步深化,软件工程方法要提供给程序员们一种更加有效的对客观世界问

题域进行形式化的过程方法。

1

【篇三:软件工程心得体会】

读软件工程案例教程有感

对于学习软件工程这门课程,我认为有许多东西要学习。其实在我

看来学习这门课程的精髓是学习一种方法。是一个如何去分析和处

理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为

了一个综合的一个能够解决问题的思想集合。读完软件工程案例教

程这本书,我觉得自己受益匪浅。

整本书的内容逻辑很清晰明了,由浅入深循序渐进,首先我就大概

描述下我们所学的内容,第一章是从整体分析软件工程这门学科的

发展和所处的社会环境,接着后面的几章深入分析了软件开放过程

和模式、软件项目管理、计算机工程、需求分析、结构化分析建模

以及基于uml面向对象分析建模和测试等。对于这本书我主要对需

求分析和测试比较感兴趣,在这我要着重的谈一些自己的心得体会

以及自己的看法。

一.需求分析

1.1需求分析的重要性

一款成功的软件是建立在成功的需求分析之上的,而高质量的需求

来源于用户与开发人员之间有效的沟通与合作。当用户有一个问题

可以用计算机系统来解决,而开发人员开始帮助用户解决这个问题,沟通就开始了。由此我们可以看出需求分析的重要性。

需求获取可能是最困难、最关键、最易出错及最需要沟通交流的活动。对需求的获取往往有错误的认识:用户知道需求是什么,我们

所要做的就是和他们交谈从他们那里得到需求,只要问用户系统的

目标特征,什么是要完成的,什么样的系统能适合商业需要就可以了,但是实际上需求获取并不是想象的这样简单,这条沟通之路布

满了荆棘。首先需求获取要定义问题范围,系统的边界往往是很难

明确的,用户不了解技术实现的细节,这样造成了系统目标的混淆。

其次是对问题的理解,用户对计算机系统的能力和限制缺乏了解,

任何一个系统都会有很多的用户或者不同类型的用户,每个用户只

知道自己需要的系统,而不知道系统的整体情况,他们不知道系统

作为一个整体怎么样工作效率更好,也不太清楚那些工作可以交给

软件完成,他们不清楚需求是什么,或者说如何以一种精确的方式

来描述需求,他们需要开发人员的协助和指导,但是用户与开发人

员之间的交流很容易出现障碍,忽略了那些被认为是很明显的信息。最后是

需求的确认,因为需求的不稳定性往往随着时间的推移产生变动,

使之难以确认。为了克服以上的问题,必须有组织的执行需求的获

取活动。

1.2需求分析的原则

(1)需求分析必须能够表达和理解问题的数据域和功能域。数据域

包括数据流、数据内容和数据结构,而功能域反映上述 3 方面的控

制信息。

(2)需求分析要把一个复杂问题按功能进行分解并逐层细化。通常,软件系统要处理的问题如果太大、太复杂就很难理解,若划分成几

部分,并确定各部分间的接口,就可完成整体的功能。在需求分析

过程中,软件系统的用户需求中的数据、功能和行为都应细化。

(3)需求建模。模型可以帮助系统分析人员更好地理解软件系统的

数据、功能和行为,这些模型是软件工程中下一阶段进行系统设计

的基础。

1.3需求分析的注意事项

(1)确定详细的需求,否则经费就算不准。经费估计错误的原因多为:用户需求频繁变动、遗漏重要需求、与用户交流不够、需求规

格说明书质量低劣、需求分析不充分等。

(2)在编写需求规格说明书之前,应明确要解决的问题。在试图解

决问题之前,要保证已考察了全部可替代的方案。要搞清哪地方有

问题,真正的问题出在哪里。这样,在编写需求规格说明书时做到

有的放矢,把存在的问题暴露出来。

(3)立即确定需求,并记录下该需求的背景。没有明确问题,就进

行下一步的设计,想回避矛盾,可能会带来更大的问题。用户不确

定需求,软件设计人员自己决定需求,将会带来严重的问题。为了

避免将来可能出现的问题和软件工程项目能够尽快地进入到下一个

阶段的系统设计中,要尽可能迅速地把用户需求确定下来。任何决定总比没有决定要好。

(4)一旦在需求规格说明书中发现问题,立即改正。如果把存在的问题拖延到系统设计阶段去改正,就可能要花数倍的时间和精力才能纠正同一错误。

(5)在众多用户需求中确定各个需求的优先顺序,并确定可能存在的子集,以便为软件设计、实施和项目管理等后续阶段提供有利条件。

(6)需求分析时,不要进行系统设计的工作。需求分析的主要目的是确定软件系统的外部特征,充分反映软件系统应有的面貌,便于让软件设计人员根据

用户需求,去全面地考虑软件系统的体系结构、算法等。在需求分析阶段要集中精力解决用户需求存在的问题,尽可能避免产生遗留问题。

(7)对于复杂的软件系统,要从多种视角进行需求分析。根据软件系统的本质,切合实际地组织多种视角的需求。例如,可从根据用户的类型,或根据响应的类型,或根据对象的软件工程案例教程类型,或根据系统的模式等视角来组织用户需求。通过多个视角来研究用户需求问题,把可得到的不同的“投影”组合起来形成完整系统的描述。当试图从整体观点来描述软件系统发生困难,或者有可能发生错误,或者很有可能遗失软件系统的某些特性。而从不同的视角来描述软件系统,因为每个视角限制了研究的范围并能够将注意力集中于此,所以很容易保证所研究的问题是真正完整的。

(8)重视形式化方法,但不放弃自然语言。为了用户需求表达的精确性和方便用户的可理解性,一个好方法是把自然语言的表达与形式化规格说明并立,互相对照,而且在一般情况下,先用自然语言写出,再给出它的形式模型。

(9)用户需求中不应存在“待确定”的条款。如若有这种需要,应同时说明:何时由谁来解决该问题。

1.4用户需求的类型

需求分析是从用户最初的非形式化需求到满足用户要求的软件产品的映射过程。它实际上是一个对用户意图不断进行揭示和判断的过程,其目的在于细化、精化软件的作用范围,确定拟开发软件的功能和性能、约束、环境等。可将用户的需求分为两大类:功能性需求和非功能性需求。

(1)功能性需求。功能性需求主要说明了系统各功能部件与环境之间的相互作用的本质,即拟开发软件在职能上实际应做到什么。一

般来说,它是用户最主要的需求,通常包括系统的输入、系统能完

成的功能、系统的输出以及其他反应。在功能性需求中还应包括备

选功能的定义识别。

(2)非功能性需求。非功能性要求主要从各个角度对所考虑的可能的解决方案起约束和限制作用。

1.5需求分析的方法

在软件工程中,常用的需求分析方法有面向数据流的结构化分析方

法(简称 sa)和面向对象的分析方法(简称 ooa)。此外,还有以

用户为中心的需求分析

方法。这些方法都采用图文结合的方式,可以直观地描述软件的逻

辑模型。这里仅介绍结构化分析方法和以用户为中心的需求分析方法。

2.软件测试

2.1软件测试概述

软件本身无形态,它是复杂的知识高度密集的逻辑产品,其中不可

能没有错误。软件实施工程过程中必须伴随着软件质量保证的活动,而软件测试是主要活动之一。在开发软件的过程中,人们使用了许

多保证软件质量的方法分析、设计和实现软件,但难免还会在工作

中犯错误。这样,在软件产品中就会隐藏许多错误和缺陷。对于规

模大、复杂性高的软件更是如此。在这些错误中,有些是致命的错误,如果不排除,就会导致生命与财产的重大损失。

2.2软件测试的目的

2.3软件测试的原则

(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。由于原始问题的复杂性、软件的复杂性和抽象性、软件开发各

个阶段工作的多样性,以及参加开发各种层次人员之间工作的配合

关系等因素,使得开发的每个环节都可能产生错误。所以不应把软

件测试仅仅看成是软件开发的一个独立阶段,

而应当把它贯穿到软件开发的各个阶段中。在需求分析阶段就应该

制订测试计划,以保证每个需求,每个设计单元都是可测试的,便

于测试。坚持在软件开发的各个阶段的技术评审,这样才能在开发

过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些

隐患,提高软件质量。

(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部

分组成。测试以前应当根据测试的要求,选择在测试过程中使用的

测试用例(test case)。测试用例主要用来检验程序员编制的程序,因此不但需要测试的输入数据,而且需要针对这些输入数据的预期

输出结果。如果对测试输入数据没有给出预期的程序输出结果,那

么就缺少了检验实测结果的基准,就有可能把一个似是而非的错误

结果当成正确结果。

(3)程序员应避免检查自己的程序。测试工作需要严格的作风、客

观的态度和冷静的情绪。自己测试自己的软件不容易发现错误,程

序员应避免测试自己的程序。测试是一种“挑剔性”的行为,人们常

常由于各种原因具有一种不愿否定自己工作的心理,认为揭露自己

程序中的问题总不是一件愉快的事,这一心理状态就成为测试自己

程序的障碍。心理状态和思维定式是测试自己程序的两大障碍,应

由别人或另外的机构来测试程序员编写的程序。另外,程序员对软

件规格说明理解错误而引入的错误则更难发现。如果由别人来测试

程序员编写的程序,可能会更客观、更有效,并更容易取得成功。

要注意的是,这点不能与程序的调试(debugging)互相混淆,调

试由程序员自己来做可能更有效。

(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入

条件。合理的输入条件是指能验证程序正确的输入条件,而不合理

的输入条件是指异常的、临界的、可能引起问题变异的输入条件。

在测试程序时,人们常常倾向于过多地考虑合法的和期望的输入条件,以检查程序是否做了它应该做的事情,而忽视了不合法的和预

想不到的输入条件。事实上,软件在投入运行以后,用户的使用往

往不遵循事先的约定,使用了一些意外的输入,如用户软件工程案

例教程在键盘上按错了键或打入了非法的命令。如果开发的软件遇

到这种情况时不能做出适当的反应,给出相应的信息,那么就容易

产生故障,轻则给出错误的结果,重则导致软件失效。因此,软件

系统处理非法命令的能力也必须在测试时受到检验。用不合理的输

件测试程序时,往往比用合理的输入条件进行测试能发现更多

相关主题