软件体系结构模式

2024-07-29

软件体系结构模式(共12篇)

软件体系结构模式 篇1

1. 引言

模式是软件体系结构的一种方式。当设计一个软件系统时,它们可以进行形象描述。模式支持采用定义属性来构造软件,它提供一个功能行为的基本框架,有助于实现应用程序的功能。本文系统概述了软件体系结构中的模式,以及对模式进行了一个全面深入的探讨。

2. 模式

2.1 什么是模式

软件模式的概念由来已久,软件中的模式起源于建筑,正如Gangof Four在《设计模式》中所说:“尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于面向对象设计模式。只是在面向对象的解决方案里,我们用对象和接口代替了墙壁和门窗。两者的核心都在于提供了相关问题的解决方案[1]。”

当系统设计师求解一个特殊问题时,他们一般不会发明一种和已有解决方案完全不同的方案来处理这个问题。他们往往会借鉴已解决过的相似问题,并重用其解法的精华部分来解决新的问题。简单而言,是一种针对某一特定的、反复出现的问题的成功的解决方案。就问题本身而言,可以是任意领域和范畴的。可见我们在分析软件系统时,必须考虑问题的可重用性。

在软件领域中,模式被以一种约定的文档形式来表现出来,以便于记录、学习和交流。经验丰富的程序员,可以将他们的知识,通过模式这种更形式化的表述,传递给别人。因而,模式可以看作是一种具体化的、文档化的经验和知识。一个模式是描述一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该解决方案而不必做重复劳动。每个模式是由三部分组成的一个规则,这个规则描述特定环境(语境)、问题和解决方案之间的关系。简单的说,没有一个模式是独立的实体,每个模式都存在着相互支持,但支持的程度不同:抽象度高的模式可以嵌套抽象度小的模式,同等层次的模式并列存在,而小的模式被嵌入到大的模式之中。

总结来说,一个软件系统结构的模式是描述了一个出现在特定语境中的特殊的再现设计问题,并为它的解决方案提供了一个经过充分验证的通用图式。解决方案图式通过描述其组成组件、它们的责任和相互关系以及它们的协作方式来具体指定。

2.2 模式的分类

随着模式的增多,我们可以在多个领域内定义模式,有些模式有助于把一个软件系统分解成子系统,另一些模式有助于实现特定编程语言中的特殊设计方面。为了细化我们的分类,因此我们把模式分成三种类型:体系结构模式,设计模式和惯用法。下面对这三类模式进行说明。

(1)体系结构模式表示软件系统的基本结构化组织图式。根据一些整体构建原理来建立可行的软件体系结构,我们可以用软件体系结构模式来描述这些原理。它提供一套预定义的子系统,规定它们的职责,并包含用于组织它们之间关系的规则和指南。体系结构模式可作为具体软件体系结构的模板。它们规定一个应用的系统范围的结构特性,以及对其子系统的体系结构施加的影响。所以体系结构模式的选择是开发一个软件系统时的基本设计决策。模型--视图--控制器(MVC)模式是体系结构模式最著名的例子之一。

(2)设计模式提供一个用于细化软件系统的子系统或组件,或它们之间关系的图式。软件体系结构是描述子系统以及它们之间的关系,通常由几个更小的体系结构单元构成。我们用设计模式来描述它们。

它描述通信组件的公共再现结构,通信组件可以解决特定语境中的一个一般设计问题。设计模式是中等规模的模式。设计模式的应用对软件系统的基础结构没有影响,但可能对子系统的体系结构有较大影响。

(3)惯用法是具体针对一种编程语言的低层模式。惯用法描述如何使用给定语言的特征实现组件的特殊方面或它们之间的关系。它们关注设计和实现方面。大多数惯用法是针对于具体语言--它们捕获现有的编程经验。

这种对模式的分类有助于我们为给定的设计问题预先选定潜在有用的模式。体系结构模式可以用在大粒度设计的开始,设计模式可以用在整个设计阶段,惯用法可以用在实现阶段。

3. 模式和软件体系结构

3.1 软件体系结构

软件体系结构的提出源于程序复用的概念,可以说体系结构的复用是最高级别的复用形式。我们将使用软件体系结构的下列定义:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理[3]。

3.2 软件体系结构中的模式

为什么要在软件体系结构中引入模式呢?在组建体系结构过程中,许多被人们广泛采用的体系结构模式如管道和过滤器、层次结构、代理者等,常被用户按照自己的理解并以不同的方式应用到系统开发中。其结果通常是,系统设计人员无法就软件的体系结构达成共识,因而也就无法对系统结构设计方案进行评估、选择与交流,难以指导系统的组建和实现。模式的总结和发展较好地解决了上述问题,它利用软件工程专家在软件开发过程中积累的成功设计经验来指导设计实践。

我们的模式建立在设计者和程序员近三四十年来在软件开发中得到的极其广泛的实际经验基础之上的。我们描述的模式都不是人工构造出来的,它们既不是我们也不是别人构造的———它们是随着时间演化而得到的。软件开发者认识到:使用某个特定方法解决一个问题要比使用其它方法好,因此它们一而再,再而三地使用这种解决方法。

模式同样也明确建立在为结构化程序设计而开发出的许多原理基础之上,模式并非仅致力于对象技术。在20世纪70年代发展起来的许多程序设计原理构成了我们的模式基础。模式的另一个目标是使用可预测的非功能属性建造软件系统,因此模式建造也就基于这样的原则:为重用进行软件开发并且使用重用开发软件,为变更而设计。

4. 结束语

模式为开发具有已定义属性的软件提供了一种有前途的方法,它们把现有的设计知识文档化,有助于我们为设计问题找到适当的解决方案。模式存在于各种不同的规模和抽象之中,并覆盖软件开发的许多不同的和重要的领域。模式彼此交织--我们可以用它们来细化其它较大规模的模式,并且可以将它们组合以解决更复杂的问题,我们关注软件体系结构的重要方面并对现有技术和方法进行补充。总之模式提供了一个“宝盒”来帮组我们构造应用程序的功能需求和非功能需求的软件。

摘要:主要阐述了模式的概念、原理和常用模式的分类,重点研究了软件体系结构中的模式。模式是总结软件开发中现存的、被证明良好的经验,再用来促进好的设计实践,每个模式都是处理一个软件系统的设计或实现一种特定类型的重复出现的问题。

关键词:模式,软件体系结构,软件设计

参考文献

[1]Frank Buschmann,Regine Meunier,Hans Rohnert,Peter Sommer-lad,Michael Stal.Pattern-Oriented Software Architecture Volume1:A System of Patterns[M].北京:机械工业出版社2003.

[2]Jeffrey L.Whitten,Lonnie D.Bentley,Kevin C.Dittman.Sys-tem Analysis And Design Methods[M].北京:高等教育出版社,2001.

[3]张友生.软件体系结构[M].北京清华大学出版社,2004.

软件体系结构模式 篇2

一、实验目的1)了解智能模型的概念

2)查阅有关SVM算法,并作理解

二、实验要求

1)简介 智能模型基于知识的软件开发模型,它与专家系统结合在一起。该模型应用基于规则的系统,采用归纳和推理机制,帮助软件人员完成开发工作,并使维护在系统规格说明一级进行。该模型在实施过程中要建立知识库,将模型本身、软件工程知识与特定领域的知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与含应用领域知识规则的其他专家系统相结合,构成这一应用领域软件的开发系统。

2)详细说明 智能模型也称为“基于知识的软件开发模型”,它把瀑布模型和专家系统结合在一起,利用专家系统来帮助软件开发人员的工作。该模型应用基于规则的系统,采用归纳和推理机制,使维护在系统规格说明一级进行。这种模型在实施过程中以软件工程知识为基础的生成规则构成的知识系统与包含应用领域知识规则的专家系统相结合,构成这一应用领域软件的开发系统。

智能模型拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等),每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。这种方法需要四代语言(4GL)的支持。4GL不同于三代语言,其主要特征是用户界面极端友好,即使没有受过训练的非专业程序员,也能用它编写程序;它是一种声明式、交互式和非过程性编程语言。4GL还具有高效的程序代码、智能缺省假设、完备的数据库和应用程序生成器。目前市场上流行的4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事务信息系统的中、小型应用程序的开发。

3)必要性

智能模型所要解决的问题是特定领域的复杂问题,涉及大量的专业知识,而开发人员一般不是该领域的专家,他们对特定领域的熟悉需要一个过程,所以软件需求在初始阶段很难定义得很完整。因此,采用原型实现模型需要通过多次迭代来精化软件需求。

智能模型以知识作为处理对象,这些知识既有理论知识,也有特定领域的经验。在开发过程中需要将这些知识从书本中和特定领域的知识库中抽取出来(即知识获取),选择适当的方法进行编码(即知识表示)建立知识库。将模型、软件工程知识与特定领域的知识分别存入数据库,在这个过程中需要系统开发人员与领域专家的密切合作。

智能模型开发的软件系统强调数据的含义,并试图使用现实世界的语言表达数据的含义。该模型可以勘探现有的数据,从中发现新的事实方法指导用户以专家的水平解决复杂的问题。它以瀑布模型为基本框架,在不同开发阶段引入了原型实现方法和面向对象技术以克服瀑布模型的缺点,适应于特定领域软件和专家决策系统的开发。

三、实验结果

软件体系结构的层次性 篇3

关键词:体系结构;分层;OSI

中图分类号:TP311 文献标识码:A文章编号:1007-9599 (2011) 07-0000-01

The Hierarchy of SoftwareArchitecture

Li Qiang,Yang Wenqing

(Jiangxi BlueSky University,Ministry of Public Education,Nanchang330098,China)

Abstract:This article mainly introduces software architecture the basic thought that carries on the layer division,has comprehensively analyzed the architecture division layer necessity,the corresponding rules and the good and bad points.

Keywords:Architecture;Stratify;OSI

20世纪90年代以来,随着计算机网络技术的发展和成熟,特别是Internet的普及,将应用扩展到局域网、广域网,甚至Internet已成为用户的普遍需求,另一方面,随着应用的拓展和系统规模的扩大,计算机软件的复杂程度也在不断地增加,软件体系结构在软件设计和开发过程中所起的作用越来越重要,采用层次式软件体系结构的设计思想也越来越受到人们的重视。

一、软件体系结构的概念

虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画,其中一个较为典型的定义是由Mary Shaw和David Garlan所提出来的,他们认为:软件体系结构是软件设计过程中的一个层次,(即不但软件体系结构具有层次性,从整体上来看软件体系结构本身也是作为软件设计过程中的一个层次)只不过这一层次超越计算过程中的算法设计和数据结构设计。

