免费智能真题库 > 历年试卷 > 系统架构设计师 > 2024年下半年 系统架构设计师 上午试卷 综合知识
  第70题      
  知识点:   模式和软件架构   软件架构建模
  章/节:   软件架构基础知识   设计模式       

 
下面哪项是可复用资产的顺序。
 
 
  A.  分析可复用资产、使用可复用资产、构造/获取可复用资产、 管理可复用资产
 
  B.  分析可复用资产、构造/获取可复用资产、使用可复用资产管理可复用资产
 
  C.  分析可复用资产、管理可复用资产、构造/获取可复用资产、使用可复用资产
 
  D.  分析可复用资产、构造/获取可复用资产、管理可复用资产、使用可复用资产
 
 
 

  相关试题:软件架构基础知识          更多>  
 
  第64题    2025年上半年  
   0%
1995年Kruchten提出了著名的“4+1”视图,用来描述软件系统的架构。在“4+1” 视图中,(46)用来描述设计的对..
  第45题    2018年下半年  
   52%
特定领域软件架构(Domain Specific Software Architecture, DSSA)的基本活动包括领域分析、领域设计和领域实现。其中,领域分析..
  第42题    2012年下半年  
   27%
采用以架构为核心的软件开发方法,在建立软件架构的初期,首要任务是选择一个合适的(42),在此基础上,开发人员通过架构模型,可..
  相关试题:设计模式          更多>  
 
  第49题    2012年下半年  
   59%
若系统中的某子模块需要为其他模块提供访问不同数据库系统的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是..
  第57题    2025年下半年  
   0%
某公司欲开发一个用于分布式登录的服务端程序,使用面向连接的TCP协议并发地处理多客户端登录请求。用户要求该服务端程序运行在L..
  第50题    2014年下半年  
   39%
