软件开发标准列表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
◆软件设计原则
●开放-封闭原则(OCP)
Open-Closed Principle原则讲的是:一个软件实体应当对扩展开放,对修改关闭。
通过扩展已有软件系统,可以提供新的行为,以满足对软件的新的需求,使变化中的软件有一定的适应性和灵活性。
已有软件模块,特别是最重要的抽象层模块不能再修改,这使变化中的软件系统有一定的稳定性和延续性。
用面向对象的语言来讲,不允许更改的是系统的抽象层,而允许更改的是系统的实现层。
●里氏代换原则(LSP)
Liskov Substitution Principle(里氏代换原则):子类型(subtype)必须能够替换它们的基类型。反过来基类无法替换子类特征。意思是子类具有基类的所有特性,也有着基类无法比拟、独特的属性信息。
●依赖倒置原则(DIP)
依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。
依赖倒置原则要求客户端依赖于抽象耦合。原则表述:抽象不应当依赖于细节;细节应当依赖于抽象;要针对接口编程,不针对实现编程。
使用传统过程化程序设计所创建的依赖关系,策略依赖于细节,这是错误的,因为策略受到细节改变的影响。依赖倒置原则使细节和策略都依赖于抽象,抽象的稳定性决定了系统的稳定性。
●接口隔离原则(ISP)
接口隔离原则(Interface Segregation Principle)讲的是:使用多个专门的接口比使用单一的总接口总要好。换而言之,从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小接口上的。过于臃肿的接口是对接口的污染。不应该强迫客户依赖于它们不用的方法。实现方法是:使用委托分离接口;使用多重继承分离接口。
●合成/聚合复用原则(CARP)
合成/聚合复用原则(Composite/Aggregate Reuse Principle或CARP)经常又叫做合成复用原则(Composite Reuse Principle或CRP),就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有功能的目的。简而言之,要尽量使用合成/聚合,尽量不要使用继承。
●迪米特法则(LoD)
迪米特法则(Law of Demeter或简写LoD)又叫最少知识原则(Least Knowledge Principle或简写为LKP),也就是说,一个对象应当对其它对象有尽可能少的了解。每一个软件单位对其它的单位都只
有最少的知识,而且局限于那些与本单位密切相关的软件单位。
◆软件架构设计
●SOA(Service-oriented architecture,面向服务架构)
SOA被誉为下一代Web服务的基础架构,是面向服务的一种分布式软件架构。它是一种设计模式和设计方法,并不是一种具体的技术。SOA可以根据需求,通过网络对松散耦合的粗粒度,应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被调用,从而有效控制系统中与软件代理交互的人为依赖性。其主要结构图如下所示:
SOA架构比传统的三层结构多了一层Service,表示服务层,这就是现在流行的SOA四层结构,通过服务为应用程序提供实现方法。SOA的基本特性如下:
✓可从企业外部访问
✓随时可以调用
✓松散耦合
✓可重用的服务
✓服务接口设计管理
✓标准化的服务接口
✓支持各种消息模式
✓精确定义的服务契约
●C/S(Client/Server,客户机/服务器架构)
(客户机/服务器) 架构通过将任务合理分配到Client端和Server 端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。客户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。开发比较容易,操作简便,但应用程序的升级和客户端程序的维护较为困难。
●B/S(Browser/Server ,浏览器/服务器架构)
(浏览器/服务器) 架构是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过浏览器实现。客户端基本上没有专门的应用程序,应用程序基本上都在服务器端。由于客户端没有程序,应用程序的升级和维护都可以在服务器
端完成,升级维护方便。由于客户端使用浏览器,使得用户界面“丰富多彩”,但数据的打印输出等功能受到了限制。为了克服这个缺点,一般把利用浏览器方式实现困难的功能,单独开发成可以发布的控件,在客户端利用程序调用来完成。
●F/S(File/Server ,文件/服务器架构)
原始服务体系,不推荐使用。
◆中间件
●DDS
DDS概述
消息中间件包括点到点、消息队列和发布/订阅三种工作模式。
点到点摸式具有很强的时间和空间耦合性,使得通信灵活性受到很大限制。消息队列模式通过一个消息队列来传递消息,解决了通信双方时间和空间松耦合的问题,但不能实现消息消费者通信的异步,并且还存在服务器瓶颈和单点失效的问题,可靠性得不到保障。发布/订阅模型中发布者和订阅者通过主题相关联,双方不必知道对方在何处。也不必同时在线,实现了通信双方时间、空间和数据通信的多维松耦合。
DDS规范
DDS(DataDistribution Service数据分发服务)是对象管理组织OMG的有关分布式实时系统中数据发布的一个较新的规范(2004
年12月发布1.0版,2007年1月发布1.2版)。DDS规范采用了发布/订阅体系结构,对实时性要求提供更好的支持。DDS是以数据为中心的发布/订阅通信模型,针对强实时系统进行了优化,提供低延迟、高吞吐量、对实时性能的控制级别,从而使DDS能够广泛应用于航空、国防、分布仿真、工业自动化、分布控制、机器人、电及网络化的消费电器等多个领域。
DDS标准规范了实时分布式系统中数据发布、传递和接收的接口和行为,定义了以数据为中心的发布/订阅机制。DDS规范使用UML语言描述服务,提供了一个与平台无关的数据模型(这个模型能够映射到各种具体的平台和编程语言),使得实时分布式系统中数据能够高效、可靠地发布,它主要应用在要求高性能、可预见性和对资源有效使用的关键任务领域。
DDS规范列举并正式定义了一整套全面的QoS策略,能利用QoS进行系统控制。每一个DCPS实体都有自身的QoS策略,而且在每一对发布者和订阅者之间又都可以建立独立的QoS协定。这使得DDS可以很好地配置和利用系统资源,协调可预言性与执行效率间的平衡,并能支持复杂多变的数据流需求。
DDS的通信模型
应用程序在处理以数据为中心的分布式系统时,DDS标准中间件可以帮助用户使用更加简单的编程模型,不需要开发特定的事件/消息机制或手动创建封装的CORBA对象来获取远程数据。应用程序可以使用一个简单的主题(Topic)名称来指定它想要读或