二、软件体系结构的层次

“分层”可将庞大而复杂的问题,转化为若干较小比较易于研究和处理的局部问题。分层是表示将功能进行有序的分组:应用程序专用功能位于上层,跨越应用程序领域的功能位于中层,而配置环境专用功能位于低层。层的数量与组成取决于问题领域和解决空间的复杂程度。

从整体上看一般可以分为三个层次:客户端层、中间层和数据源层。

1.客户端层是将数据呈现给用户或处理用户输入的应用程序或系统一部分。客户端也称为前端,它并不执行数据函数,而是通过输入向服务器请求数据,然后以一定的格式显示结果。

2.中间层是用户接口或Web客户端与数据库之间的逻辑层。

3.数据源层是用来控制你程序的流程。

(一)分层规则

分层是从逻辑上将一个完整的系统划分成许多个子系统的集合,而层间关系的形成必然要遵循一定的规则。通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护。其具体规则如下:

1.可见度。各子系统只能与同一层及其下一层的子系统存在依赖关系。

2.易变性。最上层放置随用户需求的改变而改变的元素。最底层放置随实施平台的改变而改变的元素。中间的夹层放置广泛适用于各种系统和实施环境的元素。如果在这些大类中进一步划分有助于对模型进行组织,则添加更多的层。

3.通用性。一般将抽象的模型元素放置在模型的低层。如果它们不针对于具体的实施,则倾向于将其放置在中间层。

分层反映实体模块之间的依赖关系,层数并不是越多越好,适当最好。对于小型系统,三层就足够了。对于复杂系统,通常需要5-7层。(二)采用层次系统的优缺点

层次系统有许多可取的属性:

1.系统的开发和设计可以逐步的分层次的进行,从底层的简单的功能逐步建立高层的复杂和抽象的功能。这样就可能把一个复杂的系统按递增的步骤进行分解;

2.支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;

3.支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。

但是,层次系统也有其不足之处:

1.并不是每个系统都可以很容易地划分为分层的模式,划分清晰、逻辑上一致的层次是非常困难的(OSI的失败和TCP/IP的成功说明了这一点);

2.严格的层次调用结构会降低系统的性能;

3.很难找到一个合适的、正确的层次抽象方法。

(三)分层协议的体系结构

(Open Systems Interconnection)简称OSI,OSI标准采用的方法是将整个庞大而复杂的问题划分为若干个容易处理的小问题,这就是分层的体系结构方法。OSI是分层体系结构的一个实例,每一层是一个模块,用于执行某种主要功能,并具有自己的一套通信指令格式。根据分而治之的原则,OSI将整个通信功能划分为七个层次,划分层次的主要原则是:

1.网中各结点都具有相同的层次;

2..不同结点的同等层具有相同的功能;

3.同一结点内相邻层之间通过接口通信;

4.每一层可以使用下层提供的服务,并向其上层提供服务;

5.不同结点的同等层通过协议来实现对等层之间的通信。

虽然OSI在法律上已经成为国际标准,然而却由于OSI的协议实现起来过分复杂,且运行效率很低以及OSI的层次划分也并不太合理,有些功能在多个层次中重复出现等诸多原因使得OSI并没有得到市场的认可。TCP/IP是四层的体系结构:应用层、运输层、网际层和网络接口层。然而TCP/IP最下面的网络接口层也并没有具体内容。因此往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,将TCP/IP的网络接口层又分为数据链路层和物理层。

参考文献:

[1]刘真.软件体系结构——21世纪高等学校规划教材[M].北京:中国电力出版社,2004

[2]孙昌爱,金茂忠,刘超.软件体系结构研究综述[J].软件学报,2002,13(7):1228-1237

浅谈软件的体系结构与模式 篇4

关键词:体系结构模式,设计模式,惯用法,层次结构,Java

体系结构的概念存在于社会生活的许多方面。如桥梁设计中, 有拱形、板式支撑、吊索、斜拉索等;在计算机硬件体系的设计中, 有单处理器、多处理器、并行计算、网络计算等等。对于软件的体系结构, 目前可供选择的各种结构形态也很多, 如客户/服务器、分布式、层次式、交互式、解释器等等。软件工程专家从这些结构中总结和抽象出一些规律性的知识, 这就是软件的模式。在软件应用开发过程中, 如果能够有意识的遵循这些模式将使我们能够更有效而出色地解决设计问题。由于软件不过是近半个世纪的新生物, 软件的很多思想都源自人类其他行业的知识, 人们对模式的狂热追求, 正从另一个侧面反映了人类对规律的向往和崇拜。人们往往从具体的现象出发, 总结出抽象的规律, 然后又将规律应用到现实中去指导实践。软件行业也同样具有这样的规律性, 因此, 研究软件的模式是十分必要和有意义的。

1 面向模式的软件体系结构

从三个不同的粒度层次将软件的模式分为三大类, 即体系结构模式 (Architecture Patterns) 、设计模式 (Design Patterns) 和惯用法 (Idioms) 。

1.1 体系结构模式

体系结构模式代表了模式系统中最高等级模式。一个特定的软件体系结构可能包含多个模式的应用, 它们为软件系统提供了一个结构化的框架, 具体的细化和实现工作还需要设计模式以及惯用法的支持。

1.2 设计模式

总结目前的设计模式中最经典的23种设计模式, 将它们分类为创建型模式, 结构型模式和行为模式。在系统开发阶段强调这种机制的优势在于:它能使所生成的体系结构更加精巧、简洁和易于理解, 其程度远远超过了未使用模式的体系结构。确实, 体系结构的好坏直接决定了软件系统的命运。而模式的应用可以帮助建立有效的、出色的体系结构。Java语言的简洁性有助于快速掌握设计模式的原理。

1.3 惯用法

惯用法是特定程序设计语言中的低层模式。它主要描述如何在特定语言中解决具体的实现问题。一些基本的数据结构也可以认为是一种最底层的模式, 如堆栈和队列的实现等等。

2 体系结构的层次

一个系统的设计是由许多层次构成的。层次结构实际上是一种“分而治之 (Divide and Conquer) ”的思想, 即将一个粒度由小到大连续的空间分为不同粒度范围类的层次空间。软件的设计同样是层次性的。可分为:结构级, 代码级和执行级。

从软件体系结构的层次性概念出发, 将软件体系结构划分为五个大的层次:软件的硬件层、基础控制描述层、资源级管理调度层、系统结构模式层和领域应用层。

3 以Java为例浅谈其体系结构

J ava语言拥有三大特征:平台无关性、网络移动性和安全性, 而J ava体系结构对这三大特征提供了强大的支持和保证, 下面着重介绍J ava体系结构对支持信息安全的原理和使用方法。

3.1 Java的体系结构

首先Java的源代码Java文件由编译器编译成Java的二进制字节码class文件, 然后由Java虚拟机中的类装载器进行加载, 同时类装载器还会加载Java的原始APIClass文件, 类加载器主要负责加载、连接和初始化这些class文件以后, 就交给虚拟机中的执行引擎运行, 执行引擎将class文件中的Java指令解释成具体的本地操作系统方法来执行, 而安全管理器则将在执行过程中根据设置的安全策略控制指令对外部资源进行访问。

J ava的执行方式不是编译执行而是解释执行, “先编译, 后解释, 再执行”三步走的方式使得Java实现了“一次编写, 到处运行”, 如果Java的应用使用的是100%标准的Java API并且没有直接调用本地方法, 那就可以不加修改地运用在多种平台上, 这样的平台无关性使得在异构的网络环境或者嵌入式方面的应用更方便和现实。Java的网络移动性带来了一种全新的软件模式, 在分布式处理模式的基础之上, 可以将软件和数据通过网络传送到客户端去, 这样确保了客户端有必备的软件来浏览和操纵通过网络传输的数据, Java体系结构支持把单一的执行文件切割成小的二进制字节码文件Class文件, 而这些文件可以按照应用的需要动态连接、动态扩展。

3.2 Java信息安全的必要性

随着互联网应用越来越广泛, 并且互联网其本身独特的资源共享性, 因此能够按照用户需求及时准确获得信息和处理信息的应用对用户而言就相当重要, 这也是Java得以迅速发展和被广泛接受的原因。但同时网络也提供了一条攻击接入计算机的潜在途径, 特别是当用户下载网络软件在本地运行, 这就要求Java能够对病毒/木马的问题加以防范, 对信息以及本地环境进行保护。比如:我们浏览一个网页的时候, 如果没有Java体系结构提供的安全机制, 就很有可能引入了一个怀有敌意的程序造成信息丢失、资料泄密等未知的严重后果。

3.3 Java语言本身安全性

J ava语言的设计者们是在C++的基础上设计出来J ava的, 因此与C++相比它的语法更加简单清晰, 运算符重载、虚拟基础类等在J ava中都没有采用, 并且取消了多重继承而采用实现多个接口的方式。这样能降低开发人员犯错误的机率, 帮助他们写出更安全的代码。

J ava中去除了C++语言中的令人费解、容易出错的“指针”, 用列表、堆、哈希表等结构来代替, 避免了任何不安全的结构。Java也没有索引核查的数组访问, 因为这往往会导致不定的、不可预测的程序操作, 它所有的数组访问都必须先检查是否越界。Java要求所有的变量在初始化以前不能使用, 对于基本数据类型变量都会自动地赋给某个初始值, 避免了未初始化变量获取内存信息。所有这些都使得程序不能访问任意的内存地址, 对于内存中的实体信息只能通过有权限的对象进行访问, 而不会出现象C++那样把类型指针强制转换成内存的指针, 然后通过内存查找的方法找到私有的变量。

J ava分配内存对于开发人员来说是透明的, 开发人员使用ne w方法新建对象, 这时虚拟机就会从堆内存中找到合适的内存空间, 开发人员不需要也不能够进行干预。而对于内存的回收, Java避免了开发人员明确干预对象的回收, 比如C的free或C++的delete命令, 避免了开发人员无意间对内存的破坏。Java采用虚拟机的“垃圾回收”机制来实现内存自动管理, 释放不再被使用的内存资源。Java的内存回收器目的就是找到不再引用的对象, 释放内存空间, 并且需要整理内存的碎片空间, 尽量避免出现"内存不足"的情况。

4 结论

《软件体系结构》期末复习题 篇5

软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。

2. 核心研究内容:

(1)体系结构风格:描述特定系统组织方式的惯用范例,强调组织模式和惯用范例。

