软件产品线体系结构

合集下载

软件体系结构设计及其实现

软件体系结构设计及其实现

软件体系结构设计及其实现随着信息技术的高速发展,软件已经成为现代社会不可或缺的一个组成部分。

在软件的开发过程中,软件的体系结构设计非常关键。

软件体系结构设计是软件开发过程中的第一步,也是最重要的一步。

好的软件体系结构设计可以为整个软件开发过程奠定良好的基础,也可以为软件的后期维护和升级提供更多的便利。

但是,软件体系结构设计并不是一件简单的事情,需要考虑多方面的因素,并且需要综合各种专业知识。

一、软件体系结构设计的定义和特点软件体系结构是指在系统设计中,对软件系统整体组织结构和各个组成部分之间的关系,进行的系统性设计和描述。

软件体系结构不仅是设计软件系统的框架,也是实现软件系统的基础,同时也是对软件系统进行管理、维护和升级的重要基础。

软件体系结构设计的特点包括以下几点。

(一)高度抽象软件体系结构设计是对软件系统的整体组织结构和各个组成部分之间的关系进行的设计和描述。

因此,软件体系结构设计需要具有高度抽象的特点。

软件体系结构设计不涉及具体的编程实现细节,而是从整体的角度考虑问题,对系统进行宏观把握。

因此,软件体系结构设计需要考虑到更多的概念和模型,需要进行更为有意义的抽象。

(二)多样性在软件体系结构设计中,考虑到软件的应用范围和需求,软件体系结构的模型和模式也有很多种不同的选择。

不同的软件体系结构设计模式都有各自的优缺点,因此,软件开发过程中需要进行充分的需求分析和规划,才能够选择合适的设计模式。

(三)可分析性软件体系结构设计是软件开发的基础,需要保证软件系统的稳定和可靠。

因此,在进行软件体系结构设计时,需要考虑到各种约束条件和因素。

设计出来的体系结构需要具有可分析性,这样才能够进行系统化的测试和验证,确保软件的质量。

二、软件体系结构设计的要素软件体系结构设计需要考虑到很多不同的要素,下面我们来看一下主要的几个要素。

(一)模块化设计模块化设计是软件体系结构设计中最基础的一点,也是最重要的一点。

将复杂的软件分为若干个模块,使得各个模块之间相互独立,可以方便地进行设计、开发、测试和维护。

软件体系结构最新总结

软件体系结构最新总结

软件体系结构最新总结1.软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.软件危机的表现:(重点)1软件的成本日益增长2 开发进度难以控制3 软件质量差,4 软件维护困难3.软件危机的成因:1用户需求不明确2 缺乏正确的理论指导3 软件规模越来越大4 软件复杂度越来越高4.软件工程三个要素:方法、工具和过程--- (重点)5.软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。

6.软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识7.构件:指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统。

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

8.构件分类方法归纳为三大类:关键字分类法,刻面分类法和超文本组织方法--- (重点)9.构件库系统是一个开放的公共构件共享机制,任何使用者都可以通过网络访问构件库。

--- 判断10. 软件体系结构(software architecture --SA )记住英语单词及缩写(重点)定义:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。

11. 软件体系结构的意义:--- (简答)1)体系结构是风险承担者进行交流的手段;2)体系结构是早期设计决策的体现;3)体系结构是可传递和可重用的模型12.为什么体系结构是早期设计决策的体现--- (简答)1)软件体系结构明确了对系统实现的约束条件;2)软件体系结构决定了开发和维护组织的组织结构;3)软件体系结构制约着系统的质量属性;4)软件体系结构通过研究软件体系结构可能预测软件的质量;5)软件体系结构使推理和控制更改更加简单;6)软件体系结构有助于循序渐进的原型设计;7)软件体系结构可以作为培训的基础13.软件体系结构技术的发展过程经历四个阶段:-- 选择,判断(1)“无体系结构”设计阶段----- 以汇编语言进行小规模应用程序开发为特征。

