《软件工程教学课件》08-实现.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《软件工程教学课件》08-实现.pptx》由会员分享,可在线阅读,更多相关《《软件工程教学课件》08-实现.pptx(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大连理工大学软件学院软件工程2023/2/12大连理工大学软件学院2第第8章章 实现实现实现阶段的一个首要任务就是构造合适的程序架构以实现阶段的一个首要任务就是构造合适的程序架构以使得所有的用户需求能够在未来的系统中得到满足和使得所有的用户需求能够在未来的系统中得到满足和体现体现。从从设计到代码的转换过程不仅具有针对算法过程的实设计到代码的转换过程不仅具有针对算法过程的实现,同时还要考虑到每个具体项目的约束条件现,同时还要考虑到每个具体项目的约束条件。与实现相关的关键与实现相关的关键技术:技术:XML、持久化、软件函数库、持久化、软件函数库、构件构件、框架、领域特定语言(框架、领域特定语言(D
2、SL)、模型驱动架构)、模型驱动架构(MDA)、重构()、重构(refactoring)等。)等。非功能性需求的非功能性需求的实现实现由于非功能性需求涉及的范围广且类型不尽相同,由于非功能性需求涉及的范围广且类型不尽相同,因此需要在设计和实现中根据不同的要求区别对因此需要在设计和实现中根据不同的要求区别对待。待。硬件是提升性能的手段之一,但算法、资源利用硬件是提升性能的手段之一,但算法、资源利用情况等也需考虑和监控(必要时)。情况等也需考虑和监控(必要时)。质量方面(正确性)的需求:可测试性、程序结质量方面(正确性)的需求:可测试性、程序结构。构。安全方面的要求:传输安全性、数据安全性、操安全
3、方面的要求:传输安全性、数据安全性、操作安全性。(入侵与健壮性)作安全性。(入侵与健壮性)2023/2/12大连理工大学软件学院3分布式系统分布式系统分布系统分布系统中存在中存在多多个控制点个控制点,因为有多个,因为有多个子程序需要同时子程序需要同时工作,如操作系统中的进工作,如操作系统中的进程。程。进程间信息交换的方式和规则是信息领域进程间信息交换的方式和规则是信息领域中一个较为复杂的问题,解决的方法中一个较为复杂的问题,解决的方法与条与条件要求(关键区域)密切相关,如数据库件要求(关键区域)密切相关,如数据库的事务。的事务。实现要求:同构与异构、对象在网络中的实现要求:同构与异构、对象在网
4、络中的分布管理、同步调用与异步调用等。分布管理、同步调用与异步调用等。2023/2/12大连理工大学软件学院4同步与异步调用同步与异步调用同步调用具有的最大优点是所有的进程相互了解同步调用具有的最大优点是所有的进程相互了解各自在通信过程中所处的各自在通信过程中所处的状态状态同步调用缺点同步调用缺点是需要实现相对复杂的同步通信,是需要实现相对复杂的同步通信,由于发送方和接收方需要相互等待会使得两个进由于发送方和接收方需要相互等待会使得两个进程在总体上的执行速度变慢程在总体上的执行速度变慢。异步调用的执行速度通常是比较快的,因为发送异步调用的执行速度通常是比较快的,因为发送方和接收方可以互相独立的
5、工作方和接收方可以互相独立的工作。异步异步调用容易出问题的地方是当缓冲区满的情况,调用容易出问题的地方是当缓冲区满的情况,这时整个系统运行变慢或者信息这时整个系统运行变慢或者信息可生可生丢失。丢失。2023/2/12大连理工大学软件学院5死锁、竞争与活锁死锁、竞争与活锁死锁的产生、进程的竞争死锁的产生、进程的竞争活锁又活锁又被称为饿死(被称为饿死(starvation)解决的方法:调度解决的方法:调度问题,在问题,在公平性和合理性上做公平性和合理性上做出出折衷。折衷。2023/2/12大连理工大学软件学院6胖客户、瘦客户、三层架构胖客户、瘦客户、三层架构2023/2/12大连理工大学软件学院7
6、三层架构实现了视图、业务和数据的分离,三层架构实现了视图、业务和数据的分离,提升系提升系统可维护性统可维护性的同时也为的同时也为系统分布提供更好系统分布提供更好的的选择。选择。XMLXML是由是由W3C委员会定义的一种标准化语言,用来描述数委员会定义的一种标准化语言,用来描述数据模型和数据据模型和数据。2023/2/12大连理工大学软件学院8Storage Module49Udo Kelter50XML结构结构的描述:的描述:DTD(Data Type Definition)和)和XSD(XML Schema Definition)。如果如果XML文档对其标准的文档对其标准的DTD或或XSD进
7、行了说明并进行了约束,进行了说明并进行了约束,则称该文档为则称该文档为well formed,指定,指定了该了该XML文档的文档的有效性有效性。XML程序设计程序设计对于对于XML文档的存储和处理目前已经出现了很多文档的存储和处理目前已经出现了很多可用的软件包或系统,使得每种编程语言都具有可用的软件包或系统,使得每种编程语言都具有了处理了处理XML文档的能力文档的能力。XML的处理方式一般有两种:文档对象模型的处理方式一般有两种:文档对象模型(DOM)或用于)或用于XML的简单的简单API(SAX)。DOM是复杂对象处理的首选,比如当是复杂对象处理的首选,比如当XML比较比较复杂的时候,或者当
8、需要随机处理文档中数据的复杂的时候,或者当需要随机处理文档中数据的时候时候。SAX则是以流的方式从文档的开始通过每一节点则是以流的方式从文档的开始通过每一节点进行移动,以定位一个特定的节点。进行移动,以定位一个特定的节点。2023/2/12大连理工大学软件学院9程序库程序库对于大多数经常出现的问题对于大多数经常出现的问题,可以将常见,可以将常见的解决方法通过库函数的形式提取出来作的解决方法通过库函数的形式提取出来作为一种公共的资源共享为一种公共的资源共享。库库函数可以是免费或者收费函数可以是免费或者收费的的,应尽量应尽量选选取那些使用者较多的函数库,取那些使用者较多的函数库,因为存在因为存在的
9、的缺陷可能也要少些缺陷可能也要少些。在在对应用进行测试时,通常是在假设函数对应用进行测试时,通常是在假设函数库正确的基础上进行的,并没有对库函数库正确的基础上进行的,并没有对库函数直接进行测试的必要。直接进行测试的必要。2023/2/12大连理工大学软件学院10对于开发者来说,首先必须要明确是否存对于开发者来说,首先必须要明确是否存在能够满足任务的相关类库,然后再学习在能够满足任务的相关类库,然后再学习其如何使用,只有对相关的类库做到深入其如何使用,只有对相关的类库做到深入的理解,才能认识到类库的不足在哪里,的理解,才能认识到类库的不足在哪里,建立起一系列的开发动机来最终实现自己建立起一系列的
10、开发动机来最终实现自己的解决的解决方案方案:类库不够稳定类库不够稳定没有支持的保证没有支持的保证某重要某重要的子功能缺失或者不能简单的加入的子功能缺失或者不能简单的加入较高的购买价格或维护费用较高的购买价格或维护费用没有适合的商业使用没有适合的商业使用许可许可2023/2/12大连理工大学软件学院11有些简短的相似的命名中可能会在编码过有些简短的相似的命名中可能会在编码过程中引入一些问题程中引入一些问题,使用,使用中应引起中应引起注意。注意。类以及其子类中共同包含类以及其子类中共同包含的方法:的方法:drawRect(int x,int y,int w,int h):根据指定根据指定的点的点(
11、x,y)以及宽度以及宽度w和高和高h绘制矩形。绘制矩形。drawOval(int x,int y,int w,int h):根据矩形根据矩形绘制一个椭圆或圆,该矩形由与上述方法绘制一个椭圆或圆,该矩形由与上述方法中类似的形式指定。中类似的形式指定。drawString(String str,int x,int y):输出某个输出某个字符串,其开始位置以及该字符串的基线字符串,其开始位置以及该字符串的基线由点由点(x,y)指定。指定。2023/2/12大连理工大学软件学院12组件组件组件可以理解为一种特殊的对象,组件是对数据组件可以理解为一种特殊的对象,组件是对数据和方法的简单封装和方法的简单封
12、装。使用使用组件可以实现拖放式编程、快速的属性处理组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计以及真正的面向对象的设计。组件组件是对类库思想的进一步提升,不是仅提供单是对类库思想的进一步提升,不是仅提供单一类的功能,而是将某个子应用封装提供使用一类的功能,而是将某个子应用封装提供使用。组件组件可以对接口进行实现,从而提供实现了这些可以对接口进行实现,从而提供实现了这些接口的接口的一类对象。一类对象。使用现成的组件来开发应用程序时,组件一般可使用现成的组件来开发应用程序时,组件一般可以工作在两种模式下:设计时态和运行时态。以工作在两种模式下:设计时态和运行时态。2023/2/1
13、2大连理工大学软件学院13在设计时态下,组件显示在窗体编辑器下的一个在设计时态下,组件显示在窗体编辑器下的一个窗体中。设计时态下组件的方法不能被调用,组窗体中。设计时态下组件的方法不能被调用,组件不能与最终用户直接进行交互操作,也不需要件不能与最终用户直接进行交互操作,也不需要实现组件的全部功能。实现组件的全部功能。在运行状态下,组件工作在一个已经实际运行的在运行状态下,组件工作在一个已经实际运行的应用程序中。组件必须能够正确地将自身表示出应用程序中。组件必须能够正确地将自身表示出来,它需要对方法的调用进行处理并实现与其他来,它需要对方法的调用进行处理并实现与其他组件之间有效的协同工作。组件之
14、间有效的协同工作。设计时态下所有的组件在窗体中都是可见的,但设计时态下所有的组件在窗体中都是可见的,但在运行时态下不一定可见。如在运行时态下不一定可见。如Swing中的中的JTable、JLabel等在运行时态下就可以设置为不可见,但等在运行时态下就可以设置为不可见,但它们均完成了重要的功能。它们均完成了重要的功能。2023/2/12大连理工大学软件学院14组件的开发组件的开发自行自行开发组件与使用组件进行可视化程序开发存开发组件与使用组件进行可视化程序开发存在着极大的不同,要求程序员熟知原有的类库结在着极大的不同,要求程序员熟知原有的类库结构,精通面向对象程序设计。构,精通面向对象程序设计。
15、设计组件是一项艰苦的工作。对于组件的开发者,设计组件是一项艰苦的工作。对于组件的开发者,组件是纯粹的代码组件是纯粹的代码。组件组件的开发一般不是可视化的开发过程,而是用的开发一般不是可视化的开发过程,而是用C+等工具严格编制代码的工作等工具严格编制代码的工作。创建创建组件的最大意义在于封装重复的工作,其次组件的最大意义在于封装重复的工作,其次是可以扩充现有组件的功能。是可以扩充现有组件的功能。2023/2/12大连理工大学软件学院15组件的使用组件的使用组件的使用是一个相对组件的使用是一个相对轻松的工作,除了可以轻松的工作,除了可以使用组件提供的大量功使用组件提供的大量功能外,还可以对它们进能
16、外,还可以对它们进行定制行定制。组件组件的定制通常可以通的定制通常可以通过配置文件的形式进行过配置文件的形式进行,常通过常通过一一个配置个配置界面界面,通过通过交互的方式对组件交互的方式对组件中需要改动的属性进行中需要改动的属性进行指定。指定。2023/2/12大连理工大学软件学院16Java bean组件组件在在Java领域中也存在具体的组件支持机制,即所领域中也存在具体的组件支持机制,即所谓的谓的Java Bean。Java Bean是是一种特殊的类一种特殊的类,在,在组织上要遵照一定组织上要遵照一定的设计规则,以的设计规则,以能够进行能够进行配置以及较容易的与所配置以及较容易的与所处环境
17、的连接,类似的还有微软的处环境的连接,类似的还有微软的ActiveX等等。组件组件与系统以及组件之间的通讯一般是按照观察与系统以及组件之间的通讯一般是按照观察者模式的方式进行组织的者模式的方式进行组织的。Java Bean必须必须存在一个默认的构造函数,即无参存在一个默认的构造函数,即无参数的构造函数。对于每个含有的实例变量,必须数的构造函数。对于每个含有的实例变量,必须存在其简单的存在其简单的get和与其类型相符的和与其类型相符的set方法。方法。2023/2/12大连理工大学软件学院17该类必须实现接口该类必须实现接口Serializable,该接口没有任何,该接口没有任何函数。一般只能由
18、那些需要对数据进行序列化的函数。一般只能由那些需要对数据进行序列化的类来使用,这样的类通常要求其中的实例变量和类来使用,这样的类通常要求其中的实例变量和类变量(静态变量)的类型也必须实现类变量(静态变量)的类型也必须实现Serialization接口接口。按照这些要求设计的一个按照这些要求设计的一个Java Bean,如果具有如果具有图图形化的描述能力,可以直接在形化的描述能力,可以直接在GUI设计中作为一设计中作为一个可视的组件进行使用个可视的组件进行使用。另外另外,Java允许允许Java Bean以一种十分方便的方式以一种十分方便的方式对类的对象进行存储和载入对类的对象进行存储和载入。2
19、023/2/12大连理工大学软件学院18对应代码对应代码框架框架快速、高效和正确的将很多原始的工作积累合成到一快速、高效和正确的将很多原始的工作积累合成到一个更大粒度的半成品式的系统个更大粒度的半成品式的系统中中程序员程序员只需对它进行必要的参数定制就能够将其打造只需对它进行必要的参数定制就能够将其打造成符合用户需求的成符合用户需求的真实系统真实系统框架提供一个通用平台,通过接口或者类继承的方式框架提供一个通用平台,通过接口或者类继承的方式嵌入业务类,从而达到系统定制的目的。嵌入业务类,从而达到系统定制的目的。组件与框架最主要的差别就是控制权在框架中要进行组件与框架最主要的差别就是控制权在框架
20、中要进行转移,也就是说框架中的类会去调用那些由用户补充转移,也就是说框架中的类会去调用那些由用户补充实现的对象中的方法,而不会反过来,但这在组件中实现的对象中的方法,而不会反过来,但这在组件中是会发生的是会发生的反射。反射。2023/2/12大连理工大学软件学院19Java中的框架中的框架考虑一考虑一个使用树状结个使用树状结构描述的项目构描述的项目信息信息图中图中关于项目、子项关于项目、子项目以及前置项目等信目以及前置项目等信息以层次结构进行了息以层次结构进行了展示展示为了为了能够使用树的框能够使用树的框架,在架,在java中需要一中需要一个类对接口个类对接口TreeModel进行进行实现实现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程教学课件 软件工程 教学 课件 08 实现
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内