软件工程期末总结和心得体会

时间:2024.4.20

心得体会

通过这学期<软件工程>这门课程的学习,使我获益良多,作为一名计算机专业的学生, 觉得计算机方面的东西学的实在是太少了,专业知识的浅陋让我感到有点羞愧, 老师告诉我们,我们在做毕业设计时,要根据<软件工程>这门课程中的有关内容来进行文档的撰写,所以在老师让我们写需求分析报告,可行性研究报告以及总体设计报告中,我学到了很多,了解到如何来写毕业设计的有关文档.,然而也通过这门课程的学习, 让我更深一步了解到一个软件不仅仅就是编写程序这么简单,编写程序只不过是开发软件的一个小小部分而已, 以前一直误认为只要会写程序代码就可以了,现在看来是大错特错了,因为软件开发的前期工作是相当复杂而重要的,首先要了解客户的需求,了解开发的这个软件到底是干什么用的,有时甚至要到一个公司,一个部门里去”跟踪”一段时间, 了解开发的这个软件具体有哪些作用、功能,,否则开发出来的软件将不能满足客户的要求; 开发软件还要知道开发的这个软件底可不可行,要进行可行性研究,.还要分析它的成本,效益,最后还要进行一个总体上的设计,所以说在编写程序代码前还要做其大量的工作,并不是我们想象的那么简单.

有时,老师在讲台上面”使劲儿”给我们讲授知识时,我们总是不认真听讲,或者听一会儿之后又走神儿了,虽然每次都想认真听课,都想学到更多的东西,可总是克服不了自己的惰性,,我们都明白,作为一名大三的学生了,更应该有自律性与毅力,更应该努力,学习更多的知识,因为不久之后我们也将踏入社会面临就业的问题,如果没有多大本事,

专业技能不强,的话,我们将很难找到一份较好的工作,再加上现在每年毕业生都那么多,就业压力是如此的大,所以我们一定要利用好在学校这宝贵的机会,学习更多的知识,不断的强化自己.,让自己变得更优秀!

在这门课程的第一章中呢,我们学习到了软件危机方面的有关知识,以及软件过程和软件生存周期,还了解到软件开发过程模型,那么有哪些模型呢,首先有种瀑布模型, 快速原型模型,然后就是螺旋模型,增量模型,喷泉模型等等,这些模型都有各自不同的特点.。我们还学习到软件开发的一些方法,比如结构化方法. 面向数据结构的开发方法. 面向对象的方法.和视觉化开发方法..

对于第二章呢,我们重点学习了可行性研究,系统流程图,以及如何制定软件计划和成本/效益分析,首先,可行性研究是软件生命周期计划阶段中的重要组成部分,在可行性研究中,”问题定义”是相对重要的,不过问题定义阶段的持续时间一般很短,形成的报告文本也相对比较简单;可行性研究包括经济可行性、技术可行性、法律可行性和开发方案选择四个任务;可行性研究的步骤包括系统规模和目标的复查、认真研究现有系统、导出新系统的高层逻辑模型、重新定义问题、导出和评价供选择的方案、推荐方案和行动方针、草拟开发计划、提交文档这八个方面.然后就是系统流程图,我们要知道系统流程图的一些基本符号,了解它们各自的作用,会画系统流程图,,最后就是如何来制定软件计划和进行成本的估算以及效益分析的方法.

同时,第三章也是我们学习的重点,需求分析是在可行性研究的

基础上进行的更细致的分析工作,是软件定义时期的最后一个阶段,是对软件目标及范围的求精和细化.需求分析的基本任务是准确回答”系统必须做什么”这个问题,它的具体任务是确定对系统的综合要求、分析系统的数据要求、导出目标系统的详细逻辑模型、修订系统开发计划、开发原型系统等这几个方面;了解需求分析的原则;以及会写需求规格说明书,需求规格说明书包括引言、任务概述、需求规定、运行环境规定.引言里面又包括编写目的,背景,定义,参考资料;任务概述里面包括目标,用户的特点,假定和约束,需求规定里又包括对功能.性能的规定,输入/输出的要求,数据管理能力、故障处理的要求,运行环境规定里面包括设备,支持软件,接口,控制这几点。还要知道获取需求的方法.

第四、五章就是总体设计和详细设计了, 第四章主要了解了总体设计的任务及过程,总体设计的原理,以及总体设计的常用方法及工具.第五章了解了详细设计的 一些原则,和详细设计的方法及工具等等.最后我们还学习了软件测试的方法和软件测试的相关步骤.

<软件工程>这门课程让我以前对软件片面的认识有了一个很大的提升,让我深刻了解到要做好一个软件方面的项目应该从哪些方面去着手,也让我以后想从事这方面的工作有了一个新的认识.


第二篇:软件工程实验的心得体会


---- 获取用户需求的沟通技巧

