关于软件工程的心得体会:

对于软件工程这门课程,我认为有必要话大量大量的时间、精力去钻研,去理解,搞懂。光是大一一整个学年的学习,我觉得我才刚刚入门,甚至每每但我访问那些软件工程师的个人博客、学术论坛时,我都觉得自己对这门学科一无所知。计算机语言相当于一门全新的外语。它不讲逻辑,不讲道理,有时还会因为一个标点让我死去活来……我把英语当作我的第二母语,但是学了十几年的英语水平才勉强及格。很难想象光是大学四年的软件工程学习,毕业之后又会是什么程度。

撇开那些我看不懂的什么什么系统、什么什么语言不谈,单单说一下我对需求分析和测试的看法:

论需求分析的重要性。其实我在上学期的软件工程导论课的学习中,已经铭记在心。一款成功的软件是建立在成功的需求分析之上的,而高质量的需求来源与用户与开发人员之间有效的沟通与合作。但用户有一个问题可以用计算机系统来解决,而开发人员开始帮助用户解决这个问题,沟通就开始了。

需求获取可能是最困难、最关键、最易出错及最需要沟通交流的活动。对需求的获取往往有错误的认识:比如用户知道需求是什么,我们所要做的就是和他们交谈,从他们那里得到需求,只要问用户系统的目标特征,什么是要完成的,要做成什么样,那么基本上就没什么需要操心的了。

其次是对问题的理解。用户对计算机系统的能力和限制缺乏了解,任何一个系统都会有很多的用户或者不同类型的用户,每个用户只知道自己需要的系统,而不知道系统的整体情况。换言之,我们所要做的就是作为乙方,去倾听、理解甲方爸爸们的要求,并给出合理、合适的答案。

就在上学期我们小组做了一个大学生求职的网站,就在需求这第一关就卡住了,导致后面的进程牛头不对马嘴,最后险些没有完成。

软件测试就稍稍简单一些。软件本身无形态,是复杂的知识高度密集的逻辑成品,其中不能有一丁点错误。软件实施工程过程中必须伴随着软件质量保证的活动,而软件测试是主要活动之一。在开发软件的过程追踪,人们使用了许多保证软件质量的方法分析、设计和实现软件。对于规模大、复杂性高的软件更是如此。在这些错误中,有些是致命的错误,如果不及时排除,就会导致财产的重大损失。

对于软件测试的目的是“说明程序能正确地执行应有地功能”,还是“表明程序没有错误”?基于不同地立场,存在着两种截然不同的测试目的。从用户的角度出发,普遍是希望通过软件测试来暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。而从软件开发着的角度出发,则希望测试能成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户地需求,确立人们对于软件质量的信心。因此,他们会选择那些导致程效概率小的测试用例,回避那些已于暴露程序错误的测试用例。同时,也不会可以去检测、排程序中可能包含的副作用。显然,这样的测试对完善和提高软件质量毫无价值。因为在程序中往往害存在着许多预料不到的问题,可能会被遗漏,许多隐藏的错误只有在特定的环境下才可能暴露出来。如果不把着眼点放在尽可能查找错误这样一个基础上,这些隐藏的错误和缺陷就查不出来,会遗留到运行阶段中去。如果站在用户的角度,替他们涉嫌,就应当把测试活动的目标对准揭露程序中存在的错误。在选取试用例时,就应该考虑那些已于发现程序中错误的数据。

此篇博客仅仅是对软件工程的需求分析和测试的浅谈,我对于软件工程的了解还是少之又少,所以关于更深

猜你喜欢

转载自www.cnblogs.com/Demon-cat/p/12465834.html