资源描述
软件产品线体系机构
什么是软件产品线?软件产品线在软件开发过程中有什么作用?
定义:软件产品线是一个产品集合,这些产品共享一个公共、可管理特征集,这些特征集能够满足选定市场或任务领域特定需求。这些系统遵照一个预描述方式,是在公共关键资源上开发。
作用:软件产品线是一个是非适合专业软件开发组织软件开发方法,能有效提升软件生产率和质量、缩短软件开发时间、降低总开发成本;
主要组成部分:关键资源和产品集合。
关键资源:包含产品线中全部产品共享产品线体系结构,新设计开发或经过现有系统再工程得到、需要在整个产品线中系统化重用软件构件。
产品线开发4个技术特点:过程驱动、特定领域、技术支持及体系结构为中心。
软件产品线包含哪些过程?怎样实现软件产品线创建与演化?软件产品线演化是指什么?怎样实现演化?
过程模型:双生命周期模型(领域工程+应用工程);SEI模型(关键资源开发+产品开发+管理)和三生命周期(企业工程+领域工程+应用工程)模型;
4种建立方式:用演化方式还是革命方式+基于现有产品还是开发全新产品线
(1) 将现有产品演化为产品线
(2) 用软件产品线代替现有产品集
(3) 全新软件产品线演化
(4) 全新软件产品线开发
演化:指是因为各种原因引发产品线所进行改动而变成新产品线;
产品线演化包含:关键资源演化、产品演化和产品版本升级;
框架定义及特征
定义:框架是由开发人员定制应用系统骨架,是整个系统或子系统可重用设计,由一组抽象构件和构建实例间交互方式组成;
特征:反向控制;可重用性;扩展性;模块化或构件化;
软件产品线体系结构定义、特点及个性实现机制
定义:软件产品线体系结构是只一个软件开发组织为一组相关应用或产品建立公共体系结构。
特点:同领域模型一样,软件产品线体系结构中也可分为共性部分和个性部分;共性部分是产品线中全部产品在体系结构上共享部分,是不可改变。个性部分是指产品线体系结构能够改变部分;产品线体系结构设计目标尽可能扩展产品线中全部产品共享部分,同时提供一个尽可能灵活体系结构改变机制;
个性实现机制:继承;扩展和扩展点;参数化;配置和模块互连语言;自动生成;编译时不一样实现选择;
例题:希赛企业各种网络安全防火墙系统,引入产品线开发方法,问题以下:
1. 企业是否适合使用软件产品线方法,并说明理由
适合软件产品线开发方法;企业产品特点为:各种防火墙系统属于一个产品集合,具备很多共性,同时,每种不一样防火墙又具备自己本身个性特点;
2. 在原有产品基础上建立软件产品线方式,并简明评价
(1) 将现有产品演化为产品线:在基于现有产品体系结构设计产品线体系结构基础上,将特定产品构件逐步地、越来越多地转化为产品线公用构件,从基于产品方法“慢慢地”转化为基于产品线软件开发。
主要优点是经过对投资回收期分解,对现有系统演化维持使产品线方法实施风险降到了最低,单完成产品线关键资源总周期和总投资都比使用革命方式要大;
(2)用软件产品线代替现有产品集:基本停顿现有产品开发,全部努力直接针对软件产品线关键资源开发。 需求改变会造成初始投资报废风险加大
3. 成功实施软件产品线主要原因
(1)对该领域产品开发已具备长久积累经验;
(2)一个用于构建产品好关键资源库;
(3)好产品线体系结构;
(4)好管理(软件资源、人员组织、过程)支持
基于体系结构软件开发
MVC模式:对于界面可变性设计要求,MVC把交互式系统组成份解成模型、视图和控制器三种构件。
模型构件:独立于外在显示内容和形式,是软件所处理问题逻辑内在抽象,它封装了问题关键数据、逻辑和功效计算关系,独立于详细界面表示和输入/输出操作;
视图构件:把模型数据及逻辑关系和状态信息以特定形式展示给用户,它从模型取得显示信息,对于相同信息能够有多个不一样显示视图;
控制器构件:处理用户与软件交互操作,决定软件控制流程,确保用户界面和模型间对应联络,它接收用户输入,将输入反馈给模型,进而实现对模型计算控制,它是模型和视图协调工作部件。
设计模式分类
5种创建型模式:工厂方法,抽象工厂,建造者,原型及单件;
7种结构型模式:适配器,桥,组合,外观,装饰,代理,享元模式;
11种行为型模式:职责链,中介者,对象状态,策略,命令,备忘录,访问者,迭代器,解释器,观察者,模板方法;
MVC与MVP比较
MVC模式是创建软件很好路径,它所提倡一些标准,如,内容和显示分离、隔离模型、视图和控制器构件等,会使应用程序体系结构更健壮,更具备扩展性,也会是软件在代码重用和体系结构方面上一个新台阶;
MPV:Presenter(展现器)负责逻辑处理,模型提供数据,视图负责显示;MVP与MVC一个重大区分就是:MVP不直接使用模型,他们之间通行时经过展现器来进行,全部交互都发生在展现器内部,而在MVC中视图会直接读取模型数据而不是经过控制器。
中间件技术
中间件是一个独立系统软件或服务程序,分布式应用软件借助这种软件在不一样技术之间共享资源,中间件位于操作系统之上,管理计算机资源和网络通信,实现应用之间互操作。主要有下面6个基本功效:
(1) 负责客服机和服务器之间连接和通信
(2) 提供给用层不一样服务之间互操作机制
(3) 提供一个多层体系结构应用开发和运行平台
(4) 屏蔽硬件、操作系统、网络和数据库差异
(5) 提供给用负载均衡、高可用、安全机制和管理功效,确保交易一致性
(6) 提供一组通用服务去执行不一样功效
中间件类别
远程过程调用(RPC):客服进程和服务进程经过网络进行通信,对应存根(Stub)过程和运行支持提供数据转换和通行服务,从而屏蔽不一样操作系统和网络协议;存根过程用来解码请求消息中参数,调用对应服务过程和编码应答消息返回值。
对象请求代理(ORB):ORB是CORBA模型关键组件,它作用在于提供一个通信框架,透明地在异构分布式计算环境中传递对象请求;CORBA对象之间不直接进行通信,对象经过远程存根对运行在当地计算机上ORB发出请求,当地ORB使用IIOP将该请求传递给其余计算机上ORB。
RMI:Java远程方法调用。
面向消息中间件:MOM利用高效可靠消息传递机制进行平台无关数据交换,并基于数据通信来进行分布式系统集成,具备3个特点:
(1) 通信程序能够在不一样时间运行 (2) 对应用程序结构没有约束 (3) 程序与网络复杂性相隔离
事务处理监控器:交易中间件
什么是基于体系机构设计方法?简明说明基于体系结构设计方法生命周期模型及设计步骤?
ABSD方法为产生软件系统概念体系结构提供基础,概念体系结构代表了在开发过程中做出第一个选择,对应地,它是达成系统质量和业务目标关键,为达成预定功效提供了一个基础。由业务、质量和功效需求组合驱动ABSD,ABSD设计活动在体系结构驱动已决定就可开始,这意味着需求获取和分析活动还没有完成,就开始了软件设计,分析与设计活动并行;
ABSD三个基础:功效分解;经过体系结构格调来实现质量和业务需求;软件模板使用;
在ABSD方法中,必须统计全部做出决议以及这些决议原理,这有利于决议跟踪和决议评审;
功效需求
抽象、用例
质量需求
抽象、质量原因、体系结构选项
ABSD方法与生命周期:
抽象构件
软件模板
约束
需求
业务用例
架构师经验
遗留系统
实际构件设计
ABSD方法
需求分析
体系结构设计过程:
(1) 标识构件;(生成类图、对类进行分组、把类打包成构件)
(2) 提出软件体系结构模型 (3) 把构件映射到体系结构中 (4) 分析构件之间相互作用
(5) 产生软件体系结构 (6) 软件体系结构正交化
体系结构演化过程:
(1) 需求变动归类
(2) 体系结构演化计划
(3) 修改、增加或删除构件
(4) 更新构件相互作用
(5) 构件组装与测试
(6) 技术评审
(7) 演化后体系结构
基于体系结构软件开发模型:
体系结构需求à体系结构设计à体系结构文档化à体系结构复审à体系结构实现à体系结构演化
例题:B/S结构选取.Net平台还是Java企业版平台,最终选取Java企业版平台。问题以下:
1. 给出两个平台各自具备优势及两个平台共有特点(从下面选项中选择)
(1)良好跨平台可移植性支持
(2)易于布署与配置
(3)多程序设计语言支持
(4)良好Web多层应用开发支持
(5)丰富多厂商外部支持
(6)良好O/R(对象/关系)映射支持
(7)针对特定平台优化支持
(8)良好源代码以外可定制性支持
(9)良好Web服务支持
.Net平台特点:(2)(3)(7) Java企业版平台特点:(1)(5)(8) 共有特点:(4)(6)(9)
2. 分别针对基于EJB重量级框架和基于Struts等轻量级框架,说明MVC模式中各组件应采取何种构件实现
在基于EJB重量级框架中,实现构件分别为:
模型(Model):由EJB构件实现 视图(View):由JSP构件实现 控制器(Controller):由Servlet实现
在基于Struts等轻量级框架中,实现构件分别为:
模型(Model):由Java Bean构件实现 视图(View):由JSP构件实现
控制器(Controller):由Servlet构件实现
3. 从组件耦合度、组件分工及开发工程化支持等3个方面说明MVP与MVC模式主要区分
(1)在组件耦合度方面:在MVP模式中,视图并不直接使用模型,它们之间通信经过Presenter进行,从而实现了视图与模型分离,而在MVC模式中,视图直接与模型交互。
(2)在组件分工方面:在MVP模式中,视图需要处理鼠标及键盘等触发界面事件,而在MVC模式中这通常是由控制器完成工作;在MVP模式中,系统关键业务逻辑组织集中在Presenter中,而在MVC模式中,对应控制器通常只完成事件分发。
(3)在开发工程化支持方面:MVP模式可愈加好地支持单元测试,而在MVC模式中,因为模型与视图绑定,所以难以实施对应单元测试;在MVP模式中,Presenter基于约定接口与视图和模型交互,可愈加好地支持组件重用。
4. 说明事务基本特征,并简单描述EJB规范中提供两种事务控制方法;
事务基本特征包含:
原子性:一个事务中全部操作,要么全部完成,要么全部不完成,不会结束在中间某个步骤。事务在执行过程中发生错误,会被回滚到事务开始前状态,就像这个事务从来没有执行过一样。
一致性:在事务开始之前和事务结束以后,数据完整性限制没有被破坏。
隔离性:两个事务执行是互不干扰,两个事务时间不会相互影响。
持久性:在事务完成以后,该事务对数据所作更改便持久地保留在数据库之中,而且是完全。
EJB规范支持两种事务控制方法为:
容器维护事务(Container Managed Transaction,CMT):由EJB容器依照布署描述符或EJB构件注释中指定事务属性自动控制事务边界,容器维护事务是方法级,即默认将一个方法看成一个事务执行,当方法执行过程中发生系统级异常,容器会自动将事务回滚,从而将方法前面执行结果恢复。
Bean维护事务(Bean Managed Transaction,BMT):由程序员在EJB源代码中控制事务执行边界,事务边界经过Java事务接口(Java Transaction API,JTA)进行控制,Bean维护事务能够跨越方法边界。
软件体系结构评定: 各种软件质量属性
性能:指系统响应能力,即要经过多长时间才能对某个事件作出响应或在某段时间系统所处理事件个数;
可靠性:软件系统在应用或错误面前,在意外或错误使用情况下维持软件系统功效特征基本能力。惯用设计方法是:容错、检错、降低系统复杂度;
可用性:系统能够正常运行时间百分比;惯用两次故障之间时间间隔或系统恢复正常速度来表示;
安全性:系统向正当用户提供服务同时能够阻止非授权用户使用企图或拒绝服务能力;安全性又可分为:机密性、完整性、不可否定性及可控性等;
可修改性:能够快速地以较高性能价格比对系统进行变更能力;
功效性:系统所能完成所期望工作能力;
可变性:指体系结构经扩充或变更而成为新体系结构能够;
集成性:指系统与其它系统协作程度;
互操作性:指系统与其它系统或者本身环境相互作用能力;如软件体系结构必须为外部可见功效特征和数据结构提供精心设计软件入口;
风险点/架构风险:指架构设计中潜在、存在问题架构设计决议所带来隐患;
敏感点:为了实现某个特定质量属性,一个或多个组件所具备特征;
权衡点:影响多个质量属性特征,是多个质量属性敏感点;
体系结构评定3种方式:
(1)基于调查问卷或检验表方式 (2)基于场景评定方式 (3)基于度量评定方式
ATAM评定结果:
(1)已文档化了体系结构方法或格调 (2)场景及优先级 (3)基于属性问题 (4) 效用树
(5)所发觉风险决议 (6) 已文档化了无风险决议 (7) 所发觉敏感点和权衡点
SAAM评定步骤:
(1)形成场景 (2)描述体系结构; (1)和(2)重复进行 (3) 对场景进行分类和确定优先级
(4) 对间接场景单个评定 (5) 评定场景相互作用 (6) 形成总体评价
传统Web应用程序存在以下几个缺点:
操作复杂性 数据复杂性 交互复杂性
AJAX是由几个蓬勃发展技术以新方式组合而成,包含基于XHTML和CSS标准表示;使用DOM进行动态显示和交互;使用XMLHttpRequest与服务器进行异步通信;使用JavaScript绑定一切;使用AJAX最大优点就是能在不更新整个页面前提下维护数据,这使得Web系统更为讯接地回应用户动作,并防止在网络上发送那些没有改变过信息;
基于服务体系结构
W3C定义:SOA是一个应用程序体系结构,在这种体系结构中,全部功效都定义为独立服务,这些服务带有定义明确可调用接口,能够以定义好次序这些服务来形成业务流程;
SOA特征:SOA是一个粗粒度、松耦合服务体系结构,其服务之间经过简单、精准定义接口进行通信,不包括底层编程接口和通信协议;
SOA服务构件与传统构件区分:
(1) 服务构件往往是粗粒度,而传统构件以细粒度居多;
(2) 服务构件接口是标准,主要是服务描述语言接口,而传统构件常以详细API形式出现;
(3) 服务构件实现与语言无关,而传统构件常绑定某种特定语言;
(4) 服务构件能够经过构件容器提供QoS服务,而传统构件完全由程序控制;
SOA服务常见设计标准:
(1)明确定义接口 (2) 自包含和模块化 (3) 粗粒度 (4) 松耦合 (5) 互操作性、兼容和策略申明
SOA有3个主要抽象级别:操作、服务和业务流程;层次从底向上排列;
SOA关键技术
(1) 发觉服务层:帮助客服端应用程序解析远程服务位置,同过UDDI来实现;经过UDDI提供标准接口,企业能够公布自己服务供其余企业查询和调用,也能够查询特定服务描述信息,并动态绑定到该服务上;
(2) 描述服务层:为客服端应用程序提供正确与远程服务交互描述信息,主要经过WSDL来实现;
(3) 消息格式层:确保客服端应用程序和服务器端格式保持一致,通常经过SOAP来实现;
(4) 编码格式层:为客服端和服务器之间提供一个标准、独立于平台数据交换编码格式,通惯用XML来实现;
(5) 传输协议层:为客服端和服务器之间提供二者交互网络通信协议,通常经过HTTP和SMTP来实现;
SOA实现方式通常有:Web Service,企业服务总线和服务注册表;
Web Service处理方案中,有3中工作角色,分别为:服务提供者,服务请求者及服务注册中心;主要操作包含:公布、查找和绑定;
服务注册表通常支持:服务注册、服务位置和服务绑定功效;
企业服务总线:ESB是由中间件技术实现并支持SOA一组基础体系结构,是传统中间件技术与XML、Web Service等技术结合产物,是在整个企业集成体系结构下面向服务企业应用集成机制;ESB主要功效以下:
(1) 服务位置透明性 (2) 传输协议转换 (3) 消息格式转换 (4) 消息路由 (5) 消息增强 (6)安全性
(7)监控和管理
WSDL:是对服务进行描述语言,它有一套基于XML语法定义。WSDL描述重点是服务,它包含服务接口定义和服务实现定义;
UDDI:是一个用于描述、发觉、集成Web服务技术,它是Web服务协议栈一个主要部分;经过UDDI,企业能够依照自己需要动态查找并使用服务,也能够将自己Web服务动态地公布到UDDI注册中心,供其它用户使用;
SOAP:以XMl形式提供一个简单、轻量用于在分散或分布环境中交换结构化和类型信息机制;能够将SOAP简单了解为:SOAP=HTTP+RPC+XML,也就是采取HTTP作为底层通信协议,RPC作为通用调用路径,XML作为数据打包格式,提供了一个能够穿越防火墙通信交互能力;
REST(Representational State Transfer,表述性状态转移)是一个只是用HTTP和XML进行基于Web通信技术,能够降低开发复杂性,提升系统可伸缩性。
数据库是以单一数据资源为中心,其目标是及时、安全将当前事务所产生统计保留下来;而数据仓库是指一个面向主题、稳定、集成、随时间改变数据集合,用以支持经营管理中决议制订过程,数据在进入数据仓库之前,经过加工和集成,以实现将原始数据从面向应用到面向主题转变;
动态软件体系结构
因为系统需求、技术、环境、和分布等原因改变而最终造成软件体系结构变动,成为软件体系结构演化;
动态软件系统形式化描述包含:软件体系结构描述、体系结构重新配置和系统行为描述。对动态软件体系结构形式化描述,通常能够采取图形化方法、进程代数方法、逻辑方法等;
XML是一套定义语义标识规则,这些标识将文档分成许多部件并对这些部件加以标识。它也是元标识语言,用于定义其它特定领域关于、语义、结构化标识语言句法语言;
UML是用于系统可视化建模语言,而不是一个方法;其中并不包含过程概念,其本身是独立于过程,能够在任何过程中使用它。不过与XML结合最好是用例驱动、以体系结构为中心、迭代、增量开发过程。
UML中3中基本结构块:事物、关系和图;
UML中事物也称建模元素,包含:结构事物、行为事物、分组事物、注释事物;
UML中主要4中关系:依赖、关联(聚合、组合)、泛化和实现;
次序图强调消息时间次序;通信图强调收发消息对象或者角色结构组织(即:消息流经数据结构);二者都表示类似概念;定时图强调消息跨越不一样对象或角色时间时间;交互概览图是活动图和次序图混合物;
状态图描述一个状态机,由状态、转移、事件和活动组成;活动图专注于系统动态视图,强调对象间控制流程。适适用于表述在不一样用例之间(单个)对象行为。
ADL是这么一个形式化语言,它在底层语言模型支持下,为软件系统概念体系结构建模提供了详细语法和概念框架。3个基本元素为:构件、连接件和体系结构配置;
软件体系结构格调
软件体系结构格调是描述某一特定应用领域中系统组织方式惯用模式。体系结构格调定义了一系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含了一些构件和连接件类型,而约束指出系统怎样将这些构件和连接件组合起来。体系结构格调反应了领域中众多系统共有结构和语义特征,并指导怎样将各个模块和子系统有效组织成一个完整系统。
体系结构格调4要素内容:一个词汇表、一套配置规则、定义一套语义解释标准和定义对基于这种格调系统所进行分析。常见5个格调分类:
(1) 数据流格调:批处理序列、管道与过滤器;
(2) 调用/返回格调:主程序与子程序、面向对象格调、层次格调;
(3) 独立构件格调:进程通信、事件系统;
(4) 虚拟机格调:解释器、基于规则系统;
(5) 仓库格调:数据库系统、超文本系统、黑板系统
常见详细格调解析:
管道与过滤器:每个构件(过滤器)都有一组输入和输出,构件读输入数据流,进过内部处理,然后产生输出数据流;输出数据流输入管道(连接件),作为下一个过滤器输入;过滤器必须是独立实体,在输入数据流没输入完之前,可能输出数据流已经产生了;常见例子:UNIX Shell编写程序、传统编译器;
特点:
(1) 使得软构件具备良好隐蔽性和高内聚、低耦合特点;
(2) 可将整个系统看成多个过滤器行为简单合成;
(3) 支持软件(过滤器)重用;
(4) 系统维护和增强系统性能简单;
(5) 支持并行执行;
缺点:
(1) 造成进程成为批处理结构;
(2) 不适合处理交互应用;
(3) 过滤器增加了解析和合成数据工作,造成系统性能下降;
面向对象格调:数据表示方法和它们对应操作封装在一个抽象数据类型或对象中,这种格调构件是对象,或者说是抽象数据类型实例;
基于事件隐式调用格调主要特点是:事件触发者并不知道哪些构件会被这些事件影响。这么不能假定构件处理次序,甚至不知道哪些过程会被调用,所以,许多隐式调用系统也包含显式调用作为构件交互补充形式。常见例子是:在编程环境中用于集成各种工具,在数据库系统中确保数据一致性约束,在用户界面中管理数据,以及在编辑器中支持语法检验;
优点:
(1)为软件重用提供了强大支持; (2) 为改进系统带来了方便;
缺点:
(1)构件放弃了对计算构件控制; (2) 数据交换问题;(3)正确性推理存在问题;
分层系统
层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。每一次最多影响相邻两层,只要给相邻两层提供相同接口,便允许每层用不一样方法实现,一样为软件重用提供了强大支持。
特点:
(1)支持基于抽象程度递增系统设计;(2)功效改变最多影响相邻两层;(3)支持重用;
不足:
(1)并不是每个系统都能够很轻易划分为多层模式;(2)极难找到一个适宜、正确抽象层次方法;
仓库系统及知识库
在仓库格调中,有两种不一样构件:中央数据结构说明当前状态,独立构件在中央数据存放上执行,仓库与外构件间相互作用在系统中会有大改变;。
黑板系统传统应用是信号处理领域,如语音和模式识别,另一应用是松耦合数据共享存取;黑板系统3个组成部分:
(1) 知识源;
(2) 黑板数据结构;
(3) 控制;控制完全由黑板状态驱动,黑板状态改变决定使用特定知识源;
C2格调
C2体系结构格调能够概括为:经过连接件绑定在一起按照一组规则运作并行构件网络;组织规则以下:
(1) 构件和连接件都有一个顶部和底部;
(2) 构件顶部连接到某连接件底部,构件底部则应连接都某连接件顶部;构件之间不允许之间连接;
(3) 一个连接件可连接任意数目标构件和连接件;
(4) 当两个构件直接连接时,必须是其中一个底部到另一个顶部;
特点:
(1) 系统构件能够实现应用需求,并能将任意复杂度功效封装在一起;
(2) 构件通信经过以连接件为中介异步消息交换来实现;
(3) 构件相对独立,构件之间依赖少;
C/S与B/S体系结构
C/S体系结构优点在于系统客户应用程序和服务器构件分别运行在不一样计算机上,系统中每台服务器都能够适应各构件要求,这对于硬件和软件改变显示出极大适应性和灵活性,易于对系统进行扩充或缩小;C/S结构具备强大数据操作和事物处理能力,模型思想简单,易于人们了解和接收;因为软件复杂度不停提升,C/S结构也暴露出以下缺点:
(1) 开发成本高。客户端软硬件配置要求高
(2) 客户端程序设计复杂;
(3) 信息内容和形式单一;
(4) 用于界面格调不一,不利于推广;
(5) 软件移植困难;
(6) 软件维护和升级困难;
(7) 新技术不能轻易应用;
两层C/S结构局限:难以扩展至大型企业广域网或Internet;软硬件组合及集成能力有限;客服机负荷太重;数据安全性不好;所以三层C/S结构应运而生;
与两层C/S结构相比,三层C/S结构增加了一个应用服务器。能够将整个应用逻辑驻留在服务器上,而只有表示层存在于客户机上;
表示层:应用用户接口部分,它担负卓用户和应用间对话功效;
功效层:相当于应用本体,它将详细业务逻辑编入程序中;
数据层:就是数据库管理系统,负责管理对数据库数据读写;
在三层C/S体系结构中,中间件事最主要构件。所谓中间件是一个用API定义软件层,是具备强大通信能力和良好可扩展性分布式软件管理框架。它功效是在客服机和服务器或服务器之间出送数据,实现客服机群和服务器群之间通信。
现在已经有3中分布式构件标准:MicrosoftDCOM,OMGCORBA和SUN企业EJB;
三层C/S结构特点:
(1) 允许合理地划分三层结构功效,使之在逻辑上保持相对独立性,是整个系统逻辑结构更为清楚,提升了系统可维护性和可扩展性;
(2) 允许灵活选取对应平台和硬件系统,且各组成部分具备良好可升级性和开放性;
(3) 应用各层可并行开发,提升效率;
(4) 充分利用功效层有效地隔离表示层和数据层,提升了系统安全;
B/S体系结构利用不停成熟WWW浏览器技术,结合浏览器多个脚本语言,用通用浏览器就实现了原来需要复杂专用软件才能实现强大功效,节约了开发成本;B/S结构是一个全新软件体系结构;系统安装、修改和维护全在服务器端处理;用户仅用一个浏览器就能够运行全部模块,达成了“零客服端目标,轻易升级。同时,B/S结构还提供了异种机、已种网、已种应用服务联机、联网、统一服务最现实开放性基础。
与C/S相比,B/S不足:
(1) 没有有效集成数据库处理能力;
(2) 系统扩展性差,安全性难以控制;
(3) 数据查询对应速度远低于C/S结构;
(4) 数据动态交互性不强,不利于在线事物处理(OLTP);
公共对象请求代理体系结构
CORBA是由OMG制订一个工业标准,其主要目标是提供一个机制,使得对象能够透明地发出请求和取得应答,从而建立起一个异质分布式应用环境。其中ORB是一个关键通信机制,它以实现互操作性为主要目标,处理对象之间消息公布。
CORBA技术规范主要包含:接口定义语言IDL,接口池IR,动态调用接口DII和对象适配器OA。
CORBA定义了一个面向对象软甲结构方法,是不一样应用能够共享由此结构出来软件构件。每个对象将其内部操作细节封装起来,同时向外界提供精准定义接口,从而降低了应用系统复杂性,也降低了软件开发费用。CORAB平台无关性实现了对象跨平台引用,开发人员能够在更大范围内选择最实用对象加入到自己应用系统中。CORBA语言无关性使开发人员能够在更大范围内相互利用他人编程技能和结果。
CORBA特点
(1) 引入中间件作为事务代理,完成客服机想服务对象方提出业务请求;
(2) 实现客服和服务对象完全分离;
(3) 提供软总线机制,使得在任何环境下、采取任何语言开发软件只要符合接口规范定义,均能集成到分布式系统中;
(4) 采取棉线对象软件方法开发应用系统;
CORBA主要作用:提供运行环境;提供通信机制;提供通用服务;
层次消息总线(HMB:Hierarchy Message Bus)
消息总线是系统连接件,负责消息分配、传递、和过滤以及处理结果返回。各个构件挂接在消息总线上,向总线登记感兴趣消息类型。
遗留系统:指基本上不能进行修改和演化以满足新改变了业务需求信息系统;特点以下:
(1) 系统即使能够完成企业中许多主要业务管理工作,但已经不能完全满足要求;
(2) 系统在性能上已经落后,采取技术过时;
(3) 通常是大型软件系统,融入了企业业务运行和管理决议机制中,维护困难;
(4) 没用使用当代软件工程方法进行管理和开发,基本上没问题,极难了解;
特定领域软件体系结构
DSSA:在一个特定应用领域中,为一组应用提供组织结构参考标准体系结构。
DSSA基本活动:领域分析、设计及实现。领域分析主要目标是取得领域模型,其描述是领域中系统之间共同需求;领域设计目标是为了DSSA,表示模型在中需求处理方案;领域实现主要目标是依据领域模型和DSSA开发和组织可重用信息。
DSSA人员:领域教授提供领域中系统需求规约和实现知识;领域分析人员控制整个领域分析过程,把获取知识组织到领域模型中;领域设计人员控制软件设计过程开发出DSSA;领域实现人员主要开发可重用构件;
DSSA建立过程:
(1) 定义领域范围;
(2) 定义领域特定元素;
(3) 定义领域特定设计和实现需求约束;
(4) 定义领域模型和体系结构;
(5) 产生、搜集可重用产品单元;
DSSA建立过程是并发、递归和重复进行。该过程目标是将用户需要反射为基于实现约束集合软件需求,这些需求定义了DSSA;
DSSA三层系统模型
(1) 领域开发环境,对应领域架构师;
(2) 领域特定应用开发环境,对应应用工程师;
(3) 应用执行环境,对应操作员;
DSSA与体系结构格调比较
DSSA
体系结构格调
以问题域为出发点
以处理域为出发点
对一个特定领域进行知识提取,能够使用多个体系结构格调
同一体系结构格调提取公共结构和设计方法能够扩展到多个领域
通常应用特定领域
可用于多个不一样领域
两种类型体系结构能够互补使用
软件危机表现:
(1)软件成本日益增加;(2)开发进度难以控制;(3)软件质量差;(4)软件维护困难;
原因:
(1)用户需求不明确;(2)缺乏正确理论指导;(3)软件规模越来越大;(4)软件复杂度越来越高;
构件是指语义完整、语法正确和有可重用价值软件单元。
构件获取方法:
(1) 从现有构件中获取符合要求构件,直接使用或作适应性修改,得到重用构件;
(2) 经过遗留工程将具备潜在重用价值构件提取出来;
(3) 商业构件(COTS:Commercial Off-The-Shell)
(4) 新开发符合要求构件;
构件管理内容包含:构件描述、构件分类、构件库组织、人员及权限管理和用户意见反馈;
构件分类方法:关键字分类法、刻面分类法、超文本组织方法;
构件重用工作:检索和提取构件,了解和评价构件,修改构件,将构件组装到软件产品中。
构件组装可分为:基于功效(程序调用和参数传递)组装;基于数据(关键数据结构设计出一个框架)组装和面向对象(封装、继承和多态特征)组装技术;
软件体系结构定义:为软件系统提供一个结构、行为和属性高级抽象;由组成系统元素描述、元素相互作用、指导元素集成模式及这些模式约束组成。软件体系结构不但指定了系统组织结构和拓扑结构,并显示了系统需求和组成系统元素之间对应关系,提供了一下设计决议基本原理。作用以下:
(1) 风险负担进行交流伎俩;
(2) 早期设计决议表现;
(3) 是可传递和可重用模型;
软件体系结构在软件开发中为不一样人员提供了共同交流语言,表现并尝试了系统早期设计决议,并作为系统设计抽象,为实现框架和构件共享和重用、基于体系结构软件开发提供了有力支持;
“4+1” 视图模型
逻辑视图(logic view):主要支持系统功效需求;在面向对象技术中,经过抽象、封装和继承,能够用对象模型来代表逻辑视图,用类图来描述逻辑视图;
开发视图(development view):也称模块视图,侧重于软件模块组织和管理;
进程视图(process view):也称并发视图,侧重于系统运行时特征,主要关注一些非功效性要求,如系统性能和可用性;
物理视图(physical view):考虑怎样把软件映射到硬件上,通常考虑系统性能、规模和可靠性等;处理系统拓扑结构、系统安装、通信等问题;
场景/用例视图(scenarios):系统中主要活动抽象,它使其它4个视图有机联络起来;
逻辑视图和开发视图描述系统静态结构,而进程视图和物理视图描述系统动态结构。
体系结构关键模型由5种元素组成:构件、连接件、配置(构件和连接件拓扑逻辑和约束)、端口和角色;主要为前3种元素;
需求是指用户对目标软件系统在功效、性能、行为和设计约束等方面期望,需求过程主要是获取用户需求,确定系统中要用到构件;
体系结构需求包含:需求获取、生成类图、对类分组、把类打包成构件和需求评审等过程;
展开阅读全文