经过这学期软件工程实验的学习,深深感到用户需求对软件的重要性。成功的软件产品是建立在成功的需求基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。当用户有一个问题可以用计算机系统来解决,而开发人员开始帮助用户解决这个问题,沟通就开始了。

需求获取可能是最困难、最关键、最易出错及最需要沟通交流的活动。对需求的获取往往有错误的认识:用户知道需求是什么,我们所要做的就是和他们交谈从他们那里得到需求,只要问用户系统的目标特征,什么是要完成的,什么样的系统能适合商业需要就可以了,但是实际上需求获取并不是想象的这样简单,这条沟通之路布满了荆棘。首先需求获取要定义问题范围,系统的边界往往是很难明确的,用户不了解技术实现的细节,这样造成了系统目标的混淆。

其次是对问题的理解,用户对计算机系统的能力和限制缺乏了解,任何一个系统都会有很多的用户或者不同类型的用户,每个用户只知道自己需要的系统,而不知道系统的整体情况,他们不知道系统作为一个整体怎么样工作效率更好,也不太清楚那些工作可以交给软件完成,他们不清楚需求是什么,或者说如何以一种精确的方式来描述需求,他们需要开发人员的协助和指导,但是用户与开发人员之间的交流很容易出现障碍,忽略了那些被认为是"很明显"的信息。最后是需求的确认,因为需求的不稳定性往往随着时间的推移产生变动,使之难以确认。为了克服以上的问题,必须有组织的执行需求的获取活动。

需求获取活动要完成的任务或者步骤的过程如下:

1、编写项目视图和范围文档

系统的需求包括四个不同的层次:业务需求、用户需求和功能需求、非功能性需求。业务需求说明了提供给用户新系统的最初利益,反映了组织机构或用户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明。功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。

非功能性需求是用户对系统良好运作提出的期望,包括了易用性、反应速度、容错性、健壮性等等质量属性。需求获取就是根据系统业务需求去获得系统用户需求,然后通过需求分析得到系统的功能需求和非功能需求。项目视图和范围文档就是从高层次上描述系统的业务需求,应该包括高层的产品业务目标,评估问题解决方案的商业和技术可行性,所有的使用实例和功能需求都必须遵从的标准。而范围文档定义了项目产品所包括的所有工作及产生产品所用的过程。项目相关人员对项目的目标和范围能达成共识,整个项目组都应该把注意力集中在项目目标和范围上。

2、用户群分类

系统用户在很多方面存在着差异,例如:使用系统的频度和程度、应用领域和计算机系统知识、所使用的系统特性、所进行的业务过程、访问权限、地理上的布局以及个人的素质和喜好等等。根据这些差异,你可以把这些不同的用户分成不同的用户类。与ULM中Usecase的Actor概念一样,用户类不一定都指人,也可以包括其他应用系统、接口或者硬件,这样做使得与系统边界外的接口也成为系统需求。将用户群分类并归纳各自特点,并详细描述出它们的个性特点及任务状况,将有助于需求的获取和系统设计。

3、建立核心队

通常用户和开发人员不自觉的都有一种"我们和他们"的想法,产生一种对立关系,把彼此放在对立面,每一方都定义自己的"边界",只想自己的利益而忽略对方的想法。他们通过文档、记录和对话来沟通,而不是作为一个合作的整体去识别和确定需求完成任务。实践证明这样的方法是不正确的,不会给双方带来一点益处,良好的沟通关系没有建立导致了误解和忽略重要的信息。只有当双方参与者都明白要成功自己需要什么,同时也知道要成功对方需要什么时,才能建立起一种合作关系。

为了建立合作关系通常采取一种组队的方式来获取需求,建立一个由用户代表和开发人员组成的联合小组作为需求获取的核心队伍。联合小组将负责识别需求、分析解决方案和协商分歧,小组成员可以采用会议、电子邮件、综合办公系统等方式进行交流,但交流时应注意以下原则:小组会议应该由中立方来组

织和主持,用户和开发人员都要参加;交流预先要确定准备和参与的规则;议题要明确并覆盖所有关键点,但信息来源应该自由;交流目标要明确,并告知所有的成员。

4、确定使用实例

从用户代表处收集他们将使用系统完成所需任务的描述,讨论用户与系统间的交互方式和对话要求,这就是使用实例,一个单一的使用实例可能包括完成某项任务的许多逻辑相关任务和交互顺序。使用实例方法给需求获取带来的好处来自于该方法是用以任务为中心和以用户为中心的观点,比起使用以功能为中心和以开发者为中心的方法,使用实例方法可以使用户更清楚地理解和认识到新系统允许他们做什么和怎么做。描写使用实例的时候要注意使用简洁直白的表述,尽量使用主动语态,用"系统"或者"用户"作为主语,比如"用户提交用户密码,系统验证用户密码是否正确",还有一点在描述中不要设计界面细节,比如"用户从下拉框中选择产品类型"。使用实例为以后写用例场景描述中的基本路径和扩展路径提供了素材。

