构件
| 项目 | 内容 |
|---|---|
| 来源 | 录播 |
| 章节 | 第十五章-系统架构设计 |
| 标签 | 讲义 |
| 页数 | 11 |
| 总字数 | 2960 |
| 原始课件 | 基础录播课/第十五章-系统架构设计/构件.pdf |
本文由课件自动整理,页内文字按原始讲义阅读顺序还原;
[图]表示该位置存在图示,图示内容请对照原始课件查看。
目录
- 第 1 页 · N E W P L A N
- 第 2 页 · 大纲介绍
- 第 3 页 · 构件
- 第 4 页 · 构件
- 第 5 页 · 构件
- 第 6 页 · 构件
- 第 7 页 · 考试真题
- 第 8 页 · 考试真题
- 第 9 页 · 考试真题
- 第 10 页 · 考试真题
- 第 11 页 · T H E E N D
第 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
功不唐捐,玉汝于成!
开
启
新
征
程