基于构件的软件工程概念模型研究
河海大学研究生课程【软件复用技术】06软件构件技术概述(二)

软件复用硕士研究生课程软件构件技术计算机与信息学院软件复用硕士研究生课程声明软件复用硕士研究生课程主要内容一、软件构件二、软件构件模型三、应用框架四、基于构件的软件开发方法三、应用框架技术软件复用硕士研究生课程软件复用硕士研究生课程1. 应用框架(1) 定义1:应用框架是一种可以复用的应用软件的半成品,它可以被用来建造一族应用程序;定义2:应用框架是一组相关组件的集合,这些组件的相互作用关系形成了一个可以复用的体系结构。
该结构可以被用来建造一族应用程序;定义3:应用框架是一种软件复用技术。
它是一个应用软件系统的部分或整体的可复用设计。
一般来说,框架定义了一个应用程序的骨架并提供可以放置于该骨架中的标准用户界面实现(2) 开放式体系结构:软件系统的开放性包括数据的开放性、功能的开放性和系统的可扩充性。
软件复用硕士研究生课程典型成果:软件复用硕士研究生课程2、框架的特点软件复用硕士研究生课程•框架的优点:•存在困难:3、框架的特征软件复用硕士研究生课程软件复用硕士研究生课程软件复用硕士研究生课程软件复用硕士研究生课程4、框架分类软件复用硕士研究生课程5、通用框架开发过程模型6、框架开发过程软件复用硕士研究生课程软件复用硕士研究生课程软件复用硕士研究生课程(3)设计阶段软件复用硕士研究生课程软件复用硕士研究生课程四、基于构件的软件开发软件复用硕士研究生课程软件构件技术是一种系统化的技术,包括构件模型、构件构架(Architecture)及实现技术、构件分析和设计技术、基于构件的应用系统构造及实现技术等内容。
当构件技术运用于特定的应用系统开发,通常称之为基于构件的软件开发(Component-Based software Development ,CBD). CBD是指利用已开发完成的商业构件(Commercial Off-The-Shelf,COTS)(或可复用的构件)来按应用需求组装形成软件应用系统的软件开发方法研究构件软件的两个核心是:如何提取可复用构件以及如何组装成系统并能实现互操作。
基于构件的嵌入式软件仿真开发环境模型研究

基于构件的嵌入式软件仿真开发环境模型研究
古幼鹏;熊光泽;桑楠
【期刊名称】《系统工程与电子技术》
【年(卷),期】2004(026)010
【摘要】为支持嵌入式系统软件与硬件的并行开发和解决其多样性问题,引入了仿真技术和构件技术,建立了一个通用的构件化软件仿真开发环境模型(CSIDE).通过一个原型软件验证CSIDE模型具有以下特点:以工具总线为基础的构件化体系结构可以为各种软件定制出分布式仿真开发平台;能以可视化方式重用库中构件建造出与真实硬件环境基本一致的硬件仿真环境,支持软件的仿真调试.
【总页数】5页(P1495-1499)
【作者】古幼鹏;熊光泽;桑楠
【作者单位】电子科技大学计算机科学与工程学院,四川,成都,610054;电子科技大学计算机科学与工程学院,四川,成都,610054;电子科技大学计算机科学与工程学院,四川,成都,610054
【正文语种】中文
【中图分类】TP311.56;TP336
【相关文献】
1.嵌入式软件仿真开发系统的研究 [J], 陈定君;郭晓东;张应辉;余克清;刘积仁
2.嵌入式软件仿真测试平台开发 [J], 林丹丹
3.嵌入式软件仿真开发系统的实现 [J], 王红春;王海燕
4.嵌入式软件仿真开发系统的设计与实现 [J], 陈定君;郭晓东
5.基于构件的虚拟仪器开发环境模型 [J], 朱超平
因版权原因,仅展示原文概要,查看原文内容请购买。
基于构件的概念体系结构验证

