基于构件库_工作流的可视化软件开发
- 格式:pdf
- 大小:267.88 KB
- 文档页数:6
1. CMM分哪几个成熟度等级?每个等级的名称是什么?有什么含义?CMM分为5个成熟度等级,分别是初始级、可重复级、已定义级、已管理级、优化级,具体含义如下:初始级组织缺乏明文的管理办法,软件工作没有稳定的环境,制定了计划又不执行,反应式驱动工作开展。
紧急情况下已定的规程丢在一边,急于编码和测试。
个别项目的成功依赖于某个有经验的管理人员。
个别管理人员能顶住削减过程的压力,但他们离职则全然不同。
规定的过程无法克服由于缺乏有效管理带来的不稳定性。
现象往往表现为过程无一定之规,项目进度、预算、功能及产品质量无法保证,项目的实施不可预测。
初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。
也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策、资源等方面的保证时,那么它仍然被视为初始级。
可重复级建立了为跟踪成本、进度和功能的基本项目管理过程。
基于以往项目经验,制定了过程实施规范,使类似的项目可再次成功。
能追踪成本、进度、功能,及时发现问题。
如有分包,其质量也能得到控制。
第二级的管理过程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面。
其中项目管理分为计划过程和跟踪监控过程两个过程。
通过实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。
已定义级制定了组织的标准过程文件,这是软件工程基础设施的重要组成部分。
建立了组织的软件工程过程组(SEPG),负责软件过程活动。
制定和实施了人员培训大纲,保证人员能够胜任岗位知识和技能要求。
针对特定项目,可将标准软件过程(OSSP)进行剪裁。
项目成本、工期和功能已受控,质量可跟踪。
管理者了解所有项目对技术进步的要求。
在第二级仅定义了管理的基本过程,而没有定义执行的步骤标准。
在第三级则要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。
UML 系统建模基础教程课后答案第一章面向对象设计与UML1.填空题(1)UML(2)封装继承多态(3)继承(4)瀑布模型喷泉模型基于组件的开发模型XP 开发模型2. 选择题(1)C(2)A B C D(3)A B C D(4)A B C(5)A1.试述对象和类的关系。
(1)类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。
类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性和相同行为的对象。
第二章UML 通用知识点综述(1)依赖泛化关联实现(2)视图图模型元素(3)实现视图部署视图(4)构造型标记值约束(5)规格说明修饰通用划分2. 选择题(1)D(2)C(3)A(4)A B(5)D(6)1)在UML 中面向对象的事物有哪几种?在UML 中,定义了四种基本的面向对象的事物,分别是结构事物、行为事物、分组事物和注释事物等。
(7)2)请说出构件的种类。
构件种类有:源代码构件、二进制构件和可执行构件。
(8)3)请说出试图有哪些种类。
在UML 中主要包括的视图为静态视图、用例视图、交互视图、实现视图、状态机视图、活动视图、部署视图和模型管理视图。
(9)4)请说出视图和图的关系。
视图和图是包含和被包含的关系。
在每一种视图中都包含一种或多种图。
(10)5)请简述UML 的通用机制。
UML 提供了一些通用的公共机制,使用这些通用的公共机制(通用机制)能够使UML 在各种图中添加适当的描述信息,从而完善UML 的语义表达。
通常,使用模型元素的基本功能不能够完善的表达所要描述的实际信息,这些通用机制可以有效地帮助表达,帮助我们进行有效的UML 建模。
UML 提供的这些通用机制,贯穿于整个建模过程的方方面面。
前面我们提到,UML 的通用机制包括规格说明、修饰和通用划分三个方面。
第三章Rational 统一过程(11)1 )角色活动产物工作流(12)2 )逻辑视图过程视图物理视图开发视图用例视图(13)3)设计开发验证(14)4 )二维(15)5)周期迭代过程里程碑(16) A B C D(17) A C D(18) A C D(19) A B C(20) A B C D(21)1 )请描述迭代过程有几个阶段。
大规模的企业应用变得越来越复杂,促使软件工程界采用新的方法来开发分布式系统。
基于构件的软件开发(CBSD:Com ponent-based Software Development)已经成为构造大型、复杂软件系统的一种关键技术[1],其目标是缩短开发时间和降低费用,通过使用已经开发好的高效的构件来提高应用系统的柔性、可靠性和可维护性。
但将一个系统通过恰当的功能分解形成上下文无关的构件却不是件容易的事情。
面向方面的软件开发(AOSD:Aspect Oriented S oftware Dev elo pment)要在解决方案中增加一维,通过封装应用系统的横切关注点(cro ss -cutting co ncerns)得到几个分离的“方面”(Aspect),这几个“方面”可以“编织”在一起形成一个功能系统。
OM G 的模型驱动体系结构(M DA:M odel Driv en Architecture)中模型贯穿整个软件生命期,并长期体现软件实现的柔性、完整性、可维护性、可测试性和可模拟性[3]。
将AOSD 和CB SD 技术结合在一起可以同时获得两者带来的好处。
“方面”经过编织成为可复用的部分,再和构件关联在一起。
目前已经形成了几种成功的CB SD 应用建模方法[2,3,4],而“方面”的建模还不明确。
有几种方法建议使用UML 建立模型[5],但目前的实践表明把UM L 模型转换成面向方面的语言和平台而不丢失相关的信息是很困难的。
本文阐述了在基于构件和方面的系统建模中,如何以平台无关的方式使用M DA,还进一步指出了M DA 不仅可用于建模和设计阶段,还可用于建立文档和现存系统的逆向工程。
1.基于构件和方面的应用系统开发DAOP(Dy nam ic Aspect-Oriented Platfo rm)是一种中间件平台[6],通过对构件和方面的动态编织来构造目标系统。
它同样为大多数的分布式应用提供了公共服务,如消息传递、广播、持久性服务等,还成功实现了多种虚拟的协作应用。
1什么是Rational统一过程(Rational Unified Process,RUP)1.1什么是过程1.2什么是软件开发过程1.3什么是统一过程1.3.1统一过程是用例驱动的1.3.2统一过程是以构架为中心的1.3.3统一过程是迭代和增量的1.4关于RUP产品2RUP产品为软件开发过程所提供的主要实践指导2.1迭代的开发产品2.2需求管理2.3基于构件的体系结构2.4可视化软件建模2.5验证软件质量2.6控制软件的变更3过程简介3.1基本定义3.1.1二维结构3.1.2角色3.1.3活动3.1.4产物3.1.5工作流3.2循环或周期3.3阶段3.3.1初始阶段3.3.2细化阶段3.3.3构建阶段3.3.4交付阶段3.4迭代过程3.5核心工作流(Core workflows)3.5.1商业建模3.5.2需求3.5.3分析和设计3.5.4实现3.5.5测试3.5.6发布3.5.7项目管理3.5.8配置和变更管理3.5.9环境1什么是Rational统一过程(Rational Unified Process,RUP)1.1什么是过程过程是为了达到一个确定的目标,需要什么人在什么时间以何种方式做何种工作的集合。
1.2什么是软件开发过程软件开发过程是一个将用户需求转化为软件系统所需要的活动的集合。
1.3什么是统一过程统一过程是一个软件开发过程。
它提供了在开发组织中分派任务和责任的纪律化方法。
它的目标是在可预见的日程和预算前提下,确保实现满足最终用户需求的高质量产品。
统一过程不是一个简单的过程,而是一个通用的过程框架,可用于各种不同类型的软件系统,各种不同的应用领域,各种不同类型的组织,各种不同的功能级别以及各种不同的项目规模。
统一过程是基于构件的,即所构造的软件系统是由软件构件通过明确定义的接口相互连接所建造起来的。
(构件:系统中一个物理上可替代的部分,它符合并提供一组接口的实现)统一过程使用统一建模语言(UML)来制定软件系统的所有蓝图。
ComputerEngineeringandApplications计算机工程与应用2008,44(10)
1引言1.1构件与构件库研究现状自1968年Mcilroy在NATO软件工程会议中首次提出“软件复用、软件构件、构件工厂”等[1]概念以来(在商业软件和商务活动中,Component通常也被称为组件),虽然软件构件的定义不断变迁[1-3]
,但基于构件的软件开发(CBSD)
一直被视为解决
软件危机,实现软件工业化生产切实可行的重要途径[4]
。
近40年来,国内外同行从不同的角度对软件构件技术进行了许多有价值的研究[5]。这些研究涉及到了软件构件的整个生命周期过程,从软件构件的定义[1-3,6]到构件的属性[7];从构件的描述[7]和分类,构件的标准化[4,8]到构件之间的关系[7];从构件的制作与生产,构件的查询与获取及构件的表示和检索[6],构件的模型与裁剪,构件的组装与反馈[15]到最终的构件复用。在国内软件构件技术当前已经发展成为软件复用的一个非常重要的学科分支[8]。随着软件构件技术的深入人心,各种异构的软件构件的数量愈来愈庞大,构件开发者关注的重点已经从最初强调构件的可复用性,转变到支撑软件构件整个生命周期管理的构件库的
基于构件库/工作流的可视化软件开发张成1,2,吴信才1,2,罗津1,胡茂胜1
ZHANGCheng1,2,WUXin-cai1,2,LUOJin1,HUMao-sheng1
1.中国地质大学信息工程学院,武汉4300742.教育部地理信息系统软件及应用工程中心,武汉4300741.FacultyofInformationEngineering,ChinaUniversityofGeosciences,Wuhan430074,China2.GISSoftwareResearchandApplicationEngineeringCenteroftheMinistryofEducation,Wuhan430074,ChinaE-mail:zhchwyl@163.com
ZHANGCheng,WUXin-cai,LUOJin,etal.Visualsoftwaredevelopmentbasedonsoftwarestructuralcomponentlibrary/workflow.ComputerEngineeringandApplications,2008,44(10):82-87.
Abstract:Anewapproachtomakevisualsoftwaredevelopmentbasedonthecombinationofworkflowtechniqueandsoftwarecomponentlibrarytechniqueispresented.Theauthorbringsuptheideaofvisualsoftwaredevelopmentmethodwhichisbasedonsoftwarecomponentlibrary,whichistoprogrammingvisuallyusingtheworkflowvisualedittoolstofabricatenewsoftwarewiththesoftwarecomponentsinsomesoftwarecomponentlibrary.Andalsobringsuptheideaofseparatingtheprocesscontrolfromsoftwarecomponent,whichistousingtheworkflowenginetodrivesoftwarecomponentstoworktogether.Softwarecomponentlibraryisemphasizedtobethefoundation,itcontainsthecomponentstobuildupcomplicatedsoftware,andthecomponentscanbeanyscaleandlevel;it’sanopensystem,supportsassemblingsoftwarewithcomponentsandalldevelopmentmethodsofB/S,
C/S.Itcanbeusedtoconstructsoftwareprojectfrombottomtotoporfromtoptobottom.Finallytheadvantagesanddisadvantagesarediscussed,too.Keywords:softwarecomponent;softwarecomponentlibrary;visualprogramming;workflow
摘要:在研究构件技术的基础上,结合工作流技术提出了一种新的软件开发模式,即通过将可视化的构件库与可视化的工作流编辑系统全面融合实现零编程的软件搭建平台。构件库包含了多层次和多粒度的可视化软件构件集合。工作流以业务流程为核心来组装各种构件以实现可视化的软件开发。论文提出了软件构件运行与逻辑控制分离的思想,通过构件库不同层次构件为用户提
供良好的软件扩展性和移植性,通过工作流引擎的流程控制取代程序流程的过程控制实现面向业务的快速软件搭建,并支持任意流
程的实时测试。这种软件开发模式拓展了传统软件工程的过程开发方式,能较好兼容自上而下和自下而上的软件工程方法,并能适用于BS/CS开发模式。该模型已在新一代GIS平台———MapGIS搭建平台中得到成功应用。最后分析了该软件开发方法的优缺点
。
关键词:软件构件;构件库;可视化编程;工作流文章编号:1002-8331(2008)10-0082-06文献标识码:A中图分类号:TP311
基金项目:国家高技术研究发展计划(863)(theNationalHigh-TechResearchandDevelopmentPlanofChinaunderGrantNo.2006AA12Z218);国家科技公关计划项目(theKeyTechnologiesR&DProgramofChinaunderGrantNo.2002BA107B01)。
作者简介:张成(1975-),男,博士生,主要研究方向为地理信息系统、构件式GIS技术;吴信才(1953-),男,教授,博士生导师,主要研究方向为基础地理信息系统研究与应用;罗津(1979-),男,博士后,主要研究方向为地理信息系统应用软件开发;胡茂胜(1981-),男,博士生,主要研究方向为地理信息系统与空间数据库。
收稿日期:2007-09-19修回日期:2007-12-17
822008,44(10)
建设。大部分构件库系统对构件的管理和维护原理类似,差异主要表现在各个构件库所采用的实现技术、系统的侧重目标,以及处理的构件类型和形态方面。构件实现技术已经比较成熟。业界通用的构件模型主要有OMG(ObjectManagementGroup对象管理集团)的CORBA技术;微软的COM/DCOM(ComponentObjectModel/DistributedComponentObjectModel);SUN的JavaBeans/EJB(EnterpriseJavaBeans企业JavaBeans)。它们都满足Tracz提出的3C模型。即构件三个部分的描述:概念(concept)描述构件的功能;内容(content)描述构件怎样完成概念所描述的功能;语境(context)描述构件与其他构件的关系。按构件组织形式不同,构件库可以分为集中式构件库和基于网络的分布式构件库。前者由于构件功能相对集中,多用于专业领域的传统软件开发。后者所管理的构件集在物理上呈分布结构,在逻辑上是一个整体,为不同领域构件提供一个开发的注册、管理、检索、交易的场所,是目前构件库的主流趋势。国内外比较有代表性的构件库有欧盟信息技术计划ESPRIT中开发的REBOOT(ReuseBasedonObjectOrientedTechniques)系统,北京大学青鸟构件库管理系统(JBCLMS)(JadeBirdComponentLibrarySystem),CMUSEI开发的Ago-ra构件搜索引擎,和美国Colorado大学开发的CodeBroker构件库[9]。这些模型均是学术界提出的指导性模型,抽象层次比较高,用户可以根据不同的问题域对其进行扩展[9,10]。其中RE-BOOT构件库系统由一个存储构件的复用库以及一组支持构件生产、考查、分类、选择、评估和适配的复用工具组成。JBCLMS是国家九五重点科技攻关项目,它是一个基于Internet的软件资产库管理系统,包括构件库、构架库以及相应的库管理工具。JBCLMS是国内比较成熟的构件库管理系统,诸多文献均有关于JBCLMS的应用实例描述。根据青鸟构件库模型,广义的构件包含分析件、设计件、测试件、代码件等多种构件。由于分析件、设计件和测试件难以形成一个可以让机器理解的形式化描述,因此这类构件并没有为软件生产效率的提高带来多大的价值,只有代码件即狭义的构件随着高级语言的不断发展而得到广泛应用。如无特殊说明,下文中描述的构件专指狭义构件。Agora构件搜索引擎[9]提供一种类似于UDDI的机制,允许构件开发者通过Web方式在线搜索或注册构件。CodeBroker是美国Colorado大学开发的一个面向Java程序开发的构件库原型,其最大特色是构件库与源程序编辑工具实现无缝集成,为用户提供主动查询服务[9,11]。除上述典型构件库外,商业构件库还有[9]ReuseReposito-ry、SALMS软件资产库管理系统、ASRR自动软件复用库、RLT(复用库工具集)和HSTX复用库,政府级构件库如DSRS美国国防部软件库系统、LID构件库互操作示范工程、I-CASE(计算机辅助软件工程集成环境)、MORE(面向多媒体的构件库)、SAIC/ASSET面向软件工程的软件资产复用技术、PAL公共A-da库、CAPS软件可复用构件库和DISA(Ada库暨美国国防部信息系统代理复用库[12]等。上述构件系统研究关注的重点集中于构件的注册、设计、查询、分类等构件的管理功能,其构件的产生仍然离不开手工编写代码,缺乏可视化编码的工具。即便构件的组装能够在相匹配的构架中实现热插拔,但却往往与构架紧密结合缺少柔性,很难适应其它异构环境,影响构件在不同的构架下的通用性,往往更多地强调构件的复用性可用性等方面[13,14],对构件库的研究局限于为了软件开发者查询,理解和选取构件的阶段,
缺乏对构件库的分层分类描述和重构的设计。在一定的构架下进行组装业务时,当现有的构件不能够满足全部要求,需要进行重组时往往需要“大动手术”。对程序员而言,软件开发始终不能摆脱编写程序代码的窘境。