软件体系结构作业完整版 联系客服

发布时间 : 星期四 文章软件体系结构作业完整版更新完毕开始阅读32d1f95e091c59eef8c75fbfc77da26924c59668

语言和模块内连接语言具有严格的语义基础,因此他们能支持对较大的软件单元进行描述,诸如定义/使用和扇入/扇出等操作。

MIL方式对模块化的程序设计和分段编译等程序设计与开发技术确实发挥了很大的作用。但是由于这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,因此限制了他们处理和描述比程序设计语言元素更为抽象的高层次软件体系结构元素的能力

2、体系结构描述语言与程序设计语言有什么区别?

ADL与其他的语言比较具有以下能力:(1)构造能力:ADL能够使用较小的独立体系结构元素来建造大型软件系统;(2)抽象能力:ADL使得软件体系结构中的构件和连接件描述可以只关注他们的抽象特性,而不管其具体的实现细节;(3)重用能力:ADL使得组成软件系统的构件,连接件甚至是软件体系结构都成为软件系统开发和设计的可重用部件;(4)组合能力:ADL使得其描述的每一系统元素都有其自己的布局结构,这种描述布局结构的特点使得ADL支持软件系统的动态变化组合;(5)异构能力:ADl允许多个不同的体系结构描述关联存在;(6)分析和推理能力:ADL允许对其描述的体系结构进行多种不同的性能和功能上的多种推理分析。ADL与需求语言的区别在于后者描述的是问题空间,而前者描述的是接空间。ADL与建模语言的区别在于后者对整体行为的关注要大于部分的关注,而ADl集中在构建的表示上。

3、典型的软件体系结构描述语言包括哪些?它们分别需要描述体系结构中哪些基本元素?

主要有五种ADL:UniCon,Darwin,C2 SADL,Acme和xADL.

Rapide:一种事件驱动的ADL,它以体系结构定义作为开发框架,支持基于构件的开发.该语言提供了建模,分析,仿真和代码生成的能力,但是没有将连接子显式地表示为一阶实体.

Wright:其主要特点是将CSP 用于软件体系结构的描述,从而完成对体系结构描述的某些形式化推理(包括相容性检查和死锁检查等).但它仅仅是一个设计规约语言,只能用于

描述,无法支持系统生成,同时CSP 的使用也是比较困难的事情.

Acme:支持ADL 之间的映射及工具集成的体系结构互交换语言.其目标是作为体系结构设计的一个共同的互交换格式,以便将现有的各种ADL 在这个框架下统一起来;而它本身也可以看作是一种ADL.

xArch:一种基于XML 的ADL.它使用XML 定义了描述体系结构的核心元素,可以用来简单的描述软件体系结构,也可以作为设计其它ADL的基础,或者用作体系结构描述描述语言的互交换机制。

xADL2.0:以xArch 为基础的基于XML 的ADL。除了xArch 的核心元素,xADL2.0 还提供了对系统运行时刻和设计时刻的元素的建模支持,类似版本,选项和变量等更高级的配置管理观念,以及对产品家族的体系结构的建模支持.此外,xADL2.0还利用XML 的可扩展性简化了新的ADL的设计及其相应工具的开发过程。

4、对一个你熟悉的软件系统,如果要使用ADL对其体系结构进行描述,你会选择哪一种?为什么?这样选择的优点和缺点各有哪些?

我会选择Acme。下面介绍原因:

Acme是CMU的Acme项目的产物.该项目始于1995年,目的是为了研究一个公共的语言,使之能在不同的体系结构设计工具之间作为体系结构描述信息互换的桥梁.目前Acme及其开发工具包AcmeLib提供了一个通用的,可扩展的基础框架用于描述,表示,生成以及分析系统的软件体系结构.而作为桥梁作用的Acme,由于必须具备大多数ADL共有的概念,因此它本身也是一个ADL,并且是一个相对而言比较简单的通用的ADL. Acme的建模元素和特点 Acme的主要特点表现为: 采用七个基本的体系结构设计元素作为体系结构的本体(architectural ontology), 采用灵活的标注机制支持使用外部语言定义的非结构化信息 ,使用类型机制对常见的可复用的软件体系结构俗语和风格进行抽象描述 使用开放的语义框架对体系结构描述进行推理 Acme的设计元素 Acme的设计元素 ,以下对Acme所采用的设计元素进行简要介绍.这七个设计元素是:

构件(components):系统中的计算元素和数据存储.直观的说,就是线框图中的框.典型的构件有:客户端,服务器,数据库,黑板,过滤器等.

连接子(connectors):构件之间的交互.直观的说,就是线框图中的线.典型的连接子有:过程调用,事件广播,客户和服务器之间的协议等. 系统(systems):构件和连接子的配置.

端口(ports):构件通过端口与外界发生交互.一个构件可以有多个不同类型的端口,每个端口都是一个接口的集合,例如一系列需要以特定顺序调用的过程.