(2)设计模式:软件问题高效和成熟的设计模板,模板包含了固有问题的解决方案。

(3)应用框架:整个或部分系统的可重用设计,表现为一组抽象构件的集合以及构件实 例间交互的方法。

3.软件危机表现形式:软件成本日益增长、开发进度难以控制、软件质量差、软件维护困难

4.·构件:具有一定功能,能独立工作或能同其他构件装配起来协调工作的程序体。

·软件重用:两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。·构件与软件重用的关联关系:语义完整,语法正确和有可重用价值的单位软 件,是软件重用过程中可以明辨识别的系统。

5. 软件体系结构模型的分类(5种):

(1)结构模型:这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统配置、约束、隐含的假设条件、风格、性质研究结构模型的核心是体系结构描述语言。

(2)框架模型:框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。

(3)动态模型:动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为。例如,描述系统的重新配置或演化。动态可以指系统总体结构的配置、建立或拆除通信通道或计算的过程。

(4)过程模型:过程模型研究构造系统的步骤和过程。结构是遵循某些过程脚本的结果。

(5)功能模型:功能模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。功能模型可以看作是一种特殊的框架模型。

6. “4+1视图模型”

最终用户:功能需求编程人员:软奖管理

系统集成人员:性能 系统工程人员:系统

可扩充性、吞吐量等拓扑、安装、通信等

·逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。

·开发视图:也称模块视图,主要侧重于软件模块的组织和管理。开发视图要考虑软件内部的需求,如软件开发的容易性、软件的重用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统输入输出关系的模型图和子系统图来描述。 ·进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求。进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。它也定

义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。在最高层抽象中,进程结构可以看作是构成一个执行单元的一组任务。它可看成一系列独立的,通过逻辑网络相互通信的程序。它们是分布的,通过总线或局域网、广域网等硬件资源连接起来。

· 物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑结构、系统安装、通讯等问题。

· 场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发体系结构时,它可以帮助设计者找到体系结构的构件和它们之间的作用关系。同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。

本地呼叫场景的一个原型:

7.软件体系结构核心模型的组成元素(5种)的含义,彼此关系(构件、连接件、配置) (1)构件:计算或存储数据单元,包含多种属性,如接口、类型、

语义、约束、演化和非功能属性等。

(2)连接件:建立构件间的交互以及支配这些交互规则的体系结构

构造模块。

(3)体系结构配置:描述体系结构的构件和连接件的连接图。 用于确定构件是否正确连接、接口是否匹配、连接件构成的通信是 否正确,并说明实现要求行为的组合语义。 (4)端口(5)角色 8. 软件过程:需求分析→建立体系结构→设计→实现→测试

