当前位置:   article > 正文

2023下半年 系统架构师常考概念_2023年下半年系统架构师论文预测

2023年下半年系统架构师论文预测

目录

系统分析:

1.结构化分析

数据字典:

2.模型对象分析:

基于uml的面向对象需求分析过程大致分为以下几个步骤

系统设计

概要设计:

详细设计:

系统结构图

系统结构图(Structure Chart,SC)

HIPO图

IPO图

程序流程图

过程设计语言

系统设计

UML的交互图

1.提前边界类、实体类和控制类

2.构造交互图,UML交互图,以交互图作为用例的精确实现方案

3.根据交互图精化类图

序列图:

协作图:

状态图

活动图

架构设计

数据流风格

调用、返回风格

构件风格

虚拟机风格

仓库风格

(3)超文本,静态网页

C2风格

二层C/S架构的缺点主要有

三层C/S架构的优点:

UML(4+1视图)与系统架构

质量场景的6个组成部分

质量特性

软件评估方法:

架构权衡分析方法

基于体系结构的软件设计

ABSD方法的有三个基础

传统的软件开发过程

体系结构需求过程的五个阶段

体系结构设计的五个过程

体系结构文档化过程的主要输出结果

体系结构复审的概念

体系结构实现的六个步骤

体系结构演化过程的七个步骤

Web系统设计的五个层的详细介绍

应用层的四个技术:docker、k8s、spring、ejb


系统分析

1.结构化分析

结构化分析(Structured Developing)是面向数据流的需求分析方法,它的思想是通过功能分解方式把系统功能分解到各个模块中

数据字典

行为模型:STD状态转换图

功能模型:DFD图数据流程图

数据模型:ER图实体关系图

2.模型对象分析:

面向对象分析的关键是面向对象的建模,面向对象建模主要使用uml图。建模可以分为分析模型与设计模型。面向对象的分析模型主要由顶层架构图、用例图、领域概念模型构成,设计模型则包含以包图表示的软件体系结构图、以交互图表示用例实现图、完整精确的类图、针对复杂对象的状态图和用于描述流程化处理过程的活动图等

基于uml的面向对象需求分析过程大致分为以下几个步骤

(1). 利用用例以及用例图表示需求,从业务需求描述出发获取执行者和场景;对场景进行汇总、分类、抽象、形成用例;确定执行者与用例、用例与用例图之间的关系,生成用例图。其中用例之间的关系主要包含、扩展和泛化

包含:两个或两个以上的用例的公共行为可以表示用例之间的包含关系

扩展:一个用例混合了两种或两种以上不同的场景(分支)可以表示为用例之间的扩展关系

泛化:多个用例拥有一种共性,可以将共性抽象为父用例,其他用例作为泛化关系的子用例

(2)利用包图以及类图表示目标软件系统的总体框架结构

根据领域知识、业务需求描述和既往经验设计目标软件系统的顶层架构;从业务需求描述中提取“关键概念”。形成领域概念模型;从概念模型和用例出发,研究系统中主要之间的关系,生成类图。其中类之间的关系

关联:是拥有的关系,提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。

聚合:是整体与部分的关系,各自具有不同的生命周期

组合:是整体与部分的关系,具有相同的生命周期

依赖:是使用的关系,两个类A和B,如果B的变化可能引起A的变化

泛化:是父类与子类的之间关系,是集成的反关系

实现:一个或多个类可以实现一个接口,每个类分别实现接口中的操作

系统设计

1.系统设计阶段又称为物理设计阶段,其任务是根据系统规格说明 书中规定的功能要求,设计新系统的物理模型,为下一个阶段的系统实施工作奠定基础

概要设计:

又称为系统总体结构设计,主要任务是将系统的功能需求分配软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。软件概要设计将软件需求转化为数据结构和软件的系统结构。

详细设计:

详细设计又称低层设计,即对结构图进行细化,得到详细的数据结构与算法。详细设计主要包括:网络设计、代码设计、输入输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等

