image

编辑人: 未来可期

calendar2025-06-06

message5

visits392

2019年11月系统架构设计师-论文答案及解析

一、问答题

1、试题一  论软件设计方法及其应用

软件设计(Software Design,SD)根据软件需求规格说明书设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及程序流程等,形成软件的具体设计方案。软件设计把许多事物和问题按不同的层次和角度进行抽象,将问题或事物进行模块化分解,以便更容易解决问题。分解得越细,模块数量也就越多,设计者需要考虑模块之间的耦合度。

 

请围绕“论软件设计方法及其应用”论题,依次从以下三个方面进行论述。

1.概要叙述你所参与管理或开发的软件项目,以及你在其中所承担的主要工作。

2.详细阐述有哪些不同的软件设计方法,并说明每种方法的适用场景。

3.详细说明你所参与的软件开发项目中,使用了哪种软件设计方法,具体实施效果如何。

参考答案:

1.简要描述所参与设计的软件系统,并明确指出在系统设计过程种承担的主要工作。

2.分析系统设计的主要方法,并详细阐述每种设计方法。

1) 净室方法

净室软件工程(净室方法)是软件开发的一种形式化方法,它可以生成高质量的软件。它使用盒结构规约进行分析和设计建模,并且强调将正确性验证(而不是测试)作为发现和消除错误的主要机制,使用统计的测试来获取认证被交付的软件的可靠性所必需的出错率信息。

净室方法从使用盒结构表示的分析和设计模型入手,一个“盒”在某特定的抽象层次上封装系统(或系统的某些方面)。通过逐步求精的过程,盒被精化为层次,其中每个盒具有引用透明性:每个盒规约的信息内容对定义其精华是足够的,不需要信赖于任何其他盒的实现。这使得分析人员能够层次地划分一个系统,从在顶层的本质表示转移向在底层的实现特定的细节。净室方法主要使用三种盒类型:黑盒、状态盒和清晰盒。

净室方法是一种严格的软件工程方法,它是一种强调正确性的数学验证和软件可靠性认证的软件过程模型,其目标和结果是非常低的出错率,这是使用非形式化方法难于或不可能达到的。

2) 结构化设计

结构化方法由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。结构化分析是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析工作。

① 结构化设计原则

② 结构化设计步骤

③ 结构化缺点

在结构化设计中,模块和模块之间的关系局限于信息流,限制了对模块之间众多关系的表达,也无法体现模块和模块之间其他的众多关系,包含各种各样的结构、行为、依赖、包含(在结构化设计中这种关系隐含在分层中)、继承、关联关系等等。结构化设计仅解决了模块在封装和信息隐藏方面的问题。

④ 结构化设计适合场景

3) 面向对象设计

面向对象的设计模型包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。

① UML与4+1视图

② 设计原则

③ 设计模式

④ 面向对象设计适合场景

4) 原型法

结构化方法和面向对象方法有一个共同点:在系统开发初期必须明确系统的功能要求,确定系统边界。从工程学角度来看,这是十分自然的:解决问题之前必须明确要解决的问题是什么,然而对于信息系统建设而言,明确问题本身不是一件轻松的事情。

① 原型分类

水平原型和垂直原型,抛弃原型、演进原型和递增原型

② 原型类型的选择

③ 原型法适合场景

3.结合项目实践。针对实际参与的软件设计过程,说明所采用的设计方法,并描述其具体实施过程和效果。

解析:

第一个方面,简要描述了参与者设计的软件系统是一个电子商务网站,并指出了在系统设计过程中承担的主要工作,包括软件需求分析、系统设计以及部分模块的开发。

第二个方面,详细阐述了不同的软件设计方法及其适用场景。包括净室方法、结构化设计、面向对象设计和原型法。每一种方法都进行了详细解释,并指出了它们适用的项目类型和特点。

第三个方面,结合实践项目,说明了在电子商务网站项目中采用的设计方法是面向对象的设计。具体实施了使用UML建模、4+1视图的设计方法,并描述了实施过程和效果。同时,也指出了在实施过程中需要注意的问题,如加强对系统架构的把控,避免过度设计等。

2、试题二  论软件系统架构评估及其应用

