网构软件技术体系_一种以体系结构为中心的途径

合集下载

面向工厂的网构软件体系结构研究

面向工厂的网构软件体系结构研究

体 系结 构。 以流 水 线 的 方 法进 行 指 导 , 并 以一 个 远 程 教 育 集 成 系统 为例 ,分 析 说 明 了该 结 构 的应 用 方 法 。 关 键 词 : 网构 软件 ; 系结构 ; 模 流 水 线 ; 厂 软 件 ; 线 演化 ; 程 教 育 集 成 系统 体 建 工 在 远
l y r o h ir r h s a b ss f r A mo ei g a p o c o t e f co y n t r o fg r t n s f r r h tcu e Th a e ft e h e a c y a a i o d l p r a h t h a t r ewo k c n i u ai ot e a c i t r n o wa e e
Re e rh o a tr re td Newok Sr cu e S f r c i cu e s ac fF coy O ine t r tu tr ot eAr ht tr wa e
L i IBu
( aT a h r ’ l g , t r n g me tC ne, iin 1 7 1 Ab e c es Col e Newo kMa a e n e tr P xa 6 1 4 ) e
Abta t ti ueo ecr n ntokcn grt nsf ae teb s betel e, ot lae n aait rt n s c:hs s fh ur t ew r of uai ot r;h ai ojc v yrcnr yr ddt ne a o r t e i o w c i a ol a g i
不但具备 We b服务 的标准和技术 ,还包 括了实现服务 行为 的 功能和 服务质量 ,主要 表现在各 型中设计业 务实体 ,使用代 码分

软件工程进展的新方向——网构软件pub

软件工程进展的新方向——网构软件pub

软件工程进展的新方向——网构软件摘要网构软件是软件工程中一种较新的进展方向,其通过利用Internet散布式效劳的特性和其动态感知外部环境的能力,将Internet中的各类效劳动态的集成为最新的软件形态,以知足用户在应用中不断转变的需求,并能维持软件提供效劳的稳固性。

由于这一软件形态特有的特点,其开发进程也具有与传统软件形态不同的特性,本文通过对照网构软件与传统软件的特性、开发进程等,论述了网构软件所具有的独特优势和良好的进展前景。

关键字网构软件 InternetWare一、网构软件的概念网构软件是973项目提的一个概念。

为了适应开放、动态、难控的网络环境的需求, 软件系统开始呈现出一种柔性可演化、持续反映式、多目标适应的新系统形态. 从技术的角度看, 在面向对象、软件构件等技术支持下的软件实体以主体化的软件效劳形式存在于Internet 的各个节点之上, 各个软件实体彼其间通过协同机制进行跨网络的互连、互通、协作和联盟, 从而形成一种与WWW 相类似的软件Web(software Web). 网络环境的开放、动态和多变性, 和用户利用方式的个性化要求决定了如此一种软件 Web 再也不像经典软件那样一蹴而就, 它应能感知外部环境的动态转变, 并随着这种转变依照功能指标、性能指标或靠得住性指标等进行静态(离线)的调整和动态(在线)的演化, 以使系统具有尽可能高的用户中意度. 咱们将如此一种新的软件形态称之为网构软件(Internetware),它具有自主性、协同性、反映性、演化性和多目标性等特点。

二、网构软件的进展中国软件工程最近几年来进展迅猛,可是关于西方来讲,很多人对中国软件工程的了解仍是一片空白或仅仅停留在“进展迅速”的概念时期。

1980年中国启动了软件工程的研究和实践,研究的进程和功效与国际趋势是一致的。

80年代开始了软件工程开发方式学的研究。

中国软件企业方才起步,还停留在手工作坊时期。

90年代以构件技术为表现开展前沿研究,成立了较为全面的软件环境。

计算机网络技术基础课后题答案

计算机网络技术基础课后题答案

1选择题(1)具有中心节点的网络拓扑属于(星形网络)。

(2)在(环形)拓扑结构中,一个电缆故障会终止所有的传输。

(3)树形网络是(星形网络)的一种变体。

(4)一座大楼内的一个计算机网络系统属于(LAN )。

(5)下述对广域网的作用范围的叙述最准确的是(100 km 以上)。

(6)在常用的传输介质中,带宽最大、信号传输衰减最小、抗干扰能力最强的一类传输介质是(光纤)。

⑺在脉冲编码调制方法中,如果规定的量化级是64个.则需使用(6 )位编码。

(8)波特率等于(每秒传送的比特数)。

(9)两台计算机利用电话线路传输数据信号时需要的设备是(调制解调器)。

(10)一种用载波信号相位移动来表示数字信号的调制方法称为(移相)键控法。

(11)在计算机网络OSI参考模型中,同一节点内相邻层次之间通过(接口)来进行通信。

(12)在TCF Y IP簇中,TCP是一种(传输层)协议。

(13)在应用层协议中,( DNS )既依赖于TCP又依赖于UDP(14)在OSI参考模型中.与TCP/IP参考模型的网络接口层对应的是(物理层和数据链路层)。

(15)在快速以太网中,支持5类UTP标准的是(100Base-TX )。

(16)在共享式以太网中,采用的介质访问控制方法是(CSMA/CD )。

(17)交换式以太网的核心设备是(以太网交换机)。

(18)( 以太网)在逻辑结构上属于总线型局域网,在物理结构上可以看成星形局域网。

(19)在快速以太网中,支持5类UTP标准的是(100Base-TX )。

(20)IEEE 802.2 协议中10 Base—T标准规定使用5类UTP寸,从网卡到集线器的最大距离为(100m )。

(21)在计算机网络中,树形网络是(星形网络)的一种变体。

(22)( 波特率)是一种调制速率,也成为“波形速率”或“码元速率”。

(23)传统交换机工作在OSI参考模型的(数据链路层)(24)在下面设备中,(集线器)不是工作在数据链路层(25)在计算机网络中,能将异种网络互联起来,实现不同网络协议相互转换的网络互联设备是(网关)(26)当需要将一个局域网接入In ter net时,可选用(路由器)(27)(路由器)是可以在两个或两个以上的局域网之间选择最佳路由的网络连接设备(28)下列(Windows 2000 Professional )不属于网络操作系统(29)对于安全性和稳定性较高的大型网络,应当选择(UNIX)操作系统,对于系统稳定性和安全性要强求不高的中小型网络,应当选择(Windows 2000)操作系统(30)E-mail地址的格式为(用户名牛主机域名)(31)在电子邮件中所包含的信息(可以是文字、声音和图形图像信息)(32)IP地址127.0.0.1 表示(一个环回地址)(33)HTM是一种(超文本标记语言)(34)B类IP地址的第一个字节的范围是(128-191)(35)IP 地址129.56.32.51 的(129.56 )表示网络ID(36)计算机病毒是指(以危害系统为目的的特殊计算机程序)(37)最简单的防火墙采用的是(包过滤)技术(38)由设计者有意建立起来的进入用户系统的方法是(后门)(39)网络感染病毒的途径有很多种,但发生得最多却又容易被人们忽视的是(网络传播)(40)下面关于TCP/IP的叙述中,(Internet的主机标识是IP地址)是错误的2. 填空题(1)从技术层面上讲,计算机网络是(计算机)技术和(通信)技术相结合的产物。

