毕业设计 基于构件的软件自动组装技术.docx

上传人:b****8 文档编号:9569294 上传时间:2023-02-05 格式:DOCX 页数:31 大小:340.46KB
下载 相关 举报
毕业设计 基于构件的软件自动组装技术.docx_第1页
第1页 / 共31页
毕业设计 基于构件的软件自动组装技术.docx_第2页
第2页 / 共31页
毕业设计 基于构件的软件自动组装技术.docx_第3页
第3页 / 共31页
毕业设计 基于构件的软件自动组装技术.docx_第4页
第4页 / 共31页
毕业设计 基于构件的软件自动组装技术.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

毕业设计 基于构件的软件自动组装技术.docx

《毕业设计 基于构件的软件自动组装技术.docx》由会员分享,可在线阅读,更多相关《毕业设计 基于构件的软件自动组装技术.docx(31页珍藏版)》请在冰豆网上搜索。

毕业设计 基于构件的软件自动组装技术.docx

毕业设计基于构件的软件自动组装技术

海南大学

毕业论文(设计)

 

题目:

基于构件的软件自动组装技术

学号:

姓名:

年级:

学院:

信息科学技术学院

系别:

专业:

指导教师

完成日期:

20年月日

 

 

摘要

如今基于构件的软件复用和开发被认为是提高软件生产率和软件质量的有效途径。

一般来说,基于构件的软件复用包括三个相关的过程:

构件的开发,构件的管理和基于构件组装的系统开发。

在基于构件的软件开发中,系统开发的重点从系统设计变成构件组装。

本文研究的就是这种基于构件的软件自动组装技术。

开发该系统,我使用面向对象的可视化开发工具VisualBasic6.0,运用计算机软件技术和面向对象的软件开发方法。

首先制作出用于模拟构件的芯片(芯片的部分内部功能由指导老师提供),其次设计出一个相对比较简单的连接件(因连接件的开发另有同学研究),最后采用事件触发的方法,运用连接件实现模拟构件(芯片)间的组装,同时,实现功能芯片间的模拟防真。

通过该系统的研究开发,使我获益匪浅,不但对基于构件的软件自动组装技术有了更深刻的认识,而且对开发工具VisualBasic6.0有了更全面的掌握。

当然,限于作者水平,本系统难免有疏漏和不完善之处,敬请各位老师不吝指正。

关键词:

构件;软件构件;连接件;软件复用;构件组装

Abstract

Nowcomponent-basedsoftwarereuseanddevelopmentisconsideredasaneffectiveandefficientapproachtoimprovetheproductivityandqualityofsoftwaredevelopment.Generally,component-basedsoftwarereuseincludesthreeprocesses:

componentdevelopment,componentmanagementandsystemdevelopmentwhichisbasedoncomponentcomposition.Inthecomponent-basedsoftwaredevelopment,theemphasisofsystemdevelopmenthasbeenturnedtocomponentcompositionfromsystemdesign.Thistextisstudyingthetechnologyofcomponent-basedsoftwarecompositionautomatically.

Inordertodevelopthissystem,Iusedtheobjected-orientedvisualtoolVisualBasic6.0,computersoftwaretechnologyandthemethodofobjected-orientedsoftwaredevelopment.Firstly,Idevelopedthechipswhosesomeinteriorfunctionswereofferedbytheteachertosimulatecomponents.Secondly,Idevelopedasimpleconnective-ware,becausetherewasanotherstudentstudieditspecially.Finally,Iletthesystemcometruewiththemethodofevent-drivenandconnective-ware,simultaneity,thesechipscouldsimulatethetruth.

Bydevelopingthissystem,Ibenefitalot,notonlyunderstandthetechnologywhichcomponent-basedsoftwarecompositionautomaticallyevenmore,butalsomasterthetoolVisualBasic6.0todevelopsoftwareevenmorecomprehensive.Certainly,limitedtotheauthor,thissystemwashardtoavoidoversightsandfaultiness,pleaseeveryteacherpointoutunstinted.

Keywords:

component;softwarecomponent;connective-ware;softwarereuse;componentcomposition

目录

1引言…………………………………………………………………………

(1)

1.1研究的必要性……………………………………………………………

(1)

1.2高级语言的选择…………………………………………………………

(1)

2相关知识……………………………………………………………………

(1)

2.1构件………………………………………………………………………

(2)

2.1.1构件的背景知识………………………………………………………

(2)

2.1.2什么是构件……………………………………………………………

(2)

2.1.3什么是软件构件………………………………………………………

(2)

2.2连接件……………………………………………………………………(3)

2.2.1连接件背景知识………………………………………………………(3)

2.2.2什么是连接件…………………………………………………………(3)