特征跟踪矩阵 :假设 存在一个起初 由 c ,2 C ,4 lc , 3c , c 5五个初始构件( 可以是最简单 的对象或功能非常单一的 构件 ) 组成的系统 , 实现的特征共有 F , 2F 1F ,3三个。该 系 统 的初 始构件与行为特征 之间的关 系假设用 图 1 的特征
跟踪矩阵 T表示 。
目前 , 构件还没有一 个公认 的统一的定义 , 般来 对 一
说有广义与狭义之分 。广义上讲 , 构件是指可以被明确标
识的软件制 品, 它可以是需求分析 、 设计 、 代码 、 试用例 、 测
( 对应于拥有分解关 系的 A tn 以及提供 自 co ) i 身变体选择 的
代理构件( 对应于包含变体的 A t n 。 ci ) o
Vl V2 V3 V4 V5
法 中, 这种现象经常出现 。本文对此 问题的处理办法是 。 可
Vl
V2 V 3 V4
V5
0
l 0
根据领域经验知识选取更加 符合实际需求 的组合 即可。当
0
l
}
f ,
0
I
然, 也有其它的确定策略。
引
言
C asfs ) l o } s a
软件体 系结 构几十 年来一直 是研究软件 系统 整体结 构的重要方法 , 特别是子系统和构件之 间关系 的研究 。特
w oe atdpn etst lm nSt(a =a B s es hl/ r ee dn e: e e t p E e s) {a ui s l n A t ns aC i rn al co (aH s h de ) i l
C4
C5
l
l
0
基于UML的软件构件进化模型

摘 要: 在统一建模语言 UML( ie d l gL n u g ) Unf dMo ei a g ae 的基 础上提 出应 该从平 面关系和进 化关系两个 i n
方 面来支 持面向对象软件的开发 。平面关 系强调 以各种视 图显示软件构件 ( 包括分析设计 模型元素和代码模 块) 的体 系结构 ; 进化关系是指软件构件被 引入 系统 、 发展 、 实现 、 再扩充直至灭亡过程 中的变换 关系 。提 出并
在 迭代 式增 量开 发过 程 中 , 个新 产 品往往 在 一个 旧产 品的基 础 上开发 , 一 一个 新 原型在 一个 旧原型 的
基 础 上开发 。在 这种 情况 下 , 软件 在分 析 、 计和 编 码 阶段 的过 程和 产 生 的文档就 十分 重 要 。文档 的核 心 设
是 构 成软件 的分 析构 件 、 设计 构件 和代 码构 件叫 , 里统 称为 软件构 件 。任何 一 个软 件 构件 都是 处 于开发 这
进 化关 系将 各 个开 发 环节 上 的平 面关 系联 接起 来 , 者综 合 可 以得 到 软 件开 发 的 一个 较为 完 整 的视 两
图 ( 图 1 。下面 主要 介绍进 化模 型 。 见 )
2 软件 的进化模型 定义
随着开发工作的进行, 软件系统将会经历一个从无到有、 从粗到细、 从含糊到清楚、 从客观领域的概念
详细介绍了基于 UML支持环境 中的进化模型 。进 化模型系统描述 了进化关 系, 并支持 UML各模型之 间的
转换和各开发阶段 的平滑过渡 。 关键词 : 开发方法 ; UML; 软件构件 ; 进化 模型 中图分类号 : 3 TP 1 文献标识码 : A 文章编号 :0 16 0 (0 7 0— 0 00 1 0— 60 20 )20 6 —5
软件体系结构

第21页
第一章 概述
软件体系结构的意义
1.5 软件体系结构的意义
软件体系结构是早期设计决策的体现:
明确了对系统实现的约束条件 决定了开发和维护组织的结构
制约着系统的质量属性
通过研究软件体系结构可以预测软件的质量 使推理和控制软件更新更加有效 有助于循序渐进的原型设计 可以作为培训的基础
《软件体系结构》 黑龙江大学计算机科学技术学院 版权所有© 2006-2007
《软件体系结构》 黑龙江大学计算机科学技术学院 版权所有© 2006-2007
第14页
第一章 概述
概念
构件(Component)
1.3 软件体系结构的概念和术语
构件是语义完整、语法正确和有重用价值的单位软件。 一般来说,任何在系统运行过程中承担一定功能、发挥一定
作用的软件体都可以看作是构件,譬如设备驱动程序、函数
模块;也可以是一个独立的软件,如数据库服务器。 连接件把不同的构件连接起来形成软件系统。它可以是过程
调用、管道、远程方法调用等等。
约束一般为构件连接时的规则、条件或方式。
《软件体系结构》 黑龙江大学计算机科学技术学院 版权所有© 2006-2007
第11页
第一章 概述
补充说明
1.2 软件体系结构的定义
第20页
第一章 概述
软件体系结构的意义
1.5 软件体系结构的意义
软件体系结构是风险承担者进行交流的手段:系统的
各个风险承担者(客户、项目管理人员、设计开发人 员、测试人员、集成人员)把软件体系结构作为各自
关心的不同方面的描述,并以此作为相互沟通,达成
共识的基础。
《软件体系结构》 黑龙江大学计算机科学技术学院 版权所有© 2006-2007
基于体系结构的软件开发研究

( ) 件 体 系结 构 的 定 义 一 软
D w y eP r e an er y和 A e l 曾 这 样 定 义 : 件 1xWo f 软
2 0世 6 0年代 的软 件 危 机使 人 们 开 始 重 视 软件 工 程 的研究 。起 初 , 们 把 软件 设 计 的重 点 放 在数 人 据结 构 和 算法 的选 择 上 , 着 软 件 系统 规 模 越 来 越 随 大 、 来越 复杂 , 越 整个 系统 的结 构 和规 格 说 明显 得 越
重要性 已远远超 过特 定算法和数据结构 的选择 。本文讨 论 了体 系结 构的概念 、 研究 背景 、 发展现状 、 研 究 方向 、 主要 内容 以及基于体系结构的软件开发过程 。 [ 关键词 ] 软件工程 ; 体系结构 ; 构件
[ 中图分类号 ]T 3 1 总体结构。 在 基 于体 系结 构 的软 件 开 发 过 程 中 , 过 分 析 通 找 出其 中 的稳 定 需 求 和 易变 需 求 , 立 可 复用 的领 建 域 模型 。根 据用户 需求 和领 域模 型 产 生应 用 系统 的 需 求规 格说 明 。在领 域 模 型 的基 础 上 , 出特 定 领 找 域的软件体系结构 。高层设计的任务是根据需求规 格 说 明进行 体 系结 构设 计 , 过 复用 体 系结 构 库 中 通 的特定领域大的体系结构 , 或创造合适该应用环境 的体 系结 构 , 加 以提 炼 存 放 到 库 中备 用 。低 层 设 并 计 主要 解决 具 体 构 件 和 连接 件 的设 计 问题 , 过 复 通 用 库 中存 放 的设 计模式 和其 他类 型的 可 复用 设计 件 或者根 据情 况设计 新 的构件 , 并提 炼 到库 中备 用 。 用 软件 体 系结 构 理论指 导 软件 开 发具 有 很 多优 点, 因此 越 来 越 多 的软 件 开 发 者认 识 到 有 效 的软 件 系统 方 法 必 须辅 以体 系 结 构 的设 计 , 实 的 软件 体 坚 系结 构 基 础 将 直 接 带 来 软 件 开 发 和 维 护 上 巨 大
软件工程案例分析
软件项目常见错误(续)
技术相关的错误
–银弹综合症: 过于相信以前没有采用过的技术 的宣传
–过高估计了新技术或方法带来的节省量 –项目中间切换工具 –缺少自动的源代码控制手段
软件项目常见错误(续)
人员相关的错误
– 挫伤积极性 – 人员素质低 – 对有问题的员工失控 – 英雄主义 – 项目后期加入人员:“火上加油” – 办公环境差 – 开发人员与客户之间发生摩擦 – 不现实的预期
软件危机
一种看法
– “两难境地(Crunch Mode)”:处于两难境地的项目 面临无法达到最初目标的威胁(费用、进度表、功能 性等),而项目团队努力想跨越困境。
• “我们正处于两难境地,在半夜之前是不会回家”
– “死亡行军(Death March)”:用来描述其进度表几 乎不可能完成的项目。
3000多个工程师,几百个小团队。
Exchange2000和 Windows2000开发人员结构
项目经理
Exchange2000 25人
Windows2000 约250人
开发人员
140人
约1700人
测试人员
350人
约3200人
“软件工程案例分析”课程与其它 软件专业课的区别
(1) 立足于系统的整体。
软件项目常见错误
选自《快速软件开发》 产品相关的错误
–需求镀金:项目具有比实际需求多得多的性能 –功能蔓延:项目平均会有25%的需求变更
(Jones 1994) –开发人员的镀金:开发人员着迷于新技术 –又推又拉的交易:经理在批准项目进度顺延时
又加入了新的功能 –研究导向的开发
软件项目常见错误(续)
软件危机的主要特征
软件开发周期大大超过规定日期; 软件开发成本严重超标; 软件质量难于保证
基于软件构件的MIS开发研究
件具有高可靠性、高可维护性以及适应需求变化等特点 ,为 M S I 的有效开发提供了解决途径.目前 , 使 用构 件技术 开发 软件 已成 为软件 开发 的一大 热点 .
硕 士 研 究 生 ,研 究 方 向 :软 件 开 发 技 术 .
维普资讯
・
8 8・
洛 阳大学学报
3 基 于构 件 技 术 的 MI 发 过 程 S开
概括地讲 ,基于构件开发的 M S系统其实质就是从系统 中提取 M S I I 构件 , 并将 己有构件及新生成
贾文峰
( 中科技 大学 软件 学院,湖北 武汉 4 07 华 3 04;洛阳理工学院 现代教 育技 术 中心,河南 洛 阳 4 12 ) 70 3
摘
原 则.
要 :在 软件 构件 的 基 础上 ,详 细介 绍 了基 于 构件 技 术 的 MI S开发 过 程 和 开发
关键词 :软件 构件 ;MI;过程 ;原 则 S
或重建并 发 布新构件 即可 ,将 更新 操作 控 制 在较 小 范 围 ,从 而使 得 调 试 和测 试更 为方 便 ,由此 可节 省
不 少 的人力 、物力和财力 .
收 稿 日期 : 07一O 2 20 1— 2 作 者 简 介 : 贾文 峰 (9 2一) 17 ,男 ,汉 族 ,河 南 省许 昌 市 人 ,系统 分 析 师 、高 级 程 序 员 、工 程 师 ,华 中科 技 大 学软 件 学 院软 件 工 程
实 现的功能 、对外 关 系 以及实 现条件 .
在构件设计过程 中应遵循构件 以下基本原则 :提高抽象的级别 ,增强可复用性 ; 保证构件 的可理
基于软件构件质量模型的构件度量
和 潜 在 需 求 能 力 的 特 征 和 特 征 的 总 和 。 与外部度量 目 有密切联系的内部 度量 ,这样 标
( / 16 I E S ( 本 16 9 8年 N T 会 议 上 D uls lo AO o gaMcl y首  ̄ OI C 9 2 软件工 程 产品质量》 文简称 可用 内部质量 来预测外 部度量的值 。 r 但是 , 目 就 次提 出了软件构件概念 ,在随后的几十年时间 IO E 16 S f C 9 2 )对 软件产 品质量进 行全 面的规 前软件技术 而言,要设 计一种可 以提供内部和 i 里 ,软件构件技术已获得了非常大的跨越与发 格说 明和评 价, 保证足够 质量 的关键 因素, 同时 展 ,形成了基于软件构件 的软件开发 C S B D和 定 义适当的质量特性 。这个质量模型 以要 素 2 基于软件构件 的软件 工程 C S B E等 多个研 究领 准则 2度量模型 为基础 ,描述 了关 于软 件产 品 域。 质量 的两部 分模 型 : 软件构 件技术 的快 速发展 为软 件构件 标 a ) 内部质量和外部质量模型 准的制定带来机遇与挑战 ,一 方面软件构件技 b ) 使用质量模 型 术、 软件复用技术 已日臻完善 , 对相应软件构件 在 IO IC 1 620 S / 9 2 : 1的 外 部 和 E 0 标准的需求变得 日益迫切 ,另一方 面国际上大 内部质量模型 中, 出了功能 性 、 提 可靠 的 I 厂商 或权威 组织分别 提 出 自己的构 件模 性 、 T 效率 、 可移植 性 、 易用 性和维 护性 型与构 件规范 ,如 Mirsf提 出 C c ot o OM/C M/ 等 6 DO 个质量特性 以及 2 个 子特性 ; 7 在 C M+和.e se by标准 ,u O N t sm l A S n提出 JvB a s 使用质量模型 中, 出了有 效性 、 aa en 提 安全 和 E B标准 , MG提 出 C B J O OR A标 准 ,这 加剧 性 、 生产率和满意度等 4个质量特性 。 了工业技 术的发展催促标 准制定 的趋 势,使 目 软 件构件 具 有一 般 软件 所具 有 前软件构件相 应标准的制定 变得相 对滞后。 的质量特性 ,一般情况下 用于描述软 软件构 件质量 标准属 于基 于软件 构件 的 件 的质 量模 型 也是 适用 于软件 构 件 软件开发标 准之一,它 的重要性 日 益受到业 界 的 。构件技术是在面 向对象 软件开发 关注 。 对软件构件开发者 而言, 重要 的是如何评 的基础上发展起来 的, 因此 , 构件的质 测软件构件质量以改进软件构件产品质量。 量度量更贴近于面 向对象软件 的质量度量 。但 通常构 件管理 者和使 用者 希望度 量和 预 是这些现存 的面 向对象度量方法 和度量模型并 测构件 的外部属性 ,这是 因为 只有外部属性 的 不完全适用于构件质量的度量 , 这是 因为 : 121度量的单元不同。 向对象度量主要 .. 面 度量才能 真正 给出人们所需 的可靠数据 ,并预 示构件开发行 为。但不幸 的是外部质量度量通 针对一个具体的类 ,而构件是 由一个或多个类 常缺乏清 晰的定义 ,也无法进行直接 的客观度 以及一个或多个接 口组成 ,它是一个封装的整 量 ,一般 只能通过 内部属性进行推测性 的间接 体。现在的面向对象度量没有考虑到构件本身 度量来得 出构件 的外部属性值 。因此构件质量 或构件接 口的复杂性等特性 ,因此不能把面 向 度量研究 的任务之一便是建立 内部属性和外部 对象度量完全照搬到构件质量度量上去 。 1 , 度量的生命 周期不同。 .2 2 面向对象度量 属性直接 的合理联系 。 1软件质量模型 主要 使用于软件的设计开发过程 ,很大程度上 11 . 要素准则度量模型 属于内部度量 ; 而构件作为一个产品来说 , 有完 Mc a 等 人 于 17 Cl 1 9 7年 和 B e m 于 17 整的生命周 期 , oh 98 因此 必须考虑到测 试 、 运行 、 组 年分别提 出了两个质量层次模型m 这种层次结 装 、 , 使用等过程时的度量。此外 , 由于大部分构 构模型 的基本思想是将软件质量 因素按一定方 件都是没有源代码的黑盒构件 ,而上述的面 向 式分成几组 , 每组反映软件一个方面 , 称为质量 对象 度量方 法主要 针对具有源代码类 ,所以无 要素 。构成质量要素 的诸因素则是对该要素 的 法 将这 些 面向对 象度 量方 法直接 应用 到 本研 衡量标准 ,每个衡量标准又由一系列具体的度 究 。 不过软 件构 件毕竟 不是一 个完 整 的软件 量构成 。图 1 M Cl 素准则度量模 型 , 是 ca要 l 这 模 型通常 被作为软 件评价 的基础 ,被 IE 系统 ,有些适 用于软件的质量特性并不适合软 EE 和 IO等所采用。 S 件构 件, 如可 移植性 中的易安装性等。 例 因此可 以将软件 构件所具有 的一般 度量1 软件属性定 义为基本质 量特
构件模型研究综述
摘
要: 基于构件的软件复 用被认 为是解决软件危机 的重要 手段 , 而描 述构件本质特征及 构件组合 的构件模 型是 实现
构件复 用的关键技 术。本 文分析和研究 了现有 的构件模 型 , 并根 据构件接 口和构件 组合方 式对各 个构件模 型进行 了分类
比较 ; 结合 已有的研究成果 , 望 了构件模型未 来研 究方 向。 展
ห้องสมุดไป่ตู้
gei t rrain e s.I i p p rwep ee t naayi o ecret jrsf r d l adatxn myo rde sf eligru e nt s a e, rsn n ls fh urn o ot emo e n ao o f n o z h a s t ma wa s
c mp n n d l c o d n O t erc mp n n t r a e n o o n n o p s t n . i a e lo p e e t u o o e tmo e sa c r i g t h i o o e t e f c sa d c mp e tc m o ii s Th sp p ras r s n sa s mma y n i o r o h u r n o o e tmo es a d a d s u so n t e f t r e e r h t p c . ft e c r e tc mp n n d l , ic s in o h u u e r s a c o is n
( .c ol f o ue c n eN t n l nvri f ees eh ooyC agh 10 3 1 Sh o o mp tr i c, ai a U i st o f eT c nlg , h ns a 0 7 ; C Se o e y D n 4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
龙源期刊网 http://www.qikan.com.cn 基于构件的软件工程概念模型研究 作者:罗细平 来源:《科技创新导报》2011年第19期
摘 要:本文基于笔者多年从事计算机软件的相关研究,以基于构件的软件工程概念模型为研究对象,探讨了面向对象软件工程与传统软件工程之间的差别,给出了基于构件的软件工程概念模型,全文是笔者长期工作实践基础上的理论升华,相信对从事相关工作的同行有着重要的参考价值和借鉴意义。
关键词:构件软件工程面向对象 中图分类号:TP3 文献标识码:A 文章编号:1674-098X(2011)07(a)-0111-02 软件是信息产业的灵魂,软件工程是软件产业的灵魂。1968年由NATO(北大西洋公约组织)在德国格密斯(Garmish)举行的学术会议上正式提出“软件工程(software engineering)”这一概念以来,软件工程发展极快,取得了丰硕的成果。软件工程分为传统软件工程、面向对象软件工程、软件过程工程和构件软件工程四种。软件工程没有一个权威的定义,比较认可的定义为:软件工程是一门交叉学科,它是解决软件问题的工程,是对软件开发、运作、维护的系统化的、有规律的、可定量的研究方法。软件工程有明确的目标。那就是研制开发与生产出具有良好的软件质量和费用合算的产品。软件质量可用六个特性来评价:功能性、可靠性、易使用性、高效率性、可维护性、易移植性。
软件工程不同于一般工程,具体表现在: (1)软件是逻辑产品而不是实物产品,所以费用集中在研制开发上而不在生产上。软件不会用坏、磨损、老化,但有一个过时的问题。(2)由于软件是逻辑产品,使得它的功能只能依赖于硬件和软件的运行环境以及人们对它的操作,才能得以体现。(3)软件产品的功能比一般产品的功能复杂得多。(4)软件设计比一般产品复杂得多。具体表现在:功能的多样性,实现的多样性。推动软件工程发展的原动力是提高软件质量和软件开发的生产效率。
1 传统软件工程 传统软件工程采用面向过程,即结构化程序设计方法,既有很多成功的例子,例如DOS操作系统,也有很多失败的例子,例如美国阿波罗登月飞行计划的软件错误。因为传统软件工程不能驾驭复杂系统的开发,曾经一度产生了软件危机。面对越来越复杂的软件系统,传统软件工程已经不能胜任,在实践中,人们呼唤能适应复杂系统开发的软件工程方法学和软件开发技术的诞生,面向对象软件工程应运而生。进入20世纪90年代以来,Internet飞速发展,人们碰到了另一个难题,快节奏地开发基于Web的大型应用程序,面向对象软件工程及其技术已经不能胜任,人们尝试龙源期刊网 http://www.qikan.com.cn 利用基于构件的技术来解决,于是诞生了CORBA,COM及COM+,J2EE及EJB等基于构件的技术和软件开发方法。然而,今天的构件技术离人们追求的目标—— 软件工厂还相差甚远。
面向过程的优点:面向过程的思维方法是符合人类认识规律的,因为人们解决问题,总是一步一步进行的,其中,有顺序,条件和循环,利用这三大结构,可以解决世界上的任何问题。这些方法是优秀的,被面向对象和面向构件所吸收,成为类或构件内部实现的有力工具。面向过程的缺点:着眼于细节,不能很好地从宏观上把握系统。
传统软件工程提出的软件生存周期概念,影响深远。详细的软件生存周期分为软件系统的可行性研究、需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用、维护、退役十个阶段。粗略的软件生存周期分为系统分析、系统设计、编程、调试、使用、维护六个阶段。软件生存周期是一个自然的过程,所有软件开发都或多或少地要遵循这一过程。
2 面向对象软件工程 面向对象软件工程是运用面向对象方法,符合人类认识规律的一种软件工程。20世纪60年代后期出现了面向对象的编程语言,70年代初Xerox公司推出了Smailtalk语言。奠定了面向对象程序设计的基础,1980年出现的Smatltalk-80标志着面向对象程序设计进入了实用阶段。自80年代中期起,人们注重于面向对象分析和设计的研究,逐步形成了面向对象软件工程方法学。典型的方法有ECoad和E.YourDon的面向对象分析和设计,GBooch的面向对象开发方法,J.Rumbaugh等人提出的对象建模技术(OMT),Jacobson的面向对象软件工程等。90年代中期,由GBooth,J.Rumbaugh,Jacobson等人发起,在Booch方法、OMT方法、OOSE方法的基础上推出了统一的建模语言(UML),1997年被国际对象组织(OMG)确定为标准的建模语言。
面向对象方法的出现受到了计算机软件界的亲睐,并成为90年代的主流开发方法。面向对象方法的优点。
(1)从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律很长一段时间里,我们分析、设计、实现一个软件系统的过程与我们认识一个系统的过程存在着差异。例如结构化方法分析的结果是数据流图,设计的结果是模块结构,实现的结果是由程序模块组成的源程序。这些图中的成分或程序模块不能直接映射到客观世界中系统的实体上,也就是说,解空间的结构与问题空间的结构是不一致的。当用户需求有一些小的改变时,这种不一致性将导致分析、设计的较大变化。而面向对象方法则以客观世界中系统的实体为基础,将客观实体的属性及其操作封装成对象。在分析阶段,识别系统中的对象以及它们之间的关系;在设计阶段,仍延用分析的结果,并根据实现的需要增加、删除或合并某些对象,或在某些对象中添加相关的属性和操作,同时设计实现这些操作的方法;在实现阶段,则用程序设计语言来描述这些对象以及它们之间的联系。因此,面向对象方法的分析、设计、实现的结果能直接映射到客观世界中系统的实体上,也就是说,解空问的结构与问题空间的结构是一致的。分析、设计、实现一个系统的过程与认识这个问题的过程是一致的。由于面向对象的分析和设计采用同样的图形表示形式,分析、设计和实现都以对象为基础,因此面向对象开发的各阶段之间具有很好的无缝连接。当用户的需求龙源期刊网 http://www.qikan.com.cn 有所改变时,由于客观世界中的实体相对稳定,实体之间的联系也是基本不变,因此面向对象的总体结构也相对比较稳定,所引起的变化大多集中在对象的属性与操作及对象之间的消息通信上。总之,面向对象方法符合人们对客观世界的认识规律,所开发的系统相对比较稳定。
(2)开发的软件系统易于维护,其体系结构易于理解、扩充和修改面向对象方法开发的软件系统由对象类组成,对象的封装性很好地体现了抽象和信息隐蔽的特征。对象以属性及操作作为接口,使用者只可通过接口访问对象,对象的具体实现细节对外是不可见的。这些特征使得软件系统的体系结构是模块化的,这种体系结构易于理解、扩充和修改。当对象的接口确定以后,实现细节的修改不会影响其他对象,易于维护。同时也便于分配给不同的开发人员去实现,依据规定的接口能方便地组装成系统。
(3)面向对象方法中的继承机制有力支持软件的复用在同一应用领域的不同应用系统中,往往会涉及到许多相同或相似的实体,这些实体在不同的应用系统中存在许多相同的属性和操作。在开发一个新的软件系统时,可以复用已有系统中的某些类,通过继承和补充形成新系统的类。在同一个应用系统中,某些类之问也存在一些公共的属性和操作,也可以通过继承来复用公共的属性和操作。
3 构件软件工程的概念模型 构件和基于构件的方法是电子商务革命的驱动力,它们是Internet时代开发企业级解决方案的方法。在任何行业中,复杂情况通常是通过很多关键概念来解决的。这些概念是通过抽象、分解、选代、细化等方法来表达的。其中的关键是分解技术—— 把一个较大的问题分解成较小的、可管理的单元,这样每一个单元都是可以单独处理的,这个技术是软件工程的许多方法的核心。这些方法可以称为结构化设计,模块化编程,面向对象程序设计,基于构件的程序设计,它们产生的单元称为模块、包、对象或构件。
基于构件软件开发是历史发展的必然,基于构件的软件开发(Component Based Software Development),简称CBD。基于构件的软件工程(Component Based Software Engineering),简称CBSE。CBD追求的目标是软件的“即插即用”。回顾经典的工业化革命,不难得出一些有益的启示:功能再复杂的产品都是由大量标准的零件(领域构件)组成,零件在生产线上装配成一个产品,所有零件在产品中共同发挥作用。分工越细致,专业生产的程度越高,总体生产效率就越高。把这些启示运用于软件开发,那就是:标准的零件就是软件生产的构件,构件在软件生产线上通过集成得到新开发的软件。
3.1 为什么要使用基于构件的软件开发 使用基于构件的软件开发方法,有以下优点。 (1)遏制复杂性;(2)缩短发布时问;(3)提高一致性;(4)复用本领域的最佳方法;(5)提高生产率;(6)提高软件质量;(7)增加项目进度的可视性;(8)支持并行的和分布式的开发;(9)减少维护费用。 龙源期刊网 http://www.qikan.com.cn 3.2 构件的分类 构件有两个层次,粗粒度构件和细粒度构件。粗粒度构件指的是基于操作系统平台的构件,已经实现即插即用的目标。例如,基于Windows平台开发的各种应用软件,Microsoft Office,Windows Media Player, Realone Player,FlashGet,金山词霸,瑞星杀毒软件等等,这些应用程序可以直接安装使用,当不再需要这些应用程序的时候,可以通过自带的卸载程序或通过控制面板将其卸载。很明显,这正是我们所讨论的软件的“即插即用”,只不过这些构件跨平台能力太差,不能直接从Windows平台移植到Unix平台、Solaris平台或其它平台;复用程度也太差,不是我们心目中最求的目标。
细粒度构件指的是可以用来组装应用程序的构件,包括通用构件和专用构件,基于构件的软件开发讨论的就是这种构件。另一种分类是根据软件复用来进行分类的,分为广义构件和狭义构件。广义构件是指用于复用的软件实体,包括分析文档、详细设计、代码实现等。狭义构件特指二进制代码构件,可以用于组装应用程序。
3.3 CBD模型描述 基于构件的软件开发,简称CBD,足面向对象程序设计的继承和发展。一个构件由一个或多个对象经过包装构成,通过接口独立地对外提供服务。接口和硬件接口相似,有输入接口、输出接口和输入输出接口。我们看现实生活的一个例子,可以引发我们的很多思考。人是一个对象,也是经过规范包装的一个构件,其接口是眼、耳、鼻、舌、口、身,其中眼、耳、鼻、舌是输入接口,口是输出接口,身是输入输出接口。人通过输入接口接收信息和对外界的感知,通过神经传递消息,集中在大脑进行加工处理,反馈信息通过神经传递到输出接口,从而完成人对现实世界的认识和感知,完成人与人之问的沟通与协调,这样就构成了整个人类社会。