实用软件工程心得体会范文 大学软件工程讲座心得体会范文汇聚【实用8篇】
【写作参考】一篇好的范文往往能让您的写作事半功倍,下面是由阿拉题库网友为您分享的“实用软件工程心得体会范文 大学软件工程讲座心得体会范文汇聚【实用8篇】”优质范例,供您写作参考之用,轻松写作,远离加班熬夜,希望以下内容对您有所帮助,喜欢就下载支持吧!
软件工程心得体会【第一篇】
15天的实训结束了,今天做的是纸牌游戏软件和趣味打字游戏。今天的东西对我来说有点难度,最后没有能过完全做完。但是我还是觉得这是一个不错的实训,在这种集体的环境里和同学们一起学习,每天的生活过的也是非常的充实。
此次实践课我的收获很多。我和同学们这一次真正自己动手制作了一个小软件,虽然还存在很多的问题,而且我做的软件在使用起来还是很不可行的,但是我们从中受到了很多知识,不仅是专业的知识,更让我明白了一个软件从设计到实现的每一个环节真的很不容易,不仅需要扎实的专业知识,更需要一个团队的配合,这才是一个软件成功的关键。这就告诉我们,一个人的出色不算什么,一个团队的出色才是真正有用的。
刚开始拿到题目我们组员都不知如何下手,经过小组成员一起查找资料,并且开会讨论,我们确定了设计的设计目标以及具体实现方式,包括如何将java的思想运用到实际系统的详细设计之中。
在实验课上,我学会了很多学习的方法。而这是日后最实用的。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我的将来也有很大的帮助。以后,不管有多苦,我想我都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我都可以在实验结束之后变的更加成熟,会面对需要面对的事情,以及学会遇到问题,不急不慌,慢慢解决它。
虽然过程辛苦是不可避免,但收获还是令人感到尤其的欣慰。在这次的软件设计中不仅检验了我所学习的知识,也培养了我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。实验过程中,也十分感谢实验指导老师陈中育老师的指点与教导。这次软件设计不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。通过这次课程设计使我明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。
软件工程心得体会【第二篇】
近期,我参加了一次软件工程公司的研学活动,通过这次活动,我收获了许多宝贵的经验和心得体会。在这篇文章中,我将详细讲述我在研学活动中的体验和感受,希望能对读者有所启发。
第一段:准备工作。
在活动开始之前,我们接受了一些准备工作。我们学习了软件工程的基础知识,包括不同的开发方法和流程,项目管理和团队协作等。我们也了解了该公司的订单系统,为接下来的实践做好充分的准备。这个阶段的重要性在于让我们对软件工程有一个大致的认识,为实践做好铺垫。
第二段:实践过程。
在实践阶段,我们被分成小组,每个小组有一个指导教师带领我们完成一个真实的软件开发项目。我们选择了一个较为简单的订单系统来开发。在开发过程中,我们需要分析需求,设计架构,编写代码,进行单元测试等等。而且,作为一个团队,我们需要及时进行沟通,确保每个人都了解自己的工作内容,以及整个项目的进度。
这个实践环节最让我印象深刻的是团队协作的重要性。每个人的任务不仅仅是完成所分配的工作,更要与其他成员协调配合,确保整个项目的顺利进行。我们经常进行讨论和交流,以解决遇到的问题,并从中学到了许多实用的技能。此外,合理的项目管理也提高了整体效率,确保我们按时完成了项目。
第三段:挑战与困难。
在实践的过程中,我们遇到了许多挑战和困难。首先,对于我们来说,这是一次全新的尝试,许多知识和技能需要我们现学现卖。有时候,我们遇到问题无法得到解答,这让我们感到有些无所适从。但是,我们不放弃,通过讨论、请教老师和自己的探索,最终解决了这些问题。
其次,团队合作也是一大难题。每个人都有自己的观点和想法,导致讨论时出现意见分歧。但是,随着时间的推移,我们逐渐学会了倾听别人的意见,并更好地进行沟通。这让我们的团队更加协和,也提高了项目的质量和效率。
第四段:收获与感悟。
通过这次实践,我不仅学到了软件工程的基础知识和实际应用技能,还培养了自己的团队合作能力和解决问题的能力。在实践中,我深刻体验到了软件开发的复杂性和挑战性,也意识到了团队协作的重要性。此外,我还结识了许多志同道合的伙伴,他们的聪明才智和努力工作精神也给我留下了深刻的印象。
最后一段:总结。
通过这次软件工程公司的研学活动,我不仅增加了专业知识和实践经验,还培养了很多软技能,如团队合作、沟通和问题解决能力。这次活动不仅让我更加了解了软件工程行业,也让我对未来的职业规划有了更清晰的认识。我相信这次宝贵的经历将成为我在未来职业生涯中的重要资产。
软件工程心得体会【第三篇】
软件工程心得体会未接触软件工程之前一直都很想学这门课程,因为觉得这门课很牛,是那些有工程师称号的高手才摆弄的东西。
学了一个学期的软件工程课,终于知道了个软件工程的大概。
学的时候总觉得很抽象,理解起来好像不难,但总是摸不着头脑一种很茫然的感觉。
曾经以为程序就是软件,软件就是程序。
学习这门课程第一个收获是,知道了二者的不同之处。
以前做过的一些小型的软件比如加密软件,我也只是在程序旁边附上一个软件的说明,看来已经很接近作坊了。
不过大的项目没有接触过,用软件工程的方法还是第一次。
我想也是程序的不断复杂化导致了软件危机的发生,使得人们不得不探索新的解决方法。
经过倪老师的讲解,理解了软件工程,就是一套用于软件的团队开发,以提高软件质量和程序员工作效率为目的的规范。
其核心就是,对于软件开发的5个重要组成部分:需求分析,设计,编码,调试,维护,如何组织这5个部分的工作,以及如何完成每一个工作。
吾生也有涯,而知也无涯,学习永无止境。
起初,对软件工程处于一知半解的状态,分工比较混乱。
在划分模块后明确了各自分工,渐渐形成良性循环。
在学习过程中,知道了团队合作十分重要,争议固然存在,但通过讨论、协商,群策群力,在不断磨合中能够达成一致与默契。
团队成员中能力各有高下,互相尊重,各取所长,不宜妄自菲薄。
组长多加协调,组员积极配合,才能合作愉快。
学习能力体现在能尽快接受新的知识,顺应变化,学为所用。
上《软件工程导论》这门课,我的收获大概如下:我们为什么需要软件工程呢?上面已经给出了一些原因。
专业点讲,软件工程最终是为了实现“软件制造业”的社会化,工业化大生产,提高其劳动生产效率。
只有如此,软件业才能实现社会化,工业化大生产,才能“做大做强”。
没有管理的设计是失败和混乱的设计,没有设计指导的编程是无序的忙碌的。
根据开发的软件的规模,应该适当程度的运用软件工程化的思想,需要灵活,毕竟我们开发的软件大多数是中小型的,大型的并不多见(我是这么认为的)。
但只要涉及人员间的交流和沟通,或多或少都要需要软件工程才能更有效率,工作成果更稳定。
其实开发软件,就像是解决一个逻辑问题。
想想自己平时是怎样写程序的。
首先是要有一个想法,即我写的这个程序是要干什么的;然后就是对要实现的核心功能大概构思一种或多种实现方法,并从中选出一种自认为是较好的;接下来就是将涉及的各种主要或次要功能分成各个模块;最后就是分模块来编码和debug。
在我看来,除了第一步外,其余的步骤应该是一个循环的过程。
在编码的过程中,你总是需要不断地回过头来修改原先的模块设计,甚至最初选定的实现算法。
具体到每一步的工作要怎样完成,是非常灵活的,只要把握住大体的方向就行。
在进行分析,设计,编码,调试,维护这几部分的工作的时候,最核心的就是文档的编写。
1.可行性分析就是关于当前项目能不能干的分析结果。
2.项目描述这是在决定立项以后,对当前项目的一份扼要说明。
3.需求分析就是对客户要求的功能的定义。
4.软件设计这就是对程序的每一个模块的详细设计的说明文档。
5.开发日志我一直都认为这是文档中最有趣的部分。
开发日志相当于编码阶段的文档,它的形式可以很随意,主要是记录一些在写程序时突然萌发的灵感,或对代码的一些微小的修改,或对程序结构的一些微小变动等,还要对上述这些修改变动作些说明。
6.测试分析用于指出程序存在或潜在的缺陷和错误,以及程序性能的数字描述。
在本学期的软件工程课程的学习中,我们学习了十一章的内容。
第一章软件与软件工程的概念,这一章主要讲解的是一些概念性和基础性的内容,例如软件的概念、特性,软件危机的主要表现,软件工程的概念以及软件生存期、典型生存期模型等等。
第二章软件工程方法与工具,这一章主要对软件工程方法进行介绍,包括三种方法:传统方法、面向对象方法、形式化方法。
还引出了工具uml。
第三章软件需求获取与结构化分析方法,本章详细介绍了需求获取与需求分析阶段的任务以及结构化分析方法,画分层的数据流图、e-r图以及状态图式本节的重点。
第四章结构化分析方法,这一章重点讲解了使用变换型映射方法和事务型映射方法生成初始的模块结构以及模块结构的改进。
第五章编码,这一章重点讲解了编码的风格及规范,还告诉我们编码规范说带来的好处,并告诫我们将来一点要形成好的编码风格。
第六章软件测试方法,本章讲解了软件测试相关的概念及重要性,软件测试与开发各个阶段的关系;还介绍了白盒测试技术以及黑河测试技术。
第七章统一建模语言uml概述,本章详细介绍了uml的基本模式、事物、关系及建模时用到的各种图进行了介绍。
第八章面向对象分析,这一章主要讲解了面向对象分析的3种模型,包括功能模型、静态模型和动态模型。
第九章软件体系结构与设计模式,本章对软件体系结构的基本概念、典型风格等进行了讲解。
第十章面向对象设计,本章的重点是对面向对象分析时建立的对象模型进行调整和细化。
第十一章软件维护,本章主要介绍软件维护的任务、软件维护活动以及软件维护方法进行了介绍。
要学习软件工程,学会如何系统的思考,以及养成良好的编码习惯,想学好软件工程,就必须知道软件工程的目标、过程和原则:软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
我们学习了详细设计的方法,其原则是过程描述是否易于理解、复审和维护,进而过程描述能够自然地转换成代码,并保证详细设计与代码完全一致。
包括程序流程图、n-s图、pad图、hipo图
程序流程图:程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具。
软件工程心得体会【第四篇】
近期,我有幸参观了一家软件工程公司进行研学活动,这使我对软件工程领域有了更深的了解。在这次研学之旅中,我学到了许多知识,并深刻体会到了软件工程的重要性。以下是我对此次研学活动的体会和感悟。
第一段:研学活动的背景介绍和第一印象。
本次研学活动是由我班级组织的,我们前往的是一家知名的软件工程公司。一进入公司大厅,我被宽敞明亮的环境、高度安保和聚精会神的工程师们深深吸引。在导游的带领下,我们参观了公司的各个办公区域和研发实验室。在实验室里,我看到了团队协作合作的场景,感受到了软件工程师的职业精神和工作氛围。这激发了我对软件工程的兴趣。
第二段:软件工程的实践意义和发展前景。
软件工程是将工程思想和方法应用于软件开发,旨在提高软件质量和开发效率。在公司的讲解中,我了解到软件工程是当今社会中不可或缺的一部分。随着信息技术的不断发展,软件在人们的生活中扮演着愈发重要的角色。由于软件的普及和更新迭代速度加快,软件工程也面临着越来越多的挑战和需求。因此,掌握软件工程的知识和技术对个人和社会来说具有巨大的实践意义。未来,软件工程领域还有很大的发展前景,对于有志从事这一领域的人来说,机遇无处不在。
在参观过程中,导游详细地介绍了公司的项目管理流程和软件开发流程。我了解到,软件工程师需要掌握一系列的核心技能,如需求分析、设计模式、测试和质量管理等。除此之外,软件工程师还需要具备不断学习和提升自己的能力的意识,因为软件行业的发展速度快,知识更新换代迅速。学习软件工程不仅要懂得理论知识,更要能够灵活应用,通过实践不断提升和完善自己的技能。
通过这次研学活动,我对软件工程的认知得到了更新和加深。我深刻体会到了软件工程的重要性,并且对其发展前景充满了信心。我也意识到学习软件工程需要不断努力和学习,要保持与时俱进的态度。研学活动还让我更加明确了自己未来的职业规划,我决心进一步深入学习软件工程知识,为社会的发展做出贡献。
通过此次研学活动,我认识到软件工程的重要性和前景,也深入了解了软件工程师的工作内容和要求。对于其他同学来说,我建议他们也要参加类似的研学活动,通过实地参观和沟通,深入了解软件工程领域的发展和需求,对自己的职业规划有更明确的认识。同时,要在学习上下功夫,掌握软件工程的核心技能,不断提升自己的实践能力。总之,软件工程公司研学活动为我提供了一个宝贵的学习机会,让我对软件工程有了更深刻的认识和理解。
软件工程心得体会【第五篇】
随着信息技术的不断发展,软件工程已经成为当今最重要的行业之一。作为软件工程师,我们需要具备良好的劳动态度,才能够顺利完成项目并取得成功。在我的多年软件开发工作中,我深深体会到了劳动态度的重要性,并汇总了一些人生感悟,希望能够给新手软件工程师提供一些帮助和参考。
首先,要具备专业的态度。软件工程是一门高度专业化的行业,要想在这个行业获得成功,我们必须具备扎实的专业知识和技能。只有将自己的知识储备充实到足够的程度,才能够在实际工作中更好地解决问题和应对挑战。此外,还需要保持对新技术的学习和追求,时刻保持专业知识的更新和积累,才能够适应项目的需求和行业的发展。
其次,要具备积极的态度。软件工程是一个极具挑战性的行业,每个项目都会遇到各种各样的问题和困难。面对这些困难,积极的态度能够帮助我们保持冷静和乐观,不断寻找解决问题的方法和途径。同时,积极的态度也能够激发我们的创造力和创新能力,使我们更加积极主动地探索和尝试新的解决方案,从而提升项目的质量和效率。
第三,要具备团队合作的态度。软件开发往往是一个团队合作的过程,一个成功的项目离不开团队中每个成员的努力和贡献。在团队中,我们要学会与他人进行有效的沟通和合作,互相支持和协助,共同解决问题。同时,也要学会倾听他人的意见和建议,尊重每个人的意见和贡献。只有形成良好的团队合作氛围,才能够更好地完成任务和取得成功。
第四,要具备负责任的态度。软件开发涉及到客户的利益和项目的成败,我们必须对自己的工作负责任。负责任的态度表现在对项目的认真投入和持续跟踪、对客户需求的准确理解和及时响应、对自己工作成果的勤勉检查和修正。只有时刻保持负责任的态度,才能够确保项目的顺利进行和客户的满意度。
最后,要具备持续学习的态度。在软件工程行业,技术是日新月异的,只有不断学习和更新自己的知识,才能够不断提升自己的竞争力和适应行业的变化。持续学习的态度需要我们保持对新知识的探索和渴望,不断扩充自己的知识储备。同时,也要养成阅读技术文献、参加技术交流会议等良好的学习习惯,提高自己的学习效率和能力。
总之,良好的劳动态度是软件工程师取得成功的关键。我们需要具备专业、积极、团队合作、负责任和持续学习的态度,才能够在软件开发工作中不断成长并取得优秀的成绩。并且,这些态度不仅仅适用于软件工程师,也适用于其他行业,希望能够给更多人提供一些启示和帮助。让我们共同努力,用优秀的劳动态度创造更加美好的未来。
软件工程心得体会【第六篇】
软件工程作为一门高度专业化的技术,需要工程师细心呵护与不断学习,对待工作态度的认真与专注,是软件工程师的基本要求。笔者在软件工程行业中的多年经验中,深切体会到了劳动态度对于工作成果和个人发展的重要性。通过努力和积极的工作态度,我们能够取得更好的成绩,并在这个竞争激烈的行业中保持优势。
第二段:工作态度的重要性。
良好的工作态度是工作成功的基石。一个人对待工作的态度决定着他对待每一个任务的认真程度和努力程度。当我们对待工作认真严谨,细心负责时,我们的工作质量自然会有所提高。而如果我们对待工作敷衍了事,缺乏责任心,那么工作质量与效率必然会下降。一个对待工作认真负责的人通常会得到更多的认可与机会,而那些不重视工作态度的人,往往容易被淘汰。
在软件工程这个领域,我从事过许多项目,也积累了一些工作中的态度心得。首先,学会尊重团队合作。在项目中,每个人都有自己的职责,而每个团队成员的付出都是相互关联的,互为促进。没有人能独立完成整个项目,需要团队的共同努力。其次,保持积极的工作态度。尽管工作中的困难和挑战难免会让我们感到疲惫和压力,但是只有保持积极的心态,才能更好地面对问题和突破困境。最后,不断学习和自我提升。软件工程是一个快速变化的领域,只有持续学习和不断提升自己的技能,才能跟上时代的步伐,保持竞争力。
第四段:体会与成长。
通过对工作态度的认真思考和实践,我逐渐体会到了一个人的工作态度对于工作成果和个人成长的重要性。当我对待工作充满热情和责任心时,我能够更好地应对挑战和解决问题,工作质量得到了明显的提高。同时,由于工作态度的积极,我也逐渐得到了团队和上级的认可,得到了更多重要的任务和机会。通过这些机会,我能够不断学习和提升自己的技能,逐步成长为一个更加专业和成熟的软件工程师。
第五段:总结回顾。
软件工程劳动态度的重要性不容忽视。当我们对待工作持有积极和认真的态度时,我们能够更好地应对挑战和解决问题,表现出色。同时,积极的工作态度也帮助我们赢得团队和上级的认可,得到更多机会发展和提升自己。通过积极主动的努力,我们才能在软件工程领域取得成功,并获得更好的发展。因此,作为软件工程师,我们应该时刻保持良好的工作态度,不断进取,追求卓越。
软件工程心得体会【第七篇】
1需求分析产生了软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。
2.概要设计产生了软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。
在进行需求分析时,我们既是开发者又是用户,本系统的业务流程与业务分类的定义比较难。我们的团队进行了研讨,还充分运用了身边的各种资源,大量的查找了很多网络上关于工资系统的资料。通过资料的进行讨论、根据我们的课题进行分析,最后确定了用户的需求为:
1.本系统在高校应用后高校工资管理方面的教职工将减少至目前的50%左右;
2.本系统在高校应用后将在高校各方面的成本将会有所降低;
3.本系统在高校应用后将教职工的工资达到完全透明,计算更加精确教职工因纠纷事件减少到1%。根据分析将系统的功能从一般教职工与系统管理者两个角度将功能划分为7个模块,当然介于我们的知识有限,有的功能没有实现:员工工资与考勤直接挂钩,但本系统无法与员工考勤系统挂钩相连,由于涉及此系统时该高校并没有员工考勤系统,而且我们在最初进行商量的时候也没有提出该要求。
从概要阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。由概要设计说产生大的概要说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。
在本阶段主要涉及处理流程的设计、总体结构和模块外部设计、功能分配。在接口设计上有用户接口、外部接口、内部接口;数据结构设计有逻辑结构设计、物理结构设计等等。在接口设计时参考了大量的资料。
最后就是编写文档——软件需求说明书、概要分析说明书。
而文档的作用在于:一是可以帮助整理思路。把要完成的目标,系统的结构,每一个模块的功能等整理一下,然后分门别类地写下来,这样在开发的过程中,就有据可依,在需要回过头来修改设计的时候,也有证可考。二是便于交流。三是可以作为以后维护时的参考资料。
我们进行了为期一周的课程设计。通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排课程设计的基本目的,在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟。尤其是观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。作为整个学习体系的有机组成部分,课程设计虽然安排在一周进行,但并不具有绝对独立的意义。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。对我们信息管理与信息系统专业的学生来说,实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。
在一个星期的课程设计之后,我们普遍感到不仅实际动手能力有所提高,更重要的是通过对软件开发流程的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。
软件工程课程虽已结束,但我对于软件工程的学习才刚刚开始。我体会到项目管理的重要性,随着软件规模、复杂度的不断增加,项目开发中更多的是协作、管理和控制。我学习到很多一般性的方法,例如:需求获取、模块化、计划等等。同时,我也认识到使用计算机解决实际问题的复杂性,人们认识表达的过程不断反复、逐步深化,软件工程方法要提供给程序员们一种更加有效的对客观世界问题域进行形式化的过程方法。
软件工程心得体会【第八篇】
软件工程心得体会未接触软件工程之前一直都很想学这门课程,因为觉得这门课很牛,是那些有工程师称号的高手才摆弄的东西。学了一个学期的软件工程课,终于知道了个软件工程的大概。学的时候总觉得很抽象,理解起来好像不难,但总是摸不着头脑一种很茫然的感觉。曾经以为程序就是软件,软件就是程序。学习这门课程第一个收获是,知道了二者的不同之处。以前做过的一些小型的软件比如加密软件,我也只是在程序旁边附上一个软件的说明,看来已经很接近作坊了。不过大的项目没有接触过,用软件工程的方法还是第一次。我想也是程序的不断复杂化导致了软件危机的发生,使得人们不得不探索新的解决方法。
经过倪老师的讲解,理解了软件工程,就是一套用于软件的团队开发,以提高软件质量和程序员工作效率为目的的规范。其核心就是,对于软件开发的5个重要组成部分:需求分析,设计,编码,调试,维护,如何组织这5个部分的工作,以及如何完成每一个工作。吾生也有涯,而知也无涯,学习永无止境。起初,对软件工程处于一知半解的状态,分工比较混乱。
在划分模块后明确了各自分工,渐渐形成良性循环。在学习过程中,知道了团队合作十分重要,争议固然存在,但通过讨论、协商,群策群力,在不断磨合中能够达成一致与默契。团队成员中能力各有高下,互相尊重,各取所长,不宜妄自菲薄。组长多加协调,组员积极配合,才能合作愉快。学习能力体现在能尽快接受新的知识,顺应变化,学为所用。
上《软件工程导论》这门课,我的收获大概如下:我们为什么需要软件工程呢?上面已经给出了一些原因。专业点讲,软件工程最终是为了实现“软件制造业”的社会化,工业化大生产,提高其劳动生产效率。只有如此,软件业才能实现社会化,工业化大生产,才能“做大做强”。没有管理的设计是失败和混乱的设计,没有设计指导的编程是无序的忙碌的。根据开发的软件的规模,应该适当程度的运用软件工程化的思想,需要灵活,毕竟我们开发的软件大多数是中小型的,大型的并不多见(我是这么认为的)。但只要涉及人员间的交流和沟通,或多或少都要需要软件工程才能更有效率,工作成果更稳定。
其实开发软件,就像是解决一个逻辑问题。想想自己平时是怎样写程序的。首先是要有一个想法,即我写的这个程序是要干什么的;然后就是对要实现的核心功能大概构思一种或多种实现方法,并从中选出一种自认为是较好的;接下来就是将涉及的各种主要或次要功能分成各个模块;最后就是分模块来编码和debug。在我看来,除了第一步外,其余的步骤应该是一个循环的过程。在编码的过程中,你总是需要不断地回过头来修改原先的模块设计,甚至最初选定的实现算法。具体到每一步的工作要怎样完成,是非常灵活的,只要把握住大体的方向就行。在进行分析,设计,编码,调试,维护这几部分的工作的时候,最核心的就是文档的编写。
1.可行性分析就是关于当前项目能不能干的分析结果。
2.项目描述这是在决定立项以后,对当前项目的一份扼要说明。
3.需求分析就是对客户要求的功能的定义。
4.软件设计这就是对程序的每一个模块的详细设计的说明文档。
5.开发日志我一直都认为这是文档中最有趣的部分。开发日志相当于编码阶段的文档,它的形式可以很随意,主要是记录一些在写程序时突然萌发的灵感,或对代码的一些微小的修改,或对程序结构的一些微小变动等,还要对上述这些修改变动作些说明。
6.测试分析用于指出程序存在或潜在的缺陷和错误,以及程序性能的数字描述。