软件工程导论_10.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程导论_10资料

软件工程导论 陈丹琪 灾害信息工程系 复 习 面向对象的(类)设计原则 里氏替换原则(Liskov Substitution Pinciple) 最少知识原则( Least Knowledge Principle) 合成/聚合复用原则(Composite/Aggregate Reuse Principle) 单一职责原则(Single Resposibility Principle) 开放-封闭原则(Open-Closed Principle) 依赖倒置原则(Dependence Inversion Principle) 接口隔离原则(Interface Segregation Principle) 子类应当能完全替代其父类,并出现在父类能够出现的任何地方。 子类尽量不要重写或重载父类的方法。 一个软件实体应当尽可能少的与其他实体发生相互作用。 一个对象应该对其他对象保持最少的了解——尽量降低类与类之间的耦合。 尽量使用对象组合,而不是继承来达到复用的目的。 组合/聚合可以使系统更加灵活,类与类之间的耦合度降低,一个类的变化对其他类造成的影响相对较少,因此一般首选使用组合/聚合来实现复用。 一个类应该仅有一个职责。 OOD的实质,就是合理的进行类的职责分配。如果一个类承担的职责过多,那么这些职责就相互依赖,一个职责的变化可能会影响另一个职责的履行。 对于扩展是开放的,对于修改是封闭的。 OCP原则的关键是“抽象”;多态保证了扩展的开放性;开放意味着实现是可替换的。 高层模块不应该依赖于低层模块,二者都应该依赖于抽象,即细节应该依赖于抽象。 模块都应面向接口编程,而不是依赖于具体实现。此原则的核心是“抽象”和“间接”,抽象的稳定性决定了系统的稳定性。 不应该强迫客户依赖于它们不用的方法。 通过把胖类的接口分解为多个特定于客户程序的接口,然后胖类继承这些接口,实现它们。这样可以解除这种耦合关系。 作 业 一款游戏中有各种鸟类,有人设计了如图的继承关系。其中,鸽子和老鹰所要显示的行为不同,在父类中只提供了一个接口,子类给出具体实现。而它们都会飞,没有不同,在父类中设定了“飞”操作,通过继承,子类重用了父类代码,提高了可维护性。如果现在要把企鹅也作为鸟类的一个子类,这个设计是否合理?若不合理,应如何修改?试说明你的设计符合什么设计原则。 多态,父类给出接口,子类具体实现。 行为和种类易变 封装变化点: 满足合成/聚合复用原则 复 习 按照在软件生命周期全过程中应完成的任务的性质,可以把软件生命周期划分成问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试以及维护等8个阶段。 系统分析 系统设计 系统实现 本节课内容 第七章 实现 7.1、编码 7.2、软件测试基础 7.3、单元测试 7.4、集成测试 7.5、确认测试 7.6、白盒测试技术 7.7、黑盒测试技术 7.8、调试 7.9、软件可靠性 编 码 选择适当的程序设计语言 用高级语言编写的程序容易阅读、容易测试、容易调试、容易维护、明显优于汇编语言。 选择语言的实用标准: 系统用户的要求;可以使用的编译程序;可以得到的软件工具;工程规模;程序员的知识;软件可移植性要求;软件的应用领域。 编码风格 编 码 编 码 试说明下面的两个程序段的功能是什么?可否用另一些等效的程序段来代替它们,以提高其可读性。 (1)A[I] = A[I] + A[T]; A[T] = A[I] - A[T]; A[I] = A[I] - A[T]; (2) for (int i=1; i=n; i++) for (int j=1; j=n; j++) V[i][j] = (i/j) * (j/i); 软件测试基础 软件测试的目的与软件工程其他阶段的目的都相反,是为了“破坏”已经建造好的软件系统——竭力证明程序中有错误,不能按照预定要求正确工作。 G. Myers给出关于测试的一些规则 测试是为了发现程序中的错误而执行程序的过程。 软件测试准则 测试方法: 黑盒测试,又称为功能测试 白盒测试,又称为结构测试 软件测试基础 测试阶段的信息流 软件测试基础 测试步骤: 单元测试又称为模块测试。发现的往往是编码和详细设计的错误。 集成测试又称为组装测试或子系统测试。目的是发现与接口有关的模块之间的问题。 确认测试目的是对软件产品进行评估以确定其是否满足软件需求。 系统测试是针对系统中各个组成部分进行的综合性检验,可能发现软件设计或需求说明中的错误,同时可证明系统的性能。 验收测试的目的是验证系统确实能够满足用户的需要。发现的往往是系统需求说明书中的错误。 单元测试 单元测试是对软件基本组成单元进行的测试,用以发

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档