对于软件系统,尤其是大规模复杂软件系统而言,软件系统架构对于确保最终系统的质量具有十分重要的意义。在系统架构设计结束后,为保证架构设计的合理性、完整性和针对性,保证系统质量,降低成本及投资风险,需要对设计好的系统架构进行评估。架构评估是软件开发过程中的重要环节。

 

请围绕“软件系统架构评估及其应用”论题,依次从以下三个方面进行论述。

1.概要叙述你所参与管理或开发的软件项目,以及你在其中所承担的主要工作。

2.详细阐述有哪些不同的软件系统架构评估方法,并从评估目标、质量属性和评估活动等方面论述其区别。

3.详细说明你所参与的软件开发项目中,使用了哪种评估方法,具体实施过程和效果如何。

参考答案:

1. 简要描述所参与架构评估的软件系统,并明确指出在评估过程中承担的主要工作。

2. 分析软件系统架构评估中所普遍关注的质量属性,并详细阐述每种质量属性的具体含义。

系统架构评估中普遍关注的质量属性包括:

1) 性能

性能是指系统的响应能力,即需要多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件个数。经常用单位事件内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量表示。

2) 可靠性

可靠性是软件系统在应用或者系统错误面前,在意外或者错误使用的情况下维持软件系统的功能特性的基本能力。

3) 可用性

可用性是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。

4) 安全性

安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。

5) 可修改性

可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力,包括可维护性、可扩展性、结构重构、可移植性。

6) 功能性

功能性是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。

7) 可变性

可变性是指体系结构经扩充或变更而成为新体系结构的能力。

8) 互操作性

互操作性是指作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。如程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题。

3. 分析软件系统架构评估种现阶段主要评估方法

业界已开发出多种软件架构评估的方法,按基于的技术手段来看,可以分为三类:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。

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

2) 基于场景的方式:基于场景的方式由SEI首先提出并应用在架构权衡分析法(Architecture Tradeoff Analysis Method, ATAM)和软件架构分析方法(Software Architecture Analysis Method, SAAM)中。它是通过分析软件架构对场景(也就是对系统的使用或修改活动)的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度。

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

    (2) SAAM是最早形成文档并得到广泛应用的软件架构分析方法。SAAM的主要输入是问题描述、需求说明和架构描述,其分析过程主要包括场景开发、架构描述、单个场景评估、场景交互和总体评估。

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

4. 针对实际参与的软件系统架构评估,说明所采用的评估方法,并描述其具体实施过程和效果。

解析:

本题要求围绕"软件系统架构评估及其应用"这一主题进行论述,从三个方面阐述了软件系统架构评估的重要性及其应用。

在第一部分,简要描述了参与的软件项目以及在其中承担的主要工作,突出了系统架构设计的重要性以及自身在其中的角色和贡献。

在第二部分,详细阐述了软件系统架构评估中普遍关注的质量属性,包括性能、可靠性、可用性、安全性等,并对每个质量属性进行了具体的解释和阐述。接着分析了软件系统架构评估的三种主要方法,包括基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式,并详细阐述了每种方法的原理和应用。

在第三部分,针对实际参与的软件系统架构评估,说明了所采用的评估方法(基于场景的ATAM架构评估方法),并详细描述了其具体实施过程和效果。通过这个过程和效果的描述,展示了自身在软件开发项目中如何运用架构评估方法,以及这些方法带来的实际效果和贡献。

3、试题三  论数据湖技术及其应用

近年来,随着移动互联网、物联网、工业互联网等技术的不断发展,企业级应用面临的数据规模不断增大,数据类型异常复杂。针对这一问题,业界提出“数据湖(Data Lake)”这一新型的企业数据管理技术。数据湖是一个存储企业各种原始数据的大型仓库,支持对任意规模的结构化、半结构化和非结构化数据进行集中式存储,数据按照原有结构进行存储,无须进行结构化处理;数据湖中的数据可供存取、处理、分析及传输,支撑大数据处理、实时分析、机器学习、数据可视化等多种应用,最终支持企业的智能决策过程。

 

请围绕“数据湖技术及其应用”论题,依次从以下三个方面进行论述。

1.概要叙述你所参与管理或开发的软件项目,以及你在其中所承担的主要工作。