10. 软件体系结构风格11. 体系结构风格的四要素:(1)提供一个词汇表;(2 语义解释原则;(412.通用体系结构的分类:

经典的体系结构风格: (1)数据流风格:批处理序列;管道和过滤器。

(2)调用/返回风格:主程序/子程序;面向对象风格;层次结构。

(3)独立构件风格:进程通讯;事件系统

(4)虚拟机风格:解释器;基于规则的系统。

(5)仓库风格:数据库系统;超文本系统;黑板系统

·管道和过滤器模式:构件:过滤器,接收数据输入,进行转化后输出

·过滤器是独立的实体,相互之间没有状态的依赖

·对一个过滤器而言,它上游和下游的过滤器是透明的

交互由管道提供,管道负责连接一个过滤器的输出和另一个过滤器的输入

·管道过滤器通用的结构有:

(1)管线:也称为流水线,即限制系统的拓扑结构只能是过滤器的线性结构;

如:批处理系统、Unix Shell、编译器

(2)有界管道:限制了在管道中能容纳或传输的数据量;

(3)类型定义管道:也称类型管道,即要求明确定义在两个过滤器间传输的数据类型。 优点:

(1)系统的总体输入输出是每个过滤器的简单组合,易于理解;

(2)支持重用;

(3)易于维护和修改;

(4)系统的一些特性容易分析,比如吞吐量、死锁;

(5)支持并发。

缺点:

(1)经常退化为批处理系统;

(2)交互能力差,管道之间同步困难。

·数据抽象和面向对象组织模式:

构件:对象,或者说是抽象数据类型的实例。

(1)对象是一种被称作管理者的构件,负责保持资源的完整性。

(2)对象通过函数和过程的调用来交互的。

面向对象模型(1)封装(2)继承(3)多态性

这种模式的两个重要方面:

(1)对象维护自身表示的完整性;(2)这种表示对其他对象是隐藏的。

优点:(1)隐藏内部实现,容易修改;(2)问题分解;(3)重用;

缺点:(1)对一个对象身份的依赖性(显示调用,即调用一个方法必须以:对象名. 方法名的方式进行调用)(2)继承往往使得设计变得复杂,引入的多层对象结构使得维护困难。 ·基于事件的隐式调用模式:

构件:模块,模块既可以是过程,又可以是事件的集合。

(1)过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。

特点:事件的触发者并不知道哪些构件会被这些事件影响。

优点:(1)问题分解;将计算和交互相互分离,使得对象更加独立

(2)系统演化和重用;通过事件注册,新的构件可以轻易的被引入系统

缺点:(1)构件不能控制系统进行的计算;当一个组件发布事件的时候,它无法假设其他组件会对该事件作出响应(2)对事件触发的方法调用的次序无法控制(3)数据交换大数据量的数据交互往往没法由事件携带,从而带来性能问题(4)可能会对正确性的保证带来困难 ·分层模式

优点:(1)支持逐层抽象的方式进行设计,从而可以将一个复杂系统的设计划分为多个相对简单的层次;(2)容易修改,每层的改变至多影响上下两层;(3)支持重用,只要保持接口不变,每层的具体实现的替换式透明的。(4)支持可移植性。

缺点:(1)性能上的额外支出(2)并非每个系统都可以进行分层设计(3)跨层使用可能会损坏整个模型

· 仓库系统及知识库模式

构件:

(1)中央数据结构构件:代表系统当前状态;(2)一些相对独立的构件的集合:这些构件对中央数据存储进行操作。当要交换或共享大量的数据时,仓库模式是最常用的解决方案。 数据交换方式:(1)共享的数据放在中心数据库中,所有构件可以通过访问数据库进行

交互;(2)每个构件维护自己的数据库,通过显示的传递数据与其他构件进行交互。

当要交换或共享大量的数据时,仓库模式是最常用的解决方案。

若中央数据结构的当前状态触发系统相应的进程执行,则仓库是黑板系统。

黑板系统由三部分组成:知识源、黑板数据结构、控制

黑板模式特点:没有直接的算法可解、具有不确定性、黑板是一种特别的仓库,主要用于需要对凌乱的信息进行处理的领域,其控制策略必须是机会主义的。

13. C2模式:通过连接件绑定在一起的按照一组规则运作的并行构件网络。

C2模式中的系统组织规则如下:

(1)系统中的构件和连接件都有一个顶部和一个底部;

(2)构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;

(3)一个连接件可以和任意数目的其它构件和连接件连接;

(4)当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。

C2模式的特点:

(1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;

(2)所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的;

(3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。

14. C/S风格:

基本概念:C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。

主要组成部分:数据库服务器、客户应用程序和网络。

C/S风格—优点: (1)具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。(2)系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。(3) 将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。

C/S风格—缺点: 开发成本较高、客户端程序设计复杂、信息内容和形式单一、用户界面风格不一,使用繁杂,不利于推广使用、软件移植困难、软件维护和升级困难、新技术不能轻易应用

三层C/S风格—优点:(1)提高系统和软件的可维护性和可扩展性(2)具有良好的可升级性和开放性(3)并行开发(4)有效地隔离开表示层与数据层(5)为严格的安全管理奠定了坚实的基础

三层C/S风格—注意点:

1.各层间的通信效率若不高,即使

分配给各层的硬件能力很强,其作为

整体来说也达不到所要求的性能。

2. 各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。

B/S风格—基本概念:浏览器/服务器(B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。

B/S风格—优点:基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。B/S风格—缺点:1.缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。2. 系

统扩展能力差,安全性难以控制。3. 在数据查询等响应速度上,要远远地低于C/S体系结构。4.不利于在线事务处理(OLTP)应用。

15. DSSA的定义:DSSA就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合

16. DSSA的基本活动:领域分析、领域设计、领域实现。

17. DSSA与软件风格的比较:(1)DSSA以问题域为出发点,体系结构风格以解决域为出发点。(2)DSSA只对某一个领域进行设计专家知识的提取、存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个应用领域。

18. 软件体系结构和软件体系结构描述的区别:软件体系结构是附属于系统之中。只要存在系统,体系结构就存在;软件体系结构描述是将体系结构可视化的手段和产物

19. 体系结构描述方式:图形表达方式、UML、模块接口语言MIL、ADL

·图形表达工具 优点:直观形象、简单易用 缺点:由于其术语和表达语义上存在着一些不规范和不精确,从而使得以矩形为基础的传统图形表达方法在不同系统和不同文档之间存在着许多不一致甚至矛盾。

·模块接口语言MIL 缺点:这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,限制了它们处理和描述比程序设计语言元素更为抽象的高层次软件构架元素的能力。

20. 体系结构描述语言ADL定义:ADL是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。

21. 软件体系结构的分析评估:就是通过成本相对较低的活动来分析结构中可能存在的风险,发现软件体系结构中影响系统质量的关键因素,并提出相应的改进措施,在此基础上检验软件的性能需求是否得到满足。

22. 系统的质量属性的分类:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、 集成性、互操作性

23.基于场景的评估方式:ATAM、SAAM

SAAM法是把一个物体最丰要的属性列举出来,再用检查表法把各个项目加以变化,并将其加以重新组合,然后再找出其中可以实行而且也有效果的项目。

优点:SAAM方法在改良事物性质的方面具有极大的功效。SAAM方法是第1个被广泛接受的体系结构分析评价方法。它适用于可修改性、可拓展性以及功能覆盖等质量属性。

缺陷:没有提供体系结构质量属性的清晰的度量。评估过程依赖专家经验等,只适合对体系结构的粗糙评价

步骤:1.形成场景2.描述体系结构3.对场景进行分类和确定优先级4.对间接场景进行单个评估5.评估场景和相互作用6.形成总体评估7.SAAM评估日程安排

ATAM 是评价软件构架的一种综合全面的方法,它考虑了可修改性、可靠性和安全性等多种质量属性。

优点: 有助于质量目标的具体化和排序;ATAM方法是被验证有效和广泛使用的一种方法,可以针对实用性、可靠性和可修改性这些质量属性,在系统开发之前对其进行分析和评价。 缺点:它对质量属性并没有进行深入分析,缺少定量的数据来支持分析的结果。

步骤:

1. 描述ATAM方法2.描述商业动机3.描述体系结构4.确定体系结构的方法5.生成质量属性

效用树6.分析体系结构方法7.讨论和分级场景8.分析体系结

构方法9.描述评估结果

软件体系结构模式 篇6

关键词建筑结构设计;结构软件有限元分析ETABS剪力墙单元

中图分类号TP3文献标识码A文章编号1673-9671-(2010)041-0139-01

本文基于对软件的应用体会,提出一些观点与广大工程师进行讨论。内容涉及基本的有限元分析技术和相关软件的技术要点讨论。

1剪力墙的单元形式

在高层结构分析和设计中,剪力墙所使用的单元形式以及计算结果的精度是个关键问题,也是我们最为关注的问题,可以说这一技术要点的不断进步也伴随着结构软件的不断更新及发展。

在国内最早的剪力墙单元模型是基于薄壁柱理论,它们也应用于早期TBSA和TAT等国内较早的结构分析软件中,目前这些程序仍然在结构分析设计工程实践中使用,因此,现在工程师一般不使用此类程序计算带有剪力墙的结构。另一种处理方法为墙板元体系,墙板元单元模型主要是由(核心墙板元,边柱和平面刚性梁)几种不同特性的单元,共同组成的剪力墙单元模型,它能够同时考虑平面内和平面外刚度,其未知量较少,计算的精度比较高。目前清华大学建筑设计研究院编写的TUS通过增加内部节点的方式形成了一种改进型墙板元,并且在目前的程序版本中使用。

另外一种处理方法是以中国建筑科学研究院PKPM工程部SATWE程序为代表的墙元模型,它是基于子结构基本思想和静力凝聚原理所形成的剪力墙单元模型,能够较好地模拟剪力墙的受力状态。与墙板元相比,对于洞口的大小和位置处理也比较灵活,因为凝聚了自由度,计算速度提高很多。但是墙元模型内部进行了程序默认的单元简化处理,因此必须有特定的内力输出和输入端口,在某些情况下存在单元精度不足的缺陷,且剪力墙开边洞等一些情况处理得不够准确。

从剪力墙本身的几何特征和受力特性分析,与壳元最接近,壳元既具有平面内刚度,又具有平面外刚度,并可以进行任意的剖分,这些都是作为剪力墙模型有利的特性,也是合理的模型形式。但是用壳元模拟剪力墙用于实际工程的结构设计存在一定的困难—基于精确细分模型得到准确分析结果的基础上,设计的进行和设计结果的输出,也就是后处理问题。因为如果使用壳元来模拟剪力墙,为了得到较好的分析精度,必须对其进行剖分,而不同的工程师及不同的工程类型的精度需求可能需要不同的剖分细度。分析完成之后,如果程序输出的是剪力墙每个单元的内力结果和配筋结果是很复杂的,也不可能在实际工程中使用。另外的问题是因为采用单元剖分精确模拟结构的受力和变形特性,与墙元相比需要较长的计算时间。

目前,ETABS在处理结果被众多工程师接受的有限元软件之一。在ETABS中剪力墙使用真实的壳元模型,工程师可以根据需要按个数或最大尺寸方式进行壳元的有限元划分,ETABS还提出了剪力墙标签和连梁标签的概念,也就是在单元划分的基础上,剪力墙的内力输出和设计的执行及输出都是基于标签来做的,工程师可以通过标签的指定和修改任意控制剪力墙设计的单个对象范围,这就解决了壳元剪力墙模型后处理方面的不足。ETABS可以对剪力墙基于各种规范及理论的设计,ETABS中文版在保留了大部分剪力墙设计方法的基础上,将中国规范的剪力墙设计方法完整地贯入到了原程序中,并且在剪力墙开洞方法等方面都作了很多的改进。

基于有限元分析理论,单纯的膜元本身不能够单独作为剪力墙单元模型在有限元结构分析软件中进行使用,适用范围是不考虑空间整体性的手算方式。膜元只具有平面内刚度,不具有平面外刚度,这对于剪力墙的受力特性显然是不科学的。对于膜元来做剪力墙,因为膜元没有平面外刚度,因此其在平面外一定会发生非常的变形。因此,膜元是不能独立作为剪力墙模型的,除非象墙板元模型一样与其他单元来配合使用,由其他单元来来补充考虑剪力墙对于平面外作用的抵抗能力。

目前建筑设计中平面布局要求,大面积的楼板开洞,或复杂平面布局,多塔联体结构中,刚性楼板的假定已经不再满足结构有限元分析的实际需要,因此越来越多的结构需要采用真实的弹性楼板验算。ETABS程序提供了多种需求情况下真实的弹性楼板模型,可以仅考虑平面内刚度,最大限度地减少单元的数量;也可以仅考虑平面外刚度,需要时可以考虑剪切变形的影响;还可以同时考虑平面内和平面外的刚度,进行真实的壳元弹性楼板分析,不同单元形式的楼板真实参与结构的整体分析。在ETABS中如果需要也可以进行刚性楼板的假定,并且可以在同一楼层中指定多块刚性隔板,不同的刚性隔板间保持弹性连接,这样可以满足更复杂的多塔及联体结构的需要。

2网格不匹配时自动线约束的作用

正如我们前面所谈到的,通用有限元程序在结构分析中使用时,为了保证结果的精确性必须进行一定程度的单元细分,特别是对于面单元和实体单元。在单元细分过程中,同为面单元的剪力墙、连梁及楼板剖分过程中,由于工程实际的几何复杂性,很难保证剖分之后单元节点之间的精确对位连接,此时在结构分析过程中便会产生节点不匹配处的变形不协调。

由于节点的不匹配,相关节点处也不会有内力传递,为了避免这一点,在一般通用有限元程序中,工程师必须对剪力墙和连梁进行进一步剖分以便获得节点匹配的结果,如果模型中使用壳元楼板模型,那么考虑楼板与剪力墙间的剖分匹配问题将是更复杂耗时的问题。

基于这一问题,在ETABSV8版本中,引入了面单元自动线约束的概念,自动线约束的含义是在结构单元剖分不匹配时,在不匹配的节点自动生成一个过渡的线约束,保证单元节点的变形协调及内力传递。ETABS解决了单元剖分的节点匹配问题,也解决了通用有限元程序用于结构分析设计实践工作中的第二个障碍,因为人工解决这一问题是繁杂耗时的工作,是不被工程实践所接受的。也正因为很好地解决了剪力墙后处理问题和单元剖分的节点匹配问题,ETABS才成为建筑结构设计领域最为工程师接受的通用有限元分析与设计软件,在全球得到了最广泛的应用和推广。

3ETABS中连梁采用梁单元

对于结构模型中连梁的处理,ETABSV8版本保留了按壳元模拟连梁和按梁元模拟连梁两种方式,工程师可以根据实际工程的需求来进行选择,但一般情况下程序还是建议使用壳元模拟连梁单元。因为线单元模拟连梁时,连梁与剪力墙的平面内刚度差距较大,内力分配会出现问题,相交节点位置也会出现应力集中。壳元模拟的连梁真实反映了连梁的高度几何特性,符合连梁的受力特性,其与剪力墙墙肢间至少有4个节点相连,内力分配会更为合理。

4ETABS等同于TAT

对有限元发展及结构有限元辅助分析程序的发展,SAP程序是世界上第一套结构三维有限元分析程序。而ETABS程序是为了方便建筑结构分析和设计的使用而在SAP系列程序的基础上升级而来的,其基本理论和核心计算部分与SAP是完全一致的。与SAP程序相比,ETABS程序在保持结构空间三维分析的基础上,为了便于建筑结构分析设计的使用,作了很多操作方面和数据结果输出方面的改进。比如SAP中没有楼层概念,ETABS中则具有清晰的楼层概念;ETABS中具有梁和柱不同的线对象,在SAP中统一作为线对象来处理;SAP只对剪力墙作分析,不对其进行设计,在ETABS中具有详细的剪力墙设计等后处理功能。

参考文献

[1]常林润,罗振彪.常用结构计算软件与结构概念设计.工业建筑,2005,35(5):56-59.

[2]吴立信,刘凤阁,张士纲.TUS程序中的墙板元及其计算精度.建筑结构,2004,6.

[3]Wilson ED.Static&Dynamic Analysis of Structures,2004.

软件体系结构模式 篇7

关键词:软件体系结构,教学模式,教学方法

1. 前言

软件体系结构作为从软件设计抽象出来的一门新兴学科, 自20世纪90年代后期以来, 已经成为软件工程一个重要研究领域, 目前国内很多高校把软件体系结构课程作为计算机专业的重要专业课, 为了提高软件体系结构课程的教学质量, 不少高校进行了相关的课程建设和教学改革, 但由于该课程的特殊性, 实践效果不够明显, 无法明显提高学生解决实际问题的能力, 因而如何提高软件体系结构课程的教学质量, 是该课程任课教师面临的一道紧迫课题。

2. 软件体系结构课程教学中存在问题

近年来, 在软件体系结构课程教学过程中存在的突出问题是学生普遍觉得该课程的理论性较强, 概念繁多, 内容太抽象, 没有什么与实际相联系的东西, 难以体会软件体系结构在提高软件生产率和解决软件维护问题方面的作用, 无法真正理解软件体系结构的重要性, 从而对该课程缺乏自主学习的积极性。具体原因主要包括以下几个方面。

(1) 理论教学枯燥乏味

在传统的软件体系结构课程的理论教学中, 课堂上主要以教师的理论教学为主, 仅仅讲授软件体系结构的基本概念和基本原理。在这种“填鸭式”教学过程中, 学生往往是被动地接受知识, 死记硬背, 枯燥乏味, 难以激发学生的学习兴趣和学习主动性。近年来, 随着业界人士的研究探讨, 这种情况有所改观, 但并没有真正解决师生互动的问题。

(2) 课程教材更新缓慢

教材是教师开展教学和学生课下自学的主要依据。在软件体系结构课程教学过程中, 往往采用单一的软件体系结构教材, 存在可用性差、更新缓慢、信息量不足等问题, 不能成为学生自主学习、探索和发现的认知工具。此外, 当前软件体系结构领域的研究非常活跃, 各种研究成果不断涌现, 任何一本教材都无法及时反映最新的研究成果。

(3) 实践教学条件欠缺

大多数高校不能为学生提供较好的实践条件, 尤其不能做到实践时间、实践内容和实验设备对学生的真正开放, 使学生理论与实践相结合性差、课内与课外相结合性差, 无法培养学生的实践动手能力。

3. 软件体系结构课程教学模式的改进

(1) 多媒体课堂理论教学

针对传统的“填鸭式”教学过程的弊端, 讲课教师要重视对现代教育技术手段的研究与运用, 全部采用多媒体课件进行授课, 充分发挥多媒体教学形式多样、信息量大、形象直观的优势, 以更加整齐、美观、生动和可重现等方式展现课程内容, 在讲授的过程中加入适量的实际案例, 对重点内容, 采用“精讲多练”, 引入课堂练习和课堂讨论, 提高学生基础知识运用的能力, 使抽象的概念形象化, 使学生加深了对理论和方法的理解, 增强了学生的学习兴趣, 提高理论教学效果。

(2) 案例驱动实践教学

为培养学生自主学习的能力, 在软件体系结构课程设计教学实践过程中采用以下三个主要步骤来进行。

首先是课程设计前的任务布置, 在课程设计之前两周布置课程设计的题目, 将学生提前分好小组, 要求按组完成布置的题目, 学生根据题目进行讨论、查找资料, 进行方案论证, 并写出设计思想与工作步骤、选材原则等等。

其次是课程设计中实战, 要求每组每名学生都必须参与从设计、制作、调试和改进的全过程, 由学生自行确定各自在小组中的分工以及小组成员合作的形式, 然后按照已确立的工作步骤和程序进行工作, 在完成题目设计的同时, 强调合作学习, 强调集体“合作”而非个体“单干”, 这样有助于培养学生的团队协作精神。在此过程中教师扮演的角色就是负责辅导、答疑, 回答和解决学生在实践中遇到的问题。

最后是课程设计总结, 在课程设计结束前, 对设计内容和出现的问题进行总结, 答辩时主要采用学生讲解、演示调试过程、老师提问和小组讨论的方式, 以便深入了解学生对设计内容的掌握情况, 评判设计过程中出现的问题, 学生解决问题的方法等等。

(3) 理论与实践教学的密切结合

在理论教学中, 每一章节都有针对性地设计了教学案例, 并注重案例的趣味性、实用性和易学习性, 使学生可以轻松地将软件体系结构理论运用到生产实践中。在课堂上精讲多练, 启发学生独立思考、调动学生的主观能动性, 鼓励学生多提问题、共同探讨和解决问题, 提高学生的综合应用能力、综合分析问题得能力和解决问题的能力。

4. 跟进教学模式改进的教学手段

教师在改革教学内容、课程体系与教学方法的同时, 也要重视教学手段的改革, 努力将教学内容与教学方法的改革建立在现代教育技术的平台上。

(1) 采用多媒体教学手段, 提高教学效果和教学水平

重视对现代教育技术手段的研究与在教学中运用, 教师要采用多媒体课件进行授课, 充分发挥多媒体教学形式多样、信息量大、形象直观的优势, 以更加整齐、美观、生动和可重现等方式展现课程内容, 使抽象的概念形象化, 使学生加深了对理论和方法的理解, 增强了学生的学习兴趣, 提高了教学效率, 提升了教学效果。

(2) 创造先进的实践条件, 培养学生的学习兴趣和动手能力

充分利用校园网络资源, 为学生创建自主学习的环境、交互式的学习平台;实验室为学生提供基础实验、选作实验与开放实验, 方便了学生的自主学习, 形成了立体化的学习环境;借助多媒体网络课堂, 扩展了学生知识视野, 对激发学生的学习兴趣、促进了教学效果的提高起到了很好的作用。

(3) 增进师生交流沟通, 加强课后教学辅导

在课前和课后, 增进和学生的交流沟通, 了解学生的需求, 调整教学内容、教学方法;加强对学生的教学辅导。除了课间答疑、课后答疑外, 每周还单独安排了答疑课;另外还可以通过教师个人主页进行答疑、讨论、发布资料, 以及采用E-mail、QQ等多种方式, 使教师辅导学生不受时间和空间限制。

参考文献

[1] (美国) 肖.软件体系结构[M].清华大学出版社.2007

软件体系结构模式 篇8

分析型CRM如今已被广泛运用到企业的日常运转中去,为企业带来了高效的管理分析功能。如何开发实现分析型CRM也成为了当今一个热门话题。三层架构模型位分析型CRM开发带来很多便捷之处,提供了一个清晰的、易于开发和维护的软件架构体系。

民航业作为我国较早应用信息技术的行业,CRM系统已成为行业的命脉系统。随着客户需求的增加,软件系统的规模和复杂性也随之提高。软件体系结构的选择成为比数据结构和算法的选择更为重要的因素。分层模式体系结构为企业级CRM系统的开发提供了良好的框架,是建立企业级系统的最佳选择,是一种主流的软件体系结构。

2、分层模式体系结构

软件体系结构是软件系统设计的高级抽象,体现了系统设计的基本思想和系统开发中的早期决策,对系统具有深远的影响。软件体系结构在明确了系统的各个组成部分的同时,也限定了各部分间的交互方式。软件体系结构研究的是系统构件、构件之间的关系,以及软件系统构造、约束、语义、分析、属性和系统需求。

构件是软件的构成元素,具有一定的功能和结构,并符合一定的标准,可以完成一个或多个特定的服务。构件隐藏了具体的实现,通过接口对外提供服务。数据、被封装的对象类、软件构架、文档以及测试用例等都是构件。[1]

基于构件的软件开发就是使用一个定义良好的实现了的且经过严格测试的构件来搭建新的软件系统。开发构件的目的是为了复用,而层次化软件构造方法则是为了充分利用构件技术而提出的。分层模式体系结构为企业级CRM系统的开发提供了良好的框架,是建立企业级系统的最佳选择。

分层的系统组织成一个层次结构,每一层向其上层提供服务,并利用下层的服务。在有的层次结构中,只有最外部的层次和一些经过精心选择的输出功能可以为系统外部访问,其它的内部层次完全被隐藏起来。在这种系统中,组件是在层次结构中实现的一些虚拟机,连接是层次与层次之间交互的协议。[2]

通过分析研究及实际工作经验,我们总结出分层模式体系有以下几点优点:

(1)分层模式支持系统设计过程中的逐级抽象。在进行系统设计时,从功能上把一个复杂的系统按递增的步骤进行分解,并将这种功能上的逐级变化体现于系统设计之中。

(2)分层模式的系统具有较好的可扩展性。分层模式系统中某一层次的功能和实现的变化仅与它的上层和下层有关,对其相邻的层次几乎没有什么影响。

(3)分层模式支持软件复用。目前很多标准化组织采用分层模式的思想方法,对一些标准的功能层次接口进行定义,但不限制具体的实现方法。这样,在遵守标准接口要求的前提下,不同的软件可以自行开发,而且开发完成的产品还可以和其他软件产品实现无缝结合。

3、航空销售分析系统的分层模式体系结构的设计

在系统设计过程中,采用分层模式的软件体系结构。根据系统的业务功能,把软件体系结构定义为三层:表示层、业务处理层和数据层。表示层主要负责系统与用户的接口,接收用户对软件使用的操作,只需注重人机界面的设计,不必关心业务逻辑和数据库的访问;业务层根据用户提出的软件需求,对用户提交的指令进行分析处理调用的业务逻辑规则,然后向数据层提出数据请求的操作,以完成业务操作。业务逻辑改变时,表示层可以不做变化;数据层被中间业务逻辑层调用,负责向整个系统提供对数据库进行各种操作的方法,完成业务逻辑。每一层内都使用面向对象的方法设计。在层内,根据各构件之间的关系,提取抽象类,使层内结构相对比较规范。这样层内各小组成员就能够在很短的时间内接管其他成员未完成的或者对已完成的代码进行维护。同时由于各层内设计规范,也相应简化了各层间接口设计的复杂性,提高了构建的可重用性。系统的分层体系结构如图1所示。

在航空销售分析系统设计中,表示层主要提供用户输入和系统的输出,包括显示器输出以及打印机输出等。业务层主要提供业务流程管理模块、对象的转换以及与其他系统的接口管理模块。由于销售分析系统的数据来自各个不同的系统,例如机票销售系统,旅客信息维护系统,财务系统等等。这就要求我们在设计系统时要对系统与系统之间的接口和数据的传送有很好的管理和维护的方法。因此在三层结构中的中间业务层,我们定义了一个接口管理器用来管理所有的系统接口。数据层主要向表示层和业务层提供基本数据,然后经业务层处理,最后在表示层输出或者更新数据库。

4、系统建模

统计功能是销售分析系统的一个重要、强大的功能,具体要求如下:

(1)每一个模块都必须支持统计查询。

(2)每一种统计查询结果必须支持导出和打印。

(3)每一种统计查询结果必须支持多形式的表现方式,如图表,图像,网页等。

由于系统在每一层中都用到了面向对象的理念,因此根据上述要求,系统将DataGrid控件重新进行了包装,新的控件命名为SumDataGrid。该控件支持将列表中的结果通过切换开关以不同的形式进行展现。另外该控件还能支持列表结果的打印。

以大客户统计为例,其建模结构如图2所示。

在业务层的面向对象设计中,抽象一个基类AbstractSum,该类实现所有统计都需要的公共功能,比如:打印,导出等。GraphicSum是AbstractSum的子类,具体实现以图像为表现形式的统计;HTMLSum同样继承于AbstractSum,具体实现以网页为表现形式的统计。这样每个模块可以按照用户的需求建立多个统计子类。这些子类可以根据每类统计的需要,动态生成相应的SQL语句。

当数据层收到业务层的SQL语句后,交给数据库服务器来执行,然后将结果返回部署在数据层相应模块的SumDataSet类,该类负责接收统计的结果。每个模块的SumDataSet类都继承于AbstractSumDataSet抽象类。该抽象类抽象了公共方法,用来将每个模块的SumDataSet转换成相应模块的GraphicSum或者是HTMLSum类。图3给出了以大客户为实例的时序图。

5、结束语

在软件系统设计过程中,体系结构的正确选择至关重要。在分层模式的体系结构指导下,航空公司销售分析系统开发周期短、费用低,系统的可用性、可靠性和可维护性高,得到用户的广泛好评,为系统的进一步扩展、升级奠定了良好的基础。

摘要:本文针对航空公司销售管理系统的需求, 在分析、研究CRM技术的基础上, 设计与实现了基于分层模式软件体系结构的民航业CRM系统, 不但降低了开发难度, 而且提高了系统的可靠性, 可维护性以及可扩展性。

关键词:CRM,软件体系结构,分层模式

参考文献

[1]杨芙清, 梅宏, 李克勤.《软件复用与软件构建技术》.电子学报, 1999, 27 (2) :68-75

软件体系结构模式 篇9

高等职业教育的课程结构体系改革是一项庞大复杂的系统工程,是当前轰轰烈烈开展的高职“工学结合”教育教学改革的终极目标。以计算机软件技术.NET专业方向/J2EE专业方向为例,以上专业以Web应用程序系统设计开发为课程体系主线,其专业课程设置涵盖了面向对象编程(C#、Java)、数据库(SQL Server/Oracle)开发、网络原理与局域网组网技术、Xm技术、Asp.Net技术、Jsp技术、Ajax技术与图像处理、动画制作等专业基础课程和专业技术课程。研究专业课程体系设置如何适应“工学结合”的人才培养模式、体现专业理论“必需、够用”的原则、构建“边做边学”的教学实训环境,对于贯彻教高[2006]16号文件精神、提高教学质量、启动课程建设与改革具有很重要的现实意义。

二、课程体系改革的总体目标

为了实现工学结合人才培养目标,我们设想将高职计算机信息软件专业学生的三年学习过程的目标定位,分为三个阶段,或称三个层次,每一个层次达到或强化一种职业岗位能力。它们是:

第一阶段:面向的职业技术岗位群是:计算机系统的管理与维护,办公自动化,局域网的组网、管理与维护,信息技术支持服务等企事业单位信息化、电子商务等需要的初级IT技术人员。

第二阶段:面向的职业技术岗位群是:数据库管理与维护、网站管理与维护、信息系统管理与维护等企事业单位信息化、电子商务等需要的中等IT技术人员。

第三阶段:面向的职业技术岗位群是:网站规划建设以及管理与维护、信息系统安全、大型数据库的管理与维护等企事业单位信息化、电子商务等需要的高等IT技术人员。

三、课程体系的结构性改革方案

针对以上三个阶段的职业技术岗位群的层次定位,我们将高职软件技术专业的传统课程设置解构分离,重新组合成以下三层架构的课程体系结构。

第一层次是专业基础理论和专业基本技能课程。它们包括:Windows基础、Linux基础、办公自动化软件和设备、微机安装与维护、面向对象程序设计(C#与Winform/Java)、网络原理与局域网组网技术、图像处理与动画制作、数据库原理与应用及其相应的实训课程。

第二层次是专业基础与技术课程。它们包括:Html JavaScript静态网页设计、Xml技术、Jsp开发技术、Asp.Net与A-jax Web开发技术、管理信息系统 (MIS) 、企业资源计划 (ERP) 及其相应的实训课程。Web应用程序系统设计开发是当前高职院校计算机软件、信息等专业贯彻网络编程思想及三层架构概念、培养职业能力的专业主干技术课程。

第三层次是专业实践课程。它们包括:图像处理、动画制作与网页美工技术项目开发实战、Html商业站点项目开发实战、J2EE企业级商业站点项目开发实战、.Net企业级商业站点项目开发实战与.Net+Ajax商业站点项目开发实战等。

项目实战课程的实质涵义是,课程的主要教学模式就是实践。教学的主要过程是先从“立项”开始,从项目入手,项目实战课程对专业教师的教学提出了较高的要求:教师必须要有跟企业合作的项目,或者是自己独立开发的项目。

四、与“工学结合”新课程体系相配套的专业课程建设

从上述三个阶段的职业技术岗位群的层次定位中可以看出,我们在课程体系建设中坚持了课程设置适应区域和IT行业发展的需求和以就业为导向的目标;突出了学生的技术应用能力和学生的岗位职业能力的培养。

实施新课程体系的保障措施是建立突出职业能力培养的课程标准,规范基于工作过程的课程教学的基本要求,按照软件技术开发的规范与流程,采用基于软件产品开发过程的教学设计,提高课程教学质量。因此,高职必须同时启动与“工学结合”新课程体系相配套的课程建设,以保证课程体系改革的顺利进行。课程建设最关键内容有以下四点。

1. 教师队伍建设

高职院校应建设一支由中高级教师、工程师组成的结构合理、人员稳定的专业实践能力较强的教学团队,并聘请企业有生产实践经验的IT技术人员担任实训指导教师。

2. 教学内容及教学项目建设

课程体系中的每一位教师都必须有与企业合作或独立开发的企业级项目,以保证在教学实施过程中全面贯彻、实现“项目教学、任务驱动”的高职高专课程体系和教学模式改革的目标,体现边做边学、工学结合的鲜明特色。

3. 项目化教材建设

教材建设是课程开发建设的重要组成部分。工学结合的项目化课程需要教学团队编写出与工学结合课程体系改革相对应的、以实际项目为主线、以任务实例为载体的项目化教材。

4. 实践实训基地建设

依托本系本专业的企业实训基地,聘请企业技术人员担任项目实战课程和实训指导老师,建设面向生产一线的产、学、研相结合的稳定的实践实训场所。

本文以本专业项目组申请建设的省教育规划课题———《高职软件专业工学结合模式的课程体系研究》为依托,意在探索工学结合模式下教学内容和课程体系改革的一种新的框架和途径。

参考文献

[1]中华人民共和国教育部.关于全面提高高等职业教育教学质量的若干意见.教高16号文件, 2006.

软件体系结构模式 篇10

关键词:软件可信性,构件可信性,可信性变化,传播模式,设计结构矩阵

可信软件是指其运行行为及其结果符合人们的预期、满足用户的需求, 在受到操作错误、环境影响、外部攻击等干扰时仍能持续提供服务的软件。近年来, 软件及其运行环境发生了质的变化, 边界开放、规模越来越大、技术环境因素动态多变等特点使得软件系统在可信性方面面临许多新的挑战[1,2]。软件系统投入运行后, 由于环境变化和软件变化可能导致用户对软件有新的可信性要求或者原有可信性发生变化, 而软件可信性要求一个局部的变化往往在整个系统范围内产生一系列难以预料的连锁效应, 从而给软件可信性的变化带来巨大的风险。因此, 分析软件可信性变化影响将有助于软件可信性变化的实现。

软件可信性变化属于软件变化研究的一个分支, 随着软件技术的快速发展以及软件产业要求的不断提高, 软件变化已经成为软件工程领域的研究热点。Bohner[3,4]在论文中给出了软件变化分析的过程框架, 并首次引用“波及效应”一词来形象地描述软件变化的影响;Ahmed Breech[5,6,7]等学者主要从一个软件实体 (函数、变量) 变化对另一个软件实体影响的角度来研究和预测波及范围;Chen[8]等学者则利用面向对象思想, 使用属性和连接去描述包括设计文档、软件组件、外部数据和需等变化项目及其之间的关系, 建立了一个基于对象、面向属性的软件变化影响分析模型;王映辉[9]在Bohner研究的基础上从功能视角, 利用可达矩阵来研究基于构件的软件体系结构演化与影响。从上述文献研究可以看出, 尽管对软件变化影响的研究日益增多, 但大多数学者研究的关注点主要集中在软件的功能变化, 其研究也很少涉及到软件变化传播模式。

针对当前对软件可信性变化影响研究的不足, 本文引入水波式、开花式和雪崩式等三种传播模式来研究软件可信性变化传播。将软件视作构件的组装, 将软件可信性分解到各构件, 从结构的视角, 重新定义了软件可信性;从构件内部、构件之间表征构件可信性的可信属性存在相互依赖关系的视角, 基于设计结构矩阵理论, 构建了软件可信性DSM模型;分析了三种传播模式的特点, 并通过对构件可信属性聚类和划分变化分组在软件可信性变化传播中的不同模式, 对软件可信性变化传播影响进行了刻画分析。

1 软件可信性的内涵

1.1 构件

软件产业的成熟以及软件生产要求的不断提高, 使基于构件的软件开发方法得到了广泛的应用。在基于构件的软件开发方法下, 程序开发模式也相应地发生了根本变化, 软件开发不再是算法+数据结构, 而是构件开发+基于体系结构的构件组装。在体系结构中, 构件是软件系统的构成要素和结构单元, 是软件功能设计、实现和寄居状态的承载体。从系统的构成上看, 任何在系统运行中承担一定功能、发挥一定作用的软件体都可看成构件。作为软件体系结构的构造块, 构件不是独立存在的, 各构件之间具有一定的关联关系, 具有互操作性。

1.2 软件可信性

软件可信性指一个软件系统的行为总是与预期相一致, 它是一种需求分解精化的对功能需求作用的全局性质量约束, 它的一个微小变化往往对整个软件系统产生较大范围内的影响。软件可信性通常用一组相互关联和相互影响的可信属性来描述和评价。可信属性用于描述和刻画软件可信性的若干软件关键性质, 它可被细化成多级子属性。可信属性是软件 (客体) 获得用户 (主体) 对其行为实现预期目标的能力的信任程度的客观依据。主体通过客体所具有一组表达其可信属性的客观能力事实, 从而信任客体的行为能够实现其设定的目标[10]。因此, 若软件可信, 则意味着软件拥有了一系列与软件可信属性相关的能力;反过来, 若软件具有了一系列与软件可信属性相关的能力, 则可以相信该软件能达到其预设的可信性目标。本借鉴文献[10]提出的一个可信属性模型来展现软件可信的内涵, 它用可用性 (Availability) 、可靠性 (Reliability) 、安全性 (Security) 、实时性 (Real Time) 、可维护性 (Maintainability) 和可生存性 (Survivability) 等6个可信属性表示构件或软件的可信性。尽管用户对于各种类型软件可信的期望有所差异, 但软件可信的内涵对于各种类型软件应该是基本一致的。

从上文对构件的描述, 软件可简单的视作组成系统的若干构件以及构件与构件之间交互作用关系的高度抽象, 这样软件可信就表现为组成软件的各个构件可信, 就意味着各个构件拥有了一系列与软件可信属性相关的能力。基于这样的理解, 本文从结构的视角对构件可信性和软件可信性概括定义如下:

定义1 (构件可信性) 构件可信性是指构件的可信能力, 它用一组相互关联和相互依赖的可信属性来表示。由于构件在实现目标和用户期望可信性的不同, 描述和评价其可信性的各构件的可信属性存在差异。

定义2 (软件可信性) 软件可信性是指整个软件系统的可信能力, 它用一组构件可信性来表示, 各构件可信性之间的相互依赖和相互影响的是通过可信属性之间的作用机制来体现。

根据定义2, 软件可信性实质上就高度抽象为组成系统的若干构件的可信属性和各可信属性之间的依赖关系。表征各构件可信性的可信属性, 如可用性、可靠性、安全性、实时性、可维护性和可生存性等可信属性之间的依赖关系是静态存在, 但是, 由于各构件功能和作用的差异, 同样的可信属性之间在不同的构件可能所表现的依赖强度往往有差异。为了提高软件可信性变化传播分析的有效性和减少软件可信性变化实现的复杂性, 本文假设各构件和构件内部的可信属性之间的依赖强度有一个最低阀值, 当可信属性之间的依赖强度高于该阀值时, 其可信属性之间的依赖关系才存在, 否则忽略。

2 软件可信性DSM模型

设计结构矩阵 (Design Structure Matrix, 简称为DSM) 是一个n×n的紧凑矩阵, 它包含了所有构成元素之间的信息依赖关系。系统的元素均以相同的顺序放在矩阵的最左边和最上边, 如果元素和元素之间存在联系, 则矩阵中的ij (ij列) 元素为●, 否则为空格。设计结构矩阵有助于系统的建模, 因为它能表示一对系统元素间的关系存在与否, 与图形表示相比, 它能为整个系统元素提供整体的紧凑描绘。

目前, DSM已经发展成为基于组件和基于团队应用的静态模型、基于活动和基于参数应用的时间模型等两种类型的模型[11]。前者指同时存在的系统元素;后者指上游活动和下游活动之间的先后顺序。很多学者把DSM应用到设计过程的建模和管理中, 如文献[12]使用DSM表示复杂软件产品中设计元素之间的依赖关系以研究不同软件产品架构之间的差异。DSM为理解和分析复杂的软件可信性提供了简洁而可视的形式, 本文借鉴基于组件的静态DSM模型来表征构件内部可信属性之间和构件与构件的可信属性之间的依赖关系, 并对软件可信性DSM模型概括定义如下:

定义3 (软件可信性DSM模型) 可信性DSM模型是一个n×n阶方阵, 其矩阵的行和列与表示各构件可信性的所有可信属性相对应, 矩阵的维数n代表所有可信属性的个数, 主对角线元素标志着可信属性本身;其它元素用以表示可信属性之间的依赖关系, 其方向性由行和列分别表示, 行对应基于构件的软件可信性模型图中有向边的弧头, 列对应该图中有向边的弧尾, uij表示可信属性uj依赖于可信属性ui, 并用“●”来表示。

设某软件的可信性DSM模型如图1所示, 其中可信属性t1到t6属于构件Comi, 可信属性t7到t12属于构件Com2, 可信属性t13到t18属于构件Com3。从图中, 可以直观的看出构件内部和构件之间可信属性的直接依赖关系。

3 软件可信性变化传播模式分析

3.1 可信性变化传播影响与传播模式

从图1所示的软件可信性DSM模型不难发现, 可信属性之间不仅存在直接依赖, 而且存在间接依赖。如图1所示, 若可信属性t18发生变化, 引起了可信属性t5、t17的变化, t5进而引起了t3、t6变化, t17又引起了t6、t16的变化, t3的变化引起了t11的变化, t16又引起了t5的变化等等, 即由最初可信属性t18变化引起了t5、t17、t3、t6、t16、t11等可信属性的变化, 而且出现了重复与迭代。因此, 软件可信性变化实现初看似乎只需要根据需要对变化的可信属性分别进行实现, 但实际上由于各可信属性是彼此相互影响的, 对某一可信属性的变化会引起一连串其他可信属性的变化, 从而引发在需求变化传播。所有可信属性形成了一个复杂的可信需求变化传播网, 对某一具体可信属性而言, 则是一棵变化传播树, 如图2所示。

为了有效分析软件可信性变化传播, 本文引入文献[13]和文献[14]对机械产品设计变更传播模式的分类来研究软件可信性变化传播的影响。该文献将传播的影响划分为三类, 如图3所示:①水波式传播模式 (ripple propagation) , 即初始变化引起的传播只会引起少量的其他变化, 然后变化数量迅速减少;②开花式传播模式 (blossom propagation) :即起初变化传播引起其他变化大量增加, 如同在“开花期”, 但之后变化数量逐渐减少, 变化传播进入“凋谢期”, 最后传播引起的变化数量可以保持在一个合理的数量上;③雪崩式传播模式 (avalanche propagation) , 即变化传播引起变化数量不断增加, 如同雪崩效应或滚雪球效应, 最后导致变化影响的数量难以控制。

3.2 可信性变化传播模式分析

在图论中, 对于有向图的两个节点uv, 若存在从节点u到节点v的通路, 则称节点u到节点v是可达的。若一个有向图中的任意两节点都是相互可达的, 则称该有向图为强连通图;若一个有向图的某几个节点导出的子图是一个强连通图, 则称该子图为原有向图的一个强连通分支。

软件可信性变化传播影响问题实际上是软件各构件可信属性之间依赖的“可达性”问题, 而当某几个可信属性处于同一个“强连通分支”时, 则它们中任意一个可信性属性的变化都会对其余的任意一个可信属性产生影响, 因而可以将其聚类为一个分组, 该分组内部的变化都会彼此影响。下面以图1所示的软件可信性DSM模型为例, 分析软件可信性变化传播影响及其传播模式。

将图1所示的软件可信性DSM模型看作一个邻接矩阵, 求取其强连通分支, 并将处在同一个强连通分支内的可信属性聚类为一个变化分组, 最后得到{t3, t15}, {t1, t2, t7, t8, t9, t10}, {t4, t11, t12, t14}, {t5, t6, t16, t17, t18}四个分组。经过聚类形成的变化分组要么在结构组成上是紧密联系在一起的, 要么是在作用上是紧密在一起的。经过重新排列元素顺序, 四个变化分组的DSM如图4所示。将分组内部可信属性和构件的变化依赖关系用有向图表示, 如图5所示。可以将变化分组分为三个层次:

(1) 变化发起分组。该分组的变化会引起其它分组的变化, 但不会受其他分组变化的影响, 如分组{t1, t2, t7, t8, t9, t10}, 对应图5中的分组CG1。

(2) 变化传递分组。该分组的变化既受其他分组的影响, 也影响其他分组, 如分组{t4, t11, t12, t14}和分组{t5, t6, t16, t17, t18}, 对应图5中的分组CG3和分组CG4。

(3) 变化吸收分组。该分组的变化只受其他分组的影响, 而不影响其他分组, 如分组{t3, t15}, 对应图5中的分组CG2。

从软件可信性的组成和作用的角度可以看出, 变化发起分组往往是整个软件可信性中最核心的部分, 其分组内部的可信属性往往是最基础的可信属性。而变化传递分组内的可信属性, 则是结构上连接各构件可信性, 或者作用上协调整个软件可信性实现的可信属性。变化吸引分组内的可信属性, 则大都是结构上处于从属地位, 依赖于软件主要的可信属性。

在实际的软件可信性变化传播过程中发现, 之所以会发生如图3所示的不同模式的变化, 实际上是由于变化传播涉及到不同类型的变化分组的缘故, 总结如下:

(1) 水波式传播模式。由于变化吸引分组自身的变化, 或者变化从初始分组传播到变化吸引分组, 没有变化传递分组参与到变化传播, 会引起水波式变化传播。

(2) 开花式传播模式。如果变化传递分组参与了变化传播, 并且变化传递分组之间没有发生变化传播, 则会引起开花式变化传播。

(3) 雪崩式传播模式。一般是由于变化传递分组之间反复地发生了变化传播, 从而引起了雪崩式变化传播。

因此, 在软件可信性变化管理过程中, 要避免或减少雪崩式的变化传播的发生, 就应该消除或尽可能减少变化传递分组之间的变化传播。

4 结束语

近年来, 随着网络应用软件和嵌入式软件在国民经济高科技各个领域的广泛应用, 这些规模大、复杂程度高的可信软件系统由于应用环境的多变和用户要求的提高, 不但面临着功能需求的不断变化, 而且还经常面临着软件可信性的变化。针对当前对软件可信性变化影响研究的不足, 本文引入水波式、开花式和雪崩式等三种传播模式来研究软件可信性变化传播。将软件视作构件的组装, 将软件可信性分解到各构件, 从结构的视角, 重新定义了软件可信性;从构件内部、构件之间表征构件可信性的可信属性存在相互依赖关系的视角, 基于设计结构矩阵理论, 构建了软件可信性DSM模型;分析了三种传播模式的特点, 并通过对构件可信属性聚类和划分变化分组在软件可信性变化传播中的不同模式, 对软件可信性变化传播影响进行了刻画分析。最后, 通过分析软件可信性变化传播不同模式的内在原因, 为实现软件可信性变化有效管理找到了一种可行的方法。

软件设计课程考核模式探索 篇11

关键词软件设计;课程考核模式;学习过程;作品答辩

中图分类号G642文献标识码A文章编号1673-9671-(2010)031-0126-01

软件设计课程是软件专业的专业必修课,也是软件开发的第一环节,在实践中起到很重要的作用。软件的设计、开发、实施、测试人员都需对软件设计知识有一定了解。因此,本门课程是软件技术专业的重点课程之一。对于本门课程的考核模式,在各校方法不一,本文以我校的实践经验入手,论证了“学习过程”加“作品答辩”的考核模式。

1“学习过程”加“作品答辩”考核模式的提出

考试是教育测验的主要形式或手段。不仅具有检测、鉴定和评价功能,而且具有教育教学的导向、反馈和激励功能。同时,考试也是促进学生全面发展,提高其素质的有效手段。对学生来说,通过考试调动学生学习数学的积极性和兴趣,促进能力的培养,使学生由知识的被动接受者成为主动参与者及积极探索者,实现对知识由“学会”转变成“会学”、进而“会用”。对教师来说,是检查教学效果、因材施教的重要手段,促使教师在进行数学教学的同时,坚持“以人为本”,培养学生应用数学知识解决实际问题的能力。新的考试模式要有良好的可操作性。考试内容要科学合理。考试方法要便于组织实施,具有实践意义。要考查学生的学习状况,督促和引导学生学习。巩固所学知识,但不能“一卷定终生”。学习的过程更能反映学生的发展变化和进步的程度,因此既要重视“结果”,也要重视“过程”,要培养学生发现、探索问题的能力和创新意识,所以要运用多种评价方式。另外,学生考试成绩的好坏,关键在于教学水平的高低,对学生学习结果的评价、检查,也是反映教师的教学效果的重要手段。考试的目的是对教师的“教”与学生的“学”的双向检测。建立新的数学考试模式遵循的原则要体现全面性、科学性、多功能、灵活性,突出专业能力和方法能力双向考核。如果考试功能存在误区,考试内容难易搭配不合理,缺乏对学生各种能力的综合考查,考试方式单一,那么就达不到进行数学测试的目的。因此,改革的指导思想是:既要重基础知识、基本技能,也要重思维、重应用,采用多种考试方式,给学生提供创造性表达的机会。不仅要让考试成为学习效果的评估,而且要充分发挥考试的促进和引导作用。调动学生及教师的积极性,要使考试真正成为教学的一部分,而不是教学围着考试转。

基于此,我校在软件设计课程中提出“学习过程”加“作品答辩”的考核模式。“学习过程”成绩包括小组“学习过程”得分和个人“学习过程”得分。小组“学习过程”得分即各项目组在学习阶段任务完成情况的分数积累,占总成绩的20%,个人“学习过程”得分,即学生平时的学习状态得分,包括日常教师对于出勤、回答问题、小组参与程度、学习态度、知识掌握程度等的分数积累,占总成绩的20%。

“作品答辩”成绩,即学生以项目组为单位完成软件设计作品一份,并据此作品进行课程答辩。教师针对作品给出得分,占各人总成绩的30%,对小组成员答辩情况和作品参与程度给出得分,占各人成绩的30%。

2实施步骤

2.1初始准备

在课程开始之初,就向学生明確本门课程的考核及教学模式,根据学生的性别比例、性格差异、学习状况将学生尽量平均分配为多个学习小组,通常学习小组的人数为4人左右。学习过程中,以小组为单位共同学习,并记录小组及个人的“学习过程”成绩。

2.2确定题目

软件设计作品题目原则上由教师指定题目,学生也可根据需要,自主命题,但需经过教师同意。题目要尽量结合实际教学,反映新技术,以取得更好的工程设计实践的训练效果。同时由于受到时间、开发环境及条件等限制,命题应从实际出发,课题的规模大小及难易程度要适中。课题也要具有一定的复杂度,通过项目激发学生的积极性与创造性,努力完成实践任务,才能达到综合应用所学知识的目的。

2.3明确设计文档的撰写规范

软件公司在软件设计阶段完成后需要提交软件设计报告文档。因此,在教学中要训练学生编写进行设计文档的编写,同时也训练学生养成严谨的作风和科学的学习态度。通过撰写软件设计报告,不仅能对设计过程有个全面的总结,而且还能够把实践内容提升到理论高度。教师要为学生提供以下资料:

1)软件设计文档撰写模板(包括可行性研究报告、软件需求说明书、概要设计说明书、详细设计说明书、数据库设计说明书);

2)PPT编写规范;

3)作品及答辩评分标准;

4)组内任务分配评分表。

2.4验收评定成绩

作品完成后各小组需提交以下材料:设计文档、答辩用PPT、小组内工作任务分配评分表。在表中,由组长列出作品中的主要技术及关键模块。并注明各模块的负责人、参与人。并根据工作量,为小组成员确定得分(此得分供教师提问时参考)。

以小组为单位进行作品的展示并接受答辩。用PPT的形式进行作品设计结果的展示,教师给出作品设计得分,同时根据每位学生的工作量及答辩情况给出个人得分。相加得到设计得分。

3实施效果

采用“学习过程”加“作品答辩”的考试模式的主要目的是提高学生综合应用所学课程知识的能力,训练和提高软件设计技能。要求学生在规定时间内完成一个规模适当的软件设计工作,在教师的指导师下以软件设计为中心,完成从需求分析、界面设计、数据库设计、模块设计、用例设计等全过程。通过此种方法可以达到取得以下效果:1)深化已学的知识,完成从理论到实践的转化。通过作品设计及答辩,进一步加深对软件工程方法和技术的了解,将软件工程的理论和知识运用于开发的实践,并在实践中逐步掌握软件工具的使用权学;2)提高分析和解决实际问题的能力。采用 “作品答辩”的考试模式,是对实际工作的一次模拟训练。通过软件设计,积累经验,同时提高分析和解决问题的能力;3)促进团队合作,培养互学意识。通过这样一种考核模式,培养学生的团队合作意识。在成绩评定时,不仅要考核各组任务完成的情况,同时要记录是否有学生调队,是否全员参与的情况。以激励学生团结合作,互为师长,使教师向学生流动的单向信息流向学生之间互相流动的多向信息流转变;4)更真实地反映学生本门课程的学习情况及知识掌握情况。

