软考中级

软件架构为软件系统提供了一个结构、行为和属性的高级抽象模式。“4+1”视图模型指用5个视图组成的模型来描述软件架构。其中,(50)描述了软件的静态组织结构,支持软件开发的内部需求。A.物理视图B.逻辑视图C.进程视图D.开发视图

题目

软件架构为软件系统提供了一个结构、行为和属性的高级抽象模式。“4+1”视图模型指用5个视图组成的模型来描述软件架构。其中,(50)描述了软件的静态组织结构,支持软件开发的内部需求。

A.物理视图

B.逻辑视图

C.进程视图

D.开发视图

参考答案和解析
正确答案:D
解析:软件架构是指大型、复杂软件系统结构的设计、规格说明和实施。它以规范的形式装配若干结构元素,从而描述出系统的主要功能和性能要求,同时表述其他非功能性需求(如可靠性、可扩展性、可移植性和可用性等)。软件架构为软件系统提供了一个结构、行为和属性的高级抽象模式,可以使用公式“软件架构={构成系统的元素,指导元素集成的形式,关系和约束}”来表达。
  “4+1”视图模型用5个视图组成的模型来描述软件架构。该模型包含5个主要视图及其实现的功能如表7-7所示。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

MVC模式是软件工程种的一种软件架构模式,把软件系统分为3个基本部分:模型、视图和 。


控制器

第2题:

架构设计使用4+1视图模型描述系统设计,从5个不同的视角来描述软件体系结构。


1)用例图定义了系统的功能需求它完全是从系统的外部观看系统功能并不描述系统内部对功能的具体实现。在用例图中角色代表触发系统功能的用户或其他系统用例代表具体的功能描述。2)类图描述系统的静态结构表示系统中的类以及类与类之间的关系。3)对象图描述了一组对象以及它们之间的关系表示类的对象实例。4)状态图表示一个状态机强调对象行为的事件顺序。5)时序图和协作图均表示一组对象之间的动态协作关系。其中时序图反映对象之间发送消息的时间顺序协作图反映收发消息的对象的结构组织。时序图和协作图是同构 1)用例图定义了系统的功能需求,它完全是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。在用例图中,角色代表触发系统功能的用户或其他系统,用例代表具体的功能描述。2)类图描述系统的静态结构,表示系统中的类以及类与类之间的关系。3)对象图描述了一组对象以及它们之间的关系,表示类的对象实例。4)状态图表示一个状态机,强调对象行为的事件顺序。5)时序图和协作图均表示一组对象之间的动态协作关系。其中,时序图反映对象之间发送消息的时间顺序,协作图反映收发消息的对象的结构组织。时序图和协作图是同构 解析:用例描述了它所代表的功能的各个方面,即包含了用例执行期间可能发生的各种情况。用例和角色之间具有“关联”的连接关系,表示什么角色与该用例进行通信。在UML语言中,用例用一个椭圆图形和名称表示。 在本题中,我们通过题目说明可以识别以下用例: 1.与教师有关的用例 1)选择课程——选择所教的课程,并获得学生名册。 2)登记成绩——在学期结束时,提交学生的课程成绩。 2.与学生有关的用例 1)注册课程——在学期开始进行选课注册,允许在一段时间内更改或删除,课程目录系统提供当前学期的所有可选课程列表。2)查看成绩单——学生可以查看以前学期的电子成绩单。 3.与注册管理员有关的用例 1)维护课程信息——在系统中增加、修改和删除课程信息。2)维护学生信息——在系统中增加、修改和删除学生信息。3)维护教师信息——在系统中增加、修改和删除教师信息。4)关闭注册——删除少于3人的课程,并由付费系统通知学生缴费。 4.与安全性要求有关的用例 登录——使用此系统的人员需要进行登录,以验证其身份和权限。 发现和定义对象类应以问题域和系统责任为出发点,正确地运用抽象原则,尽可能全面地发现对象的因素,并对其进行检查和整理,最终得到系统的对象类。我们可以在用例模型的基础上,通过识别实体类、边界类和控制类,从而发现和定义系统中的对象类。识别上述对象类之后,通过建立交互图,将用例的行为分布到这些对象类中。时序图表示完成某项行为的对象类和这些对象类之间传递消息的时间顺序,其中,对象生命线是一条垂直的虚线,表示对象存在的时间;控制焦点是一个细长的矩形,表示对象执行一个所经历的时间段;消息是对象之间的一条水平箭头线,表示对象之间的通信。协作图包含一组对象和以消息交换为纽带的关联,用于描述系统的行为是如何由系统的成分合作实现的。

