软件体系结构复习

软件体系结构 原理、方法与实践(第三版 张)

第一章

软件危机的表现和产生原因?软件危机的特征

表现:

1)软件成本日益增加:开发、部署和应用成本高

2)开发进度难以控制:无法按时完成

3)软件质量差:错误率高,无法满足用户需求,没有生命力

4)软件维护困难:成本高,维护效果不理想,还有可能有潜在错误

产生原因:

1)用户要求不明确

2)缺乏正确的理论引导

3)软件规模越来越大

4)软件复杂度越来越高

软件危机与体系结构之间关系

20世纪60年代的软件危机使得人们开始重视软件工程的研究.起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大,越来越复杂,整个系统的结构和规格说明显得越来越重要.在此背景下,人们认识到对软件体系结构系统进行深入研究将成为提高软件生产率和解决软件维护问题的新的最有希望的途径。

即软件危机的出现导致人们开始重视对软件工程的研究,随着系统规模的越来越大,人们也开始意识到对软件体系结构研究的重要性。

P27题4 基于构件的软件开发的优势,面临哪些挑战和困难

优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用困难和挑战:没有可依据的参考,可用资源和环境缺乏,开发难度高,而各方面需求增长速度与日剧增,更新和升级的跟进是一个不小的挑战.此外,在同一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问题

挑战和困难

(1)在同一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问题;

(2)采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场上的竞争力;(3)第三方的构件开发商可能歇业,这会使购买的构件失去维护服务。这些都是在购买第三方构件进行软件开发时无法回避的问题,因此需要对这些风险进行充分的估计。

构件与重用的关系与定义

1、重用定义:重用是指在两次或多次不同的软件开发过程中,重复使用相同的或者相近软件元素的过程;

2、构件定义:具有一定的功能,能够独立工作或者能够同其他构件装配起来进行协调工作的程序体;

3、两者关系:要真正解决软件危机,就要实现软件的工业化生产,其中构件是核心和基础,重用是必需的手段。构件开发的目的是重用。重用技术的基础是构件。只有存在大量的可重用的构件,才能有效使用重用技术。

获取构件的主要途径

1、在现有的构件中搜寻,直接使用或修改后使用
2、通过遗留工程,将有重用价值的构件重用后使用
3、从市场上购买现成的商业构件
4、开发新构件

P27 题7 软件体系结构的定义众多,你是如何理解软件体系结构的(意义)?软件体系结构在软件系统中有什么作用?

       软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。 

作用: 

(1)体系结构是风险承担者进行交流的手段。软件体系结构代表了系统的公共的高层次的抽象。这样,系统的大部分有关人员(即使不是全部)能把它作为建立一个互相理解的基础,形成统一认识,互相交流。 体系结构提供了一种共同语言来表达各种关注和协商,进而对大型复杂系统能进行理智的管理。这对项目最终的质量和使用有极大的影响。

 (2)体系结构是早期设计决策的体现:

1)软件体系结构明确了对系统实现的约束条件;

2)软件体系结构决定了开发和维护组织的组织结构;

3)软件体系结构制约着系统的质量属性;

4)通过研究软件体系结构可能预测软件的质量;

5)软件体系结构使推理和控制更改更简单;

6)软件体系结构有助于循序渐进的原型设计;

7)软件体系结构可以作为培训的基础。

P27题8 程序结构、软件结构和软件体系结构的区别和联系

       程序结构指的是软件中的一个程序的模块及其相互关系;

软件结构指的是组成某个或某类软件的模块及其相互关系;

软件体系结构指的是:构成软件系统的元素的描述、元素之间的相互作用、元素的集成模式及模式约束,是一种结构、行为和属性的高级抽象。

第二章

4+1模型有些视图组成,各自的作用的是什么

       逻辑视图:设计的对象模型

       进程视图:捕捉设计的并发和同步特征

       物理视图:描述软件到硬件的映射,反映了分布性特性

       开发视图:描述了在开发环境中软件的静态组织结构

       架构的描述(场景视图):所作的各种决定围绕着以上四个视图来组织,然后用一些场景和用例来说明。

