(1.5)--第5章 软件实现软件工程过程.ppt
《(1.5)--第5章 软件实现软件工程过程.ppt》由会员分享,可在线阅读,更多相关《(1.5)--第5章 软件实现软件工程过程.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章:软件实现编码阶段的任务按照软件设计说明书的要求,从函数库、类库、构件库中挑选有关的部件,遵照程序设计规范,用面向对象(结构化)的语言,采用软件架构技术,将这些部件组装在一起,分别实现各模块的功能,从而实现需求规格说明书中规定的功能、性能、接口、界面要求等。软件的复用什么是复用?所谓复用,就是利用某些先前开发的,对建立新软件系统有用的软件元素来生产新系统的活动。复用的目的是想放弃那种原始的一切从头开始的软件开发方式。利用复用,由共用的可复用构件来组建新的系统。复用有什么好处?缩短开发时间、降低开发成本提高软件的可靠性提高软件的标准化程度软件的复用(续)可复用的软件元素领域知识项目计划成本
2、估算体系结构需求用户界面源程序代码和文档程序设计规范源程序的文档化标识符的命名:应当选择精炼、意义明确的名字。常用命名方法如驼峰命名法:studentName适当的注释:夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。程序的视觉组织:利用缩进使程序层次清晰。数据说明的规范化数据说明的次序应当规范化:如按照数据类型或数据结构确定固定的说明次序。当多个变量名在一个说明语句中说明时,应当对这些变量按字母的顺序排列。如果设计了一个复杂的数据结构,应当使用注释来说明在程序实现时这个数据结构的固有特点。程序设计规范(续)语句构造的结构化不要为了节省空间把多个语句写在一行内。避免复杂的条件测试。
3、对于多分支语句,尽量把出现可能性大的情况放在前面,把较少出现的分支放在后面,这样可以加快运算时间。避免大量使用循环嵌套语句和条件嵌套语句。利用括号使逻辑表达式和算术表达式的运算次序清晰直观。等等程序设计规范(续)输入输出设计合理对输入数据加校验,可以避免用户误输入。检查输入项的各种重要组合的合理性。提示输入的请求,并简明的说明可用的选择和边界数值。批数据输入时,使用输入结束标志,而不要由用户指定输入数据数目。输出加注解,可以设计报表格式进行输出。编码阶段输出的文档源程序清单用户使用手册用户安装手册系统管理员手册代码评审代码评审,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。
4、代码评审的好处提高代码质量,符合编程规范;及早发现潜在缺陷,降低事故成本;评审的过程也是重新梳理思路的过程,评审双方都加深了对系统的理解,促进团队沟通、促进知识共享、共同提高。代码评审(续)代码评审的主要内容编码规范问题:是否按照程序设计规范书写代码;代码结构问题:重复代码、巨大的方法和类等;工具、框架使用不当;实现问题:错误验证、异常处理、事务划分、线程、性能、安全、实现过于复杂、代码可读性不佳、扩展性不好等。代码评审(续)代码评审的选择:系统关键模块;业务较复杂的模块;缺陷率较高的模块。代码评审的主要形式交叉评审代码走查:团队成员互相检查代码,参与者可以是任意两个组员,或开发组长分别与每个
5、组员结对进行。代码作者讲解如何以及为何这样实现、评审者提出问题和建议;每次评审不要贪多,经验表明,一次评审超过400行代码时,能发现缺陷数显著降低。会审:以项目为单位,召开专门的代码评审会议。参与者:包括项目组全体成员,也可以邀请其它组的开发人员参加。静态代码检查工具FindBugs(http:/ 是由马里兰大学提供的一款开源的、使用范围最广泛的 Java 静态代码分析工具。FindBugs 通过检查类文件或 JAR 文件与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。FindBugs 既提供可视化 UI 界面,同时也可以作为 Eclipse/MyEclipse 插件使用。静态代码检
6、查工具阿里巴巴Java开发代码检测IDE插件该插件是针对阿里巴巴 Java 开发规约的一个延伸,阿里巴巴 Java 开发规约是阿里内部Java工程师所遵循的开发规范,涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约等。CheckStyle插件:Eclipse内嵌插件CheckStyle检验的主要内容:Javadoc注释,命名约定,标题,import语句,体积大小,空白,修饰等,主要是用来提高代码可读性,提高项目的质量,易于维护。什么是软件测试?IEEE对软件测试定义为:使用技术手段运行或检测软件系统的过程,目的在于检验是否满足规定的需求或搞清预期结果与实际结果之
7、间的差别。软件测试的输入:软件需求规格说明书、概要设计、详细设计说明书测试的对象:可执行代码。测试计划:描述如何进行软件测试,包括测试的目的、步骤、采取的方法或技术及具体的测试用例。软件测试的目的Grenford J.Myers在软件测试技巧一书中指出软件测试有如下三个目的:测试是为了发现程序中的错误而执行程序的过程好的测试方案很可能使测试发现尚未发现的错误成功的测试是发现了尚未发现的错误的测试软件测试的目的就是尽可能多的找到软件中的错误,而不是证明软件的正确软件测试的目的就是尽可能多的找到软件中的错误,而不是证明软件的正确软件测试的准则在进行软件测试时,必须遵守如下准则:所有测试都可以追溯到
8、用户需求制定测试计划应该在测试工作开始前的较长时间内进行测试中发现的80%的错误可能来自于20%的程序代码测试应从“小规模”开始,逐步转向“大规模”穷举所有测试用例是不可能的为了达到最有效的测试,应由独立的第三方来承担测试任务。什么是测试用例?测试用例是一组条件或变量,测试者根据它来确定应用软件或软件系统是否正确工作。测试用例通常包括以下描述信息:用例ID;用例名称;测试目的;测试级别;测试环境;前置条件;测试数据;测试步骤;预期结果;设计人员。软件测试的步骤大型软件系统的测试过程一般由单元测试、集成测试、确认测试、系统测试以及验收测试等五个步骤组成。单元测试软件的单元测试也称为模块测试,是对
9、功能独立运行的程序模块的检测。目的是发现各模块内部可能存在的各种问题,保证功能和性能等方面达到设计要求。软件单元测试的主要内容:单元模块的功能测试单元模块的接口测试局部数据结构完整性测试容错测试边界测试重要的执行路径测试单元测试(续)所谓回归测试是指,修改了旧代码后,为保证其修改正确性,需要重新使用原有测试用例执行的测试。以确认修改没有引入新的错误或导致其他代码产生错误。单元测试工作的输入为:“程序源代码”和“软件详细设计说明书”单元测试结束的输出为:“程序单元测试记录”等集成测试集成测试也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。集成
10、测试的方式一次性集成增殖式集成集成测试(续)增殖式集成1.自顶向下增殖测试从主控模块开始,沿着软件的控制层次结构,以深度优先或广度优先的策略,把模块一一集成在一起。深度优先的集成顺序为M1、M2、M5、M9、M3、M6、M7、M4和M8;广度优先的集成顺序为:M1、M2、M3、M4、M5、M6、M7、M8和M9集成测试(续)增殖式集成1.自顶向下增殖测试自顶向下集成测试的具体步骤用主控模块作为测试驱动模块,其直接下属模块用桩模块来代替进行测试;依据所选的集成策略,每次用实际模块代替下属的桩模块;在集成每个实际模块时都要进行测试;可以进行回归测试,以保证不引入新的错误。从第二步开始,循环执行上述
11、步骤,直至整个软件结构构造完毕。集成测试(续)增殖式集成2.自底向上增殖测试自底向上集成测试的具体步骤把低层模块组合成实现某个特定子功能的模块群;开发一个测试驱动模块,控制测试数据的输入和测试结果的输出;对每个模块群进行测试;去掉测试使用的驱动模块,沿着软件结构自底向上移动,把模块群与较高层模块组合成实现更大功能的新模块群。从第一步开始循环执行上述各步骤,直至整个软件结构构造完毕。集成测试(续)增殖式集成以上两种增殖式集成方式的优缺点:自顶向下集成测试的优点是可较早发现主要控制方面的问题;自顶向下集成测试的缺点是需要建立桩模块。自底向上集成测试的优点是不需要桩模块;涉及到复杂算法及输入输出模块
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1.5-第5章 软件实现软件工程过程 1.5 软件 实现 软件工程 过程
限制150内