软件体系结构概述

软件体系结构概述

1.软件的本质特征、软件工程与软件体系结构之间的关系

如何设计、描述、评价软件的结构是软件开发过程中的重要内容,也是软件体系结构研究的核心内容。

软件 = 程序 + 数据 + 文档

  • 程序:计算机可以接受的一系列指令,运行时可以提 供所要求的功能和性能。
  • 数据:使得程序能够适当地操作信息的数据结构。
  • 文档:描述程序的研制过程、方法和使用的图文资料

2.软件危机的表现及原因

软件的本质特性:复杂性、一致性、可变性、不可见性等特性,其结果导致在60年代软件开发过程变得难以控制,开发团队如同在焦油坑中挣扎的巨兽,即所谓的软件危机

为了解决软件危机,两大主流思想应运而生:

形式化的方法
软件工程的思想:这个思想的引入曾经极大地缓解了软件危机。(1968年NATO会议)

**软件危机(software crisis)😗*软件开发和维护过程中遇到的一系列严重问题。

软件危机的表现:{大括号里面是原因}

软件成本日益增加

开发进度难以控制{没有系统的设计,软件需求需求管理混乱}

软件质量差{开发人员的不专业,技术不成熟}

软件维护困难{未遵循软件开发规范,设计随意高耦合性,牵一发动全身}

软件工程:较低的开发成本;按时完成开发任务并及时交付

实现客户要求的功能

具有良好的性能、可靠性、可扩展性、可移植性;

软件维护费用低


3.软件体系结构的核心设计内容、定义、基本组成要素、软件体系结构的发展史

  1. 软件系统设计的5个核心内容:

    体系结构设计
    模块设计(对象或类设计)
    用户界面设计
    数据库设计
    数据结构和算法设计(详细设计)
    
  2. 定义

    软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。
    
  3. 基本组成要素

    构件、连接件、约束
    
  4. 软件体系结构发展史

    
    

问题定义——需求开发——软件设计——软件构造——软件测试

面向服务:在应用表现层次上将软件构件化,即应用业务过程由服务组成,而服务由构件组装而成。

面向构件:寻求比类的梨度更大的且易于复用的构件,期望实现软件的再工程。

面向对象:以类为基本程序单元,对象是类的实例化,对象之间以消息传递为基本手段。

面向过程:以算法作为基本构造单元,强调自顶向下的功能分解,将功能和数据进行一定程度的分离。

4.软件体系结构和软件需求的关系:

体系结构实意软件需求的实现为设计蓝图,软件需求,尤其是非功能需求,对软件体系结构具有关键性的塑性作用。

5.软件体系结构和详细设计的关系:

详细设计是针对 未展开模块的局部设计 只能实现,不能更改体系结构中规定的模块的对外接口和外部行为;

其必须为详细设计提供可操作的指导和充分的约束

6.软件体系结构的设计目标:

可重用性:复用已经实现了的体系结构,或提供可重用资产
可扩展性:增加新的功能
可改变性:降低耦合性,适应于需求变更
简单性:复杂问题简单化,让工程易于开发人员理解和实现
有效性:体现早期设计决策,展现系统满足需求的能力

7.构件复用

**1.**传统工业的标准件的复用;{螺丝钉,钢材等}是很好的复用提高了效率

2.软件的复用 ——可重用构件**

​ 指两次或多次不同软件开发过程中重复使用相同或相近软件元素的过程。

​ **软件元素:**程序代码、测试用例、设计文档、设计过程、需求分析文档和领域分析知识。

​ 软件重用不仅是对程序的重用,它包括对软件生产过程中任何活动所产生的成品的重用。如:项目 计划、可行性报告、需求定义、分析模型、详细说明、源程序和测试用例等等。(聪明的抄抄改改)

能复用的构件也叫可重用构建

构件具有多种形态:类、函数、功能模块、文档、框架、设计模式、测试用例等
构件具有多种层次:分析件、设计件、代码件、运行件等
构件需要多方面描述:名称、属性、对外接口、所需接口等
构件的特点:接口与实现分离,通过接口提供服务或进行彼此交互,接口不依赖于具体实现

3.软件重用的级别:

代码的重用<<<<<<<<<<<设计结果的重用<<<<<<<<<<<<<<<分析结果的重用(低到高)


代码的重用:目标代码和源代码的复用.连接和绑定,OLE(对象链接及嵌入)


设计结果的重用:受实际环境影响小,可重用机会多,所需修改少


分析结果的重用:可被重用的分析结果是针对问题域的某些事物或某些问题的抽象程度更高的解法。受设计技术及实现条件的影响很少

4.软件重用的优点

(1)提高软件生产率,降低软件生产代价;    
(2)提高软件质量;
(3)互操作性好;
(4)推动标准化;
(5)支持原型开发。

5.软件系统典型的复用设计思路

首先确定系统的体系结构,定义系统中的构件及构件间的交互。
然后细化构件的接口和内部结构,形成条件规约。
最后根据构件规约查找可复用构件资产或新开发构件组装形成系统。