用自己的语言介绍4+1模型

       “4+1”的视图模型是Kruchten于1995年提出的用于描述软件体系结构的方式,主要用5个不同的视图:逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件体系结构的全部内容。

软件体系结构在软件生命周期中的地位

       软件体系结构是必需的,软件体系结构是贯穿于软件研发的整个生命周期的系统开发、运行、维护所实施的全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系,软件体系结构的生命周期模型为软件生命周期模型提供了很好的结构依据和参考,也为其构建了很好的开发方式。

软件体系结构的生命周期模型(说明)

需求分析阶段,建立软件体系结构阶段,设计阶段,实现阶段;

软件体系结构的生命周期描述了软件研发的整个过程中的系统开发、运行、维护所实施的全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系。包括SA的非形式化描述;SA的规范描述和分析;SA的求精与验证;SA的实施;SA的演化和扩展;SA的提供、SA的评价和度量;SA的终结。

网上:(1)以自然语言进行软件结构的非形式化描述,(2)接着运用合适的形式化数学理论模型对上一阶段的非形式化描述进行规范定义,从而得到软件形式结构的形式化规范描述。(3)对设计好的软件体系结构进行验证和求精,直到不需要进行求精验证时,(4)转入软件体系结构的实施。在此阶段将软件结构实施于系统设计中,并将其结构的构件和连接件有机组织在一起。(5)判断软件体系结构是否需要扩展,演化。需要从则重复以上步骤,(6)否则对该体系结构进行评价、度量,(7)转入终结阶段。

第三章

特定领域软件体系结构DSSA,怎么理解

       DSSA描述了领域中各个应用的共同特征和动态行为

       DSSA是作用于领域中不同应用的设计蓝图

       DSSA的定义

DSSA是软件构件的集合,以标准结构组合而成,对于一种特殊类型的任务具有通用性,可以有效地,成功地用于新应用系统的构件

              DSSA是一个特定问题领域中支持一组应用的领域模型、参考需求、参考体系结构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成。

       特定领域软件体系结构的必备特征

1)一个严格定义的问题域和/或解决域

2)具有普遍性,使其可以用于领域中某个特定应用的开发

3)对整个领域的合适程度的抽象

4)具备该领域固定的、典型的在开发过程中可重用元素

功能覆盖的范围角度有两种理解DSSA中领域的含义的方式:

垂直域:定义了一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件体系结构

水平域:定义了在多个系统和多个系统族中功能区域的共有部分,在子系统级上涵盖多个系统族的特定部分功能,无法为系统提供完整的通用体系结构

       DSSA的基本活动

              领域分析

这个阶段的主要目标是获得领域模型。领域模型描述系统之间的共同的需求

领域设计。

这个阶段的目标是获得DSSA。DSSA描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。

领域实现

这个阶段的主要目标是依据领域模型和DSSA开发和组织可重用信息。这些可重用信息可能是从现有系统中提取得到,也可能需要通过新的开发得到。

       DSSA的建立过程分为五个阶段:

1)定义领域范围:本阶段的重点是确定什么在感兴趣的领域中及本过程到何时结束。这个阶段的一个主要输出是领域中的应用需要满足一系列用户的需求

2)定义领域特定的元素:本阶段的目标是编译领域字典和领域术语的同义词词典。在领域工程过程的前一个阶段产生的高层块图将被增加更多的细节,特别是识别领域中应用间的共同性和差异性

3)定义领域特定的设计和实现需求约束:本阶段的目标是描述解决空间中有差别的特定。不仅要识别出约束,并且要记录约束对设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论

4)定义领域模型和体系结构:本阶段的目标是产生一般的体系结构,并说明构成它们的模块或构件的语法和语义

5)产生、搜集可重用的产品单元:本阶段的目标是为DSSA增加构件,使它可以被用来产生问题域中的新应用

DSSA的建立过程是并发的、递归的和反复进行的。该过程的目的是将用户的需求映射为基于实现限制集合的软件需求,这些需求定义了DSSA。

用基本软件体系结构风格分析问题(给图分析风格和要点)猜测

       1、经典软件体系结构风格

1.1、管道与过滤器:每个构件有一组输入输出,构件读取输入流,经内部处理产生输出流,其中构件被称为过滤器,连接件被称为管道;

