搜档网
当前位置:搜档网 › 体系结构蓝图—软件体系结构的+视图(中文版)

体系结构蓝图—软件体系结构的+视图(中文版)

体系结构蓝图—软件体系结构的+视图(中文版)
体系结构蓝图—软件体系结构的+视图(中文版)

体系结构蓝图—软件体系结构的+视图(中文版)

————————————————————————————————作者:————————————————————————————————日期:

本文基于多个并发视图的使用情况来说明描述软件密集型系统架构的模型。使用多重视图允许独立地处理各"风险承担人":最终用户、开发人员、系统工程师、项目经理等所关注的问题,并且能够独立地处理功能性和非功能性需求。本文分别对五种视图进行了描述,并同时给出了捕获每种视图的表示方法。这些视图使用以架构为中心的、场景驱动以及迭代开发过程来进行设计。

引言

我们已经看到在许多文章和书籍中,作者欲使用单张视图来捕捉所有的系统架构要点。通过仔细地观察这些图例中的方框和箭头,不难发现作者努力地在单一视图中表达超过其表达限度的蓝图。方框是代表运行的程序吗?或者是代表源代码的程序块吗?或是物理计算机吗?或仅仅是逻辑功能的分组吗?箭头是表示编译时的依赖关系吗?或者是控制流吗?或是数据流吗?通常它代表了许多事物。是否架构只需要单个的架构样式?有时软件架构的缺陷源于过早地划分软件或过分的强调软件开发的单个方面:数据工程、运行效率、开发策略和团队组织等。有时架构并不能解决所有"客户"(或者说"风险承担人",USC 的命名)所关注的问题。许多作者都提及了这个问题:Garlan & Shaw 1、CMU 的Abowd & Allen、SEI 的Clements。作为补充,我们建议使用多个并发的视图来组织软件架构的描述,每个视图仅用来描述一个特定的所关注的方面的集合。

架构模型

软件架构用来处理软件高层次结构的设计和实施。它以精心选择的形式将若干结构元素进行装配,从而满足系统主要功能和性能需求,并满足其他非功能性需求,如可靠性、可伸缩性、可移植性和可用性。Perry 和Wolfe 使用一个精确的公式来表达,该公式由Boehm 做了进一步修改:

软件架构={元素,形式,关系/约束}

软件架构涉及到抽象、分解和组合、风格和美学。我们用由多个视图或视角组成的模型来描述它。为了最终处理大型的、富有挑战性的架构,该模型包含五个主要的视图(请对照图1):

?逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。

?过程视图(Process View),捕捉设计的并发和同步特征。

?物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。

?开发视图(Development View),描述了在开发环境中软件的静态组织结构。

架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(use cases)或场景(scenarios)来说明,从而形成了第五个视图。正如将看到的,实际上软件架

图1 -"4+1"视图模型

构部分从这些场景演进而来,将在下文中讨论。

我们在每个视图上均独立地应用Perry & Wolf 的公式,即定义一个所使用的元素集合(组件、容器、连接符),捕获工作形式和模式,并且捕获关系及约束,将架构与某些需求连接起来。每种视图使用自身所特有的表示法-蓝图(blueprint)来描述,并且架构师可以对每种视图选用特定的架构风格(architectural style),从而允许系统中多种风格并存。

我们将轮流的观察这五种视图,展现各个视图的目标:即视图的所关注的问题,相应的架构蓝图的标记方式,描述和管理蓝图的工具。并以非常简单的形式从PABX 的设计中,从我们在Alcatel 商业系统(Alcatel Business System)上所做的工作中,以及从航空运输控制系统(Air Traffic Control system)中引出一些例子―旨在描述一下视图的特定及其标记的方式,而不是定义这些系统的架构。

"4+1"视图模型具有相当的"普遍性",因此可以使用其他的标注方法和工具,也可以采用其他的设计方法,特别是对于逻辑和过程的分解。但文中指出的这些方法都已经成功的在实践中运用过。

逻辑结构

面向对象的分解

逻辑架构主要支持功能性需求――即在为用户提供服务方面系统所应该提供的功能。系统分解为一系列的关键抽象,(大多数)来自于问题域,表现为对象或对象类的形式。它们采用抽象、封装和继承的原理。分解并不仅仅是为了功能分析,而且用来识别遍布系统各个部分的通用机制和设计元素。我们使用Rational/Booch 方法来表示逻辑架构,借助于类图和类模板的手段4。类图用来显示一个类的集合和它们的逻辑关系:关联、使用、组合、继承等等。相似的类可以划分成类集合。类模板关注于单个类,它们强调主要的类操作,并且识别关键的对象特征。如果需要定义对象的内部行为,则使用状态转换图或状态图来完成。公共机制或服务可以在类功能(class utilities)中定义。对于数据驱动程度高的应用程序,可以使用其他形式的逻辑视图,例如E-R 图,来代替面向对象的方法(OO approach)。逻辑视图的表示法

逻辑视图的标记方法来自Booch 标记法4。当仅考虑具有架构意义的条目时,这种表示法相当简单。特别是在这种设计级别上,大量的修饰作用不大。我们使用Rational Rose? 来支持逻辑架构的设计。

图2 -逻辑蓝图的表示法

逻辑视图的风格

逻辑视图的风格采用面向对象的风格,其主要的设计准则是试图在整个系统中保持单一的、一致的对象模型,避免就每个场合或过程产生草率的类和机制的技术说明。

逻辑结构蓝图的样例

图3 显示了Télic PABX 架构中主要的类。

图3 - a. Télic PABX 的逻辑蓝图 b.空中交通系统的蓝图

PABX 建立终端间的通信连接。终端可以是电话设备、中继线(例如,连接到中央办公室)、连接线(PABX 专线到PABX 线)、电话专线、数据线、ISDN 等等。不同的线路由不同的接口卡提供支持。线路controller 对象的职责是在接口卡上对所有的信号进行解码和注入,在特定于接口卡的信号与一致性的小型事件集合之间进行相互转换:开始、停止、数字化等。controller 对象同时承载所有的实时约束。该类派生出许多子类以满足不同的接口类型。terminal 对象的责任是维持终端的状态,代表线路协调各项服务。例如,它使用numbering plan 服务来解释拨号。conversation 代表了会话中的一系列终端。

conversation 使用了Translation Service(目录、逻辑物理映射、路由),以及建立终端之间语音路径的Connection Service 。

对于一个包含了大量的具有架构重要意义的类的、更大的系统来说,图3 b 描述了空中交通管理系统的顶层类图,包含8 个类的种类(例如,类的分组)。

进程架构

过程分解

进程架构考虑一些非功能性的需求,如性能和可用性。它解决并发性、分布性、系统完整性、容错性的问题,以及逻辑视图的主要抽象如何与进程结构相配合在一起-即在哪个控制线程上,对象的操作被实际执行。

进程架构可以在几种层次的抽象上进行描述,每个层次针对不同的问题。在最高的层次上,进程架构可以视为一组独立执行的通信程序(叫作"processes")的逻辑网络,它们分布在整个一组硬件资源上,这些资源通过LAN 或者WAN 连接起来。多个逻辑网络可能同时并存,共享相同的物理资源。例如,独立的逻辑网络可能用于支持离线系统与在线系统的分离,或者支持软件的模拟版本和测试版本的共存。

进程是构成可执行单元任务的分组。进程代表了可以进行策略控制过程架构的层次(即:开始、恢复、重新配置及关闭)。另外,进程可以就处理负载的分布式增强或可用性的提高而不断地被重复。

软件被划分为一系列单独的任务。任务是独立的控制线程,可以在处理节点上单独地被调度。接着,我们可以区别主要任务、次要任务。主要任务是可以唯一处理的架构元素;次要任务是由于实施原因而引入的局部附加任务(周期性活动、缓冲、暂停等等)。它们可以作为Ada Task 或轻量线程来实施。主要任务的通讯途径是良好定义的交互任务通信机制:基于消息的同步或异步通信服务、远程过程调用、事件广播等。次要任务则以会见或共享内存来通信。在同一过程或处理节点上,主要任务不应对它们的分配做出任何假定。

消息流、过程负载可以基于过程蓝图来进行评估,同样可以使用哑负载来实现"中空"的进程架构,并测量在目标系统上的性能。正如Filarey et al. 在他的Eurocontrol 实验中描述的那样。

进程视图的表示法

我们所使用的进程视图的表示方法是从Booch最初为Ada 任务推荐的表示方法扩展而来。同样,用来所使用的表示法关注在架构上具有重要意义的元素。(图4)

图4 -过程蓝图表示法

我们曾使用来自TRW 的Universal Network Architechure Services(UNAS0)产品来构建并实施过程和任务集合(包扩它们的冗余),使它们融入过程的网络中。UNAS 包含Software Architect Lifecycle Environment(SALE)工具,它支持上述表示方法。SALE 允许以图形的形式来描述进程架构,包括对可能的交互任务通信路径的规格说明,正是从这些路径中自动生成对应的Ada 或C++ 源代码。使用该方法来指定和实施进程架构的优点是易于进行修改而不会对应用软件造成太多的影响。

