跳转至

高级架构师

高级架构师高频题型总结

选择题

面向对象

  1. 在 UML 用例图中,参与者之间存在 __ 关系。

    A. 聚合 B. 包含 C. 继承/泛化 (✅) D. 扩展

    Note

    用例图描述了一组用例、参与者以及它们之间的关系。这里没考察用例之间的关系,而是考察了参与者之间的关系

    参与者、国际留学生与参与者、学生之间的关系是泛化关系

    • 用例与参与者之间有 扩展和包含 关系
    • 参与者与用例之间有 关联 关系
    • 用例与用例、参与者与参与者之间有 泛化 关系

  2. 数据资产的特性包括:可控制、可量化、可变现、虚拟性、共享性、时效性、安全性、交换性和规模性。

使用 C++ 实现 COM 组件的示例

COM(Component Object Model)是微软提出的用于构建组件化应用程序的标准。COM 允许不同编程语言编写的组件进行互操作。本文将展示如何用 C++ 创建和使用 COM 组件,涵盖接口定义、组件实现、引用计数、对象创建等基本概念。

1. 定义接口

在 COM 编程中,接口是定义组件之间交互的核心部分。所有的 COM 接口都必须继承自 IUnknown 接口,它提供了基本的引用计数和接口查询功能。

下面我们定义一个简单的接口 IHello,它包含一个方法 Hello 用于打印消息。

// IHello.h
#ifndef IHELLO_H
#define IHELLO_H

#include <objbase.h>

// 定义 IHello 接口
class IHello : public IUnknown {
public:
    virtual void Hello() = 0;
};

// 定义 IHello 的 GUID
// {D77A85A0-68F7-4F0C-9B5A-A6D84236A2D1}
DEFINE_GUID(IID_IHello, 
0xd77a85a0, 0x68f7, 0x4f0c, 0x9b, 0x5a, 0xa6, 0xd8, 0x42, 0x36, 0xa2, 0xd1);

#endif

在这段代码中,我们定义了一个接口 IHello,它继承自 IUnknown 并包含一个 Hello 方法。DEFINE_GUID 宏用于生成接口的唯一标识符(GUID),该标识符在 COM 中用于区分不同的接口。

深入了解 COM(Component Object Model)

COM(Component Object Model)是微软提出的一种二进制接口标准,允许不同编程语言编写的组件之间进行互操作。它的设计初衷是使得不同的应用程序可以使用和共享不同语言编写的组件。COM 作为一种中间层协议,定义了组件的交互接口,并通过它实现不同组件间的通信。

论面向对象设计

  1. 介绍项目基本信息
  2. 自己担任的职位
  3. 该项目解决客户的哪些问题
  4. 从题目要求角度描述项目过程
  5. 描述项目交付得到用户的好评
  6. 如果字数不够可以写一些无关痛痒的问题

2023 年 5 月我参加了某航天设计院所的《三维数据轻量化异构项目》,担任系统架构师负责系统的分析和设计工作。该系统主要用于航天设计行业三维数据轻量化和预览工作,解决设计单位、制造单位和维修保障单位上下游间业务数据同步问题。系统包括三维数据轻量化、三维模型可视化、中性格式转换、中性格式一致性校验等功能,技术上使用 Iris、GORM、MYSQL 等技术栈,采用微服务方式进行开发、运维。 项目能够取得成功,很大程度上取决于采用了 RUP 统一过程模型,将一个二维模型划分为多个循环,每个循环完成一个迭代版本;每个循环通过初始、细化、构造、移交,降低了系统风险,确保高质量交付。2024 年 5 月项目顺利通过验收并上线运行,目前已经稳定运行 5 个月,得到了公司领导和客户的一致好评。

论软件可靠性设计

  1. 基本概念

    软件可靠性是指在规定时间内,软件不引起系统失效的概率。该属性是系统输入输出关于稳定性的函数,也是系统失效率的函数,描述系统稳定性的指标。

  2. 怎么做

    容错设计技术、检错技术、降低复杂度技术、系统配置策略

论软件的可靠性设计

摘要:我所在的公司是国内三维数据轻量化和渲染的主要厂商之一。作为公司主要的技术负责人之一,2023年3月,我承担了三维轻量化异构项目的设计与研发工作,该项目是我司三维轻量化生态中的子系统之一,主要负责对三维轻量化数据场景搭建、仿真工作。由于系统对于安全性、可靠性、可用性以及性能由很高的要求,在系统开发方面我采用容错设计技术、N 版本程序设计、冗余设计等方式降低了系统研发的风险,提升了系统运行的稳定性。该方案得到了公司领导和同事的肯定和认可,2024年5月,项目顺利通过验收正式上线。

论软件系统架构风格

摘要

2015 年初,我所在的公司承担了某集团公司的移动信息化开放平台的建设工作。我在该项目中担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。该平台以移动信息化发展为契机,采用”平台+应用”的模式解决现有应用的集中移动化需求。平台整体的逻辑复杂,对系统的高可用和高扩展能力提出了较高的要求。

本文以平台系统架构为例,讨论了软件架构的选择和应用。在该项目中,我结合实际需要,从开发和维护难度、安全性、稳定性和扩展能力等方面综合衡量,为平台选择了具有表现层、业务逻辑层、数据访问层的三层分层架构。平台的研发耗时 10 个月,目前,系统已稳定运行了近两年时间,实践证明,这种架构设计有效的降低了系统的维护和开发成本,增强了系统的安全性、提高了系统的稳定性和扩展能力。

论软件架构的选择

摘要

2015 年初,我所在的公司承担了某集团公司的移动信息化开放平台的建设工作。我在该项目中担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。该平台以移动信息化发展为契机,采用”平台+应用”的模式解决现有应用的集中移动化需求。平台整体的逻辑复杂,对系统的高可用和高扩展能力提出了较高的要求。

本文以平台系统架构为例,讨论了软件架构的选择和应用。在该项目中,我结合实际需要,从开发和维护难度、安全性、稳定性和扩展能力等方面综合衡量,为平台选择了具有表现层、业务逻辑层、数据访问层的三层分层架构。平台的研发耗时 10 个月,目前,系统已稳定运行了近两年时间,实践证明,这种架构设计有效的降低了系统的维护和开发成本,增强了系统的安全性、提高了系统的稳定性和扩展能力。