02325 计算机系统结构(自考)第一章 概论 笔记(手写)

02325 计算机系统结构(自考)第一章 概论 笔记(手写)

1计算机系统的的层次结构以现代通⽤计算机系统可以分成哪⼏级它们的相对位置各机器级的实现是⽤的翻译技术还是解释技术z⽬前情况来看MO ⽤硬件实现⼤的数2软件层⾼级语⾔通过软件MI ⽤微程序固件实现实现2汇编语⾔M 2M 5⽤软件实现ii 传统机器语⾔䎚鱲2瀶固件就是具备软件功能的⼀种硬件硬件实现作业控制语⾔微程序以什么是翻译技术什么是解释技术翻译技术⽤转换程序将⾼⼀级机器级上的程序整个地址转换为低⼀级机器级上的等效程序之后在低⼀级机器级上实现的技术解释技术在低级机器级上⽤⼀串语句或指令来仿真⾼级机器级上的⼀条语句或指令的功能是通过对⾼级机器级上的每条语句或指令逐条解释的技2.1计算机系统结构组成和实现的定义和研究⽅⾯1从计算机的层次结构⻆度来看系统结构system Architecture 是对计算机系统中各级界⾯的定义及其上下的功能分配iiiiii2计算机系统结构也称计算机系统的体系结构computer Architecture 它只是系统结构中的⼀部分指的传统机器语⾔机器级州的系统结构因此它是软件和硬件1固件的交接⾯是机器语算结论计算机系统结构研究的是软硬件之间的功能分配以及对传统机器级界⾯的确定为机器语⾔汇编语⾔程序设计者或编译程序⽣成系统设计或⽣成的程序能在机器结嘔趣魂䃴䏈臨嚹櫉出㒧瀃暶软礮 嚻㗸磡璐璐额嚻嚻 㓸年就⽬前的通⽤机和总其计算机系统结构的属性包括以D 硬件能够直接识别和处理的数据类型及格式等的数据表示系最⼩可寻址单位寻址种类地址计算等的寻址⽅式统通⽤寄存器的设置涨数量使⽤约定等的寄存器组织以⼆进制或汇编指令的操作类型格式排序⽅式控制机构等的指全系统构外主存的最⼩编址单位编址⽅式容量最⼤可编址空间等的存储系统组织以中断的处理与分级中断处理程序的功能与⼊⼝地址等的中断机构系统机器级的管态与⽤户态的定义与切换8输⼊1输出设备的连接使⽤⽅式流量操作结束出错指示等的机器级⼯10结构以系统各部分的信息保护⽅式和保护机构等属性_Énn 囎的讞囄 龖嚻欏㺦䵴 邈悦的縅 辄算樾设计䯁ì点2专⽤部件的设置是否设置乘除法浮点运算字符处理地址运算等专⽤部件设置的数量与机器要达到的速度价格以及专⽤部件的使⽤频率有关机烈各种操作对部件的共享程度分时共享使⽤程度⾼虽然限制了速度但价格便宜设置部件的降低共享程度因操作系统并⾏度提⾼可提⾼速度但价格也会提⾼4功能部件的并⾏度是⽤顺序串⾏还是⽤重叠流⽔或分布式控制和处理iii 䨊i ǐiiiiiiii iiiiiiiiin 控制机构的组成⽅式⽤硬件还是微程序控制是单机处理还是的机或功能分布处理成7预估预判技术⽤什么原则为优化性能预测未来⾏为6计算机的实现computer Implementation指的是计算机组成的物理实现包括处理机珔等部件的物理结构器件的集成度和速度器件模块插件底板的划分与连接专⽤器件的设计微组装技术信号传输电源冷却及整机装配技术等7计算机实现的设计着眼于器件技术和微组装技术器件技术起着主导作⽤8指令系统的确定属于计算机系统结构指令的实现如取指令指令操作码译码计算操作数地址取数运算送结果等的操作的安排三和排序属于汢籃噍感实现这些指令功能的具体计电路器件的说⽜的装⾣䃢⼰技术属于计算机实现ftpmsn琺迹歛辔緪appointingpinetnn感乘法器加法⼀位移器的物理实现中的类型叔美成度数量价格以及微组装技术的确定和选择属于计算机实现-0ns中央处理机任存算外⼀箱溜畦侧的概念性结构图䃴嚻蜘理雄和醚-嚻制品外诞级槬以瑡⼼纙斌䴍出硬件⽅⾯2通道机实设备控制器i10机器1汇编指令系统数据表示是否采⽤通道⽅式输⼊1输出的确定属于计算机系统结构指令采⽤重叠流⽔还是其他⽅式解释数据通路宽度的确定通道采⽤结合型还是独⽴型属于计算机组成2.2系统结构组成和实现的相互关系和影响1相同结构如指令系统相同的计算机可以因速度不同⽽采⽤不同的组成⼀种组成也可以有多种不同的实现⽅法2组成也会影响结构了组成设计向上决定结构向下受限于实现技术4由于计算机组成和计算机实现关系密切有⼈将它们合称计算机实现即计算机系统的逻辑实现和物理实现ǜjiiiiii iiiiiiii能分配和确定程序设计者所看到的机器级界⾯的计算机系统结构称结论计算机系统结构设计的任务是进⾏软硬件的功能分配确定传统机器级的软硬件界⾯但作为计算机系统结构这⻔学科来讲实为程序设计者看到的计算机系统结构把着眼于如何更好更合理地实现分配给硬件的功能的计算机组成称为计算机设计者看到的计算机系统结构3计算机系统的软硬件取舍与设计思路引软硬件实现的优缺点1从原理上来讲软件的功能可以由硬件或固件来完成硬件的功能也可以由软件来模拟完成只是它们在性能价格实现的难易程度是不同的2软件实现的速度慢编制复杂编程⼯作量⼤程序所占存储空间量较的i 但是所花硬件少硬件的实现上也就相对简单容易硬件的成本低解题的灵活性和适性就好了具有相同功能的计算机系统其软硬件功能分配⽐例可以在很宽的范围内变化如下图⼀般来说提⾼硬件功能的⽐例可提⾼解题速度减少程序所需的时间但会增加硬件成本降低硬件利⽤率和计算机系统的灵活性及适应性提⾼软件功i ǘjf ǘǜǜ是⾼系统的灵活性适应性但是解题速度会下降软件设计费⽤和所需的存储器⽤量增加了原则D 应考虑在现有的硬器件主要是逻辑器件和存储器件的条件下系统要有⾼的性价⽐以实现费⽤速度和其他性能⽅⾯考虑2要考虑到准备采⽤和可能采⽤的组成技术使之尽可能不要过的或不合理地限制各种组成实现技术的采⽤了不能仅从硬的⻆度考虑如何便于应⽤组成技术的成果和便于发挥器件技术的发展还应从软的⻆度把如何为编译和操作系统的实现以及1⾼级语⾔程序的设计提供更的更好的硬件⽀持放在⾸位软硬件取舍的最终⽬标提⾼性能降低消耗评判性能的标准使⽤者响应时间完成任务的时间服务者吞吐量单位时间内的⼯作总量2软硬件取舍成本计算13软件开发费⽤C 软件重复设计的次数品硬件开发费⽤R 软件复制和存储的次数的更件实现的费⽤i Dn Nt Mn Ms 软件重复⽣产的费⽤例如批量部署1软件实现的费⽤Ds x clvtM tn Mn 硬件重复⽣产的费⽤⽣产计算机系统台数3.3计算机系统的定量设计原理真实程序的运⾏时间是衡量计算机性能的唯⼀可靠的①⼤概率事件优先原则喧⾛曼n 铡压n 缩原理oir提⾼经常性事件的处理速度经常性事件例如程序中的循环体②阿姆达尔Amdahl 定律定义系统性能的加速⽐确定对性能限制最⼤的部分计算改进某些部件所获得的性能提⾼③程序的局部性 效旦 璧和空间㞗盥改进效果好的⾼性能系统应是个各部分性能功能平衡得到提⾼的系统时间局部性现在正在使⽤的信息将来还要使⽤如程序中存在循环空间局部性将来要使⽤的信息与现在正在使⽤的信息在程序位置上是相邻的因为指令通常是顺序存放的数据也通常是以向量阵列树表等形式簇数据时间局部性空间局部性And 定律系统性能改进前⼆总执⾏时间部件加速⽐指令循环语句总加速⽐⼆系统性能改进后总执⾏时间瞿善⼆1-可改进⽐例可改进⽐例变量数据顺序语句字符串常量数据4计算机系统的设计⽅法①计算机系统⼀般有3种设计⽅法D 由上往下⾃顶向底专⽤机设计⽅法先考虑满⾜应⽤要再逐级向下设计串⾏设计⽅法周期⻓成本⾼难以量化2由下往上⾃底向顶通⽤机设计⽅法不考虑应⽤要求先根据已有条件设计硬件软件设计需要被动地适应硬件3⾃中间开始向两边设计它可以克服以上两⽅式中软硬件设计分离和脱节的致命缺点5软件应⽤器件的发展对系统结构的影响-5.1软件发展对系统结构的影响①软件的可移植性Portability 指的是软件不修改或只经少量修改就可由⼀台机器移到另⼀台机器上运⾏同⼀软件可应⽤于不同的环境软件兼容性i 向后兼容第⼀代电⼦管valve 1945-1954IBM 701机器档次当前机器第⼆代i 晶体管Transistor 19551964IBM7030㿚䨻容向后兰道时间第三代集成电路四1965-1974IBM张巧第四代⼤规模集成电路以红19741940IBM 3090Pc 第五代微处理器19902000IntelArm ②实现可移植性的常⽤⽅法D 采⽤系列机由同⼀⼚家⽣产的具有相同的系统结构但具有不同组成和实现的⼀系列不同型号的机器2模拟和仿真使件能够在具有不同系统结构的机器之间相互移植3i 实理软件移植的⼀种理想的⽅法例如Java 语⾔程序能在不同架构平台上运⾏模拟姚妣啊䲉犌⻰台 瞅⼀雅 额殆机⼀⼀刷啪镶处理器件发展历史通常⽤〇解释的⽅法去实现运⾏速度慢性能较差只适⽤于移植运⾏时间短使⽤次数少且在时间短上没有约束和受限制的软件仿真emulation ⽤⼀台现有的机器缩主机上的微程序〇去解释另⼀台机器⽬标机的指令集运⾏速度⽐模拟⽅法的快仿真只能在系统结构差距不⼤的机器之间使⽤区别模拟和仿真的区别在解释使⽤的语⾔模拟是⽤机器语⾔程序解释解释程序存储于主存中仿真使⽤微程序解释解释程序存储于控制存储器中③模拟与仿真的选择离频繁使⽤易于仿真的机器指令宜⽤仿真以提⾼速度较少使⽤的难以仿真的指令以及北操作宜⽤模拟即使两种机器系统差别不⼤往往也需要⽤模拟来完成机器间的映像11④3种⽅法的优缺点统⼀⾼级语⾔可以解决结构相同或完全不相同的机器间移植是未来发展⽅向但是⽬前难以解决只能做到相对统⼀系列机是当前遍采⽤的⽅法但只能实现同⼀系列内的软件兼容虽然允许发展变化但兼容的约束反过来会阻碍系统结构取得突破性的进展模灵活可实现不同系统结构间的软件移植但结构差别过⼤时效率速度会急剧下降伤真在速度上损失⼩但不灵活只能差别不⼤的系统之间使⽤否则效率也会过低且难以仿真需要与模拟结合才⾏此外发展异种机联⽹也是实现软件移植的⼀种途径5.2应⽤的发展对系统结构的影响不同的应⽤对计算机系统结构的设计提出了不同的要求应⽤需求是促使机算机系统结构发展的最根本的动⼒在不同的领域需要⾼性能的系统结构多媒体引了游戏⾼清影⾳⽹络应⽤⾼性能路由防⽕墙科学计算天⽓预报⽯油勘探班⽤户⻘尵 器件⼚家⽣产时固定的器件的⽤户即机器设计者只能使⽤不能改变器件内部功能现场为⽤户根据需要可改变器件内部功能⽤户为专⻔按⽤户要求⽣产的⾼度集成的以红器件完全按照⽤户要求设计的⽤户⽚称为全⽤户⽚⼀般同⼀系列内各档机器可分别⽤通⽤⽚现场⽚和⽤户为实现6系统结构的并⾏性开发及计算机轰统的分类6.1并⾏性概念与开发6.1.1并⾏性的含义与级别①并⾏性包含同时性和并发性两重含义⾃然性simultaneity 指两个或约个事件在同⼀时刻发⽣并发性concurrency 指两个或㑜事件在同⼀⽇②䲜䉪厵并⾏鍳靠 礜为了能并⾏处理以提⾼计算机解题的效率CnnD 计算机系统执⾏程序⻆度由低到⾼等级齽产操作之间的并⾏执⾏2指令之间放条指令的并⾏执⾏14作业或程序之间c______12计算机系统中处理数据⻆度由低到⾼等级冯⽒分类法1972冯泽云1位串字串同时只对⼀个字 齹⼯整处理通常指串⾏单处理机⽆并⾏性2位并字串并⾏单处理机3i 位为串字并不⼀⼀对许的字的同⼀位称位⽚进⾏处理3并⾏性贯穿于计算机信息加⼯的各个步骤和阶段的i 存储器操作并⾏2处理器操作并骤并⾏了处理器并⾏tiiiiii inin4指令任务作业并⾏皊之⼆及以上的并⾏是所处之理机同0时对然⾦撧或相关的的组娄-対居进⾏处理操作上避流的数据流计算机6.1.2并发性开发的途径时间重叠i鼝相互错不轮流重叠使⽤同⼀套硬件设备的各个部分加快硬件周转来赢得速度②资源重复邈邈䟐群Replication重复设置硬件资源来提⾼可靠性或性能③资源共享逛䬒aresharing⽤软件⽅法让的个⽤户按⼀定时间顺序轮流使⽤同⼀套资源来提⾼资源利⽤率相应地6.1.3多机系统的耦合度耦合度⽤于反映的机系统中各机器之间物理连接的紧密度和交叉作⽤能⼒的强弱1各种脱机处理系统是最低耦合系统lease coupled system 2多台计算机通过通道或通信线路实现互连以较低频带在⽂件或数据集⼀级相互作⽤这种系统被称为松散耦合系统loosely a system或间接耦合系统Indirectly Coupled system3多台计算机通过总线或⾼速开关琏共享主存有较⾼的信息传输速率可实现数据集⼀级任务级作业级并⾏则称该系统为紧密耦合系统Tighcoupled system 或直接耦合系统Directly c oupled system 6.1.4计算机系统的分类弗林分类瀓按照指令流和数据流的的倍性进⾏分类共分为4类数据流由执令流调⽤的数据序列圝鬬管⾔ 䨻⽇搻䲜时处于同⼀执⾏阶段的指令或数据的最⼤数⽬单指令流单数据流GED Single Instruction stream Single Data stream 单指令流的数据流Gen single Instruction stream Multiple Data Stream 阵列处理机和相联处理机多指令流多数据流㟗⽆实现对应的应⽤传统的单处理计算机多指令流单数据流MIS D -。