4总结

采用“学习过程”加“作品答辩”的考核模式在我校软件设计课程中取得很好的效果。不仅对学生的学习成绩有个公平公正的判断,同时对于教学的实用性也起到了指导作用。

参考文献

[1]姚策主编.基于UML的管理信息系统实训[M].北京:北京理工大学出版社,2007.

软件体系结构模式 篇12

1 课程简介

《数据结构》是计算机科学的算法理论基础和软件设计的技术基础,它是计算机类及相关专业中一门重要的专业技术基础课程,是介于数学、计算机硬件和计算机软件三之间的一门核心课程。教学的目标主要的是培养学生掌握各种算法在时间和空间上技巧以及软件工程设计的能力。

1.1 课程特点

1)内容丰富。《数据结构》它是一门综合性的专业基础学科,其研究内容不仅涉及到数据元素的逻辑结构、存储结构和基本操作的算法在计算机中的表示和实现,而且还涉及到在检索信息时也必须考虑数据的组织结构,以便更方便、高效地查找、存取。

2)难度大。《数据结构》研究的范围既涉及到计算机硬件(编码理论、存储装置、存取方法等),又和计算机软件研究有着密切的联系,再加上它本身具有较强的理论性。

3)抽象性高。《数据结构》一方面它讨论是从简单的线性表到复杂的树、图等多种结构的抽象数据关系,另一方面又讨论抽象的算法在计算机运行过程中的实现。

