学习软件工程的心得体会.docx

上传人:b****5 文档编号:4719001 上传时间:2022-12-07 格式:DOCX 页数:6 大小:23.46KB
下载 相关 举报
学习软件工程的心得体会.docx_第1页
第1页 / 共6页
学习软件工程的心得体会.docx_第2页
第2页 / 共6页
学习软件工程的心得体会.docx_第3页
第3页 / 共6页
学习软件工程的心得体会.docx_第4页
第4页 / 共6页
学习软件工程的心得体会.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

学习软件工程的心得体会.docx

《学习软件工程的心得体会.docx》由会员分享,可在线阅读,更多相关《学习软件工程的心得体会.docx(6页珍藏版)》请在冰豆网上搜索。

学习软件工程的心得体会.docx

学习软件工程的心得体会

学习软件工程的心得体会

  篇一:

软件工程的发展心得体会

  软件工程的发展心得体会

  信息技术工程学院

  11计科

  纪月

  20XX091109

  20XX年10月18日应信息技术工程学院邀请,云南省优秀中青年破格教授、硕士生导师、昆明理工大学信息工程与自动化学院计算机系副系主任、昆明理工大学软件质量技术研究所所长、中国计算机学会软件工程专委会委员姜瑛教授做客我校,为信息技术工程学院师生作了题为“软件工程的发展”的学术报告。

在学术报告过程中,姜瑛教授的报告语言生动、案例切实,精彩的演讲,让我们对软件工程的了解也更加深入和具体。

  20世纪50年代,软件伴随着第一台电子计算机的问世诞生了。

以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师。

1960年代美国大学里开始出现授予计算机专业的学位,教人们写软件。

  在计算机系统发展的初期,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。

早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。

大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。

早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。

而且,除了源代码往往没有软件说明书等文档。

  为迎接软件危机的挑战,人们进行了不懈的努力。

这些努力大致上是沿着两个方向同时进行的。

  从管理的角度,希望实现软件开发过程的工程化。

这方面最为著名的成果就是提出了大家都很熟悉的“瀑布式”生命周期模型。

它是在60年代末“软件危机”后出现的第一个生命周期模型。

如下所示:

  分析→设计→编码→测试→维护

  后来,又有人针对该模型的不足,提出了快速原型法、螺旋模型、喷泉模型等对“瀑布式”生命周期模型进行补充。

现在,它们在软件开发的实践中被广泛采用。

  这方面的努力,还使人们认识到了文档的标准以及开发者之间、开发者与

  用户之间的交流方式的重要性。

一些重要文档格式的标准被确定下来,包括变量、符号的命名规则以及原代码的规范式。

  软件工程发展的第二个方向,侧重与对软件开发过程中分析、设计的方法的研究。

这方面的重要成果就是在70年代风靡一时的结构化开发方法,即PO(面向过程的开发或结构化方法)以及结构化的分析、设计和相应的测试方法。

  软件工程的目标是研制开发与生产出具有良好的软件质量和费用合算的产品。

费用合算是指软件开发运行的整个开销能满足用户要求的程度,软件质量是指该软件能满足明确的和隐含的需求能力有关特征和特性的总和。

软件质量可用六个特性来作评价,即功能性、可靠性、易使用性、效率、维护性、易移植性。

  软件不是纯物化的东西,其中包含着人的因素,于是就有很多变动的东西,不可能像理想的物质生产过程,基于物理学等的原理来做。

早期的软件开发仅考虑人的因素,传统的软件工程强调物性的规律,现代软件工程最根本的就是人跟物的关系,就是人和机器(工具、自动化)在不同层次的不断循环发展的关系。

  面向对象的分析、设计方法的出现使传统的开发方法发生了翻天覆地的变化。

随之而来的是面向对象建模语言、软件复用、基于组件的软件开发等新的方法和领域。

  与之相应的是从企业管理的角度提出的软件过程管理。

即关注于软件生存周期中所实施的一系列活动并通过过程度量、过程评价和过程改进等涉及对所建立的软件过程及其实例进行不断优化的活动使得软件过程循环往复、螺旋上升式地发展。

其中最著名的软件过程成熟度模型是美国卡内基梅隆大学软件工程研究所(SEI)建立的CMM,即能力成熟度模型。

