1. 构件的基本特征有哪些
  2. 模块、重用、接口、抽象的概念是什么
  3. 构件的环境依赖和设计有什么要求
  4. 构件和接口的标准化和规范化需要努力的方向
  5. 构件的布线标准是什么
  6. 对象调用和过程调用的区别
  7. 软件构件的表现模型
  8. 构件框架的体系结构简介
  9. 语境相关组合构件框架简介
  10. 构件开发该从什么地方下手
  11. 构件的组装策略有哪些

1.构件的基本特征有哪些

答:构件具有的特征有:独立部署单元、作为第三方的组装单元、没有可见状态。对象的特性是:一个实例单元具有唯一的标志 、可能具有状态且外部可见、封装了自己的状态和行为。通过这些特征,我们知道构件的概念是超越具体对象层次的,但是构件显然是通过对象来实现的,对象是类的实例化。由于一个类只能属于一个构件,类之间又存在着各种依赖关系,当存在依赖关系的类分属于不同构件的时候,构件之间就存在着依赖关系,为了解决这种依赖关系的问题,我们就需要使用共同的规约。共同规约构成了构件间达成共识的基础,其好坏仍然是许多学派争论的焦点。

2.模块、重用、接口、抽象的概念是什么

答:模块本身可以作为一个简单的构件,在某些情况下,模块是具有状态的不适合作为构件。模块化是构件技术产生的前提。软件构件是一种组装单元,具有规范的接口规约和显式的语境依赖。软件构件可以被独立部署并由第三方任意组装。抽象分为黑盒抽象和白盒抽象,白盒抽象是对使用者除了提供接口,内部的细节是完全可见的,如开源框架;黑盒抽象是对使用者只提供接口,不提供任何的实现细节,如第三方接口。接口是一个已命名的一组操作的集合。

3.构件的环境依赖和设计有什么要求

答:构件的环境必须明确说明,详细描述对部署环境的要求。因为计算机操作系统软硬件环境的不同,构件体系大体上分为两大阵营,第一个阵营是CORBA+Java体系,第二阵营是微软体系。

构件如果按照其概念应该会有很弱的环境依赖性,实际上构件的选取非常依赖于目标机器的运行环境,如java虚拟机、com平台等。因为这种情况存在,构件设计者通常提倡最大化重用的思想,只实现构件的核心功能,复用其他所有的一切。这虽然很不错,也存在一个缺点,就是构件对环境依赖的爆炸性增长,最后导致降低了构件的可用性。因此构件在设计的时候,要平衡重用性和可用性。

4.构件和接口的标准化和规范化需要努力的方向

答: 构件和接口的稳定是非常重要的,稳定性容易使接口和构件被推广。如果构件和接口的环境依赖可以被广泛支持,那么环境依赖就不是问题。构件和接口在通用市场和专业市场的标准化与规范化都是非常艰难的,通用市场的问题在于牵扯的人太多了,专业市场在于其发展变化在非稳定成熟阶段引起接口的剧烈变化和演化。

标准的构件体系标准在被相关的工业界支持的情况下,构件技术最为成功。

5.构件的布线标准是什么

答:布线就是连接电子构件。目前布线的标准主要来自于操作系统的进程间通信。IPC机制进程模型中,每一个进程都产生一个幻象,让每个进程看上去就像在一个共享物理主机上拥有单独的虚拟机。RPC机制是在本地调用者和远程调用者两端都有指代,调用者使用严格的本地调用约定,实际却调用了一个本地指代来串行化参数,将参数发送到远端,远端上另一个指代接收参数,解析后调用真正的被调用者,被调用者也遵循本地调用约定,这样也解决了格式差异的问题。分布式计算环境是OSF的一个标准,在跨越异构平台上实现RPC机制的最重要的服务,在另一个极端,轻量的RPC变化能被用来处理单机上的IPC问题。接口定义语言保证在不同环境下过程调用语义的一致性,每个可被远程调用的过程都指定了参数的数目、传递模式、类型、可能的返回值类型。