1.2 课程内容

本课程主要介绍了线性表、串、树和图等几种类型的数据结构,以及使用这些数据结构进行程序设计时经常遇到的查找及排序等问题。其主要内容可分为:一是线性结构(线性表、栈、队列、数组和字符串等)的定义、存储和操作;二是非线性结构(树和图等)的定义、存储和操作;三是算法的定义、表示和实现。

2 问题提出

目前在各大院校,《数据结构》这门课程已不仅是计算机类专业的核心基础课程,而且也是非计算机类专业的热门选修课,所以给教学工作提出了更高的要求。以往只习惯于以教师讲授理论基础知识为主的、单一的、传统的教学模式必须改革,取而代之的要形成“直观、多视角、多途径”的教学模式通道,将抽象的数据关系、算法执行过程以浅显易懂的形式展现在学生面前、以此来激发学生的学习积极性和兴趣。

本文在上述背景下,为促进学生对《数据结构》课程学习的效果,笔者经过反复论证和研究,提出了“《数据结构》课程演示教学模式系统软件”的开发方案,将数据逻辑关系、算法等内容以演示形式生成和描述出来,这样更有助于帮助学生理解。

3 方案总体结构

如图1所示,演示教学模式系统是以普通微机系统(如:笔记本电脑或PC机)为主系统,通过C语言连接,将《数据结构》课程中的内容生成的抽象数据,在屏幕上以动漫的形式显示出来。

