软件开发标准列表

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)名称来指定它想要读或
写的数据,使用以数据为中心的API来直接读写数据。

DDS中以数据为中心的发布/订阅(DCPS)模型构建了一个共享的“全局数据空间”的概念,所有的数据对象都存在于此空间中,分布式节点通过简单的读、写操作便可以访问这些数据对象。

实际上,数据并非存在于所有计算机的地址空间中,它仅存在于那些对它感兴趣的应用程序的本地缓存中,而这一点正是发布/订阅模型的关键所在。

DDS的QoS策略
较好的QoS控制策略可能是DDS标准最重要的特征。

QoS在DDS规范中得到了普遍而深入的使用,用于配置系统以及在每对发布者/订阅者之间建立起独立的QoS协定,而QoS协定能够提供实时系统所要求的性能、可预测性和资源可控性,并且能够保证发布/订阅模型的模块性、可量测性和鲁棒性等。

因此,DDS能够满足非常复杂和灵活的数据流要求。

DDS特点
DDS是针对网络编程的一个公开标准
是一套支持出版/订阅设计思想的应用程序接口(API)
体现了以数据为中心进行结构设计的方法学
专为高性能的实时系统设计
可以大大降低用户成本
用户可专注于自己的设计,不需要自己设计系统中所有的组件;降低集成成本,减少首次设计时间和后继测试等时间开销
采用公开标准,减少了被供应商特定技术禁锢的风险
HLA/RTI
分布式仿真作为系统仿真的一个重要分支,经过SIMNET、DIS、ALSP等阶段,目前已发展到以高层体系结构HLA(High Level Architecture)为核心的一系列技术。

HLA的提出和发展集中体现了现代仿真应用的这些特点和发展规律。

HLA是将仿真功能与通用的支撑系统相分离的一种体系结构,具有开放性、灵活性和适应性。

它同时支持对不同仿真应用的重用,支持用户分布、协同地开发复杂仿真应用系统,并最终降低新应用系统的开发成本和时间。

HLA主要考虑在联邦成员的基础上如何进行联邦集成,即如何设计联邦成员间的交互以达到仿真的目的,它不考虑如何由对象构建成员,而是在假设已有成员的情况下考虑如何构建联邦,这也是把它称为“高级体系结构”的一个重要原因。

HLA的基本思想就是采用面向对象的方法来设计、开发和实现仿真系统的对象模型OM(Object Model),以获得仿真联邦的高层次的互操作和重用。

在HLA中,互操作定义为一个成员能向其他成员提供服务和接受其他成员的服务。

HLA本身并不能完全实现互操作,但它定义了实现联邦成员之间互操作的体系结构和机制。

除了方便成员间的互操作外,HLA还向联邦成员提供灵活的仿真框架。

作为一个开放的、支持面向对象的体系结构,HLA最显著的特点就是通过提供通用的、相对独立的支撑服务程序(RTI),将应用层同底层支撑环境分离,即将仿真功能实现、仿真运行管理和底层通信传输三者分开,使仿真工作者只要集中于仿真功能的开发,而不必再涉及有关网络通信和仿真管理等方面的实现细节。

同时,HLA可实现应用系统的即插即用,易于新的仿真系统的集成和管理,并能根据不同的用户需求和不同的应用目的,实现联邦的快速组合和重新配置,保证联邦范围内的互操作和重用。

TENA(试验与训练使能体系结构)
TENA中间件是一个支持建立可互操作的实时分布式应用的分布对象计算中间件。

是美国国防部正在开发的试验与训练领域的公共体系结构。

美军联合任务环境试验能力(JMETC)是一种真实的、虚拟的和构造的(LVC)分布式试验能力, 它的开发是用来支持相关部门以论证在客户特定的联合任务环境(JME)中的网络完备关键性能参数(KPP)。

JMETC不仅可为部队提供分布式的试验能力和仿真,还可为工业提供试验资源。

它采用了能较好支持JMETC事件的试验与训练使能体系结构(TENA)。

TENA提供了促进靶场测控系统间互操作性所需要的体系结构和软件能力,在重要的实地演习和许多分布式的试验事件都得以使用,为JMETC提供了一种已被国防部接受的技术。

TENA中间件所要表达的实质问题是靶场信息处理系统相互之问的互操作问题。

