全部科目 > 系统架构设计师 >
2026年上半年 上午试卷 综合知识
第 31 题
知识点 SAAM评估方法   软件架构   静态分析方法  
关键词 静态分析   软件架构  
章/节 软件架构评估  
 
 
下列属于软件架构静态分析方法的是()
 
  A.  SAAM
 
  B.  SAABNet
 
  C.  SASAM
 
  D.  ATAM




 
 
相关试题     软件架构评估 

  第48题    2023年下半年  
在SAAM(软件架构分析方法)中,主要的输入文档包括问题描述、()和架构描述文档

  第49题    2010年下半年  
某公司欲为某种型号的示波器开发内置软件。该公司的架构师设计了如下图所示的软件架构。在软件架构评审时,专家认为该架构存在的问题是(49)。


  第45题    2021年下半年  
在架构评估过程中,评估人员所关注的是系统的质量属性。其中,(44)是指系统的响应能力:即费经过多长的间才能对某个事件做出响应,或者在某段时间内系统所能处理的..

 
知识点讲解
· SAAM评估方法
· 软件架构
· 静态分析方法
 
        SAAM评估方法
        SAAM方法是最早形成文档并得到广泛使用的软件架构分析方法,最初是用来分析架构的可修改性的,但实践证明,SAAM方法也可用于对许多其他质量属性及系统功能进行快速评估。
        与ATAM方法相比,SAAM比较简单,这种方法易学易用,进行培训和准备的工作量都比较少。SAAM评估可以分6个步骤进行,在这些步骤进行之前,通常有必要对系统做简要的介绍,包括对架构的业务目标的说明等。
        (1)形成场景。在形成场景的过程中,要注意全面捕捉系统的主要用途、系统用户类型、系统将来可能的变更、系统在当前及可预见的未来必须满足的质量属性等信息。只有这样,形成的场景才能代表与各种项目干系人相关的任务。
        (2)描述架构。在这一步,架构设计师应该采用参加评估的所有人员都能够充分理解的形式,对待评估的架构进行适当的描述。这种描述必须要说明系统中的运算和数据构件,也要讲清它们之间的联系。除了要描述这些静态特性外,还要对系统在某段时间内的动态特征做出说明。描述既可采用自然语言,也可采用形式化的手段。
        (3)对场景进行分类和确定优先级。在SAAM评估中,场景就是对所期望的系统中某个使用情况的简短描述。架构可能直接支持该场景,即这一预计的使用情况不需要对架构做任何修改即可实现,一般可以通过演示现有的架构在执行此场景时的表示来确定。在SAAM评估方法中称这样的场景为直接场景。也就是说,直接场景就是按照现有架构开发出来的系统能够直接实现的场景。与在设计时已经考虑过的需求相对应的直接场景并不会让项目干系人们感到意外,但将增进对架构的理解,促进对诸如性能和可靠性等其他质量属性的研究。
        (4)对间接场景的单个评估。一旦确定了要考虑的一组场景,就要把这些场景与架构的描述对应起来。对于直接场景而言,架构设计师需要讲清所评估的架构将如何执行这些场景;对于间接场景而言,架构设计师应说明需要对架构做哪些修改才能适应间接场景的要求。
        (5)评估场景的相互作用。当两个或多个间接场景要求更改架构的同一个构件时,我们就称这些场景在这一组构件上相互作用。
        (6)形成总体评估。最后,评估人员要对场景和场景之间的交互作一个总体的权衡和评价,这一权衡反映该组织对表现在不同场景中的目标的考虑优先级。根据对系统成功的相对重要性来为每个场景设置一个权值,权值的确定通常要与每个场景所支持的业务目标联系起来。如果是要比较多个架构,或者针对同一架构提出了多个不同的方案,则可通过权值的确定来得出总体评价。权值的设置具有很强的主观性,所以,应该让所有项目干系人共同参与,但也应合理组织,要允许对权值及其基本思想进行公开讨论。
        上述6个步骤是关于SAAM评估中技术方面的问题,与ATAM评估方法类似,在进行SAAM评估时,也要考虑合作关系、准备工作等问题。需要对评估会议的时间做出安排、确定评估小组的人员组成、确定会议室、邀请各类项目干系人、编制会议日程等,这些工作都是必需的。
 
        软件架构
        随着嵌入式技术的发展,特别是在后PC时代,嵌入式软件系统得到了极大的丰富和发展,形成了一个完整的软件体系,如下图所示。这个体系自底向上由3部分组成,分别是嵌入式操作系统、支撑软件和应用软件。
        
        嵌入式系统的软件架构
        嵌入式操作系统(Embedded Operating System,EOS)由操作系统内核、应用程序接口、设备驱动程序接口等几部分组成。嵌入式操作一般采用微内核结构。操作系统只负责进程的调度、进程间的通信、内存分配及异常与中断管理最基本的任务,其他大部分的功能则由支撑软件完成。
        嵌入式系统中的支撑软件由窗口系统、网络系统、数据库管理系统及Java虚拟机等几部分组成。对于嵌入式系统来讲,软件的开发环境大部分在通用台式计算机和工作站上运行,但从逻辑上讲,它仍然被认为是嵌入式系统支撑软件的一部分。支撑软件一般用于一些浅度嵌入的系统中,如智能手机、个人数字助理等。
        嵌入式系统中的应用软件是系统整体功能的集中体现。系统的能力总是通过应用软件表现出来的。
 
        静态分析方法
        恶意代码的静态分析主要包括以下方法:
        (1)反恶意代码软件的检测和分析。反恶意代码软件检测恶意代码的方法有特征代码法、校验和法、行为监测法、软件模拟法等。根据恶意代码的信息去搜寻更多的资料,若该恶意代码的分析数据已被反恶意代码软件收录,那就可以直接利用它们的分析结果。
        (2)字符串分析。字符串分析的目的是寻找文件中使用的ASCII或其他方法编码的连续字符串。一些有用的信息可以通过在恶意代码样本中搜寻字符串得到,比如:①恶意代码的名字;②帮助和命令行选项;③用户对话框,可以通过它分析恶意代码的目的;④后门密码;⑤恶意代码相关的网址;⑥恶意代码作者或者攻击者的E-mail地址;⑦恶意代码用到的库,函数调用,以及其他的可执行文件;⑧其他的有用的信息。
        (3)脚本分析。恶意代码如果是用JS、Perl或者shell脚本等脚本语言编写的,那么恶意代码本身就可能带有源代码。通过文本编辑器将脚本打开查看源代码。脚本分析能帮助分析者用较短时间识别出大量流行的脚本类型,下表列出了常用脚本语言。
        
        常用脚本语言
        (4)静态反编译分析。对于携带解释器的恶意代码可以采用反编译工具查看源代码。源代码在编译时,代码会被编译器优化,组成部分被重写,使得程序更适合解释和执行,上述面向计算机优化的特性,使得编译的代码不适合逆向编译。因此,逆向编译是将对机器优化的代码重新转化成源代码,这使得程序结构和流程分离开来,同时变量的名字由机器自动生成,这使得逆向编译的代码有着较差的可读性。下表列出了一些反编译工具,它们能够生成被编译程序的C或者Java语言的源代码。
        
        反编译工具
        (5)静态反汇编分析。有线性遍历和递归遍历两种方法。GNU程序objdump和一些链接优化工具使用线性遍历算法从输入程序的入口点开始反汇编,简单地遍历程序的整个代码区,反汇编它所遇到的每一条指令。虽然方法简单,但存在不能够处理嵌入指令流中的数据的问题,如跳转表。递归遍历算法试图用反汇编出来的控制流指令来指导反汇编过程,以此解决上面线性遍历所存在的问题。直观地说,无论何时反汇编器遇到一个分支或者CALL指令,反汇编都从那条指令的可能的后续指令继续执行。很多的二进制传输和优化系统采用这种方法。其缺点是很难正确判定间接控制转移的可能目标。恶意代码被反汇编后,就可用控制流分析来构造它的流程图,该图又可以被许多的数据流分析工具所使用。由于控制流程图是大多数静态分析的基础,所以不正确的流程图反过来会使整个静态分析过程得到错误的结果。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2026 All Rights Reserved
软考在线版权所有