4 系统实现

4.1 环境平台

硬件:笔记本电脑Acer 4745G(配制:英特尔I5处理器2.66GHz/4GB内存)。

软件:Windows XP、C语言,在TC2.01下编译通过并运行。

4.2 软件设计

本系统采用C语言编程,由于它具有丰富的数据结构、强大的图形处理能力,并可通过指针操作方便地存取内存数据,此外,在标准库函数中提供了一些输入和输出的函数,以便来完成I/O操作。因此,用C语言作为媒介来完成该系统的设计是可行的。

4.2.1 系统构成

如图2所示,本系统软件由主控模块、生成模块、用户自定区模块和数据演示模块等四大部分组成。其功能如下:

1)主控模块功能:主要完成系统的初始化,参数的设定,演示功能(如:线性表、栈、查找、排序、树和图等生成)的选择以及对用户自定区的程序进行汇编、连接、装入、启动、运行到结果的返回显示等。

2)生成模块功能:完成《数据结构》课程中几个主要内容(如:线性表、串、树、图等)的生成、演示。

3)用户自定区模块功能:它是一个独立的软件包,专供用户(学生)使用。用户(学生)可根据自己的兴趣将《数据结构》课程中其它内容编制成程序,由主控模块把自编程序经压缩处理后装入用户自定区模块中,并生成文件模块号(即在参数映象区得到运行程序的启址),以便运行或调用。