进程视图的风格

许多风格可以适用于进程视图。例如采用Garlan 和Shaw 的分类法1,我们可以得到管道和过滤器(Pipes and filters),或客户端/服务器,以及各种多个客户端/单个服务器和多个客户端/多个服务器的变体。对于更加复杂的系统,可以采用类似于K.Birman 所描述的ISIS

系统中进程组方法以及其它的标注方法和工具。

进程蓝图的例子

图5 -Télic PABX 的过程蓝图(部分)

所有的终端由单个的Termal process 处理,其中Termal process 由输入队列中的消息进行驱动。Controller 对象在组成控制过程三个任务之中的一项任务上执行:Low cycle rate task 扫描所有的非活动终端(200 ms),将High cycle rate task(10 ms)扫描清单中的终端激活,其中High cycle rate task 检测任何重要的状态变化,将它们传递给Main controller task,由它来对状态的变更进行解释,并通过向对应的终端发送消息来通信。这里Controller 过程中的通信通过共享内存来实现。

开发架构

子系统分解

开发架构关注软件开发环境下实际模块的组织。软件打包成小的程序块(程序库或子系统),它们可以由一位或几位开发人员来开发。子系统可以组织成分层结构,每个层为上一层提供良好定义的接口。

系统的开发架构用模块和子系统图来表达,显示了"输出"和"输入"关系。完整的开发架构只有当所有软件元素被识别后才能加以描述。但是,可以列出控制开发架构的规则:分块、分组和可见性。

大部分情况下,开发架构考虑的内部需求与以下几项因素有关:开发难度、软件管理、重用性和通用性及由工具集、编程语言所带来的限制。开发架构视图是各种活动的基础,如:需求分配、团队工作的分配(或团队机构)、成本评估和计划、项目进度的监控、软件重用性、移植性和安全性。它是建立产品线的基础。

开发蓝图的表示方法

同样,使用Booch 方法的变形,仅考虑具有架构意义的项。

图5 -开发蓝图表示方法

来自Rational 的Apex 开发环境支持开发架构的定义和实现、和前文描述的分层策略,以及设计规则的实施。Rational Rose 可以在模块和子系统层次上绘制开发蓝图,并支持开发源代码(Ada、C++)进程的正向和反向工程。

开发视图的风格

我们推荐使用分层(layered)的风格,定义4 到6 个子系统层。每层均具有良好定义的职责。设计规则是某层子系统依赖同一层或低一层的子系统,从而最大程度地减少了具有复杂模块依赖关系的网络的开发量,得到层次式的简单策略。

图6 -Hughes 空中交通系统(HATS)的 5 个层

开发架构的例子

图6 代表了加拿大的Hughes Aircraft 开发的空中交通控制系统(Air Traffic Control system)产品线的5 个分层开发组织结构。这是和图3 b 描述的逻辑架构相对应的开发架构。

第一层和第二层组成了独立于域的覆盖整个产品线的分布式基础设施,并保护其免受不同硬件平台、操作系统或市售产品(如数据库管理系统)的影响。第三层为该基础设施增加了ATC 框架,形成一个特定领域的软件架构(domain-specific software architecture)。使用该框架,可以在第四层上构建一个功能选择板。层次5 则非常依赖于客户和产品,包含了大多数用户接口和外部系统接口。72 个子系统分布于5 个层次上,每层包含了10 至50 个模块,并可以在其他蓝图上表示。

物理架构

软件至硬件的映射

物理架构主要关注系统非功能性的需求,如可用性、可靠性(容错性),性能(吞吐量)和可伸缩性。软件在计算机网络或处理节点上运行,被识别的各种元素(网络、过程、任务和对象),需要被映射至不同的节点;我们希望使用不同的物理配置:一些用于开发和测试,另外一些则用于不同地点和不同客户的部署。因此软件至节点的映射需要高度的灵活性及对源代码产生最小的影响。

物理蓝图的表示法

大型系统中的物理蓝图会变得非常混乱,所以它们可以采用多种形式,有或者没有来自进程视图的映射均可。

图7 -物理蓝图的表示法

TRW 的UNAS 提供了数据驱动方法将过程架构映射至物理架构,该方法允许大量的映射的变更而无需修改源代码。

物理蓝图的示例

图8 -PABX 的物理蓝图

图8 显示了大型PABX 可能的硬件配置,而图9 和图10 显示了两种不同物理架构上的进程映射,分别对应一个小型和一个大型PABX。C、F 和K 是三种不同容量的计算机,支持三种不同的运行要求。

图9 -带有过程分配的小型PABX 物理架构

图10-显示了过程分配的大型PABX物理蓝图

场景

综合所有的视图

四种视图的元素通过数量比较少的一组重要场景(更常见的是用例)进行无缝协同工作,我们为场景描述相应的脚本(对象之间和过程之间的交互序列)。正如Rubin 和Goldberg 所描述的那样6。

在某种意义上场景是最重要的需求抽象,它们的设计使用对象场景图和对象交互图来表示4。

该视图是其他视图的冗余(因此"+1"),但它起到了两个作用:

?作为一项驱动因素来发现架构设计过程中的架构元素,这一点将在下文中讨论。

?作为架构设计结束后的一项验证和说明功能,既以视图的角度来说明又作为架构原型测试的出发点。

场景的表示法

场景表示法与组件逻辑视图非常相似(请对照图2),但它使用过程视图的连接符来表示对象之间的交互(请对照图4),注意对象实例使用实线来表达。至于逻辑蓝图,我们使用Rational Rose 来捕获并管理对象场景。

场景的例子

图11 显示了小型PABX 的场景片段。相应的脚本是:

1. Joe的电话控制器检测和校验摘机状态的变换,并发送消息唤醒相应的终端对象。

2. 终端分配一些资源,并要求控制器发出拨号音。

3. 控制器接受拨号并传递给终端。

4. 终端使用拨号方案来分析数字流。

5. 有效的数字序列被键入,终端开始会话。

图11 -本地呼叫的初期场景――阶段选择

视图之间的对应性

各种视图并不是完全是正交的或独立的。视图的元素根据某种设计规则和启发式方法与其他视图中的元素相关联。

从逻辑视图到过程视图

我们发现逻辑视架构有几项重要特性:

?自主性:对象是主动的、被动的还是被保护的?

o主动对象享有调用其他对象或其自身操作的主动权,并且当其他对象对其进行调用时,具有对其自身操作的完全控制权。

o被动对象不能主动调用任何操作,对其他对象调用自身的操作没有控制。

o被保护对象不能主动调用任何操作。但对自身的操作有一定的控制功能。

?持久化:对象是暂时的还是持久化的?它们是否会导致过程或处理器的终止?

?依赖性:对象的存在或持久化是否依赖于另一个对象?

?分布性:对象的状态或操作是否能被物理架构中的许多节点所访问?或是被进程架构中的几个进程所访问?

在逻辑视图中,我们认为每个对象均是主动的,具有潜在的"并发性",即与其他对象具有"平行的"行为,我们并不考虑所要达到的确切并发程度。因此,逻辑结构所考虑的仅是需求的功能性方面。

然而,当我们定义进程架构时,由于巨大的开销,为每个对象实施各自的控制线程(例如,Unix 进程或Ada 任务),在目前的技术状况下是不现实的。此外,如果对象是并发的,那么必须以某种抽象形式来调用它们的操作。

另一方面,由于以下几种原因需要多个控制线程。

?为了快速响应某类外部触发,包括与时间相关的事件。

?为了在一个节点中利用多个CPU,或者在一个分布式系统中利用多个节点。

?为了提高CPU 的利用率,在某些控制线程被挂起,等待其他活动结束的时候(例如,访问外部对象其他活动对象时),为其他的活动分配CPU。

?为了划分活动的优先级(提高潜在的响应能力)。

?为了支持系统的可伸缩性(借助于共享负载的其他过程)。

?为了在软件的不同领域分离关注点。

?为了提高系统的可用性(通过Backup 过程)。

我们同时使用两种策略来决定并发的程度和定义所需的过程集合。考虑一系列潜在的物理目标架构。以下两种形式我们可以任选其一:

?从内至外:

由逻辑架构开始:定义代理任务,该任务将控制一个类的多个活动对象的单个线程

进行多元化处理;同一代理任务还执行持久化处理那些依赖于一个主动对象的对象;

需要相互进行操作的几个类或仅需要少量处理的类共享单个代理。这种聚合会一直

进行,直到我们将过程减少到合理的较少数量,而仍允许分布性和对物理资源的使

用。

?由外至内:

从物理结构开始:识别系统的外部触发;定义处理触发的客户过程和仅提供服务(而非初始化它们)的服务器进程;使用数据完整性和问题的串行化(serialization)约束来定义正确的服务器设置,并且为客户机与服务器代理分配对象;识别出必须分

布哪些对象。

其结果是将类(和它们的对象)映射至一个任务集合和进程架构中的进程。通常,活动类具有代理任务,也存在一些变形:对于给定的类,使用多个代理以提高吞吐量,或者多个类映射至单个代理,因为它们的操作并不是频繁地被调用,或者是为了保证执行序列。

