




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件体系结构-软件产品线体系结构,课程内容,软件体系结构概论软件体系结构建模软件体系结构风格软件体系结构描述动态软件体系结构Web服务体系结构基于体系结构的软件开发软件体系结构的分析与测试软件体系结构评估软件产品线体系结构,2020/6/12,2,Mail:yrmeixue,第10章软件产品线体系结构,软件产品线与软件体系结构有着密切的关系。软件体系结构的开发是大型软件系统开发的重要环节。体系结构在软件产品线的开发中具有至关重要的作用,在这种开发生产过程中,基于同一软件体系结构,可以创建出具有不同功能的多个系统。由于软件产品组之间可以共享体系结构,所以利用一组可复用的构件,软件产品线就能有效地提高软件生产效率和质量,缩短开发时间,降低总开发水平成本。软件产品线是一个新兴的、多学科交叉的研究领域,研究内容和范围都相当广泛。,软件产品线(softwareproductline),2020/6/12,3,Mail:yrmeixue,第10章软件产品线体系结构,10.1软件产品线的出现和发展,产品线的起源可以追溯到1976年Parnas对程序族的研究。软件产品线的实践早在20世纪80年代中期就出现。据HP公司1996年对HP、IBM、NEC、ATT等几个大型公司分析研究,他们在采用了软件产品线开发方法后,使产品的开发时间减少30%-50%,维护成本降低20%-50%,软件质量提升510倍,软件重用达50%80%,开发成本降低12%15%。软件产品线的发展得益于软件体系结构的发展和软件重用技术的发展。,2020/6/12,4,Mail:yrmeixue,第10章软件产品线体系结构-出现和发展,10.1.1软件体系结构的发展,2020/6/12,5,Mail:yrmeixue,第10章软件产品线体系结构-出现和发展,10.1.2软件重用的发展,软件重用是一个降低软件系统的平均成本的主要策略和技术。它的基本思想是尽最大可能重用已有的软件资源。,1968年Mcllroy提出了软件重用的概念,产品线方法可以看作是软件复用发展的更高阶段。,1960s,子程序(subroutines)1970s,模块(modules)1980s,对象(objects)1990s,构件(components)Now,系统(Systems),软件开发的历史是螺旋上升的(从构成软件成分的抽象粒度和面向应用的角度来看),2020/6/12,6,Mail:yrmeixue,第10章软件产品线体系结构,10.2软件产品线概述,将利用了产品间公共方面、预期考虑了可变性等设计的产品族称为产品线。产品线就是由在系统的组成元素和功能方面具有共性和个性的相似的多个系统组成的一个系统族。软件产品线就是在一个公共的软件资源集合基础上建立起来的,共享同一个特性集合的系统集合。一个软件产品线由一个产品线体系结构、一个可重用构件集合和一个源自共享资源的产品集合组成,是组织一组相关软件产品开发的方式。,10.2.1软件产品线的基本概念,2020/6/12,7,Mail:yrmeixue,10.2软件产品线概述软件产品线基本概念,CMU/SEI的定义,“产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。这些系统遵循一个预描述的方式,在公共的核心资源(coreassets)基础上开发的。”,软件产品线开发四个基本特点:,过程驱动特定领域技术支持体系结构为中心,2020/6/12,8,Mail:yrmeixue,第10章软件产品线体系结构软件产品线概述,10.2.2软件产品线的过程模型,1.双生命周期模型,2020/6/12,9,Mail:yrmeixue,10.2软件产品线概述-软件产品线的过程建模,2.SEI模型,循环重复是产品线开发过程的特征,也是核心资源开发、产品线开发以及核心资源和产品之间协作的特征;核心资源开发和产品开发没有先后之分;管理活动协调整个产品线开发过程的各个活动,对产品线的成败负责;,核心资源开发和产品开发是两个互动的过程,三个活动和整个产品线开发之间也是双向互动的。,领域工程,应用工程,2020/6/12,10,Mail:yrmeixue,10.2软件产品线概述-软件产品线的过程建模,3.三生命周期模型,领域工程,应用工程,企业工程,2020/6/12,11,Mail:yrmeixue,第10章软件产品线体系结构软件产品线概述,10.2.3软件产品线的组织结构,典型产品线开发组织结构,2020/6/12,12,Mail:yrmeixue,10.2软件产品线概述-软件产品线的组织结构,SEI产品线组织结构,将产品线组织分为四个工作小组:,市场人员是产品线和产品能力、客户需求之间的沟通桥梁;核心资源组负责体系结构和其他核心资源的开发;应用组负责交付给客户的系统的开发;管理者负责开发过程的协调、商务计划等。,SEI还将客户提出的需求和对系统的反馈作为产品线组织的重要外部组织接口。,2020/6/12,13,Mail:yrmeixue,10.2软件产品线概述-软件产品线的组织结构,JanBosch产品线组织结构,开发部门:所有的软件开发集中在一个部门,每个人都可承担领域工程和应用工程中适合的任务,简单、利于沟通,适用于不超过30人的组织。商务部门:每个部门负责产品线中一个和多个相似的系统,共性资源由需要使用它的一个和几个部门协作开发,整个团体都可享用。资源更容易共享,适用于30100人的组织,主要缺点是业务部门更注重自己的产品而将产品线的整体利益放在第二位。,2020/6/12,14,Mail:yrmeixue,10.2软件产品线概述-软件产品线的组织结构,JanBosch产品线组织结构,领域工程部门:有一个专门的单位-领域工程部门负责核心资源库的开发和维护,其他业务单位使用这些核心资源来构建产品。这种结构可有效的降低通讯的复杂度、保持资源的通用性,适于超过100人的组织。缺点是难以管理领域工程部门和不同产品工程部门之间的需求冲突和因此导致的开发周期增长。层次领域工程部门:对于非常巨大和复杂的产品线可以设立多层(一般为两层)领域工程部门,不同层部门服务的范围不同。这种模型趋向臃肿,对新需求的响应慢。,2020/6/12,15,Mail:yrmeixue,第10章软件产品线体系结构软件产品线概述,10.2.4软件产品线的建立方式,软件产品线的建立需要希望使用软件产品线方法的软件组织有意识地、明显地努力才有可能成功。软件产品线的建立通常有四种方式:,2020/6/12,16,Mail:yrmeixue,第10章软件产品线体系结构软件产品线概述,10.2.5软件产品线的演化,从整体来看,软件产品线的发展过程有三个阶段,开发阶段、配置分发阶段和演化阶段。,演化的原因:产品线与技术变化的协调、现有问题的改正、新功能的增加、对现有功能的重组以允许更多的变化等等。,产品线的演化包括:产品线核心资源的演化产品的演化产品的版本升级。,新旧版本之间的协调是产品线演化研究的主要问题。,2020/6/12,17,Mail:yrmeixue,第10章软件产品线体系结构,10.3框架和应用框架技术,框架重用是一种面向领域的软件重用方式,更适用于软件产品线。,框架一般建立在同一个或相似领域中,即所要开发的软件系统要具有较强的相似性,通过框架把领域中不变或易变部分在一定时间间隔内固定下来,把易变部分以用户接口的形式保留下来,从而达到设计和代码的重用。,本节讨论的框架主要指面向对象领域中的框架(object-orientedframework),2020/6/12,18,Mail:yrmeixue,第10章软件产品线体系结构框架和应用框架技术,框架的定义,Deutsch1983:“多个抽象类和它们相关算法的集合可组成一个框架,该框架在特定应用中可以通过专用代码的添加来将具体子类组织在一起运作。框架由抽象类及其实现的操作和对具体子类的期望组成。”,框架是封装了特定应用族抽象设计的抽象类的集合,框架又是一个模板,关键的方法和其他细节在框架实例中实现。,2020/6/12,19,Mail:yrmeixue,第10章软件产品线体系结构框架和应用框架技术,应用框架,软件产品线中的框架主要指的是应用框架。,Gamma:应用框架又称为通用应用,是为一个特定应用领域的软件系统提供可重用结构的一组相互协作的类的集合。,应用框架解决的是一个领域或产品族的问题,规定了问题应该如何分解。包含了应用或子系统的设计,由一个互相协作的类或构件集合组成。可以通过集成或类的组合来创建应用。,2020/6/12,20,Mail:yrmeixue,第10章软件产品线体系结构框架和应用框架技术,框架技术基本特征,反向控制可重用性扩展性模块化和构件化,框架建立方式,自顶向下自底向上混合方式,2020/6/12,21,Mail:yrmeixue,第10章软件产品线体系结构框架和应用框架技术,框架分类,黑盒框架,白盒框架,通过构件/类的组合来支持重用和扩展。,一般使用类的继承机制实现,由未完成的类(抽象类)组成,类由一个或多个抽象接口或虚方法。,松耦合,紧耦合,具体的框架实际上都是“灰色”的,是可继承和可组合方式的结合。,2020/6/12,22,Mail:yrmeixue,第10章软件产品线体系结构,10.4软件产品线基本活动,2020/6/12,23,Mail:yrmeixue,第10章软件产品线体系结构软件产品线基本活动,1.产品线分析,产品线分析是产品线的需求工程,是商业机遇的确认和产品线体系结构的设计之间的桥梁。产品线分析强调:,通过捕获风险承担者的观点来揭示产品线需求;通过系统的推理和分析、集成功能需求和非功能需求来完成产品线需求;产品线设计师对产品线需求的可用性。,2020/6/12,24,Mail:yrmeixue,第10章软件产品线体系结构软件产品线基本活动,1.产品线分析,(1)上下文(2)风险承担者观点(3)需求建模,2020/6/12,25,Mail:yrmeixue,第10章软件产品线体系结构软件产品线基本活动,1.产品线分析,(1)上下文(2)风险承担者观点(3)需求建模,2020/6/12,26,Mail:yrmeixue,第10章软件产品线体系结构软件产品线基本活动,1.产品线分析,(1)上下文(2)风险承担者观点(3)需求建模,2020/6/12,27,Mail:yrmeixue,第10章软件产品线体系结构软件产品线基本活动,2.产品开发,2020/6/12,28,Mail:yrmeixue,第10章软件产品线体系结构,10.5软件产品线体系结构的设计,软件产品线体系结构指一个软件开发组织为一组相关应用或产品建立的公共体系结构。同领域模型一样,软件产品线体系结构中也可以分为共性部分和个性部分。产品线体系结构是产品线核心资源的早期和主要部分,在产品线的生命周期中,产品线体系结构应该保持相对小和缓慢的变化以便在生命周期中尽量保持一致。产品线体系结构要明确定义核心资源库中软件构件集合及其相关文档。,10.5.1产品线体系结构简介,2020/6/12,29,Mail:yrmeixue,第10章软件产品线体系结构-软件产品线体系结构的设计,10.5.2产品线体系结构的标准化和定制,软件产品线的软件体系结构是产品线所有可重用的核心资源中最重要的部分,是软件产品线成功的关键技术性资源。产品线体系结构将用于产品线中所有产品,需要使每个产品线的体系结构都能符合它的行为特性、性能和其他质量属性需求。,产品线体系结构的设计有两种方式:使用标准体系结构体系结构定制,2020/6/12,30,Mail:yrmeixue,第10章软件产品线体系结构-软件产品线体系结构的设计,10.5.2产品线体系结构的标准化和定制,在宏观体系结构上,对标准的遵循比较容易,下面以层次体系结构为例:,为适应应用的规模增大、复杂度提高,软件技术不断发展,相继出现了中间件技术、软件产品线等。体系结构风格是一个使产品和产品线具有良好的可移植性的结构,产品和产品线通过最小的修改就可移植到一个新的平台上。,2020/6/12,31,Mail:yrmeixue,第10章软件产品线体系结构,10.6软件产品线体系结构的演化,2020/6/12,32,Mail:yrmeixue,第10章软件产品线体系结构,本章思考题,A公司是一家相对较大的软件和硬件企业,专业从事网络设备的开发。从单一的产品开始,现在,已经延伸到包括摄相服务器、扫描服务器、光盘服务器以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 调度中心布置方案(3篇)
- 小学教研中心管理制度
- 导管医院消毒管理制度
- 医疗资产设备管理制度
- 厂区道路修改方案(3篇)
- 宿舍循环后续管理制度
- 工地生产现场管理制度
- 环卫项目进场方案(3篇)
- 培训公司股东管理制度
- 医院岗位集合管理制度
- 赣州城投招聘试题及答案
- 2024北京海淀区四年级(下)期末语文试题及答案
- 2025届海南中考地理高频考点模拟检测试题(一模)含解析
- 输血流程培训试题
- 企业安全生产知识题库
- 2025-2030方块地毯行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 钢筋混凝土蓄水池施工方案
- 四川省乐山市市中区嘉州学校2024-2025学年数学五年级第二学期期末监测模拟试题含答案
- 管廊安全培训课件图片
- 《新能源材料概论》 课件 第4章 力电转换新能源材料
- 精力管理与时间管理
评论
0/150
提交评论