论软件的静态演化和动态演化及其应用
软件演化(Software Evolution)是指软件在其生命周期内的更新行为和过程。演化是一系列贯穿软件生命周期始终的活动,系统需求改变、功能实现增强、新功能加入、软件架构改变、软件缺陷修复、运行环境改变均要求软件系统能够快速适应变化,具有较强的演化能力。软件静态演化(Static Evolution)和动态演化(Dynamic Evolution)是目前软件演化的两种重要类型。
请围绕“软件的静态演化和动态演化及其应用”论题,依次从以下三个方面进行论述。
1. 概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2. 请分别对软件静态演化和动态演化的特点进行论述,说明两种软件演化类型各自的优缺点及其应用场合,并举例说明各自的常见演化技术手段。
3. 具体阐述你参与管理和开发的项目中所进行的软件演化活动的特点、演化的类型,以及所采取的对应演化技术手段,说明具体实施过程以及实际应用的效果。
一、简要叙述所参与管理和开发的软件项目,并明确指出在其中承担的主要任务和开展的主要工作。
二、软件演化可分为静态演化和动态演化两种情形。
1. 静态演化(Static Evolution)。静态演化是指软件在停机状态下的演化。其优点是不用考虑运行状态的迁移,同时也没有活动的进程需要处理。然而停止一个应用程序就意味着中断它提供的服务,造成软件暂时失效。
软件静态演化是指发生在应用程序停止时的软件修改和更新,即一般意义上的软件维护和升级。静态演化的优点是没有状态迁移或活动线程的问题要解决,缺陷是停止应用程序意味着停止它所提供的服务,也就是使软件系统暂时失效。在软件交付之后,静态演化(类似于一般意义上的软件维护)就成为软件变更的一个常规过程。变更可以是一种更正代码错误的简单变更,也可以是更正设计错误的较大范围的变更,还可以是对描述错误进行修正或提供新需求这样的重大改进。有三种不同的软件维护:改正性维护、适应性维护和完善性维护。维护过程一般包括变更分析、版本规划、系统实现和向客户交付系统等活动。
在面向对象技术中,使用子类型方法来扩展程序,它适合于软件静态演化和代码重用。子类型化一个类意味着保留父类中的参数和方法,并尽可能地增加新的参数和方法。另外,使用重载和多态性作为主要的演化机制。实际上,建立类的新版本,最简单的机制是创建它的子类,然后重载需要变更的方法,最后,使用多态性调用新创建的方法。在基于构件的软件技术中,构件采取接口和实现相分离技术,构件之间只能通过接口进行通信,这使得具有兼容接口的不同构件实现可以相互取代,从而成为软件静态演化的一条途径。
2. 动态演化(Dynamic Evolution)。动态演化是指软件在执行期间的软件演化。其优点是软件不会存在暂时的失效,有持续可用性的明显优点。但由于涉及状态迁移等问题,比静态演化从技术上更难处理。
动态演化是最复杂也是最有实际意义的演化形式。动态演化使得软件在运行过程中,可以根据应用需求和环境变化,动态地进行软件的配置、维护和更新,其表现形式包括系统元素数目的可变性、结构关系的可调节性和结构形态的动态可配置性。软件的动态演化特性对于适应未来软件发展的开放性、动态性具有重要意义。
动态演化是指软件在运行期间的演化。在许多重要的应用领域中,例如金融、电力、电信及空中交通管制等,系统的持续可用性是一个关键性的要求,运行时刻的系统演化可减少因关机和重新启动而带来的损失和风险。此外,越来越多的其他类型的应用软件也提出了运行时刻演化的要求,在不必对应用软件进行重新编译和加载的前提下,为最终用户提供系统定制和扩展的能力。
动态演化可分为两种类型:预设的和非预设的。在Web 环境中,软件应用常常需要处理多种类型的信息,因此它们常被设计为可以动态下载并安装插件以处理当前所面临的新类型的信息;而分布式Web 应用也常常需要增减内部处理节点的数目以适应多变的负载。这些动态改变都是软件设计者能够预先设想到的,可实现为系统的固有功能。另有一些必须对系统配置进行修改和调整的情况是直到系统投入运行以后才发现的,这就要求系统能够处理在原始设计中没有完全预料到的新需求。这种情况下一般需要关闭整个系统,重新开发、重新装入并重新启动系统。然而,为了进行局部的修改而关闭整个系统在某些情况下是不允许的(例如,关键运行系统)或者代价太高。精心设计的动态演化技术可以在不关闭整个系统的前提下修改系统的结构配置,并尽量使未受影响的部分继续工作以提高系统的可用度。
为支持软件的动态演化性,已在语言、机制和环境等方面做了大量工作。在程序语言的层次上,引进各种机制以支持软件动态演化,例如动态装载技术允许增加代码到已运行的程序中,延迟绑定是在运行时而不是编译时决定类和对象的绑定。Java hotswap允许在运行时改变方法:当一个方法终止时这个方法的新版本可以有效地替换旧版本,在类层次上代码的二进制兼容被支持。Gilgul语言也允许更换运行时对象。但程序语言层次上的动态演化机制仅局限于函数、类方法和对象等小粒度的替换,只支持预设的有限变更,变更由事件触发。
通过标准化运行级构件的规约,依靠构件运行平台(中间件平台)提供的基础设施,使软件在构件层次上的动态演化成为可能。中间件中具有的如命名服务、反射技术和动态适配等机制,为运行态构件的动态替换和升级提供支撑,从而推动了软件动态演化的发展。命名服务就是给构件实例提供一个名称,以便客户通过这些名称来获取构件实例。对工业标准构件EJB 和CORBA 构件的引用都可以通过中间件平台的命名服务进行。同一构件标识可以被映射到多个构件实例,从而根据具体情境对某一名字的构件引用导向到不同的构件实例。反射技术是系统的一种自描述(self-representation)和自推理的技术,它提供了关于自身行为的表示,这种表示可以被检查和调整,且与它所描述的系统行为是因果相联(causally connected)的。因果相联,意味着对自表示的改动将立即反映在系统的实际状态和行为中,反之亦然。将反射性引入中间件能够以可控的方式开放平台内部的实现,从而提高中间件的定制能力和运行时的适应能力。动态适配机制中比较著名的是CORBA 提供的动态接口服务:动态调用接口DII和动态骨架接口DSI。前者支持动态客户请求调用,而后者支持将请求动态指派(Dispatch)给构件。因此,软件构件化技术使得软件具有良好的构造性,软件演化的粒度更大。中间件技术则为基于构件的软件动态演化提供了坚实的基础设施和方便的操作界面。
三、考生需结合自身参与项目的实际状况,指出其参与管理和开发的项目中所进行的软件演化活动的特点、演化的类型,以及所采取的对应演化技术手段。要给出实施软件演化活动的具体过程、方法以及对实际应用效果的分析。
( )a method of obtaining early feedback on requirements by providing aworking model of the expected product before actually building it.
【说明】
某公司现有网络拓扑结构如图1-1所示。该网络中使用交换机SW1为三层交换机,SW2和SW3均为二层智能交换机。
【问题4】(4分)
为了对用户上网行为进行监管,需要在SW1与R1之间部署(9)。
(9)备选答案:
A.FW(防火墙) B.IDS(入侵检测系统) C.堡垒机 D.上网行为管理
随着公司各部门成员增加,某些时候部分员工获取到IP地址和真实DHCP分出来IP不一致,为了避免这种情况可以在交换机上开启(10)功能。
(10)备选答案:
A.dhcp snooping B. broadcast-suppression C. loopback-detect
阅读下列说明,回答问题1至问题5,将解答填入答题纸对应栏内。 【说明】 攻克要塞教育中心在部署计算机网络时采用了一款硬件防火墙,该防火墙带有三个以太网络接口,其网络拓扑如图3-1所示。
【问题1】(8分)
防火墙包过滤规则默认策略为拒绝,表3-1给出防火墙包过滤规则配置。若要求内部所有主机能使用IE浏览器访问外部IP地址202.117.118.23Web服务器,为表中(1)~(4)空缺处选择正确答案,填写在答题纸相应位置。(1)备选答案:A.允许 B.拒绝(2)备选答案:A.192.168.1.0/24 B.211.156.169.6/30 C.202.117.118.23/24(3)备选答案:A.TCP B.UDP C.ICMP(4)备选答案:A.E3E2 B.E1E3 C.E1E2
【问题2】(6分)
内部网络经由防火墙采用NAT方式与外部网络通信,表3-2中(5)~(7)空缺处选择正确答案,填写在答题纸相应位置。(5) 备选答案:A.192.168.1.0/24 B.anyC.202.117.118.23/24(6)备选答案: A.E1 B.E2 C.E3(7)备选答案: A.192.168.1.1 B.210.156.169.6C.211.156.169.6
【问题3】(2分)
图3-1中 (8)适合设置为DMZ区。(8)备选答案:A.区域A B.区域B C.区域C【问题4】(4分)防火墙上配置信息如图3-2所示。要求启动HTTP代理服务,通过HTTP缓存提高浏览速度,代理服务端口为3128,要使主机PC1使用HTTP代理服务,其中“地址”栏中内容应填写为 (9) ,“端口”栏中内容应填写为 (10) 。
【问题5】(4分)
NAT和HTTP代理分别工作在 (11) 和 (12) 。(11)备选答案:A.网络层 B.应用层 C.服务层(12)备选答案:A.网络层 B.应用层 C.服务层
阅读以下说明,回答问题1至问题4,将解答填入答题纸对应解答栏内。
【说明】
某企业采用PIX防火墙保护公司网络安全,网络结构如图4-1所示。
【问题1】(4分)
防火墙一般把网络区域划分为内部区域(trust区域)、外部区域(untrust区域)以及(1),其中在这个网络区域内可以放置一些公开服务器,下列(2)服务器不适合放在该区域。
空(2)备选答案:
A.Web
B.FTP
C.邮件
D.办公自动化(OA)
【问题2】(2分)
衡量防火墙性能主要参数有并发连接数、用户数限制、吞吐量等,其中最重要参数是(3),它反映出防火墙对多个连接访问控制能力和连接状态跟踪能力,这个参数大小直接影响到防火墙所能支持最大信息点数。
空(3)备选答案:
A.并发连接数
B.用户数限制
C.吞吐量
D.安全过滤带宽
【问题3】(4分)
设置防火墙接口名称,并指定安全级别,安全级别取值范围为0~100,数字越大安全级别越高。要求设置:ethemet0命名为外部接口outside,安全级别是0;ethernet1命名为内部接口inside,安全级别是100;ethernet2命名为中间接口dmz,安全级别为50。
请完成下面命令。
…
PLX#config terminal
PLX (config)#nameif ethemet0 (4) security0
PLX (config)#nameif ethernet1 inside (5)
PLX (config)#nameif ethemet2 (6) (7)
…
【问题4】(5分)
编写表4-1中规则,设置防火墙安全规则,允许外网主机133.20.10.10访问内网数据库服务器10.66.1.101,同时允许内网和外网访问DMZ区WWW服务器10.65.1.101。
阅读以下说明,回答问题一,并将解答填入答题纸对应解答栏中。 某公司用ASP 实现了用户满意度调查网页,系统几个主要文件及作用如表1所示, 网页效果如图1 所示。
用户调查数据库表info表结构如表2所示:
问题1:完成下列代码填空
备选答案:A.用户满意度调查 B. rs C. username
D. </frameset> E. dbpathF.Conn G.exec H. top.html I.info J. login.asp K.searchtext L. rs.EOF M. MoveNext N.wt1 O. rowcount
阅读下列有关网络防火墙说明,回答问题1至问题4,将答案填入答题纸对应解答栏内。
【说明】
某公司网络有200台主机、一台WebServer和一台MailServer。为了保障网络安全,安装了一款防火墙,其网络结构如图4-1所示,防火墙上配置NAT转换规则如表4-1所示。
防火墙配置遵循最小特权原则(即仅允许需要数据包通过,禁止其他数据包通过),请根据题意回答以下问题。
【问题1】(6分,每空1分)
防火墙设置缺省安全策略如表4-2所示,该策略含义为:内网主机可以访问WebServer、MailServer和Internet,Intemet主机无法访问内网主机和WebServer、MailServer。
如果要给Internet主机开放WebServerWeb服务以及MaiIServer邮件服务,请补充完成表4-3策略。(注:表4-3策略在表4-2之前生效)
【问题2】(3分,每空1分)
如果要禁止内网用户访问Internet上202.10.20.30FTP服务,请补充完成表4-4策略。
(注:表4-4策略在表4-2之前生效)
问题3】(4分,每空1分)
如果要禁止除PC1以外所有内网用户访问Internet上219.16.17.18Web服务,请补充
完成表4-5策略。(注:表4-5策略在表4-2之前生效)
【问题4】(2分,每空1分)
如果要允许Intemet用户通过Ping程序对WebServer连通性进行测试,请补充完成表4-6策略。(注:表4-6策略在表4-2之前生效)
攻克要塞一个分支机构被分配了一个C类地址192.168.36.0/24,该分支机构现在需要分配IP地址有财务、人力资源、销售、审计、计划、服务六个部门,每个部门一个子网,每个部门机器数量不超过25台。请回答以下问题。
【问题1(6分)
为给这六个部门分配IP地址,请问子网掩码是多少,每个子网有多少个地址,可以分配地址有多少?
【问题2】(3分)
给六个部门分配完地址后,还有多少剩余地址,假设地址是从192.168.36.0开始分配,请列出剩余地址段?
【问题3】(3分)
请问地址192.168.36.111网络地址是多少,该网络广播地址是多少?
【问题4】(3分)
该分支机构采用VLAN实现网段划分,请问常规做法是采用什么网络设备实现VLAN划分和互通?
试题一(23分)阅读下列说明,回答问题1至问题4,将解答填入答题纸对应栏内。 【说明】 DHCP是动态主机配置协议,这个协议用于向计算机自动提供IP地址、子网掩码和路由信息。如果由网络管理员分配局域网上客户机IP地址,则会费时费力且容易出错。因此采用DHCP自动分配地址,这时局域网上客户机会向DHCP服务器请求一个IP地址,然后DHCP服务器为每个请求客户机分配一个地址,直到分配完该范围内所有IP地址为止,已经分配IP地址必须定时地延长租用期。这确保了当客户机设备在正常地释放IP地址之前,如果该客户机突然从网络断开,被分配地址就可以归还给服务器。DHCP配置文件中option(选项)如表1-1所示。
【问题1】(5分)
请根据表1-1中选项,把(1)~(5)填写完整。【问题2】(6分)在Linux系统中有如下3个语句,请分别说出它们所执行任务名称。(1)/etc/rc.d/init.d/dhcpd start。(2)/etc/rc.d/init.d/dhcpd stop。(3)/etc/rc.d/init.d/dhcpd restart。【问题3】(8分)Dhcp客户端发出第一个数据包目标MAC地址是(6),目标IP地址是(7),源MAC地址是(8),源IP地址是(9).【问题4】(4分)简述DHCP协议分配IP地址主要过程?
试题二(13分)
阅读下列说明,回答问题1至问题5,将解答填入答题纸对应栏内。 【说明】 某一网络地址块192.168.75.0中有5台主机A、B、C、D和E,它们IP地址及子网掩码如表4-1所示。
【问题1】(5分)
5台主机A、B、C、D、E分属几个网段?哪些主机位于同一网段?【问题2】(2分)主机D网络地址为多少?【问题3】(2分)若要加入第六台主机F,使它能与主机A属于同一网段,其IP地址范围是多少?【问题4】(2分)若在网络中另加入一台主机,其IP地址设为192.168.75.164,它广播地址是多少?哪些主机能够收到?【问题5】(2分)若在该网络地址块中采用VLAN技术划分子网,何种设备能实现VLAN之间数据转发?
阅读以下说明,回答问题1至问题3,将解答填入答题纸对应解答栏内。【说明】某公司网络拓扑结构如图 3-1 所示。网络规划如表3-1所示。
【问题1】(3分,每空1分)如图3-1所示,防火墙接口GE0/0/0、GE0/0/1和GE0/0/2分属于( 1 )、( 2 )、( 3 )。(1)~(2)备选项:A.trust区域 B.untrust区域 C.DMZ区域 (1)(2)(3) 【问题2】(8分,每空2分)如图3-1所示,ISP1作为公司默认互联网出口。该公司拥有2条出口链路,要保证内网机器能够访问互联网,需要在路由器上配置( 4 ),用户希望服务器网段流量都走ISP2出去,则需要在路由器上配置( 5 ),因为服务器网段IP地址是内网地址,服务器要对Internet提供服务,需要在路由器上配置( 6 ),生产区和办公区访问互联网默认走ISP1出去,需要在路由器上配置( 7 )。(4)~(7)备选项:A.策略路由 B.缺省路由 C. 源NAT D.目NAT (4)(5)(6)(7) 【问题3】(9分,每空1分)生产区和办公区用户流量默认走ISP1出口,服务器区域流量走ISP2出口。请根据描述,将下面配置代码补充完整。R1基本配置略……[R1]interface GigabitEthernet 0/0/1[R1-GigabitEthernet0/0/1]ip address 58.60.36.2 29[R1-GigabitEthernet0/0/1]quit[R1]interface GigabitEthernet 0/0/2[R1-GigabitEthernet0/0/2]ip address ( 8 )[R1-GigabitEthernet0/0/2]quit[R1]interface GigabitEthernet 0/0/0[R1-GigabitEthernet0/0/0]ip address 192.168.200.1 24[R1-GigabitEthernet0/0/0]quit[R1]acl( 9 )[R1-acl-basic-2000]rule permit source 192.168.8.0 (10)[R1-acl-basic-2000]rule permit source 192.168.100.0 0.0.0.255[R1-acl-basic-2000]rule permit source 192.168.200.0 0.0.0.255[R1-acl-basic-2000]quit[R1]acl 2001[R1-acl-basic-2001]rule permit source 192.168.100.0 0.0.0.255[R1-acl-basic-2001]quit[R1]nat address-group 1 58.60.36.3 58.60.36.6[R1]interface GigabitEthernet 0/0/1[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1[R1-GigabitEthernet0/0/1]quit[R1]interface GigabitEthernet 0/0/2[R1-GigabitEthernet0/0/2]nat outbound 2000[R1-GigabitEthernet0/0/2]quit[R1]ip route-static 192.168.8.0 22 ( 11 )[R1]ip route-static 192.168.100.0 24 ( 12 )[R1]ip route-static 0.0.0.0 0 58.60.36.1[R1]ip route-static 0.0.0.0 0 113.250.13.1( 13 )//把ISP2这条链路作为浮动路由,作为应急触发备份路径[R1]traffic classifier (14)[R1-classifier-c1]if-match acl 2001 [R1-classifier-c1]quit[R1]traffic behavior b1[R1-behavior-b1]redirect ip-nexthop 113.250.13.1[R1-behavior-b1]quit[R1]traffic policy p1[R1-trafficpolicy-p1]classifier c1 behavior b1[R1-trafficpolicy-p1]quit[R1]interface ( 15 )[R1-GigabitEthernet0/0/0]traffic-policy p1(16) [R1-GigabitEthernet0/0/0]quit[R1]……(8)-(15) 备选答案A.113.250.13.2 30 B.192.168.200.2 C. GigabitEthernet0/0/0 D. preference 100 E. 192.168.200.3 F. 0.0.3.255 G. 2000 H. c1I. inbound (8)(9)(10)(11)(12)(13)(14)(15)(16)