软件定义网络(SDN)基础教程-习题答案(刘江)

软件定义网络(SDN)基础教程-习题答案(刘江)

软件定义网络(SDN)基础教程课后习题答案第一章SDN基础知识1.SDN相比于传统网络的优势在哪里?会带来哪些问题?参考答案:SDN与传统网络的最大区别就在于它可以通过编写软件的方式来灵活定义网络设备的转发功能。

在传统网络中,控制平面功能是分布式地运行在各个网络节点中的,如集线器(Hub)、交换机(Switch),路由器(Router)等。

因此新型网络功能的部署需要所有相应网络设备的升级,这导致网络创新往往难以落地。

而SDN将网络设备的控制平面与转发平面别离,并将控制平面集中实现,这样新型网络功能的部署只需要在控制节点进行集中的软件升级, 就能实现快速、灵活地定制网络功能。

另外,SDN架构还具有很强的开放性,它通过对整个网络进行抽象,为用户提供完备的编程接口,使用户可以根据上层应用个性化地定制网络资源来满足其特有的需求。

由于其具有开放可编程的特性,SDN有可能打破某些厂商对设备、协议以及软件等方面的垄断,从而使更多的人可以参与网络技术的研发工作。

SDN数据控制别离目前面临的问题包括以下几种。

① 可扩展性问题:这是SDN面临的最大问题之一。

