(计算机科学与技术专业论文)软件再工程理论应用与研究.pdf_第1页
(计算机科学与技术专业论文)软件再工程理论应用与研究.pdf_第2页
(计算机科学与技术专业论文)软件再工程理论应用与研究.pdf_第3页
(计算机科学与技术专业论文)软件再工程理论应用与研究.pdf_第4页
(计算机科学与技术专业论文)软件再工程理论应用与研究.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(计算机科学与技术专业论文)软件再工程理论应用与研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 如何更好地利用遗产系统来开发新系统,正在成为当前软件工程研究的一个重要方 向。软件再工程止是在这种情况卜才越来越显示出其重要作用。软件再i 一程提供了一条 有效利用遗产系统的现实可行途径,它将逆向工程、重构和正向1 :程组合起来,将现存 系统重新构造为新的形式。在再工程过程中,对遗产系统的理解是关键。因为通过对遗 产系统的理解,得到遗产系统的详尽信息,对系统再生足至关重要的一步。 如果遗产系统配置较全( 源代码、设计记录以及其它文档资源) ,系统理解要相刈 容易一些。如果遗产系统的软什配置只有源代码,甚至只有运行的目标系统,那么常规 方法只能是通过反汇编、反编译得到源程序,然后冉通过各种分析方法分析源程序,从 源程序中进一步抽象得到原系统的更高一层设计信息。不过在利圳常舰途径理解系统无 效的前提下,就需探讨新的系统理解方法。本文在对一个典型遗产系统( 二得电予成型 机系统) 进行再工程过程中,综合使用了各种系统理解方法得到原系统大部分设计信息 的同时,又针对系统的具体特点,作了人量探索和尝试,如使用跨平台的反汇编工具反 汇编,监听分析目标系统运行特征等等。结果表明,新的系统理解方法是有效的,关键 性信息被获得,成功地将成型机系统再生。从而为软件再工程理论提供了新思路,具有 一定的理论价值和实用价值。 本文详细介绍了三得电子成型机系统成功再生过程,存总结使用围际上现有的软件 再工程理论和技术方法的同时,阐述了新思路新方法,也探讨了软件再l :程的新课题。 关键词:遗产系统软件再工程逆向工程正向工程系统理解监听 a p p l i c a t i o na n dr e s e a r c h o ns o f t w a r er e e n g i n e e r i n gt h e o r y a b s t r a c t h o wt oe v o l v el e g a c ys y s t e m si n t on e ws y s t e m si sb e c o m i n gonco f t h ef o c u s e so f c u r r e n ts o f t w a r ee n g i n e e r i n gr e s e a r c h e s i t su n d e rt h i ss i t u a t i o nt h a ts o f t w a r er e e n g i n e e r i n g b e c o m e sm o r ea n dm o r ej m p o r t a n t s o f t w a r er e e n g i n e e r i n g0 f i e r sap r a c t i c a la n df e a s i b l e a p p r o a c ht ou s el e g a c ys y s t e mi ti sc o m p o s e dw i t hr e v e r s ee n g i n e e r i n g ,r e c o n s t r u c t i n ga n d f o r w a r de n g i n e e r i n g r e e n g i n e e r i n gc a nt r a n s f o r l nt h ee x i s t e n ts y s t e mi n t ot h en e ws y s t e m e x i s t e n ts y s t e mu n d e r s t a n d i n gi sak e yp a r td e t a i l e di n f o r m a t i o nc a r lb ef o u n db yi t l e g a c ys y s t e m su n d e r s t a n d i n gb e c o m ev e r ye a s y ,i f t h e i rc o n f i g u r a t i o na r ef u l lh a v i n g s o u r c ep r o g r a mo ro b j e c tp r o g r a m ,c o n v e n t i o n a lm e t h o d sa r et h a tg e ts o u r c ep r o g r a mb y d e c o m p i l a t i o no rd i s a s s e m b l i n g u s i n gv a r i o u sa p p r o a c h e st oa n a l y z i n gs o u r c ep r o g r a m , l e v e lo fa b s t r a c t i o nd e s i g ni n f o r l t l a t i o nh i g h e rt h a nt h a to f t h eo r i g i n a ls y s t e mc a nb ef i n d 0 nc o n d i t i o nt h a tc o n v e n t i o n a lm e t h o d sa r ei n v a l i d n e wm e t h o d sa r en e e dt h ea u t h o rt r i e s t o1 1 s ev a r i o u sk i n d so f u n c o n v e n t i o n a lm e t h o d si nt h er e e n g i n e e r i n gp r o c e s so fat y p i c a l l e g a c ys y s t e m ,f o re x a m p l e :u s i n gc r o s s p l a t f o r md e c o m p i l a t i o no rd i s a s s e m b l i n gt o o l s , m o n i t o r i n ga n da n a l y z i n go p e r a t i o n a lc h a r a c t e r i s t i c so f l h eo b j e c t i v es y s t e ma n ds oo n t h i s p a d e rd e m o n s t r a t e st h e i re f f e c t i v c n e s sa n df e a s i b i l i t y i tm a yp r o v i d ea n o v e la t t a c k i n g a p p r o a c hf o rs o f t w a r er e e n g i n e e r i n g i th a st h e o r yv a l u ea n du t i l i t yv a l u e t h j sp a p e rj n t r o d u c er e e n g i n e e r i n gc o u r s eo f i ms y s t e mi nd e t a i l a tt h es a m et i m e , i ts m n m a r i z e st h et h e o r ya n dm e t h o do ns o f t w a r er e e n g i n e e f i n g ,t h e np u t sf o r w a r dt h en e w a p p r o a c h e s f i n a l l y ,t h i sp a p e rp r o b e si n t on e wt o p i co fs o f t w a r er e e n g i n e e r i n g k e yw o r d s :l e g a c ys y s t e ms o f t w a r er e e n g i n e e r i n g r e v e r s ee n g i n e e r i n g f o r w a r de n g i n e e r i n g s y s t e mu d e r s t a n d i n g m o n i t o r o 前言 硬件的发展及人们对软件越来越高的要求使软件不可避免地越来越庞大、复杂。 尤其进入九十年代后,随着计算机软硬件技术的加速发展,特别是个人电肺的普及 和h l t e m e l 的流行,导致软件的更新换代加刷。与此同时,从头”始建造的大系统数量 去| j 在急剧减少,很多遗j 。系统正在被逐步地利用起来。由于多年的运行历史,遗产系统 包含了仓业的众多知识,如系统需求、设计决策、业务规则和企业数据库等等。充分利 用遗产系统来玎发新系统一往成为当前软件工程研究的重要方向和热点。软件再 一程提 供了一条把遗产系统转化为新系统的现实可行途径。软件再 二程以少的开销、短的时问、 低的风险把旧系统改造为 个新的形式,使系统在操作、系统能力、功能、性能、可维 护性和可支持性l 得到提高。 l i n d ah r o s e n b e r g 博士这样论述软件再t 程:“软件再r 程是为了以新的形式重构 已存在的软件系统而进行的检测、分析、更替,以及随后的对新形式的交现。这个过秤 包括了其它一些过程,诸如逆向工程、重构、正向工程等。它的目的是理解已存在的软 件( 包括规范、设计、实现) ,然后对它重新实现以期增强它的功能,提高它的性能, 或降低它的实现难度,客观上达剑维持软件的现有功能并为今后新功能的加入做好准备 的目标。”i 1 1 本文首先阐述有关软件再工程的知识,包括具基本概念、框粲等。同时详细捕述了 一个实际遗产系统( 二得电子成型机系统) 软件而工程过程,该过程在综合运用软件再 工程的相关知识、技术和方法基础上,探讨了软件再工程设计的新思路新方法,提m 了 再l 程中的关键环节及设计要点。 1 软件再工程理论研究 大量遗产系统仍在运行中,由于其运行多年,经历了k 期的用户考验,功能及非功 能特性可能确实符合需求,i 靠性也有较好保证。然而,计算平台的变化、技术的发展、 文档的缺乏及非优化的设计等等使得遗产系统需要霍新开发即再工程。 但对遗产系统进行再工程的过程中,会遇到许多困难。如有的遗产系统寿命已有 1 0 - 2 5 年,由于当时开发方法和开发:具的局限性,具有这样或那样的缺j _ 。有的遗产 系统甚至采用的还是非结构化分析设计技术。而有的遗产系统只有目标代码,没有相关 的软件配置( 源程序、各种开发文档、运行记录) 等等。所有这些都导致现有的遗产系 统没有好的可演化性,使得我们无法利用简单的方法把遗j 。+ 系统转化为一个新的系统。 正是在这种情 【! 卜再工程变得越来越重要起来。 1 1 软件再工程基本概念 1 1 1 软件再工程定义 软件再丁程是一个工程过程,它将逆向工程、重构和正向工程组合起来,将现存软 件系统重新构造为新的形式。 2 再工程定义见图1l ,图中术语解释如卜: 逆向工程是指对现有系统进行分析,以最大的努力去建立比代码抽象层次更高的表 达形式。如从目标代码分析求出源代码,由源代码求详细设计与总体设计,由总体设计 求软件需求分析。逆向工程的结果应包括遗,“系统中被执行的处理、被应用的用户界面、 以及被使用的程序数据结构或数据库的有意义的信息等。| j 1 软 件 再 祥 r 止向i 样 1 1 1 向l f 向 需求 设计。 设计恢复 实现 设计恢复 详细发训、总体设计、需求分析p 一般情况下,从目标代码到源代码的转换可通过反汇编、反编译柬实现。即将目标 代码经反汇编生成r :编程j f ,或将目标代码经反编泽! l 成高级语言源稃j j :。如若成功获 得源代码,可采用如下的程序理解1 f - 段获得更高的抽象层次: 坚丛坐三堡型堡坐旦! ! ! 塾 手上浏览源代码 对程序进行静态动态的分析 静态程序分析是指无须执行主题程序只是根据一些模型推断程序的本质。它包 括语法分析、类型检商和推理、控制流和数据流分析、结构化分析、复杂度度 量等过程;动态程序分析是指在一个主题系统中发现运行时t 1 1 互依赖的过程。 它包括对象实例依赖、动态联编和多态性、方法调用图、路径覆盖测试、内存 管理、并发等等。f 6 1 利用描述系统特定性能的度量于段 程序切片法1 程序切片法是根据控制流和数据流分析而引进的一种程序分析技术。在过去2 0 年中,程序切片技术取得了巨人发展。 这甲,概述具有代表性的几种切片方法: 1 、语句切片:这种传统的程序切j 技术是一种条件切片,它是根据程序的顺序、 循环和选择结构进行程序切片的。大多数程序员都试着用程序切片来识别程序的错误, 也用来理解程序的行为。该类程序切片包括静态切片和动态切片两种,他们的不同之处 是:定义静态切片时需考虑程序的所有执行路径( 可靠的或不可靠的) ,而动态切片只 考虑从某个输入到程序的特定的执行路径。 2 、无定型程序切片:无定型程序切片与传统程序切片相比,不仅在保存一个程序 语义投影的i s 州- 简化了程序,还可以使用任何简化的转换,而这些转换保留了这个语义 映射。凼此,在传统切片疗法的基础上增强了简化能力并可用来帮助软件珲解。 3 、过程问和过程内切片:根据过程间或过程内分析、数据流分析、需求分析米切 片程序,这类切片方法可识别其它方法不能识别的过程间或过程内的控制关系,并且可 荤用程序切片的信息,以便更好地改进程序的效率。 4 、面向对象切片:近年来程序切片技术已被应用到面向对象领域,使得对面向对 象程序( 特别是c + + 程序) 的调试、代码理解、程序测试、逆向r 程和度量分析变得 相对容易的多。如切片c + + 类层次的算法,使得对c + + 中复杂的多继承和虚继承机 制的理解变得简单 上述t 作也可以通过半自动方法来完成,以提高程序理解的效率,如可借助各种分 析工具来得到原系统更高层次的表示形式。常见的分析t 具如d e c i e r ,它是c 语言。反编 泽系统,它能将8 0 8 6 8 0 8 8 可执行程序转变为功能等价的c 语言程序,并j - ,生系列 有助丁程序阅读理解的中问文本和相关文档。再如从结构化源程序导出p a l ) 图工具。还 有青鸟c + + 程序理解工具及j b p a s 等。有了这些】i 具的辅助,程序理解的效率会大大提 高。当然也要防止过分依赖工具,不作详尽的人l 检查。人工检查是最后一道把火口, 兀沦怎样优秀的r 具也不能代替人,软件工程帅的辛勤工作仍足软件再工程成功的关 键。i7 1 1 8 1 通过上述方法确实能刈原系统达到一定稃度的理解,但也存在很多问题。尤其足遗 j 。:系统只有运行的目标系统,无法得至j 源程序的情况。曾经从m 过反编译7 卅究的p j b r o w n 曾写道:“从机器代码逆向创造源程序,通常是不现实的,因为取冉一串机器指 6 令,并使它们与源结构反向相关,是1 f 常复杂的模式识别过程”。通过从目标代码反汇 编、反编译到源代码的方式理角j ;! 程序有如l 、缺点: 源码中的变最名将消失。 编译器一般要将源代码进行优化,想重建源代码是比较困难的。 汇编语言中的一种结构,如循环,对应着源代码中的几种不同结构等。 更为严重的是,有时难以找到合适的反汇编、反编译工具,不能通过反汇编或反编 译获得源代码。这种情况下,手工浏览源代码和静态稃序分析法及程序切片法等均不适 用。而采用各种特殊的手段和方法,获取系统信息成为程序理解这个逆向过程的关键。 本文作者存后述的三得电子成型机系统改造过程中即遇到此种情况。 遗j “系统运行的平台上无法找到合适的反汇编反编译工具,可尝试在其它操作平台 上寻找。若找到,将旧系统目标代码没法传到其它操作平台进行反汇编或反编泽。如后 述三得电子成型机系统改造过程中,无法在p c 一9 8 0 1 机的e o s 操作系统卜找到反汇编 工具,通过两种尝试:把文件先考到经e o s 格式化的软盘( n e c 磁盘格式) 早,在l b m - - p c 机上以读扇区的方式读取;通过编写微机间的串行口通讯程序,将p c - - 9 8 0 1 里的 可执行文件送至带有反汇编工具的l b m p c 机上,在i b m p c 机卜- 时百】执行文件进行反 汇编。详见沦文第三部分电于成型机系统理解之3 2 分析目标代码。 源代码确实无法获得,应从目标程序动态特征着于理解系统。即将目标程序当作一 个黑箱子,反复运行系统,从其行为推断出所需信息和规格说明。如i 得电子成型机系 统改造过程当中作了如下两种探讨:将不i 刊的参数值传给目标系统,通过观察系统运行 结果寻找正确参数,此方法仅限于参数组合较少情况;监听截获运行过秤中产生的各利i 信息,利用领域知识及经验分析对比,最后得到所需信息,详见沦文第三部分电子成型 机系统理解之3 3 推测通信参数和呼叫码及3 4 监听控制码。 巍据功堙霹发生在小同的抽象层次。在程序层,内部的程序数据结构必须被理解。 在系统层,全局数据结构( 如文件、数据库) 也必须被充分理解,因为仝局数据结构经 常被再工程以便符合新的数据管理规范。一l 内部数据结构的理解是通过意图组合相关程序变量的对程序代码的检查米完成的。 在很多情况下,程序代码中包含了数据定义、文件描述、t 0 接口描述等等信息,从中 可以获取关于数据流信息的珲解和现存的己实现的数据结构。 具体可采用下列方法: 标识程序r r | 记录关丁全局数据结构( 文件或数据库) 的重要信息的标记和局部 数据结构。 标记局部数据结构与全局数据结构间的父系。例如,在文件空时某标记可能被 设置,或某局部数据结构可能作为一个缓冲区,它包含从某叫j 心数据库获取的 最后10 0 个记录。 对每个表不一个数组或义什的变量( 存稃序中) ,列出所有与其有逻辑联系的其 他变量等等。 如原系统使用的是数据库技术,则设法对数据库结构、库l 卜的表结构及表内容等的 充分理解是至关重要的。 本论文在三得电子成型机系统改造过程中充分利用了各种数据理解方法,详见论文 第三部分的35 理解m 卡结构、3 ,6 数据转换、37 理解m 卡机操作码,最后z i 获得了 对原系统数据部分的理解。 , 4 g p 男厨功埋懈电是系统理解的一个组成部分,它是用户界面重建的关键。要宄全 理解现存的用户界面,必须刻画界面的结构和行为。即什么是界面必须处理的基本动作 ( 击键、按鼠标? ) ,什么是系统对这些动作的行为反应的简洁描述,什么界面的等价 概念是同这罩相关的等。p 3 经过了程序理解、数据理解和用户界面理解,我们将收集到大量数据。如果是理解 大型系统,那么所收集的数据”,能是臣大的,以致超出人们吸收的能力。这时就要理解 系统到底要了解什么要忽略什么,即要刘收集的数据进行过滤,从丰富的数据源中抽取 所需的数据信息。然后还要考虑以什么形式存储这些数据,现在最常用方法的是利用数 据庠技术。 在得到了对系统的全面理解之后,就可以对遗产系统进行改造和重组,将之转化为 未来系统,即系统演化。 系统演化是软件再工程过程的最后一个阶段。系统演化过程就是通过对遗产系统的 改造和重组,将之转化为未米系统的过程,即软件再工程定义的_ :覃:构和j f 向工程。其中 重构包括数据重构和代码亚构川e 向工程要心用软件工程中的原则、概念和技术方法。 对r 一个大的遗产系统,针对其不同部分和所期单的系统之问的距离,所使用的演 化策略是不同的。主要可以有以下兰种方法: 维护:遗产系统在开发完成之后,将一直处于被维护的过程中,到它被苻换为止。 对于要进行再工程的系统,如需要改动的部分并小大,则只需采用维护的策略即可。 即不会对系统进行大的实质性的改动,只是对某些小的细节进行一些修改和修正。 改造:改造则是比维护更进一步的演化活动。根据是否需要依赖于对遗产系统的 内部细节的理解,可以把改造活动分为白盒改造和黑盒改造两种。白盒改造活动要 包含一个通过逆向工程的过程来对各个模块及其内部细节进行深度理解的过程。而 黑盒改造只是包含一个强调对模块的接口浅度理解的逆向程过程。相比之卜j ,白 盒改造所需要的技术难度湿然要比黑龠改造要大,而日它对遗产系统状况的要求也 要更高一些,否则就尤法进行深度的程序理解了。 替换:瞥换适用于那些已经错误百出,病入青荒的遗产系统。比如说,遗产系统 所使用的支撑软件再继续维护下去己经不太现实,或是其运行的硬什甲台已经更 换。这时候,就应当拿个新开发的系统术直接替换掉原来的已经没有利用价值的 系统。 事实上,很多情;,! l h 针对一个具体的系统,所要使j l 的策略心该是组合策略,即 对个系统的各个子系统使用不同的策略。对于遗产系统的某一部分,u j 能进行维护就 足以满足要求,而另外的部分则需要进行白盒改造或黑盒改造,剩卜- 的部分则可以完 软什冉i 程理论应用l j 研究 仝用新开发的系统来替换。通常情况下,也只有这样的组合策略彳是最合理的,也是性 能价格比最优的。 完成系统演化之后,就得到了期望中的新系统。一次软什弭工程过程的所有活动也 就结束了。当然,随着时间的推移,新系统会慢慢变成遗产:系统,也就需要进行新的一 轮再工程的活动。可以看到,软件系统以这种连续演化的方式生存下去符合新的软件生 命剧期模型。 9 软件n _ 程理论应用j 研究 2 电子成型机系统简介及开发方案论证 2 1 原系统简介 原电子成型机系统( i m 系统) 由同本精密株式会社开发丁九十年代初期,主要用 于大连三得电了公司( f i _ i 1 资企、f k ) 成型制造的工业生产。 三得电子的主要产品是打印机部件( 如色带盒、齿轮等) 。整个j i - j “由成型机( 即 下位机) 根据各种成型参数控制各种模具来完成。这罩所提的参数是指由模具生成部件 时的各种温度、压力、速度等,即成型条件。用丁生产的成型条件最初存放在主控计算 机( p c - - 9 8 0 1 ) 的硬盘里,而i m 系统也正是运行在主控计算机。 成型机和丰控计算机之间的数据传输是以m c a r d 卡片( 一种山日本精密株式会社研 制的存储芯片,简称m 膏) 为载体的。成型机自身带有一个插卡口,可以完成对m 卡 的读写。然而,主控计算机无法直接访问m 卡,但是可以通过串行f 控制m c a r d 机( 一 种类似于磁盘驱动器的设备,带有两个插卡口,简称m 卡机) 完成对卡片的读写。 操作人员通过1 m 系统从主控计算机的硬盘罩读出用于生产的成型条件,并通过i m 系统控制m 卡机,把数据写入m 卡( 不妨称此操作为打卡) ,然后再把卡片带到r 业现 场,山成型机读出各项参数,用于控;s l l l l - , ;流程。如果某些参数不符合实际要求,则可 以通过成型机即时修改,如果需要,还i 叮以把改动后的参数写回m 卡。同时,成型机 还可以记录本次牛产过程不良产品数量及模具生产的丌始和结束时刻( 即生,“实绩) , 在生产结束后将生产实绩写入m ,操作人员再将矗片旱的生产实绩保存至硬盘,系 统示意图见图2 1 。 i m 系统可以根据每天的生产实绩生成生产n 报并打印输出,还可以统计每个月的 生产状况,以便了解每天和每个月的各种产品的生产状况,从而制订合理的牛产计划和 生产配置。 k 机 图2 1 蟓系统示意幽 f i g2it h es k e t c hm a po f o l ds y s t e m 2 2 原系统运行环境 硬件环境: p c - 9 8 0 i 微机台( h 本n e c 公司制造) ,带有一个2 5 针的r s2 3 2 串行口,工作 电压1 1 0 伏 m 卡机若干台( f _ | 本精密株式会社制造) ,带有两个插卡口及一个2 5 针的r s - - 2 3 2 串行口,工作电压1 1 0 伏 m 卡若干张( 日本精密株式会社制造) 配有m 卡机的数十台成型机( 车问生产线上) 软件环境: 日文操作系统e o s y s t e m ( n e c 公司开发) 2 3 新系统方案论证 二得电子生产线卜的电子成型机( 下位机) 目前在同行业巾处于相当先进的水平, 要继续服务于生产。但运行i m 系统的p c 一9 8 0 l 微机市场上已淘汰,而该公司同前使 用的p c 一9 8 0 1 微机也已破旧,仅有的一台用米维持生产,急需更换运彳j 二甲台。用户提 出如下开发需求:在完成原v i 系统功能前提下,用通用微机褚换原有的p c9 8 0 1 ;软 件环境由同文的e o s y s t e m 转换为中文w i n d o w s 9 8 ;新i m 系统的用户界面由f 义的 字符形式改为中文的图形界面;新系统采用现在流行的而向对象程序设计语言实现。 针对用户提出的开发需求设计两种解决方案:一是替换,用一个新丌发的系统来直 接替换掉原i m 系统。_ 是改造,通过原系统理解、系统演化由原系统再生f f j 新的系统。 两方案详述如下: 2 3 1 替换方案 替换方案a 简介: 完伞抛弃原i m 系统,采用当今流行的分布式监控技术,丌发一个全新系统,该方 案所对应的新i m 系统结构如图2 2 。 j 懿“算机 i b mp c 自一惭 7 5 2 0 温度压力进度 i 0 模块i 0 模块 i 0 模块 幽2 2 分布式监控不意幽 f i g2 2t h es k e t c hm a po fd i s t r i b u t e dm o n i t o r 信息传送方式沿袭原系统采用串行通信,串行通信高效可靠、价格便宜、遵循统一 的标准,应用非常广泛。串行通信是计算机之问及计算机与数字仪器、硬件电路通信的 重要于段,是实现工业监控的主要方式。这是传输接口采用r s 一4 8 5 ,r s 一4 8 5 是近年来 发展的新型串行数据通信接口,它显著的优点是两线制,无需进j 1 :二电半转换,带载能力 强,有效传输距离远,应用该接口技术在一根1 2 0 0 米长的双绞屏蔽通信线上可挂多至 2 5 6 个终端,而且r s - - 4 8 5 是差分传输,有极强的抗共模于扰能力。接收灵敏度也相当 高。 同时将车间的成型机改造,安装上分布式模块,每个模块负责自己的一块区域,实 际的物理现象会输入到各个模块中,所有模块再用r s 4 8 5 网络连接起来,一起送到主 监控站,从而达到分布式监控的目的。分和式模块可考虑采用泓格科技的i - 7 0 0 0 系列。 其中i - 7 5 2 0 模块负责将r s 一2 3 2 的标准电位作一f 转换,从而可以使用和r s 一2 3 2 相同的 方式存r s 一4 8 5 上作通信;1 - 7 0 6 0 模块可实现数字信号的输入输出;i - 7 0 2 1 模块可实现 模拟信号的输入输出;l - 7 0 8 0 i 一7 0 8 0 d 模块可测量频率值或计数。 软件丌发工只选用v i s u a lb a s i c ,v b 不仅具有面向对象、可视化、事件驱动等特点, 同时还继承了b a s i c 简单易学的优点。v i s u a lb a s i c 在开发可视化环境卜的监控系统时有 其独特的优势。首先,人机界面的建立比其他工具要来得简单、伙速,其次v i s u a lb a s i c 提供了串行通信控件,可以丌发串行通信的系统程序,功能上也提供了1 i 少为用户设想 的简便之处。将v i s u a lb a s i c 与分布式系统结合起来,可快速建立实用的监控系统。同 时,用面向划象软件丌发工具外发 _ 5 的系统为今后的软件再丁程奠定了基础。 替换方案b 简介 分布式模块通过r s 一4 8 5 网络可以实现模块分散监控的日的,一般情况下足以满足 _ _ f j ,| _ i 的需求。但用有时一i r 能希望通过阔络实现远程监控,即现场的分m 式模块f 常地 通过土控计算机作监控,i 广0 时在另远程汁算机也能够同步地监控现场的分布式模块。 这就是通过i n t e r n c t 实现远程雌控n 勺方案。系统需要使j 口两部计算机,一部作为现场监 控的主控计算机,同时当作是i n t e m e t 传输过程的服务器,争门接i 发远力提出的要求, 棚 、自副衣 一 ,目 一画 娟一囤圜一 一,1 1 i d 堕竺生 = 壁些丝坐望! ! 业塑 景、部计算机则是位丁远程的计算机,它和现场隔离甚远,两者通过m l e r n e 褶连接。 “”系统结构如图2 3 。 趣程雌挖h 。斜机 i b r , i p c 陶2 3 远群监控示意剀 f i g2 3t h es k e l c hm a po f r e m o t em o n i t o r 软件丌发工具仍选用v i s u a lb a s i c ,除上述优点外,v i s u a lb a s i c 专业版和企、吡版中 还包含有应用在网络技术上的控件,如w i n s o c k 等。完全呵实现与远程汁算机建立联机, 进行数据交换,从而实现远程监控。 方桑论证: 替换方案是理想的解决方案,该方案抛弃了m 卡作为数据载体,各种成型参数及 生产实绩均采用网络传输。这种方案省去了人工传递m 卡的过程,使整个生产控制过 程更严格,牛产效率得剑很大提高。但生产线上的成型机与m 卡机是集成在一起的, 若采用前述方案只能作耗资较大的硬件改造。但该类成型机在行_ k 内属领先水平,现阶 段用户不愿对其进行改造,也不愿意承担这笔费用。只能转而考虑低成本的方案,即改 2 3 2 改造方案 方案简介: 硬件上保留m 卡及m 卡机作为成州机和主摔汁算机之间进行数折;传输的媒介,只 需用i b m 兼容机代替已被淘汰的p c 一9 8 0 1 作卜控计算机,见网24 。软件部分凶要适应 软什阿i _ | 二摧理论脚用与础n 新的运行环境,同时满足用户的丌发需求则要改造。凶新d 系统关十数据采集部分要 保留原系统的方式,这就需要对原i m 系统,包括系统功能、模块接厂| 、系统运行的软 硬件环境、驱动的设备之州的接i _ i 、处理数据方式及存储数据方等允分了解,才能成 功地进行改造。 1 = 柞讣算机 i b hp c 董! = :竺立 成型 = l ( 带h # 捕) 图2 4 改造系统示意l 划 f i g2 4t h es k e t c hm a p o f t r a n s f o r m e ds y s t e m 方案论证: 改造方案是用户现阶段愿意承担的方案,相剥于硬件改造的巨大费用,用户更愿意 花费相对小一些的软件改造费用。该方案降低了成本,符合用户需求,在现有这台 p c 9 8 0 1 未坏掉之前,用改造后的i m 系统服务生产是切实可行的途径。但是,改造,j 案也存在着很多困难。 p c 一9 8 0 1 市场r 已淘汰,无法获得利关资料。由j 种种原因,m 卡机与原i m 系 统也未获得任 u 文档资料,整个软什冉生环境就是运行于p c9 8 0 l 机上的原i m 系统 和部分源代码,增加了软件再牛的难度。 3 原电子成型机系统理解 软件再工程过程很关键的一步是系统理解,只有正确理解原系统才能更好地丌发出 新系统。本丌发项目的系统理解部分是由原系统仅有的软件配置一一部分源代码和目标 程序开始的。 3 1 分析原系统程序 原系统的主界面和各个功能模块分别由c 语言和q b a s i c 语占实现。通过各种程 序分析方法分析日本机上带有的3 0 多个q b a s i c 和c 的源程序,对原系统的功能结构 及数据流向都有了深入了解。 各模块功能介绍如下: 成型条件模块 该模块共有四个子模块,完成对成型条件的各项操作。 1mc a r d 从m 卡读出成型条件,可以修改某些成型条件的值,并能将读出的数 据保存到硬糯、写回m 卡或打印输出。 2 h a r dd i s k 根据键入的产品番号,从硬盘 :相应的文件里检索出用于该产品牛 产的成型条件,可修改某些参数值,并能把检索出的数据写入m 或打印输出。 3 ,照合从m 卡读出某户:品的成型条件,同时从硬盘检索出该产品的成型条件, 将二者比较核对。 1 移管当n 方有新模具时,就需要把该模具的相关资料通过移管转移进来,或 者是j 得电子自行丌发出来的模具也可以通过移管把相关资料转移剑日本去,以 n e c 软盘作传输介质。 牛产实绩模块 该模块共有四个子模块,完成对生产实绩的各项操作。 1 mc a r d 从m 卡渎出生产实绩,能将读出的数据保存到硬盘,同日i j 从m 卡上 删除该产品的生产实绩,也r u 打印输出。 2 h a r d d i s k 根据键入的产占占番号,从硬盘上相应的义件罩榆索出当天该产晶的 生产实绩,并能手j 印输冉。 3 同报以报表的形式打印输出某一天所牛产的所有产品的合格产品数量、材料 使用率等统计数据。 4 月报以报表的形式手j 印输出某一月所生产的所有产品的统计数据( 材料使_ l j :筝的均值、产品的累计值等) 。 一览模块 该模块共有两个子模块,用丁浏览me 和硬盘里的内容。 1 mc a r d 查看m 户的使用情况及内容( 包括成型条件和生产实绩) 。 2 h a r d d i s k 分别以金型和制品的模式列表显示硬盘甲有关模具和产品的数据。 复写模块 该模块共有两个子模块,分别用于m 卡之问的数据读写和硬盘到软盘的数据拷贝。 1 mc a r d 一 mc a r d 从m 卡a ( b ) 读出数据,再把数据写入m 卡b ( a ) 。 2 h a r d 一 f 1 0 p p 广从硬盘卜- 拷贝数据到软盘。( n e c 格式软盘) 初期设定模块 该模块共三个子模块,完成对一些系统参数的初始化。 1 mc a r d 格式化m 卡,可以没置m 卡的容量及适用范围。 2 f 1 0 p p y 软盘格式化( n e c 磁盘格式) 。 3 装置c o d e 为现场的每台成型机进行编号。 数据组织简介: 系统中数据的存放依据文件系统,成型条件名都是按照模具名命名的,成型条件的 各项值在文件中都是按顺序存放的,牛产实绩的组织也类似。 未解决问题: 系统r r 】关键性技术却未能从源程序中分析出来。如源程序中没有涉及到m 卡机部 分,主控计算机与m 机之间是串行通讯,关键的通讯参数和通讯协议无法得到。这 给片ji b m p c 代替p c 一9 8 0 1 进j j 二管理带来很多问题,同时m 卡本身的结构信息也无法 得到。为解决该问题,通过进步的分析发现p c 一9 8 0 1 机访问m 卡机的操作是通过调 用硬盘里几个e x e 文件米实现的,由此确定了下一步方案分析可执行文件。 3 2 分析目标代码 按一般工作方法只要将源程序巾调用的完成通讯的一t j j 执行文件反汇编反编译出来, 冉进一步分析,就有叮能得到相关的通讯参数及控制码。 但是p c9 8 0 1 的硬盘里没有反“编t 具,呵行方法是将可执行文件移到d o s 甲台, 利用d o s 平台下的反汇编工具。但e o s 操作系统不识别d o s 标准软盘格,且p c 一 9 8 0 l 的主板也小兼容常j l j 的i d e 硬盘,所以无法使用找到的反汇编一具。为了能反汇 编原系统的e x e 义件,作j 如下尝试。 16 软件i 斗t 程理论膨川问f 究 3 2 1 直接读取e o s 格式软盘 把这些e x e 文件先拷刽经e o s 格式化的软盘( n e c 磁盘格式) 嘬,然后以读扇区的 方式直接读取n e c 软盘里的可执行文件。 b i o s 磁盘管理程序是磁盘设备的一级控制程序,其中磁盘】0 程序l n t1 3 h 为 磁盘扇区的读写提供了极大的方便。i m1 3 h 的执行依赖于软盘基数表入口i n t1 e h , 其中断向量存放软盘基数表的入口地址。在调用c 语言的厍函数b i o s d i s k ( ) ( 实际上 是直接调用i n t l 3 1 ) 读取n e c 磁盘格式的扇区之前,必须建立个新的软盘基数表并以 其入口地址重置1 n t1 e h 向量,这样,i n l 1 3 h 就可以在新的软箍基数环境下执 7 - x , j 软 盘的操作了。 经各种努力均未找到n e c 磁盘格式的软盘基数表参数,直接读取e o s 格式软需未得 到预期效果。 3 2 2p 0 - - 9 8 0 1 年口ib m p c 问串行通信 p c - - 9 8 0 1 带有个r s - - 2 3 2 串行口,而且硬盘埋有q b a s i c ( v e r 4 5 ) ,这为凄出可 执行文件提供了另一条途径用q b a s i c 语言编写两段微机问的串行口通讯程序( 分 别实现字符的发送和接收) ,就可以将p c - 9 8 0 1 甩的可执行文件按字节发送到它的串行 口,再通过数据线传送至i b mp c 机的串行l ,p c 机从c o m 口按字节读取可执行文件到 带有反汇编工具的硬盘里,就i j 以对可执行文件进行反汇编了。 最初,以传统的= 三线方式将两台微机的串行l j ( 2 5 针) 连接,在p c - - 9 8 0 l 机上运 行发送程序,而在i b i - - p c 机上运行接收程序,使其反复检测并读耿c o m 口的接收端直 至发送端结束发送。具体脚位配线如图3 1 所示: p c 一9 8 ( ) 1 i r mp c ( 发送) 2 q ;蹴; ( 接收) 3 ( 共享接地) 7 7 ( 共享接地) 幽3 1p c - - 9 8 0 1 和i b m - - p c 串行通信三线连接线路 f i g3i t h es k e t c hm a po f t h r e es e 】i a lc o m m u n i c a t i o n l i n e sc o n n e c t e d b e l w e e np c 一9 8 0 1a n d i b m p c 两台微机的串行口都遵循r s - - 2 3 2 协议,r 乜位在i3 v + 【5 v 之问表示数字0 ,存一 3 v 一l5 v 之、白j 表示数字1 。迮线喇,将p c 一9 8 0 1 机c o 、 i 口的2 弓脚( 发送脚) 和3 号脚 ( 拔收脚) 分别连钍7 b i - - t ,( 1 机mu 的: 引却( 接收脚) 和2 号脚( 发送脚) ,再把两 l 了 软件 f 门呷、蝉沦应用o j t 0 5 c 台微机的7 号脚( 地线) 连在一起,这意味管发送端和接收端始终都处于准备好状态。通 信采用全双工方式,即发送线和接收线采用不同的线路,并在开始通信前以相同的卧议 初始化端口。从理论上来说,只要双方的通信协议一致,目- 硬件连接线路畅通,就一定 能完成数据传输。实践中,以两台i b m p c 机之间的通信为试验,编写的b a s i c 通信程 序均能运行通过且成功的完成了两台微机之问的文件传输。但是1 1 3 mp c 机和三得公司 的p c 9 8 01 机连接起来通信,发送程序却不能将数据发送到线路上去。 按照h 本微机和读卡机通信的连接方式( 不妨称做九线方式) 连接,则能够成功地 进行数据的发送与接收。最终依照此法,成功的把n e c 的p c 一9 8 0 i 上的可执 j 二文件通 过串行口移植到了i b m p c 机上。其线路连接如图3 2 所示: p c 一9 8 0 li b m p c ( 保护接地) 1j ( 保护接地) ( 信号传输) 23 ( 信号接收) ( 信号接收) 32 ( 信号传输) ( 送信请求) 44 ( 送信请求) ( 准备传送) 55 ( 准备传送) ( 数据备妥) 66 ( 数据各要) ( 共享接地) 77 ( 共享接地) ( 载波检测) 88 ( 载波检测) ( 品质检测) 2 0 2 0 ( 品质检测) 幽3 2p c 一9 8 0 l 和i b m p c 串行通信九线连接线路 f i g3 2t h es k e t c hm a po f n i n es e r i a lc o m m u n i c a t i o nl i n e sc o n n e c t e db e t w e e np c 一9 8 0 1a n di b m p c 3 2 3 分析可执行文件 把接收到的e x e 文件用反扩编程序反汇编成汇编语言程序,分析f j 串行口通信有关 的指令代码,试图找出和m 卡机有关的通信控制协议以及p c - - 9 8 0 1 串行广| 的初始化参 数。 按最初设想,初始化参数应存在于反汇编后的o u t 指令或者是i n 指令中。| i ,是, 这些语句中并没有包含所需要的信息,指令中送往端| 1 的值都是一些杂乱无章的数据。 从理论上分析,每次通讯都应该以相同的参数初始化端门,例如:波特率、数据位、奇 偶校验、停止位等,但足在这儿个文件的汇编代码中却没有一条o u t 语句或i n 语句是 相同的。 分析j :述现象,具原因是一9 8 0 l 机与i 酬p c 机的机器指令码不同。闻此,把 p c 一9 8 0 1 机的e o s y s i 、e m 平台下的应用程序传送到d o si 1 7 台上进行反汇编不iu 能得卅正 l8 确的汇编代码,从而也币可能通过分析可执行文件的反汇编代码得出与m 卡机有关的通 信参数。 3 3 推测通信参数及呼叫码 通讯,双方要说明到底是如何传送数据的,否则无法了解对方传过来资料的意义, 因此沟通双方必须遵循一定的通讯规则,即通讯端口初始化。用l b mp c 机直接和m 卡 机进行通讯,来寻找要和m 卡机进行通讯所需要的初始化通讯端口值。 初始化通讯端r i 的参数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论