免费智能真题库 > 历年试卷 > 系统架构设计师 > 2010年下半年 系统架构设计师 上午试卷 综合知识
  第27题      
  知识点:   软件架构建模   统一过程
  章/节:   软件开发方法   软件架构基础知识       

 
在RUP中采用“4+1”视图模型来描述软件系统的体系结构。在该模型中,最终用户侧重于(26),系统工程师侧重于(27)。
 
 
  A.  实现视图
 
  B.  进程视图
 
  C.  逻辑视图
 
  D.  部署视图
 
 
 

 
  第35题    2009年下半年  
   43%
基于构件的开发模型包括软件的需求分析定义、(35)、 (36)、 (37),以及测试和发布5个顺序执行的阶段。
  第25题    2012年下半年  
   36%
以下关于软件生存周期模型的叙述,正确的是(25)。
  第27题    2011年下半年  
   50%
RUP是一个二维的软件开发模型,其核心特点之一是(27)。RUP将软件开发生存周期划分为多个循环(cycle),每个循环由4个连续的阶段组..
 
  第43题    2012年下半年  
   64%
采用以架构为核心的软件开发方法,在建立软件架构的初期,首要任务是选择一个合适的(42),在此基础上,开发人员通过架构模型,可..
  第55题    2019年下半年  
   39%
设计模式按照目的可以划分为三类,其中,   (54)   模式是对对象实例化过程的抽象。例如  &..
  第41题    2015年下半年  
   37%
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格反映领域中众多系统所共有的结构和(40),强调对架构(..
   知识点讲解    
   · 软件架构建模    · 统一过程
 
       软件架构建模
        设计软件架构的首要问题是如何表示软件架构,即如何对软件架构建模。根据建模的侧重点不同,可以将软件架构的模型分为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):可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发架构时,它可以帮助设计者找到架构的构件和它们之间的作用关系。同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。场景可以用文本表示,也可以用图形表示。
        :逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。对于不同的软件系统来说,侧重点也有所不同。例如,对于管理信息系统来说,比较侧重于从逻辑视图和开发视图来描述系统,而对于实时控制系统来说,则比较注重于从进程视图和物理视图来描述系统。
 
       统一过程
        统一过程(Unified Process,UP)是一个通用过程框架,可以用于种类广泛的软件系统、不同的应用领域、不同的组织类型、不同的性能水平和不同的项目规模。UP是基于构件的,在为软件系统建模时,UP使用的是UML。与其他软件过程相比,UP具有三个显著的特点,即用例驱动、以基本架构为中心、迭代和增量。
        UP中的软件过程在时间上被分解为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经达到。如果评审结果令人满意,就可以允许项目进入下一个阶段。
        基于UP的软件过程是一个迭代过程。初始、细化、构建和交付4个阶段就是一个开发周期,每次经过这四个阶段就会产生一代软件。除非产品退役,否则通过重复同样的四个阶段,产品将演化为下一代产品,但每一次的侧重点都将放在不同的阶段上。这些随后的过程称为演化过程。
        初始阶段的任务是为系统建立业务模型并确定项目的边界。在初始阶段,必须识别所有与系统交互的外部实体,定义系统与外部实体交互的特性。在这个阶段中所关注的是整个项目的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来说,初始阶段可能很短。
        细化阶段的任务是分析问题领域,建立健全的架构基础,淘汰项目中最高风险的元素。在细化阶段,必须在理解整个系统的基础上,对架构做出决策,包括其范围、主要功能和诸如性能等非功能需求,同时为项目建立支持环境。
        在构建阶段,要开发所有剩余的构件和应用程序功能,把这些构件集成为产品,并进行详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制操作,以优化成本、进度和质量。构建阶段的主要任务是通过优化资源和避免不必要的报废和返工,使开发成本降到最低;完成所有所需功能的分析、开发和测试,快速完成可用的版本;确定软件、场地和用户是否已经为部署软件做好准备。在构建阶段,开发团队的工作可以实现某种程度的并行。即使是较小的项目,也通常包括可以相互独立开发的构件,从而使各团队之间实现并行开发。
        当基线已经足够完善,可以安装到最终用户实际环境中时,则进入交付阶段。交付阶段的重点是确保软件对最终用户是可用的。交付阶段的主要任务是进行β测试,制作产品发布版本;对最终用户支持文档定稿;按用户的需求确认新系统;培训用户和维护人员;获得用户对当前版本的反馈,基于反馈调整产品,如进行调试、性能或可用性的增强等。根据产品的种类,交付阶段可能非常简单,也可能非常复杂。例如,发布现有桌面产品的新发布版本可能十分简单,而替换一个国家的航空交通管制系统可能就非常复杂。交付阶段结束时也要进行技术评审,评审目标是否实现,是否应该开始演化过程,用户对交付的产品是否满意等。
        在进度和工作量方面,所有阶段都各不相同。尽管不同的项目有很大的不同,但一个中等规模项目的典型初始开发周期应该预先考虑到工作量和进度间的分配,如下表所示。
        
        RUP各阶段的工作量和进度分配
        对于演进周期,初始和细化阶段就小得多了。能够自动完成某些构建工作的工具将会缓解此现象,并使得构建阶段比初始阶段和细化阶段的总和还要小很多。
        通过这四个阶段就是一个开发周期每次经过这四个阶段就会产生一代软件。产品经历几个周期后,新一代产品随之产生。
        UP的工作流程分为两部分,即核心工作流程与核心支持工作流程。核心工作流程(在项目中的流程)包括业务需求建模、分析设计、实施、测试和部署;核心支持工作流程(在组织中的流程)包括环境、项目管理、配置与变更管理。
        :由于统一过程首先是Rational公司提出来的,所以一般称为RUP(Rational Unified Process)。后来由于Rational公司被IBM公司收购,于是又有人称之为IBM RUP。
   题号导航      2010年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第27题    在手机中做本题