注意这并不是产生最佳过程架构的线性的、决定性的进程;它需要若干个迭代来得到可接受的折衷。还存在许多其他方法,例如Birman 等人5 或Witt 等人7提出的方法。确切的实施映射的方法不在本文的讨论范围,但我们以一个小的例子来说明一下。

图12 显示了一个小的类集合如何从假想的空中交通控制系统映射至进程。

flight 类映射至一个flight 代理集合:有许多航班等待处理,外部触发的频率很高,响应时间很关键,负载必须分布于多个CPU。并且,航班处理的持久化和分布性方面都取决于flight server,为了满足可用性,还是使用flight server 的一台备份服务器。

航班的profile 和clearance 总是从属于某个航班,尽管它们是复杂的类,但它们共享flight 类的进程。航班分布于若干其他进程,特别是对于显示和外部接口。

sectorization 类,为controller 的权限分配建立了空域划分。由于完整性约束,仅能被一个代理处理,但可以与flight 类共享服务器过程:更新得并不频繁。

location 和arispace 及其他的静态航空信息是受到保护的对象,在几个类中共享,很少被更新;它们被映射至各自的服务器,分布于其他过程。

图12 -从逻辑视图到过程视图的映射

从逻辑视图到开发视图

类通常作为一个模块来实现,例如Ada 包中可视部分的一个类型。密切相关的类(类的种类)的集合组合到子系统中。子系统的定义必须考虑额外的约束,如团队组织、期望的代码规模(通常每个子系统为5 K 或20 K SLOC)、可重用性和通用性的程度以及严格的分层依据(可视性问题),发布策略和配置管理。所以,通常最后得到的不是与逻辑视图逐一对应的视图。

逻辑视图和开发视图非常接近,但具有不同的关注点。我们发现项目规模越大,视图间的差距也越大。例如,如果比较图3 b 和图6,则会发现并不存在逐一对应的类的不同种类到层的映射。而如果我们考虑类的种类的"外部接口"-网关种类时,它的实现遍布若干层:通讯协议在第1 层或以下的层,通用网关机制在第2 层,而特定的网关在第5 层子系统。从进程视图到物理视图

进程和进程组以不同的测试和部署配置映射至可用的物理硬件。Birman 在ISIS 项目中描述了详细的映射模式5。

场景主要以所使用类的形式与逻辑视图相关联;而与进程视图的关联则是考虑了一个或多个控制线程的、对象间的交互形式。

模型的剪裁

并不是所有的软件架构都需要"4+1"视图。无用的视图可以从架构描述中省略,比如:只有一个处理器,则可以省略物理视图;而如果仅有一个进程或程序,则可以省略过程视图。对于非常小型的系统,甚至可能逻辑视图与开发视图非常相似,而不需要分开的描述。场景对于所有的情况均适用。

迭代过程

Witt 等人为设计和架构指出了4 个阶段:勾画草图、组织、具体化和优化,分成了12 个步骤7。他们还指出需要某种程度的反向工程。而我们认为对于大型的项目,该方法太"线性化"了。在4 个阶段的末尾,可用于验证架构的内容太少。我们提倡一种更具有迭代性质的方法,即架构先被原形化、测试、估量、分析,然后在一系列的迭代过程中被细化。该方法除了减少与架构相关的风险之外,对于项目而言还有其他优点:团队合作、培训,加深对架构的理解,深入程序和工具等等(此处提及的是演进的原形,逐渐发展成为系统,而不是一次性的试验性的原形)。这种迭代方法还能够使需求被细化、成熟化并能够被更好地理解。场景驱动(scenario-driven)的方法

系统大多数关键的功能以场景(或use cases)的形式被捕获。关键意味着:最重要的功能,系统存在的理由,或使用频率最高的功能,或体现了必须减轻的一些重要的技术风险。

开始阶段:

?基于风险和重要性为某次迭代选择一些场景。场景可能被归纳为对若干用户需求的抽象。

?形成"稻草人式的架构"。然后对场景进行"描述",以识别主要的抽象(类、机制、过程、子系统),如Rubin 与Goldberg6 所指出的―― 分解成为序列对(对象、操作)。

?所发现的架构元素被分布到4 个蓝图中:逻辑蓝图、进程蓝图、开发蓝图和物理蓝图。

?然后实施、测试、度量该架构,这项分析可能检测到一些缺点或潜在的增强要求。

?捕获经验教训。

循环阶段:

下一个迭代过程开始进行:

?重新评估风险,

?扩展考虑的场景选择板。

?选择能减轻风险或提高结构覆盖的额外的少量场景,

然后:

?试着在原先的架构中描述这些场景。

?发现额外的架构元素,或有时还需要找出适应这些场景所需的重要架构变更。

?更新4个主要视图:逻辑视图、进程视图、开发视图和物理视图。

?根据变更修订现有的场景。

?升级实现工具(架构原型)来支持新的、扩展了的场景集合。

?测试。如果可能的话,在实际的目标环境和负载下进行测试。

?然后评审这五个视图来检测简洁性、可重用性和通用性的潜在问题。

?更新设计准则和基本原理。

?捕获经验教训。

终止循环

为了实际的系统,初始的架构原型需要进行演进。较好的情况是在经过2 次或3 次迭代之后,结构变得稳定:主要的抽象都已被找到。子系统和过程都已经完成,以及所有的接口都已经实现。接下来则是软件设计的范畴,这个阶段可能也会用到相似的方法和过程。

这些迭代过程的持续时间参差不齐,原因在于:所实施项目的规模,参与项目人员的数量、他们对本领域和方法的熟悉程度,以及该系统和开发组织的熟悉程度等等。因而较小的项目迭代过程可能持续2-3 周(例如,10 K SLOC),而大型的项目可能为6-9 个月(例如,700 K SLOC)。

架构的文档化

架构设计中产生的文档可以归结为两种:

?软件架构文档,其结构遵循"4+1"视图(请对照图13,一个典型的提纲)

?软件设计准则,捕获了最重要的设计决策。这些决策必须被遵守,以保持系统架构的完整性。

图13 -软件架构文档提纲

结束语

无论是否经过一次本地定制的和技术上的调整,"4+1"视图都能在许多大型项目中成功运用。事实上,它允许不同的"风险承担人"找出他们就软件架构所关心的问题。系统工程师首先接触物理视图,然后转向进程视图;最终用户、顾客、数据分析专家从逻辑视图入手;项目经理、软件配置人员则从开发视图来看待"4+1"视图。在Rational 和其他地方,提出并讨论了其他系列视图,例如Meszaros(BNR)、Hofmeister。Nord 和Soni(Siemenms)、Emery 和Hilliard(Mitre),但我们发现其他视图通常可以归入我们所描述的4 个视图中的一个。例如Cost&Schedule 视图可以归入开发视图,将一个数据视图归入一个逻辑视图,以及将一个执行视图归入进程视图和物理视图的组合。

表1 -"4+1"视图模型一览表

致谢

"4+1" 视图的诞生要归功于在Rational、加拿大的Hughes Aircraft、Alcatel 以及其他地方工作的同事。笔者特别感谢下面这些人的贡献:Ch. Thompson、A. Bell、M.Devlin、G. Booch、W. Royce、J. Marasco、R. Reitman、V. Ohnjec、E. Schonberg。

参考资料

1. 您可以参阅本文在developerWorks 全球站点上的英文原文。

2. D. Garlan & M. Shaw, "An Introduction to Software Architecture," Advances in

Software Engineering and Knowledge Engineering, Vol. 1, World Scientific

Publishing Co. (1993).

3. D. E. Perry & A. L. Wolf, "Foundations for the Study of Software Architecture,"

ACM Software Engineering Notes, 17, 4, October 1992, 40-52.

4. Ph. Kruchten & Ch. Thompson, "An Object-Oriented, Distributed Architecture for

Large Scale Ada Systems," Proceedings of the TRI-Ada '94 Conference,

Baltimore, November 6-11, 1994, ACM,p.262-271.

5. G. Booch: Object-Oriented Analysis and Design with Applications, 2nd. edition,

Benjamin-Cummings Pub. Co., Redwood City, California, 1993, 589p.

6. K. P. Birman, and R. Van Renesse, Reliable Distributed Computing with the Isis

Toolkit, IEEE Computer Society Press, Los Alamitos CA, 1994.

7. K. Rubin & A. Goldberg, "Object Behavior Analysis," CACM, 35, 9 (Sept. 1992)

48-62

8. B. I. Witt, F. T. Baker and E. W. Merritt, Software Architecture and

Design-Principles, Models, and Methods, Van Nostrand Reinhold, New-York

(1994) 324p.

9. D. Garlan (ed.), Proceedings of the First Internal Workshop on Architectures for

Software Systems, CMU-CS-TR-95-151, CMU, Pittsburgh, 1995.

双城市域城镇体系规划范文

