收稿日期:2007-06-25;修回日期:2007-09-04 基金项目:湖北省自然科学基金资助项目(2007ABA034);华中师范大学科学技术研究基金资助项目(2006AA22)作者简介:叶俊民(1965-),男,教授,博士,主要研究方向为高可信软件工程(j m yee @m ai.l .cn);陈卓(1986-),男,学士,主要研究方向为软件工程;雷志翔(1982-),男,硕士研究生,主要研究方向为软件工程;叶焰锋(1983-),男,硕士研究生,主要研究方向为软件工程;詹泽梅(1979-),女,硕士研究生,主要研究方向为软件工程.基于构件组装的应用软件开发过程研究*叶俊民,陈 卓,雷志翔,叶焰锋,詹泽梅(华中师范大学计算机科学系,武汉430079)摘 要:基于构件的软件开发方法是目前一种流行的软件生产技术,其核心围绕着构件的开发与组装技术。
但如何结合实际应用要求实施基于构件组装的软件开发过程是一个值得进一步研究的课题。
为此,根据基于构件的软件组装技术的概念和原理,提出一种应用系统组装框架,从软件体系结构的角度研究了构件的开发与组装方法,并将这一技术应用到软件工程网络课堂教学系统的开发上。
相关实践活动表明,提出的方法可有效地获得一个适应性强的应用系统。
关键词:构件;软件体系结构;构件组装;网络课堂教学系统中图分类号:TP311 文献标志码:A 文章编号:1001-3695(2008)06-1736-03R esearch on applicati on deve l opm ent process based on com ponen t compositi onY E Jun -m i n ,CHEN Zhuo ,LE I Zh-i x iang ,Y E Y an -feng ,Z HAN Ze -m ei(D e pt .of C o mpu t er Sc i ence ,H uazhong N or ma l Un i v e rsit y,W uhan 430079,C hina )Abstract :Soft ware devel op m en tm ethod based on co m ponents is a popular technol ogy on soft ware producti on ,the key i ssue i sdevelopment and co mposite technol ogy ,but how to comb i ne the practical app licati on calls for t he i n troduction of componen-t based compositi on i n the soft w are devel op m ent process is a s ubject of a f u rt her study This paper refered to the soft w are co m po -nent compositi on technol ogy concep ts and pri nci ples ,presented a fra m ework f or asse mb li ng appli cations ,and research devel op -m ent and co m pos i tion met hod for m soft ware arch i tect ure ,and t h i s technol ogy appli ed t o devel op i ng t he soft w are engineeri ng net work teachi ng cl assroo m syste m The resu lts show that thism ethod can be an effecti vem eans to obtai n a strong adaptab ilit y app licati on Key words :co m ponen;t soft ware architecture ;co m ponent composite ;net work teach i ng syste m 在当前信息化社会中,各行各业对应用软件的需求量越来越大,所需软件的规模和复杂度也不断增加。
传统的 数据结构+算法=程序 设计模式已经无法满足不断增长、日趋复杂应用的需求,而庞大的软件系统在维护上也困难重重,人们不断地探索着这一危机的解决方法,基于构件的软件开发方法就是这一探索中的方法之一。
基于构件的软件开发能有效地缩短开发周期,降低应用系统的开发成本,提高系统的可维护性。
目前国内外对构件组装技术的研究已取得一定成果。
美国OM G 的CORBA 、M icroso ft 的COM 、S UN 的JavaBeans/EJB ;国内北京大学软件工程研究所的青鸟工程也已取得了很好成果。
我国自主研发的 和欣 操作系统(英文名E l astos)就是使用构件技术开发的典型,创新性地实现了C AR (co m ponent assemb l y runti m e)构件技术,即一种完全面向下一代的网络服务。
在基于构件的软件开发中,构件的开发、构件组装及其开发过程是关键技术。
目前,对于构件组装技术的应用基本上还停留在手工组装的阶段,半自动化甚至自动化的构件组装的实现还有待时日。
1 研究基础构件是指是指可方便地插入到语言、工具、操作系统、网络软件系统中的一种接口定义良好的、独立可重用的二进制形式的代码和数据;而可复用构件是指具有相对独立的功能和可复用价值的构件[1]。
1 1 构件的开发[2]构件包括构件接口和构件规约两部分。
构件接口是构件间的契约(图1)。
一个接口提供一种服务,完成某种逻辑行为。
构件接口包括名称部分和行为(图2)。
前者是构件本身提供服务的描述;后者是构件行为的描述。
一个构件可以有一个或多个接口,而构件接口可以由多个构件实现。
构件接口是外部访问构件的访问点。
构件规约是构件开发商向构件使用者提供的、用于进行构件组装的文档。
从上述构件的定义可以看出,构件的开发涉及两个方面:设计构件接口和实现构件的行为。
众所周知,接口是构件描述其行为的机制,并且提供了对其所提供服务的访问。
由于实现是完全隐蔽的,接口描述就成为构件的潜在客户所能依赖的所有信息。
这使得接口描述的表达力和完整性在任何基于构件第25卷第6期2008年6月计算机应用研究Application R esearc h of C o m putersVo.l 25,N o .6Jun .2008的软件方法中都是一个需要着重考虑的问题。
1 2 构件组装基于体系结构的组装技术的优点是受现实环境的影响很小。
该构件组装是指将构件库中的构件经过适当修改后相互连接,或者将它们与当前开发项目中的软件元素相连接,最终构成新的目标软件。
基于体系结构的构件组装包括基于功能的组装技术和基于数据的组装技术[2]。
本文采用基于功能的组装技术,开发人员首先应对目标软件系统进行功能分解,将系统分解为强内聚、松耦合的功能构件;然后根据各构件的功能需求提取构件,对其进行适应性修改后再组装到相应的功能分解框架中。
1 3 构件组装过程基于体系结构的构件组装过程如下:a)根据用户需求和实现环境,设计应用系统的软件体系结构框架,并定义结构中的构件及构件之间的关系,由此设计构件规约和构件接口规约;b)并行设计和实现构件及其接口/连接件规约,并按一定规则将这些构件和接口/连接件放入相应的库中;c)在可复用构件库和接口/连接件库中查找并获得符合要求的构件与接口/连接件,必要时可开发新的满足要求的构件、接口/连接件;d)根据应用系统的软件体系结构框架将相关的构件和接口/连接件组装起来,生成新的应用系统。
图3给出了基于软件体系结构的构件组装框架。
应用系统的软件构造过程包括分析构件、设计构件、实现构件和组装构件。
图4为基于软件系统结构的系统开发过程。
2 基于构件组装的软件工程网络课堂教学系统的设计与实现2 1 系统需求概述教学资源信息化是现代教学中最为关键的要素之一,也是高校信息化建设的重点内容。
与传统教学模式相比,网络教学是一种全新的教育模式,可以突破时间和空间的限制,帮助学生随时随地学习,让更多的学习者共享优秀的教学资源。
网络教学既具有开放性、交互性、协作性和自主性等特点,又集异步性、实时性、生动性和大容量等优势于一身。
因此,在网络教学系统的建设中,单纯地构建各种功能单一的系统并不能完全满足远程教育设计的需要,只有对数据和信息进行有效组织,整合多种资源,才能为用户提供个性化服务的系统,充分发挥网络教学的作用。
软件工程 是一门研究软件开发与维护的普遍原理和技术的工程学科。
其运用非常广泛,包括技术方法、工具和管理等许多方面。
软件所解决的问题十分复杂,学生在课后的编程实践中,会在需求分析和开发周期等问题上遇到一些困难,因此,在这门课程的学习过程中,教师与学生的交流起着非常重要的作用,而使用合适的案例进行教学与参考可以有效地提高教学的效率和质量。
软件工程网络课堂教学系统包括三大功能:a)精品课程申报。
主要以文本和图片的形式介绍课程的教学及建设情况。
b)网络课堂教学。
它是作为传统课堂授课的补充,学生通过使用网络课堂、案例教学和在线测试等功能将在课堂上所学的知识加深和强化;教师在网上发布学习资料供学生下载,并能在线批阅学生提交的课后作业,及时了解学生的学习情况。
c)互动。
提供完善的消息和论坛功能,以方便教师和学生之间的交流,进行课后作业及实验指导。
目前,该系统运行情况良好(http ://cs .ccnu .edu .c m /se w eb)。
2 2 系统设计2.2.1 软件工程网络课堂教学系统的构件模型软件工程网络课堂教学系统软件体系结构涉及静态和动态两个方面。
其静态体系结构如图3所示。
静态体系结构包括课程申报构件。
该构件负责介绍课程的教学、申报、改革以及创新等情况。
该构件的构造主要是在一个事先设计好的模板上填写信息,在填写过程中,用户可以定制相关界面风格。
动态部分主要涉及网络课堂教学系统中的运行时构件及相关交互,包括公告发布管理、课件发布管理、作业发布批阅、作业下载提交、案例教学、在线测试、试题管理、学习论坛和消息交流等构件,以及这些构件与底层构件、与使用者间的交互。
2.2.2 构件模型的组装将图1所示的构件通用模型实例化,得到软件工程网络课堂教学系统的构件模型。
该模型采用三层结构,即表示层、业务逻辑层和数据访问层。