如何学习CBD/CBSE?

原创 2002年10月23日 09:33:00
 

如何学习CBD/CBSE

作者: 贾育

email: jia_yu@263.net

 

[版权所有 任何形式的拷贝和引用必须得到作者的许可]

 

关于怎样学习CBD/CBSEComponent-Based Development/ Component-Based Software Engineering,基于构件的软件开发/基于构件的软件工程),我也是摸着石头过河,随便说几句,仅供参考:

 

一.  知识基础:

 

首先你必须掌握软件工程知识、特别是当前软件工程的新理论、新方法和新技术,传统的软件工程的内容我想计算机专业的学生都学过,其实大多数中文教材作为入门都可以,这里我推荐Roger S. PressmanSoftware Engineering, A Practitioner’s Approach, Fourth Edition. (国内有机械工业版的中译本《软件工程—实践者的研究方法》,黄柏素等译),内容比一本教材深入一些,新一些。如果要想全面了解软件工程最新的理论和实践,理所当然是周之英的《现代软件工程》,虽然我认为这本书在深度上还可以提高,而且由于是从一些论文编译来的,一些章节的内容有些零散,但总的来说大的方面没有遗漏,一个人出这样一本书一定是很辛苦的。闲话少说,我认为你起码必须学习以下的一些知识:面向对象方法学、软件体系结构、软件复用、领域工程,可能的话还有:需求工程、设计模式、软件过程控制(CMM,个人和小组过程)、形式化方法(推荐大家学一学Z语言),是不是要累死你了,没办法谁让你干这个辛苦行当,而且又其乐融融让你自觉自愿地舍身取义。

       推荐文献:

-The Future of Software Engineering》非常好的综述,几乎涉及了软件工程的所有方面,可以读你感兴趣的领域,文中推荐的网上资源也很好。

- A Comparison of Object Oriented Development Methodologieshttp://www.toa.com/smnn?mcr.html,面向对象方法学大全,可以查到各种OO方法,以及对它们的比较。

-软件体系结构

Rick KazmanSoftware ArchitectureHandbook of Software Engineering and Knowledge Engineering 介绍了主要的SA的概念和观点,可以结合《The Future of Software Engineering》里Galan的文章一起看。

Felix Bachmann et al, The Architecture Based Design Method, TECHNICAL REPORT CMU/SEI-2000-TR-001 Len Bass et al, Architecture-Based Development TECHNICAL REPORT CMU/SEI-99-TR-007 这两篇CMU的技术报告系统介绍了SA的设计和开发方法,给出了SA工程化的可操作的方法。

Mary ShawSome Patterns for Software Architectures,介绍了多种体系结构风格,这里比在她的专著Software Architectures中要更加全面、规范,这部分是原著的精华,非常有启发性。

-软件复用

Software Reuse Initiative http://dii-sw.ncr.disa.mil/reuseic/pol-hist/primer/ 入门级教材

Hafedh Mili et alReusing Software: Issues And Research Directions 内容充实,观点深刻,指导性很强,可惜插图看不到。

DEPARTMENT of DEFENSE SOFTWARE REUSE INITIATIVE TECHNOLOGY ROADMAP Version 2.2 http://dii-sw.ncr.disa.mil/reuseic/pol-hist/Roadmap/Cover.html 全面介绍了复用原理和技术,状况、方向分析十分透彻。

其他领域没有以上这两个密切,但也可CBD有关,我以后再介绍,否则喧宾夺主了。

 

二.  实践基础

 

软件工程有理论,但更重要的是实践。它的许多方法只能在实际项目中才能体会,我周围一些没有工作经验的软工硕士大谈软工无用论时,唉,只能嗤之以鼻。

你至少要掌握一门面向对象编程语言,最好是JAVA,然后去做一个项目(可以小“题”大做)。你需要学习CORBACOM/DECOM(现在是MS Web Service)和JAVABEANEJB(似乎J2EE提法简洁一些,可大家都这么说)之一,尝试去写一些分布式对象,注意,构件的内涵不止面向对象,好在他们正朝着构件技术发展,例如CORBA CCM。建议大家学一学CORBA 开发工具可以用VisiBroker。你还要学一点UML,现在有人提出把UML作为CBD的建模工具,无论出于什么目的,UML对你肯定有帮助;至于Web Service,如果你有兴趣,自然少不了SOAP之类的新玩意(涉及不深,不敢乱说)。