2.3面向对象与软件复用……………………………………………………(3)

2.3.1面向对象的软件开发…………………………………………………(3)

2.3.2软件复用………………………………………………………………(4)

2.3.3面向对象的软件开发与软件复用的关系……………………………(4)

2.4CBSD与传统软件开发的区别…………………………………………(5)

3系统分析……………………………………………………………………(5)

3.1总论………………………………………………………………………(6)

3.2设计难点…………………………………………………………………(6)

4构件开发与设计……………………………………………………………(6)

4.1芯片设计…………………………………………………………………(6)

4.1.1芯片外形设计…………………………………………………………(6)

4.1.2芯片功能设计…………………………………………………………(7)

4.1.3芯片功能实现…………………………………………………………(9)

4.2连接件的设计……………………………………………………………(9)

4.2.1外形设计………………………………………………………………(10)

4.2.2功能设计………………………………………………………………(10)

4.3用于改变构件形状大小的用户控件……………………………………(11)

4.3.1外形设计………………………………………………………………(11)

4.3.2功能设计………………………………………………………………(12)

5系统设计…………………………………………………………………(12)

5.1系统界面设计…………………………………………………………(12)

5.1.1系统界面图……………………………………………………………(12)

5.1.2主窗体设计……………………………………………………………(13)

5.2系统功能设计…………………………………………………………(13)

5.2.1新建对象………………………………………………………………(13)

5.2.2删除对象………………………………………………………………(14)

5.2.3组装……………………………………………………………………(14)

5.2.4系统初始化……………………………………………………………(15)

6系统调试与实现…………………………………………………………(15)

6.1新建对象………………………………………………………………(15)

6.2构件组装(接线)………………………………………………………(16)

6.3初始化芯片……………………………………………………………(16)

6.4运行……………………………………………………………………(17)

6.5文件保存与读取………………………………………………………(18)

7总结………………………………………………………………………(21)

致谢………………………………………………………………………(22)

参考文献……………………………………………………………………(23)

附录A…………………………………………….…………………………(24)

1引言

1.1研究的必要性

现如今,随着软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竞争等因素的出现,软件企业迫切需要提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开发周期。

于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的"基于构件的软件开发"(CBSD,ComponentBasedSortwareDevelopment)应运而生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,以连接件为组装纽带,支持组装式软件的复用,从而大大提高了软件生产效率和软件质量。

这正是研究本课题的意义所在。

1.2高级语言的选择

根据本课题的特点,我选择了一种面向对象的高级语言——VisualBasic6.0。

选用VisualBasic的原因:

VisualBasic是一种可视化的,采用面向对象的编程技术,利用事件驱动编程机制的结构化程序设计语言。

它提供了可视化开发工具,把Windows界面设计的复杂性“封装”起来。

开发人员不必为界面的设计而编写大量的程序代码,只需按照设计的要求,用系统提供的工具在屏幕上画出各种对象即可。

VisualBasic通过事件来执行对象的操作。

当触发某一对象会产生一个事件,产生该事件时执行一段程序,实现指定的操作。

在用VisualBasic设计应用程序时不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。

这些过程分别面向不同的对象,有用户操作引发某个事件来驱动完成某个特定的功能,或者由事件驱动程序调用过程来执行指定的操作。

VisualBasic还提供大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效地提高了应用程序的运行效率和可靠性。

而我所研究的这一课题,恰恰需要用控件来制作模拟构件。

2相关知识

在该系统中,要用到很多关于构件,软件构件,连接件,软件复用和面向对象的概念,以下作简单介绍。

2.1构件

2.1.1构件的背景知识

程序员们一行行编写代码的时代已经延续了30多年,现在已经有了很大的变革。

我们现在只需要"组装"已有的功能模块就可以完成应用的开发工作了。

这"已有的功能模块"就是我们通常所说的"构件"。

形象一点说就像是我们小时候玩过的积木,用各种积木块可以搭出一座我们满意的城堡来。

2.1.2什么是构件

构件(component,也译为组件)简单地说是可复用的软件组成成份,可被用来构造其他软件。

而可复用构件(Reusablecomponent)是指具有相对独立的功能和可复用价值的构件。

它可以是被封装的对象类、类树、一些功能模块、软件框架(framework)、软件构架(或体系结构Architecture)、文档、分析件、设计模式(Pattern)等。

构件分为构件类和构件实例,通过给出构件类的参数,生成实例,通过实例的组装和控制来构造相应的应用软件。

可复用构件应该具备以下几个属性:

①有用性(Usefulness):

构件必须提供有用的功能;②可用性(Usability):

构件必须容易理解和使用;③质量(Quality):

构件及其变形,必须能够正确工作;④适应性(adaptability):