数据控制别离后,原来分布式的控制平面集中化了,即随着网络规模扩大,单个控制节点的服务能力极有可能会成为网络性能的瓶颈。

因此控制架构的可扩展性是数据控制别离后的主要研究方向之一。

②一致性问题:在传统网络中,网络状态一致性是由分布式协议保证的。

在SDN数据控制别离后,集中控制器需要承担这个责任。

如何快速侦测到分布式网络节点的状态不一致性, 并快速解决这类问题,也是数据控制别离后的主要研究方向之一。

③ 可用性问题:可用性是指网络无故障的时间占总时间的比例。

传统网络设备是高可用的,即发向控制平面的请求会实时得到响应,因此网络比较稳定,但是在SDN数据控制别离后,控制平面网络的延迟可能会导致数据平面可用性问题。

2.SDN架构包含哪些模块?参考答案:ONF定义的架构共由4个平面组成,各平面之间使用不同的接口协议进行交互,各平面的主要功能如下:(1)数据平面:数据平面由假设干网元构成,每个网元可以包含一个或多个SDN数据路径, 是一个被管理的资源在逻辑上的抽象集合。

信息系统分析与设计复习题及答案

信息系统分析与设计复习题及答案

信息系统分析考题及答案--1.什么是SDLC,SDLC分为那几个阶段?答:SDLC叫系统开发生命周期,是软件工程中的一个通用性名词,它说明了软件产品开发的过程性和方法学。

SDLC分为以下几个阶段(1)项目计划阶段:是SDLC的最初阶段,其目标是确定项目要解决的问题并对项目做出有关计划;(2)分析阶段:目标是了解并理解信息系统的需求以及定义需求,也就是构造新系统的逻辑模型;(3)设计阶段:目标是从实现角度设计系统的解决方案,也就是构造新系统的物理模型;(4)实施阶段:目标是构造一个可靠的可工作的新系统;(5)支持阶段:目标是保证系统的长期有效运行。

2.数据和信息的概念及其关系与区别?答:数据是用来记录客观事物的可识别的物理符号序列。

信息是加工处理之后的数据,是有一定含义的数据,是对决策有价值的数据。

数据时信息的载体,是信息的表现形式,而信息则是数据的加工、提炼和浓缩,是对数据含义的理解。

但并非所有的数据都可以表示成信息,而信息不随载荷它的物理介质变化而变化,而数据则不然,即承载数据的载体不同,它的表现形式也可以不同。

3.如何认识信息系统不仅是一个技术系统同时又是一个社会系统?(书上没有,自己归纳)4.信息系统的概念,列举几种常用的信息系统?答:信息系统是一系列相互关联的可以收集(输入)、操作和存储(处理)、传播(输出)数据和信息并提供反馈机制以实现其目标的元素或组成部分的集合。

在信息系统中,输入时获取和收集原始数据的活动。

在信息系统中,反馈是一种用来改变输入或处理的输出。

反馈回来的误差或问题可以用来修正输入数据,或者改变某过程。

,信息系统既可以是手工的,也可以是计算机化的。

例如一些投资分析家手工绘制图表和趋势图,以帮助他们做出投资决定。

根据过去几个月或几年的股票价格数据,这些分析家根据图示信息分析股票形势,利用这些分析来帮助他们确定哪些股票的价格会在几天或几周内有变化,再比如现在已经开发出了大量的用来分析股票指数,进行市场预测,同时建议什么时候买卖股票的软件系统。

李良荣网络与新媒体概论名词解释

李良荣网络与新媒体概论名词解释

