软考:案例题分析1101
22年第一题:架构设计与评估
分析文字,识别需求和质量属性?这里需要记忆质量属性有那些,区分需求和质量属性,能区分出质量属性之间的区别。
我的回答:
差距分析:
根据题目中功能的特点,分析使用什么架构风格,这个题目考虑作为架构师,能根据场景,选择适合的架构风格,考察对架构风格的了解程度,能够回答到要点。
我的回答:面对对象架构风格具有较好的可读性,耦合性低,但是不支持动态的修改,如果要修改功能,需要修改代码;解释器架构风格具有较好的灵活性,可以根据输入自定义规则来实现对于的功能;根据题目中的要求,选择解释器风格更合适。
差距分析:
1、需要先分别从题目的三个特性依次对比分析
2、最后总结结论
3、对于架构风格不熟练
解释器架构风格
解释器框架风格(Interpreter Framework Style)是一种软件架构风格,其核心思想是构建一个解释器(Interpreter)来解释并执行特定领域或问题领域的语言或规则。它能够读取、解析和执行用户提供的程序代码,通常是基于文本的源代码
。归属于虚拟机大类型的架构风格。
名称:解释器。解释什么:解释语言DSL,就是输入,将语言映射翻译去执行。很灵活,灵活带来的代码就是效率比较慢。为什么说灵活,运维它解释运行,运行的适合编译,那么就可以修改完成代码后立马执行。
应用场景:
• 脚本语言:许多脚本语言(如Python、JavaScript、Ruby等)采用解释器架构,允许用户编写可立即执行的脚本,无需预先编译。
• 嵌入式系统:在某些嵌入式环境中,解释器用于执行定制的配置脚本或控制逻辑,简化设备管理和应用程序定制。
• 数据库查询语言:SQL查询语言就是一个典型的例子,数据库管理系统内置了SQL解释器,用于解析和执行用户提交的查询语句。
• 规则引擎:在业务规则管理系统中,解释器用于解析和执行用特定规则语言编写的业务规则,根据实时数据做出决策。
• 教育与科研:解释器常用于教学环境和研究项目,帮助学生学习编程概念或实验新的编程语言设计。
• 游戏开发:游戏引擎中可能包含脚本解释器,让设计师使用易于理解的语言编写游戏逻辑,无需深入掌握底层编程语言。
• 专家系统:早期的专家系统中,解释器用于执行知识工程师编写的规则集,模拟人类专家的决策过程。
总的来说,解释器架构风格通过提供一个能够理解并执行特定语言的解释器,支持用户以高抽象级别编写程序,适用于需要快速原型设计、动态执行或使用特定领域语言的场景。尽管其执行效率可能低于编译型系统,但这种风格提供的灵活性、易用性和跨平台能力在很多情况下弥补了这一不足。
特点:
-
领域特定语言(DSL):
解释器框架风格通常用于实现领域特定语言(DSL),这是一种针对特定问题领域的语言。DSL使得问题领域的规则和逻辑更容易理解和表达。 -
模块化的解释器:
架构中通常包含一个或多个模块化的解释器,每个解释器负责解释特定部分
的DSL或规则。这些解释器可以组合
在一起以执行复杂的任务。 -
灵活性:
解释器框架风格提供了高度的灵活性,因为它允许动态地添加、修改或替换解释器
,以适应不断变化的需求。 -
可扩展性:
架构可以轻松扩展以支持新的DSL
或规则,而不会对现有的解释器产生影响。 -
多层次的解释:
解释器可以构建成多层次的结构,其中一个解释器可以调用另一个解释器,从而实现复杂的解释和执行逻辑。 -
易于
维护和修改
:
由于DSL和解释器的模块化性质,维护和修改系统变得相对容易。新的规则或语法可以通过添加新的解释器来支持,而不需要修改现有的代码。
22年第二题:软件架构设计与建模
数据流图,数据流分层,数据平衡原则
我的答案:数据平衡原则是指数据在每一次的流入和流出要相同。要避免只有流入没有流出,也要避免只有流出,没有流入。
差距分析:
1、层间平衡:不同层次之间,相同数据流的个数和方向要一致
2、图内平衡:避免有输入无输出的黑洞,避免有输出无输入的奇迹
其他考点:
数据流图是组成,实体,加工
,存储,数据流;
数据流图是用在分析阶段使用,用来进行建立模型,来分析系统的功能有那些,有那些实体,它通常来结合数据字典。
数据流图是属于结构化设计分析的工具。
软件工程中通常由结构化和面向对象分析和设计两种方式。
描述DFD和DD在分析和设计阶段的作用。
我的答案:
1、在需求分析阶段,通过分析需求,得到数据流图,可以识别到系统的行为和功能,明确数据处理的过程,明确系统处理的实体由那些。通过DD来分析记录实体和动作,来为分析阶段奠定基础
2、在设计阶段,数据流图可以帮助进行ER图的设计,软件架构图的设计,识别软件模块,进行软件模块划分
3、总之:两个技术手段在结构化分析中都非常重要。
差距:
1、分析阶段,通过XX方式,可以反映出系统必须完成的逻辑功能,尽可能早发现是否由需要输入或者输出的信息被遗漏,以及系统各部分的逻辑是否由错误,数据字典是描述数据的信息集合,统一语言和理解
2、设计阶段,变换分析和事务分析
的方法,设计出模块结构,根据数据字典的数据存储描述建立数据库存储设计
补充:变换分析和事务分析:解释和概念