构件应易于通过参数化等方式在不同语境中进行配置;⑤可移植性(Portability):

构件应能够在不同的硬件运行平台和软件环境中工作。

2.1.3什么是软件构件

软件构件(也称软件组件)是软件系统内可标识的、符合某种标准要求的构成成分,类似于传统工业中的零部件。

软件构件有两个特征:

①有用性,指构件完成的功能是有用的,也就是其功能可出现在很多应用软件中;②易用性,指构件要有很好的包装,能很方便地使用它。

一般来讲,构件的包装要符合一定的标准。

软件构件是软件复用的基本单元。

软件构件技术使得软件人员在应用开发时可以使用其他人的劳动成果,为软件产业进行大规模专业化分工与合作形成了前提。

由于目前讨论的软件构件主要着眼于其复用的意义,因此,软件构件主要是指可复用软件构件(Reusablesoftwarecomponent)。

2.2连接件

2.2.1连接件背景知识

随着计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协同性得以保证。

这些,都需要一种构筑于软、硬件平台之上,同时对更上层的应用软件提供支持的软件系统,于是连接件在这个环境下应运而生。

2.2.2什么是连接件

连接件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。

连接件位于客户机/服务器的操作系统之上,管理计算资源和网络通讯。

连接件是一类软件,而非一种软件;连接件不仅仅实现互连,还要实现应用之间的互操作;连接件是基于分布式处理的软件,定义中特别强调了其网络通讯功能。

2.3面向对象与软件复用

2.3.1面向对象的软件开发

它有四个特点:

抽象,面向对象的软件开发方法的主要特点之一,就是采用数据抽象的方法来构建程序的类,对象和方法;封装,封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过包裹在数据外面的被授权的操作,才能与这个抽象数据类型交流和交互;继承;多态。

同时有以下几个优点:

可重用性,可重用性是面向对象软件开发的一个核心思想,事实上,前面所介绍的面向对象程序设计的四大特点,都或多或少地围绕着可重用性这个核心并为之服务。

我们知道,应用软件是由模块组成的。

可重用性就是指一个软件项目中所开发的模块,能够不仅限于在这个项目中使用,而是可以重复地使用在其他项目中。

在面向对象的程序设计中,这种可重用模块就是类和对象。

严格地说,是类定义了可重用模块的摸板,而对象则是由这个模板制造出来的可以在各种场合,环境中重复利用的摸板;可扩展性;可管理性。

2.3.2软件复用

软件复用就是将已有的软件成分用于构造新的软件系统。

可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称作复用。

软件复用使人们在软件开发中不必“重新发明轮子”或“一切从零开始”,提高了软件生产率和质量,缩短开发周期,降低开发成本。

软件的重用中没有材料的消耗,而且软件通过多次重用后其质量和可靠性越来越高。

据统计,软件系统的开发中若复用程度达到50%,则其生产率提高40%,开发成本降低约40%,软件出错率降低近50%。

软件工程专家Bohem认为,近十年来软件复用已成为解决软件危机、提高软件生产率和质量的最有效、最具潜力的手段。

软件复用的两种方法:

①产品复用:

复用已有的软件构件,通过集成(组装)得到新系统。

②过程复用:

复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动来生成系统。

产品复用是目前现实的、主流的途径。

2.3.3面向对象的软件开发与软件复用的关系

面向对象的软件开发和软件复用之间的关系是相辅相成的。

支持软件复用是人们对面向对象方法寄托的主要希望之一,也是这种方法受到广泛重视的主要原因之一。

面向对象方法之所以特别有利于软件复用,是由于它的主要概念及原则与软件复用的要求十分吻合。

一方面,OO方法的基本概念、原则与技术提供了实现软件复用的有利条件;另一方面,软件复用技术也对面向对象的软件开发提供了有力的支持。

在面向对象的软件开发中,类库是实现对象类复用的基本条件。

类库可以看作一种特殊的可复用构件库,它为在面向对象的软件开发中实现软件复用提供了一种基本的支持。

存储和管理以类为单位的可复用构件,不能保存其它形式的构件;但是它可以更多地保持类构件之间的结构与连接关系。

构件库中的可复用构件,既可以是类,也可以是其它系统单位;其组织方式,可以不考虑对象类特有的各种关系,只按一般的构件描述、分类及检索方法进行组织。

在面向对象的软件开发中,可以提炼比对象类粒度更大的可复用构件,例如把某些结构或某些主题作为可复用构件;也可以提炼其它形式的构件。

这些构件库中,构件的形式及内容比类库更丰富,可为面向对象的软件开发担供更强的支持。

2.4CBSD与传统软件开发的区别

CBSD在重用元素、开发方法上都与传统的软件开发过程有很大的不同。