双城市域城镇体系规划 一、基本情况 1、自然概况 双城位于黑龙江省南部,松嫩平原东部,松花江中游南岸。西北、北隔松花江与肇源、肇东两县相望;东北靠哈尔滨市;东、东南与阿城、五常县接壤;南、西以拉林河为界,与吉林省榆树、扶余县为邻。市区位于哈尔滨市区西南44公里处,市域面积3112.29平方公里,东西长85公里,辖9镇18乡,385个行政村。 2、社会经济发展概况 2004年双城市市域总人口为80.58万人,其中非农业人口17.36万人,人口密度为256.05人/平方公里。 双城镇区人口为18.19万人,其中非农业人口为13.59万人。双城市域经济发展水平在黑龙江省县及市中名列前茅。2004年双城市域国内生产总值为126.57亿元,其中第一产业总产值为38.15亿元;第二产业总产值为43.06亿元;第三产总产值为45.35亿元;一、二、三产业产值所占比例为30.1:34: 35.8。 二、规划期限

依据城镇体系划编制办法,规划期限为2005――2020年其中 近期:2005年――2010年 远期:2011年――2020年 三、城镇发展与布局的综合条件分析评价 (一)有利因素 1、区位条件优越双城位于黑龙江省南端,历来是联接内地和北部边疆地区的重要门户,是中国东北北部中心城市哈尔滨的近邻和强辐射区域,是形成中的哈尔滨大都市圈的重要组成部分,已经并可以继续强化与哈尔滨的对位同步发展关系。另为作为老工业基地改造中的哈尔滨市第二产业的承接地对双城市经济影响巨大。 2、土地资源丰富双城全市呈平原地貌,无山,海拔高程120米-210米,属中温带大陆季风性气候,土质肥沃,多为黄粘土,其次为黑粘土,宜于种植旱田。市域内有林地及牧草地亩。 3、交通优势双城处在京哈铁路线、京哈速公路和102国道并行构成的东北地区生产力布局一级轴线上,并贴近京哈、绥满两大交通干线和城市产业带“T”形布局结构的交接点,市内的交通网已初具规模,铁路保持了原有的状况,公路交通得到了大力的加强。

软件体系结构

课程名称:软件体系结构 课程编号:C304 课程学分:2 适用学科:计算机应用技术 软件体系结构 Software Architecture 教学大纲 一、课程性质 本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。 二、课程教学目的 学生通过本课程的学习后,在概念上建立从体系结构看待软件系统的观念,理解体系结构设计的优劣对软件系统质量的影响;掌握软件体系结构的建模、评价与检测的方法,能够应用上述方法评价软件体系结构的质量。 三、课程教学基本内容及基本要求 第一章绪论(2学时) 1、软件体系结构概述 2、研究内容与方法 第二章软件体系结构建模理论(2学时) 1、软件体系结构描述语言ADL简介 2、时序逻辑描述语言LOTOS简介 3、实例研究:流媒体信道调度模型及描述

第三章软件体系结构一致性检测(2学时) 1、软件体系结构一致性 2、软件体系结构一致性测试算法 3、实例研究1-三层C/S结构一致性检测 第四章软件体系结构评价(4学时) 1、软件体系结构评价模型 2、软件体系结构性能评价 3、软件体系结构可靠性评价 4、实例研究基于C/S结构的视频点播系统性能研究 第五章软件体系结构案例分析(16学时) 1、COBAR体系结构简介 2、P2P体系结构简介 3、网格体系结构简介 四、本课程与其它课程的联系与分工 本课程的先修课程为《面向对象程序》及《分布式数据库》,通过上述课程的学习,使学生能够体会大型软件开发的基本过程,体会到软件开发中体系结构的重要性。 五、实践环节教学内容的安排与要求 结合本研究室的研究课题,评价软件体系结构的性能。 六、本课程课外练习的要求 结合自己的研究课题,建立软件体系结构的性能模型和可靠性模型,以实际系统为被背景评价软件体系的性能。

城镇体系规划的主要内容

城镇体系规划的主要内容 1、综合评价区域与城市建设和发展条件 区域与城市的建设和发展条件应包括历史背景、区域基础和经济基础等方面。 (1)历史背景 分析的主要内容:分析该区域各个城镇的分布格局和演变规律,解释区域城镇发展的历史阶段及导致每个阶段城镇兴衰的主要因素,特别要重视历史上区域中心城市的变迁 目的:研究城镇体系发展的主要因素演变的历史规律的目的是解释当前城镇体系的形成特点,从而为预测未来影响城镇体系发展的发展的主要因素及其作用提供启示。 (2)区域基础 分析目的:研究区域经济和城镇发展的有利条件和限制因素,涉及到自然资源和自然条件、劳动力、经济技术基础、区域交通条件、地理位置等广阔的领域。 (3)经济基础 分析内容:①要深入分析各产业部门的现状特点和存在的问题 ②明确各城镇中主要部门的发展方向。 通常需要回答的问题:①区域的工业发展方向,工业结构的调整及时序安排,主要城镇的工业布局和工业结构; ②区域的农业发展方向,农业结构的转变以及对城镇发展的影响; ③综合运输网的改善与城镇发展的关系;旅游资源的开发和城镇发展的关系; ④城镇第三产业的发展等。 2、预测区域人口增长,确定城市化目标 人口和城市化水平的预测所涉及的方面和影响因素较多,其中总人口的预测因资料丰富、方法成熟相对简单,城市化水平的预测则比较复杂,尤其是我国城镇人口统计口径不一致,前后年份的城镇人口资料缺乏可比性,给城市化水平的预测带来较大的难度。 确定城镇人口的实际含义和收集每个城镇最接近实际的城镇人口资料是准确预测城市化水平的关键。 应该从农业人口向城镇转移的可能性和城镇对农业人口可能的吸引能力两个侧面进行预测与互校。 3、确定本区域的城镇发展战略,划分城市经济区 城镇在区域中承担的职能是影星城镇规模和增长的重要因素。城镇职能结构的规划首先要建立在现状城镇职能分析的基础上。通过定量和定性分析相结合的方法,对比各城镇之间职能的相似性和差异性,确定城镇的职能分类。 对重点城镇还应该具体确定他们的城镇性质,力求把他们的主要职能特征准确表达出来,使城市总体规划编制有所依循。 有必要指出的是城镇体系的职能类型也应考虑未来一定年限内的新设城镇,确定其职能类型,使其与城镇体系原有城镇协同发展。 4、提出城镇体系的职能结构和城镇分工 城镇体系等级规模结构的确立应建立在分析现状城镇规模及分布的基础上,

软件体系结构总结

第一章:1、软件体系结构的定义 国内普遍看法: 体系结构=构件+连接件+约束 2、软件体系结构涉及哪几种结构: 1、模块结构(Module) 系统如何被构造为一组代码或数据单元的决策 2、构件和连接件结构(Component-And-Connector,C&C) 系统如何被设计为一组具有运行时行为(构件)和交互(连接件)的元素 3、分配结构(Allocation) 展示如何将来自于模块结构或C&C结构的单元映射到非软件结构(硬件、开发组和文件系统) 3、视图视点模型 视点(View point) ISO/IEC 42010:2007 (IEEE-Std-1471-2000)中规定:视点是一个有关单个视图的规格说明。 视图是基于某一视点对整个系统的一种表达。一个视图可由一个或多个架构模型组成 架构模型 架构意义上的图及其文字描述(如软件架构结构图) 视图模型 一个视图是关于整个系统某一方面的表达,一个视图模型则是指一组用来构建 4、软件体系结构核心原模型 1、构件是具有某种功能的可复用的软件结构单元,表示了系统中主要的计算元素和数据存储。 2.连接件(Connector):表示构件之间的交互并实现构件

之间的连接 特性:1)方向性2)角色3)激发性4)响应特征 第二章 1、软件功能需求、质量属性需求、约束分别对软件架构产生的影响 功能性需求:系统必须实现的功能,以及系统在运行时接收外部激励时所做出的行为或响应。 质量属性需求:这些需求对功能或整个产品的质量描述。 约束:一种零度自由的设计决策,如使用特定的编程语言。 质量原意是指好的程度,与目标吻合的程度,在软件工程领域,目标自然就是需求。 对任何系统而言,能按照功能需求正确执行应是对其最基本的要求。 正确性是指软件按照需求正确执行任务的能力,这无疑是第一重要的软件质量属性。质量属性的优劣程度反映了设计是否成功以及软件系统的整体质量。 系统或软件架构的相关视图的集合,这样一组从不同视角表达系统的视图组合在一起构成对系统比较完整的表达

湖北省城镇体系规划(-2020)划

湖北省城镇体系规划(2001—2020) 综合报告 湖北省城市规划设计研究院二○○二年十二月

目录 前言 (4) 第一章城镇发展进程与现状特征 (4) 一、概况 (4) 二、城镇发展进程 (5) 三、设市城市综合评价 (6) 四、城镇现状特征 (8) 第二章城镇发展基本条件 (15) 一、社会经济 (15) 二、资源条件 (17) 三、生态环境 (19) 第三章城镇发展战略 (20) 一、战略依据 (20) 二、城镇化水平预测 (21) 三、城镇发展战略 (22) 四、城镇发展方针 (24) 第四章城镇体系空间布局 (26) 一、总体结构 (26) 二、城镇发展轴 (27) 三、城镇密集地区 (27) 第五章城镇体系规模结构 (28) 一、城镇人口规模 (28) 二、建设用地规模 (30) 第六章城镇体系功能定位 (31)