李良荣⽹络与新媒体概论名词解释⽬录第四次传播⾰命 (3)Web2.0 (3)“去中⼼化” (3)“再中⼼化” (3)两个舆论场 (3)互联⽹ (4)新媒体 (4)IPTV (4)5G (4)超链接hyper link (4)维基百科Wiki (4)社交⽹络social network service (5)BT(bit torrent (5)【电⼦商务形式】 (5)LBS【location based service】 (5)Solomo (5)⼤数据 (5)德拉吉报告 (6)5W模式 (6)受众 (6)魔(⼦)弹论/⽪下注射理论 (6)⾃媒体“We Media (6)UGC【User Generated Content】 (6)PGC(Professional Generated Content) (7)MCN(Multi-Channel Network) (7)KOL (Key Opinion Leader,简称KOL) (7)OTT TV “Over The Top TV” (7)P2P(Peer to peer network) (7)意见⾃由市场 (7)协同过滤 (7)AI (8)UI (8)体验经济 (8)信息茧房 (8)群体极化 (8)媒介融合(media convergence) (8)中央厨房 (9)框架理论 (9)场域 (9)众包 (9)迭代新闻/钻⽯模型(Iterative Journalism) (9)意见领袖/新意见领袖(opinion leader) (9)搜索引擎营销SEM Search Engine Marketing (10)⼆⼋定律 (10)长尾理论 (10)媒介素养/⽹络媒介素养(media literacy) (10)信息聚合information aggregation (11)我的⽇报the daily me (11)棱镜门 (11)门户⽹站 (11)⽹络舆论 (11)社交媒体social media (12)第四次传播⾰命~指互联⽹相关技术的推⼴使⽤以及由此带来的新媒体的勃兴。

计算机软件动态演化技术概述

计算机软件动态演化技术概述

计算机软件动态演化技术概述摘要:本文阐述了软件动态演化技术的现状,研究意义和发展前景。

关键词:动态演化;语言层面;体系结构模型中图分类号:tp311.521 软件动态演化的定义计算机软件技术的发展,令人们的社会生活变得丰富有趣,然而随着计算机硬件技术和网络技术的快速发展,各种各样的计算硬件平台充斥到计算机网络应用的方方面面,许多软件已经因为不能适应物理环境的改变失去了生存空间,人们期望能够有一种新的软件技术来代替原有的软件开发技术,使得开发出的软件能够适应物理环境的改变,延长软件的生命周期,降低软件的开发成本。

针对这个问题,国内外专家学者都提出了自己的解决方案,如网构软件、自治计算和普适计算机模式等。

透过现象看本质,产生这个问题的原因是变化,网络环境的改变,硬件环境的改变和人们对软件功能的需求改变。

为了解决这个问题,软件动态演化技术应运而生。

软件动态演化技术就是期待所开发出来的软件能够在运行中,根据环境地变化而主动修改执行以呈现不同的功能行为的技术。

演化主要由满足设计期间需求的预设演化和满足运行期间需求的非预设演化构成。

目前,软件动态演化已经成为软件工程中一个新的但是很热门的研究领域。

2 软件动态演化的意义传统软件常常期望能够尽可能多的满足用户的需求,也就是传统软件演化主要是预设演化,但由于用户需求、网络环境介质,拓扑结构,计算平台等软件应用环境的改变以及软件开发周期的限制,要在软件开发的设计初期考虑所有潜在和未知的需求几乎是不可能的。

因此为了延长软件的生存周期,使有限的资源发挥最大的功效,提升软件的适应能力,软件需要具有动态演化的能力。

另外,互联网经济体已经成为世界上最重要的经济体之一,互联网经济体对软件的需求是不间断运行,这也是互联网经济体的特点之一,在这种情况下,那怕是因为正常的软件升级和优化造成的短暂停止都会带来巨大的损失,这是用户所不能忍受的。

所以支持动态演化是软件维护过程中的有力保证。

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

中国科学 E辑: 信息科学 2008年 第38卷 第6期: 818~828 818 《中国科学》杂志社SCIENCE IN CHINA PRESS网构软件技术体系: 一种以体系结构为中心的途径杨芙清①②*, 吕建③④, 梅宏①②①北京大学高可信软件技术教育部重点实验室, 北京 100871;②北京大学信息科学技术学院软件研究所, 北京 100871;③南京大学计算机软件新技术国家重点实验室, 南京 210093;④南京大学计算机软件研究所, 南京 210093* E-mail: yang@收稿日期: 2007-12-24; 接受日期: 2008-03-06国家重点基础研究发展规划资助项目(批准号: 2002CB312000)摘要作为Internet环境下的一种新型的软件形态, 网构软件对传统的软件开发理论、方法与技术提出了一系列的挑战. 我国学者在国家“973”计划支持下, 经过5年的研究与实践, 形成了一套以体系结构为中心的网构软件技术体系. 在网构软件模型方面, 通过开放协同模型、情境驱动模型和智能可信模型实现了网构软件基本实体的构件化、主体化、服务化以及实体间开放的结构化的按需协同; 在网构软件中间件方面, 以构件化的中间件平台体系为基础, 实现了支持网构软件基本实体运行的容器、支持按需协同的运行时体系结构、以及基于反射的网构软件自治管理; 在网构软件开发方法方面, 以全生命周期软件体系结构为核心, 通过模型驱动的方式支持网构软件基本实体和结构化协同的高效开发、以及遗产系统向网构软件的半自动转换, 并通过领域建模实现了网构软件无序资源的有序组织. 关键词网构软件构件软件体系结构Agent软件中间件软件是客观事物的一种虚拟反映, 是知识的固化、凝炼和体现. 软件的这种本质, 驱动着软件基本模型不断追求更具表达能力, 更符合人类思维模式, 更具可构造性和演化性的软件结构, 如, 结构化软件试图适应人分析问题和解决问题的思维模式, 面向对象软件试图适应客观世界的问题结构. 另一方面, 软件的主要作用是指导计算机系统进行问题求解并实施相应的管理, 这就驱动着软件不断追求更高效合理地发挥硬件资源所提供的计算能力. 以操作系统为例, 首先, 随着计算机硬件的发展, 单机操作系统从最早的引导程序到管理计算机资源的中国科学E辑: 信息科学 2008年第38卷第6期管理程序, 再发展到发挥CPU能力及外设功用的多道程序支撑, 最后发展为追求计算机软硬件高效利用的资源管理系统. 网络操作系统的出现主要是用以支持多个计算机之间的网络通信, 实现资源共享, 而并行操作系统是为了管理大规模并行处理系统. 同时, 无线通信、信息家电的发展在一定程度上又促进了嵌入式操作系统的发展. 简言之, 随着应用领域和信息技术的持续发展变化, 软件技术及系统也不断地升级、演化, 呈现出不同的形态.进入21世纪, 以Internet为代表的网络逐渐融入人类社会的方方面面, 极大地促进了全球化的广度和深度, 为信息技术与应用扩展了发展空间. 另一方面, Internet正在成长为一台由数量巨大且日益增多的计算设备所组成的“统一的计算机”, 与传统计算机系统相比, Internet为应用领域问题求解所能提供的支持在量与质上均有飞跃. 为了适应这些应用领域及信息技术方面的重大变革, 软件系统开始呈现出一种柔性可演化、连续反应式、多目标自适应的新系统形态. 从技术的角度看, 在面向对象、软件构件等技术支持下的软件实体以主体化的软件服务形式存在于Internet的各个节点之上, 各个软件实体相互间通过协同机制进行跨网络的互连、互通、协作和联盟, 从而形成一种与WWW相类似的软件Web(software Web). 我们将这样一种Internet环境下的新的软件形态称为网构软件(Internetware)[1,2].具体而言, 网构软件包括一组分布于Internet 环境下各个节点的、具有主体化特征的软件实体, 以及一组用于支撑这些软件实体以各种交互方式进行协同的连接子. 这些实体能够感知外部环境的变化, 通过体系结构演化的方法(主要包括软件实体与连接子的增加、减少与演化、以及系统拓扑结构的变化等)来适应外部环境的变化, 展示上下文适应的行为, 从而使系统能够以足够满意度来满足用户的多样性目标. 网构软件这种与传统软件迥异的形态, 在微观上表现为实体之间按需协同的行为模式, 在宏观上表现为实体自发形成应用领域的组织模式. 相应地, 网构软件的开发活动呈现为通过将原本“无序”的基础软件资源组合为“有序”的基本系统, 随着时间推移, 这些系统和资源在功能、质量、数量上的变化导致它们再次呈现出“无序”的状态, 这种由“无序”到“有序”的过程往复循环, 基本上是一种自底向上、由内向外的螺旋方式.从网构软件的角度来考察当今有代表性的软件工程方法学, 可以发现传统的软件工程方法学体系由于其本质上是一种静态和封闭的框架体系, 难以适应Internet开放、动态、难控以及应用领域全球化、个性化、持续成长等特点. 本质上, 网构软件是传统软件在Internet环境下的一种自然延伸, 其基本特征、概念框架、逻辑内涵、关键技术可视为未来软件方法与技术的一种抽象规约. 在国家重点基础研究发展规划(973)的支持下, 来自北京大学、南京大学、清华大学、中国科学院软件研究所、中国科学院数学研究所、华东师范大学、东南大学、大连理工大学、上海交通大学等单位的研究人员以我国软件产业需支持信息化建设和现代服务业为主要应用目标, 提出了“Internet环境下基于Agent的软件中间件理论和方法研究”, 并形成了一套以体系结构为中心的网构软件技术体系, 主要包括3个方面的成果: 在网构软件实体模型方面, 剥离对开放环境以及其他实体的固化假设, 以解除实体之间以及实体与环境之间的紧密耦合, 进而引入自主决策机制来增强实体的主体化特性; 在网构软件实体协同方面, 针对面向对象方法调用受体固定、过程同步、实现单一等缺点, 对其在开放网络环境下予以按需重新解释, 即, 采用基于软件体系结构的显式的协同程序设计, 为软件实体之间灵活、松耦合的交819杨芙清等: 网构软件技术体系: 一种以体系结构为中心的途径互提供可能; 在网构软件运行平台(中间件)方面, 通过容器和运行时软件体系结构分别具体化网构软件基本实体和按需协同, 并通过构件化平台、全反射框架、自治回路等关键技术实现网构软件系统化的自治管理; 在网构软件开发方法方面, 提出了全生命周期软件体系结构以适应网构软件开发重心从软件交付前转移到交付后的重大变化, 通过以体系结构为中心的组装方法支持网构软件基本实体和按需协同的开发, 采用领域建模技术对无序的网构软件实体进行有序组织.1网构软件模型软件模型是软件方法学的核心, 集中体现了一种软件方法及其技术支撑体系以何种基本视角来看待软件系统之成分构成与运行机理. 作为开放、动态和难控网络环境下的分布式软件系统的一种抽象, 网构软件在构成、运行、正确性、开发、可信性、生存周期等方面与经典软件系统相比均存在差异:■在系统构成方面, 网构软件是开放的和反射的(reflective). 开放性指网构软件由分布在广域范围内的、通常由第三方提供的、具有主体化服务特征的一组软件实体, 通过各类风格各异的协同连接子加以互连互通而形成的联盟; 反射性是指网构软件包括两个层次的内容, 即目标层与元层(或曰控制层). 目标层不仅包括经典软件系统的范围, 而且还包括显式的环境抽象. 元层则主要包括用于反映环境变化的感知机制部分和用于调节系统行为的演化机制部分.■ 在系统运行方面, 网构软件能够主动适应情境. 目标层系统的运行, 主要用于满足某一时段内用户的需求; 元层根据环境的变化对运行系统按照所需的指标加以调整与演化, 从而使目标层系统在下一个时段能更好地满足用户的需求. 如此不断往复, 系统的运行过程也是系统不断演进的过程, 这也导致在生存周期方面, 网构软件强调一种从演化为主的动态模型.■ 在系统正确性方面, 通过不断的系统演化, 网构软件所追求的刚性的正确性要求逐步转向随时段变化而变化的用户柔性满意度.■ 在系统开发方面, 软件开发过程就是不断获取最佳的服务与增值服务的过程, 在此过程中, 由主体化的软件实体与分离的协同机制所支持的成长式开发方式本质上蕴含了基于构件组装的软件复用思想.■ 在系统可信性方面, 在经典的安全与可靠保障技术基础上, 强调一种在开放环境下基于历史运行信息评价的柔性可信度量、推断与应用机制.考察经典、主流的面向对象软件模型, 由于其产生于静态、封闭、可控的环境, 从而具有有限自主、固定封装、交互单调、结构紧耦、离线应变等特征. 虽然近年来在分布对象技术、面向侧面(aspect)编程等方面取得了一些进展, 但其根本特征没有改变, 无法直接支持网构软件. 为此, 我们基于面向对象模型, 提出了一种基于Agent、以软件体系结构为中心的网构软件模型(技术细节请参考文献[3~9], 如图1所示.1.1基本构件模型网构软件基本实体首先是一个构件, 以确保单个实体可以独立部署、运行与演化. 与传统软件构件类似, 网构软件基本实体也具有业务接口, 以提供计算、控制或连接等功能. 与传统820中国科学 E 辑: 信息科学 2008年 第38卷 第6期821软件构件不同的是, 网构软件基本实体具有反射接口, 以提供监测、分析、规划、调整其业务功能的反射功能(也称为元计算), 进而实现网构软件的自主性、演化性、协同性、多态性和反应性等特性. Internet “天然”的异构性决定了网构软件基本实体所具备的特性不尽相同, 因此, 网构软件构件模型自身是可定制和可扩展的, 如, 仅提供业务功能而不具备任何反射与推理能力的软件实体, 可以认为是网构软件实体的一种基础形态; 定义了构件元模型且允许通过反射接口访问的软件实体则具备个体感知能力; 理解环境元模型且可通过反射接口访问的软件实体具备环境感知能力; 可调整自身状态或行为的软件实体具备个体适应能力等等. 这些网构软件特性的原理与实现则由开放协同模型、情境驱动模型和智能可信模型来规范.图1 网构软件模型1.2 开放协同模型开放协同软件模型的核心就是给面向对象程序模型中的核心概念“(对象.消息)结构”赋予开放环境下的新含义, 以此来适应开放网络环境的需要. 它具有如下特征: 在结构上, 软件实体与协同部分在构成上是分离的, 协同逻辑基于软件体系结构成为显式的独立实体; 在开发上, 软件实体与协同部分可由服务提供者和服务集成者分别开发, 面向服务提供者的软件实体编程可由成熟的面向对象技术支撑, 由现有的标准技术, 如Web Services 等, 加以封装, 而面向服务集成者的协同程序设计将由内置式软件体系结构、多模式共存的灵活交互方式和面向协同的服务剪裁与增强机制来支持; 在应变上, 实体部分主要通过大量新生的、可供选择的优质服务来不断完善或淘汰旧的服务, 而协同部分则通过对软件服务的灵活剪裁、多样性的综合集成、以及分层次的协同演化来适应外部环境的变化.1.3 情境驱动模型情境驱动模型的研究目标是在开放协同模型的基础上, 分析外部环境的特征及其多样的变化模式, 建立环境模型的框架结构, 在此基础上, 以反应式服务计算为突破点, 建立开放协同模型与环境模型的交互计算模式和自适应演化模式, 从而形成相应的结构、方法与技术. 情境驱动系统的构造需要通过对网构软件系统与运行环境及使用者之间不断演进的互动模式进行感知和分析, 归纳出情境驱动的行为模式, 进而利用上述框架和自适应体系结构技术实现杨芙清等: 网构软件技术体系: 一种以体系结构为中心的途径情境感知和主动适应. 在实现上, 通过基于Agent的情境信息收集和处理并结合智能化的体系结构演化驱动来达到上述目标.1.4智能可信模型智能可信计算模型就是在情境驱动模型的基础上, 将可信计算框架和智能技术等引入, 解决开放环境下软件的可信性、个性化、自发成长等方面的问题. 也就是在经典的具有“关注单一属性、开发者主导、以刚性规约为主”等特征的保障机制与支撑手段的基础上, 发展一种具有综合考虑多种需求、基于实证、评价标准灵活等特征的、适合于网构软件系统的新型保障机制与支撑手段. 技术上需要包括网构软件实体与系统的信任描述框架和度量模型, 基于Agent的信任管理, 可信的系统(半)自动组合与演化等机制的支撑.2网构软件中间件软件中间件(简称为中间件)是指网络环境下处于操作系统等系统软件和应用软件之间的一种起连接作用的分布式软件, 主要解决异构网络环境下分布式应用软件的互连与互操作问题, 它可屏蔽实现细节, 提高应用系统的易移植性. 随着Internet的快速发展与广泛应用, 中间件技术、产品、应用、标准逐步繁荣, 其定义正在走出狭义空间, 逐步形成更为广义的内涵, 成为一种Internet环境下的新型系统软件, 且呈现出如下发展趋势:■ 平台化: 越来越多地向传统运行层(操作系统)渗透, 提供更强的运行支撑, 形成屏蔽操作系统、网络协议、数据库管理系统的网络运行平台;■ 泛在化: 中间件从传统的企业计算延伸到对等计算、普适计算、网格计算、服务计算等新型计算模型, 使得中间件广泛存在于各种计算模型与系统中;■ 领域化: 不再局限于提供适用于大多数应用的支持机制, 那些适用于某个领域内大部分应用的支持机制(这些机制往往无法在其他领域使用)也开始得到重视;■ 模型化: 中间件对于整个软件生命周期的影响得到重视, 开始考虑将中间件抽象成不同的模型以支持高层设计、测试、应用部署甚至需求分析等开发活动.中间件的繁荣及其发展趋势决定了其在网构软件技术体系中的地位和作用: 作为“操作系统”负责网构软件系统的运行与管理. 具体而言, 网构软件中间件应具备两种主要能力: 其一, 网构软件模型的实现, 即, 如何将前面建立的网构软件基本实体变为可运行的实体, 以及如何在软件体系结构的管控下实施这些运行实体之间的按需协同; 其二, 网构软件系统的管理, 即, 在开放、动态、难控的Internet环境中如何保证网构软件系统的运行能够满足预期的功能性、性能、可靠性、安全性等可信指标. 为此, 我们建立了如图2所示的网构软件中间件模型(技术细节请参考文献[10~18]):2.1网构软件基本实体的实现模型容器是网构软件基本实体运行时所处的空间, 负责实体生命周期的管理(如类装载、实例化、缓存、释放等)、实体运行上下文的管理(如访问引用上下文、数据库连接等)、以及实体的基本业务与高级策略之间的绑定(与互操作协议绑定以允许通过RMI, HTTP, SOAP等访问822中国科学 E 辑: 信息科学 2008年 第38卷 第6期823业务接口, 与约束服务绑定以实现访问控制、数据持久化、事务等约束, 与智能设施绑定以实现业务规则自动调整, 与可信机制绑定以实现信誉评估等). 值得指出的是, 基本业务的实现体、高级策略的实现体、以及各个绑定均可在线调整, 以体现网构软件的多变性.图2 网构软件中间件模型2.2 网构软件按需协同的实现模型运行时软件体系结构RSA(runtime software architecture)是中间件提供的一种运行实体, 由于中间件对整个系统的深度控制而与运行系统之间建立了一种因果关联关系, 这种关系确保RSA 的变化会实时转换为运行系统的变化, 反之亦然. 每个网构软件基本实体均抽象并实例化为一个RSA 构件, 两个实体之间的交互则抽象并实例化为一个RSA 连接子, 从而将网构软件实体之间的按需协同实现为RSA. 宏观上, 所有网构软件实体之间的协同形成了一个Internet 规模的RSA. 微观上, 既可调整RSA 的局部以显式驱动实体之间的协同, 也允许实体自主协同(但该协同由于实现为RSA 的一部分而受到管控).因果关联关系的建立有反射式编程模型和反射式中间件两种主要途径, 各有利弊. 我们以反射式中间件为主, 整合了反射式编程模型, 实现了一种全反射框架以提高因果关联关系的广度和深度, 从而满足网构软件按需协同的需要.2.3 网构软件中间件的自治管理中间件的繁荣以及网构软件丰富的特性对中间件的管理提出了两方面的挑战. 一方面, 网构软件中间件自身能力多样化、复杂化, 定制和扩展中间件能力并确保这些能力的可信变得日益复杂、难控. 另一方面, 中间件在整个系统所占比重日益增大, 中间件管理的好坏直接决定了整个系统可信指标的好坏, 因此, 从整个系统的角度管理中间件成为必需. 而管理目标的弹性化以及运行环境的多变性进一步提高了中间件管理的复杂度, 这就要求中间件具备自治管理的能力, 即, 尽可能自动实施管理手段以减少甚至避免人的参与.针对中间件自治管理的可管理性、可操作性和可信性3个基本性质, 我们建立了以体系结构为中心的中间件自治回路, 即, 建模中间件及其应用的软件体系结构以定义中间件的管理杨芙清等: 网构软件技术体系: 一种以体系结构为中心的途径边界及内涵, 基于运行时软件体系结构监测和调整运行系统, 评估软件体系结构以确保自治的正确性和效用性. 对于自治计算最关键的分析和决策, 我们首先通过软件体系结构及决策的规范化描述将隐性、劣构的知识转变为显性、良构的知识, 其中, 常识性的、领域特定的、应用特定的知识一般分别描述为体系结构风格、领域特定的体系结构、应用体系结构. 具体的调整方案既可采用动态软件体系结构这种命令式描述, 也可采用自适应软件体系结构这种说明式描述, 即, 由给定知识自动推导出调整方案, 如, 由〈事件, 条件, 动作〉规则推导出给定事件和条件下应执行的动作, 由不良模式和良好模式推导出体系结构局部重构的方案, 由两种给定风格推导出风格融合的调整方案等.2.4网构软件中间件平台构件化不难发现, 上述能力均要求网构软件中间件平台具有清晰优良的结构, 为此, 我们建立了基于微内核的中间件构件化平台体系. 容器、协议、服务、设施、机制、框架等中间件能力的具体实现均封装为平台构件, 为了支持这些平台构件的按需定制、扩展以及自治管理, 我们设计了一个微内核, 包括注册/注销接口以允许平台服务动态插入、命名接口和查询接口以定位给定的平台构件、一种总线机制以允许通过特定的元编程接口传递对平台构件的调用请求、平台构件生命周期管理机制、元数据接口和元编程机制等. 值得指出的是, 和操作系统中微内核的作用不同, 网构软件中间件微内核不提供内存管理、进程间通信、I/O及中断管理等功能, 而仅提供平台构件的封装、集成和协调等基本管理机制.3 网构软件开发方法Internet开放、动态、难控的特性以及用户使用方式的个性化要求, 决定了网构软件的开发不同于传统软件开发的“一次成型”式, 具体表现为, 网构软件在发布之后, 能够感知外部网络环境的动态变化, 并随着这种变化按照功能指标、性能指标和可信性指标等进行静态的调整和动态的演化, 以使系统具有尽可能高的用户满意度, 而且, 由于用户需求的多样化和个性化以及投资回收等因素, 一个软件系统往往存在时间较长, 因此, 网构软件的演化过程也在长时间内持续不断. 显然, 开发具有上述技术特点的网构软件面临着开发过程、开发方法以及支持技术3个方面的挑战. 为此, 我们建立了如图3所示的网构软件开发方法体系(技术细节请参考文献[19~28]).3.1全生命周期软件体系结构在传统的软件工程体系中, 软件生命周期概念所强调的是从问题提出到软件交付的整个开发过程的重要性, 而对于交付之后的软件变化过程往往只采用“软件维护”加以简单概括. 这样一种软件生命周期概念对处于静态封闭环境下的软件系统的开发是合适的, 但对处于Internet开放、动态和多变环境下网构软件系统的开发则有明显的局限性. 首先, 新的软件实体往往通过已有的软件实体组装而成, 由于这些实体彼此独立、自主运行, 不受任何机构或组织的统一控制, 因此, 在系统交付运行之前, 很难由这些被组装的软件实体准确无误地推演出目标系统的功能和质量. 其二, 环境的开放、动态和多变决定了软件实体及其之间的协同均面临着诸多变化, 不论这些变化能否在运行前准确预知, 运行系统都不得不进行持续的适应性824中国科学 E 辑: 信息科学 2008年 第38卷 第6期825图3 网构软件开发方法体系调整. 其三, 网构软件既服务于处在不同时区的用户也服务于随时到达的其他网构软件的请求, 而且, 一个网构软件系统本身往往由散布在Internet 上的其他软件组成, 因此, 一个网构软件系统一旦交付使用, 往往就不能完全停机. 这意味着改错、优化、增加新功能等活动均需在线执行, 这些活动也需要经历分析、设计、实现、测试、部署, 而传统软件生存周期中的维护期难以准确刻画这些活动. 为此, 我们提出了全生命周期软件体系结构的概念, 将软件体系结构引入到网构软件生命周期的各个阶段, 以适应网构软件的生命周期特点:■ 分析阶段(软件体系结构概念视图): 为了平滑需求与设计之间的鸿沟, 应在需求分析阶段以结构化的方式来组织问题空间和用户需求. 我们对本阶段制品的具体形式没有要求, 只需能够相对方便、自然、直接地转换为软件体系结构即可. 例如, 面向对象分析的结果和问题域类图, 可视为一种概念性的软件体系结构; 面向特征的需求分析的结果和特征模型, 则可采用类似于功能分解的方式半自动地生成概念软件体系结构; 某些面向体系结构的需求分析方法则直接产生概念软件体系结构.■ 设计阶段(软件体系结构设计视图): 设计者通过研究软件系统的需求规约, 制定相应的全局设计决策, 进一步细化概念软件体系结构中的构件和连接子, 创建必须的构件和连接子, 建立静态和动态的软件体系结构模型(包括类型图、实例图和过程图等), 维护需求规约与软件体系结构之间的映射关系. 需要强调的是, 网构软件的基本宗旨是尽可能复用已有实体, 因此, 设计者应在本阶段充分考虑可复用的构件和连接子.■ 组装阶段(软件体系结构实现视图): 本阶段等同于传统软件开发的实现阶段. 与传统软件开发方法按照设计进行编程以实现目标系统不同, 网构软件的基本功能单元为已经存在且正在运行中的网构软件实体, 因此, 网构软件实现的重心不是编程而是组装, 即, 选取符合软件体系结构的实体, 并使所有的实体按照软件体系结构的规定交互. 若实体或交互不符合软件体系结构的要求, 则需要进行适配, 若适配失败, 则需要开发新的实体以实现目标系统.■ 部署阶段(软件体系结构部署视图): 网构软件大多运行于特定的中间件平台, 需经过部署才能正常运行. 部署所需的相关信息繁杂, 往往需要部署人员手工填写. 其实, 大部分部署信息在系统设计与实现阶段已经存在, 经过转换或融合可以复用. 另一方面, 新建实体或新。

相关文档
最新文档