角色(roles):连接子通过角色与外界发生交互.角色定义了构件之间交互的参与者.

表示(representations):构件或者连接子内部结构的描述.通过\表示\这个概念,系统的体系结构就具有了层次结构.同时,\表示\这个概念可以用于描述体系结构实体的多个视图(但是Acme本身并不处理视图之间的对应关系)。

映射(rep-maps):将构件或者连接子的内部\表示\与外部接口进行映射. 简单的客户端-服务器系统

以下是一个简单的客户端-服务器系统的Acme描述:

Acme本质上是一些ADL的建模元素的\最大公约数\因此它能作为不同ADL及其支撑工具之间用于信息交换的语言.这是Acme的最大作用,当然这也使得它只能成为一个建模能力一般的ADL,例如Acme中就没有相应的机制用于对构件或者系统行为进行描述或者规约.相关研究者正在考虑在Acme中引入类似于Wright中使用的CSP的形式化语言来解决这个问题.当然,作为一个通用的交换语言,Acme的能力及其可扩展性也不是无限的.例如Acme的扩展仅限于在七个基本设计元素的基础上进行,并且Acme中缺乏用于描述属性及其数据格式的元语言.无论如何,Acme是第一个ADL之间的互交换语言,它的出现使得不同的ADL支持工具之间有可能进行体系结构描述信息的交流.

5、选择一个规模适中的系统,使用UML为其建模。

为一个网上购物系统利用UML为其建模,如下:

统一开发过程RUP把整个软件开发过程分为初始、细化、构造、交付四个阶段,具有用例驱动、以架构为中心、迭代和增量的特点。同其它软件开发方法相比较,RUP具有自身独特的优势,为软件开发提供了重要的方法论指导根据对网上购物系统的体系结构及建模分析,采用UML作为建模语言,结合RUP的基本开发过程,提出适合网上购物系统开发的建模过程。该过程遵循了RUP四个阶段的理论,主要是对初始和细化两个阶段进行了详细的分析。整个过程包括业务建模、需求建模、对象建模、数据库建模和物理建模等五个步骤,每个步骤都会生成一定的系统模型,并用相应的UML图来描述这些模型。在建模过程中,论文采用了RUP中迭代增量式的开发思想,把系统的建模进一步分解为迭代,一个迭代是一个从系统的业务建模到物理建模的完整过程,每一个迭代都会产生一个模型版本,是最终模型的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程,直到成为系统的最终模型。 1 业务建模

业务建模用于对网上购物系统环境的业务过程进行建模。系统分析人员通过网上购物系统的业务建模能够了解系统所处的环境和业务过程,业务建模能够将这些信息进行体现,并表现环境中存在或可以觉察到的过程,从而详细说明网上购物系统所要支持的业务过程。业务建模既确定了业务过程涉及到的业务对象和领域对象,又确定了每个业务过程所需要的资源和能力,包括人员、每个人员的职责和执行的操作、过程的执行方

式和协作等。这些信息对于下一步的需求建模是非常重要和有用的。

业务建模一般通过业务过程图来进行描述。业务过程图是对事件逻辑的归类,这些事件被认为是业务的基本元素。其目的是将整个业务领域作为一个过程集进行描述,而不关心过程的次序或单个过程之间的交互作用。业务过程图不必严格精密,它应该全面而不是精确。重要的是,通过查看业务过程图,系统分析人员、设计人员、开发人员和用户能够迅速获得关于业务范围和活动的总体印象。 2 需求建模

需求建模的主要工作是获得系统的需求,建立待开发系统的模型。而用例则有助于更好地了解系统需求并以规范化的格式进行描述。需求建模就是要以用例的方式来描述系统的功能,其主要工作成果是用例模型。采用用例模型来描述进行需求建模的主要过程如下:(1)确定所要开发系统的参与者,参与者可以是人,也可以是与系统交互的外部系统。网上购物系统的参与者主要有管理员、工作人员、顾客、支付系统等。(2)从执行者的角度出发,分析他和系统需要进行的交互作用,并从这些交互过程中抽象出用例。从顾客的角度出发,网上购物系统一般有以下用例:用户登录、用户注册、浏览商品、搜索商品、购买商品、下订单、支付等;从系统管理员的角度出发,网上购物系统一般有以下用例:用户登录、用户管理、商品管理、订单管理等。(3)对每一用例确定其主要的业务过程。例如“用户登录”用例的业务过程为顾客、系统管理员、工作人员等通过用户登录可以获得相应的服务;“支付”用例的业务过程为顾客为所够买物品选择付款方式进行付款。(4)以信息流为中心逐步形成完整的用例模型。网上购物系统的完整用例模型包括很多的用例图,其中既包括系统的顶层用例图,也包括各种细化的用例图。 3 对象建模

确定了系统的需求分析、得出系统的用例模型以后,需要进行的主要任务就是对系统进行对象建模。对象建模的主要工作是把需求建模阶段产生的用例模型转化为系统的