一、省域中心城市 (31) 二、区域性中心城市 (32) 三、地区性中心城市 (33) 四、县(市)域中心城市 (34) 五、重点镇 (34) 六、一般镇 (36) 第七章城镇支撑体系 (36) 一、基础设施 (36) 二、社会设施 (43) 三、生态环境保护 (44) 四、安全保障设施 (47) 第八章规划实施 (50) 一、开发建设管制 (50) 二、区域发展协调 (58) 三、政策建议 (59) 附录一:湖北省城镇体系规划编制工作领导小组 (61) 附录二:湖北省城镇体系规划编制工作主持单位、主编单位 (62) 附录三:湖北省城镇体系规划编制工作工作组 (63) 后记 (64)

前言 根据《国务院办公厅关于加强和改进城乡规划工作的通知》(国办发(2000)25号)和建设部《关于加强省域城镇体系规划工作的通知》(建规(1998)108号)的精神,“湖北省城镇体系规划(2001—2020)”编制工作于2001年初全面展开,在湖北省建设厅的直接领导和主持下,湖北省城市规划设计研究院负责承担了具体的编制工作。 本规划的基本宗旨是全面贯彻和实施《湖北省国民经济和社会发展第十个五年计划纲要》中所确立的城镇化战略,提出符合湖北实际、显示湖北特色、具有时代特征的城镇体系构架,以带动和支撑湖北省国民经济的快速发展和社会事业的全面进步,努力使湖北省的经济社会发展走在中西部的前列,成为全国重要的经济增长极之一。 本规划的重点是制定科学的城镇化与城镇发展战略,对城镇进行准确定位、合理布局,并为城镇的发展构建完善的综合保障体系,以增强城镇的协作性和互动性,提升城镇的吸引力和辐射力,增强城镇的整体效益。 本规划的主要依据是:《中华人民共和国城市规划法》、国家建设部《城镇体系规划编制审批办法》、《城市规划的强制性内容暂行规定》以及《中华人民共和国国民经济和社会发展第十个五年计划纲要》、《湖北省国民经济和社会发展第十个五年计划纲要》等。 本规划的规划期限为2001—2020年,其中近期为2001—2005年,中期为2006—2010年,远期为2011—2020年,并对重大项目作了远景考虑和展望。 本规划的规划范围为湖北省行政区划所辖的地区,并在重大问题的论证和重大设施的布局上与周边省、市进行了相应的协调。 本规划组于2001年2月赴建设部咨询,了解全国各地省域城镇体系规划的最新进展和最新动态,以及建设部对湖北省城镇体系规划的要求和建议;2001年3月请湖北省建设厅有关业务部门根据实际工作需要,对湖北省城镇体系规划的主要内容和所要解决的问题进行了分析和探讨;之后,规划组开展了广泛的资料收集、整理和分析、论证工作,并先后赴鄂东、鄂西北、鄂中南和鄂西南地区的重点市、县、镇进行了实地调研;在此基础上,规划组编研出了湖北省城镇体系规划的初步成果。 2001年11月和2002年1月,先后请湖北省内的专家和建设部的领导及专家就初步成果进行了咨询论证,2002年4月,湖北省建设厅又安排厅党组成员及各部门负责人专门听取了规划组的汇报,2002年9月,湖北省人民政府办公厅主持召开了15个省直有关部门参加的省域城镇体系规划意见征询会。在修改过程中,按照国家建设部、中央编办、国家计委、财政部、监察部、国土资源部、文化部、国家旅游局、国家文物局联合下发的“关于贯彻落实《国务院关于加强城乡规划监督管理的通知》的通知”(建规(2002)204号)精神,深化了省域城镇体系规划中的有关强制性内容。 根据建设部《省域城镇体系规划审查办法》规定的程序,建设部城乡规划管理中心于2002年10月16—17日组织专家审查组对湖北省城镇体系规划进行了技术审查。规划组根据审查意见(规划综函2002第077号)对规划成果进行了修改和完善。2002年12月13日湖北省人民政府“城镇体系规划领导小组”讨论通过并同意《湖北省城镇体系规划(2001—2020)》上报国务院审批。 第一章城镇发展进程与现状特征 一、概况 湖北省位于长江中游、洞庭湖之北,东邻安徽,西连重庆,南界江西、湖南,西北与陕西接壤,北与河南毗邻。国土面积18.59万km2,占全国国土面积的1.94%,其中山地占56%,丘陵占24%,平原湖区占20%,土地利用总体结构为“七山一水二分田”。地形为北、西、东三面环山,中间低平,略向南敞开

城镇体系规划

第四章A 1.区域经济的概念 泛指一定区域内的人类经济活动,是指一个区域内各经济部门、经济地区及经济组织之间的经济关系和经济行为 2.霍夫曼比例 霍夫曼比例=消费资料工业的净产值/资本资料工业的净产值 3.增长极的概念、特点,增长极对区域经济影响的作用方式 (1)增长极——指具有推动性的主导产业和创新行业及其关联产业在地理空间上集聚而形成的经济中心。 (2)增长极的特点 从产业发展 从空间角度 从物质形态 (3)增长极对区域经济的影响是通过三大效应进行的 ①支配效应:增长极由于在技术、经济方面的先进性,能够通过与周围地区的要素和商品流动,对周围地区经济活动产生支配作用 ②乘数效应:增长极对周围地区的示范、组织和带动作用,受循环累积因果机制影响,这种作用会不断得到强化和放大,其影响范围和程度随之增大 ③极化与扩散效应: 极化效应:增长极的推动性产业吸引

和拉动周围地区的要素和经济活动不断趋向增长极,加快其自身成长 扩散效应:增长极向周围地区输出要素和经济活动,刺激和推动周围地区经济发展 4.主要的区域开发战略 (1)平衡开发战略 (2)不平衡开发战略 (3)协调-倾斜开发战略 (4)资源转换型开发战略 (5)市场导向型开发战略 (6)技术导向型开发战略 5.主要的区域开发模式 (1)据点开发模式(增长极开发模式) (2)点轴开发模式 (3)网络开发模式 (4)优势区位开发模式 (5)梯度开发模式 (6)跳跃开发模式 第四章B 1.中国城市化进程面临的基本问题及其解决对策 (1)面临的基本问题 农村对人口的强大推力来自:

①中国农村:高人口自然增长率 ②农业比较效益下降,土地对农民的吸引力下降 ③耕地面积逐年减少,单位面积耕地上劳动力密度增高 ④过量劳动力在城乡隔离的局面下无处释放 城市对农村移民的消纳力却相当有限,原因: ①相当数量的城市待业人员首先需要安置 ②城市经济体制改革的逐步深入将会把在业职工中的潜在失业日益暴露出来 ③在现行体制下城市财政能力的限制是农村人口向城镇转移的重要制约因素 (2)对策 对于城市化进程中面临问题的解决,最重要的环节是: ①控制人口增长 ②农业在广度和深度上的不断开拓 ③调整城镇的经济结构,以容纳更多劳动力 ④通过发展乡镇企业推动乡村工业化和乡村城镇化 2.城市(镇)化战略 概括城镇与区域、城镇与乡村的互动关系,反映城镇同经济社会、生态环境的有机联系,是城镇发展带有整体性、纲领性、长期性的行动方案

软件体系结构课后习题第三章作业样本

题1.层次系统结构和基于消息的层次系统结构有什么区别? 答: 层次系统组织成一个层次结构, 每一层为上层服务, 并作为下层客户。在一些层次系统中, 除了一些精心挑选的输出函数外, 内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机( 在另一些层次系统中层是部分不透明的) 。连接件经过决定层间如何交互的协议来定义, 拓扑约束包括对相邻层间交互的约束。这种风格支持基于可增加抽象层的设计。允许将一个复杂问题分解成一个增量步骤序列的实现。 由于每一层最多只影响两层, 同时只要给相邻层提供相同的接口, 允许每层用不同的方法实现, 同样为软件重用提供了强大的支持。 而在基于消息的层次系统结构中构件不直接调用一个过程, 而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册, 当一个事件被触发, 系统自动调用在这个事件中注册的所有过程, 这样, 一个事件的触发就导致了另一模块中的过程的调用。这种风格的构件是一些模块, 模块既能够是一些过程, 又能够是一些事件的集合。过程能够用通用的方式调用, 也能够在系统事件中注册一些过程, 当发生这些事件时, 过程被调用。这种风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序, 甚至不知道哪些过程会被调用, 因此, 许多隐式调用的系统也包含显式调用作为构件交互的补充形式。