四种常见的系统架构

四种常见的系统架构

软件架构(software architecture)就是软件的基本结构。

合适的架构是软件成功的最重要因素之一。

大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。

如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。

这里我列举了目前主要的4种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。

一、单体架构单体架构比较初级,典型的三级架构,前端(Web/手机端)+中间业务逻辑层+数据库层。

这是一种典型的Java Spring mvc或者Python Drango框架的应用。

其架构图如下所示:单体架构单体架构的应用比较容易部署、测试,在项目的初期,单体应用可以很好地运行。

然而,随着需求的不断增加,越来越多的人加入开发团队,代码库也在飞速地膨胀。

慢慢地,单体应用变得越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高。

下面是单体架构应用的一些缺点:复杂性高:以一个百万行级别的单体应用为例,整个项目包含的模块非常多、模块的边界模糊、依赖关系不清晰、代码质量参差不齐、混乱地堆砌在一起。

可想而知整个项目非常复杂。

每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个Bug都会带来隐含的缺陷。

技术债务:随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并且越积越多。

“ 不坏不修”,这在软件开发中非常常见,在单体应用中这种思想更甚。

已使用的系统设计或代码难以被修改,因为应用程序中的其他模块可能会以意料之外的方式使用它。

部署频率低:随着代码的增多,构建和部署的时间也会增加。

而在单体应用中,每次功能的变更或缺陷的修复都会导致需要重新部署整个应用。

全量部署的方式耗时长、影响范围大、风险高,这使得单体应用项目上线部署的频率较低。

而部署频率低又导致两次发布之间会有大量的功能变更和缺陷修复,出错率比较高。

可靠性差:某个应用Bug,例如死循环、内存溢出等,可能会导致整个应用的崩溃。

南信 软件体系结构 必考点

南信 软件体系结构  必考点

软件体系结构复习填空、判断:1.构件概念构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。

简单地说,构件是具有一定的功能,能够独立工作或能同其他构件装配起来协调工作的程序体,构件的使用同它的开发、生产无关。

构件分类方法:关键字分类法、刻面分类法、超文本组织法2.ADL的构成要素构件:是一个计算或数据存储单元,构件是计算与状态存在的场所,其自身也包含多种属性;连接件:用于建立构件间的交互以及支配这些交互规则的体系结构构造模块,它可以不与现实系统中的编译单元对应;体系结构配置/拓扑:描述体系结构的构件与连接件的连接图,它提供信息来确定构件是否正确连接、接口是否匹配、连接件构成的通信是否正确,并说明实现要求行为的组合语义。

3.动态软件体系结构概念动态性分为三类:交互式动态性、结构化动态性、体系结构动态性。

4.基于构件的动态系统结构模型:应用层、中间层、体系结构层5.Web服务模型(三种逻辑构件):一个完整的Web服务包括三种逻辑构建:服务提供者、服务代理和服务请求。

6.设计模式目录中对模式的分类根据模式的目标,可以将它们分成创建性模式、结构性模式和行为性模式。

创建性模式处理的是对象的创建过程,结构性模式处理的是对象/类的组合,行为性模式处理类和对象间的交互方式和任务分布。

7.体系结构驱动所谓体系结构驱动,是指构成体系结构的商业、质量和功能需求的组合。

它决定ABSD方法。

8.基于实现和说明的程序测试方法是否适用于对软件体系结构的测试。

不适用9.可用性概念可用性是系统能够正常运行的时间比例。

经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。

10.SEI模型SEI将产品线的基本活动分为:核心资源开发(领域工程)、产品开发(应用工程)、管理。

11.框架分类及创建方式框架有三种建立方式:自顶向下,自底向上和混合方式。

软件产品线

软件产品线

1定义:卡耐基。

梅隆大学软件工程研究所(CMU/SEI)定义为:产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定要求。

这些系统遵循一个预描述的方式,在公共的核心资源(core assets)基础上开发的。

根据这个定义,软件产品线有两个部分:核心资源和产品集合。

