软件体系结构层次

软件体系结构层次
软件体系结构层次

基于层次体系结构的管理信息系统设计与实

1. 引言

随着经济全球化的进程和市场竞争的加剧, 商务环境的变化正深刻影响着企业组织管理的各方面. 信息系统作为现代企业管理系统的重要组成部分, 也正面临着前所未有的挑战. 一方面, 信息技术的发展要求企业进行流程重组, 创造性的应用信息技术, 另一方面, 在企业组织变化的条件下, 敏捷制造、虚拟企业、大规模客户定制等新的生产模式也对企业信息系统提出了更高的要求. 在新的市场环境下, 企业的管理业务处在不断变化的过程中, 而信息系统一经开发完成, 就具有相对稳定性, 难以满足企业管理变化的需要.同时随着计算机技术的迅速更新、软件开发竞争的日趋激烈已经使传统的从源代码级开发软件系统的方法面临越来越大的挑战。利用传统开发方法开发的大多数系统所使用的是在开发初始时所能得到的技术, 面向的是当时所需处理的问题, 要使这些软件系统适应处理对象如业务过程的变化以及计算机技术的进步是一件非常复杂的工作, 往往必须对原有系统在代码上进行重大修改, 这种修改代价较高并且也有一定的风险, 从而造成软件的可扩充性较差。在开发过程中, 为减少软件开发费用、缩短软件开发周期, 保持开发者的技术水平变得越来越重要, 因为只有这样才能达到一个较高的开发效率, 使得项目按时完成。而在传统的开发方法中, 由于开发不同的软件时常需要不同的开发工具, 这使得开发者必须不断学习新的开发工具, 原有的技巧以及已具备的经验难以被再次利用。当今的软件开发经常需要利用现有成果, 开发时可能要集成不同的系统、新的应用、标准的软件包以及已在业务开展中使用了的与任务有关的现有数据与系统, 通过集成可以减少不必要的工作量, 提高软件的可用性, 加快开发进度。但是传统的代码开发方法主要着眼于从无到有的构造, 对软件集成的支持不够, 大量的开发时间被投入到底层编程中, 这种编程不仅耗时而且可能是重复劳动, 从长远看还会造成代码难于维护。

计算机应用系统的日益复杂和庞大,使得软件体系结构的研究成为当前的研究热点。软件体系结构设计已经成为软件生命周期中的一个重要环节。随着软件系统越来越大,越来越复杂,软件设计的核心已经转移到一个新的计算模式,而远非传统的“程序=算法+数据结构”,这个新的模式就是系统的总体结构的设计和规范。

2.层次体系的设计

本文研究了信息系统结构的层次性和管理的层次性的关系。层次体系的设计软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象, 由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构, 并且显示了系统需求和构成系统的元素之间的对应关系, 提供了一些设计决策的基本原理.管理信息系统是一个以人为主导, 利用计算机硬件、软件、网络通信设备以及其他办公设备, 进行信息的收集、传输、加工、储存、更新和维护, 以企业战略竞优、提高效益和效率为目的, 支持企业高层决策、中层控制、基层运作的高度集成化的人机系统。

从软件系统体系结构设计的角度出发, 管理信息系统主要特点有:(1) 问题

领域庞大、复杂、易变, 软件系统体系结构受问题领域的影响较大。(2) 系统构件之间的交互关系复杂、多变, 然而这些关系却恰恰是管理信息系统软件体系结构设计的基础, 因此必须能够有效地把握系统构件之间的关系。(3) 管理信息系统构件之间存在很多的相似, 系统构件重用的可能性特别大。(4) 管理信息系统软件是从信息管理的角度抽象问题领域的模型, 因此问题领域模型决定了管理信息系统软件系统模型。如何抽象问题领域模型来建立软件模型, 从而更好地管理两者之间的关系, 是管理信息系统软件体系结构设计成功的关键。

对于软件项目的开发来说, 一个清晰的软件体系结构是首要的。然而, 在系统开发的初始阶段就设计好系统的最终结构是不可能的, 也是不现实的, 因为需求还在不断地发生变化。所以, 一个好的软件体系结构应该可以创建或再创建功能、用户界面和问题域模型, 进化原型以满足新的软件需求。

层次式软件体系结构是把大型软件系统按照功能的扩展性, 分成若干层。为了使开发人员在开发软件时对系统体系结构有一个清晰的把握, 不至于将一大堆工作混杂在一起而造成系统的维护困难, 我们利用层次软件体系结构来对系统进行层次化的分类。软件系统的最终目标是完成目标系统需求所要求完成的任务。系统的各个组成部分在系统中扮演不同的角色, 完成不同的任务, 它们组合在一起共同完成软件系统的所有任务。其中有些部分实现比较底层的操作, 比如与数据库打交道; 有些部分实现某一类数据结构的基本操作, 比如栈、队列的操作等; 还有些部分是专门与系统的最终用户进行交互, 读取用户输入信息, 将结果反馈给用户等。这些不同部分之间有可能是纯粹的聚集关系, 它们在一起只是因为系统需要它们各自的功能来完成不同的任务。另外一种关系就可能是层次关系, 实现底层操作的部分为实现较高层操作的部分提供服务。有了底层的基本服务,高层操作就只需要关心本层必须完成的任务。对于底层的操作,它只需要明确定义可以提供给高层的服务接口即可, 其内部可以采用不同的实现方法, 层与层之间是完全透明的, 它们只通过层间的服务接口进行交互。在对软件系统进行分析后首先对它的所有功能进行层次化划分, 然后对每一个层次的功能进行模块化分解。一个层次中可能有多个模块具有相似的功能, 对这些模块进行更深层次的划分, 将相同部分提取出来作为低一层次来对待, 而上层的不同部分就划分到不同模块中。这样的层次划分和模块化分解一直进行下去, 直到系统所有功能都有一个明确的模块归属为止。这种软件系统的分解采用先水平后垂直的划分方法, 层与层之间的界限是明确的, 但层中的模块内部可能要进行进一步的划分, 这是一个反复迭代的递归分解过程。至于为什么不采用先垂直后水平的划分方法是因为先垂直后水平的方法与传统的" 自上而下, 逐步求精"方法类似, 这种方法不易识别系统底层的公共操作, 减少了底层模块的复用机会, 容易造成不必要的重复开发。在对软件系统进行先水平后垂直的分解过程中, 可能会发现同一层不同模块的内部模块中有功能相似的子模块, 对于这种情况需要将它们的公共部分进行提取, 然后对初始的层次划分进行调整, 将公共部分作为它们的下一个层次, 当前层次只需要去访问公共部分提供的服务。完成软件系统的分解后, 首先按照各模块对上层提供的服务来定义它与上层模块之间的接口。定义好层与层之间的服务接口后, 就可以对各个模块进行独立的设计了。有了这种先进行层次化分解再进行独立设计的方法, 软件开发人员就可完全按照各模块的设计进行独立的开发, 这样就不会再出现将多个层次的东西揉合在一起的情况。