1.2、数据抽象和面向对象系统:在数据抽象和面向对象的基础上,将数据的表示方法和相应操作封装在一个抽象数据类型或对象中。其中构件是对象;

1.3、基于事件的系统:构件不会直接调用一个过程,而是触发或者广播一个或多个事件。事件包含了系统中其他构件的过程注册信息,事件的触发会导致另一模块中的过程调用,也被称为隐式调用。其中构件是模块;

1.4、分层系统:将系统组织成一个层次结构,每一层为其上层服务,并作为其下层的客户,层次系统风格的的体系结构一般包括核心层、基本工具层和用户系统层。

1.5、仓库系统:仓库风格有两种不同的构件:中央数据结构和独立构件,前者说明当前状态,后者在中央数据存储上执行。其控制原则的不同又分为传统型数据库和黑板系统。区别在于触发进程执行选择的对象,前者是输入流中某类时间,后者是中央数据结构的当前状态。

1.6、黑板系统:一般应用于信号处理领域和松耦合代理数据共享存取,由知识源、黑板数据结构和控制组成。

1.7、C2风格:通过连接件绑定在一起,按照一组规则运作的并行构件网络,其中构件和连接件都有一个顶部和底部,构件的顶部和底部与连接件的底部和顶部相连,构件不能与连接件直接相连,一个连接件可以和任意构件、连接件相连,连接件之间连接时,必须顶部和底部相连。

2、C/S风格:由数据库服务器、客户应用程序和网络三部分组成,分为表示层和数据层;

3、三层C/S风格:在C/S基础上加入了应用服务器,增加了应用层;

4、B/S风格:由浏览器、web服务器、数据库服务器组成;

5、CORBA风格:即公共对象请求代理风格;

6、正交软件体系结构:由组织层和线索的构件构成,其主要特征是由n个完全不同功能的线索和m个不同抽象的层组成,线索之间相互独立,系统有顶层的公共驱动层和底层的公共数据结构。

7、基于层次消息总线:即 HMB,基于层次消息总线、支持构件的分布和并发,构件之间通过消息总线进行通信;

8、异构结构风格:将不同的体系结构组合起来形成的风格;

9、互联系统:即SASIS,系统可以分为若干不同的部分,每个部分作为单独的系统独立开发,整个系统通过一组互相系统实现,体现整体性能称为上级系统,代表整体的一部分称为从属系统;

10、DSSA:在一个特定应用领域中为一组应用提供组织结构参考的标准构件体系结构。

第四章

软件体系结构描述方法(p122 题1)(p100页)

(1)图形表达工具,采用矩阵和有向线段来代表构件和连接件;

(2)模块内连接语言(MIL),将一种或几种传统程序设计语言的模块连接起来;

(3)基于软构件的系统描述语言(PCL),将软件系统描述成一种是由许多以特定形式相互作用的特殊软件实体构造组成的组织或系统;

(4)软件体系结构描述语言(ADL),参照传统的程序设计语言的设计和开发经验,重新设计、开发和适用针对软件体系结构特点的专门的软件体系解雇描述语言。

第五章

Uml有哪些图?各类图的特点(P147 题5)软件体系结构可以通过UML直接进行描述,请说明UML包括哪些图,以及各自的作用是什么

用例图:描述一组用例、参与者及它们之间的关系;

类图:描述一组类、接口、协作和它们之间的关系;

对象图:描述一组对象及它们之间的关系;

交互图:表示各组对象如何依某种行为进行协作的模型,包含顺序图、通信图、定时图和交互概览图;

顺序图:由一组对象或角色以及它们之间可能发送的消息构成,用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序;

通信图:强调收发消息的对象或角色的结构组织;

定时图:强调消息跨越不同对象或角色的实际时间;

状态图:描述对象状态和事件之间的关系,通常描述单个对象的行为;

活动图:将进程或其他计算的结构展示为计算内部一步步的控制流和数据流,用来表示系统中的各种活动的次序;

交互概览图:整合活动图和顺序图的产物;

构件图:描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构;

部署图:描述对运行时的处理结点及在其中生存的构件的配置。

