软件工程学习心得体会_第1页
软件工程学习心得体会_第2页
软件工程学习心得体会_第3页
软件工程学习心得体会_第4页
软件工程学习心得体会_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程学习心得体会曾经看过一本书叫《道法自然》,内容略记得一二,但我最欣赏的是它的书名.软件设计没什么太神秘有东西,只要用心体会,其实一切都很自然.软件的设计之“道”,也不在于设计有多么的华丽、精巧,而在于其朴实、自然,最终达到“以无招胜有招”,进入一个全新的境界.一、软件设计理论的层次以我的拙见,软件设计领域中的各种概念,可以分为以下几个层次来进行理解:1、软件设计的目的:重用性、扩展性.这是最高的层次,是应对软件危机的需要.2、设计原则:低耦合、高聚合.各种软件设计的原则,如依赖倒置原则、单一职则原则、面向接口等,以及各种设计模式,其根本的目的其实只是为了降低耦合这么简单.因为只有低耦合才能更好的适应变化,更好的重用和扩展.3、实现方法:运用设计模式封装变化、降低耦合.设计模式只是用来“封装变化、降低耦合”的工具而已.它是面向对象设计时代的产物,其本质就是充分运用面向对象的三个特性,即:封装、继承和多态,进行灵活的组合运用.二、关于耦合1、耦合的粒度耦合无论如何也是不可避免的.当我们实现接口、继承父类的时候,就会不可避免的产生耦合.耦合是有不同粒度的,我们解耦到什么粒度为止,我认为应以模块的重用粒度为准.尽量解除重用模块或对象之间的耦合.而重用模块之内的耦合,应属于聚合的范畴,所以不要盲目的去解耦,否则就陷入了误区.2、解耦的原理怎样才能解耦呢,或者说为什么各种设计模式能达到解耦的目的呢?我觉得有以下几个思路:(1)将具体的东西抽象处理(2)将分散的东西集中处理而面向对象中的接口、继承正为我们提供了这样的一种机制.通过访问接口或基类或抽象类,而不是具体的实现类,从而与具体的实现类达到了解耦的目的.我们还可以设计一些控制类,像润滑剂一样,协调各实现类之间的访问,也可以达到耦的目的.事实上,各种设计模式的基本思想也就是这样.创建型模式是为了解除创建对象时产生的耦合,实际上是解除对类称名的依赖,而结构型和行为型是为了解除对象属性或方法的直接调用.不管什么设计模式,都是将对具体实现类的访问提升为对接口、基类或用于协调的控制类的访问.三、关于接口这一节更具体,谈一谈接口,因为使用接口是软件设计的重要手段,但已经不属于“道”了~1、接口与继承接口描述的是对象某一个方面行为特征.使用接口与使用继承关系各有优缺点,使用子类继承可以继承父类的功能,体现了重用的精神.而接品更加灵活,因为它解除了子类与父类之间的高度耦合,它体现在灵活扩展的精神.2、接口与纯虚类理论上接口可以由纯虚基类实现类似的功能,那为什么还我们不去掉接口的概念,而直接使用虚类呢?接口存在的理由就是它更加灵活,关系简单,易于理解.比如一个类可以实现十几个甚至几十个接口,但一般开发工具只支持单继承(由于多继承太容易导致混乱和冲突),如果要继承十几层,系统结构想必会无法理解了,我以为这是接口存在的最重要的原因.如果接口和虚类继承结合使用,可以产生强大的威力,这也是许多设计模式的“杀手锏”.以上算是总结一下自己的心得.肯定有不少片面之处,请各位指教软件工程学习心得体会(篇二)软件工程是一门实践性很强、交叉性很强的学科,它提供给我们的不仅是一种方法论,更是一种世界观.在没有接触软件工程这门课时,我一直认为软件就是程序.能编出解决问题的程序就ok了,从没有想过,在写一个程序之前还要构思几份文档(可行性分析、需求分析、概要设计).不过对于那些大型软件如植物僵尸大战(至少对于我来说是比较大型的了)怎么去实现它,想得我一头雾水.绚丽的界面、40种植物、一大堆不同类型的僵尸,怎样编代码去实现它呢?第一次上软件工程的课,裴老师问“软件是什么?”我的第一想法是:这个问题太过愚昧了!谁不知道软件就是程序呀?“软件是由计算机程序、数据及文档组成.”听到这句话,我心里先是一惊,慌忙翻了下书“软件是程序和所有使程序正确运行所需的相关文档和配置信息.”赫然映入我眼帘.突然间我发现,就算是植物僵尸大战这样复杂的游戏,如果设计者实现分模块把每一部分如何实现用文档描叙出来,那这个软件实现起来不是很容易吗?第一次课后我明白了软件工程是致力于专业化软件开发的理论、方法和工具的研究.虽然我从初中开始信息奥赛,高中继续这个爱好,但在大学二年级下学期才接触在软件开发中这么有引导意义的学科,不觉有种相见恨晚的感觉.自然它的方法学三要素:方法、工具、过程,我牢记于心.短短的四周,裴老师的课给我留下了深刻的印象,印象尤深的是:做软件我们首先考虑的是团队的实力.如果别人给你50万让你们团队开发一个软件,如果他要求你们团队给这个软件永久维护,那么你要去跟他协商付100万.很多软件公司倒闭就是因为维护上的问题.至此我才明白维护软件是软件生存周期中时间最长的一个阶段,它是最花费精力与钱财的一个阶段.如果将来你们碰到了我,你跟我说你是se那么我会很高兴,如果你告诉我你是软件工程师,我只会“嗯嗯”两下.其实在我接触软件后,渴望的是当一名软件工程师.现在才知道学软件工程专业后,去当一名软件工程师是最低层的也是最没“技术”含量的.要做就做系统构架师,当然这需要我们的不懈努力才能达到.系统构架师的职责是设计一个公司的基础构架,并提供关于怎样建立和维护系统的指导方针.恍然发现学软件不仅是学软件,相关的管理能力也是需要具备的.当然理论知识是用来指导实践的,亲身体验才能领悟软件工程的妙用.课设我们选择了图书馆管理系统,主要是这个系统我们接触比较多,对于它的流程还是比较清楚的.虽然如此我们还是花了很大的时间去完成它.记得当时我们定下这个题目是晚上,在讨论用什么语言实现时,大家各自说出自己比较善于的语言.然后均衡了下,定下用java做开发语言.在实现过程中,突然发现java环境连接数据库和tomcat超级麻烦且数据库老是连接不上.趁时间还早我们三再次讨论,决定用c#做开发语言,主要是c#相对于C++与java来说简易写.同时我们定下不管以后遇到什么困难都要坚持下去的准则.在课设期间我们没少跑图书馆,查阅各种资料,对比各本书上实现图书馆管理系统的代码.终于在4月11日把所有课设的所有事情弄好了.当然这只是个概述.我印象尤深记忆深厚的是最初实现文档那块.刚开始,软件工程这门课还没学多少,基本的设计理念就很模糊.文档到底该怎么写,很纠结.于是我从网上狂下相关文档.通过粘贴与复制终于一份内容乱七八糟的需求分析文档出来了,当然这只是用来借鉴的.后来孟阳分享了十三份关于文档这方面的模板.我们照着那个样子在结合团队项目的相关实例开始了文档的写作.我们的文档总是一个人先写好,再拿给另一个人改,最后由第三个人评审.大家都觉的可以了,才过关.测试报告虽然是我一个人完成了,但也经历了不少时间,当然这时间是按小时算的.首先把大体写出了,然后修改,再增加信息.大量的截图以及思考怎样用例超费脑子,两天的通宵,彻底把我搞垮了,不过在文档出炉后,心里异常开心.软件工程课程虽已结束,但我对于软件工程的学习才刚刚开始,裴老师的课让我受益匪浅.我体会到项目管理的重要性,随着软件规模复杂度的不断增加,项目开发中更多的是协作、管理和控制.我学习到很多一般性的方法,例如:需求获取、模块化、分治、估算、计划等等.同时,我也认识到使用计算机解决实际问题的复杂性,在图灵机模型和冯•诺依曼体系的计算机框架下,人们认识表达的过程(不断反复、逐步深化)和计算机的实现过程(顺序执行)相差甚远,软件工程方法要提供给程序员们一种更加有效的对客观世界问题域进行形式化的过程方法.向se进军!至少这是现在的目标.谢谢裴老师!您的课通俗易懂,举的例子贴近生活,让我们易于接受.软件工程学习心得体会(篇三)时间飞逝,不知不觉间《软件工程》的学习已经过了大半了.在这将近半学期的学习中,虽然我不能说我将《软件工程》学习的有多么的好,但是通过学习,我还是受益良多.在以前,我一直对软件存在一些偏见或则是误解,认为软件就是程序,软件的开发就是编写程序,只要编完了程序,一切也就ok了,而且我还片面的认为只要我掌握了时下最新的语言和工具,那么我就能写程序了.一个人,只要会编程,就能写软件,就是程序员;一个公司,只要招聘一些程序员,就能开发好的软件产品.只要有几个有经验的程序员,再找些兼职的大学生,就能组成一个软件公司.但是通过了《软件工程》这门课的学习,使我认识到了我以前的错误.软件其实不仅仅是程序,软件开发其实也不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息.唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品.而且在以前,我一直以为软件的开发其实是一件很轻松快乐的事情,只要一天坐在电脑旁敲敲键盘,那么一切就可以了,但是现在我才发现,我以前的很多的思想是多么的肤浅可笑.编程其实是一种乐趣和苦恼共存的一项创造性活动.因为编程不仅能够满足我们内心深处进行创造的渴望,而且还能愉悦我们内在的情感.而且通过学习《软件工程》,我还学到了很多其他的东西.比如通过学习《软件工程》,特别是老师每次用实际的软件现场的讲解,为我提供了一个尽早接触世界工作和真实项目的机会.让我知道如何在以最小的成本中,训练自己的基本工程素质和能力,如何激发自己的积极性等.而且通过学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论