过程调用和其二进制调用约定提供了一个良好的布线标准。

6.对象调用和过程调用的区别

答:从表现形式上,对象调用是调用对象的方法;过程调用则是调用预先定义的过程,调用本身可能和过程的定义语言是有区别的。

接口的命名和定位服务没有完全统一的方式,COM采取的是UUID的方式,Java完全依赖由内嵌的命名包建立唯一的名字路径。过程调用则采用IPC机制、RPC机制、接口定义语言(IDL)。

7.软件构件的表现模型

答:软件构件的第一个实用方法是复合文档模型。复合文档模型对用户来时,模型中构件及其合成有非常直观的表示形式。复合文档进一步发展滞后,任意的容器可以成为控件,最大的变化是构件可以同时是文档容器和服务器,同时复合文档还可以嵌入到其他复合文档中。

8.构件框架的体系结构简介

答:系统体系结构是任何大规模软件技术的关键基础,在基于构件的系统中起着至关重要的作用。构件体系结构的核心包括:构件和外部环境的交互、构件的角色、标准化工具的界面、对最终用户和部署人员的用户界面等。

体系结构是一个系统的整体视图,定义了总体的不变性。体系结构为所有涉及的机制规定了恰当的框架,限制自由度,控制变化性并支持协作。体系结构包括所有支持独立使用机制进行互操作的策略决策。策略决策包括构件的角色。体系结构需要优先考虑系统的层次功能和性能指导,后考虑基于大体上整体功能、性能、可靠性、安全性的细节决策。

在概念层上换分层次、标志构件、分离关注点的作用是显而易见的。在体系结构中,概念层的存在是划分包含与使用的,特别是在需求层面上。

构件系统架构存在很多特性。构件系统体系结构由一组平台决策、一组构件框架、构件框架之间互操作设计组成。构件框架是一种专用的体系结构,也是一组固定作用于构件层次机制的策略。概念框架的互操作设计包括系统体系机构连接的所有框架的互操作规则。构件是一组通常需要同时部署的原子构件。一个原子构件是一个模块和一组资源。模块是一组类和可能的面向对象的结构体。资源是一个类型化项的固定集合。

构件体系结构呈现出分层的结构是非常有表要的,垂直分层可以有助于抽象和提高应用相关的性质,水平分层有助于增加结构相关性削减性能和资源的相关性。

中间件是一个软件集合的名字,位于操作系统和高层分布式编程平台之间,有时分为面向消息的中间件和面向对象的中间件。大多数中间件都是这两种类型的混合体。

生成式编程致力于通过转换的方法来构造软件,这种方法也可以用于生产构件和增强由构件组装的系统。当目标是生产规模较大的构件或者生产潜在数目较大的相关构件时,这个方法特别有用。早生成时需要精确控制时间的构件边界,包括提供接口和需求接口,还有构件之间的静态依赖。

9.语境相关组合构件框架简介

答:构件创建为构件实例创建环境条件、规定了对象实例间的交互。构件框架关键性的贡献在于体系结构准则的部分强制要求。在构件框架的控制下,通过强制构件实例执行某种任务,构件框架能够强制某些策略执行。这样可以排除一类由于操作或竞争导致的错误。

第一个对语境相关组合提供商业支持的也许是COM的“套间”模型。COM+源于COM“套间”和MTS语境是一种基于语境相关的组合构件框架。COM“套间”使用线程模型来分离对象,MTS语境通过事务域分离对象。跨越语境边界的调用被拦截,然后根据语境属性被预处理、被置后处理、被拒绝。

EJB为EJB实例提供了容器。EJB容器在MTS语境的基础上被模式化,允许类请求进行明确的事务控制。EJB容器支持会话Bean和实体Bean等吹就对象,改进了容器管理的持久性和关系,增加了消息驱动的Bean类型支持。

