XX年最新软件工程总结Word下载.docx
- 文档编号:7028680
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:8
- 大小:22.05KB
XX年最新软件工程总结Word下载.docx
《XX年最新软件工程总结Word下载.docx》由会员分享,可在线阅读,更多相关《XX年最新软件工程总结Word下载.docx(8页珍藏版)》请在冰点文库上搜索。
首先需求获取要定义问题范围,系统的边界往往是很难明确的,用户不了解技术实现的细节,这样造成了系统目标的混淆。
其次是对问题的理解,用户对计算机系统的能力和限制缺乏了解,任何一个系统都会有很多的用户或者不同类型的用户,每个用户只知道自己需要的系统,而不知道系统的整体情况,他们不知道系统作为一个整体怎么样工作效率更好,也不太清楚那些工作可以交给软件完成,他们不清楚需求是什么,或者说如何以一种精确的方式来描述需求,他们需要开发人员的协助和指导,但是用户与开发人员之间的交流很容易出现障碍,忽略了那些被认为是"
很明显"
的信息。
最后是
需求的确认,因为需求的不稳定性往往随着时间的推移产生变动,使之难以确认。
为了克服以上的问题,必须有组织的执行需求的获取活动。
需求分析的原则
需求分析必须能够表达和理解问题的数据域和功能域。
数据域包括数据流、数据内容和数据结构,而功能域反映上述3方面的控制信息。
需求分析要把一个复杂问题按功能进行分解并逐层细化。
通常,软件系统要处理的问题如果太大、太复杂就很难理解,若划分成几部分,并确定各部分间的接口,就可完成整体的功能。
在需求分析过程中,软件系统的用户需求中的数据、功能和行为都应细化。
需求建模。
模型可以帮助系统分析人员更好地理解软件系统的数据、功能和行为,这些模型是软件工程中下一阶段进行系统设计的基础。
需求分析的注意事项
确定详细的需求,否则经费就算不准。
经费估计错误的原因多为:
用户需求频繁变动、遗漏重要需求、与用户交流不够、需求规格说明书质量低劣、需求分析不充分等。
在编写需求规格说明书之前,应明确要解决的问题。
在试图解决问题之前,要保证已考察了全部可替代的方案。
要搞清哪地方有问题,真正的问题出在哪里。
这样,在编写需求规格说明书时做到有的放矢,把存在的问题暴露出来。
立即确定需求,并记录下该需求的背景。
没有明确问题,就进行下一步的设计,想回避矛盾,可能会带来更大的问题。
用户不确定需求,软件设计人员自己决定需求,将会带来严重的问题。
为了避免将来可能出现的问题和软件工程项目能够尽快地进入到下一个阶段的系统设计中,要尽可能迅速地把用户需求确定下来。
任何决定总比没有决定要好。
一旦在需求规格说明书中发现问题,立即改正。
如果把存在的问题拖延到系统设计阶段去改正,就可能要花数倍的时间和精力才能纠正同一错误。
在众多用户需求中确定各个需求的优先顺序,并确定可能存在的子集,以便为软件设计、实施和项目管理等后续阶段提供有利条件。
需求分析时,不要进行系统设计的工作。
需求分析的主要目的是确定软件系统的外部特征,充分反映软件系统应有的面貌,便于让软件设计人员根据
用户需求,去全面地考虑软件系统的体系结构、算法等。
在需求分析阶段要集中精力解决用户需求存在的问题,尽可能避免产生遗留问题。
对于复杂的软件系统,要从多种视角进行需求分析。
根据软件系统的本质,切合实际地组织多种视角的需求。
例如,可从根据用户的类型,或根据响应的类型,或根据对象的软件工程案例教程类型,或根据系统的模式等视角来组织用户需求。
通过多个视角来研究用户需求问题,把可得到的不同的“投影”组合起来形成完整系统的描述。
当试图从整体观点来描述软件系统发生困难,或者有可能发生错误,或者很有可能遗失软件系统的某些特性。
而从不同的视角来描述软件系统,因为每个视角限制了研究的范围并能够将注意力集中于此,所以很容易保证所研究的问题是真正完整的。
重视形式化方法,但不放弃自然语言。
为了用户需求表达的精确性和方便用户的可理解性,一个好方法是把自然语言的表达与形式化规格说明并立,互相对照,而且在一般情况下,先用自然语言写出,再给出它的形式模型。
用户需求中不应存在“待确定”的条款。
如若有这种需要,应同时说明:
何时由谁来解决该问题。
用户需求的类型
需求分析是从用户最初的非形式化需求到满足用户要求的软件产品的映射过程。
它实际上是一个对用户意图不断进行揭示和判断的过程,其目的在于细化、精化软件的作用范围,确定拟开发软件的功能和性能、约束、环境等。
可将用户的需求分为两大类:
功能性需求和非功能性需求。
功能性需求。
功能性需求主要说明了系统各功能部件与环境之间的相互作用的本质,即拟开发软件在职能上实际应做到什么。
一般来说,它是用户最主要的需求,通常包括系统的输入、系统能完成的功能、系统的输出以及其他反应。
在功能性需求中还应包括备选功能的定义识别。
非功能性需求。
非功能性要求主要从各个角度对所考虑的可能的解决方案起约束和限制作用。
需求分析的方法
在软件工程中,常用的需求分析方法有面向数据流的结构化分析方法和面向对象的分析方法。
此外,还有以用户为中心的需求分析
方法。
这些方法都采用图文结合的方式,可以直观地描述软件的逻辑模型。
这里仅介绍结构化分析方法和以用户为中心的需求分析方法。
软件测试概述
软件本身无形态,它是复杂的知识高度密集的逻辑产品,其中不可能没有错误。
软件实施工程过程中必须伴随着软件质量保证的活动,而软件测试是主要活动之一。
在开发软件的过程中,人们使用了许多保证软件质量的方法分析、设计和实现软件,但难免还会在工作中犯错误。
这样,在软件产品中就会隐藏许多错误和缺陷。
对于规模大、复杂性高的软件更是如此。
在这些错误中,有些是致命的错误,如果不排除,就会导致生命与财产的重大损失。
软件测试的目的
测试的目的是“说明程序能正确地执行应有的功能”,还是“表明程序没有错误”?
基于不同的立场,存在着两种完全不同的测试目的。
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。
而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
因此,他们会选择那些导致程效概率小的测试用例,回避那些易于暴露程序错误的测试用例。
同时,也不会刻意去检测、排除程序中可能包含的副作用。
显然,这样的测试对完善和提高软件质量毫无价值。
因为在程序中往往存在着许多预料不到的问题,可能会被疏漏,许多隐藏的错误只有在特定的环境下才可能暴露出来。
如果不把着眼点放在尽可能查找错误这样一个基础上,这些隐藏的错误和缺陷就查不出来,会遗留到运行阶段中去。
如果站在用户的角度,替他们设想,就应当把测试活动的目标对准揭露程序中存在的错误。
在选取测试用例时,考虑那些易于发现程序错误的数据。
软件测试的原则
应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。
由于原始问题的复杂性、软件的复杂性和抽象性、软件开发各个阶段工作的多样性,以及参加开发各种层次人员之间工作的配合关系等因素,使得开发的每个环节都可能产生错误。
所以不应把软件测试仅仅看成是软件开发的一个独立阶段,
而应当把它贯穿到软件开发的各个阶段中。
在需求分析阶段就应该制订测试计划,以保证每个需求,每个设计单元都是可测试的,便于测试。
坚持在软件开发的各个阶段的技术评审,这样才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些隐患,提高软件质量。
测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。
测试以前应当根据测试的要求,选择在测试过程中使用的测试用例。
测试用例主要用来检验程序员编制的程序,因此不但需要测试的输入数据,而且需要针对这些输入数据的预期输出结果。
如果对测试输入数据没有给出预期的程序输出结果,那么就缺少了检验实测结果的基准,就有可能把一个似是而非的错误结果当成正确结果。
程序员应避免检查自己的程序。
测试工作需要严格的作风、客观的态度和冷静的情绪。
自己测试自己的软件不容易发现错误,程序员应避免测试自己的程序。
测试是一种“挑剔性”的行为,人们常常由于各种原因具有一种不愿否定自己工作的心理,认为揭露自己程序中的问题总不是一件愉快的事,这一心理状态就成为测试自己程序的障碍。
心理状态和思维定式是测试自己程序的两大障碍,应由别人或另外的机构来测试程序员编写的程序。
另外,程序员对软件规格说明理解错误而引入的错误则更难发现。
如果由别人来测试程序员编写的程序,可能会更客观、更有效,并更容易取得成功。
要注意的是,这点不能与程序的调试互相混淆,调试由程序员自己来做可能更有效。
在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
合理的输入条件是指能验证程序正确的输入条件,而不合理的输入条件是指异常的、临界的、可能引起问题变异的输入条件。
在测试程序时,人们常常倾向于过多地考虑合法的和期望的输入条件,以检查程序是否做了它应该做的事情,而忽视了不合法的和预想不到的输入条件。
事实上,软件在投入运行以后,用户的使用往往不遵循事先的约定,使用了一些意外的输入,如用户软件工程案例教程在键盘上按错了键或打入了非法的命令。
如果开发的软件遇到这种情况时不能做出适当的反应,给出相应的信息,那么就容易产生故障,轻则给出错误的结果,重则导致软件失效。
因此,软件系统处理非法命令的能力也必须在测试时受到检验。
用不合理的输件测试程序时,往往比用合理的输入条件进行测试能发现更多
XX年最新软件工程总结范文篇二:
没什么爱好,唯软件开发技术情有独钟,常自娱自乐,自小热爱编程,从小学6年级开始正式学习程序设计,至今已有12年有余,18岁中专毕业,参加工作,至今已有5年,近6年的软件开发工作经验,工作期间也不断学习,完善自己的职业技能,理解软件开发的思想,熟悉Delphi、C/C++/VC++、ASP、SQLServer、Html、脚本语言,汇编,熟悉Win32SDK编程,经过多年的学习和实践相结合对面象对象的设计与开发也有深刻的理解和自己独特的见解。
列宁曾说“实践高于认识,因为它不仅具有普遍性的品格,而且还具有直接现实性的品格。
”,我始终相信。
对软件逆向工程也比较熟悉,熟悉汇编/反汇编,熟悉各种静态反编译工具如DD、W32DASM、C32ASM等,熟悉各种动态跟踪调试工具如SoftICE、OllyDBG等工具,熟悉加密与解密,能够利用这些工具和我的知识对软件进行加密,防止盗版,能够对软件进行解密和逆向工程,研究软件的底层机理,属于中国破解组织BCG/DFCG/OCN/DCM/CZG正式成员(注:
这些组织都是以技术研究为主的,跟盗版是两回事)。
同时熟悉多层系统的设计开发,熟悉各种软件工具的使用,对Windows系列操作系统较为熟悉,对Linux操作系统有所了解。
掌握面向对象的分析与设计和相关工具的使用,对软件工程化也比较熟悉,由其感兴趣的是敏捷软件开发。
曾任技术研发组组长,带领技术研发组完成技术攻关,管理软件项目。
有极强的自学能力和归纳总结能力。
对一项技术有强烈的钻研欲望.
转入正题了,首先谈谈,我认为我所在的项目组做得好的地方.在我们项目组中使用了CVS做软件的版本控制,用RoboHelp写文档,用TestTrack做Bug跟踪.
做得不好的地方就是需求描述不清晰,而我们过早的进入"设计"阶段,过迟的进入测试阶段.
我们需要的需求描述是这样的:
只说做什么,不说怎么做,并描述出希望得到的结果,至于操作习惯这些东西可以在得到了正确的软件功能后再作调整.
再来看看我们的代码:
我们目前的代码根本不具备可测试性,当改动一个地方的时候我们不可能自己把所有代码功能都跑1遍,以保证程序的正确性,保证程序的质量,有可能我们改动的这一个地方会牵扯到另一个地方或N个地方,而我们有可能没有考虑到这个关联性或没有考虑完,于是1个地方的改动造成了N个地方的错误.这样的问题在我们公司开发人员中基本是天天都在上演重复的一幕,造成开发成本/维护成本不断的上升,产品迟迟不能稳定.
还有一个比较严重的问题是过早的进行设计,把程序的结构过早的定下来,这样导致的后果是要当需求发生变化,目前的系统结构无法满足需求时,可想而知后果的什么样的.
我们的测试人员可说是做得比较好了的,这点我没什么好说的.我只是想说让我们开发产品应该尽早的提交给测试人员和用户进行测试,这样我们可以更早的得到反馈,对产品作出改进和修改.
我想重点对我们开发谈谈,提出一些自己的建议:
为了保证我们的程序具有可靠性,可维护性,可阅读性,让我们产品达到一个高质量的标准,我想唯一的方法就是让我们代码具有可测试性,可测试性的代码是具有良好结构的,优美的,高质量的并且也是简单的.其中以测试来驱动开发(TDD)的方法是我较为推崇的,我在家自己写的程序基本都有UnitTest.
UnitTest又叫单元测试,是针对程序最基本结构单元所进行的测试。
而TDD的过程是这样的,写一个测试程序,使其可以运行,重构。
在写这个测试程序的时候你考虑的不应该是基于什么结构单元,而是要考虑需要完成的什么功能。
实现和重构的时候,具体是不是这个单元完成了这个功能依然不是你应该去考虑的,你考虑的还是——是不是完成了这个功能、是不是代码真的清晰和可工作。
你考虑的问题永远是围绕着具体的功能进行的,而不是围绕某种结构进行的。
你写这个测试程序的时候,这个结构并不存在,并且今后也可能不存在。
明白这个道理就可以明白TDD实际还是基于需求驱动的,还是一种前瞻性的设计手段。
只不过TDD让这个需求更加具体,让其前瞻性也更可以预测,并且在多种方法中给了你进行多种尝试的机会。
而当你认为这个测试只是单元测试的时候,无疑你就把程序的结构早早的做了一个固定,其是基于结构的而不是基于需求的,并且由于其基于结构的一面则设计的前瞻性很难得到保证,而就根本性的断绝了你进行多种尝试的可能。
设计的前瞻性是指你的设计可以带来可以预测的结果。
而软件的结构是动态的,并且随着你必须进行的重构活动这样的结构变更会日常性的存在。
如果你的一个测试高度的依靠某种特殊的结构,在这样的经常性重构的环境下,其被经常性修改的几率会大大增加。
而由于其结构的不确定性是根本不可能逆转的,所以针对结构进行的测试根本不可能带来结构上的可预测性,而谈不上什么前瞻性了。
软件开发是一个不断跌代的过程,我们应该小步前进,不应该一开始就固定的程序的结构,
一开始就使用复杂的设计模式,这些程序结构和设计模式都应该是我们通过了N次跌代后得到的结果.应该切忌为了显示自己的水平而在一开始使用这些复杂的东西.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XX 最新 软件工程 总结