TENA中间件的目的就是支持可互操作的、实时的、面向对象的可靠系统应用的建立。

◆操作系统环境
●Windows
由微软公司所推出的操作系统。

●Linux
Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。

Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

●Unix
UNIX操作系统(UNIX),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。

●Vxworks
VxWorks 是美国 Wind River System 公司(以下简称风河公司,即 WRS 公司)推出的一个实时操作系统。

Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、仿真环境和工具。

◆数据库
●Oracle
Oracle为甲骨文公司所推出的数据库产品。

●Sql server
SQL Server 是一个关系数据库管理系统。

它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的数据库产品。

●DB2
DB2是IBM出口的一系列关系型数据库管理系统,分别在不同的操作系统平台上服务。

虽然DB2产品是基于UNIX的系统和个人计算机操作系统,在基于UNIX系统和微软在windows系统下的Access方面,DB2追寻了ORACLE的数据库产品。

◆界面开发
●Qt
Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。

它提供给应用程序开发者建立艺术级的图形用户界面
所需的所有功能。

Qt很容易扩展,并且允许真正地组件编程。

基本上,Qt 同X Window 上的Motif,Openwin,GTK 等图形界面库和Windows 平台上的MFC,OWL,VCL,ATL 是同类型的东西。

●Motif
Motif 最初是由OSF(开放基金协会)开发的一个工业标准的
GUI(图形用户接口)。

1996年,OSF 与X/Open 合并为Open Group,1997年初,X 联盟结束,并将其归属的项目移交给Open Group。

Open Group 继续开发和支持X窗口系统,Motif,CDE,和其他技术。

2000年5月15日,Open Group 使用公共许可证向开放源代码团体发布了Motif 的源代码。

在开放系统(如Linux)上,可以使用免费的Motif。

Motif 最先实现并运行于支持X窗口系统上,它是UNIX系统的主要用户接口。

目前已经应用于超过200种硬件和软件平台。

Motif GUI Toolkit推动了异种机和网络环境下的应用开发,各种机器包括便携机、PC、工作站、超级计算机都得益于Motif 环境下的应用程序一致的行为和视感。

用Motif GUI 开发的应用软件具有高度的可移植性、可交互性、以及可伸缩性。

●Gtk
GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包。

最初是为GIMP写的,已成为一个功能强大、设计灵活的一个通用图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一。

并且,GTK+也有Windows版本和Mac OS X版。

●Mfc
MFC(Microsoft Foundation Classes),是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

●Owl
OWL(Web Ontology Language)是W3C开发的一种网络本体语言,用于对本体进行语义描述。

由于OWL是针对各方面的需求在DAML+0IL 的基础上改进而开发的,所以一方面要保持对
DAML+0IL/RDFS的兼容性,另一方面又要保证更加强大的语义表达能力,同时还要保证描述逻辑(DL,Description Logic)的可判定推理,因此,W3C的设计人员针对各类特征的需求制定了三种相应的OWL的子语言,即OWL Lite、OWL DL和OWL Full,而且各子语言的表达能力递增。

●Vcl
Visual Component Library的缩写(可视组件库)VCL是Visual Component Library的缩写,即可视组件库,它是Delphi,C++Builder 等编程语言的基本类库。

它拥有封装纯粹,可扩展性强,操作方便等特点。

如果是一个非常繁杂的Win32API,在经过VCL封装后,使用也是非常简便的。

VCL支持类的嵌套,过程及函数的嵌套,如果你想在一个过程里声明一个类,或是声明另一个过程,那是完全可行的。

过程内部的过程或是函数被称为局部过程或是局部函数。

VCL对事件的支持及封装也是非常完整的,通过事件对象的声明,可以将任意的外部事件源绑定到VCL控件。

在Delphi的VCL中,还提供了非常多的伪API,它们可以对软件开发提供进一步的支持。

VCL的可扩展性使得编写控件变得非常简单,并且可以任意导入导出ActiveX控件。

同时,它也是平台无关的,可以在
windows,linux,MaxOS或是其他操作系统下直接使用。

Atl
ATL,Active Template Library活动模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。

通过活动模板库,可以建立COM组件,然后通过ASP页面中的脚本对COM对象进行调用。

这种COM组件可以包含属性页、对话框等等控件。

相关文档
最新文档