6.构件的开发与构件库

开发构件:当一个构件通用性很高的时候,也不能满足不同需求和不同的运行环境,那么就得改,所以在开发构件的时候就应该为构件的修改和调整埋下伏笔。这样构件的灵活,重用,扩展,改变性机会显著提高,这也是软件体系结构的设计目标

构件库(Component Library):对可重用构件的存储管理

构件库系统:构建的存储、管理、检索、以及库的浏览和维护{分类方法和检索方法}

7.构件的分类方法-构件库的管理

  1. 关键字分类法

    将应用领域的概念按照从抽象到具体的顺序逐次分解为树状或有向无回路图结构,每个概念用一个描述性的关键字表示

  2. 刻面分类法

    一个刻面描述构件某一个方面的特征。刻面分类则是从不同的侧面对构件进行分类,每一种分类方式称为一个刻面。不同的刻面根据其重要性可以设置不同的优先级。

  3. 超文本组织法

    所有构件必须辅以详尽的功能或行为说明文档,说明中出现的重要概念以网状链接方式相互连接。

8.构件的检索方法-构件库的管理

构件库中检索一个构件和在数据库中检索一个记录是不同的。
构件库检索的不确定性带来两种相互矛盾的结果:

检索的结果可能是一个较大的构件集合,要从中找到所需的构件仍然很费力;

检索得到的集合没有把真正需要的构件包括在内。
解决方法:
(一)一般构件库系统能对提出的检索条件作广义解释。
 建立同义词对照表,例如“商品销售”、“售货”、“卖货”看作一组同义词;
建立近意词对照表,例如把“商业”、“商场”、“连锁店”看作一组近意词。
系统首先匹配同义词,再匹配近意词,都可以被包括到广义结果集合中。

(二)使检索得到的构件集合尽可能不包括对用户无用的构件。
  增加更多的刻面与构件属性:较多的刻面和属性值,将得到更小的子集合文集,减轻最终发现和确认所需构件的难度;
建立构件关键词:根据构件内容提炼关键词,如同学术论文的关键词,反映有关构件内容的一些主要信息。
例如,找功能构件的关键词有“压入”、“弹出”、“后进先出”等等。如果通过刻面和构件属性得到的构件子集较大,可用关键词作进一步的检索,以缩小搜索范围。

9.基于构件的开发

用这种组装技术时,开发人员首先应对目标软件系统进行功能分解,将系统分解为强内聚、松耦合的功能模块。然后根据各模块的功能需求提取构件,对它进行适应性修改后再挂接在上述功能分解框架中。

库中的构件以子程序/过程/函数的形式出现,并且接口说明必须清晰。
采用子程序调用和参数传递的方式将构件组装起来。

先根据当前软件问题的核心数据结构设计出一个框架。
再根据框架中各结点的需求提取构件并进行适应性修改,
最后将构件逐个分配至框架中的适当位置。

构件的组装方式仍然是传统的子程序调用与参数传递。这种组装技术也要求库中构件以子程序形式出现,但它所依赖的软件设计方法不再是功能分解,而是面向数据的设计方法,例如Jackson系统开发方法。

10.构件模型与实现

构件模型:
是为开发者定义软件构件而建立的体系结构和API集,使开发者可通过软件构件的动态组合来建立应用系统。
以形式化方式描述了构件的结构、语义和非功能特性,是分析和评价构件行为和性能的依据。
构件模型 = 构件+容器
构件:具有可重用特性的基本软件部件
容器:用于存放、管理构件,支持构件的执行和构件间的 交互
开发构件模型的目的:
重用,高层开发,通过工具进行自动化开发,简化开发过程。

11.工业界成熟的构件实现模型

CORBA(公共对象请求代理体系结构)   OMG
为解决分布式环境下不同硬件设备和软件系统互联,增强网络间软件的互操作性而提出的。
是最完整、最清晰,跨平台最多的构件模型(大而全,互操作性和开放性非常好)
缺点: 庞大而复杂,并且技术和标准的更新相对较慢
EJB(Enterprise javaBean):一种基于Java的构件标准
用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构
RMI(Remote Method Invocation)
远程方法调用——>JavaBean——>J2EE(EJB)
能在开发工具中被可视化操作的、可重用的软件构件
COM/COM+/DCOM模型
- 微软开发构件对象模型,提供了运行于Windows操作系统之上的单个应用中使用不同厂商生产的对象的规约。 
- 包括规范和实现两部分。规范部分定义了构件和构件之间通信的机制,不依赖于任何语言和操作系统;COM库是实现部分。
- COM平台效率比较高,有一系列相应的开发工具支持,应用开发相对简单
--COM的跨平台性较差

Web Service模型
- 以HTTP协议和XML语言为基础,类似于CORBA或RPC的一种新的分布式应用模型。
- Web Service具有通用、可交互的优势。
微服务

构件、构件模型、基于构件软件开发过程的理解

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值