- 相关推荐
软件工程学习心得体会
当我们经过反思,有了新的启发时,马上将其记录下来,这样能够让人头脑更加清醒,目标更加明确。那么要如何写呢?以下是小编精心整理的软件工程学习心得体会,仅供参考,大家一起来看看吧。
软件工程学习心得体会1
未接触软件工程之前一直都很想学这门课程,因为觉得这门课很牛,是那些有工程师称号的高手才摆弄的东西。学了一个学期的软件工程课,终于知道了个软件工程的大概。学的时候总觉得很抽象,理解起来好像不难,但总是摸不着头脑一种很茫然的感觉。曾经以为程序就是软件,软件就是程序。学习这门课程第一个收获是,知道了二者的不同之处。以前做过的一些小型的软件比如加密软件,我也只是在程序旁边附上一个软件的说明,看来已经很接近作坊了。不过大的项目没有接触过,用软件工程的方法还是第一次。我想也是程序的不断复杂化导致了软件危机的发生,使得人们不得不探索新的解决方法。
经过倪老师的讲解,理解了软件工程,就是一套用于软件的团队开发,以提高软件质量和程序员工作效率为目的的规范。其核心就是,对于软件开发的5个重要组成部分:需求分析,设计,编码,调试,维护,如何组织这5个部分的工作,以及如何完成每一个工作。吾生也有涯,而知也无涯,学习永无止境。起初,对软件工程处于一知半解的状态,分工比较混乱。
在划分模块后明确了各自分工,渐渐形成良性循环。在学习过程中,知道了团队合作十分重要,争议固然存在,但通过讨论、协商,群策群力,在不断磨合中能够达成一致与默契。团队成员中能力各有高下,互相尊重,各取所长,不宜妄自菲薄。组长多加协调,组员积极配合,才能合作愉快。学习能力体现在能尽快接受新的知识,顺应变化,学为所用。
上《软件工程导论》这门课,我的收获大概如下:我们为什么需要软件工程呢?上面已经给出了一些原因。专业点讲,软件工程最终是为了实现“软件制造业”的社会化,工业化大生产,提高其劳动生产效率。只有如此,软件业才能实现社会化,工业化大生产,才能“做大做强”。没有管理的设计是失败和混乱的设计,没有设计指导的.编程是无序的忙碌的。根据开发的软件的规模,应该适当程度的运用软件工程化的思想,需要灵活,毕竟我们开发的软件大多数是中小型的,大型的并不多见(我是这么认为的)。但只要涉及人员间的交流和沟通,或多或少都要需要软件工程才能更有效率,工作成果更稳定。
其实开发软件,就像是解决一个逻辑问题。想想自己平时是怎样写程序的。首先是要有一个想法,即我写的这个程序是要干什么的;然后就是对要实现的核心功能大概构思一种或多种实现方法,并从中选出一种自认为是较好的;接下来就是将涉及的各种主要或次要功能分成各个模块;最后就是分模块来编码和DEBUG。在我看来,除了第一步外,其余的步骤应该是一个循环的过程。在编码的过程中,你总是需要不断地回过头来修改原先的模块设计,甚至最初选定的实现算法。具体到每一步的工作要怎样完成,是非常灵活的,只要把握住大体的方向就行。在进行分析,设计,编码,调试,维护这几部分的工作的时候,最核心的就是文档的编写。1。可行性分析就是关于当前项目能不能干的分析结果。
2。项目描述这是在决定立项以后,对当前项目的一份扼要说明。
3。需求分析就是对客户要求的功能的定义。
4。软件设计这就是对程序的每一个模块的详细设计的说明文档。
5。开发日志我一直都认为这是文档中最有趣的部分。开发日志相当于编码阶段的文档,它的形式可以很随意,主要是记录一些在写程序时突然萌发的灵感,或对代码的一些微小的修改,或对程序结构的一些微小变动等,还要对上述这些修改变动作些说明。
6。测试分析用于指出程序存在或潜在的缺陷和错误,以及程序性能的数字描述。
软件工程学习心得体会2
学习了这门课程,还有老师们的多元化教课,不但让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合。整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。
整本书的内容逻辑很清晰明了,由浅入深循序渐进,首先我就大概描述下我们所学的内容,第一章是从整体分析软件工程这门学科的发展和所处的社会环境,接着后面的几章深入分析了软件开放过程和模式、软件项目管理、计算机工程、需求分析、结构化分析建模以及基于uml面向对象分析建模等。接着我就详细介绍下我对这门课程知识点的理解概括:
软件:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。软件的特征:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。②软件是通过人们的`智力活动,把知识与技术转化成信息的一种产品。③软件成为产品后,其生产只是简单的拷贝,不同于硬件制造。④维护过程比硬件复杂的多,甚至会引发新的错误。软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。出现软件危机的原因:①软件维护费用急剧上升,直接威胁计算机应用的扩大。②软件生产技术进步缓慢。软件工程是指导计算机软件开发和维护的工程学科。软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件的生存周期可分为八个阶段:①问题定义;②可行性研究;③需求分析;④总体(概要)设计;⑤详细设计;⑥编码与单元测试;⑦综合测试;⑧软件维护;
瀑布模式:是传统的软件开发模式,其中的“瀑布”是对这个模式的形象表达,由山顶倾泻下来的水,自顶向下、逐渐细化。其特点是:线性化过程;分为分析、设计、编码、集成等几个阶段,并且各阶段逐级推进,不允许跨越。里程碑管理;阶段评审;文档驱动;简洁便于工程应用的线性化过程步骤,并可以通过里程碑管理机制而使项目进程量化。其明显的优点就是没个阶段结束前都要对所完成的阶段成果进行评审,这使得软件的错误能够在个阶段内尽早发现并尽早解决,总的来说瀑布模式具有良好的质量保证机制,有很强的生命力。
原型进化模式:对软件进行直接模拟或仿真,只需要分析需求框架后进行原型创建,再对原型系统进行逐步细化与完善,通过版本更新逐步满足用户对于软件的多方面需要。
增量模式:开发过程有三个任务域,分别是设计结构、开发构件和集成系统,它既有完善的工程管理机制,又能适应用户需求变更,有利于质量的监控,并且各局部基于构件构造,有利于逐步构建与完善;由于先交付核心构件可利于降低项目的技术风险。
螺旋模式:是一种可较好的规避开发风险过程的模式,项目是基于任务的螺旋式推进,每个螺旋由内之外分别是需求分析、软件设计、系统集成、验证与交付。
软件开发的整个过程:①需要项目团队,组建优秀的团队可以开发出更搞质量的软件产品。任务开发团队要求小而精,成员大多在8人以内,主要成员有项目负责人、开发人员、资料管理员和软件测试员。②项目计划是为了使软件开发各项工作有秩序地进行,包括任务分配和基于里程碑的进度安排,甘特图和任务网络图是用来描述进度计划的工具。项目计划书可以作为软件开发的工作指南。③项目成本估算,由于项目有来自各方面的成本包括工资开支、场地费、差旅费、设备费和资料费等,但是软件主要是对人力成本的估算,常用的方法有程序代码成本估算法等。④软件风险管理包括很多不确定的风险因素,如计划风险、管理风险、需求风险、技术风险、人员风险、产品风险、用户风险和商业风险等等,而风险管理的主要任务是:风险识别、风险评估、和风险防范。⑤软件文档管理,软件文档是工程模式软件开发的成果体现,包括技术文档、管理文档和用户文档。 ⑥软件配置管理与软件质量管理,包括配置规划、软件变更控制、软件版本控制和质量控制计划。
软件工程学习心得体会3
一、需求分析和概要设计。
1)需求分析
按照软件工程的软件过程来说:
1需求分析产生了软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。
2.概要设计产生了软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。
在进行需求分析时,我们既是开发者又是用户,本系统的业务流程与业务分类的定义比较难。我们的团队进行了研讨,还充分运用了身边的各种资源,大量的查找了很多网络上关于工资系统的资料。通过资料的进行讨论、根据我们的课题进行分析,最后确定了用户的需求为:
1.本系统在高校应用后高校工资管理方面的教职工将减少至目前的50%左右;
2.本系统在高校应用后将在高校各方面的成本将会有所降低;
3.本系统在高校应用后将教职工的工资达到完全透明,计算更加精确教职工因纠纷事件减少到1%。 根据分析将系统的功能从一般教职工与系统管理者两个角度将功能划分为7个模块,当然介于我们的知识有限,有的功能没有实现:员工工资与考勤直接挂钩,但本系统无法与员工考勤系统挂钩相连,由于涉及此系统时该高校并没有员工考勤系统,而且我们在最初进行商量的时候也没有提出该要求。
2)概要设计
从概要阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。由概要设计说产生大的概要说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。
在本阶段主要涉及处理流程的设计、总体结构和模块外部设计、功能分配。在接口设计上有用户接口、外部接口、内部接口;数据结构设计有逻辑结构设计、物理结构设计等等。在接口设计时参考了大量的资料。
最后就是编写文档——软件需求说明书、概要分析说明书。
而文档的作用在于:一是可以帮助整理思路。把要完成的目标,系统的结构,每一个模块的功能等整理一下,然后分门别类地写下来,这样在开发的过程中,就有据可依,在需要回过头来修改设计的时候,也有证可考。二是便于交流。三是可以作为以后维护时的参考资料。
三、软件工程课程设计——心得体会
我们进行了为期一周的课程设计。通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排课程设计的基本目的,在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟。尤其是观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。作为整个学习体系的有机组成部分,课程设计虽然安排在一周进行,但并不具有绝对独立的意义。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。对我们信息管理与信息系统专业的学生来说,实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的`学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。
在一个星期的课程设计之后,我们普遍感到不仅实际动手能力有所提高,更重要的是通过对软件开发流程的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。
软件工程课程虽已结束,但我对于软件工程的学习才刚刚开始。我体会到项目管理的重要性,随着软件规模、复杂度的不断增加,项目开发中更多的是协作、管理和控制。我学习到很多一般性的方法,例如:需求获取、模块化、计划等等。同时,我也认识到使用计算机解决实际问题的复杂性,人们认识表达的过程不断反复、逐步深化,软件工程方法要提供给程序员们一种更加有效的对客观世界问题域进行形式化的过程方法。
【软件工程学习心得体会】相关文章:
软件工程心得体会02-19
软件工程心得体会07-21
软件工程实习心得体会11-10
软件工程实验心得体会12-17
软件工程实训心得体会03-22
软件工程实训心得体会7篇03-22
软件工程实训心得体会4篇03-22
软件工程实训心得体会(通用10篇)10-28
软件工程的实习报告02-23