CORBA构件模型(CCM)是建立在EJB的概念上,除了会话构件和实体构件外,还支持过程构件。CCM的会话构件相对EJB的是有状态的Bean,无状态的Bean在CCM中被称为服务构件,一次调用中过程构件会销毁,服务构件会保持。

CLR语境的内部设施也许是第一个尝试为语境相关组件提供真正的可扩展设施的主流结构。当构造一个新的语境时,CLR提供一个一次性的机会在语境边界上设置属性。CLR对象有四种类型:值类型、传值类型、传引用类型、语境约束类型。参考SOAP

元组是那些保存原子数据的空间。对象空间和元组对语境相关组装的求精有潜在的好处,即数据驱动的组装。目录假定了弱一致性模型,其条目很少被复制,即便临时更新导致不一致也是可以忍受的,条目改变的频率远远低于读取的频率。这种概念被应用到DNS、LDAP等。

10.构件开发该从什么地方下手

答:面向构件的编程方法学主要考虑如何用一个系统化的方式来进行构件系统的划分、构件的交互和建造。编程的环境和语言主要考虑如何表现和支持特定的编程方法学。

面向构件的编程关注于如何支持建立面向构件的解决方案。面向构件编程需要以下基本支持:多态性、模块封装性、后期的绑定和装载、安全性。目前面向构件编程缺少完善的方法学支持,现在的构件开发多是单构件开发的方式。即便是单构件开发,仍然面临以下的困难:异步问题、多线程、“生活”在没有实现继承的状态下、坚壳类、语言支持、调用者封装。坚壳类是保留接口的抽象类或接口类,由使用者提供具体的实现方式。

环境和目标框架限定了构件的实际运行的环境。

工具和编程语言的选择对构件的实现影响重大,因为面向构件编程的基本支持需要编程语言的满足,所以只有很少的几种编程语言可以满足基本要求,如java、C#等,还需要一些增强的策略机制。

11.构件的组装策略有哪些

答: 构件组装是把构件的实例通过适当的连接子实例互联构成系统体系结构的过程。

构件的可视化组装是通过构件实例的可视化组装方式进行组装的过程,常见的有IavaBean技术。

用复合文档取代可视化组装,以复合文档为指导文档,实现构造环境和使用环境无缝集成,为快速开发应用提供了支持。

非图形用户界面环境的构件,多属于后端服务方的构件,例如servlet、中间平台构件等等,因为这些构件与外部进行连接的服务是不绑定环境的,所以组装起来还是比较容易的。

可管理且自引导的构件组装,这种方式类似于通过组合底层构件达成高级构件的过程。

最终用户组装,因为用户的参与,构件组装过程需要一定的自引导性。系统组装风味三个不同层次:定制、集成、扩展。

构件演化是一种后期组装的思想,参看系统演化得到的一种构件发展方式。