2.概要设计过程中主要使用模块结构图、层次图和HIPO图

3.详细设计过程中主要使用:程序流程图、伪代码、盒图

4.结构化设计是一种面向数据流的方法,它以数据流图和数据字典等文档为基础,是一个自顶向下,逐步求精和模块化的过程,结构化设计具有如下特征

(1)信息隐蔽与隐藏,信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽互殴封装在一个单一的设计模块中,并且尽可能减少暴露其内部的处理过程。通过信息隐蔽可以提高软件的可修改性,可测试性和可移植性

(2)模块化

(3)高内聚与低耦合

系统结构图

系统结构图(Structure Chart,SC)

又称为模块结构图,它是软件概要设计阶段的工具,反映系统的功能实现和模块之间的联系与通信,包括各个模块之间的层次结构,即反映了系统的总体结构

HIPO图

由层次结构图和IPO图两个部分组成,前者描述了整个系统的设计结构以及各个模块之间的关系,后者描述某个特定模块内部的处理过程和输入、输出关系

IPO图

IPO 图用来描述每个模块的输入、输出和数据加工。IPO图的主体是处理过程说明,可以采用流程图、判定树等来进行描述

程序流程图

(Program Flow Diagram PFD)用一些图框表示各种操作,它独立于任何一种程序设计语言,比较直观、清晰、易于学习掌握。流程图中只能包括五种基本控制结构:顺序型、选择型、WHILE循环型、UNTIL循环型和多分枝选择型

过程设计语言

(Process Design Language,PDL)也称为结构化语言或伪代码(pseudo code),它是一种混合语言,采用自然语言和词汇和结构化程序设计语言的语法,用于描述处理过程怎么做,类似于编程语言

系统设计

面向对象的设计---设计用例实现方案

UML的交互图

(顺序图、协作图)适用于用例实现方案的表示,该设计方法包含如下三个步骤

1.提前边界类、实体类和控制类

实体类:领域模型中的类、需要进行持久化存储、名词

边界类:用于系统接口与系统外部进行交互、如窗口、菜单栏、二位码等

控制类:控制其他类工作的类、体现应用程序的执行逻辑、动词

2.构造交互图,UML交互图,以交互图作为用例的精确实现方案
3.根据交互图精化类图

在UML交互图中,对每个类 的对象都规定了它必须响应的消息以及类的对象之间的消息传递通道。

设计方案支撑:

在许多软件项目中,应用功能往往都需要一组技术支撑机制为其提供服务,例如:数据持久化存储服务,安全控制服务、分布式事务管理服务、并发与同步控制服务和可靠消息服务等

设计用户界面

精化设计模型

序列图:

序列图主要用来更直观的表现各个对象交互的时间顺序,将体现的重点放在以时间为参考,各个对象发送、接收消息,处理消息,返回消息的时间流程顺序,也称时序图

协作图:

协作图是一种类图,强调参与交互的,各个对象的结构信息和组织

状态图

用来描述一个特定的对象多有可能的状态,以及由于各种时间的发生而引起的状态之间的转移和变化;状态图主要描述行为的结果;用于对系统的动态方面的建模

活动图

将进程或其他计算机的结构展示位计算内部一步步的控制流和数据流,主要用来描述系统的动态视图;活动图主要描述行为的动作;用于对系统的动态方面建模

数据流图与系统流程图的区别

(1)数据流图中的处理过程可以并行;系统流程图在某个时间点只能处于一个处理过程

(2)数据流图展现系统的数据流;系统流程图展现系统的控制流

(3)数据流图展现全局的处理过程,过程之间遵循不同的计时表准;系统流程图中处理过程遵循一致的计时表准

架构设计

(1)软件架构设计主要关注软件构件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构

(2)软件体系结构(架构)风格是描述某一特定应用领域中系统组织方式的惯用模式。它定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束

       词汇表中包含一些构件和连接件模型

       约束指出系统是如何将这些构件和连接件组合起来的

       体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块呵呵子系统有效地组织成一个完整的系统

