软考 - 系统架构设计师 - 构件组装技术

概念

        构件组装是将库中的构件经修改后相互连接,或者将它们和当前开发项目中的软件元素进行连接,最终构成新的目标构件。

        构件组装技术是基于构件的软件开发的核心技术,也是构件技术研究的重点和难点。构件组装的目的是利用现有的构件组装成新的系统,其本质是在构件之间建立关联,根据这种关联,协调它们的行为,把它们组织成为一个有机的整体。通常的软件构件组装遵循计算机硬件的组装方式,即构件通过对偶的接口进行连接,或者遵循软件体系结构的思想,通过连接件进行连接。

构件组装技术的分类

        构件组装技术大致可分为:基于功能的组装技术,基于数据的组装技术,面向对象的组装技术

基于功能的组装技术

        基于功能的构件组装技术采用子程序调用和参数传递的方式将构件组装起来,它要求库中的构件以子程序/过程/函数的形式出现,并且接口说明必须要清晰。当使用这种组装方式进行软件开发时,开发人员首先要对新系统进行功能分解,将系统分解为高内聚低耦合的功能模块。

基于数据的组装技术

        首先要根据当前软件问题的核心数据结构设计一个框架,然后根据框架中各个结点的需求提取构件并进行适应性修改,然后将构件逐个分配到框架中的适当位置

        此后,构件的组装方式仍然是传统的子程序调用与参数传递,这种组装方式也要求在系统中,构件以子程序的形式出现,但它所依赖的软件设计方法是面向数据的设计方法

面向对象的组装技术

        由于具有封装和继承的特性,所以面向对象比其他的软件开发方法更适合支持软件复用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

西门子触摸屏SMART 700 IE V3数据记录的记录周期

问题的提出 需要解决的问题:目前我使用的工况是记录2s内速度变化情况,大概需要记录100个点,时间间隔或者说周期还是挺小的。 PLC端 S7-200的编程过程中,这个用填表程序add_to_table指令完成了,但是记录过程最多只能…

Chrome base 库详解:工具类和常用类库

Chrome浏览器使用了一个强大的库名为base,它包括了许多工具类和常用类库,以支持Chrome的底层功能和性能优化。在本文中,我们将详细阐述base库中的每个子项,并提供示例代码来展示其用法。 base 库的基本结构 Chrome的base库是一个…

ActiveMQ Artemis 系列| High Availability 主备模式(消息复制) 版本2.33.0

一、ActiveMQ Artemis 介绍 Apache ActiveMQ Artemis 是一个高性能的开源消息代理,它完全符合 Java Message Service (JMS) 2.0 规范,并支持多种通信协议,包括 AMQP、MQTT、STOMP 和 OpenWire 等。ActiveMQ Artemis 由 Apache Software Foundation 开发和维护,旨在提供可靠…

数字乡村发展之路:探索农村智慧化新模式

一、引言 随着信息技术的迅猛发展和普及,数字化已经成为推动乡村发展的重要引擎。数字乡村建设旨在通过信息化、智能化手段,提升农村地区的生产生活水平,推动农村经济社会的转型升级。本文旨在探讨数字乡村的发展之路,分析农村智…

BabyAGI源码解读(2)-核心agents部分

话不多说,我们直接进入babyAGI的核心部分,也就是task agent部分。 1. 创建任务agent 这一段代码的任务是创建一个任务,这个函数有四个参数 objective 目标result 结果,dict类型task_list 任务清单task_descritption 任务描述 …

【MySql】利用DataX同步mysql数据,多数据源数据同步方案

你说你知道他们的世界 悲歌三首买一切 买昆仑落脚 蓬莱放思想 买人们的争执酿酒汤 买公主坟的乌鸦 事发之木和东窗之麻 买胭脂河里船行渔歌 黄金世界中万物法则 你我都一样 将被遗忘 郭源潮 你的病也和我的一样 风月难扯 离合不骚 层楼终究误少年 自由早晚乱余生 你我山前没相见…

iOS开发进阶之列表加载图片

iOS开发进阶之列表加载图片 列表加载图片通常使用UITableView或UICollectionView,由于列表中内容数量不确定并且对于图片质量要求也不确定,所以对于图片加载的优化是很有必要的。 首先借鉴前文,我们逐步进行操作,以下是加载1000…

基于springboot实现数据库的加解密

