软件架构复用相关知识总结

一、软件产品线

        软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务的具体需求,是以规定的方式用公共的核心资产集成开发出来的。即围绕核心资产库进行管理、复用、集成新的系统。采用产品线能够提高生产效率,降低生产成本和缩短上市时间。

        核心资产库包括:软件架构及其和剪裁的元素。包括:设计方案及其文档、用户手册、项目管理的历史记录、软件测试计划和测试用例。

        双生命周期模型:

         软件产品线的建立方式:

                1. 将现有产品演化为产品线

                2. 用软件产品替代现有产品集

                3. 全新软件产品线的演化

                4. 全新软件产品线的开发

演化方式革命方式
基于现有产品基于现有产品架构设计产品线的架构,经演化现有构件,开发产品线构建核心资源的开发基于现有的需求和可预测的、将来需求的超集
全新产品线产品线核心资产随产品新成员的需求而演化开发满足所有预期产品线成员的需求和核心资源

二、构件与中间件

        构件(组件)

        构件是一个自包容、可复用的程序集。构件整体向外提供统一的访问接口,构件外部只能通过接口来访问。

        构件组装模型的开发过程:

                1. 设计构件组装;2. 建立构件库;3. 构件应用软件;4. 测试与发布

        构件组装模型的优点

                1. 构件的自包容性让系统的扩展变得更加容易

                2. 设计良好的构件更容易被重用,降低软件开发成本

                3. 构件的粒度较整个系统较,安排开发任务更灵活

        构件组装模型的缺点

                1. 对构件设计需要经验丰富的架构师,设计不良的构件难以实现构件优点,降低重用度

                2. 考虑软件重用度时,可能会牺牲其他方面,如性能等

                3. 使用构件时,需要开发人员熟练的掌握构件,增加学习成本

                4. 构件的质量会影响系统的质量,第三方的构件质量难以控制

        中间件:

                中间件作为应用软件与各种操作系统之间使用的标准化编程接口和协议,可以起到承上        

        启下的作用,使应用软件的开发相对独立于计算机硬件和操作系统,并能在不同的系统上运

        行,实现相同的应用功能。

                构件既是一类构件,也是一类系统软件。构件处在操作系统、网络和数据库之上,应用

        软件之下。

                中间件的分类:

                        ​​​​​​​1. 通信处理(消息)中间件

                                可靠的、高效的、实时的跨平台通信(elink、MQ、TongLINK)

                        2. 事务处理(交易)中间件

                                事物分发、负载均衡(Texedo、Seta)

                        3. 数据存储管理中间件:

                                为虚拟缓冲存取、格式转换、解压等带来方便(JDBC)

                        4. Web服务器中间件:

                                有负载均衡、缓存、安全性等功能

                        5. 安全中间件:

                                加密、认证、防火墙

                        6. 跨平台和构件中间件

                                解决跨平台问题(CORBA、JavaBeans、COM)

                        7. 专用平台中间件:

                                为特定应用领域设计领域参考模型,建立相应架构

                        8. 网络中间件:

                               网络管理、介入、网络测试、虚拟社区、虚拟缓冲等