题2.分析比较B/S、二层C/S和三层C/S, 指出各自的优点和缺点。 二层C/S结构的优点: ◆C/S 体系结构具有强大的数据操作和事务处理能力, 模型思想简单, 易于人们理解和接受。 ◆系统的客户应用程序和服务器构件分别运行在不同的计算机上, 系统中每台服务器都能够适合各构件的要求, 这对于硬件和软件的变化显示出极大的适应性和灵活性, 而且易于对系统进行扩充和缩小。 ◆在C/S体系结构中, 系统中的功能构件充分隔离, 客户应用程序的开发集中于数据的显示和分析, 而数据库服务器的开发则集中于数据的管理, 不必在每一个新的应用程序中都要对一个DBMS 进行编码。将大的应用处理任务分布到许多经过网络连接的低成本计算机上, 以节约大量费用 二层C/S结构的缺点: ◆开发成本较高 ◆客户端程序设计复杂 ◆信息内容和形式单一 ◆用户界面风格不一, 使用繁杂, 不利于推广使用 ◆软件移植困难 ◆软件维护和升级困难 ◆新技术不能轻易应用

软件体系结构作业完整版

第一章: 1.根据自己的经验,谈谈对软件危机的看法。 软件危机是指软件生产方式无法满足迅速增长的计算机需求,开发和维护过程出现的一系列问题。 以下几个原因导致:(1)软件自身特点 (2)开发人员的弱点 (3)用户需求不明 (4)缺乏正确理论指导 (5)开发规模越来越大 (6)开发复杂度越来越高 可以通过软件生命周期的模型和软件工具的使用来缓解危机,通过程序自动化和软件工业化生产的方法实现软件标准化的目标,进一步缓解软件危机带来的影响。 软件危机有利有弊,除了带来许多麻烦,也给我们带来许多挑战,克服危机的过程,我们在技术上和创新上都有了一个提升,也算是间接为软件产业的发展做了贡献。 2.什么是软件重用,软件重用的层次可以分为哪几个级别? 软件重用:是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。可以分为三个层次: (1)代码重用(2)设计结果重用(3)分析结果重用 3.什么是可重用构件?相对于普通的软件产品,对可重用构件有何特殊要求? 可充用构件表示软件重用过程中,可重用的软件构件元素。 可重用构件的特殊要求: (1)可重用构件应该具有功能上的独立性与完整性; (2)可重用构件应该具有较高的通用性; (3)可重用构件应该具有较高的灵活; (4)可重用构件应该具有严格的质量保证; (5)可重用构件应该具有较高的标准化程。 4.基于构件的软件开发的优势是什么?基于构件的软件开发面临哪些挑战和困难? 优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用困难和挑战:没有可依据的参考,可用资源和环境缺乏,开发难度高,而各方面需求增长速度与日剧增,更新和升级的跟进是一个不小的挑战.此外,在同一系统采用多个开发商提供的构件,它 们之间的兼容性可能是开发过程中所要面对的一个严峻的问题 挑战和困难: (1)在同一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问题; (2)采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场上的竞争力; (3)第三方的构件开发商可能歇业,这会使购买的构件失去维护服务。这些都是在购买第三方构件进行软件开发时无法回避的问题,因此需要对这些风险进行充分的估计。 5.简述3种应用最为广泛的构件技术规范COM、CORBA和EJB的各自特点。 CORBA的特点: (1)实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置。 (2)应用程序间的统一接口。

区域城镇体系规划与基础设施规划

区域分析与规划(教学参考书) 前言 内容提要 第七章区域进展战略 第一节战略与区域进展战略 第二节进展方向与战略目标 第三节战略抉择 第四节进展战略的理论模式 第八章区域经济空间结构理论第一节增长极理论 第二节核心-边缘理论 第三节点-轴渐进扩散理论 第四节圈层结构理论 第九章区域土地利用与爱护 第一节土地和土地利用 第二节土地的需求与供给 第三节土地类型与土地利用分区第四节优势区规划

第五节土地爱护 第十章区域产业规划布局 第一节产业的分类及区域产业结构演变 第二节第一产业规划布局 第三节第二产业规划布局 第四节第三产业规划布局 第十一章区域基础设施规划 第一节基础设施的性质和作用 第二节基础设施建设的理论和实践 第三节区域交通运输规划 第四节区域给水、排水规划 第五节区域电力规划 第六节区域电信规划 第十二章区域城镇体系规划 第一节城镇体系规划的意义、内容和方法第二节城镇进展区域条件分析评价 第三节城镇进展战略与人口城镇化水平预测第四节城镇体系结构规划 第五节重点地区和要紧都市的进展战略规划

第十三章区域环境规划 第一节区域环境特征与环境规划要求 第二节区域环境规划编制程序与工作步骤 第三节区域环境规划要紧内容 第四节区域环境规划方法与技术要点 第七章区域进展战略 第一节战略与区域进展战略 战略那个词本是军事上的用语。军事战略指对战争全局的谋略和谋划。第二次世界大战后,战略研究已超出军事的范围,被引伸到经济、科技、教育、社会进展等领域。1958年美国经济学家赫希曼的《经济进展战略》著作出版后,经济进展战略研究逐步受到重视。我国从20世纪70年代起亦广泛开始经济进展战略的研究。 战略那个概念,泛指带全局性和长远性的重大谋划。战略研究对推动区域乃至整个国家的进展有重大意义。战略研究具有如下特征: 3 / 502

软件体系结构课后习题参考答案

软件体系结构第四章作业 题1.请把基于体系结构的软件开发模型与其他软件开发模型进行比较。 答:一、基于体系结构为基础的基于构件组装的软件开发模型,如基于构件的开发模型和基于体系结构的开发模型等。基于体系结构的开发模型是以软件体系结构为核心,以基于构件的开发方法为基础。然后采用迭代增量方式进行分析和设计,将功能设计空间映射到结构设计空间,再由结构设计空间映射到系统设计空间的过程。该开发模型把软件生命周期分为软件定义、需求分析和定义、体系结构设计、软件系统设计和软件实现5个阶段. 特点:是利用需求分析结果设计出软件的总体结构,通过基于构件的组装方法来构造软件系统。 优点:基于构件的开发方法使得软件开发不再一切从头开发,开发的过程就是构件组装的过程,维护的过程就是构件升级、替换和扩充的过程。构件组装模型导致了软件的复用,提高了软件开发的效率。软件体系结构的出现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。并且软件复用从代码级的复用提升到构件和体系结构级的复用。 缺点:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,因而引入了较大的风险。 可重用性和软件高效性不易协调,需要精干的有经验的分析和开发人员,一般开发人员插不上手。 客户的满意度低,并且由于过分依赖于构件,所以构件库的质量影响着产品质量。 二、以软件需求完全确定为前提软件开发模型,如瀑布模型等。 特点:软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的阶段性; 优点:开发流程简单。 缺点:是开发后期要改正早期存在的问题需要付出很高的代价,用户需要等待较长时间才能够看到软件产品,增加了风险系数。并且如果在开发过程存在阻塞问题,则影响开发效率。 三、在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实现软件开发模型等。 特点:软件开发开始阶段只有基本的需求,软件开发过程的各个活动是迭代的。通过迭代过程实现软件的逐步演化,最终得到软件产品。在此引入了风险管理,采取早期预防措施,增加项目成功几率,提高软件质量; 优点:强调了其他模型均忽略了的风险分析。逐步调整原型使其满足客户的要求,而同时也使开发者对将要做的事情有更好的理解。使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。 缺点:由于需求的不完全性,从而为软件的总体设计带来了困难和削弱了产品设计的完整性,并要求对风险技能管理水平的高要求。 题2.请把基于体系结构的软件设计方法与其他软件设计方法进行比较。 答:基于体系结构的软件设计方法为产生软件系统的概念体系结构提供构造,概念体系结构是由Hofimeister、Nord和Soni提出的四种不同的体系结构中的一种,它描述了系统的主要设计元素及其关系。概念体系结构代表了在开发过程中作出的第一个选择,相应地,它是达到系统质量和商业目标的关键,为达到预定功能提供了一个基础。 体系结构驱动,是指构成体系结构的商业、质量和功能需求的组合。 使用基于体系结构的软件设计方法,设计活动可以在体系结构驱动一决定就开始,需求抽取和分析活动与设计活动并行。特别是在不可能预先决定所有需求时,例如产品线系统或长期运行的系统,快速开始设计是至关重要的。

城镇体系的概念

