架 软考架构师知识库 系统架构设计师 · 课件全文检索
已就绪 127 份课件 1966 页

构件

第十五章-系统架构设计 · 11 页 · 2960 字 录播 讲义

构件

项目 内容
来源 录播
章节 第十五章-系统架构设计
标签 讲义
页数 11
总字数 2960
原始课件 基础录播课/第十五章-系统架构设计/构件.pdf

本文由课件自动整理,页内文字按原始讲义阅读顺序还原;[图] 表示该位置存在图示,

图示内容请对照原始课件查看。


目录


第 1 页 · N E W P L A N

软考高级架构师

一

段

新

征

程

第 2 页 · 大纲介绍

提示:本页以图示为主,下列文本为图中标注文字。

[图]

第 3 页 · 构件

在架构设计中,构件(Component)是指系统的重要部分,它们是功能上独立且可以被替代或扩展的模块或单元,外

界通过接口访问其提供的服务。构件通常用来划分系统的不同功能或责任,以便更容易管理、维护和扩展整个系统。

它们是系统架构的基本构建块,可以包括软件模块、类、库、服务等。

举例:一个电子商务网站的架构设计:

•用户管理构件:这个构件负责处理用户身份验证、注册、登录和个人资料管理等功能。它可能包括用户数据库、身份验证服务、

用户界面组件等。

•商品管理构件:这个构件处理商品列表、详情、购物车和支付等功能。它包括商品数据库、购物车逻辑、支付处理和商品页面

组件等。

•订单管理构件:这个构件负责订单的创建、查看、修改和支付等功能。它包括订单数据库、订单处理逻辑、订单页面组件等。

•库存管理构件:这个构件负责跟踪商品库存的状态和更新。它包括库存数据库、库存更新服务等。

这些构件代表了系统中的不同功能区域,每个构件都可以独立开发、测试和维护。它们通过明确定义的接口和通信

方式相互连接,以协同工作来实现整个电子商务网站的功能。

•例如,用户管理构件可以与商品管理构件通信,以验证用户是否有权购买特定商品。订单管理构件可以与库存管理构件通信,

以检查商品的库存情况。通过将系统划分为不同的构件,架构设计可以更容易地管理和扩展系统,同时降低了系统的复杂性。

这种模块化的设计方法有助于提高系统的可维护性和可扩展性。

第 4 页 · 构件

类(Class):

•

定义:类是面向对象编程中的基本概念,它描述了一种对象的属性和行为。类定义了对象的结构和行为模板,它可以包括属性

(数据成员)和方法(函数成员)。

•

作用:类用于创建对象,对象是类的实例。通过定义类,可以封装数据和行为,实现代码的模块化和复用。类通常用于面向对

象编程语言(如Java、Python)中。

•

举例:在一个图书管理系统中,可以创建一个名为Book的类,该类包括属性如书名、作者、出版日期等,以及方法如借阅、归

还、获取书籍信息等。

模块(Module):

•

定义:模块是一组相关的函数、类、变量或代码块的集合,用于将代码组织成更小的可管理单元。模块可以是一个单独的文件

或一组相关文件。

•

作用:模块用于划分代码,将相关功能或类放在一个地方,以便更好地组织和维护代码。它还可以支持代码的复用和封装。

•

举例:在我们使用web开发的时候,我们可以选择进行多模块开发,在开发软件里面定义多个module,比如用户模块、商品模

块、购物车模块之类的,然后让这多个module之间使用maven的方式进行互相关联和依赖。

第 5 页 · 构件

构件(Component):

•

定义:是指软件系统中的可复用组件。构件可以是代码、数据、文档或其他任何类型的软件资产。构件通常是松散耦合的,并

且可以组合起来形成更大的软件系统。构件的典型示例包括类、模块、组件和框架。

服务(Service):

•

定义:是指提供特定功能的软件单元。服务通常是独立的、可复用的,并且可以通过网络进行访问。服务的典型示例包括Web

服务、REST API和微服务。

服务和构件之间的主要区别如下:

•

服务侧重于功能,而构件侧重于结构。服务提供特定的功能,而构件是软件系统的组成部分。

•

服务通常是独立的和可访问的,而构件通常是松散耦合的和可复用的。服务可以独立运行并通过网络进行访问,而构件可以组

合起来形成更大的软件系统。

•

服务通常用于面向服务的架构(SOA),而构件通常用于组件化开发。SOA是一种将软件系统构建为松散耦合的服务的架构风

格。组件化开发是一种将软件系统构建为可复用构件的方法。

具体的例子:

•

服务:一个提供天气预报信息的Web服务。

•

构件:一个用于管理用户身份验证的类库。

第 6 页 · 构件

构件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行了封装,同

时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细节。目前,国际上常用的构件标准主要有三大流派。

•EJB(Enterprise Java Bean)规范由Sun公司制定,有三种类型的EJB:

•会话Bean(Session Bean):用于管理会话和业务逻辑,有不同的类型适应不同的需求

•实体Bean(Entity Bean):用于与持久化数据交互,将对象映射到数据库表。

•消息驱动Bean(Message-driven Bean):用于异步消息处理,响应来自消息队列的消息

•COM、DCOM、COM+:COM是微软公司的。DCOM是COM的进一步扩展,具有位置独立性和语言无关性。

COM+并不是COM的新版本,是COM的新发展或是更高层次的应用:

•CORBA标准主要分为三个层次:对象请求代理、公共对象服务和公共设施

•最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软

总线”;

•在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;

•最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。

第 7 页 · 考试真题

【2022年】以下有关构件特性的描述中,说法不正确的是()。

A.构件是独立部署单元

B.构件可作为第三方的组装单元

C.构件没有外部的可见状态

D.构件作为部署单元,是可拆分的

【2022年】在构件的定义中,()是一个已命名的一组操作的集合。

A.接口

B.对象

C.函数

D.模块

第 8 页 · 考试真题

【2022年】在服务端构件模型的典型解决方案中,()较为适用于应用服务器。

A.EJB和COM+模型

B.EJB和servlet模型

C.COM+和ASP模型

D.COM+和servlet模型

【2022年】以下有关构件演化的叙述中,说法不正确的是()。

A.安装新版本构件可能会与现有系统发生冲突

B.构件通常也会经历一般软件产品具有的演化过程

C.解决“遗留系统移植”问题还需要通过使用包裹器构件来适配旧版软件

D.为安装新版本的构件,必须终止系统中所有现有版本构件的运行

第 9 页 · 考试真题

【2021年】以下关于软件构件的叙述中,错误的是(35)

A.构件的部署必须能跟它所在的环境及其他构件完全分离

B.构件作为一个部署单元是不可拆分的

C.在一个特定进程中可能会存在多个特定构件的拷贝

D对于不影响构件功能的某些属性可以对外部可见

【2021年】面向构件的编程目前缺乏完善的方法学支持,构件交互的复杂性带来了很多问题,其中

(36)问题会产生数据竞争和死锁现象

A.多线程

B.异步

C.封装

D.多语言支持

第 10 页 · 考试真题

【2021年】37&38.为实现对象重用,COM支持两种形式的对象组装。在(37)重用形式下,一个外部对

象拥有指向一个内部对象的唯一引用,外部对象只是把请求转发给内部对象:在(38)重用形式下,直接

把内部对象的接口引用传给外部对象的客户,而不再转发请求。

(37)A.聚集

B.包含

C.链接

D.多态

(38)A.引用

B.转发

C.包含

D.聚集

第 11 页 · T H E E N D

功不唐捐,玉汝于成!

开

启

新

征

程