数据流风格

(1)批处理,每一步处理都是独立的,并且每一步是顺序执行的,只有当前一步处理完,后一步处理才能开始。数据必须是完整的,以整体的方式传递。如日志分析、计费程序等。不适合用来设计交互式应用系统

(2)管道过滤器,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变化以及增量计算来完成,所以在输入被完全消费之前,输出便产生了。如传统的编译器,UNIX管道等

调用、返回风格

(1)主程序子程序,这种风格一般采用单线程控制,把问题划分为若干处理步骤,为主程序的正确性取决于它调用的子程序的正确性。如开发语言

(2)面向对象,数据的表示和他们的相应操作被封装起来,对象的行为体现在其接受和请求的动作中。对象具有封装性,一个对象的改变不会影响其他对象。如面向开发语言。如果一个对象要调研另一个对象,则必须知道他的标识和名称;会产生连锁反应

(3)层次,每层为上一层提供服务,使用下一层的服务,只能见到与自己邻接的层,在层次结构中,修改某一层,最多影响其相邻的上下两层(通常影响上层)。上层必须知道下层的身份,不能调整层次之间的顺序。如TCP、IP协议,很难找到一种合适和正确的层次划分方法

构件风格

(1)进程通信,进程之间的消息传递方式可以使点对点,异步或同步方式,以及远程过程(方法)调用等

(2)事件驱动,当某个事件被触发时,系统自动调用在这个时间中注册的所有过程,如断点调试、新闻、公众号等的订阅信息。构件放弃了对计算的控制权,完全由系统来决定

虚拟机风格

(1)解释器,解释器通常包括一个完成解释工作的解释引擎、一个包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行进度的数据结构,如JVM

(2)基于规则的系统,基于规则的系统包括规则集、规则解释器、规则、数据选择器和工作内存。一般用在人工智能领域的DSS中

仓库风格

(1)数据库系统,构件分为中央共享数据源、独立处理单元。构件控制中央共享数据。如IDE集成开发环境

(2)黑板,黑板系统包括知识源、黑板和控制三个部分。知识源包括若干独立计算的不同单元,提供解决问题的知识。知识源响应黑板的变化,也只修改黑板;黑板是一个全局数据库,包括问题域解空间的全部状态,是知识源相互作用的唯一媒介;知识源响应是通过黑板状态的变化来控制的。黑板系统通常应用在对于解决问题没有确定性算法的软件中,如语音识别,信号处理等

(3)超文本,静态网页

闭环过程控制

将过程输出的指定属性维护在一个特定的参考值(设定值),将事务处理看出输入,加工,输出、反馈、再输入的一个持续的过程模型,实例,空调的温度自动调节器(设定值是温度),巡航系统(设定值是速度)

C2风格

通过连接件绑定在一起按照一组规则运作的并行构件网格(构件、连接件)

二层C/S架构的缺点主要有

(1)服务器的负荷太重,难以管理大量的客户机,系统的性能容易变坏

(2)数据安全性不好,因为客户端程序可以直接访问数据库服务器,那么在客户端计算机上的其他程序也想办法访问数据库服务器,从而使数据库的安全性受到威胁。与二层架构相比,在三层架构中,增加了一个应用服务器。而言将整个应用逻辑驻留在应用服务器上,而只有表示层存在与客户机上。这种客户机称为瘦客户机。三层CS架构将应用系统分成表示层,功能层和数据层三个部分

表示层:用户接口,检查用户输入的数据,显示输出数据

功能层:业务逻辑层,是将具体的业务处理逻辑编入程序中

数据层:对DBMS进行管理和控制

三层C/S架构的优点:

(1)允许合理地划分三层的功能,是指在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统的可维护性和可扩展性

(2)允许更灵活、有效地选用相应的平台和硬件系统,是指在处理负荷能力上与处理特性上分别适应于结构清晰的三层,并且这些平台和各个组成部分可以更具有良好的可升级性和开放性