一、城镇体系的概念 城镇体系指在一个相对完整的区域或国家中,由不同职能分工、不同等级规模、空间分布有序的联系密切、相互依存的城镇群体。·城镇体系是一个区域范畴城市经济区——城市行政区·具有一定的等级和层次·具有不同的职能分工和多种城镇类型社会劳动地域分工——职能分工——确定城市性质·空间分布有序,形成一定的网络和格局空间地域结构的影响因素——区域生产力分布状况,受资源、自然条件、地理位置等影响城镇的相互作用、职能分工及各自的腹地范围·在时间上的动态变化历史变化引起的体系格局变化生产力布局状态的变化导致的格局变化基础设施条件引起的变化,尤其是交通条件 二、城镇体系的发展条件分析 1.城镇体系的区域发展条件城镇体系的区域发展条件是城镇体系赖以发展的基础,是城镇体系形成及发展的初始条件。目的:明确城镇体系在区域中的发展水平,明了其所处的地位与作用;明确城镇体系今后发展的有利条件与不利因素,扬长避短,有的放矢。方法: 区域综合发展水平分析——采用定性和定量相结合、单因子和复合因子相结合的方法,利用横向纵向比较手段,通过城镇体系的经济、科技、社会发展水平来反映城镇体系区域综合发展水平。区域发展优劣势分析——采取定性分析,找出城镇体系发展的有利与不利因素,以期发挥优势,转化劣势,使城镇体系的规划有的放矢。2.城镇发展的建设条件分析(a)城镇自然条件(主要指影响城镇发展的气象、地形与用地条件、水文及工程地质条件等);(b)城镇资源开发与工业布局条件;(c)城镇交通运输与区位条件;(d)城镇水源和能源条件;(e)城镇旅游发展条件;(f)城镇社会经济基础条件;(g)城镇地区农业发展条件;(h)城镇基础设施与投资环境条件;(i)城镇科技实力;(j)城镇生态环境条件。 三、城镇体系规划的发展 1、城镇体系规划的产生·城市的发展不能就城市论城市,应从较大区域范围来分析该城市在发展中所处的地位和作用,及其与周围城镇的关系,城市的发展和空间布局需要与区域开发建设的总体布局相互协调。·现行城市规划编制体系中没有专门的区域规划,城镇体系规划起到区域规划的部分作用。·1984年《城市规划条例》:“直辖市和市的总体规划应当把行政区域作为统一的整体,合理布置城镇体系。”·1989年《城市规划法》:“全国和各省、直辖市都要编制城镇体系规划,用以指导城市规划的编制”,“设市城市和县城的总体规划应有包括市和县的行政区域的城镇体系规划。”·1994年建设部颁布《城镇体系规划编制审批办法》。 2、城镇体系规划编制的现状

福师《城镇体系规划》模拟题

福师《城镇体系规划》模拟题 一、名词解释 1. 区域经济:区域经济泛指一定区域内的人类经济活动,是指一个区域内各经济部门、经济地区及经济组织之间的经济关系和经济行为。 2. 区域开发:开发利用区域所能支配的资源(包括区内资源和可以利用的区外资源),建立高效的经济结构,消除经济发展障碍,增强自我发展能力和竞争力,促进区域经济快速、持续发展的过程。 3. 城乡一体化:指城市与乡村在经济、社会、生态环境、空间布局上实现整体性的协调发展。既是一个城乡融合的理想模式,也是一个长期的地区社会经济发展过程,是社会—自然—经济复合生态系统演替的顶级状态。两个基本特征——经济上整体协调和空间上整体协调。 4. 生态产业:生态产业,是继经济技术开发、高新技术产业开发发展的第3代产业。生态产业是包含工业、农业、居民区等的生态环境和生存状况的一个有机系统。通过自然生态系统形成物流和能量的转化,形成自然生态系统、人工生态系统、产业生态系统之间共生的网络。生态产业,横跨--初级生产部门、次级生产部门、服务部门。 (定义在后面)5. 生态城市:将城市置于生态系统之中,把人的活动看作生态系统的一个环节、一个过程,强调自然界其它生物和各种生态支持系统对稳定生态系统的意义,把人类活动统一到生态系统的复杂循环之中 6. 走廊城市:走廊城市是一种新兴的城市群空间发展策略,是城市走廊在经济全球化和知识经济背景下的新发展。走廊城市不仅强调空间形态上的线状发展特征,而且更加强调城市群交流的效率以及经济发展模式和城市功能的整合。 7. 区域经济协调发展:相关区域之间在经济发展上相互联系、关联互动、正向促进、经济利益同向增长、经济差异趋于缩小的过程和状态。 8.城镇体系:也称为城市体系或城市系统(Urban System),指的是在一个相对完整的区域或国家中,由不同职能分工,不同等级规模,联系密切,互相依存的城镇的集合。它以一个区域内的城镇群体为研究对象,而不是把一座城市当作一个区域系统来研究。 9. 城镇体系规划:是国家或一定区域政府引导和协调区域城镇合理发展与布局规划。 10. 城镇规模结构:指区域城镇体系内部各城镇规模分布特征,是城市在地域上组合形式与分布情况。 11. 城镇功能组织:指按照城镇职能结构形成完善的客观规律和城市化战略中对城市现代化的基本要求,确定合理的中心城市体系和主要城市的发展方向,提出相应的实施对策。 12. 城镇空间组织:指按照城镇地域空间结构形成完善的客观规律和城市化战略中对空间城市化的基本要求,提出城镇空间规划及其操作方案,包括实施规划的政策措施。 13. 纳克斯陷阱:发展中国家贫困是由于经济落后、收入太低,导致供给方面储蓄水平过低,需求方面市场容量太小,投资引诱不足,从而造成贫困恶性循环。 14. 城镇职能:是指城市在一定地域内的经济、社会发展中所发挥的作用和承担的分工,是城市对城市本身以外的区域在经济、政治、文化等方面所起的作用。 15. 梯度开发模式:区域开发中,应该利用客观的经济梯度推移机制,因势利导,充分利用地区间的经济梯度差,首先把经济基础较好、水平相对较高的地区作为开发重点,进行重点培植,等到这类地区发展起来了,再依次开发中等发达地区、欠发达地区。最后,取得区域经济发展的空间平衡。 16. 非正式规划:非正式规划;即利用咨询、讨论、谈判、交流、参与等措施,在正式的规划途径之外,开辟一条不完全是官方的意见交流和协商行动的渠道。 17. 雁行形态说:在产业发展方面,后进国家的产业赶超先进国家时,是以雁行形态来进行的。他指出后进国家的产业发展是按“进口—国内生产—出口”的模式相继交替发展。这个过程在图形上很像三只大雁在飞翔,故称之为雁行形态说。 18. 城市圈:是城市群的一种空间表现形式,是以空间联系作为主要考虑特征的功能地域概念(单核心的都市圈和多核心的都市圈)。 19. 城市群:是近代城镇空间组织的一种形态,指在一定地域范围内集聚了若干数目城镇,它们之间大小规模不等,职能各异,彼此保持密切联系,而又相对独立,在距离上既相互分离,中间多有隔绿带,又易于交往。 20. 库兹涅茨法则:通过对各国国民收入和劳动力在这些产业间分布结构的变化进行统计分析,得到以下结论: 随着时间的推移,农业部门的国民收入在整个国民收入中的比重(国民收入的相对比重)和农业劳动力在全部劳动力中的比重(劳动力的相对比重)均处于不断下降之中。工业部门的国民收入比重大体上是上升的,但是,工业部门劳动力的相对比重则大体不变或略有上升,服务部门的劳动力相对比重基本上是上升的。然而,其国民收入的相对比重却未必与劳动力的相对比重一样同步上升,综合地看,大体不变或略有上升。 他认为引起产业结构发生变化的动因是各产业部门在经济发展中所出现的相对收入的差异。 二、简答题 1.城镇体系规划的定位? (1)主导城乡空间结构调整(2)指导区域性基础设施配置(3)引导生产要素流动、集聚 以上“三导”的效力并不是等同的。由于市场经济条件下政府和市场的作用各异,规划建设主管部门和其它基础设施主管部门对城镇体系规划的职责有别,因此,城镇体系规划的“三导”对经济社会发展和空间演化发挥效力的程度依次递减,即城镇体系规划定位的层次以主导城乡空间结构调整为最高,以指导区域性基础设施配置为次,以引导生产要素流动、集聚为末。 2.新时期城镇体系规划的重点是什么? 答:1.制订城市化和城市发展战略,规划城镇体系组织结构 2.协调和部署影响城市化与城市发展的全局性和整体性事项,确定开发建设管治区划 3.按照规划提出的城市化与城镇发展战略和整体部署,确定城镇体系组织机制建设方向; 4.确定区域城镇发展用地规模的控制目标,落实耕地总量动态平衡的战略要求; 5.确定乡村地区非农产业布局和居民点建设的原则。 3.城镇空间组织的定义与作用意义? 答:城镇空间组织的定义:按照城镇地域空间结构形成完善的客观规律和城市化战略中对空间城市化的基本要求,提出城镇空间规划及其操作方案,包括实施规划的政策措施。 城镇空间组织的作用与意义:主导城乡空间结构调整;指导区域性基础设施配置;引导生产要素流动、集聚;保证良好的生态环境质量;推进规划地区城市化和现代化。 4. 简述城镇体系结构与组织规划? 将传统的“三结构”规划上升、扩展为包括制定实现结构优化的政策、措施在内的城镇空间组织、城镇功能组织、城镇规模组织规划,并在具体内容上根据政府职能进行相应扩充。 5. 城镇体系规划编制方法? (1)城镇体系规划基础资料收集(2)城镇体系规划的步骤(3)城镇体系规划成果内容:城镇体系规划文件城镇体系规划主要图纸 6.简要说明城镇体系规划基本方法? (1)组织方法:规划是政府行为。城镇体系规划必然是政府协调和引导区域开发的重要手段和决策依据。 (2)技术方法:设立有限的规划目标,根据需求、问题、条件,确定规划内容;深入研究发展机制和宏观的、长期性的影响因素,排除短期行为和单方利益的干扰;在规划中增强和发挥工程学科的作用;保证合理的规划弹性,注重多方案比选和技术经