第3题:

采用“4+1”视图模型来描述软件系统的体系结构。在该模型中,系统工程师侧重于 ()

A.实现视图

B.进程视图

C.逻辑视图

D.部署视图


逻辑视图

第4题:

架构设计使用4+1视图模型描述系统设计,从5个不同的视角来描述软件体系结构。 ()


1)用例图定义了系统的功能需求它完全是从系统的外部观看系统功能并不描述系统内部对功能的具体实现。在用例图中角色代表触发系统功能的用户或其他系统用例代表具体的功能描述。2)类图描述系统的静态结构表示系统中的类以及类与类之间的关系。3)对象图描述了一组对象以及它们之间的关系表示类的对象实例。4)状态图表示一个状态机强调对象行为的事件顺序。5)时序图和协作图均表示一组对象之间的动态协作关系。其中时序图反映对象之间发送消息的时间顺序协作图反映收发消息的对象的结构组织。时序图和协作图是同构 1)用例图定义了系统的功能需求,它完全是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。在用例图中,角色代表触发系统功能的用户或其他系统,用例代表具体的功能描述。2)类图描述系统的静态结构,表示系统中的类以及类与类之间的关系。3)对象图描述了一组对象以及它们之间的关系,表示类的对象实例。4)状态图表示一个状态机,强调对象行为的事件顺序。5)时序图和协作图均表示一组对象之间的动态协作关系。其中,时序图反映对象之间发送消息的时间顺序,协作图反映收发消息的对象的结构组织。时序图和协作图是同构 解析:用例描述了它所代表的功能的各个方面,即包含了用例执行期间可能发生的各种情况。用例和角色之间具有“关联”的连接关系,表示什么角色与该用例进行通信。在UML语言中,用例用一个椭圆图形和名称表示。 在本题中,我们通过题目说明可以识别以下用例: 1.与教师有关的用例 1)选择课程——选择所教的课程,并获得学生名册。 2)登记成绩——在学期结束时,提交学生的课程成绩。 2.与学生有关的用例 1)注册课程——在学期开始进行选课注册,允许在一段时间内更改或删除,课程目录系统提供当前学期的所有可选课程列表。2)查看成绩单——学生可以查看以前学期的电子成绩单。 3.与注册管理员有关的用例 1)维护课程信息——在系统中增加、修改和删除课程信息。2)维护学生信息——在系统中增加、修改和删除学生信息。3)维护教师信息——在系统中增加、修改和删除教师信息。4)关闭注册——删除少于3人的课程,并由付费系统通知学生缴费。 4.与安全性要求有关的用例 登录——使用此系统的人员需要进行登录,以验证其身份和权限。 发现和定义对象类应以问题域和系统责任为出发点,正确地运用抽象原则,尽可能全面地发现对象的因素,并对其进行检查和整理,最终得到系统的对象类。我们可以在用例模型的基础上,通过识别实体类、边界类和控制类,从而发现和定义系统中的对象类。识别上述对象类之后,通过建立交互图,将用例的行为分布到这些对象类中。时序图表示完成某项行为的对象类和这些对象类之间传递消息的时间顺序,其中,对象生命线是一条垂直的虚线,表示对象存在的时间;控制焦点是一个细长的矩形,表示对象执行一个所经历的时间段;消息是对象之间的一条水平箭头线,表示对象之间的通信。协作图包含一组对象和以消息交换为纽带的关联,用于描述系统的行为是如何由系统的成分合作实现的。

第5题:

阅读以下关于软件架构的叙述,回答问题1至问题3。

软件架构是指大型、复杂软件的系统结构的设计、规格说明和实施。它以规范的形式装配若干结构元素,从而描述出系统的主要功能和性能需求,同时表述其他非功能性需求(如可靠性、可扩展性、可移植性和可用性等)。软件架构为软件系统提供了一个结构、行为和属性的高级抽象模式,可以使用一个公式来表达:

软件架构={构成系统的元素,指导元素集成的形式,关系和约束}

“4+1”视图模型用五个视图组成的模型来描述软件架构。该模型包含五个主要的视图。

.逻辑视图(Logical View),描述了设计的对象模型,支持系统的功能需求。