为了明确层次化软件构造过程中不同构件所处的层次, 依照软件系统的层

次分解思路将构件归属于如下三个层次:

第一,数据操作层构件: 这类构件与数据库打交道, 其主要功能是完成对数据库操作。划分这一层构件的目的是用这一层的构件来屏蔽底层数据库操作的复杂性和多样性, 为上层应用提供统一或数据库操作服务接口。

第二,业务层构件: 这一层构件有两种, 一种是用于公共服务, 一种是用于特定领域操作。公共服务构件专注于提供常见问题的高效解决算法, 同时提供与操作系统相关的公共服务, 比如文件读写、目录管理、报表制做等。它还对一些通用数据结构提供常见的操作支持。这类构件支持水平复用, 也就是说各种软件系统都可能使用它们提供的服务, 从而避免重复劳动, 节省软件开发时间; 避免重复开发过程中引入错误, 提高软件产品质量。特定领域构件与实际的应用领域密切相关。首先需要领域专家对该领域作广泛深入的调查研究, 进行领域分析, 搜集各种资料, 最后为各个构件界定范围。

第三,表示层构件: 这类构件与软件系统的最终用户打交道, 所以称为用户界面构件。提供用户界面操作服务, 可以说它们也属于公共服务这一类。但由于这些服务有许多自身的特点, 所以将它作为单独的用户界面层构件来讨论。当前可视化开发环境中已经提供了大量的界面构件, 为软件系统的界面开发提供了有力支持。可以对这些界面构件进行组合、改进, 开发不仅使最终用户感觉友好, 而且使开发人员更易于使用的大粒度用户界面构件。这个构件层次是一个大粒度的划分, 它们之间不具有严格意义上的上下层关系, 在各个层次构件的内部层次划分中才能看到明显的上下层依赖关系。一个软件系统的层次化构造在粗粒度角度看是这个层次构件的聚集, 当从细粒度角度, 即从内部去观察软件系统时, 就可以看到内部明显的层次关系。之所以提出基于构件的层次化软件构造是因为构件技术在很大程度上能使软件复用思想得到具体应用。采用基于构件的技术, 有利于系统可扩展性能的提高, 使系统具有更大的灵活性。当完成一个软件系统所有构件的开发后, 系统集成只须按照系统需求将构件组合起来。要添加或删除系统功能只须将相关构件加入或从系统中去除就行了。这大大减轻了软件系统的维护负担, 并在很大程度上保证了软件系统的可伸缩性, 为开发类似产品或系列产品提供了有力的支持。

系统扩展应用

业务相关的操作

层次软件体系结构框架

3、系统设计

本系统图书管理系统主要分成了,图书系统维护、图书采购、图书编目、图书流通、期刊管理和帮助部分。这几部分的操作与数据库和表结构相关。通过与数据库的连接实现Web 的查询。

3.1 系统的功能

本系统的功能目标:建立网上图书查询、图书预约模式。借助于学院校园网"在学院现有网站上加入链接页面实现图书、期刊查询、借书情况查询、图书预约,通过学院校园网为读者提供更多的信息服务;2、规范图书管理工作模式,用计算机管理取代以往的手工作业和定性管理模式,使图书管理工作模式规范化、机读数据格式标准化、管理决策科学化;3、提高图书馆的服务质量。便于工作人员准确地掌握藏书结构,全面了解读者对文献信息的需求,及时调整采购计划,突出馆藏特点。

通过对国内现有的一些图书文献管理系统软件的功能和售价情况进行了详细调研,发现这些软件很难满足学校图书馆的需求。因为从规模或藏书册数来划分,学校图书馆仅属中小型图书馆,但应用需求则涉及到方方面面, 除了通常的图书采购、图书编目、图书流通外,还有期刊管理, 现在市场上中小型图书馆管理软件均只有基本的功能,采购、编目、流通,很少有期刊管理。 通常这种图书管理软件仅运行在图书馆内部的局域网上,没有查询系统,大型图书管理软件功能齐全,但价格昂贵,特别是运行价格高、维护困难、操作复杂。根据学院图书馆的实际情况和学院校园网的现状,我们确定了网络图书管理系统应该具备几个方面的功能,它们是图书采购、图书编目、图书流通、期刊管理、系统维护、 查询帮助、其中查询是该系统突出的特点,它的实现是因为有学院主干网的支持。

3.2系统结构的网络拓扑及其各个子系统