核心资源也称平台:产品线中所有产品共享的产品线体系结构,新设计的或通过对现有系统的再工程到底的、需要再整个产品线中系统化重用的软件构件,与这些构件相关的测试计划、测试实例,所有设计文档,需求说明书,领域模型,领域范围的定义,采用COTS的构件。

其中软件产品线体系结构和构件是最为重要的部分。

-----------------------------------------------独立软件系统的体系结构对体系结构的变化没有说明和限制,在体系结构实例化的过程中,几乎允许任意的变化。

产品线的体系结构作为所有产品共享的体系结构和各产品导出的体系结构的基础,必须对允许进行的变化进行显式的说明和限定,才能使最终的实例化结果既有共性又也个性。

-----------------------------------------------2软件产品线的建立方式1将现有产品演化为产品线在基于现有产品线体系结构的基础上,将特定产品的构件逐步地、越来越多地转换为产品线的共用构件。

从基于产品的开发慢慢转到基于产品线的开发。

优点:通过分解投资回报周期,以及对现有系统演化的维持,使得产品线的开发风险降低。

2用软件产品线代替现有产品集基本停止现有产品的开发,直接对软件产品线的核心资源开发。

遗留系统只有在符合现有体系结构和需求的情况下才可以和新的构架合作。

对于软硬件结合紧密且硬件需求差异大的现有产品集,因无法满足产品线方法对软硬件同步的需要,只能采用这种革命式的方法。

3全新产品线的演化当一个组织进入一个全新的领域时,同样有演化和革命两种方式。

软件体系结构习题答案