四层元模型 p140页(如何使用)

      UML的四层元模型结构包括元-元模型、元模型、模型和用户对象。元-元模型层定义了元模型层的规格说明语言;元模型层为给定的建模语言定义规格说明;模型层用来定义特定软件系统的模型;用户对象层用来构建给定模型的特定实例。

用例图和其他图直接的关系 题4

       用例图是对系统行为的动态描述,是从用户的角度审视软件体系结构的。它可以促进设计人员、开发人员与用户的沟通,理解正确的需求,划分系统与外部实体的界限,对系统的行为进行组织和建模时非常重要,是系统设计的起点。只有清楚了用例图,才能对后续的其他图进行描述。

第六章

XML SGML HTML的去别 p169题1

      XMLHTML

HTML是一种格式化的语言,一个HTML文本可以看作一个格式化的程序,而一段符合XML语法规范的文本则是一段数据,它的结构由其它的称为DTD的文本来描述,而它的处理则可能是任何其它支持XML的容器或程序。与XML相比的另一个不同点是,XML是一种元标记语言。XML定义了一套元句法,与特定领域有关的标记语言都必须遵守。

XMLSGML

SGML是一种用标记描述文档资料的通用语言,包含一系列的文档类型定义即DTD,但因语法的可扩展性,导致SGML庞大难学,不易使用且实现困难。因此HTML应运而生,HTML简化了SGML,只使用SGML的少量标记,且标记固定不可扩展,易学易用操作简单,但简单的语法导致无法表现复杂的形式,为了克服上述问题,XML应运而生。

XML与数据库的区别

      (1)数据库可以进行数据的海量储存,而XML主要处理数据在网上的传输标准问题。XML能够作为桥梁将数据格式输入到数据库中,也能将数据库的数据转换成其他格式;

(2)XML是文档形式,利于长期保存,可读性高,数据库是关系型数据库,某些关系表现不出;

(3)XML是存储数据的标准格式,便于网络数据传输和交互;数据库能够进行大量数据的存储和分析;

(4)XML和数据库都可以定义数据模型并存储数据,然而,XML更加通用、更加标准化

(5)XML缺少数据库具备的特性:高效的存储、索引和数据修改机制、严格的数据安全访问控制;完整的事务和数据一致性控制;多用户访问机制;触发器、完善的并发控制等,用户量大、数据集成度高以及性能要求高的数据环境中还是需要数据库来完成任务;

XML的应用范围是? 152

经常在以下情况使用:

(1)应用于客户需要与不同的数据源进行交互时;

(2)应用于将大量运算负荷分布在客户端;

(3)应用于将同一数据以不同的面貌展现给不同的用户;

(4)应用于网络代理对所取得的信息进行编辑、增减以适应个人用户的需要。

XML的编程接口?怎么选择编程接口 159

      XML的接口有DOM(文档对象模型),SAX(用于XML的简单API),JDOM(基于java的文档对象模型),JAXP(用于XML解析的java API)四种;

如何选择接口?

1、是否使用Java编写应用程序?是则使用JAXP;

2、应用程序将如何部署?如果将要作为java applet部署,则使用JDAM;

3、解析了XML文档后,是否需要多次访问这些数据?是则考虑DOM;

4、是否只需要XML源文件的少量内容?是则考虑SAX;

5、是否正在一台内存很少的机器工作?是则考虑SAX;

第七章

软件体系结构的演化、动态性、扩展的区别

      软件体系结构的动态性:指软件系统在运行时刻的体系结构变动。

      体系结构扩展:体系结构的静态修改

软件体系结构演化:由于系统的需求、技术、环境、分布等因素的变化,最终导致软件体系结构的变动;

什么是动态软件体系结构体现在哪3个方面?

(1)交互动态性,如允许在复合构件的固定连接中改变数据;

(2)结构化动态性,如允许对系统添加或删除构件或连接件;

(3)体系结构动态性,允许构件的整个配置发生改变;

对基于构建的动态结构模型的了解

又被称为CBDSAM,支持运行系统的动态更新,分为应用层、中间层和体系结构层三层。其中应用层处于最底层,包括构件连接、构件接口和执行;中间层包括连接件配置、构件配置、构建描述和执行;体系结构层位于最顶层,控制和管理整个体系结构,包括体系结构配置、体系结构描述和执行。