4)数据演示模块:主要完成《数据结构》课程中需要生成、演示的内容。它可将生成内容运行的中间结果和最终结果送到屏幕上进行动漫显示,从而形成了“直观、多视角”教学模式。

4.2.2 生成系统模块软件设计

由图2所示,生成系统由生成模块软件和用户自定区模块软件构成,它是本系统的核心。在设计的方法上采用了模块化、标准化软件模式,供用户(学生)反复演示本系统所提供的或自编程提供的数据结果,极大地丰富了软件资源。

1)参数映象区设定。演示教学模式系统专门为软件设计人员设置了一个区域,供主控系统与生成系统之间参数传递使用。因此,主系统程序只要通过访问映象区就能得到一个用户自生成模块程序的首址,然后去运行该模块程序。其设定格式如图3所示。

2)生成模块软件。介于该文篇幅的限制,只选择了《数据结构》课程中的几个主要内容进行设计思想的介绍。

一是线性表生成子模块。完成对线性表中的数据元素进行插入(删除)运算的操作,并将每一步的运算结果在屏幕上以动漫形式显示出来。源程序如下:

二是树生成子模块。源程序如下:

三是排序(冒泡)算法生成子模块。源程序如下:

只要将上述程序进行编译、连接就可生成执行文件,从而来实现系统的运行。

5 结束语

以C语言为媒介,设计的《数据结构》课程演示教学模式系统,它的成功实现,将会极大地改善以往的传统教学模式,更有效地提高学生的学习兴趣、实际动手能力和学习成绩。这项研究开发工作还只是刚刚开始,还待于在教学实践中不断总结和完善。

参考文献

[1]陈慧南.数据结构——C语言描述[M].2版.西安:西安电子科技大学出版社,2009.

[2]梁翎,李爱齐.C语言程序设计实用技巧与程序实例[M].上海:上海科普出版社,1996.

上一篇:车辆噪声下一篇:小南沟金矿