软件体系结构习题答案
答:层次结构将系统进行分级组织,其组织思想是:在层次结构中,每一层向上层提供服务,并作为客户向下层请求服务。分层系统的优点:
支持基于抽象程度递增的系统设计;支持功能增强;支持重用。分层系统的缺点:并不是每个系统都可以很容易的划分为分层的模式,甚至即使是层次化的,出于性能的考虑,也不得不吧一些低及或高级的功能综合起来;很难找到一个合适的、正确的层次抽象方法。
(1)
(2)
(3)应用层:处于最底层,包括构件链接,构件接口和执行中间层:包括连接件配置,构件配置,构件描述及执行体系结构层:位于最上层,控制和管理整个体系结构,包括体系结构配置,体系结构描述和执行。
1、请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:软件开发模型有演化模型、螺旋模型、喷泉模型、智能模型等。传统软件开发模型存在开发效率不高,不能很好地支持软件重用等缺点。在
b/s风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/web服务器/数据库服务器。优点(1)基于b/s体系结构的软件,
系统安装,修改和维护全在服务器端解决。(2)提供了异种机,异种网,异种应用服务的联机,联网,同意服务的最现实的开放性基础。缺点(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理能力。(2)在数据查询等响应速度上,要远远低于c/s体系结构。(3)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。
3、sis和dssa分别用在哪些场合?
答:1.dssa只对某一个领域进行设计专家知识的提取,存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结
构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个领域。
2.dssa的特定领域参考体系结构通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。

软件体系结构

软件体系结构
3、软件体系结构的定义 软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描 述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不 仅指定了系统的组织结构和拓扑结构,并且显示系统需求和构成系统元素之间的对应关系, 提供了一些设计决策的基本原理。
1、MVC(模型-视图-控制):针对用户界面 模型:核心数据封装、逻辑和功能的计算,它独立于具体的界面表达和输入/输出操作。 视图:把模型数据等信息以特定形式展示给用户。 控制:处理用户与软件的交互操作。它接受用户的输入,将输入反馈给模型,进而实现对模 型的计算控制,是使模型和视图协调工作的部件。
2、软件重用的定义 软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。 可重用软件元素越大,重用粒度越大。
7、基于事件的隐式调用的定义 基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事 件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调 用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一个模块中过程的调用。
8、基于事件的隐式调用的优缺点 优点: (1)为软件重用提供了强大的支持。 (2)为系统带来了方便。
end Attendห้องสมุดไป่ตู้e;
16、C2 对体系结构的描述 architecture MeetingScheduler is
conceptual_components Attendee;ImportantAttendee;MeetingInitiator;
connector connector MainConn is message_filter no_filtering; connector AttConn is message_filter no filtering; connector ImportantAttConn is message_filter no filtering;

【软件体系结构】 复习

【软件体系结构】 复习

第一章1. 体系结构发现、演化、重用体系结构发现解决如何从已经存在的系统中提取软件的体系结构,属于逆向工程范畴。

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

体系结构重用属于设计重用,比代码重用更抽象。

由于软件体系结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系,因而较算法更稳定,更适合于重用。

2.基于软件体系结构的软件开发方法:问题定义—>软件需求—>软件体系结构—>软件设计—>软件实现3.评价软件体系结构的方法权衡分析方法(ATAM方法),软件体系结构分析方法(SAAM方法),中间设计的积极评审(ARID方法)第二章1. 建模结构模型:研究结构模型的核心是体系结构描述语言。

以体系结构的构件,连接件和其他概念来刻画结构。

并力图通过结构来反映系统的重要语义内容。

框架模型:与结构模型类似,但不太侧重细节,而侧重于整体结构。

动态模型:是对结构和框架模型的补充,研究系统大颗粒的行为性质。

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

功能模型:认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。

功能模型可以看作是一种特殊的框架模型。

4+1视图模型:逻辑视图、进程视图、物理视图、开发视图和场景视图逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。

在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。

这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。

在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图开发视图通过系统输入输出关系的模型图和子系统图来描述。

进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。

物理视图主要考虑如何把软件映射到硬件上。

逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第10章 软件产品线体系结构 10.1 软件产品线的出现和发展
◇ 在软件工程中的地位
技术侧面 软件工程 软件体系结构
领域工程
特定领域 软体体系结构
软件产品线
应用领域
第10章 软件产品线体系结构
10.2 软件产品线概述
◇ 基本概念
◎ 将利用了产品间公共方面、预期考虑了可变性等设计的产品族称 为产品线(Weiss和Lai)。
10.4 软件产品线基本活动
◇ 产品开发
第10章 软件产品线体系结构
10.5 产品线体系结构的设计
◇ 产品线体系结构简介
◎ 软件产品线体系结构指一个软件开发组织为一组相关 应用或产品建立的公共体系结构。 ◎ 同领域模型一样,软件产品线体系结构中也可以分为 共性部分和个性部分。 ◎ 产品线体系结构是产品线核心资源的早期和主要部分, 在产品线的生命周期中,产品线体系结构应该保持相对 小和缓慢的变化以便在生命周期中尽量保持一致。产品 线体系结构要明确定义核心资源库中软件构件集合及其 相关文档。
摄象服务器体系结构
扫描服务器体系结构
光盘服务器 体系结构
Jaz服务器 体系结构
各种产品
各种产品
各种产品
各种产品
第10章 软件产品线体系结构
10.5 产品线体系结构的演化
◇ 背景介绍
NFS 文件系统框架 ISO9660 Pseudo 块设备 SCSI 硬件 存取控制 UFS FAT
第一代文件系统框架
将产品线组织分为四个工作小组:
◎ 市场人员是产品线和产品能力、客户需求之间的沟通桥梁;
◎ 核心资源组负责体系结构和其他核心资源的开发; ◎ 应用组负责交付给客户的系统的开发; ◎ 管理者负责开发过程的协调、商务计划等。
第10章 软件产品线体系结构
10.2 软件产品线概述

SEI产品线组织结构(2)
第10章 软件产品线体系结构
10.5 产品线体系结构为适应应用的规模增大、复杂度提高,软件技 术不断发展,相继出现了中间件技术、软件产品线 等。 ◎ 体系结构风格是一个使产品和产品线具有良好 的可移植性的结构,产品和产品线通过最小的修改 就可移植到一个新的平台上。
第10章 软件产品线体系结构
10.3 框架和应用框架技术
框架是封装了特定应用族抽象设计的抽象类的集 合,框架又是一个模板,关键的方法和其他细节 在框架实例中实现 。 应用框架又称为通用应用,是为一个特定应用领 域的软件系统提供可重用结构的一组相互协作的 类的集合。 ◎ 黑盒框架 ◎ 白盒框架
第10章 软件产品线体系结构
第10章 软件产品线体系结构
10.2 软件产品线概述
◇ 软件产品线的过程模型
3、三生命周期模型
第10章 软件产品线体系结构
10.2 软件产品线概述
◇ 软件产品线的组织结构
管理者
体系结构组
配置管理组
核心资源组
产品组1
产品组2
产品组n
第10章 软件产品线体系结构
10.2 软件产品线概述

SEI产品线组织结构(1)
图注:
新构件
修改了的构件
第10章 软件产品线体系结构
10.2 软件产品线概述
◇ 软件产品线的过程模型
1、双生命周期模型
现有系 统需求 领域工程 领域分析 领域设计 领域实现
领域需求模型
领域体系
领域可重用构 件和生成器
新系统 需求
应用工程 新系统 需求分析 系统设计 系统实现
第10章 软件产品线体系结构
10.2 软件产品线概述
软 件 体 系 结 构
清华大学出版社
关 于 教 材
◇ 出版社:清华大学出版社 ◇ 作者:张友生
课 程 内 容
◇ 软件体系结构概论 ◇ 软件体系结构建模 ◇ 软件体系结构风格 ◇ 软件体系结构描述
◇ 动态软件体系结构
◇ Web服务体系结构 ◇ 基于体系结构的软件开发 ◇ 软件体系结构的分析与测试 ◇ 软件体系结构评估
设有独立核心资源小组的组织结构通常合适于至少由50到 100人组成的较大型的软件开发组织,设立独立的核心资源小组 可以使小组成员将精力和时间集中在核心资源的认真的设计和 开发上,得到更通用的资源。 另外一种典型的组织结构不设立独立的核心资源小组,核 心资源的开发融入各系统开发小组中,只是设立专人负责核心 资源开发的管理。这种组织结构的重点不在核心资源的开发上, 所以比较适合于组成产品线的产品共性相对较少,开发独立产 品所需的工作量相对较大的情况。也是小型软件组织向软件产 品线开发过渡时采用的一种方法。
新构件
修改了的构件
未改变的构件
第一代产品的第三个版本
第10章 软件产品线体系结构
10.5 产品线体系结构的演化
◇ 两代产品的各种发行版本
以太网模块 网络文件系统框架 Netware 令牌网模块 NDS NFS 网络协议框架 SMB HTTP SCSI 文件系统框架 Pseudo ISO9660
图注:
第10章 软件产品线体系结构
10.5 产品线体系结构的演化
◇ 背景介绍
NFS 文件系统框架 ISO9660 FAT-16 块设备 SCSI 硬件 Pseudo UFS 存取控制框架
第二代文件系统框架
第10章 软件产品线体系结构
10.5 产品线体系结构的演化
◇ 两代产品的各种发行版本
以太网模块 网络文件系统框架 Netware 令牌网模块 NFS SMB 网络协议框架 SCSI 文件系统框架 Pseudo ISO9660
◇ 软件产品线的过程模型
2、SEI模型
产品线开发
核心资 源开发
产品开发
管理
领域工程
应用工程
第10章 软件产品线体系结构
10.2 软件产品线概述
◇ 软件产品线的过程模型
2、SEI模型
◎ 循环重复是产品线开发过程的特征,也是核心资源开发、产品 线开发以及核心资源和产品之间协作的特征; ◎ 核心资源开发和产品开发没有先后之分; ◎ 管理活动协调整个产品线开发过程的各个活动,对产品线的成 败负责; ◎ 核心资源开发和产品开发是两个互动的过程,三个活动和整个 产品线开发之间也是双向互动的。
10.4 软件产品线基本活动
◇ 产品线基本活动
产品线开发
核心资 源开发
产品开发
管理
领域工程
应用工程
第10章 软件产品线体系结构
10.4 软件产品线基本活动
◇ 产品线分析
产品计划 产品线分析
资源开发 产品开发 (资源使用)
确认机遇
决策者
产品线开发
最终用户
产品
产品线开 发人员
第10章 软件产品线体系结构
从整体来看,软件产品线的发展过程有三个阶段,开发阶段、 配置分发阶段和演化阶段。
引起产品线体系体系结构演化的原因:产品线与技术变化的 协调、现有问题的改正、新功能的增加、对现有功能的重组以允 许更多的变化等等。 产品线的演化包括产品线核心资源的演化、产品的演化和产 品的版本升级。这样在整个产品线就出现了:核心资源的新旧版 本、产品的新旧版本和新产品等。它们之间的协调是产品线演化 研究的主要问题。
◎ 产品线就是由在系统的组成元素和功能方面具有共性和个性的相 似的多个系统组成的一个系统族。
◎ 软件产品线就是在一个公共的软件资源集合基础上建立起来的, 共享同一个特性集合的系统集合(Bass,Clements和Kazman)。 ◎ 一个软件产品线由一个产品线体系结构、一个可重用构件集合和 一个源自共享资源的产品集合组成,是组织一组相关软件产品开发 的方式(Jan Bosch)。
第10章 软件产品线体系结构
10.5 产品线体系结构的演化
特定的产品线构件 框架体系结构
产品族 商业部门 需求 产品线体系结构 产品线需求 产品线 构件 产品线 构件 产品特定的代码
框架实现
产品线 构件
第10章 软件产品线体系结构
10.5 产品线体系结构的演化
◇ 背景介绍
产品线体系结构
存储服务器体系结构
◇ 软件产品线体系结构
第10章 软件产品线体系结构 10.1 软件产品线的出现和发展
◇ 出现和发展
产品线的起源可以追溯到1976年Parnas对程序族的研究。软件 产品线的实践早在20世纪80年代中期就出现。 据HP公司1996年对HP、IBM、NEC、AT&T等几个大型公司分析 研究,他们在采用了软件产品线开发方法后,使产品的开发时间减 少1.5-2倍,维护成本降低2-5倍,软件质量提升5-10倍,软件重 用达50%-80%,开发成本降低12%-15%。 软件产品线的发展得益于软件体系结构的发展和软件重用技术 的发展。
图注:
新构件
修改了的构件
未改变的构件
第一代产品的第二个版本
第10章 软件产品线体系结构
10.5 产品线体系结构的演化
◇ 两代产品的各种发行版本
以太网模块 网络文件系统框架 Netware 令牌网模块 NFS SMB 网络协议框架 HTTP SCSI 文件系统框架 Pseudo ISO9660
图注:
第10章 软件产品线体系结构
10.2 软件产品线概述
◇ 基本概念
CMU/SEI的定义:“产品线是一个产品集合,这些产品共享一个 公共的、可管理的特征集,这个特征集能满足选定的市场或任务领 域的特定需求。这些系统遵循一个预描述的方式,在公共的核心资 源(core assets)基础上开发的。”
根据SEI的定义,软件产品线主要由两部分组成:核心资源、产 品集合。核心资源是领域工程的所有结果的集合,是产品线中产品 构造的基础。也有组织将核心资源库称为“平台”。核心资源必定 包含产品线中所有产品共享的产品线体系结构,新设计开发的或者 通过对现有系统的再工程得到的、需要在整个产品线中系统化重用 的软件构件。与软件构件相关的测试计划、测试实例以及所有设计 文档,需求说明书和领域模型还有领域范围的定义也是核心资源, 采用COTS的构件也属于核心资源。产品线体系结构和构件是用于软 件产品线中的产品的构建和的核心资源最重要的部分。
相关文档
最新文档