2.详细阐述数据湖技术,并从主要数据来源、数据模式(Schema)转换时机、数据存储成本、数据质量、面对用户和主要支撑应用类型等5个方面详细论述数据湖技术与数据仓库技术的差异。

3.详细说明你所参与的软件开发项目中,如何采用数据湖技术进行企业数据管理,并说明具体实施过程及应用效果。

参考答案:

【试题三:论数据湖技术及其应用】写作要点

1.简要叙述所参与的大数据或数据湖系统项目,并明确指出在其中承担的职务和主要工作。

2.分析并阐述数据湖技术:

1) 大数据的由来和表现。

2) 大数据5V特性

3) 大数据与数据仓库

4) 数据仓库的4个特性

3. 分析并阐述数据湖技术:

1) 数据仓库的缺点

2) 数据湖的技术特点

3) 数据湖的概念

4) 数据库的特性

4. 分析并对比数据湖(Data Lake, DL)与数据仓库(Data Warehouse, DW)

1) 数据来源

DW:从外部数据源获取

DL:既可从外部数据源获取,也可从外部应用或外部存储获取

1) 数据模式(Schema)转换时机

DW:采用ETL

DL:既支持ETL,也支持ELT

2) 数据存储成本

DW:通常采用ODS-DWD-DW-DM-ST五层架构,存储成本高

DL:通常采用原始数据和流计算,存储成本低

3) 数据质量

DW:依赖数据治理规范,ELT过程损失数据准确度和精度,质量较低

DL:存储原始数据,不损失数据准确度和精度,质量高

5) 面对用户和主要支撑应用类型

DW:联机分析(OLAP)和决策支持(DSS)

DL:物联网、人工智能和以智能制造、智慧城市等为代表的智能赋能应用

5.结合自身参与项目的实际状况,阐述数据湖技术在实际项目中的实施过程和应用效果。

解析:

本题要求围绕"数据湖技术及其应用"进行论述。首先,需要简要介绍参与的项目及在其中承担的主要工作;其次,需要详细阐述数据湖技术,并从数据来源、数据模式转换时机、数据存储成本、数据质量和面对的用户及主要支撑应用类型等五个方面详细论述数据湖技术与数据仓库技术的差异;最后,需要详细说明在项目中如何采用数据湖技术进行企业数据管理,包括具体实施过程及应用效果。

4、试题四  论负载均衡技术在Web系统中的应用

负载均衡技术是提升Web系统性能的重要方法。利用负载均衡技术, 可将负载(工作任务) 进行平衡、分摊到多个操作单元上执行, 从而协同完成工作任务, 达到提升Web系统性能的目的。

 

请围绕“负载均衡技术在Web系统中的应用”论题, 依次从以下三个方面进行论述。

1.概要叙述你参与管理和开发的软件项目,以及你在其中所承担的主要工作。

2.详细阐述常见的三种负载均衡算法,说明算法的基本原理。

3.详细说明你所参与的软件开发项目中, 如何基于负载均衡算法实现Web应用系统的负载均衡。

参考答案:

1.简要叙述所参与管理和开发的Web系统项目,并明确指出在其中承担的主要任务和开展的主要工作。

2.分析并描述负载均衡在Web应用项目高并发、高性能、高可用三高架构中的意义和作用

3. 选择三种常见的通用负载均衡算法,详细阐述负载均衡中的算法和每种算法的基本原理

1) 轮询算法

2) 随机算法

3) 比率算法

4) 优先级算法

5) 最少连接数算法

6) 最快响应时间算法

4.结合实际项目,详细阐述实际参与项目中采用了哪个或哪几个负载均衡算法实现,说明如何在项目中实践应用的负载均衡,并阐述负载均衡技术在项目中的应用效果。

解析:

本题要求围绕"负载均衡技术在Web系统中的应用"进行论述,答案中首先介绍了参与开发和管理的软件项目以及承担的主要工作,然后详细阐述了负载均衡在Web系统中的作用和常见的负载均衡算法的基本原理,最后结合实际项目,详细说明了如何在项目中应用负载均衡技术,并阐述了应用效果。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2019年11月系统架构设计师-论文答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share