.进程视图(Process View),描述了设计的并发和同步特征,支持系统的运行特性。

.物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性,支持系统的拓扑、安装和通信需求。

.开发视图(Development View),描述了在开发环境中软件的静态组织结构,支持软件开发的内部需求。

.场景(Scenario),用来说明重要的系统活动,是其他四个视图在用例(Use Case)驱动下的综合。

软件架构在软件需求与设计之间架起一座桥梁,也是风险承担者进行交流的手段,允许不同的风险承担者找出他们所关心的软件架构问题。假设采用面向对象的设计方法,各个视图涉及的组件(元素)包括:任务、类、模块、节点、步骤等,风险承担者包括最终用户、系统设计师、程序员、经理、项目管理师等。请在下表中的(1)到(7)处填入恰当的内容(空白处不用填)。


正确答案:[答案要点] 本题相当于选择题但要获得好的成绩仍需要仔细构思。 1)逻辑视图表述系统的功能需求。系统分解为一系列的关键抽象这些抽象(大多数)来自于需求分析中所提出功能要求以对象或类的形式来表示(采用抽象、封装和继承)。分解并不仅仅是为了功能分析而且用来识别遍布系统各个部分的通用机制和设计元素。系统的功能需求来自于最终用户最终用户是逻辑视图对应的风险承担者。 2)进程视图表述系统的运行特性。利用进程视图可解决系统的并发性、分布性、系统完整性、容错性等问题。另外它还可以表达逻辑视图的主要抽象在哪个控制线程上被实际执行。风险承担者主要是系统集成人员组件元素是任务。 3)物理视图表述系统的拓扑、安装和通信需求。用来表达软件系统中的各种元素 (元素可以理解为组件或过程)被映射或部署至不同的网络计算机节点上。风险承担者主要是系统实施工程师。 4)开发视图表述软件开发的内部需求。开发视图关注软件开发环境下实际模块的组织(程序库或子系统)它们可以由一位或几位开发人员来开发。子系统可以组织成分层结构每个层为上一层提供良好定义的接口。风险承担者主要是编程人员和软件项目管理人员。 5)场景用来说明重要的系统活动是其他四个视图在用例(Use Case)驱动下的综合。在某种意义上场景是最重要的需求抽象。该视图是其他视图的冗余(因此“+1”)但它起到了两个作用:首先场景可用来发现架构设计过程中的架构元素其次场景可作为架构设计结束后的功能验证。它可作为架构原型测试的出发点。风险承担者是最终用户和开发人员组件元素是步骤。
[答案要点] 本题相当于选择题,但要获得好的成绩,仍需要仔细构思。 1)逻辑视图表述系统的功能需求。系统分解为一系列的关键抽象,这些抽象(大多数)来自于需求分析中所提出功能要求,以对象或类的形式来表示(采用抽象、封装和继承)。分解并不仅仅是为了功能分析,而且用来识别遍布系统各个部分的通用机制和设计元素。系统的功能需求来自于最终用户,最终用户是逻辑视图对应的风险承担者。 2)进程视图表述系统的运行特性。利用进程视图可解决系统的并发性、分布性、系统完整性、容错性等问题。另外,它还可以表达逻辑视图的主要抽象在哪个控制线程上被实际执行。风险承担者主要是系统集成人员,组件元素是任务。 3)物理视图表述系统的拓扑、安装和通信需求。用来表达软件系统中的各种元素 (元素可以理解为组件或过程)被映射或部署至不同的网络计算机节点上。风险承担者主要是系统实施工程师。 4)开发视图表述软件开发的内部需求。开发视图关注软件开发环境下实际模块的组织(程序库或子系统),它们可以由一位或几位开发人员来开发。子系统可以组织成分层结构,每个层为上一层提供良好定义的接口。风险承担者主要是编程人员和软件项目管理人员。 5)场景用来说明重要的系统活动,是其他四个视图在用例(Use Case)驱动下的综合。在某种意义上场景是最重要的需求抽象。该视图是其他视图的冗余(因此“+1”),但它起到了两个作用:首先场景可用来发现架构设计过程中的架构元素,其次场景可作为架构设计结束后的功能验证。它可作为架构原型测试的出发点。风险承担者是最终用户和开发人员,组件元素是步骤。 解析:本题主要考查软件架构“4+1”视图的有关知识和实施方法,熟悉以下关于软件架构的知识是回答本题的前提。
首先要准确把握软件架构的定义。架构(Architecture)原意为建筑学设计和建筑物建造的艺术与科学。软件架构(Software Architecture,或称为软件架构)是软件系统的高层描述,它给出了关于软件系统组织结构的一系列高级的、重要的抽象,包括:系统组成的结构性构件;组成构件之间的接口:构件相对系统其他部分的可视行为:构件之间所采取的交互和协作关系。软件架构在RUP 中的定义是指系统核心构件的组织或结构,这些核心构件通过接口与不断减小的构件与接口所组成的构件进行交互。
人们在软件开发过程中积累了丰富的架构知识,形成了的特定的架构风格,这些架构风格为高层次的软件复用技术建立了坚实的基础:例如,C/S架构、管道/过滤器架构、分层架构、解释器架构、黑板架构等等,而各种分布式组件技术如DCOM,EJB, Web-Services 也都和软件架构密切相关。
长期以来,人们一直在努力软件架构更加精确的形式化描述,力图用一种类似于某种编程语言的形式来描述软件架构,如Rapide,Wright,Aesop,UniCon,ACME 等。XML描述与软件建模UML 技术的发展为软件架构描述语言注入了新的发展思路,新一代的架构描述语言(如xArch,xADL 等)充分应用了这些新的描述手段的特点。同时,伴随着架构描述技术的进步,架构评估等研究也在不断的深入。
其次,要正确理解软件架构的重要作用。
.软件架构能够指导整个系统的设计和演进,它是软件需求分析的结果,同时是下一步进行软件设计的规格和蓝图。对于复杂软件系统而言,在架构阶段,系统的结构和规格说明非常重要,而在软件设计阶段,算法和数据结构更重要。
.软件架构对系统的描述,借鉴了建筑工程设计的思想,通过各种视图从不同角度以规范、一致、易理解的“语言”来表达系统的各种规格和行为。以某一特定角度看到的系统架构之规格、行为,主要是结构、核心构件和主要控制流等。
.软件架构是风险承担者进行交流的手段。所谓风险承担者是指对软件系统某个方面(或层次)负责或(关注)的人员。也可以这样来理解风险承担者:软件系统的某个方面(或层次)如果存在缺陷或问题,对此负责任或受影响的人员。风险承担者包括最终用户、系统设计师、程序员、经理、项目管理师等。
.软件架构是可传递、可重用的模型。
.软件架构是软件工程早期设计决策的体现,而且在整个开发周期中不断演进,软件架构对于软件质量(功能属性、非功能属性)都有重要影响。
“4+1”视图模型是最重要软件架构模式,由Philippe Kruchten 在1995年提出。如下图所示。

