系统集成项目管理工程师教程知识点精讲之软件架构

系统集成项目管理工程师 责任编辑:长颈鹿 2016-08-24

添加老师微信

备考咨询

加我微信

摘要:2016上半年系统集成项目管理工程师考试已经结束,2016年下半年开始将使用新版考试大纲和教材,希赛小编为大家整理了一些系统集成项目管理工程师教程知识点精讲,希望对大家有所帮助。

    >>>>系统集成项目管理工程师网络课堂

    >>>>系统集成项目管理工程师模拟考试

      2016上半年系统集成项目管理工程师考试已经结束,2016年下半年开始将使用新版考试大纲和教材,希赛小编为大家整理了一些系统集成项目管理工程师教程知识点精讲,希望对大家有所帮助。

      传统的软件开发过程可以划分为从概念直到实现的若干个阶段,包括软件计划、需求分析、软件设计、软件实现和软件测试等。在这种开发过程中,如何将需求分析的成果转换为软件设计,这个问题一直都困扰着研究人员和实践工作者。近年来,软件工程界提出了各种需求工程和软件建模技术,然而,在软件需求和设计之间仍然存在一条很难逾越的鸿沟,从而很难有效地将需求转换为相应的设计。为此,学者们提出了软件架构(software architecture,软件体系结构)的概念,并试图在软件需求与设计之间架起一座桥梁,重点解决系统结构和需求向实现平坦过渡的问题。

      另一方面,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。在这种背景下,人们也逐渐认识到软件架构的重要性,促进了软件架构技术的快速发展和应用。

      1.软件架构的作用

      软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构件之间的对应关系,提供了一些设计决策的基本原理。对于复杂系统和大型系统的开发而言,设计好软件架构是保证软件质量的根本措施。具体来说,软件架构具有以下作用:

      (1)软件架构是项目干系人进行交流的手段。架构代表了系统的公共的高层次的抽象。这样,系统的大部分有关人员(即使不是全部)能把它作为建立一个互相理解的基础,形成统一认识,互相交流。

      (2)软件架构是早期设计决策的体现。架构体现了系统的最早的一组设计决策,这些早期的约束比起以后的开发、设计、编码或运行服务及维护阶段的工作重要得多,对系统生命周期的影响也大得多。早期决策的正确性最难以保证,而且这些决策也最难以改变,影响范围也最大。软件架构明确了对系统实现的约束条件,决定了开发和维护组织的组织结构;架构制约着系统的质量属性,通过研究软件架构可能预测软件的质量;架构使推理和控制更改更简单,有助于循序渐进的原型设计;架构可以作为培训的基础。

      (3)软件架构是可传递和可重用的模型。架构体现了一个相对来说比较小又可理解的模型。架构级的重用意味着架构的决策能在具有相似需求的多个系统中发生影响,这比代码级的重用要有更大的好处。

      2.软件架构风格

      软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式(Idiomatic Paradigm)。架构风格定义了一个系统家族,即一个架构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。按这种方式理解,软件架构风格定义了用于描述系统的术语表和一组指导构件系统的规则。

      Garlan和Shaw对通用软件架构风格进行了分类,他们将软件架构分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格,其中,数据流风格包括批处理序列和管道/过滤器,调用/返回风格包括主程序/子程序、数据抽象和面向对象、层次结构,独立构件风格包括进程通信和基于事件的隐式调用(事件驱动的系统),虚拟机风格包括解释器和基于规则的系统,仓库风格包括数据库系统、黑板系统和超文本系统。限于篇幅,本节简单介绍其中常用的几种软件架构风格。

      (1)管道/过滤器。在管道/过滤器风格中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。此风格特别重要的过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个典型的管道/过滤器架构的例子是以Unix shell编写的程序。Unix既提供一种符号,以连接各组成部分(Unix的进程),又提供某种进程运行机制以实现管道。另一个著名的例子是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的输入。

      (2)面向对象。面向对象风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例。

      (3)基于事件的隐式调用。基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。从架构上说,这种风格的构件是一些模块,这些模块既可以是一些过程,又可以是一些事件的集合。过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。

      (4)层次结构。在层次结构的系统中,每一层为上层服务,并作为下层的客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的),连接件通过决定层间如何交互的协议来定义。这种风格支持基于可增加抽象层的设计。这样,允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。例如,常见的C/S结构和B/S结构就是典型的分层系统架构风格。

      (5)数据库系统。数据库系统是仓库风格最常见的形式。在数据库系统中,构件主要有两大类,一类是中央共享数据源,保存当前系统的数据状态;另一类是多个独立处理单元,处理单元对数据元素进行操作。

      (6)超文本系统。超文本系统中出现的构件以网状链接方式相互连接,用户可以在构件之间进行按照人类的联想思维方式任意跳转到相关构件。超文本是一种非线性的网状信息组织方法,它以结点为基本单位,链作为结点之间的联想式关联。超文本系统通常应用在互联网领域。


    返回目录:信息系统集成专业技术知识知识点精讲汇总


    希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程,多样的培训方式包括在线辅导面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取