面向构件的软件设计问答相关推荐

  1. 软考高级系统架构设计师系列之:面向构件的软件设计,构件平台与典型架构

    软考高级系统架构设计师系列之:面向构件的软件设计,构件平台与典型架构 一.构件的概念 二.构件的标准布线 三.构件框架 1.体系结构核心构成 2.语境相关组合构件框架 3.构件开发 4.开发构件通常采 ...

  2. 面向过程的软件设计方法

    面向过程的软件设计方法 前面主要是对系统的分析,从而明确我们系统的逻辑模型.也就是说,通过前面几章我们清楚了"系统需要做什么?".而软件设计阶段主要任务则是要实现系统逻辑模型向物流 ...

  3. 《软件工程》-面向过程的软件设计方法

    [前言] 软件设计的目标和任务 软件设计基础 模块独立性 结构化设计方法 数据设计和文件设计.过程设计 [内容] 1.软件设计的目标和任务 根据用信息域表示的软件需求,以及功能和性能需求,进行 数据设 ...

  4. 在软件设计前先画界面图

    hennry注: 需求<-同时做->界面(html/css) <-->  开发 不过最好用"快速后台数据"填充界面 画出全部(几乎)界面图好似不敏捷?疑问? ...

  5. 【毕业设计_课程设计】面向高考招生咨询的问答系统设计与实现(源码+论文)

    文章目录 0 项目说明 1 项目说明 2 系统设计 3 系统功能 3.1 问答 3.2 问题模板 4 实验结果 5 论文目录 6 项目工程 0 项目说明 面向高考招生咨询的问答系统设计与实现 提示:适 ...

  6. visual studio 设计器不显示_面向国际市场的装置开发运维软件设计与实现

    南京南瑞继保电气有限公司的研究人员陈宏君.张磊.徐睿.曾凯.刘坤,在2019年第3期<电气技术>上撰文,分析了面向国际市场的用户软件现状与问题,介绍了新一代控制保护平台PCS-S系列装置配 ...

  7. 开源毕设项目《面向桂林旅游的APP软件设计与开发》

    前言:说一下闲话,项目一个星期完成,三天写成初稿,后面改论文用了三个月(夸张点,并不是每天都在改).最终于2019年5月19号完成毕业答辩.毕设老师给95分,验收老师给90+,这个分数是可以推优进行二 ...

  8. iOS开发笔记--基于面向协议MVP模式下的软件设计

    传统模式下的开发 MVC MVVM 基于面向协议MVP的介绍 MVP实战开发 说在前面:  相信就算你是个iOS新手也应该听说过MVC的,MVC是构建iOS App的标准模板.随着时间的推移,在iOS ...

  9. 软件设计·构件级设计(component-level design)

    作为复习笔记使用 体系结构设计的第一次迭代完成之后,就应该开始进行构件级设计,在构件级设计这个阶段,全部的数据和软件的程序结构会被建立,从而将设计模型转化成为运行软件 一.构件的定义 1. 通常来说, ...

最新文章

  1. Docker 镜像优化:从 1.16GB 到 22.4MB
  2. 小小TODO标识,你用对了吗?
  3. Python: strip()和split()的用法与区别
  4. Dockerfile使用,怎么通过Dockerfile完成docker映像配置
  5. 拋棄虛擬機,微軟實驗讓我們在線做(一)
  6. BZOJ1922 SDOI2010 大陆争霸 最短路
  7. MYSQL学习笔记 (二)对数据库结构的增删改查
  8. Android 起调第三方导航,百度地图,高德地图,腾讯地图。起调高德地图导航
  9. iPhone 12 mini被“阉割”到惨不忍睹,5G都没了
  10. python编程入门与案例详解-自学Python 编程基础、科学计算及数据分析
  11. php判断手机是安卓系统还是ios系统
  12. leetcode之每日温度
  13. 雷电模拟器链接服务器未响应,雷电模拟器经常卡顿怎么办?分享多种解决方法...
  14. 阿里云开发笔记01——CuteFTP使用方法
  15. AVA SE java基础 评委打分案例
  16. windows下如果批量修改文件的后缀名
  17. android fake camera,码市 - No.22987 - android fake camera - 其他
  18. H.266/VVC测试软件VTM
  19. python成功爬取拉勾网——初识反爬(一个小白真实的爬取路程,内容有点小多)
  20. hbuilderx gitee操作教程

热门文章

  1. TestFlight用法(iOS APP官方测试工具)
  2. WPS衍生新软件,填补一大缺憾,让office汗颜,Excel用户很开心
  3. 使用vscode利用vue脚手架创建项目每次修改代码都会频繁编译
  4. Android逆向系列(一):初探Android逆向
  5. 【机器学习】深度学习框架是什么?有哪些?如何选择?
  6. 设计模式之美读书笔记
  7. 神经网络---预训练
  8. 爬虫笔记:BeautifulSoup详解
  9. 产业洞察 | 软件定义新IT,深信服为数字化转型架设新设施
  10. Kinect_0:项目背景