三、软件架构复用

        软件复用是指系统化的软件开发过程:开发一组基本的软件构造模块,以覆盖不同的需求/体系结构之间的相似性,从而提高系统开发的效率、质量和性能。

        软件复用是一种系统化的软件开发过程,通过识别、开发、分类、获取和修改软件实体,以便在不同的软件开发过程中重复使用它们。

        软件复用的分类:

                机会复用:开发过程中,只要发现有可疑复用的资产,就对其进行复用

                系统复用:在发开之前,就进行规划,以决定哪些需要复用

        软件复用的纬度:

                水平复用:通用领取

                垂直复用:特定领域

        软件复用的目的:减少开发工作、减少开发时间以及降低开发成本,提高生产力

        软件架构复用的基本过程:

                1. . 构造/获取可复用的软件资产:构造恰当的、可服用的资产。这些资产必须是可靠

                      的、可被广泛使用过的、易理解和修改的。(理想情况下是直接复用构件库中现成

                      的构件)

                2. 管理可复用资产:最重要的是建立构件库,对可复用构建进行存储和管理。

                        1. 构件的分类

                        2. 构件的检索:

                                基于关键字的检索:树形、有向无环图

                                刻面检索发:利用facet描述构件执行的功能、被操作的数据、构件应用的语

                                                        境或任意其他特征

                                超文本检索法:按照人的联想思维方式任意跳转到包含相关概念或构件的文档

                3. 使用可复用资产 :通过获取需求,检索复用资产库,获取可复用资产,形成最终系

                     统。

        构件组装:

                  1. 顺序组装:按顺序调用已存在的构件,构造一个新的构件

                2. 层次组装:一个构件直接调用另一个构件所提供的服务,被调用的构件提供的接口需

                                        要与调用构件的请求接口兼容。

                3.  叠加组装:两个或两个以上构件放在一起来创建一个新的构件,新的构件合并了原

                                        构件的所有功能

四、基于构架的软件工程(CBSE)

        定义:CBSE强调通过可复用的构件设计与构造软件系统的软件复用途径。强调购买而不是重新构造。(瀑布模型 + 基于构件的软件模型)

        构件的定义:构件是一个独立的软件单元,可以与其他构件构成一个软件系统。

        CBSE的特性:
                1. 可组装性所有外部交互必须通过公开定义的接口进行

                2. 可部署性必须能够作为一个独立实体在构件平台上运行,构件是二进制形式的,无

                                        需在部署前编译

                3. 文档化:构件必须是完全文档化的,用户根据文档来判断构件是否满足需求

                4. 独立性:构件是独立的,可以在无其他特殊构件的情况下组装和部署

                5. 标准化:必须是符合某种标准化的构件模型

        CBSE过程:

                1.  系统需求概述;2. 识别候选构件;3. 根据发现的构件修改需求;4. 体系结构设计;5. 构件定制和适配;6. 组装构件,创建系统

        CBSE与传统开发过程的不同:

                  1. CBSE早期需要完整需求

                2. 在过程早起阶段根据可利用的构件细化话和修改需求

                3. 在体系结构设计完成后,会有一个进一步的对构件搜索及设计精化的活动

                4. 开发就是将已经找到的构件集合组装的过程

        构件不兼容的情况:

                1. 参数不兼容:接口名字相同,但参数的类型或个数不相同

                2. 操作不兼容:提供接口和请求接口的操作名不同

                3. 操作不完备:一个构件的提供接口是另一个构件请求接口的一个子集,或者相反

        可以采用适配器构件来解决上述不兼容的情况。

五、常见的构件标准

        CORBA标准:

                公共对象请求代理架构(CORBA)主要分为三个层次:对象请求代理公共对象服务

        和公共设施。最底层的对象请求代理(ORB)规定了分部对象的定义和语言映射实现对象

        间的通信和互操作。

                伺服对象(Servant):CORBA对象的真正实现,负责完成用客户端的请求

                对象适配器(POA):用于屏蔽ORB内核的实现细节,对服务器一下的实现着提供抽象

                                                       接口

                对象请求代理(ORB):解释调用并负责查找实现该请求的对象 

        J2EE标准:

                J2EE:基于Java开发语言面向企业发布的应用规范。同时支持远程方法调用(RMI)

                            互联网内部对象请求代理协议(IIOP)

                J2EE包括:Java Servlet、JSP、EJB

                EJB包括的三种bean:

                        1. 会话Bean(Session Bean):实现业务逻辑,负责完成服务器和客户端的交互

                        2. 实体Bean(Entity Bean):实现对象关系映射,简化数据库的开发

                        3. 消息驱动Bean(Message Bean):处理并发与异常访问

        DNA2000标准:

                由微软在Windows 2000中提出,包括DCOM/COM/COM+等

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Andrew-ZhangJinyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值