(3)系统的各层可以并行开发,各层也可以选择各自最合适的开发语言,是指能并行且高效地进行开发,达到较高的性能价格比。对每一层的处理逻辑的开发和维护也会更容易些

(4)利用功能层可以有效地隔离表示层和数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础

UML(4+1视图)与系统架构

(1)逻辑视图:主要支持功能性需求,即在为用户提供服务方面系统所应该提供的功能。逻辑视图来记录设计元素的功能和概念接口,设计元素的功能定义了它本身在系统中的角色,这些角色包括功能、性能等,主要使用类图

(2)进程(过程)视图:进程架构考虑一些非功能性的需求,如性能和可用性,它解决并发性、分布性等问题,以及逻辑视图的主要抽象如何与进程结构相配合在一起,即在那个控制线程上,对象的操作被实际执行

(3)部署视图:把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。展示了抽象部分如何映射到最终部署的系统中

(4)场景:需求的抽象,可以展示其他视图如何协调工作

质量场景的6个组成部分

(1)刺激源:谁造成的刺激

(2)刺激:一个响应系统的情况

(3)制品:系统被刺激的部分

(4)环境:刺激发生时,系统所处的状态

(5)响应:刺激所产生的结果

(6)响应度量指标:如何评估响应

质量属性(性能、可用性、安全性、可修改性、易用性)

(1)性能:作用与要点,处理任务所需时间或单位时间内的处理量;设计策略:控制资源的使用、并发机制、增加资源、先来先服务、设定优先级

(2)可用性:作用与要点:正常运行的时间比例,出现故障多久能启用备用系统;设计策略:心跳、Ping/Echo、异常、冗余、故障转移、检查点、回滚、事务、进程监视器

(3)安全性:系统向合法用户提供服务并阻止非法用户的能力;设计策略:用户授权、维护数据机密性与完整性、限制访问、入侵检测系统、追踪审计

(4)可修改性-可维护性:错误发生后进行局部性修改,对其他构件负面影响最小

(5)可修改性-可扩展性:使用新构件、改进或删除原有构件或特性

(6)可修改性-结构重组:重新组织构件以及构件关系,灵活配置构件

(7)可修改性-可移植性:多样的环境(硬件平台、语言、操作系统等);设计策略:信息隐藏、维持现有接口、限制通信路径、使用中介、运行时注册

(8)易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力

质量特性

(1)敏感性:为了实现某种特定的质量属性,一个或多个构件所具有的特性;关键词:对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计

(2)权衡点:影响多个质量属性的特性,是多个属性的敏感度;关键词:改变业务数据编码方式会对系统的性能和安全性产生影响

(3)风险:不以标准术语出现。某些做法有一些隐患可能导致一些问题。对系统某业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性

(4)非风险:某些做法是可行的、可接受的;关键词:业务处理时间小于30毫秒,则将请求响应时间设定为1秒是可以接受的

软件评估方法:

1.基于调查问卷检查表

基于调查问卷或检查表的方式:该方式的关键是要设计好问卷或检查表,它充分利用系统相关人员的经验和知识,获得对架构的评估。其缺点是在很大程度上依赖于评估人员的主观推测

2.基于场景的方式

基于场景的方式包括架构权衡分析法、软件架构分析法、成本收益分析方法,通过分析软件架构对场景也就是对系统的使用或修改活动的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度

3.基于度量的方式

制定一些定量值来度量架构,如代码行数等。要定制质量属性和度量结果之间的映射

架构权衡分析方法

ATAM是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM可以分为4个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念

架构设计的三个步骤

(1)领域分析:获得领域模型,领域模型描述领域中系统之间共同的需求,即领域需求

(2)领域设计:获得特定领域软件架构,DSSA描述领域模型中表示需求的解决方案

(3)领域实现:依据领域模型和DSSA开发和组织可重用信息,并对基础软件架构进行实现

参与角色:领域专家、领域分析人员、领域设计人员、领域实现人员