动态更新和局部更新和全局更新(重要) 174

CBDSAM的动态更新包括检测更新范围、更新准备工作、执行更新和存储更新,分为局部更新和全局更新。

局部更新只作用于需要更新的构件内部,不影响系统的其他部分;判断属于局部更新后,在执行更新前,需要进行局部更新的构件会发送信号以隔离自身的通信,执行更新后将再将断开的连接重新存储起来。在整个过程中不会影响其他部分的运行。

全局更新作用于需要更新的构件,仅影响更新所涉及的部分,不影响系统的其他部分。在判断属于全局更新后,体系结构配置器会对更新所涉及的连接件和构件发送更新准备信息,整个更新工作只在这些部分进行,不会影响系统的其他部分运行。

第八章

你是怎样认识SOA的?有哪些特征(得有自己的理解和认识)

       SOA是面向服务的体系结构的意思,对此,W3C,Service-architecture.com和Gartner给出了不同的定义,SOA是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)模型的方法。由于SOA考虑到了系统内的对象,所以虽然SOA是基于对象的,但是作为一个整体,它却不是面向对象的。

SOA的特征:(1)松散耦合;(2)粗粒度服务;(3)标准化接口。

Web服务的核心技术以及作用(三要素)p220题3

1):底层传输层,主要负责消息的传输机制。

2):服务通信协议层,服务通信协议层主要是以一种统一的方式描述并定义服务之间进行通信传输所需的技术标准。

3):服务描述层,主要以一种统一的方式描述服务的接口和消息交换方式。

4):服务层,主要功能是将遗留系统进行包装,并通过发布的WSDL接口描述被定位和调用。

5):业务流程层,主要功能是支持服务发现,服务调用和点到点的服务调用,并将业务流程从服务的底层调用抽象出来。

6):服务注册层,主要功能是使服务提供者能够通过WSDL发布服务定义,并支持服务请求者查找所需的服务信息。

三个构成元素为:服务提供者、服务请求者、服务注册中心

三个核心协议:简单对象访问协议SOAP;统一描述、发现和集成协议UDDIWeb服务描述语言WSDL

简述面向服务体系结构的设计原则 P220题5 (p190页)

      (1)明确定义的接口,服务定义必须长时间稳定;

(2)自包含和模块化,实现服务的功能实体完全独立自主;

(3)粗粒度,服务数量不应太多;

(4)松耦合,确保服务请求者可见的是服务的接口;

(5)互操作性、兼容和策略声明,确保服务规约的全面和明确。

第九章

(结合第九章,技术发展的驱动力是什么?P232题2)

为什么使用RIA技术 p232 题1

       RIA利用相对健壮的客户端描述引擎,这个引擎能够提供内容密集、响应速度快和图形丰富的用户界面。RIA的另一个好处在于,数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面。

第十章

软件体系结构的可靠性从哪些方面体现 P247题1后半 (p234页)

可靠性是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。分为两个方面:(1)容错:在规定的条件下,在规定的时间内,软件不引起系统失效的概率;(2)健壮性:在规定的时间周期内,在所述条件下程序执行所要求的功能的能力; 所以对应从容错和健壮性进行评估,以判断软件体系结构的可靠性。

为什么进行软件体系结构的分析 P247题2 (p244页)

因为风险评估是一个基于能够通过定量的方法对软件产品属性进行的度量,它对任何一个软件风险管理计划都是一个重要的过程, 风险评估能够对需要进行详细检测的复杂模型进行验证得到潜在的模型问题和测试效果,有利于开发阶段的后期评估。一般的方法有动态方法、构件依赖图等。一般的风险分析步骤是:体系结构风险建模、复杂性分析、严重性分析、开发可靠性风险因子、建立CDG和通过算法进行风险评估和分析。

如何理解基于软件体系结构的软件测试

软件测试是困难、花销巨大的工作,但在软件开发过程中是一项非常重要的工作。怎样将形式化方法与软件测试技术结合起来是软件测试研究的重点。基于体系结构的软件测试和传统的软件测试一样,需要研究测试内容、测试准则、测试用例、测试充分性、测试方法等。