此模型在建立和发展之初,主要目的是为大型软件项目的招投标活动提供一种全面而客观的评审依据,而发展到后来,又同时被应用于许多软件机构内部的过程改进活动中。

  迄今为之,为了达到最初设定的目标,软件工程界已经提出了一系列的理论、方法、语言和工具,解决了软件开发过程中的若干问题,而软件工程正式从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。

  姜瑛教授的报告会让我们对软件工程的发展历程和趋势、研究内容和方法等有了更为深入的认识,进一步激发了我们对软件产业的兴趣及关注。

  篇二:

《软件工程》学习心得

  《软件工程》学习心得

  一、软件工程的定义

  软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。

在现代社会中,软件应用于多个方面。

典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。

同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。

这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

  二、软件工程的目标

  在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。

  三、软件工程的原则

  是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。

软件工程的原则有以下四项基本原则:

1)选取适宜开发范型;2)采用合适的设计方法;3)提供高质量的工程支持;4)重视开发过程的管理。

  四、软件工程的由来

  据说上个世纪60年代的程序员都是天才,写程式就像写日记一样,吃过晚饭没事干随手就可以写几个出来玩,第二天还可以拿去卖钱。

所以那时候程序员在大家眼中,跟那些搞美术,音乐的是一类的,被称为“艺术家”。

  但事过境迁,就像任何人都不会嫌钱多一样,永远都不会有人嫌CPU快的。

于是,随之而来的就是硬件的迅猛发展和越来越变态的软件。

记得以前常去同学家拷游戏,通常几张软盘就可以搞定,而现在的游戏,两三张CD-ROM都算少的了。

像如此庞大复杂的怪物,就算你是如何的天才,一个人肯定是搞不定的,否则,等你把程式写出来,人家Intel连奔腾N都开发出来了。

既要开发大型的软件还要追求速度(这样才能赚钱),于是很自然地,合作的概念被提了出来。

  在开始合作的初期,由于大家都习惯了当很有个性的“艺术家”,结果可想而知,一个是毕加索派的,而另一个是意大利印象派的,再加上一个画泼墨山水画的,要是像这样凑出来的东西都能不出问题的话,那么Bill早就转行了。

所以,那时侯的大型软件,据说“蓝屏”比WINDOWS98还多。

  马克思告诉我们,万物都是从量变到质变的。

随着问题的不断涌现,一些master们开始尝试去总结经验,并归纳了一些规范去指导软件的分析,设计,实现,测试,维护,人员交流协作,项目预算及时限控制等方方面面,这就是软件工程的前身。

  软件工程到现在已发展了30多年,可以说是相当成熟的了。

现在开发软件,据说都是一大帮人排排坐,按着一整套的规章制度来干活。

于是,软件开发成了“工程”,程序员也就沦为“工人”了。

  五、软件工程的核心

  软件工程,说白了,就是这样一套用于软件的团队开发,以提高软件质量和程序员工作效率为目的的规范。

其核心就是,对于软件开发的5个重要组成部分:

需求分析,设计,编码,调试,维护,如何组织这5个部分的工作,以及如何完成每一个工作。

简单来说,就是对于总体的组织和对于局部的实现。

  六、软件开发过程

  开发软件,就像是解决一个逻辑问题。

想想自己平时是怎样写程序的。

首先是要有一个想法,即我写的这个程序是要干什么的;然后就是对要实现的核心功能大概构思一种或多种实现方法,并从中选出一种自认为是较好的;接下来就是将涉及的各种主要或次要功能分成各个模块;最后就是分模块来编码和DEBUG。

除了第一步外,其余的步骤应该是一个循环的过程。

既然软件开发是一个具有不可预知性和变化性的动态的过程,那么,对其每一个步骤的组织,即周期模型,就必须包容它的这种性质。

  具体到每一步的工作要怎样完成,是非常灵活的,只要把握住大体的方向就行。

在进行分析,设计,编码,调试,维护这几部分的工作的时候,最核心的就是文档的编写。

文档的作用在于以下3个方面:

一是可以帮助整理思路。

把要完成的目标,系统的结构,每一个模块的功能等整理一下,然后分门别类地写下来,这样在开发的过程中,就有据可依,在需要回过头来修改设计的时候,也有证可考。

二是便于交流。

想象一下开会时的情形。