需要指出的是,并不是所有的软件架构都需要“4+1”视图。无用的视图可以从架构描述中省略,例如,单机软件,可以省略物理视图;而如果仅有一个进程或程序,则可以省略过程视图。对于非常小型的系统,甚至可能逻辑视图与开发视图非常相似,而不需要分开的描述。
第一步:总结出问题的要点。
[问题1]
考查采用面向对象的架构设计方法,“4+1”视图各个视图涉及的组件要素与风险承担者。

第6题:

论软件架构建模技术与应用

软件架构用来处理软件高层次结构的设计和实施,它以精心选择的形式将若干结构元素进行装配,从而满足系统的主要功能和性能需求。软件架构设计的首要问题是如何表示软件架构,即如何对软件架构建模。根据建模的侧重点不同,可以将软件架构模型分为结构模型、框架模型、动态模型、过程模型和功能模型。Kruchten在1995年提出了“4+1”视图模型,将5种模型有机地统一在了一起。

请围绕“软件架构建模技术与应用”论题,依次从以下三个方面进行论述。

1.概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。

2.简要叙述“4+1”视图模型的主要内容。结合你参与项目的实际情况,详细说明该项目需求及所涉及的软件架构(包括使用到的视图模型、创建的架构模型及使用的建模工具等)。

3.说明该项目软件架构的实施效果,分析其是否满足了项目的需求并说明原因。


正确答案:

写作要点

一、简要叙述所参与管理和开发的软件项目,并明确指出在其中承担的主要任务和开展的主要工作。

二、简要叙述“4+1”视图模型的主要内容。