网络拓扑结构,整个系统使用了数台微机和1台数据库服务器,1台web 服务器,为了保证访问的速度和系统安全, 数据库服务器和web 服务器放在不同的物理服务器上,网络采用星型连接构成局域网,局域网与学院主干网相连。从图中可以看出,学院校园网上的计算机都能够访问图书馆的网站获取信息资源。

网络拓扑图

图书管理系统 系

图书流通 图书采购 帮助 图书编目 期刊管理 Web 查 询 DB

系统采取了C/S 和B/S技术相结合的方式,在浏览器方式下,主要实现了图书、期刊查询、借书情查询、图书预约功能。而对于图书编目、图书流通、系统维护等操作,使用C/S方式,这样,既保了C/S方式下数据维护方便、快捷的特点,又利用了B/S下查询、检索易学易用的优点。

整个系统有7个子系统,它们分别是:

(1)图书采购子系统:实现发布预订图书信息(供读者网上荐书用)、根据网上调查结果确定新书订购单、新书验收记到下流水号、统计报表处理等功能。

(2)图书编目子系统:实现编目处理、查重、馆藏管理等功能。其中编目处理包括原始编目、书目记录、数据维护、各类输出等项。馆藏管理包括馆藏数据维护、丢剔处理、馆藏统计、报表输出等项,其中图书馆编目工作中图书查重、图书分类、图书著录等,工作流程比较复杂,设计好编目系统对提高编目工作的质量和速度、减少图书滞留时间、提高图书流通率起到关键作用。图书馆每种书的款目在计算机中是以一条条的记录组成的,每条记录由若干字段组成,这些字段用来揭示文献的标识项。各个字段的名称、类型、长度是由相应的数据库结构来定义的。

(3)图书流通子系统:实现出纳管理、读者管理、查询及统计打印功能模块。其中出纳管理包括借书、还书、续借、预约、罚款等项。读者管理包括读者登记、借书证挂失、读者数据维护等项。查询包括是查书去向、查读者借书情况、查总体借还情况等。统计打印则是打印图书借阅和读者情况的统计报表以及打印催还单等。

(4)期刊管理子系统:实现期刊查缺、采购、编目、记到、典藏、流通、统计等功能。

(5)系统维护子系统:实现操作员库、读者库、单位库维护,权限设置等功能。

(6)web查询子系统:实现网上查询(图书、期刊查询和读者借书情况查询)、读者荐书、网上图书预约等功能。Web查询功能应该能够查询图书、期刊和读者等信息,因此我们在查询系统中设计了以下主要功能:图书查询、期刊查询、读者信息查询、图书推荐。“图书查询”主要查询在图书库中现有的资料。让用户

了解是否有其需要的图书&有哪些图书。它包括按书名查询图书、按索书号查询和按作者查询图书等。“期刊查询”主要查询期刊的情况。包括按刊名查询出版物信息,按索书号查询连续出版物信息和按编辑部查询连续出版物信息等。“读者信息查询”主要查询读者的图书借阅情况,包括读者借阅记录查询和读者超期借阅记录查询等。“图书推荐”是让读者推荐图书,作为工作人员采购新书的参考。Web查询子系统采用的是B/S 结构,其它子系统采用C/S结构"。查询子系统采取的是B/S模式,由于B/S模式在客户端不需要安装除浏览器之外的任何程序,因此比C/S模式要方便很多,这样做充分利用了学院校园网优势,实现了全院范围内的网上查询。

数据访问结构

(7)帮助子系统:系统功能介绍用系统使用说明、版本信息。

3.3数据操作

系统实现数据操作需要数据转换构件。以自动或手工方式把数据从一个数据库中转换到另一各数据库中。为了采集原系统的数据, 要定义许多数据转换进程。在数据操作层构件,主要用来为上层提供控制数据库的统一的、透明的操作服务, 屏蔽底层操作的复杂性和多样性。对于数据库操作构件, 承袭ODBC 的思想, 为数据库选择、插入、删除、更改等常用操作提供统一的操作接口。在系统中数据库用的是Mysql, 我们开发了对于Mysql 数据连接构件, 数据操作构件和数据显示构件。数据库连接是图书管理系统中最重要的部分, Java 中连接数据库是用JDBC ( Java DataBase Connectivity) , JDBC 实现了一个独立于特定数据库管理系统DBMS 的通用的SQL 数据访问和存储结构。使用JDBC, 可以在不同的数据库功能模块层次上提供统一的用户界面。

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

软件体系结构设计说明书

软件体系结构设计说明书 1.文档简介 [本节主要是描述软件体系结构设计说明书的目的、范围、相关术语、参考资料和本文档的摘要性介绍。软件体系结构设计属于高层设计文档,是符合现代软件工程要求的概要设计。] 1.1 目的 [软件体系结构设计说明书,将从设计的角度对系统进行综合的描述,使用不同的视图来描述其不同方面。在本小节中,将对该文档的结构进行简要的说明,明确该文档针对的读者群,指导他们正确的地使用该文档。] 1.2 范围 [说明该文档所涉及的内容范围,以及将影响的内容。] 1.3 定义、首字母缩写词和缩略语 [与其它文档一样,该文档也需要将本文档中所涉及的所有术语、缩略语进行详细的定义。还有一种可简明的做法,就是维护在一个项目词汇表中,这样就可以避免在每个文档中都重复很多内容。] 1.4参考资料 [在这一小节中,应完整地列出该文档引用的所有文档。对于每个引用的文档都应该给出标题、标识号、日期以及来源,为阅读者查找这些文档提供足够详细的信息。] 1.5 概述 [在本小节中,主要是说明软件体系结构设计说明书各个部分所包含的主要内容,就像一个文章摘要一样。同时也应该对文档的组织方式进行解释。]

