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



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 09 实现 技术

链接地址:https://www.desk33.com/p-381513.html