一些架构师知识点的记录
SDN 软件定义网络
SDN(Software Defined Networking,软件定义网络)是一种将网络控制平面与数据转发平面分离,并通过可编程接口实现网络控制的架构。SDN的基本架构通常包含以下几个关键层:
- 应用层(Application Layer):这是最上层,包括各种网络应用程序和服务,它们可以通过SDN控制器提供的API来定制网络行为,比如流量路由、访问控制策略等。
- 控制层(Control Layer):这一层的核心是SDN控制器,它集中管理网络视图、计算数据包转发路径,并下发相应的转发规则到数据平面设备。控制器是网络智能和策略决策的中心。
- 转发层(Data Plane or Forwarding Layer):数据平面由网络交换机和其他数据转发设备组成,它们根据从控制层接收的指令转发数据包,而不再需要了解完整的网络拓扑或做出复杂的路由决策。
企业数字化转型
企业数字化转型分为5个发展阶段:初始级发展阶段、单元级发展阶段、流程级发展阶段、网络级发展阶段和生态级发展阶段。
- 初始级发展阶段:处于该发展阶段的组织,在单一职能范围内初步开展了信息(数字)技术应用,但尚未有效发挥信息(数字)技术对主营业务的支持作用。
- 单元级发展阶段:处于该阶段的组织, 在主要或若干主营业务单一职能范围内开展了(新一代)信息技术应用,提升相关单项业务的运行规范性和效率。
- 流程级发展阶段:处于该阶段的组织, 在业务线范围内,通过流程级数字化和传感网级网络化,以流程为驱动,实现主营业务关键业务流程及关键业务与设备设施、软硬件、行为活动等要素间的集成优化。
- 网络级发展阶段:处于该阶段的组织,在全组织(企业)范围内,通过组织(企业)级数字化和产业互联网级网络化,推动组织(企业)内全要素、全过程互联互通和动态优化,实现以数据为驱动的业务模式创新。
- 生态级发展阶段:处于该阶段的组织,在生态组织范围内,通过生态级数字化和泛在物联网级网络化,推动与生态合作伙伴间资源、业务、能力等要素的开放共享和协同合作,共同培育智能驱动型的数字新业务。
需求管理
需求工程的活动主要被划分为以下几个阶段。
(1)需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕 获和修订用户的需求。
(2)需求分析:为系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现 实世界的语义。
(3)形成需求规格(或称之为需求文档化):按照相关标准,生成需求模型的文档描述,用 户原始需求书作为用户和开发者之间的一个协约,往往被作为合同的附件;软件需求描述规约 作为后续软件系统开发的指南。
(4)需求确认与验证:以需求规格说明为输入,通过用户确认、复审会议、符号执行、模 拟仿真或快速原型等途径与方法,确认和验证需求规格的完整性、正确性、一致性、可测试性 和可行性,包含有效性检查、一致性检查、可行性检查和确认可验证性。
(5)需求管理:包括需求文档的追踪管理、变更控制、版本控制等管理性活动。
软件需求开发的最终文档经过评审批准后,则定义了开发工作的需求基线 (Baseline)。 这 个基线在客户和开发者之间构筑了计划产品功能需求和非功能需求的一个约定 (Agreement)。 需求约定是需求开发和需求管理之间的桥梁。
在教材的图中有这么四块,变更控制,版本控制,需求跟踪,需求状态跟踪
需求跟踪
需求跟踪包括编制每个需求同系统元素之间的联系文档,这些元素包括其他需求、体系结 构、其他设计部件、源代码模块、测试、帮助文件和文档等,是要在整个项目的工件之间形成 水平可追踪性。跟踪能力信息使变更影响分析十分便利,有利于确认和评估实现某个建议的需 求变更所必须的工作
软件生命周期
按照传统的软件生命周期方法学,可以把软件生命周期划分为软件定义、软件开发、软件运行与维护3个阶段。
RUP
1.RUP的生命周期
RUP软件开发生命周期是一个二维的软件开发模型, R U P 中有9个核心工作流,这9个核 心工作流如下。
- 业务建模 (Business Modeling): 理解待开发系统所在的机构及其商业运作,确保所有 参与人员对待开发系统所在的机构有共同的认识,评估待开发系统对所在机构的影响。
- 需求 (Requirements): 定义系统功能及用户界面,使客户知道系统的功能,使开发人 员理解系统的需求,为项目预算及计划提供基础。
- 分析与设计 (Analysis & Dcsign): 把需求分析的结果转化为分析与设计模型。
- 实现 (Implementation): 把设计模型转换为实现结果,对开发的代码做单元测试,将
不同实现人员开发的模块集成为可执行系统。 - 测试 (Test): 检查各子系统之间的交互、集成,验证所有需求是否均被正确实现,对
发现的软件质量上的缺陷进行归档,对软件质量提出改进建议。 - 部署 (Deployment): 打包、分发、安装软件,升级旧系统;培训用户及销售人员,并
提供技术支持。 - 配置与变更管理 (Configuration & Change Management): 跟踪并维护系统开发过程中
产生的所有制品的完整性和一致性。 - 项目管理 (Project Management): 为软件开发项目提供计划、人员分配、执行、监控
等方面的指导,为风险管理提供框架。 - 环境 (Environment): 为软件开发机构提供软件开发环境,即提供过程管理和工具的
支持。
结构化设计
盒图、HIPO图、程序流程图均属于结构化设计工具(教材没找到原文)
面向对象设计
顺序图属于面向对象分析与设计工具
UML 2.0
UML 2.0提供了13种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活动
图、构件图、部署图、组合结构图、包图、交互概览图和计时图。序列图、通信图、交互概览 图和计时图均被称为交互图。
PAD图
P A D 图是一种改进的图形描述方式,可以用来取代程序流程图,相比程序流程图更直观, 结构更清晰。最大的优点是能够反映和描述自顶向下的历史和过程。 PAD提供了5种基本控制 结构的图示,并允许递归使用。 P A D 的特点如下:
- 使用PAD符号设计出的程序代码是结构化程序代码;
- P A D所描绘的程序结构十分清晰;
- 用PAD图表现程序的逻辑易读、易懂和易记;
- 容易将PAD图转换成高级语言源程序自动完成;
- 既可以表示逻辑,也可用来描绘数据结构;
- 支持自顶向下方法的使用。
构件
构件又称为组件,是一个自包容、可复用的程序集。构件是一个程序集,或者说是一组程 序的集合。这个集合可能会以各种方式体现出来,如源程序或二进制的代码。这个集合整体向外提供统一的访问接口,构件外部只能通过接口来访问构件,而不能直接操作构件的内部。构 件的两个最重要的特性是自包容与可重用。
网络安全威胁
一般认为,目前网络存在的威胁主要表现在以下5个方面。
(1)非授权访问。没有预先经过同意就使用网络或计算机资源被看作非授权访问,如有意 避开系统访问控制机制,对网络设备及资源进行非正常使用或擅自扩大权限,越权访问信息。 它主要有以下几种形式:假冒、身份攻击、非法用户进入网络系统进行违法操作、合法用户以 未授权方式进行操作等。
(2)信息泄露或丢失。信息泄露或丢失指敏感数据在有意或无意中被泄露出去或丢失,它 通常包括信息在传输中丢失或泄露、信息在存储介质中丢失或泄露以及通过建立隐蔽隧道等方 式窃取敏感信息等。如黑客利用电磁泄露或搭线窃听等方式可截获机密信息,或通过对信息流 向、流量、通信频度和长度等参数的分析,推测出有用信息,如用户口令、账号等重要信息。
(3)破坏数据完整性。以非法手段窃得对数据的使用权,删除、修改、插入或重发某些重 要信息,以取得有益于攻击者的响应;恶意添加,修改数据,以干扰用户的正常使用。
(4)拒绝服务攻击。它不断对网络服务系统进行干扰,改变其正常的作业流程,执行无关 程序使系统响应减慢甚至瘫痪,影响正常用户的使用,甚至使合法用户被排斥而不能进入计算 机网络系统或不能得到相应的服务。
(5)利用网络传播病毒。通过网络传播计算机病毒的破坏性大大高于单机系统,而且用户 很难防范。
UML 5种视图
对于同一个系统,不同人员所关心的内容并不一样。因此一个系统应从不同的角度进行描
述,从一个角度观察到的系统称为一个视图 (View), 每个视图表示系统的一个特殊的方面。 按照图本身具有的特点,可以把图形划分为5类视图,分别是用例视图、逻辑视图、进程视图、实现视图和部署视图,其中的用例视图居于中心地位。
- (1)用例视图:描述系统的功能需求,方便找出用例和执行者;它展示了一个外部用户能
够观察到的系统功能模型,主要包括用例图。对此关心的开发团队成员主要包括客户、分析者、 设计者、开发者和测试者。 - (2)逻辑视图:描述如何实现系统内部的功能;系统的静态结构和因发送消息而出现的动 态协作关系。逻辑视图包含类图和对象图、状态图、顺序图、合作图和活动图。
- (3)进程视图:描述系统的并发性,并处理这些线程间的通信和同步;它将系统分割成并 发执行的控制线程及处理这些线程的通信和同步。进程视图主要包括状态图、顺序图、合作图、 活动图、构件图和配置图;对此关心的开发团队成员主要包括开发者和系统集成者。
- (4)实现视图:描述系统代码构件组织和实现模块及它们之间的依赖关系;实现视图主要 包括构件图;对此关心的开发团队成员主要有设计者、开发者和测试者。
- (5)部署视图:定义系统中软硬件的物理体系结构及连接、哪个程序或对象驻留在哪台 计算机上执行;主要包括配置图;对此关心的开发团队成员主要包括开发者、系统集成者和测
试者。
