系统分析与设计面向对象实现课件.ppt
《系统分析与设计面向对象实现课件.ppt》由会员分享,可在线阅读,更多相关《系统分析与设计面向对象实现课件.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、系统分析与设计面向对象实现第1页,此课件共44页哦第第12章章 面向对象实现面向对象实现n12.1 程序设计语言程序设计语言n12.2 程序设计风格程序设计风格n12.3 测试策略测试策略n12.4 设计测试用例设计测试用例第2页,此课件共44页哦12.1 程序设计语言程序设计语言12.1.1 面向对象语言的优点面向对象语言的优点面面向向对对象象设设计计的的结结果果既既可可以以用用面面向向对对象象语语言言、也也可以用非面向对象语言实现。可以用非面向对象语言实现。使使用用面面向向对对象象语语言言时时,由由于于语语言言本本身身充充分分支支持持面面向向对对象象概概念念的的实实现现,因因此此,编编译译
2、程程序序可可以以自自动动把把面面向对象概念映射到目标程序中。向对象概念映射到目标程序中。非非面面向向对对象象语语言言编编写写面面向向对对象象程程序序比比较较麻麻烦烦,不不再讨论。再讨论。第3页,此课件共44页哦1.1.一致的表示方法一致的表示方法一致的表示方法一致的表示方法面向对象开发基于不随时间变化的、一致的表示面向对象开发基于不随时间变化的、一致的表示方法。从问题域到方法。从问题域到OOAOOA、从、从OOAOOA到到OODOOD、从、从OODOOD到面向对到面向对象编程象编程(OOP)(OOP),表示方法始终稳定不变。,表示方法始终稳定不变。2.2.可重用性可重用性可重用性可重用性商业利
3、益需要在更广泛的范围中运用重用机制,商业利益需要在更广泛的范围中运用重用机制,由于面向对象特点,我们既可重用它在某个问题域内由于面向对象特点,我们既可重用它在某个问题域内的的OOAOOA结果,也可能重用结果,也可能重用OODOOD和和OOPOOP结果。结果。3.3.可维护性可维护性可维护性可维护性保持文档与源程序一致是重要的,尤其对维护阶保持文档与源程序一致是重要的,尤其对维护阶段而言,否则将可能面对的是段而言,否则将可能面对的是只有源程序本身。只有源程序本身。只有源程序本身。只有源程序本身。12.1.1 面向对象语言的优点面向对象语言的优点第4页,此课件共44页哦1.1.支持类与对象概念的机
4、制支持类与对象概念的机制支持类与对象概念的机制支持类与对象概念的机制2.2.实现整体实现整体实现整体实现整体-部分部分部分部分(即聚集即聚集即聚集即聚集)结构的机制结构的机制结构的机制结构的机制3.实现一般实现一般实现一般实现一般-特殊特殊特殊特殊(即泛化即泛化即泛化即泛化)结构的机制结构的机制结构的机制结构的机制4.4.实现属性和服务的机制实现属性和服务的机制实现属性和服务的机制实现属性和服务的机制5.5.类型检查类型检查类型检查类型检查6.6.类库类库类库类库7.7.效率效率效率效率8.8.持久保存对象持久保存对象持久保存对象持久保存对象9.参数化类参数化类参数化类参数化类10.10.开发
5、环境开发环境开发环境开发环境12.1.2 面向对象语言的技术特点面向对象语言的技术特点第5页,此课件共44页哦开发人员在选择面向对象语言时,还应该着重考虑以开发人员在选择面向对象语言时,还应该着重考虑以下一些实际因素。下一些实际因素。1.1.将来能否占主导地位将来能否占主导地位将来能否占主导地位将来能否占主导地位在若干年以后,哪种面向对象的程序设计语言将占在若干年以后,哪种面向对象的程序设计语言将占主导地位呢主导地位呢?为了使自己的产品在若干年后仍然具有很强为了使自己的产品在若干年后仍然具有很强的生命力,人们可能希望采用将来占主导地位的语言编程。的生命力,人们可能希望采用将来占主导地位的语言编
6、程。根据预测,选择适宜的语言。根据预测,选择适宜的语言。但是,最终决定选用哪种面向对象语言的实际因素,但是,最终决定选用哪种面向对象语言的实际因素,往往是诸如成本之类的经济因素而不是技术因素(例往往是诸如成本之类的经济因素而不是技术因素(例如:如:JavaJava语言)。语言)。12.1.3 选择面向对象语言选择面向对象语言第6页,此课件共44页哦2.2.可重用性可重用性可重用性可重用性采用面向对象方法开发软件的基本目的和主要优点,采用面向对象方法开发软件的基本目的和主要优点,是通过重用提高软件生产率。因此,应该优先选用能够是通过重用提高软件生产率。因此,应该优先选用能够最完整、最准确地表达问
7、题域语义的面向对象语言。最完整、最准确地表达问题域语义的面向对象语言。3.3.类库和开发环境类库和开发环境类库和开发环境类库和开发环境语言、开发环境和类库这语言、开发环境和类库这3 3个因素综合起来,共同决个因素综合起来,共同决定了可重用性。定了可重用性。有价值的类是软件开发提高效率、降低成本、提有价值的类是软件开发提高效率、降低成本、提高可靠性的的保障。高可靠性的的保障。随着类库的日益成熟和丰富,在开发新应用系统随着类库的日益成熟和丰富,在开发新应用系统时,需要开发人员自己编写的代码将越来越少。时,需要开发人员自己编写的代码将越来越少。12.1.3 选择面向对象语言选择面向对象语言第7页,此
8、课件共44页哦4.4.其他因素其他因素其他因素其他因素其他因素还有:其他因素还有:对用户学习面向对象技术所能提供的培训服务;对用户学习面向对象技术所能提供的培训服务;在使用某面向对象语言期间能提供的技术支持;在使用某面向对象语言期间能提供的技术支持;能提供给开发人员使用的开发工具、开发平台、能提供给开发人员使用的开发工具、开发平台、发行平台;发行平台;对机器性能和内存的需求;对机器性能和内存的需求;集成已有软件的容易程度等。集成已有软件的容易程度等。12.1.3 选择面向对象语言选择面向对象语言第8页,此课件共44页哦12.2 程序设计风格程序设计风格良良好好的的程程序序设设计计风风格格是是程
9、程序序质质量量重重要要保保证证,且且有有助助于于在在新项目中重用已有的程序代码。新项目中重用已有的程序代码。良良好好的的面面向向对对象象程程序序设设计计风风格格,既既包包括括传传统统的的程程序序设设计计风风格格准准则则,也也包包括括为为适适应应面面向向对对象象方方法法所所特特有有的的概概念念(例继承性等例继承性等)而必须遵循的一些新准则。而必须遵循的一些新准则。12.2.1 提高可重用性提高可重用性面面向向对对象象方方法法的的一一个个主主要要目目标标就就是是提提高高软软件件的的可可重重用性。用性。软软件件重重用用有有多多个个层层次次,在在编编码码阶阶段段主主要要涉涉及及代代码码重重用用问题。问
10、题。第9页,此课件共44页哦12.2.1 提高可重用性提高可重用性一一般般说说来来,代代码码重重用用有有两两种种:一一种种是是本本项项目目内内的的代代码重用,另一种是新项目重用旧项目的代码。码重用,另一种是新项目重用旧项目的代码。内内部部重重用用主主要要是是找找出出设设计计中中相相同同或或相相似似的的部部分分,然然后后利用继承机制共享它们。利用继承机制共享它们。为为做做到到外外部部重重用用,则则必必须须有有长长远远眼眼光光,需需要要反反复复考考虑虑精心设计。精心设计。两类重用的程序设计两类重用的程序设计准则准则准则准则是相同的:是相同的:1.1.提高方法的内聚提高方法的内聚提高方法的内聚提高方
11、法的内聚一个方法一个方法(即服务即服务)应该只完成单个功能。应该只完成单个功能。第10页,此课件共44页哦12.2.1 提高可重用性提高可重用性2.2.减小方法的规模减小方法的规模减小方法的规模减小方法的规模应应该该减减小小方方法法的的规规模模,如如果果某某个个方方法法规规模模过过大大(代代码码长长度度超超过过一一页页纸纸可可能能就就太太大大了了),则则应应该该把把它它分分解解成成几个更小的方法。几个更小的方法。3.3.保持方法的一致性保持方法的一致性保持方法的一致性保持方法的一致性保持方法的一致性,有助于实现代码重用。保持方法的一致性,有助于实现代码重用。一一般般说说来来,功功能能相相似似的
12、的方方法法应应该该有有一一致致的的名名字字、参参数数特特征征(包包括括参参数数个个数数、类类型型和和次次序序)、返返回回值值类类型型、使使用用条件及出错条件等。条件及出错条件等。第11页,此课件共44页哦12.2.1 提高可重用性提高可重用性4.4.把策略与实现分开把策略与实现分开把策略与实现分开把策略与实现分开从所完成的功能看,有两种不同类型的方法。从所完成的功能看,有两种不同类型的方法。一一类类方方法法负负责责做做出出决决策策且且管管理理全全局局资资源源,可可称称为为策策略方法(例如:检查系统运行状态,并处理出错情况)。略方法(例如:检查系统运行状态,并处理出错情况)。一类方法负责完成具体
13、操作,可称为实现方法。一类方法负责完成具体操作,可称为实现方法。为为提提高高可可重重用用性性,在在编编程程时时不不要要把把策策略略和和实实现现放放在在同同一一个个方方法法中中,应应该该把把算算法法的的核核心心部部分分放放在在一一个个单单独独的的具具体体实实现方法中。现方法中。第12页,此课件共44页哦12.2.1 提高可重用性提高可重用性5.5.全面覆盖全面覆盖全面覆盖全面覆盖如如果果输输入入条条件件的的各各种种组组合合都都可可能能出出现现,则则应应该该针针对对所所有有组组合合写写出出方方法法,而而不不能能仅仅仅仅针针对对当当前前用用到到的的组组合合情况写方法。情况写方法。此此外外,一一个个方
14、方法法不不应应该该只只能能处处理理正正常常值值,对对空空值值、极极限限值及界外值等异常情况也应该能够作出有意义的响应。值及界外值等异常情况也应该能够作出有意义的响应。第13页,此课件共44页哦12.2.1 提高可重用性提高可重用性6.6.尽量不使用全局信息尽量不使用全局信息尽量不使用全局信息尽量不使用全局信息应应该该尽尽量量降降低低方方法法与与外外界界的的耦耦合合程程度度,不不使使用用全全局局信信息息是是降低耦合度的一项主要措施。降低耦合度的一项主要措施。7.7.利用继承机制利用继承机制利用继承机制利用继承机制在在面面向向对对象象程程序序中中,使使用用继继承承机机制制是是实实现现共共享享和和提
15、提高高重用程度的主要途径。重用程度的主要途径。(1)(1)调用子过程调用子过程调用子过程调用子过程最最简简单单的的做做法法是是把把公公共共的的代代码码分分离离出出来来,构构成成一一个个被被其其他他方方法法调调用用的的公公用用方方法法。可可以以在在基基类类中中定定义义这这个个公公用用方方法法,供供派派生类中的方法调用,如图生类中的方法调用,如图12.1所示。所示。第14页,此课件共44页哦图12.1 通过调用公用方法实现代码重用第15页,此课件共44页哦图图12.2 因子分解实现代码重用因子分解实现代码重用提高相似类代码可重用性:是从不同类的提高相似类代码可重用性:是从不同类的提高相似类代码可重
16、用性:是从不同类的提高相似类代码可重用性:是从不同类的相似方法中分解出不同的相似方法中分解出不同的相似方法中分解出不同的相似方法中分解出不同的“因子因子因子因子”(即不同的即不同的即不同的即不同的代码代码代码代码),把余下的代码作为公用方法中的公共代码,把余下的代码作为公用方法中的公共代码,把余下的代码作为公用方法中的公共代码,把余下的代码作为公用方法中的公共代码,把分解出的因子作为名字相同算法不同的方法,放把分解出的因子作为名字相同算法不同的方法,放把分解出的因子作为名字相同算法不同的方法,放把分解出的因子作为名字相同算法不同的方法,放在不同类中定义,并被这个公用方法调用在不同类中定义,并被
17、这个公用方法调用在不同类中定义,并被这个公用方法调用在不同类中定义,并被这个公用方法调用(2)(2)分解因子分解因子分解因子分解因子第16页,此课件共44页哦12.2.1 提高可重用性提高可重用性(3)(3)使用委托使用委托使用委托使用委托父类的所有方法和属性应该都适用于子类。父类的所有方法和属性应该都适用于子类。但但是是使使用用继继承承应应用用适适合合于于仅仅当当确确实实存存在在一一般般-特特殊殊关关系系时时(即即子子类类确确实实是是父父类类的的一一种种特特殊殊形形式式),使使用用继继承承才才是是恰恰当的。当的。继承机制使用不当将造成程序难于理解、修改和扩充。继承机制使用不当将造成程序难于理
18、解、修改和扩充。当当用用继继承承作作为为实实现现操操作作共共享享的的一一种种手手段段,并并不不打打算算确确保保基基类类和和派派生生类类具具有有相相同同的的行行为为。在在这这种种情情况况下下,可可以以利利用用委委托托机机制制即即把把一一类类对对象象作作为为另另一一类类对对象象的的属属性性,从从而而在在两两类类对对象象间间建建立立组组合合关关系系,也也可可以以达达到到同同样样目目的(例如:学生的(例如:学生-指导教师)。指导教师)。第17页,此课件共44页哦12.2.1 提高可重用性提高可重用性(4)(4)把代码封装在类中把代码封装在类中把代码封装在类中把代码封装在类中程程序序员员往往往往希希望望
19、重重用用其其他他方方法法编编写写的的、解解决决同同一一类类应用问题的程序代码。应用问题的程序代码。重重用用这这类类代代码码的的一一个个比比较较安安全全的的途途径径,是是把把被被重重用用的的代码封装在类中。代码封装在类中。第18页,此课件共44页哦12.2.2 提高可扩充性提高可扩充性提高可重用性的准则,同样也能提高程序的可扩充性。提高可重用性的准则,同样也能提高程序的可扩充性。下列的程序设计准则也有助于提高可扩充性:下列的程序设计准则也有助于提高可扩充性:1.1.封装实现策略封装实现策略封装实现策略封装实现策略即即封封装装性性,把把类类的的实实现现策策略略(属属性性的的数数据据结结构构、修修改
20、改属属性性的的算算法法等等)封封装装起起来来,对对外外只只提提供供公公有有的的接接口口,由由于于接口不变,提高今后修改数据结构或算法的自由度接口不变,提高今后修改数据结构或算法的自由度。第19页,此课件共44页哦12.2.2 提高可扩充性提高可扩充性2.2.不要用一个方法遍历多条关联链不要用一个方法遍历多条关联链不要用一个方法遍历多条关联链不要用一个方法遍历多条关联链一一个个方方法法应应该该只只包包含含对对象象模模型型中中的的有有限限内内容容。违违反反这这条条准准则则将将导导致致方方法法过过分分复复杂杂,既既不不易易理理解解,也也不不易易修改扩充。修改扩充。3.3.避免使用多分支语句避免使用多
21、分支语句避免使用多分支语句避免使用多分支语句可可以以利利用用DO_CASE语语句句测测试试对对象象的的内内部部状状态态,而而不不要要用用来来根根据据对对象象类类型型选选择择应应有有的的行行为为,否否则则在在增增添添新新类类时时将将不得不修改原有的代码。不得不修改原有的代码。应应该该合合理理地地利利用用多多态态性性机机制制,根根据据对对象象当当前前类类型型,自动决定应有的行为。自动决定应有的行为。第20页,此课件共44页哦12.2.2 提高可扩充性提高可扩充性4.4.精心确定公有方法精心确定公有方法精心确定公有方法精心确定公有方法公公有有方方法法是是向向公公众众公公布布的的接接口口,对对这这类类
22、方方法法的的修修改改往往往往会会涉涉及及许许多多其其他他类类,因因此此,修修改改公公有有方方法法的的代代价价通通常常都都比比较较高。高。为为提提高高可可修修改改性性,降降低低维维护护成成本本,必必须须精精心心选选择择和和定义公有方法。定义公有方法。私私有有方方法法是是仅仅在在类类内内使使用用的的方方法法,通通常常利利用用私私有有方方法法来来实实现现公公有有方方法法。删删除除、增增加加或或修修改改私私有有方方法法所所涉涉及的面要窄得多,因此代价也比较低。及的面要窄得多,因此代价也比较低。第21页,此课件共44页哦12.2.3 提高健壮性提高健壮性在在编编写写实实现现方方法法的的代代码码时时,通通
23、常常需需要要在在健健壮壮性性与与效效率率之之间做出适当的折衷。间做出适当的折衷。必必须须认认识识到到,对对于于任任何何一一个个实实用用软软件件来来说说,健健壮壮性性都都是是不不可可忽忽略略的的质质量量指指标标。为为提提高高健健壮壮性性应应该该遵遵守守以以下几条准则。下几条准则。1.1.预防用户的操作错误预防用户的操作错误预防用户的操作错误预防用户的操作错误软软件件系系统统必必须须具具有有处处理理用用户户操操作作错错误误的的能能力力。当当用用户户在在输输入入数数据据时时发发生生错错误误,都都必必须须进进行行检检查查,即即使使发发现现了了非非常常严严重重的的错错误误,也也应应该该给给出出恰恰当当的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统分析 设计 面向 对象 实现 课件
限制150内