一大帮子人争先恐后,激烈辩论,然后会终人散,思想灵感也就随之散了,结果是开了半天会,什么也没讨论出来。

这就是后来会议记录被发明出来的原因。

在脑子里的东西一多,就会散而且乱,用语言表达的时候,很容易会丢三落四,别人也很难把握住你的思想。

但经过整理写在纸上以后,则会清晰得多,无论是别人还是自己,看起来都可以一目了然。

三是可以作为以后维护时的参考资料。

有一句名言:

“笔和纸永远都比大脑可靠”,意思就是说,放在大脑里的东西说不准哪天就忘了,但写在纸上的东西,只要不发生什么意外,一般是丢不了的。

当过了一段时间,你需要再回过头来修改你的程序的时候,你就会发现,你以前写下的文档实在太有价值了。

别指望你的源代码,对于复杂一点的程序来说,单纯的源代码几乎会扼杀掉你所有的时间。

  可行性分析就是关于当前项目能不能干的分析结果。

主要考虑的方面包括:

是否能把这个项目开发出来;假如可以的话,预计需要多少时间,能否满足客人的时间要求;需要多少人力和资金的投入;最重要的是,这个项目能否赚钱,能赚多少。

还要对可能存在的风险进行评估。

  七、软件工程学习感悟

  时间飞逝,不知不觉间《软件工程》的学习完了。

在这将近半学期的学习中,虽然我不能说我将《软件工程》学习的有多么的好,但是通过学习,我还是受益良多。

  在以前,我一直对软件存在一些偏见或则是误解,认为软件就是程序,软件的开发就是编写程序,只要编完了程序,一切也就ok了,而且我还片面的认为只要我掌握了时下最新的语言和工具,那么我就能写程序了。

一个人,只要会编程,就能写软件,就是程序员;一个公司,只要招聘一些程序员,就能开发好的软件产品。

只要有几个有经验的程序员,再找些兼职的大学生,就能组成一个软件公司。

  但是通过了《软件工程》这门课的学习,使我认识到了我以前的错误。

软件其实不仅仅是程序,软件开发其实也不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息。

唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品。

  而且在以前,我一直以为软件的开发其实是一件很轻松快乐的事情,只要一天坐在电脑旁敲敲键盘,那么一切就可以了,但是现在我才发现,我以前的很多的思想是多么的肤浅可笑。

编程其实是一种乐趣和苦恼共存的一项创造性活动。

因为编程不仅能够满足我们内心深处进行创造的渴望,而且还能愉悦我们内在的情感。

  而且通过学习《软件工程》,我还学到了很多其他的东西。

比如通过学习《软件工程》,特别是教员的课程讲解和每次用实际的软件现场的讲解,为我提供了一个尽早接触世界工作和真实项目的机会。

让我知道如何在以最小的成本中,训练自己的基本工程素质和能力,如何激发自己的积极性等。

而且通过学习《软件工程》,还让我认识和培养了我的团队协作能力,特别是对于我们这些在校的学生来说,这种学习更是能让我在以后工作中少走很多的弯路。

  所以,通过《软件工程》的学习,我是真的学习到了很多有用的东西,让我明白了很多的道理。

在此我对教员的辛勤教育表示感谢,因为是你让我学习到了这些,是我获益良多。

  篇三:

软件工程学习心得体会

  软件工程学习心得体会

  学习了这门课程,还有老师们的多元化教课,不但让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合。

整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。

是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。

  要学习软件工程,学会如何系统的思考,以及养成良好的编码习惯,想学好软件工程,就必须知道软件工程的目标、过程和原则:

软件工程目标:

生产具有正确性、可用性以及开销合宜的产品。

正确性指软件产品达到预期功能的程度。

  可用性指软件基本结构、实现及文档为用户可用的程度。

开销合宜是指软件开发、运行的整个开销满足用户要求的程度。

这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。

  软件工程过程:

生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。

软件工程过程主要包括开发过程、运作过程、维护过程。

它们覆盖了需求、设计、实现、确认以及维护等活动。

需求活动包括问题分析和需求分析。

问题分析获取需求定义,又称软件需求规约。

需求分析生成功能规约。

设计活动一般包括概要设计和详细设计。

概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。

详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。

实现活动把设计结果转换为可执行的程序代码。

确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。

维护活动包括使用过程中的扩充、修改与完善。