2. 体系结构表示方式 [本节说明软件体系结构在当前系统中的作用及其表示方式。它将列举其所必需的用例视图、逻辑视图、进程视图、部署视图或实施视图,并分别说明这些视图包含哪些类型的模型元素。] 3. 软件体系结构的目标和约束 [本节说明对软件体系结构具有某种重要影响的软件需求和用户目标,例如,系统安全性、保密性、第三方组件的使用、可移植性、发布和重新使用。它还要记录可能适用的特殊约束:设计与实施策略、开发工具、团队结构、时间表、遗留系统等。] 4.用例视图 [本节使用用例分析技术所生成的系统用例模型,描述其中的一些用例或场景。在该模型中纳入用例或场景,应该是系统中最重要、最核心的功能部分。] [另外,在本节中还应该选择一个主要的用例,对其进行描述与解释,以帮助读者了解软件的实际工作方式,解释不同的设计模型元素如何帮助系统实现。] 5. 逻辑视图 [逻辑视图主要是反映系统本质的问题领域类模型,在逻辑视图中将列出组成系统的子系统、包。而对每个子系统、包分解成为一个个类,并说明这些关键的实体类的职责、关系、操作、属性。这也是OO思想的体现,以类、类与类之间的协作、包、包与包之间的协作模型来表达系统的逻辑组织结构。]

软件体系结构KWIC实验

《软件体系结构》 实验:软件体系结构风格之应用

一、实验目的 通过KWIC 实例分析,理解和掌握软件体系结构风格设计与实现。 二、实验内容 多种软件风格设计与实现之KWIC 实例: 1.采用主/子程序体系结构风格实现KWIC 关键词索引系统 2.采用面向对象体系架构风格实现KWIC 关键词索引系统 3.采用管道过滤 体系架构风格实现KWIC 关键词索引系统 4.采用事件过程调用体系架构风格实现KWIC 关键词索引系统 三、实验要求与实验环境 熟练掌握基于主/子程序体系结构风格的KWIC 关键词索引系统,在此基础上,完成基于面向对象体系架构风格的KWIC 关键词索引系统设计与实现。选做基于管道过滤体系架构风格的KWIC 关键词索引系统;选做基于事件过程调用体系架构 风格的KWIC 关键词索引系统。 实验课前完成实验报告的实验目的、实验环境、实验内容、实验操作过程等 内容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等内容;每人一台PC 机,所需软件Win2003/XP 、UML 工具(EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0 等。 四、实验操作 1、采用主/子程序体系结构风格实现KWIC 关键词索引系统 主程序/子程序风格(Main Program/Subroutine Style)将系统组织成层次结构,包括一个主程序和一系列子程序。主程序是系统的控制器,负责调度各子程 序的执行。各子程序又是一个局部的控制器,调度其子程序的执行。设计词汇表:主程序main(), 子程序shift(), sort() 方法,方法的调用,返回构件和连接件类型:

软件体系结构分层知识

软件体系结构--RPG游戏制作软件 1)分层 2)写出每层的功能 3)向上提供接口 1.分层 层次系统风格将软件结构组织成一个层次结构,一个分层系统是分层次组织的,每层对上层提供服务,同时对下层来讲也是一个服务的对象。在一些分层系统中,内部的层只对相邻的层可见。除了相邻的外层或经过挑选用于输出的特定函数以外,内层都被隐藏起来。这种风格支持基于可增加抽象层的设计。由于每~层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。 分层系统体系结构有以下优点: 第一,支持基于抽象程度递增的系统设计。这允许设计者可以将一个复杂系统设计按递增的步骤进行分解。 第二,支持扩充。因为每层至多和与之相邻的上层和下层交互,所以,改变某层的功能最多只会影响与之相邻的其它两层。 第三,支持重用。与抽象数据类型一样,只要对相邻层提供同样的接口,每层可以有很多不同的可相互替代的实现方法。因此,可能出现对于标准的层接口的定义可以有不同的实现方法。 但是分层系统体系结构也有存在缺点: 首先,并不是每个系统都可以很容易地划分为分层的模式。甚至即使一个系统可在逻辑上进行分层,但可能出于性能的考虑需要在逻辑上与处于高层的函数和处于低层的实现之间建立紧密的联系。 其次,很难找到一个合适的、正确的层次抽象方法。分层设计作为一个设计的理念方法,在软件设计中得到越来越广泛的应用,特别是在复杂大型软件的研制开发项目中。即使是在中小型软件的开发过程中,也要合理的把系统划分为几个层次,把服务接口一步步地建立起来。系统在进行软件层次设计时应遵循如下三个基本原则: (1)实现和接口分离原则,这是对所有模块接口的一个通用原则。不同的层次实际上是不同的模块,只不过这些模块在逻辑关系上有上下的依赖关系。在这个分离原则之下,层次之间的互换性就可以得到保证。对于一般的软件设计来说,最常见的是抽象层,即把应用部分与一些具体的实现分离开来。 (2)单向性原则,软件的分层应该是单向的,即只能上层调用下层,反过来通常是不行的。因为上层调用下层,结果是上层离不开下层,但下层可以独立地存在:如果下层同时调用上层,上下层就紧密地耦合在一起,谁也离不开谁,形成了软件中的共生现象,导致模块的互换性和可重用性就得不到保证。 (3)服务接VI的粒度提升原则,每层的存在应该是为了完成一定的使用,从软件设计和程序编写的角度来讲,应该向上一层提供更加方便快捷的服务接口。简单重复下一层功能的层是没有意义的,一般越往上层服务接口的粒度越大。对很多应用软件来说,在与数据库直接打交道的地方有数据抽象层。该层把上层的应用同具体的数据库引擎分离开来。在此之上,建立业务对象层(business object),把具体的业务逻辑反映到该层次上。再往上是交互的用户界面等。 多层结构系统具有良好的可拓展性、可维护性和稳定的系统质量,同时,可以提高软件的可重用性,节省项目的开发时间。在开发中,具体采取几层构架,可根据系统的业务繁简程度灵活运用