最新软件体系结构复习资料

软件体系结构知识点: 第一章: 1.什么是软件体系结构 答:软件体系结构=构件+连接件+约束软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。 2.软件体系结构形式化方法 答:1.根据对目标软件系统进行说明的方式: (1)面向模型的方法。在这个方法中,对目标软件系统的说明是为其构造一个模型,该模型的构成成分是一些具有特性的数据抽象,如域, 元组等 (2)面向性质的方法。这种方法是直接给出目标软件系统的一组特性来描述目标软件系统。通常是目标软件系统必须满足的形式公理,其形式 化说明仅描述目标软件系统的性质,而不涉及实现方法。 2.根据表达能力的形式方法可分为以下五大类 (1)基于模型的方法 (2)代数方法 (3)过程代数方法 (4)基于逻辑的方法 (5)基于网络的方法 3.软件质量定义、软件质量模型 答:,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。 第二章: 4.Kruchten 4+1模型描述软件体系结构 Kruchten 4+1模型建立在体系结构的Perry&Wolf定义和Berry Boehm定义的基础上,采用多视图模型的方法描述软件体系结构。该模型由5个视图构成,每个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件体系结构的全部内容。 程序员软件管理 集成者信 性能可扩展性

城市总体规划编制标准

城市总体规划 第一条城市总体规划编制有两个阶段,城市总体规划纲要和城市总体规划。 第二条城市总体规划纲要的主要任务是研究确定城市总体规划的重大原则,作为编制城市总体规划的依据。城市总体规划纲要成果包括文字说明和必 要的示意性图纸。 第三条城市总体规划纲要 1、简述城市自然、历史、现状特点; 2、分析论证城市在区域发展中的地位和作用、经济社会发展的目标、 发展优势与制约因素,初步划出城市规划区范围; 3、原则确定规划期内的城市发展目标、城市性质,初步预测人口规模、 用地规模; 4、提出城市用地发展方向和布局的初步方案; 5、对城市能源、水源、交通、基础设施、防灾、环境保护、历史文化、 遗产保护、重点建设等主要问题提出原则规划意见; 6、提出制订和实施城市规划重要措施的意见; 7、专题研究报告:对城市重大问题进行研究(视情况选定)。 第四条城市总体规划纲要图纸 1、区域城镇关系示意图,标明相邻城镇位置、行政区划、重要交通设 施、重要工矿和风景名胜区等。图纸比例为1/10万—1/50万; 2、城市现状示意图,标明城市主要建设用地范围、主要干道、各类保 护区以及主要的基础设施。图纸比例为1/25000—1/50000; 3、城市规划示意图,标明城市规划区和城市规划建设用地大致范围, 标注各类主要建设用、规划主要干道、河湖水面、生态和历史文化 保护区、重要的对外交通设施等。图纸比例为1/25000—1/50000; 4、规划方案的结构示意图。 第五条城市总体规划的主要任务是综合研究和确定城市性质、规模和空间发展形态,统筹安排城市各项建设用地,合理配置城市各项基础设施,处理 好远期发展与近期建设的关系,指导城市合理发展。 第六条城市总体规划成果包括规划文件和规划图纸。文件包括规划文本和附件,规划文本是对规划的各项目标和内容提出规定性要求的文件。 第七条城市总体规划文本 1、前言:说明本规划编制的依据; 2、城市规划基本对策概述; 3、市(县)域的城镇发展。包括城镇发展战略及总目标,预测城市化 水平,城镇职能分工,发展规模等级,空间布局,区域性交通设施, 基础设施,环境保护区,风景旅游区的总体布局,有关城镇发展 的技术政策; 4、城市性质,城市规模和规划期限,城市规划区范围,城市发展方针 与战略,城市人口现状及发展规模; 5、城市土地利用和空间布局 (1)确定人均用地和其他技术经济指标,注明现状建成区面积, 确定规划建设用地范围和面积,列出用地平衡表; (2)城市各类用地布局,不同区位土地使用原则及地价等级的划

软件体系结构课后习题参考答案

软件体系结构第四章作业 题 1. 请把基于体系结构的软件开发模型与其他软件开发模型进行比 较。 答:一、基于体系结构为基础的基于构件组装的软件开发模型,如基于构件的开发模型和基于体系结构的开发模型等。基于体系结构的开发模型是以软件体系结构为核心,以基于构件的开发方法为基础。然后采用迭代增量方式进行分析和设计,将功能设计空间映射到结构设计空间,再由结构设计空间映射到系统设计空间的过程。该开发模型把软件生命周期分为软件定义、需求分析和定义、体系结构设计、软件系统设计和软件实现 5 个阶段. 特点:是利用需求分析结果设计出软件的总体结构,通过基于构件的组装方法来构造软件系统。 优点:基于构件的开发方法使得软件开发不再一切从头开发,开发的过程就是构件组装的过程,维护的过程就是构件升级、替换和扩充的过程。构件组装模型导致了软件的复用,提高了软件开发的效率。软件体系结构的出现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。并且软件复用从代码级的复用提升到构件和体系结构级的复用。 缺点:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,因而引入了较大的风险。可重用性和软件高效性不易协调,需要精干的有经验的分析和开发人员,一般开发人员插不上手。客户的满意度低,并且由于过分依赖于构件,所以构件库的质量影响着产品质量。 二、以软件需求完全确定为前提软件开发模型,如瀑布模型等。 特点:软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的阶段性; 优点:开发流程简单。 缺点:是开发后期要改正早期存在的问题需要付出很高的代价,用户需要等待较长时间才能够看到软件产品,增加了风险系数。并且如果在开发过程存在阻塞问题,则影响开发效率。 三、在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实现软件 开发模型等。 特点:软件开发开始阶段只有基本的需求,软件开发过程的各个活动是迭代的。通过迭代过程实现软件的逐步演化,最终得到软件产品。在此引入了风险管理,采取早期预防措施,增加项目成功几率,提高软件质量; 优点:强调了其他模型均忽略了的风险分析。逐步调整原型使其满足客户的要求,而同时也使开发者对将要做的事情有更好的理解。使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。 缺点:由于需求的不完全性,从而为软件的总体设计带来了困难和削弱了产品设计的完整性,并要求对风险技能管理水平的高要求。

城乡规划编制体系简介

城乡规划编制体系简介 一、城乡规划编制的阶段 根据《中华人民共和国城乡规划法》第二条:城乡规划包括:城镇体系规划、城市规划、镇规划、乡规划和村庄规划。 城乡规划分为总体规划和详细规划两个阶段。详细规划分为控制性详细规划和修建性详细规划。 城乡规划体系如下表(见图一) 二、城乡规划的编制内容 1、省域城镇体系规划 内容:城镇空间布局和规模控制,重大基础设施的布局,为保护生态环境、资源等需要严格控制的区域。 2、城市总体规划、镇总体规划 内容:城市、镇的发展布局,功能分区,用地布局,综合交通体系,禁止、

限制和适宜建设的地域范围,各类专项规划等。规划区范围、规划区内建设用地规模、基础设施和公共服务设施用地、水源地和水系、基本农田和绿化用地、环境保护、自然与历史文化遗产保护以及防灾减灾等内容,应当作为城市总体规划、镇总体规划的强制性内容。规划期限一般为20年,城市总体规划还应当对城市更长远的发展作出预测性安排。 3、近期建设规划: 内容: (一)确定近期人口和建设用地规模,确定近期建设用地范围和布局。 (二)确定近期交通发展策略,确定主要对外交通设施和主要道路交通设施布局;(三)确定各项基础设施、公共服务和公益设施的建设规模和选址。 (四)确定近期居住用地安排和布局; (五)确定历史文化名城、历史文化街区、风景名胜区等的保护措施,城市河湖水系、绿化、环境等保护、整治和建设措施。 (六)确定控制和引导城市近期发展的原则和措施。 4、分区规划 内容: (一)确定分区的空间布局、功能分区、土地使用性质和居住人口分布。(二)确定绿地系统、河湖水面、供电高压线走廊、对外交通设施用地界线和风景名胜区、文物古迹、历史文化街区的保护范围,提出空间形态的保护要求。(三)确定市、区、居住区级公共服务设施的分布、用地范围和控制原则;(四)确定主要市政公用设施的位置、控制范围和工程干管的线路位置、管径,进行管线综合。 (五)确定城市干道的红线位置、断面、控制点座标和标高,确定支路的走向、宽度,确定主要交叉口、广场、公交站场、交通枢纽等交通设施的位置和规模,确定轨道交通线路走向及控制范围,确定主要停车场规模与布局。 5、控制性详细规划 内容: (一)确定规划范围内不同性质用地的界线,确定各类用地内适建,不适建或者

相关主题