虽然面向对象技术促进了软件重用,但是,只实现了类和类继承的重用,在整个系统和类之间还存在很大的缺口。

在软件开发方法上,CBSD引导软件开发从应用系统开发转变为应用系统集成。

建立一个应用系统需要重用很多已有的构件模块,这些构件模块可能是在不同的时间、由不同的人员开发的,并有各种不同的用途。

在这种情况下,应用系统的开发过程就变成对构件接口、构件上下文以及框架环境一致性的逐渐探索过程。

其主要难点是事务划分、构件的部署与开发环境配置。

概括地说,传统的软件开发过程是串行瀑布式、流水线的过程;而CBSD是并发进化式,不断升级完善的过程。

图1显示了它们的不同。

3系统分析

3.1总论

基于构件的软件自动组装技术,这个课题重点在“自动组装”上,前提是“基于构件”的。

简单来说就是构件是从构件库中提取(或已经做好的),接下来要做的就是运用计算机软件技术、基于构件的软件组装思想和面向对象的设计方法,设计一个连接件,使这些构件组成一个系统。

在本系统中,模拟构件是自己制作。

我制作芯片来充当模拟构件,首先制作出芯片的外形,处理好芯片接口,但芯片的内部功能是由指导老师提供;其次设计出连接件,并且运用连接件实现构件(芯片)间的组装;最后,功能芯片能够模拟实际情况运行。

3.2设计难点

●芯片端口事件及内部功能的设计;

●连接件的功能设计;

●用于改变构件形状大小的用户控件的设计;

●用连接件实现构件(芯片)间组装。

4构件开发与设计

4.1芯片设计

4.1.1芯片外形设计

因为大部分芯片外形基本相同,区别只是在引脚个数的多少,所以芯片的外形设计也基本相同。

在本系统中我用到两个芯片,一是CPU8086,一是数据锁存DLM8286。

在此我以CPU8086为例来讨论芯片的外形设计。

◆制作芯片外形所用控件

Label1:

Label‘标签对象,用来显示芯片名称

Port(i):

Label‘标签对象,用来模拟芯片引脚

Line1,Line2,Line3,Line4:

Line‘Line对象,用来表现芯片外观

Shape1,Shape2,Shape3:

Shape‘Shape对象,用来表现芯片外观

◆芯片外形初始化

PrivateSubUserControl_Initialize()

DimiAsInteger

DimCtAsInteger'芯片端口数

Fori=0ToCt

Port(i).ForeColor=RGB(0,0,255)'引脚上数字颜色

Port(i).BackColor=RGB(0,0,0)'引脚上数字背景色

Port(i)=Trim(Str(i))'在引脚上注明引脚码

Next

EndSub

◆改变构件尺寸后重画构件

PrivateSubUserControl_Resize()

'具体过程见附件

EndSub

◆芯片图形展示(见图2,图3)

图2图3

4.1.2芯片功能设计

◆芯片产生事件

PublicEventChange(ByValPortIndexAsInteger,ValueAsByte)'运行模式下,点击端口,产生端口值变化事件

PublicEventClick(ByValPortIndexAsInteger)'设计模式下,在端口单击鼠标时产生

PublicEventMove(XAsSingle,YAsSingle)'设计模式下,移动元件时产生

PublicEventDown()'设计模式下,在元件上按下鼠标时产生

PublicEventUp()'设计模式下,在元件上释放鼠标时产生

◆运行模式下,芯片端口颜色随端口值变化而变化

PrivateSubPort_Color(IndexAsInteger,ValueAsByte)''根据引脚的值,给引脚改变颜色和注释引脚值

IfValue=0Then'为低电平时引脚为绿色,引脚号码为0

Port(Index).BackColor=RGB(0,255,0)

Port(Index).Caption=0

ElseIfValue=1Then'为高电平时引脚为红色,引脚号码为1

Port(Index).BackColor=RGB(255,0,0)

Port(Index).Caption=1

Else'其它,引脚号码不变

Port(Index).BackColor=RGB(0,0,0)

Port(Index).Caption=Index

EndIf

EndSub

◆运行模式下,单击芯片引脚,改变芯片引脚值

PrivateSubPort_Click(IndexAsInteger)

DimiAsByte

Mode=1'在运行模式下

i=IIf(PortValue(端口号)=0,255,0)

ChangePortValueIndex,i

EndSub

◆运行模式下,初始化芯片引脚值

PublicSubInit(FlagAsByte)'初始化芯片引脚(高电平为1,低电平为0)

DimiAsInteger’端口号

Mode=1’运行模式

ChangePortValuei,高低电平值

Mode=0’设计模式

ChangePortValuei,255

EndSub

◆获取端口坐标

PortX=Port(index).Left+Por

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1