测试准则被定义为:测试应该覆盖所有的构件及各个构件的接口、各个连接件的接口、构件之间的直接连接、构件之间的间接连接。

软件体系结构的测试过程可以分为单元测试、集成测试和系统测试

第十一章

三种评估方式的优缺点和特征 p270题2

      1.基于调查问卷或检查表的评估方式:调查问卷是一系列可以应用到各种体系结构评估的相关问题,这些问题可能涉及体系结构对设计决策,有些问题涉及体系结构的文档,有的问题针对体系结构描述本身细节问题等。检查表中也包含一系列比调查问卷更细节和具体的问题,它们更趋向于考察某些关心的质量属性。这一评估方法比较灵活自由,可评估多种质量属性,也可以在软件体系结构设计的多个阶段进行。

2.基于场景的评估方式:场景是一系列有序使用或修改系统的步骤。基于场景的方式由SEI首先提出并应用在体系结构权衡分析方法和软件体系结构分析方法中,这种软件体系评估方式分析软件体系结构对场景也就是对系统对使用或修改活动的支持程度,从而判断该体系结构对这一场景所代表对质量需求对满足程度。

3.基于度量的评估方式:度量是指为软件产品对某一属性所赋予对数值。此评估技术涉及3个基本活动:首先需要建立属性和质量之间的映射关系,然后从软件体系结构文档中获取度量信息,最后根据映射原则分析推导出系统对某些质量属性。

第十二章

什么是设计模式、什么是中间件

      设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。对通用设计问题的重复解决方案。

      中间件是处于系统软件和应用软件之间的一类软件。

如何理解中间件

      优点:

它使设计师集中设计与应用有关的部分,大大简化了设计和维护工作。

功能:

1.负责客户机与服务器之间的连接和通信,以及客户机与应用之间的高效率通信机制。

2.提供应用层不同服务之间的互操作机制没,以及应用层与数据库之间的连接和控制机制

3.提供一个多层体系结构的应用开发和运行的平台,以及一个应用开发框架,支持模块化的应用开发。

4.屏蔽硬件、操作系统、网络和数据库的差异。

5.提供应用的负载和高可用型、安全机制和管理功能,以及交易管理机制,保证交易的一致性。

6.提供一组通用的服务区执行不同的功能,避免重复的工作和是应用之间可以协作。
分类:

采用自底向上的方式来划分,可分为底层中间件、通用型中间件和集成性中间件三大层次。

主要的中间件:RPCORBRMIRMI-IIOP,MOM, 事务处理监控器。

简要说明 基于体系结构的软件设计的生命周期模型及设计步骤 P333题4

ABSD方法的生命周期介于需求分析和实际构件设计之间,在该方法中,必须记录所有做出决策以及这些决策的原理,以利于决策的可跟踪性和决策评审。其输入包含抽象功能需求、用例、抽象的质量和业务需求、质量因素、体系结构选项和约束组成。

设计模式于软件体系结构之间的关系

设计模式的层次

      (1)面向对象模式:由最底层的类与对象及其关系区分;

(2)代码模式:有助于解决某种面向对象程序设计语言的特定问题;

(3)框架应用模式:用一种不很规范的方式描述了如何应用框架来解决特定的问题;

(4)形式合约:是一种描述框架设计的方法,强调组成框架的对象间的交互关系。过于抽象,仅在小规模程序中使用。

第十三章

什么是软件产品线?你是怎么理解的?

      软件产品线就是在一个公共的软件资源集合基础上建立起来的共享同一个特性集合的系统集合。

双生命周期模型

双生命周期模型是软件产品线的一种过程模型。分成领域工程和应用工程这两个重叠的生命周期,其中领域工程的主要任务是领域分析、领域设计和领域实现,应用工程的主要任务是需求分析、系统设计和系统实现。

应用工程将产品线资源不能满足的需求返回给领域工程,以检验是否将之合并到产品线的需求中。领域工程从应用工程中获得反馈或者结合新产品的需求进入有一次周期性发展。此为产品线的演化。

你可能感兴趣的:(软件体系结构,架构)