推荐文献:

- CORBA

 Sams Teach Yourself CORBA in 14 Days,入门教材

 The Common Object Request Broker: Architecture and SpecificationOMGCORBA规范,很厚的一本大部头,也很枯燥,也有了中译本,其实还是原文更准确,英文技术手册文字都不是很难。

CORBA Comparison Project: Final Report德国和捷克两个研究机构的CORBA开发工具比较报告, 介绍了ORL OMNIORBIONA ORBIXINTERPRISE VISIBROKER,挺好。

CORBA方面的资料太多,可以去OMG的网站去找: http://www.omg.org/

- J2EE

张志伟等译,J2EE 构件企业系统,清华大学出版社,很全面,可惜没有电子版。如果看原版的J2EE技术蓝皮书会很辛苦。

- COM/DCOM我不很熟,曾推荐了一组.NETWeb Service的文章,大家可以读一读。

- UML

首推《UML用户手册》,邵维忠等在1999年第4期“计算机研究与发展”上的综述《统一建模语言UML述评》也非常好。

 UML在构件上的应用请看Desmond D'Souza Catalysis -- Objects, Components and Frameworks with UML 该书没有电子版,不过网上可以找到相关的论文。

 

开发工具各取所好,VisiBroker Delph 6网上都有,需要的话我可以上传下载网址, CORBA方面它们的商品化水准最高。

 

三.  CBD的常见术语和概念

 

CBD学习当然要从概念开始,因为是一门新学科(或只能称为新方向),相关概念多得有时让人丈二和尚摸不着头脑,罗列一些,供大家参考:

构件(component)、构架(Software Architecture)、框架(framework)、构件框架/构件基础设施(component framework/component Infrastructure)、对象/分布式对象(Object /Distributed OO)、接口/接口描述语言(interfaceIDL)、应用工程(Application Engineering)、领域工程(Domain Engineering)、契约(contract)、COTS(我译为“商业成品构件”,怎么样?)、中间件(middleware)、连接件/端口/角色(connectorport/role)、产品线/产品族(Product Line/Product Family)、子系统(Subsystem)、服务/网络服务(service/web service)、构件适应/配置/部署(Component adaptation/configuration/deployment)、构件容器(container)、对象请求代理ORBObject Request Broker)、设计模式(design pattern)、SOCAOPSOPseparation of concernsAspect-Oriented ProgrammingSubject-Oriented Programming),合成和生成复用(compositionalgenerative reuse,可复用资产(Reusable Asserts, 遗产系统(legacy)、企业应用集成( Enterprise Application Integration)、包装(wrap)、粒度(granularity…….

 

     然后了解CBDCBSE的每个过程的目的、任务和活动:构件获取-构件评价-构件适应-构件部署-系统集成-系统运行-构件维护-构件升级。

我总结的CBD研究方向:a构件模型和构件表示;b软件构架技术;c构件库和构件获取;d)构件的评价和度量;(e)构件的适应和演化;(f)构件的集成和连接;(gCBD过程和管理,如果你想研究,你可以挑一个你感兴趣的方向开始工作,如果你想应用,那么这些知识就像软件工程和编程语言的关系,修行就得看各人了。

推荐几篇论文。

1)入门

考虑到中文好读一些,首推计算机世界日报的99315日的专题报道“软件复用”,非常好的一组入门级文章。还有对中科院软件所李京的专访也挺好:《分布对象技术的新进展》(微电脑世界200033期)。

《基于构件开发的11个步骤》(11 Steps to Component Based Development  URLhttp://www.flashline.com/content/steps/steps.jsp?sid=986880017671-3396000210-150);普及性的资料集,内容很丰富,偏向于技术介绍。

Faisal SiddiquiCBSE: A look at reusable software components;很规矩的概述。

Component Software Glossary;构件软件术语表, 现在新的软件术语层出不穷,去那里看看能不能找到解释。

Alan Brown, An Introduction to Component-Based Development Brown的讲稿,学习CBD的快餐。Brown写了很多关于构件论文和专著,到这里找:http://www.alanbrown.net/online.html

2)提高

Mälardalen UniversityComponent Based Software Engineering  - State of the Art report 一个非常好的论文集,里面很多是CBD研究者所关心的,该学校设有CBD的博士学位,关于CBD的教学问题,也即学习问题,它们给出了一个全面系统的方案。

19982000 International Workshop on Component-Based Software Engineering 会议论文集,有几十篇短文(以后我会挑一些出来点评)。

说明:

1)以上推荐的文献都是一些实用的论文,并不取决它的权威性,一些经典的论文,例如软件体系结构方面,应该看David GarlanMary ShawSoftware Architecture: perspectives on an emerging discipline, 以及 Dewayne E. Perry Alexander L. Wolf Foundations for the Study of Software Architecture,但是它们绝没有Rick Kazman Software Architecture内容新、综合全面,文章也短一些。

2)除特别说明,所有文章均取自网上,有些我已上传,没有的,如果谁急需请告诉我。