1、“4+1”视图模型从5个不同的视角来描述软件架构,每个视图只关心系统的1个侧面,5个视图结合在一起才能反映系统的软件结构的全部内容。这5个不同的视角包括逻辑视图、开发视图、进程视图、物理视图和场景。

逻辑视图。逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。在OO技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。

开发视图。开发视图也称为模块视图,在UML中被称为实现视图,它主要侧重于软件模块的组织和管理。开发视图要考虑软件内部的需求。

进程视图。进程视图侧重于系统的运行特性,主要关注一些非功能性需求。进程视图强调并发性、分布性、系统集成性和容错能力,以及逻辑视图中的功能抽象如何适应进程结构等,它也定义了逻辑视图中的各个类的操作具体是在哪一个线程中被执行。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。

物理视图。物理视图在UML中被称为部署视图,主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装和通信等问题。

场景。场景可以看作是那些重要系统活动的抽象,它使4个视图有机联系起来。场景对应UML中的用例视图。

2、结合实际项目,详细说明项目软件架构的内容。这部分内容应包括:在设计软件架构时,分别使用了4+1”视图中的哪些视图,每个视图中包含的模型有哪些等。

三、说明该项目软件架构的实施效果,分析其是否满足了项目的需求并说明原因。

1)加解密API:数据库管理系统提供可在SQL语句中调用的加解密API,应用可以利用这些API构建自己的基础架构,对数据进行加密保护。


2)透明加密:安全管理员为数据库敏感字段选择加密方式及密钥强度,应用访问受保护数据时只需使用口令打开或关闭密钥表,对数据的加密和解密由数据库管理系统自动完成。

加解密API方式的灵活性强,但构建和管理复杂;而透明加密方式管理简单,应用程序负担轻,但灵活性较差。用户要求尽可能减少安全管理与应用程序的负担,因此应选择透明加密方式。


第7题:

● 1995年Kruchten提出了著名的“4+1”视图,用来描述软件系统的架构。在“4+1”视图中, (46) 用来描述设计的对象模型和对象之间的关系; (47) 描述了软件模块的组织与管理; (48) 描述设计的并发和同步特征。

(46)

A. 逻辑视图

B. 用例视图

C. 过程视图

D. 开发视图

(47)

A. 逻辑视图

B. 用例视图

C. 过程视图

D. 开发视图

(48)

A. 逻辑视图

B. 用例视图

C. 过程视图

D. 开发视图


正确答案:A,D,C

第8题:

Kruchten提出的“4+1”视图模型,提倡从不同维度看软件架构。()可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。()A.逻辑视图 B.进程视图 C.物理视图 D.场景


正确答案:D
    Kruchten提出的“4+1”视图模型,提倡从不同维度看软件架构。这些维度包括:逻辑视图、进程视图、开发视图、物理视图、场景。
    (1)逻辑视图。逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。在OO技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。逻辑视图中使用的风格为面向对象的风格,在设计中要注意保持一个单一的、内聚的对象模型贯穿整个系统。
    (2)开发视图。开发视图也称为模块视图,在UML中被称为实现视图,它主要侧重于软件模块的组织和管理。开发视图要考虑软件内部的需求,例如,软件开发的容易性、软件复用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统I/O关系的模型图和子系统图来描述。
    (3)进程视图。进程视图侧重于系统的运行特性,主要关注一些非功能性需求,例如,系统的性能和可用性等。进程视图强调并发性、分布性、系统集成性和容错能力,以及逻辑视图中的功能抽象如何适合进程结构等,它也定义了逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。
    (4)物理视图。物理视图在UML中被称为部署视图,它主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装和通信等问题。当软件运行于不同的物理节点上时,各视图中的构件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小化。
    (5)场景。场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。场景视图对应UML中的用例视图。在开发软件架构时,它可以帮助架构设计师找到构件及其相互关系。同时,架构设计师也可以用场景来分析一个特定的视图,或描述不同视图的构件之间是如何相互作用的。

第9题:

1995年Kruchten提出了著名的“4+1”视图,用来描述软件系统的架构。在“4+1”视图中,( )用来描述设计的对象模型和对象之间的关系;( )描述了软件模块的组织与管理;( )描述设计的并发和同步特征。

A.逻辑视图 B.用例视图 C.过程视图 D.开发视图 A.逻辑视图 B.用例视图 C.过程视图 D.开发视图 A.逻辑视图 B.用例视图 C.过程视图 D.开发视图


正确答案:A,D,C