基于体系结构的软件设计

ABSD方法是体系结构驱动,即指构成体系结构的商业、质量和功能需求的组合驱动的,在基于体系结构的软件设计方法中,采用视角与视图来描述软件架构,采用用例来描述功能需求,采用质量场景来描述质量需求

ABSD方法是一个自顶向下,递归细化的方法,软件系统的体系结构通过该方法得到细化,知道能产生软件构件和类

ABSD方法的有三个基础

(1)第一个基础是功能的分解:在功能分解中,ABSD方法使用已有的基于模块的内聚耦合技术

(2)第二个基础是通过选择体系结构风格来实现质量和商业需求

(3)第三个基础是软件模板的使用,软件模板利用了一些软件系统的结构

传统的软件开发过程

传统的软件开发过程可以划分为从概念知道实现的若干阶段,包括问题定义、需求分析、软件设计、软件实现以及软件测试等。如果采用传统的软件开发模型,软件体系结构的建立应位于需求分析之后,概要设计之前。传统软件开发模型存在开发效率不高,不能很好地支持软件重用等缺点。ABSDM模型把基于体系结构的软件过程分为体系结构需求、设计、文档化、复审、实现和演化等6个子过程,得到细化,知道能产生软件构件和类

体系结构开发模型的六个阶段

(1)体系结构需求

(2)体系结构设计

(3)体系结构文档化

(4)体系结构复审

(5)体系结构实现

(6)体系结构演化

体系结构需求过程的五个阶段

(1)需求获取

(2)生成类图

(3)对类进行分组

(4)把类打包成构件

(5)需求评审

体系结构设计的五个过程

(1)提出体系结构模型

(2)映射构件

(3)分析构件相互作用

(4)产生体系结构

(5)设计评审

体系结构文档化过程的主要输出结果

(1)体系结构规格说明

(2)测试体系结构需求

(3)质量设计说明书

体系结构复审的概念

体系结构复审是一个迭代的过程。目的是标识出潜在的风险尽早发现体系结构设计中的缺陷和错误。从这个方面来说,在一个主版本的软件体系结构分析之后,要安排一次由外部人员(用户代表和领域专家)参加的复审

体系结构实现的六个步骤

(1)复审后的文档化的体系结构

(2)分析与设计

(3)构件与实现

(4)构件组装

(5)系统测试

(6)体系结构演化

体系结构演化过程的七个步骤

(1)需求变化归类

(2)体系结构演化计划

(3)构件变动

(4)更新构件的相互作用

(5)构件组装与测试

(6)技术评审

(7)演化后的体系结构

Web系统设计的五个层的详细介绍

(1)客户端浏览器渲染页面,功能渲染静态页面,执行页面脚本代码,举例:applet、html页面、js代码、jsp页面

(2)表现层与浏览器交互,功能:收集请求、转发请求、收集数据、响应数据;举例:servlet、spring MVC 、JSP引擎、tomcat

(3)中间层(业务逻辑层、service层)处理业务逻辑:功能:将多个DAO方法组合在一起,实现某个具体的功能;举例:spring、ejb

(4)数据访问层(DAO层)与数据交互;功能:实现业务数据的增删改查;举例:各种ORM框架、mybatis、hibernate、集成jdbc、数据库代理

(5)数据存储层,实现数据库架构;功能:数据的存储管理;举例:mysql、pgsql、oracle

应用层的四个技术:docker、k8s、spring、ejb

(1)docker:开源的应用容器引擎,让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。完全使用沙箱机制,性能开销低

(2)k8s:kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制

(3)spring:开发源代码的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器,可以单独应用于构筑应用程序,也可以和Struts、WebWork等众多的Web框架组合使用,并且可以与swing等桌面应用程序API组合

(4)EJB:是用于开发和部署多层结构的、分布式的、面向对象的JAVA应用系统的跨平台的构件体系结构。已被淘汰

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/688013
推荐阅读
相关标签
  

闽ICP备14008679号