7、分析用户工作流程

分析用户工作流程观察用户执行业务任务的过程,通过分析使用实例得到系统的用例图。编制用例图文档将有助于明确系统的使用实例和功能需求,统一建模语言的使用有助于与用户进一步交流。每个用例的描述应包括:编号,为每个用例分配一个唯一的编号,为需求的追溯提供了方便;参与者,与这个用例交互的actor;前置条件,开始用例前所必须具备的系统状态;后置条件,用例完成后系统达到的状态;基本路径,用例完成的关键路径,也是用户期望的路径;扩展点,基本路径的分枝,表示意外情况;字段说明,路径中名称的进一步分解说明,对以后类属性的定义和数据库字段设计起作用;设计约束,实现用例的非功能约束。

5、检查问题报告

通过检查当前已经运行系统的问题报告来进一步完善需求客户的问题报告及补充需求为新系统或新版本提供了大量丰富的改进及增加特性的想法,负责提供用户支持及帮助的人能为收集需求过程提供极有价值的信息。

6、需求重用

如果客户要求的功能与已有的系统很相似,则可查看需求是否有足够的灵活性以允许重用一些已有的软件组件。业务建模和领域建模式需求重用的最好方法,像分析模式和设计模式一样,需求也有自己的模式。

小结 :经过一学期的软工实验,深刻感到其重要性的同时也学到了不少的东西 ,将对我在今后的软件开发过程中起极大的作用。

更多相关推荐:
学习软件工程心得体会

学习软件工程的心得体会学习了这门课程,还有老师们的多元化教课,不但让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合。整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,…

软件工程心得体会

读软件工程案例教程有感对于学习软件工程这门课程,我认为有许多东西要学习。其实在我看来学习这门课程的精髓是学习一种方法。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一…

学习《软件工程》课程心得体会

软件工程课程心得体会摘要:高校教职工工资管理系统是为了解决教职工工资管理的而设计的,目的是建立一个能够初步实现高校教职工工资管理系统的智能化管理,该系统能跟据每位教师的职称不同而确定不同的基本工资,同时能根据每…

学习软件工程的心得感受

学习软件工程的心得体会学习了这门课程,还有老师们的多元化教课,不但使我们从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合,老师主要是从六个方面来描述软件工程,分别是信息和多媒体,JAVA编程…

软件工程的发展心得体会

软件工程的发展心得体会信息技术工程学院11计科纪月20xx09110920xx年10月18日应信息技术工程学院邀请云南省优秀中青年破格教授硕士生导师昆明理工大学信息工程与自动化学院计算机系副系主任昆明理工大学软...

软件工程心得体会

软件工程心得体会未接触软件工程之前一直都很想学这门课程,因为觉得这门课很牛,是那些有工程师称号的高手才摆弄的东西。学了一个学期的软件工程课,终于知道了个软件工程的大概。学的时候总觉得很抽象,理解起来好像不难,但…

学习软件工程的心得与体会

学习软件工程的心得体会整本书的内容逻辑很清晰明了由浅入深循序渐进首先我就大概描述下我们所学的内容第一章是从整体分析软件工程这门学科的发展和所处的社会环境接着后面的几章深入分析了软件开放过程和模式软件项目管理计算...

软件工程读书心得体会

软件工程读书心得体会040730111步入大四,课程变的少了,学期伊始,我很认真地上课、听讲;很快就过了1个月了,学校的就业中心开始忙碌起来,作为就业大军中的一员,我开始忙碌我的工作,听宣讲会、笔试、面试,渐渐…

软件需求工程的学习心得

软件需求工程的学习心得随着社信息化京城的不断深入计算机软件的需求越来越复杂规模也越来越大但软件危机问题提出了三十多年至今仍无法很好的得到解决究其原因主要还是主要是忽视了软件开发过程中的质量监控以及在软件开发过程...

软件工程课程设计心得总结

软件工程课程设计个人总结学期就快要结束了到了最后一周居然还有软件工程课程设计还要考试真的有点忙啊不管怎样还是好好干吧把对工程的理论研究学习成果用于实践也是一种检验学习成果和提升工程能力的有效手段嘛工作内容安排软...

软件工程实训心得体会

软件工程实训心得体会软件工程实训心得体会一软件工程实训心得体会这次软件工程实训是从20xx1226号开始的截至20xx1231号实训内容是用java相关知识主要是jsp做一个物流配送系统下面谈谈对这次实训的看法...

软件 工程的学习心得

学习软件工程的心得体会学习了这门课程还有老师们的多元化教课不但使我们从理论上掌握软件工程还有从不同的实例让理论和实践得到了很好的结合老师主要是从六个方面来描述软件工程分别是信息和多媒体JAVA编程技术数据库系统...

软件工程心得体会(26篇)