项目地址 https://github.com/Chenchicheng/spring-ibatis-encryption 功能说明 支持使用注解的方式目标类进行加解密支持同一个类多个字段分别使用不同的加密方式支持自定义加密方法 本地调试 pull代码到本地,更换application.yml中的数据库用户名和密码&…

nginx用法以及核心知识详解-可以当作使用nginx的操作手册

前言 nginx的使用真的是非常简单,下载下来解压运行就可以,配置都是再conf文件夹的里的nginx.conf文件里配置,所以对于nginx的上手使用,nginx.conf文件里字段的含义是需要掌握的,然后就是一些nginx的常见问题 nginx核心…

.NET CORE 分布式事务(三) DTM实现Saga及高并发下的解决方案

目录(结尾附加项目代码资源地址) 引言: 1. SAGA事务模式 2. 拆分为子事务 3. 失败回滚 4. 如何做补偿 4.1 失败的分支是否需要补偿 5. 异常 6. 异常与子事务屏障 6.1 NPC的挑战 6.2 现有方案的问题 6.3 子事务屏障 6.4 原理 7. 更多高级场景 7.1 部分…

永磁同步电机初始转子位置检测

/// https://zhuanlan.zhihu.com/p/409887456 ///

vue3+threejs新手从零开发卡牌游戏(二十二):添加己方游戏流程(先后手、抽牌、主要阶段、战斗阶段、结束阶段)

首先在utils/common.ts里定义一些流程相关的变量: const flow ref([ // 游戏流程{name: "抽卡阶段"},{name: "主要阶段"},{name: "战斗阶段"},{name: "结束阶段"}])const flowIndex ref(0) // 当前流程const currentPla…

[C++初阶] 爱上C++ : 与C++的第一次约会

🔥个人主页:guoguoqiang 🔥专栏:我与C的爱恋 本篇内容带大家浅浅的了解一下C中的命名空间。 在c中,名称(name)可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大,名称…

什么是gif? 如何把视频格式转成gif动图格式?展现动图的魅力

一,什么是gif格式 gif是一种位图图形文件格式,主要用于显示索引彩色图像。gif格式在1987年由CompuServe公司开发,它采用LZW(Lempel-Ziv-Welch)无损压缩算法,这种算法可以有效地减少图像文件在网络上传…

在.Net6中用gdal实现第一个功能

目录 一、创建.NET6的控制台应用程序 二、加载Gdal插件 三、编写程序 一、创建.NET6的控制台应用程序 二、加载Gdal插件 Gdal的资源可以经过NuGet包引入。右键单击项目名称,然后选择 "Manage NuGet Packages"(管理 NuGet 包)。N…

【C++】 vector 数组/向量

文章目录 【 1. vector 的声明与初始化 】1.1 vector 的声明1.2 vector 的初始化1.2.1 构造一个空的 vector1.2.2 指定数量初值的方式初始化 vector1.2.3 迭代器的方式初始化1.2.4 构造一个相同的 vector 【 2. vector 的相关操作 】2.1 插入元素2.1.1 在vector的末尾插入新元素…

蚂蚁新村3.30答案:“秀女拈针锦线长,纤纤玉指领馨香”说的是哪一项非遗技艺

蚂蚁新村是一个虚拟社区。在这个虚拟社区中,用户可以参与各种活动,比如生产能量豆、做慈善捐赠等。同时,蚂蚁新村也提供了一些知识问答环节,用户在参与的过程中可以增进知识。这些问答内容往往涉及广泛的主题,如文化、…

iOS - Runtime - Class-方法缓存(cache_t)

文章目录 iOS - Runtime - Class-方法缓存(cache_t)1. 散列表的存取值 iOS - Runtime - Class-方法缓存(cache_t) Class内部结构中有个方法缓存(cache_t),用散列表(哈希表)来缓存曾经调用过的方法,可以提高…

tornado上传文件

简介 在 Tornado web 框架中,上传图片通常涉及创建一个表单,让用户选择文件并上传。Tornado 通过其 RequestHandler 类来处理这些请求,你可以重写 post 方法来接收上传的文件。 后端 import os import tornado.ioloop import tornado.web …

Python3:ModuleNotFoundError: No module named ‘elftools‘

问题背景 问题 ModuleNotFoundError: No module named ‘elftools’ 解决方法 pip3 install pyelftools 成功!!!