伴随以上过程,还有管理过程、支持过程、培训过程等。

软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。

  pad图:

它是用结构化程序设计思想表现程序逻辑结构的图形工具。

pad也设置了五种基本控制结构的图示,并允许递归使用。

hipo图:

hipo图是由一组ipo图加一张hc图组成。

它是美国ibm公司在软件设计中使用的主要表达工具。

hc图既是层次图,用于表示软件的分层结构。

hc图中的每一个模块,均可用一张ipo图来描述。

ipo图由输入、处理和输出三个框组成,需要时还可以增加一个数据文件框,这种图形的优点,是能够直观地显示输入处理输出三者之间的联系。

还有测试方法:

按照测试过程是否在实际应用环境中来分,有静态分析与动态测试。

测试方法有分析方法与非分析方法。

静态分析技术:

不执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号执行来找出软件错误。

动态测试技术:

当把程序作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。

还学习了其他很多工具、语言、方法等,虽然不是都学得很透彻,但我相信在今后的学习中一定会慢慢的完善的。

  软件工程对于初学者来说,知识基础较薄弱,对一些应用操作、概念、工具方法等理解起来较为困难,要能从整体概念上较好地理解和把握、学好软件工程,不是仅仅把几本专业书籍细致地看几遍,然后上机练习几次就可以成功,学习过程中要注意多看多练要注意结合实际,更要多思考,面对错误不要一范就问,要尝试自己去解决。

但是还要注意什么都学,肯定是什么都学不透的,要集中精力打攻坚战,学习软件工程首先要明白自己的学习目标究竟是什么,根据自己的实际工作出发,有针对性的在相应的学习方向上进行提高,制定出详细的学习规划。

还要注意与其他科目的相辅相成,就像我们在学习面向对象分析的时候要结合大一学习的面向对象及其方法学这一专业科目进行研究拓展;在学习语言时,要看看与c语言的联系,多思多想,把从各个科目学到的知识通汇贯通。

  在软件工程的学习中,我了解到了软件并非是一些代码这么简单,在开发软件的过程中,编写代码的工作量其实只占不到所有工程量的30%,而后期的管理和维护更是占了60%到80%之多。

一个完整的项目规划须包括,软件的定义,可行性分析报告,项目开发计划,软件需求说明书,概要设计说明书,详细设计说明书,用户操作手册,测试计划,测试分析报告,开发进度报告,项目开发总结报告,软件维护手册,软件问题报告,软件修改报告,等多个文档,每个文档都要上级验收审查,而文档数量众多,要做好这点真的不是很容易,而恰恰写好文档正能保证完成软件工程其中一个目的的关键,既研究如何用最小的开销做出生存期较长的软件,再加上各个阶段都要进行周密的策划、详细的分工部署和人员安排,且各阶段要据具体情况不断的反复才能达成,所以代码只是开发软件这个浩大的工程的一个小小的过程。

  而编码的学习中,我更了解到形成自己独特的规范的编码风格是非常重要的事。

因为这影响到了软件后期繁重的维护,大家都要阅读你的程序,如果你写的程序毫无规范可言,那么别人怎么能读懂你的程序?

读不懂程序,维护又从何谈起呢?

所以,我们在今后的学习中,一定要注意这方面的培养,在写程序的过程中,要逐步的在规范的基础上形成属于自己的风格,即方便自己的修改,也方便日后他人的阅读。

  在学习中,我们还要注意比较三种方法的优缺点,例如:

传统方法虽然使软件摆脱了混乱和无序,但其在适应需求变化的方面不够灵活,而且传统方法要么面向行为,要么面向数据,缺乏两者的有机结合。

而面向对象方法的程序设计和问题求解更符合人们日常自然的思维习惯,适合大型、复杂及交互性比较强的系统。

形式化方法则是一中基于形式化数学变换的软件开发方法,它可将系统的规格说明转换为可执行的程序。

在今后的学习中要注意多读书、多思考、多练习、多讨论,不断熟悉书本的基础,并以此为基础将其扩散开来,应用于今后的实践。

不断锻炼自己,向一名合格的程序设计师迈进。

  以上这篇是软件工程学习心得体会。

就为您介绍到这里,希望它对您有帮助。

如果您喜欢这篇文章,请分享给您的好友。

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1