软件体系结构风格研究分析

软件体系结构风格研究分析 软件体系结构风格研究,分析了各种风格的特点、优缺点,最后重点介绍了三层C/S软件体系结构。 20世纪60年代中期的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构显得越来越重要。 软件体系结构风格分析 最初的软件体系结构是Mainframe结构——客户、数据和程序都被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Inter的发展,一个更灵活的体系结构“三层/多层计算”体系结构应运而生。 Garlan和Shaw将通用软件体系结构风格总结为以下几类:

1.数据流风格:批处理序列;管道/过滤器。 2.调用/返回风格:主程序/子程序;面向对象风格;层次结构。 3.独立构件风格:进程通讯;事件系统。 4.虚拟机风格:解释器;基于规则的系统。 5.仓库风格:数据库系统;超文本系统;黑板系统。C2风格是最常用的一种软件体系结构风格。从C2风格的组织规则和结构图中,我们可以得出,C2风格具有以下特点: (1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;(2)所有构件之间的通讯是通过以连接件为中介的异步消 息交换机制来实现的;(3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。 2.数据抽象和面向对象风格。目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。图2是数据抽象和面向对象风格的示意图。面向对象的系统有许多的优点: (1)因为对象对其他对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其他的对象。(2)设计者可将一些数据存取操作的

软件设计与体系结构期末复习整理解读

1面向对象编程中是如何体现封装性的? 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。 2重载和重写的含义 重载是发生在一个类中,方法名相同,参数不同 重写(覆盖)是子类继承父类,子类可以通过重写的方法隐藏继承的方法 3 什么是接口回调,过程细节是什么? 概念:把可以实现某一接口的类创建的对象的引用赋给该接口声明接口变量,那么该接口变量可以调用被类实现(重写)的接口方法。 4试举例说明什么是组合关系和依赖关系 组合(关联)关系:A类中成员变量是用B类声明的对象。公司--职员 依赖关系:A类中某个方法的参数是用B类声明的对象,或某个方法返回的数据类型是B类的对象 5抽象类和接口,区别是什么?如何应用 抽象类:抽象类中有抽象方法;抽象类中不能用new运算符创建对象;抽象类的对象做商转型对象 接口:(1)接口中只可以有public权限的抽象方法,不能有非抽象方法; (2)接口由类去实现,即一个类如果实现一个接口,那么他必须重写接口中的抽象方法 (3)接口回调 区别:接口中只有常量,不能有变量;抽象类中既可以有常量也可以有变量; 抽象类中也可以有非抽象方法,接口不可以。 应用:定义抽象方法:public abstract void 方法名(); 在子类实现抽象方法:public void 方法名(){} 接口:public interface 接口名{}接口只负责定义规则,不负责任何实现;实现交给实现接口的类 (6)面向对象的六条基本原则包括: 开闭原则,里式代换原则,单一职责,依赖倒转、迪米特法则(接口隔离)。 (7)什么是设计模式? 设计模式是从许多优秀的软件系统中总结出的成功的可复用的设计方案。是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 (8)什么是框架?框架与模式的区别有哪些? 框架是针对某个领域,提供用于开发应用系统的类的集合。 区别:层次不同、范围不同、相互关系

软件体系结构考试参考试题

壹 . 名词解释(参考斯佳分享的名词解释文档) 1.ADL(Architecture Description Language) 体系结构描述语言 2. SOA(Service-Oriented Architecture) 面向服务架构 3. DSSA (Domain Specific Software Architecture) 特定领域软件体系结构 4.CORBA(Common Object Request Broker Architecture) 公共对象请求代理体系结构 5. UML(Unified Modeling Language) 统一建模语言 6.XML(Extensible Markup Language ) 可扩展标记语言 7.B/S(Browser/Server) 浏览器/服务器C/S(Client/Server) 客户端/服务器 8.HMB(Hierarchical [?ha??'rɑ:k?kl] message bus) 层次消息总线 9.SA (Software Architecture) 软件体系结构 10.OMG(Object Management Group) 对象管理组织 11.SOAP(Simple Object Access Protocol) 简单对象访问协议 12.WSDL(Web Services Description Language) web服务描述语言 13.SOAD(Service Oriented Analysis And Design) 面向服务的分析与设计 14.DCOM(Distributed Component Object Model) 分布式对象组件模型 https://www.360docs.net/doc/f011935184.html, (Module Interconnection Language) 模块内连接语言 贰 . 判断题 1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。答案:√ 依据页码:P4 2、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。 答案:√ 依据页码:P28 5、构件可以由其他复合构建和原子构件通过连接而成。() 答案:√ 依据页码:P37 6、体系的核心模型由5种元素组成:构件、连接体、配置、端口和角色() 答案:√ 依据页码:P37 7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素() 答案:√ 依据页码:P37 8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务() 答案:X 依据页码:P32、33 9、构件、连接件以及配置是体系结构的核心模型最基本的元素() 答案:√ 根据页码:P37

软件体系结构设计说明书

软件体系结构设计说明书 Revised by BLUE on the afternoon of December 12,2020.

软件体系结构设计说明书 1.文档简介 [本节主要是描述软件体系结构设计说明书的目的、范围、相关术语、参考资料和本文档的摘要性介绍。软件体系结构设计属于高层设计文档,是符合现代软件工程要求的概要设计。] 目的 [软件体系结构设计说明书,将从设计的角度对系统进行综合的描述,使用不同的视图来描述其不同方面。在本小节中,将对该文档的结构进行简要的说明,明确该文档针对的读者群,指导他们正确的地使用该文档。] 范围 [说明该文档所涉及的内容范围,以及将影响的内容。] 定义、首字母缩写词和缩略语 [与其它文档一样,该文档也需要将本文档中所涉及的所有术语、缩略语进行详细的定义。还有一种可简明的做法,就是维护在一个项目词汇表中,这样就可以避免在每个文档中都重复很多内容。] 参考资料 [在这一小节中,应完整地列出该文档引用的所有文档。对于每个引用的文档都应该给出标题、标识号、日期以及来源,为阅读者查找这些文档提供足够详细的信息。] 概述 [在本小节中,主要是说明软件体系结构设计说明书各个部分所包含的主要内容,就像一个文章摘要一样。同时也应该对文档的组织方式进行解释。] 2. 体系结构表示方式 [本节说明软件体系结构在当前系统中的作用及其表示方式。它将列举其所必需的用例视图、逻辑视图、进程视图、部署视图或实施视图,并分别说明这些视图包含哪些类型的模型元素。]

3. 软件体系结构的目标和约束 [本节说明对软件体系结构具有某种重要影响的软件需求和用户目标,例如,系统安全性、保密性、第三方组件的使用、可移植性、发布和重新使用。它还要记录可能适用的特殊约束:设计与实施策略、开发工具、团队结构、时间表、遗留系统等。] 4.用例视图 [本节使用用例分析技术所生成的系统用例模型,描述其中的一些用例或场景。在该模型中纳入用例或场景,应该是系统中最重要、最核心的功能部分。] [另外,在本节中还应该选择一个主要的用例,对其进行描述与解释,以帮助读者了解软件的实际工作方式,解释不同的设计模型元素如何帮助系统实现。] 5. 逻辑视图 [逻辑视图主要是反映系统本质的问题领域类模型,在逻辑视图中将列出组成系统的子系统、包。而对每个子系统、包分解成为一个个类,并说明这些关键的实体类的职责、关系、操作、属性。这也是OO思想的体现,以类、类与类之间的协作、包、包与包之间的协作模型来表达系统的逻辑组织结构。] 概述 [在本小节中,列出逻辑视图的顶层图,该图将反映系统由哪些包组成,每个包之间的关系与协作,以及包的层次结构。使得读者对整个软件体系结构有一个整体的了解。] 影响软件体系结构的重要设计包 [在本小节中,将从逻辑视图中选择有重要意义的设计包,每个设计包有一个小节来描述,说明这些包的名称、简要的说明、该包中的主要类和相关的类图。对于包中的重要的类,还应该说明其名称、简要说明、主要职责、操作、属性等。] 6. 进程视图 [本节主要描述该软件体系结构下,系统运行态的情况。描述系统在执行时,包括哪些进程(包括线程、进程、进程组),以及它们之间是如何进行通信的、如何进行消息传递、接口如何。并且来说明如何进行组织。]

软件体系结构课后作业及答案

1、就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。 答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。 2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的 答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。 3、为什么要研究软件体系结构? 答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。 2.软件体系结构代表了早期的设计决策成果。 3.软件体系结构可以作为一种可变换的模型。 4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 答:构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器); 连接件(connector)是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等; 限制(constrain):用于对构件和连接件的语义说明。 5、在软件体系结构的研究和应用中,你认为还有哪些不足之处? 答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。 (2)ADL繁多,缺乏同意的ADL的支持。 (3)软件体系结构研究缺乏统一的理论模型支持。 (4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。 (5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。 (6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。 (7)缺乏有效的体系结构复用方案。 (8)体系结构发现方法研究相对欠缺。 1、选择一个规模合适的系统,为其建立“4+1”模型。 逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。 过程视图(Process View),捕捉设计的并发和同步特征。 物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。 开发视图(Development View),描述了在开发环境中软件的静态组织结构。 架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(use cases)或场景(scenarios)来说明,从而形成了第五个视图。

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

软件体系结构_陈长清_《软件体系结构》课程教学大纲

《软件体系结构》课程教学大纲 一、课程名称:软件体系结构 Software Architecture 二、课程编码:0810711 三、学时与学分:48/3 其中课堂教学32学时,实践教学16学时。 四、先修课程:软件工程 五、课程教学目标 1.帮助学生了解软件体系结构的基本概念,初步掌握中大型软件体系结构的分析与设计方法; 2.使学生了解构建系统的目的是为了满足组织的需求,认识软件行业和开发组织在系统设计及其最终成败所起的作用,提高软件设计的基本素养; 3.引导学生认识系统的性能、可用性、安全性等质量属性都是受软件构架制约的,或者说这些属性的实现影响着设计师的设计选择。 六、适用学科专业 软件工程 七、基本教学内容与学时安排 ●构架商业周期(2学时) 构架的产生 软件过程和构架商业周期 什么样的构架才算好 ●什么是软件构架(2学时) 软件构架概念的澄清 软件构架的其他观点 构架模式、参考模型和参考构架

软件构架的重要性 ●A-7E案例分析(2学时)与构架商业周期的关系 需求与质量 A-7E航空电子系统的构架●理解质量属性(6学时)功能性和构架 构架和质量属性 系统的质量属性 质量属性场景 其他系统质量属性 商业质量属性 构架的质量属性 ●实现质量属性(6学时)战术介绍 可用性战术 可修改性战术 性能战术 安全性战术 可测试性战术 易用性战术 战术与构架模式的关系 构架模式和样式 ●设计构架(6学时) 生命期中的构架 设计构架 形成团队结构

创建骨架系统 ●飞行模拟:构架可集成性案例分析(2学时) 与构架商业周期的关系 需求与质量 构架解决方案 ●构架编档(2学时) 构架编档的使用 视图 选择相关视图 视图编档 跨视图文档 统一建模语言 ●ATAM:一种进行构架评估的综合方法(4学时) ATAM的参与人员 ATAM的结果 ATAM的阶段 Nightingale系统:应用ATAM的案例分析 八、实践教学(16学时) ●上机操作内容及要求: 从网上选课系统、文本编辑系统、票务查询系统或正文关键字索引系统这四个系统中任选一个,根据不同的质量属性驱动,运用ADD方法设计两个或多个构架方案,再用ATAM 方法进行评价,然后选择最优方案加以实现,编程语言自选。 ●上机操作考核办法 提供构架文档等各类文档。 源程序和可执行文件。 进行课堂演示。 九、教材及参考书

软件体系结构期末复习题

软件体系结构期末 复习题

《软件体系结构》期末复习题 简答题: 1、软件体系结构建模的种类有: 结构模型、框架模型、动态模型、过程模型、功能模型。 2、“4+1”视图模型从5个不同的视角包括: 逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 3、构件:是具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。 连接件:表示构件之间的交互。 配置:表示构件和连接件的拓扑逻辑和约束。 端口:表示构件和外部环境的交互点。 角色:定义了该连接交互的参与者。 4、画出“4+1”视图模型图,分析各部分的原理和功能。 5、软件体系结构风格: 是描述某一特定应用领域中系统组织方式的惯用模式。

6、软件体系结构 (Software Architecture) 软件体系结构以组件和组件交互的方式定义系统,说明需求与成品系统之间的对应关系,描述系统级别的可伸缩性、能力、吞吐量、一致性和兼容性等属性。软件体系结构由组件、连接件和属性组成。 7、分层系统的优点有: 1)支持基于抽象程度递增的系统设计,使设计者能够把一个复杂系统按递增的步骤进行分解; 2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层; 3)支持重用。只要提供的服务接口定义不变,同一层的不同实现能够交换使用。这样,就能够定义一组标准的接口,而允许各种不同的实现方法。 8、分层系统的缺点有: 1)并不是每个系统都能够很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来; 2)很难找到一个合适的、正确的层次抽象方法。 9、 B/S体系结构的优点有什么? 答:1)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。

软件体系结构课后作业及答案

一次 就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。 答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。 2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的 答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。 3、为什么要研究软件体系结构? 答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。 2.软件体系结构代表了早期的设计决策成果。 3.软件体系结构可以作为一种可变换的模型。 4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 答:构件()可以是一组代码,如程序的模块;也可以是一个独

立的程序(如数据库的服务器); 连接件()是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等; 限制():用于对构件和连接件的语义说明。 5、在软件体系结构的研究和应用中,你认为还有哪些不足之处? 答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。 (2)繁多,缺乏同意的的支持。 (3)软件体系结构研究缺乏统一的理论模型支持。 (4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。 (5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。(6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。 (7)缺乏有效的体系结构复用方案。 (8)体系结构发现方法研究相对欠缺。 二次

软件体系结构作业完整版

第一章: 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)应用程序间的统一接口。

软件体系结构教学大纲

《软件体系结构》教学大纲 一、课程概述 《软件体系结构》是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为相同设计的抽象,为实现框架和构件的重用、基于体系结构的软件开发提供了有力的支持。 作为计算机科学与技术专业软件工程方向的重要专业课程,本课程主要系统地介绍软件体系结构的基本原理、方法和实践,全面反映软件体系结构研究和应用的最新进展。既讨论软件体系结构的基本理论知识,又介绍软件体系结构的设计和工业界应用实例,强调理论与实践相结合。 本课程的先修课程为“软件工程”。 二、课程目标 1.知道《软件体系结构》这门学科的性质、地位、研究范围、学科进展和未来方向等。2.理解该门学科的主要概念、基本原理和策略等。 3.掌握软件体系结构的建模方法、描述方法,通过对不同软件体系结构风格的掌握,能够采用正确的基于体系结构的软件开发。 4.能够把所学的原理应用到具体的实践中去,培养学生发现、分析和解决问题的能力等。 三、课程内容与教学要求 这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。这四个层次的一般涵义表述如下: 知道———是指对这门学科和教学现象的认知。 理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。 掌握———是指运用已理解的教学概念和原理说明、解释、类推同类教学事件和现象。 学会———是指能模仿或在教师指导下独立地完成某些教学知识和技能的操作任务,或能识别操作中的一般差错。 教学内容和要求表中的“√”号表示教学知识和技能的教学要求层次。

软件体系结构风格的研究

软件体系结构风格的研究 [摘要] 本文对几种经典的软件体系结构风格进行了具体的阐述,分析了各种风格的特点、优缺点,最后重点介绍了三层C/S软件体系结构。 [关键词] 软件体系结构软件体系结构风格三层C/S软件体系结构 20世纪60年代中期的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构显得越来越重要。 一、软件体系结构风格分析 最初的软件体系结构是Mainframe结构——客户、数据和程序都被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Internet的发展,一个更灵活的体系结构“三层/多层计算”体系结构应运而生。 Garlan和Shaw将通用软件体系结构风格总结为以下几类: 下面将介绍几种主要和经典的体系结构风格和它们的优缺点。 C2风格是最常用的一种软件体系结构风格。从C2风格的组织规则和结构图中,我们可以得出,C2风格具有以下特点: 2.数据抽象和面向对象风格。

目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。图2是数据抽象和面向对象风格的示意图。 面向对象的系统有许多的优点: 3.基于事件的隐式调用风格。基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用。隐式调用系统的主要优点有:(1)为软件重用提供了强大的支持。当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。(2)为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其他构件的接口。隐式调用系统的主要缺点有:①构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其他构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。②数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题。③既然过程的语义必须依赖于被触发事件的上下文约束,关于

软件体系结构(考试习题集含答案)

1.面向对象的方法优势体现在(ABD ) A.简化软件开发过程 B.支持软件复用 C.提高软件运行效率 D.改善软件结构 2.用户界面设计中的三条“黄金规则”是(ABC ) A.使系统处于用户控制之中 B.减少用户的记忆负担 C.保持界面的一致性 D.保证用户的易学性 3.用户界面的分析和设计过程是迭代的,其中包括的活动是 (ABCD ) A.用户、任务以及环境的分析和建模 B.界面设计 C.界面实现 D.界面确认 4.界面确认需要注意三个方面(ABC ) A.界面正确完成了用户的任务,适应用户的任务变化 B.易学性和易用程度 C.用户的接受程度 D.用户的习惯 5.用户界面分析时通常采用的信息获取方式包括(ABCD ) A.用户会谈 B.销售人员信息采集 C.市场分析 D.用户支持人员信息收集 6.(C )把完成一个特定功能的动作序列抽象为一个过程名和参数表 A.数据抽象 B.动作抽象 C.过程抽象 D.类型抽象 7.(A)把一个数据对象的定义抽象为一个数据类型名 A.数据抽象 B.动作抽象 C.过程抽象 D.类型抽象 8.软件体系结构设计需要考虑以下(ABCD )

A.适用性 B.结构稳定性 C.可扩展性 D.可复用性 9.模块设计时应该考虑(AB ) A.模块功能独立 B.模块信息的隐藏 C.模块接口的简单 D.模块实现简单 10.一个完整的软件设计的主要活动包括有(ABCD ) A.体系结构设计 B.界面设计 C.模块/子系统设计、 D.数据模型、过程/算法设计等 11.模块化是指把一个复杂的问题分割成若干个可管理的小问题后,更易 于理解,模块化正是以此为依据的,在划分模块的过程中应该考虑到(ABC ) A.模块的可分解性、可组装型 B.模块的可理解性、连续性、 C.模块保护 D.尽可能低分割模块,使得问题的难度降到最 1.什么是软件工程?构成软件工程的要素是什么? 软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对所选方法的研究。软件工程的要素由方法、工具和过程组成。方法支撑过程和工具,而过程和工具促进方法学的研究。 2.什么是软件生存周期?软件开发过程模型与软件生存周期之间是何关 系? 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程叫软件生存周期。软件开发过程模型表示软件开发中各个活动的安排方式,出来软件开发各个活动之间关系,是软件开发过程的概括,是软件工程的重要内容,其为软件管理提供里程碑和进度表,为

软件体系结构知识点完整

1、构件是核心和基础,重用是必需的手段。 2、软件重用是指在两次或多次不同的软件软件开发过程中重复使用相同或相近软件元素的过程。 3、软件元素包括程序代码、设计文档、设计过程、需求分析文档甚至领域知识。 4、把可重用的元素称作软构件,简称为软构件。 5、可重用软件元素越大,就说重用的粒度越大。 6、构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通信接口和代码实现的复合体。 7、面向对象技术达到类级重用,以类为封装的单位。 8、构件模型是对构件本质特征的抽象描述。三个主要流派,分别是OMG(对象管理组织)的CORBA(通用对象请求代理结构)、Sun的EJB和Microsoft的DOM(分布式构件对象模型)。 9、获取构件的四个途径:(1)从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可重用构件。(2)通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用构件。(3)从市场上购买现成的商业构件,即COTS构件。(4)开发符合要求的构件。 10、构件分类方法三大类:关键字分类、刻面分类法、超文本组织方法 11、构件检索方法:基于关键字的检索、刻面检索法、超文本检索法和其他检索方法。 12、减少构件修改的工作量,要求工作人员尽量使构件的功能、行为和接口设计更为抽象画、通用化和参数化。 13、构件组装技术:基于功能的组装技术、基于数据的组装技术和面向对象的组装技术。 14、软件体系结构的定义:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。 软件体系结构的意义:(1)体系结构是风险承担者进行交流的手段;(2)体系结构是早期设计决策的体现--①软件体系结构明确了对系统实现的约束条件②软件体系结构决定了开发和维护组织的组织结构③软件体系结构制约着系统的质量属性④通过研究软件体系结构可能预测软件的质量⑤软件体系结构使推理和控制更改更简单⑥软件体系结构有助于循序渐进的原型设计⑦软件体系结构可以作为培训的基础;(3)软件体系结构是可传递和可重用的模型。 软件体系结构发展的四个阶段:(1)无体系结构设计阶段。以汇编语言进行小规模应用程序开发为特征。(2)萌芽阶段。出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征。(3)初期阶段。出现了从不同侧面描述系统的结构模型,以UML为典型代表。(4)高级阶段。以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构与传统软件结构的界限,该阶段以Kruchten提出的“4+1”模型为标志。 通用体系结构风格分类 数据流风格:批处理序列、管道与过滤器。 调用/返回风格:主程序与子程序、面向对象风格、层次结构。 独立构件风格:进程通信、事件系统。 虚拟机风格:解释器、基于规则的系统。 仓库风格:黑板系统、传统型数据库。 管道与过滤器 特点:(1)使得软构件具有良好的内聚、耦合的特点。 (2)允许设计师将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。(3)支持软件重用。 (4)系统维护和增强系统性能简单。 (5)允许对一些如吞吐量、死锁等属性的分析。 (6)支持并行执行。

相关文档
最新文档