3)应网友请求匆忙成文,我会不断修订,权当版本1.0,请各位DX多提意见。

 

区块链上的中国?2018见分晓

点击上方“蓝色字”可关注我们!暴走时评:Chun Yin Cheung是普华永道上海办公室风险保证业务合伙人,同时也是唯链基金会委员。本篇文章为其为CoinDesk回顾2017专栏所撰独家专稿。在本篇...
  • IJXR1A64JI53L
  • IJXR1A64JI53L
  • 2018年01月02日 00:00
  • 323

如何准备CBSE X类论文

如何准备CBSE X类论文   CBSE类X文件通常被认为是首套EAL的?考试他上学期间,学生需要的。综合与持续评价(CCE)出现之前,总屋宇装备工程师类X篇论文被强制董事会考试的CBSE板下学习的学...
  • salnbt
  • salnbt
  • 2014年07月23日 10:46
  • 234

ThinkPHP CBD模式中 自定义行为

在ThinkPHP 3.X中加入了CBD模式,阅读了一下官方的文档之后,感觉这个CBD模式中的B(Behavior),官方的解释是这样的: 行为(Behavior)是ThinkPHP扩展机制中比较...
  • q423498555
  • q423498555
  • 2016年10月27日 10:05
  • 377

CBD家居健康生命的守护者

《中国青年报》报道,有统计显示,巨大的工作压力导致我国每年“过劳死”的人数达60万人,中国已超越日本成为“过劳死”第一大国。意味着平均下来,每天约超过1600人因劳累引发疾病离开这个世界。   这...
  • huang1455
  • huang1455
  • 2014年07月26日 11:44
  • 287

12C CBD模式下参数文件管理

在12C数据库和11G以前版本的数据库一样只存在一个初始化参数文件,一个服务器参数文件可以被认为是一个数据库的初始化参数,维护系统运行的数据库服务器。通过设计一个服务器端的初始化参数文件。在一个服务器...
  • wenzhongyan
  • wenzhongyan
  • 2016年06月22日 11:43
  • 886

CBD家居为你打造的奢华睡眠品牌

经常熬夜、睡眠不足会导致精神不振,影响工作,而且还会有其他的症状,应采取哪能些自我保健措施呢?一是加强营养可以起到抗疲劳的功效。二是加强锻炼身体。三是调整生理节律。常年熬夜者应根据作息时间表,并不断修...
  • huang1455
  • huang1455
  • 2014年07月26日 11:40
  • 639

JPEG 编码源代码分析

//jtypes.h #define BYTE unsigned char #define SBYTE signed char #define SWORD signed short ...
  • NBA_C_love
  • NBA_C_love
  • 2013年12月24日 18:23
  • 1120

Oracle 12c CDB 和PDB 数据库的启动与关闭 说明

在Oracle 12c中,分CDB 和PDB,他们的启动和关闭操作整理如下。 1  Container Database (CDB) 对于CDB,启动和关闭与之前传统的方式一样,具体语法如下:STAR...
  • tianlesoftware
  • tianlesoftware
  • 2014年12月04日 11:48
  • 8252

GBD 调试(一)

转载自: GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是...
  • dai_jing
  • dai_jing
  • 2014年07月04日 15:57
  • 2448

为什么说深度学习和机器学习截然不同?

[转] http://www.leiphone.com/news/201612/ivLxiAXyHTCqGu0K.html 导语:Andreesen说“软件正在占领全世界”,那么深度...
  • xiangz_csdn
  • xiangz_csdn
  • 2017年01月05日 08:51
  • 11466
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何学习CBD/CBSE?
举报原因:
原因补充:

(最多只允许输入30个字)