免费智能真题库 > 历年试卷 > 系统架构设计师 > 2016年下半年 系统架构设计师 上午试卷 综合知识
  第45题      
  知识点:   特定领域软件架构   角色   软件体系结构   体系结构   应用领域   组织结构
  关键词:   DSS   SA   软件体系结构   组织结构        章/节:   特定领域软件架构       

 
DSSA是在一个特定应用领域中为一组应用提供组织结构参考的软件体系结构,参与DSSA的人员可以划分为4种角色,包括领域专家、领域设计人员、领域实现人员和(45),其基本活动包括领域分析、领域设计和(46)。
 
 
  A.  领域测试人员
 
  B.  领域顾问
 
  C.  领域分析师
 
  D.  领域经理
 
 
 

 
  第53题    2010年下半年  
   60%
特定领域软件架构(DSSA)是在一个特定应用领域为一组应用提供组织结构参考的标准软件架构。实施DSSA的过程中包括一系列基本的活动..
  第54题    2012年下半年  
   44%
特定领域软件架构(Domain Specific Software Architecture, DSSA)是在一个特定应用领域中,为一组应用提供组织结构参考的标准软..
  第53题    2015年下半年  
   59%
特定领域软件架构(Domain Specific Software Architecture, DSSA)以一个特定问题领域为对象,形成由领域参考模型,参考需求,(..
   知识点讲解    
   · 特定领域软件架构    · 角色    · 软件体系结构    · 体系结构    · 应用领域    · 组织结构
 
       特定领域软件架构
        特定领域软件架构(Domain Specific Software Architecture,DSSA)是在一个特定应用领域中为一组应用提供组织结构参考的标准软件架构,是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考架构等组成的开发基础,其目标是支持在一个特定领域中多个应用的生成。
        关于DSSA中“领域”的含义,从功能覆盖的范围角度可以有两种理解方式:
        (1)垂直域:定义了一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件架构。
        (2)水平域:定义了在多个系统和多个系统族中功能区域的共有部分,在子系统级上涵盖多个系统族的特定部分功能,但无法为系统提供完整的通用架构。
        :在垂直域上定义的DSSA只能应用于一个成熟的、稳定的领域,但这个条件比较难以满足;若将领域分割成较小的范围,则更相对容易,也容易得到一个一致的解决方案。
                      DSSA的基本活动
                      实施DSSA的过程中包含了一些基本的活动。虽然具体的DSSA方法可能定义不同的概念、步骤、产品等,但这些基本活动是大体上一致的。以下将分3个阶段介绍这些活动。
                      (1)领域分析。这个阶段的主要目标是获得领域模型。领域模型描述领域中系统之间的共同的需求。我们称领域模型所描述的需求为领域需求。在这个阶段中首先要进行一些准备性的活动,包括定义领域的边界,从而明确分析的对象;识别信息源,即领域分析和整个领域工程过程中信息的来源。在此基础上,就可以分析领域中系统的需求,确定哪些需求是被领域中的系统广泛共享的,从而建立领域模型。领域分析的机制如下图所示。
                      
                      领域分析机制
                      (2)领域设计。这个阶段的目标是获得DSSA。DSSA描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。建立了领域模型之后,就可以派生出满足这些被建模的领域需求的DSSA。由于领域模型中的领域需求具有一定的变化性,DSSA也要相应地具有变化性。它可以通过表示多选一的、可选的解决方案等来做到这一点。由于重用基础设施是依据领域模型和DSSA来组织的,因此在这个阶段通过获得DSSA,也就同时形成了重用基础设施的规约。
                      (3)领域实现。这个阶段的主要目标是依据领域模型和DSSA开发和组织可重用信息。这些可重用信息可能是从现有系统中提取得到,也可能需要通过新的开发得到。
                      :以上过程是一个反复的、逐渐求精的过程。在实施领域工程的每个阶段中,都可能返回到以前的步骤,对以前的步骤得到的结果进行修改和完善,再回到当前步骤,在新的基础上进行本阶段的活动。
                      如上图所示,参与DSSA的人员可以划分为4种角色:领域专家、领域分析师、领域设计人员和领域实现人员。
                      DSSA的建立过程
                      因所在的领域不同,DSSA的创建和使用过程也各有差异,Tracz曾提出了一个通用的DSSA应用过程,这些过程也需要根据所应用到的领域来进行调整。DSSA的建立过程分为5个阶段,每个阶段可以进一步划分为一些步骤或子阶段。每个阶段包括一组需要回答的问题,一组需要的输入,一组将产生的输出和验证标准。DSSA的建立过程是并发的、递归的、反复的,或者可以说,它是螺旋型的。
                      (1)定义领域范围:确定什么在感兴趣的领域中以及本过程到何时结束。这个阶段的一个主要输出是领域中的应用需要满足一系列用户的需求。
                      (2)定义领域特定的元素:编译领域字典和领域术语的同义词词典。在领域工程过程的前一个阶段产生的高层块图将被增加更多的细节,特别是识别领域中应用间的共同性和差异性。
                      (3)定义领域特定的设计和实现需求约束:描述解空间中有差别的特性。不仅要识别出约束,并且要记录约束对设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论。
                      (4)定义领域模型和架构:产生一般的架构,并说明构成它们的模块或构件的语法和语义。
                      (5)产生、搜集可重用的产品单元:为DSSA增加构件使得它可以被用来产生问题域中的新应用。
                      DSSA的建立过程的目的是将用户的需要映射为基于实现限制集合的软件需求,这些需求定义了DSSA。下图是DSSA的一个三层次系统模型。
                      
                      DSSA的三层次的系统模型
                      DSSA的建立需要架构设计师对所在特定应用领域(包括问题域和解决域)必须精通,他们要找到合适的抽象方式来实现DSSA的通用性和可重用性。通常DSSA以一种逐渐演化的方式发展。
                      DSSA与架构风格的比较
                      在软件架构的发展过程中,因为研究者的出发点不同,出现了两个互相正交的方法和学科分支:以问题域为出发点的DSSA和以解决域为出发点的软件架构风格。因为两者侧重点不同,它们在软件开发中具有不同的应用特点。
                      DSSA只对某一个领域进行设计专家知识的提取、存储和组织,但可以同时使用多种架构风格;而在某个架构风格中进行架构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个应用领域。
                      DSSA的特定领域参考架构通常选用一个或多个适合所研究领域的架构风格,并设计一个该领域专用的架构分析设计工具。但该方法提取的专家知识只能用于一个较小的范围(所在领域中)。不同参考架构之间基础和概念的共同点较少,所以为一个领域开发DSSA及其工具在另一个领域中是不适应的或不可重用的,而工具的开发成本是相当高的。
                      架构风格的定义和该风格应用的领域是正交的,提取的设计知识比用DSSA提取的设计专家知识的应用范围要广。一般的、可调整的系统基础可以避免涉及特定的领域背景,所以建立一个特定风格的架构设计环境的成本比建立一个DSSA参考架构和工具库的成本要低得很多。因为对特定领域内的专家知识和经验的忽略,使其在一个具体的应用开发中所起的作用并不比DSSA要大。
                      DSSA和架构风格是互为补充的两种技术。在大型软件开发项目中基于领域的设计专家知识和以风格为中心的架构设计专家知识都扮演着重要的角色。
 
       角色
        考虑一个有很多出纳的银行。每一个出纳必须对同一组关系具有同种类型的权限。无论何时指定一个新的出纳,他都必须被单独授予所有这些授权。
        一个更好的机制是指明所有出纳应该有的授权,并单独标示出哪些数据库用户是出纳。系统可以用这两条信息来确定每一个有出纳身份的人的权限。当一个人被新雇佣为出纳时,必须给他分配一个用户标识符,并且必须将他标示为一个出纳,而不需要重新单独给予出纳权限。
        角色(role)的概念可用于该机制。在数据库中建立一个角色集,和授予每一个单个用户一样,可将权限授予角色。分配给每个数据库用户一些他(或她)有权扮演的角色(也可能是空的)。
        事实上,在银行的数据库里,角色的例子可以包括system-administrator、branch-manager、teller和auditor。一个不是很合适的方法是建立一个teller用户号,允许每一个出纳用这个出纳用户号来连接数据库。该机制的问题是它无法鉴别出到底哪个出纳执行了事务,从而导致安全隐患。应用角色的好处是需要每个用户用自己的用户号连接数据库。
        任何可以授予一个用户的权限都可以授予一个角色。给用户分配角色就跟给用户授权一样。与其他授权一样,一个用户也可以被授予给他人分配角色的权限。这样,可以授予支行经理(branch-manager)分配出纳角色的权限。
 
       软件体系结构
        随着嵌入式技术的发展,特别是在后PC时代,嵌入式软件系统得到了极大的丰富和发展,形成了一个完整的软件体系。如下图所示,这个体系自底向上由3部分组成,分别是嵌入式操作系统、支撑软件和应用软件。
        
        嵌入式系统的软件体系结构
        嵌入式操作系统(Embedded Operating System, EOS)由操作系统内核、应用程序接口、设备驱动程序接口等几部分组成。嵌入式操作一般采用微内核结构。操作系统只负责进程的调度、进程间的通信、内存分配及异常与中断管理最基本的任务,其他大部分的功能则由支撑软件完成。
        嵌入式系统中的支撑软件由窗口系统、网络系统、数据库管理系统及Java虚拟机等几部分组成。对于嵌入式系统来讲,软件的开发环境大部分在通用台式计算机和工作站上运行,但从逻辑上讲,它仍然被认为是嵌入式系统支撑软件的一部分。支撑软件一般用于一些浅度嵌入的系统中,如智能手机、个人数字助理等。
        嵌入式系统中的应用软件是系统整体功能的集中体现。系统的能力总是通过应用软件表现出来的。
 
       体系结构
        RPR的体系结构如下图所示。RPR采用了双环结构,由内层的环1和外层的环0组成,每个环都是单方向传送。相邻工作站之间的跨距包含传送方向相反的两条链路。RPR支持多达255个工作站,最大环周长为2000km。
        
        RPR体系结构
 
       应用领域
        Java目前主要应用于服务器端的企业级应用(Servlet、JSP)、手持设备(J2ME、K-Java、无线Java)、普通网页(Applet)、普通应用程序。
 
       组织结构
        实施项目的组织结构对能否获得项目所需资源和以何种条件获取资源起着制约作用。组织结构一般有三种类型:职能型、矩阵型和项目型。矩阵型可进一步划分为弱矩阵、平衡矩阵和强矩阵。不同组织结构的区别如下表所示。
        
        组织结构的三种类型
        各种组织结构都有其优缺点,如下表所示。
        
        组织结构的优缺点
        很多组织在不同的组织层级上用到上述所有的结构,这种组织通常被称为复合型组织。例如,在典型的职能型组织中建立专门的项目团队来实施重要的项目;又如,组织采用强矩阵结构管理其大多数项目,而小项目则采用职能型结构管理。
   题号导航      2016年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第45题    在手机中做本题