某公司欲开发一个用于分布式登录的服务端程序,使用面向连接的TCP协议并发地处理多客户端登录请求。用户要求该服务端程序运行在L..
   知识点讲解    
   · 模式和软件架构    · 软件架构建模
 
       模式和软件架构
        判断模式取得成功的一个重要准则是它们在多大程度上达到了软件工程的目标。模式必须支持复杂的、大规模系统的开发、维护以及演化。
               模式作为架构构造块
               我们已经知道,在开发软件时,模式是处理受限的特定设计方面的有用构造块。因此,对软件架构而言,模式的一个重要目标就是用已定义属性进行特定的软件架构的构造。例如,MVC模式提供了一个结构,用于交互应用程序的用户界面的裁剪。
               软件架构的一般技术,例如使用面向对象特征(如继承和多态性),并没有针对特定问题的解决方案。绝大多数现有的分析和设计方法在这一层次也是失败的。它们仅仅提供构建软件的一般技术,特定架构的创建仍然基于直觉和经验。模式使用特定的面向问题的技术来有效补充这些通用的与问题无关的架构技术。注意,模式不会舍弃软件架构的现有解决方案,相反,它们填补了一个没有被现有技术覆盖的缺口。
               构造异构架构
               单个模式不能完成一个完整的软件架构的详细构造,它仅仅帮助设计师设计应用程序的某个方面,即使正确设计了这个方面,整个架构仍然可能达不到期望的所有属性。为整体上达到软件架构的需求,我们需要一套丰富的涵盖许多不同设计问题的模式。可获得的模式越多,能够被适当解决的设计问题也会越多,并且可以更有力地支持构造带有已定义属性的软件架构。
               为了有效使用模式,我们需要将它们组织成模式系统。模式系统统一描述模式,对它们分类,更重要的是,说明它们之间如何交互。模式系统也有助于设计师找到正确的模式来解决一个问题或确认一个可选解决方案。这和模式目录相反,在模式目录中每个模式描述的多少与别的模式无关。
               模式和方法
               好的模式描述也包含它的实现指南,可将其看成是一种微方法,用来创建解决一个特定问题的方案。通过提供方法的步骤来解决软件开发中的具体再现问题,这些微方法补充了通用的但与问题无关的分析和设计方法。
               模式的实现
               从模式与软件架构的集成中产生的另一个方面是用来实现这些模式的一个范例。目前的许多软件模式具有独特的面向对象风格。所以,人们往往认为,能够有效实现模式的唯一方式是使用面向对象编程语言,其实不然。
               一方面,许多模式确实使用了诸如多态性和继承性等面向对象技术。策略模式和代理模式是这种模式的例子;另一方面,面向对象特征对实现这些模式并不是最重要的。例如,在C语言中实现策略模式可以通过采用函数指针来代替多态性和继承性。
               在设计层次,大多数模式只需要适当的编程语言的抽象机制,如模块或数据抽象。因此,可以用几乎所有的编程范例并在几乎所有的编程语言中来实现模式。另外,每种编程语言都有它自己特定的模式,即语言的惯用法。这些惯用法捕获了现有的有关该语言的编程经验并为它定义了一个编程风格。
 
       软件架构建模
        设计软件架构的首要问题是如何表示软件架构,即如何对软件架构建模。根据建模的侧重点不同,可以将软件架构的模型分为5种,分别是结构模型、框架模型、动态模型、过程模型和功能模型。
        (1)结构模型:这是一个最直观、最普遍的建模方法。这种方法以架构的构件、连接件(connector)和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质等。研究结构模型的核心是架构描述语言。
        (2)框架模型:框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。
        (3)动态模型:动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为性质。例如,描述系统的重新配置或演化。动态可以指系统总体结构的配置、建立或拆除通信通道或计算的过程。这类系统常是激励型的。
        (4)过程模型:过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的结果。
        (5)功能模型:该模型认为架构是由一组功能构件按层次组成,下层向上层提供服务。它可以看作是一种特殊的框架模型。
        在这5种模型中,最常用的是结构模型和动态模型。这5种模型各有所长,将5种模型有机地统一在一起,形成一个完整的模型来刻画软件架构更合适。例如,Kruchten在1995年提出了一个“4+1”的视图模型。“4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件架构。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件架构的全部内容。“4+1”视图模型如下图所示。
        
        “4+1”视图模型
        (1)逻辑视图(logic view):主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。逻辑视图中使用的风格为面向对象的风格,逻辑视图设计中要注意的主要问题是要保持一个单一的、内聚的对象模型贯穿整个系统。
        (2)开发视图(development view):也称为模块视图(module view),主要侧重于软件模块的组织和管理。软件可通过程序库或子系统进行组织,这样,对于一个软件系统,就可以由不同的人进行开发。开发视图要考虑软件内部的需求,如软件开发的容易性、软件的重用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统输入输出关系的模型图和子系统图来描述。可以在确定了软件包含的所有元素之后描述完整的开发角度,也可以在确定每个元素之前,列出开发视图原则。
        (3)进程视图(process view):侧重于系统的运行特性,主要关注一些非功能性的需求,例如系统的性能和可用性。进程视图强调并发性、分布性、系统集成性和容错能力,以及逻辑视图中的主要抽象如何适合进程结构。它也定义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。
        (4)物理视图(physical view):主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装、通信等问题。当软件运行于不同的结点上时,各视图中的构件都直接或间接地对应于系统的不同结点上。因此,从软件到结点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小。
        (5)场景(scenarios):可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发架构时,它可以帮助设计者找到架构的构件和它们之间的作用关系。同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。场景可以用文本表示,也可以用图形表示。
        :逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。对于不同的软件系统来说,侧重点也有所不同。例如,对于管理信息系统来说,比较侧重于从逻辑视图和开发视图来描述系统,而对于实时控制系统来说,则比较注重于从进程视图和物理视图来描述系统。
   题号导航      2024年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第70题    在手机中做本题