前言
企业(Enterprise)具有一个共同目标的组织的集合,可能是政府部门,一个完整的公司,公司部门,单一科/处,或由共同拥有权连接在一起的地理疏远的组织链;可能是一个“扩展的企业”(Extended Enterprise),包括合作伙伴、供应商和客户。
架构(Architecture)在ISO/IEC 42010: 20072中对架构有如下定义:架构是系统的基本结构,它由多个组件以及它们彼此间的关系而组成,并且在一定环境和原则下进行设计和演进。(The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.)
企业架构(Enterprise Architecture),简称:EA,是一个涵盖业务和IT的全面的企业蓝图构建框架,它可以帮助企业的管理者了解企业的构成和运营,发现问题并不断改进。企业架构可以分为两大部分——业务架构和IT架构,其中:
业务架构(BA):是把企业的业务战略转化为日常运作的渠道,业务战略决定业务架构,它包括业务的运营模式、流程体系、组织结构、地域分布等内容;
IT架构(TA):指导IT投资和设计决策的IT框架,是建立企业信息系统的综合蓝图,一般包括应用架构、数据架构和技术架构三部分。
企业架构设计的核心理念是业务与IT相辅相成(Business-IT Alignment),以业务架构驱动IT架构搭建,IT架构作为业务架构的支撑。其设计流程如图所示。是承接企业战略规划与IT建设之间的桥梁,是企业信息化的核心,主要包括业务架构和IT架构。
架构的本质是管理和解决系统的复杂性,提高效率。管理复杂性:对系统进行有序化重构,不断减少系统的“熵”使系统不断进化,改善软件质量为目的的内在结构性变化;提高效率:对系统进行有序化重构,以符合当前业务的发展,并可以快速扩展。
Enterprise Architect(EA)是Sparx Systems公司的旗舰产品,是一个强大的系统设计和建模工具,支持UML 2.0标准,适用于系统开发的整个生命周期,包括需求分析、设计、测试和维护。
它提供了丰富的功能,如需求管理、代码生成、版本控制和模拟,事务进程分析、使用案例需求、动态模型、组件和布局、系统管理、非功能需求、用户界面设计、测试和维护,支持多种编程语言和数据库架构的逆向工程。EA的起源和发展展示了其在系统设计和建模领域的深厚背景和持续创新的能力。与其他知名工具如ArchiMate, Sparx System Architect等竞争。用户对EA的评价普遍较高,认为其功能强大、易于使用且性价比高。其广泛的支持和丰富的功能使其成为企业级软件开发的首选工具。
EA的主要功能
建模工具
EA提供高级的UML 2.0建模工具,支持全部13种UML 2.0图表和相关的图表元素,包括结构图表和行为图表。
需求建模( modeling requirement ),是指将用户提出的需求,以模型图的方式进行可视化,描述需求之间的关系。在需求图中,可以对功能需求、性能需求、可靠性需求、设计约束、扩展需求等各种需求进行建模 。
EA 提供了对需求建模的功能,可以模型的形式分析需求之间的关系,对需求进行组织;EA 还提供了需求管理的功能,可以定义需求的属性(例如 需求的优先级、状态),然后对需求以列表的方式进行管理。
在 EA 中进行需求建模,它可以:
1. 理清楚需求与需求之间的关系;
2. 理清楚需求的种类,哪些需求是功能需求,哪些需求是性能需求,哪些需求是扩展性需求等等;
3. 将需求细化到可追踪的粒度;
4. 明确需求的范围;
5. 确定需求的优先级别。
6. 需求变更管理,当需求发生变更 , 基于需求跟踪关系可以快速地定位到影响的其他需求、相关的设计、实现和测试。
在 EA 中进行需求建模,可以使用 EA 提供的工具箱,绘制需求之间的关系,那么 EA 工具箱提供哪些需求元素和需求关系呢?
需求元素工具箱
需求元素可用于建模或记录需求,可用的范围包括:从业务需求到性能需求或安全需求。
首先看一下, EA 工具箱中提供的需求元素有:
• 包( Package ),包是容器元素,可用于将需求和其他元素分组到集合中。
• 需求( Requirement ),系统必须具备的条件或能力进行建模。
• 特征( Feature ),特征是系统必须满足其业务需求的特征或属性。
• 风险( Risk ),风险是一种可能导致系统中断、丢失或受损的情况,可能的风向包括技术风险和业务风险。
• 对象( Object ),是类的实例,当进行分析时,可以从一个或多个对象派生。对象对于在需求开发研讨会或在阅读项目文档时讨论的任何实体建模很有用。
在 EA 中进行需求建模,工具箱中提供了聚合、继承、关联、实现等关系
首先看一下, EA 工具箱中提供的需求元素有:
• 聚合( Aggregate ),用于表明一个需求(菱形端)由另一个需求(尾端)组成。这允许创建需求层次结构。部分和整体的关系。
• 继承( Inheritance ),用于表明一个元素(三角形端)是另一个元素(尾端)的更广义的版本。子类和父类的关系。
• 关联( Associate ),用于显示两个元素之间的语义或结构关系。类A和类B的关联关系。
• 实现( Implements ),用于表示模型元素实现需求。类和接口的关系。
• 依赖( Dependency ),用于表示一个需求(尾端)依赖于另一个元素(箭头端)。类A和类B的依赖关系。
• 信息流( InformationFlow ),用于显示存储库中两个元素之间的数据流动。数据的类型可以表示为信息项,可以从模型的任何部分中选择。消息发送和接收,数据流和控制流。
• 跟踪( Trace ),用于显示一个元素 ( 尾部末端 ) 在模型中比箭头末端的元素更详细。因此,用户需求可以追溯到利益相关者需求或业务需求。演化前和演化后的关系。
在 EA 的 “ 需求 ” 工具箱中,还提供了扩展需求,他包括一些需求元素:
• 功能性需求( Functional ),功能性需求是业务和技术团队之间的桥梁,它定义了系统必须为用户做什么,从而满足业务目标。功能性需求是业务和技术团队之间的桥梁,它定义了系统必须为用户做什么,从而满足业务目标。在 EA 的 “ 需求 ” 工具箱中,提供了功能需求元素,如下图所示 显示了来自同一个包的一组需求 。
• 业务需求( Business ),业务需求描述问题域中的业务目标和范围。业务需求描述问题域中的业务目标和范围。客户或者用户提出开发一个软件系统的要求,都是为了解决他们在实际业务活动中遇到的问题,业务需求就是要描述清楚要解决哪些问题,要达到什么目标。在 EA 的 “ 需求 ” 工具箱中,提供了业务需求元素。
• 用户需求( User ),如果说业务需求描述的只是一个目标或者方向,是概括性的、抽象的,相对而言,用户需求就比较具体。用户需求表达问题域中的用户期望和结果。
• 非功能性需求( Non-Functional ),非功能性需求则是软件需求中除了功能需求以外的,关于软件特性、特征的需求。它包括可扩展性、安全性、可靠性等需求。一个高级性能需求被分解为两个或更多的需求,这些需求足够详细,可以进行测试。
• 架构需求 (Architectual),架构设计的需求分析。
• 部署需求 (Implementation),描述系统的部署环境 , 包括网络环境、硬件环境和软件环境。
• 法规监管需求 (Regulatory),安全生产法律法规的需要。
• 安全性需求 (Security),只有授权的用户才能动用和修改信息系统的信息 , 而且必须防 止信息的非法、非授权的泄漏。
• 需求清单 (Requirements Checklist),“需求清单”可以与任何需求元素相关联,因此分析师和需求经理可以使用清单来注释需求是否满足的一组预定义检查。
EA 提供了许多工具来跟踪流程的定义和实现,从初始需求到生成的代码或技术部署,反之亦然。
可以在 EA 中进行跟踪,包括:
• 在图表中可视化跟踪
• 使用关系矩阵跟踪
• 使用可追溯性窗口可视化跟踪
• 使用关系窗口可视化跟踪
系统设计
EA是一个完全的UML分析和设计工具,能够完成从需求收集到测试和维护的整个软件开发过程。
需要从负载均衡,API网关,通信协议,内通信协议(CDN),数据库,缓存,消息队列,唯一ID生成器,可扩展性,高可用性,性能,安全性,容错性和弹性等方面来设计系统。
快速、稳定、高性能
EA提供了令人惊叹的速度,加载超级大的模型只需要几秒钟,支持多用户协作和版本控制。
端到端跟踪能力
EA提供了从需求分析、软件设计一直到执行和部署整个过程的全面可跟踪性。
建模和文档生成
EA提供了全面的UML建模工具,支持13种UML 2.0图表和相关的图表元素,如类图、活动图、序列图等。它还提供了强大的文档生成工具,能够生成复杂的报告,支持多种格式。
建模和文档生成功能使得EA在系统设计和开发过程中能够提供一致性和准确性,帮助团队更好地理解和沟通设计决策。
代码生成和逆向工程
EA支持多种编程语言的源代码生成和逆向工程,包括C++, C#, Java, Delphi等。它还提供了数据库架构的逆向工程能力,能够从源代码或数据库中生成模型。
代码生成和逆向工程功能使得EA能够提高开发效率,减少手动编程的工作量,同时确保代码的质量和一致性。
需求管理和版本控制
EA内置了需求管理功能,支持从系统需求到模型元素的实施跟踪。它还支持版本控制,通过比较来跟踪模型变动,实现版本控制。
需求管理和版本控制功能使得EA在项目管理和质量控制方面更加灵活和高效,能够确保项目的顺利进行和最终交付的质量。
EA支持的建模标准和技术
EA基于UML 2.0规范,支持OMG定义的新UML2.0标准。此外,EA还支持BPMN和其他开放标准,帮助用户跟踪从高级规范到分析、设计、实现、测试和维护模型的全过程。
EA的主要特点和优势
高价值、端到端的建模
EA为业务和IT系统、软件和系统工程、实时与嵌入式开发提供了完整的建模生命周期。
强大的文档生成能力
EA利用所见即所得形式的模板编辑器,提供了强大的报表生成工具,能够生成复杂详细的报告。
源代码的前向和反向工程能力
EA支持多种通用语言的源代码生成和逆向工程,包括C++, C#, Java, Delphi, VB.Net, Visual Basic和PHP。
EA与其他工具的集成能力
EA提供了到Eclipse或Visual Studio.Net的轻量链接工具,允许用户在EA中进行建模后,直接跳转到自己偏爱的编辑器中进行源代码的进一步开发。
EA的市场定位和目标用户
EA适用于广泛的用户群体,包括分析人员、测试人员、项目经理、品质控制和部署人员等。支持版本控制和项目跟踪,能够提高开发效率和项目管理的透明度。它的高性能、直观的工作界面和丰富的特性使其成为团队合作的理想选择。
EA的版本更新和新特性
EA的最新版本引入了多项改进,包括对版本控制的支持、大型文件加载时间的缩短、基线支持的增加、MDA风格转换功能的增强等。
EA的学习资源和社区支持
Sparx Systems提供了详细的用户指南和在线资源,帮助用户学习如何使用EA。此外,EA拥有一个活跃的用户社区,用户可以在其中分享经验、获取帮助和讨论最佳实践。
竞争对手
EA的主要竞争对手包括ArchiMate, Sparx System Architect, BiZZdesign, QualiWare等。这些工具各有特色,但都在系统设计和建模领域有着强大的功能。
竞争对手的存在促使EA不断改进和创新,同时也为用户提供了更多的选择,满足不同需求和应用场景。
用户反馈
用户对EA的评价普遍较高,认为其功能强大、易于使用且性价比高。一些用户特别赞赏其代码生成和逆向工程功能,能够提高开发效率。
积极的用户反馈表明EA在满足用户需求和提高开发效率方面表现出色,其强大的功能和良好的用户体验是其成功的关键因素。
使用心得
用户在使用EA过程中,特别强调了其建模和文档生成功能,以及代码生成和逆向工程能力。同时,也指出了某些功能的不足,如RTF报告的不易用性和版本控制的一些问题。
用户的使用心得反映了EA在实际应用中的优势和挑战,提示EA在未来的发展中需要进一步优化和改进某些功能,以满足更多用户的需求。
新功能和改进
- **自定义图表绘图样式**:引入了新的“简单”图表样式,简化图表外观,使其更易于理解。
- **自定义表格**:提供了灵活的选项,允许在图表中定义自定义表格信息,适用于SWOT分析或能力矩阵等。
- **基于模型的插件**:简化了自定义加载项的开发和部署,支持在模型中定义加载项。
- **自定义报告**:允许用户通过拖放模型内容到文档工件上,并使用模板生成高度可自定义的文档。
- **透视集**:简化了安全性和管理,为不同规模的企业提供了更丰富、更有用的建模体验。
- **浏览器**:项目浏览器已重命名为“浏览器”,包含四种不同视图类型,提高了模型的导航效率。
- **书签值**:允许在图表中的元素上设置书签值,便于演示和演练。
- **新技术支持**:为实时和嵌入式系统(RTES)的OMG MARTE配置文件提供支持,为UML模型转换为各种分析模型提供了基础。
新功能和改进的目的和优势
这些新功能和改进旨在提高用户的工作效率,通过提供更丰富的图表样式、自定义表格和报告功能,以及简化的插件开发和部署流程,使得模型创建和维护变得更加直观和高效。同时,新技术的支持,如MARTE配置文件,扩展了Enterprise Architect在实时和嵌入式系统领域的应用能力。
通过这些新功能和改进,Enterprise Architect 2024版本为用户提供了更加强大和灵活的建模工具,无论是对于软件开发的初学者还是有经验的专家,都是一个值得考虑的升级选择。
Enterprise Architect在实时嵌入式系统开发中的应用案例
- **基于全数字实时仿真的嵌入式DevOps解决方案**:EA通过集成天目全数字实时仿真软件SkyEye,为嵌入式软件提供自动化测试的运行环境,实现嵌入式DevOps,大大提高研发效率。该方案支持云部署和多种持续集成工具,适用于国防科工、工业、能源、交通、通信等领域。
- **OMG建模(MARTE)在实时嵌入式系统开发中的应用**:EA提供了对OMG的MARTE配置文件的支持,解决了实时和嵌入式系统(RTES)软件或硬件及其共享关系的建模问题,为RTES的开发提供定性和定量的建模结构。
Enterprise Architect支持的技术和工具
- **MARTE配置文件支持**:EA支持OMG建模(MARTE),为UML模型转换为各种分析模型提供了基础,支持当前主流的实时技术、设计范式和模型分析技术。
- **全数字实时仿真技术**:通过集成SkyEye和其他持续集成工具,EA实现了全数字实时仿真技术,支持云部署和多种持续集成工具,如禅道、Jenkins等。
Enterprise Architect在实时嵌入式系统开发中的优势
- **高性能实时仿真**:EA支持基于LLVM的动态二进制编译优化技术,达到最高2000 MIPS的仿真性能,降低硬件成本。
- **支持云部署**:EA支持Docker容器化部署,使得方案可以弹性部署在云平台上,提高部署的灵活性和可扩展性。
- **适配多种持续集成工具**:EA支持多种持续集成工具,满足用户多样化定制需求,构建完整的嵌入式DevOps工作流。
通过上述应用案例和优势,可以看出Enterprise Architect在实时嵌入式系统开发中提供了强大的支持和灵活性,帮助开发团队提高效率、降低成本并加速产品上市周期。
Enterprise Architect与Visual Studio的集成使用技巧
确实,将Enterprise Architect (EA)与Visual Studio集成可以极大地提高开发效率,特别是在需求分析、系统设计到代码实现的整个软件开发过程中。以下是一些有用的集成使用技巧:
集成概述
- **集成功能**:EA与Visual Studio的集成提供了端到端的跟踪能力,允许用户在Visual Studio中直接编辑和导航EA模型,以及从UML元素生成.Net代码。
- **支持的建模标准和技术**:集成支持UML 2.3、SysML、BPMN等多种建模标准和技术,确保模型的广泛适用性。
集成使用技巧
- **模型管理**:利用EA的模型管理功能,如版本控制、权限管理和数据传输,可以有效地在团队中协作。
- **代码工程**:通过EA的模板驱动Code Engineering Framework,可以实现从UML模型元素到多种编程语言源代码的生成,以及反向工程功能,保持模型和代码的一致性。
- **调试和分析**:集成支持调试执行脚本和数据库建模,帮助开发人员更好地理解和分析系统。
提高开发效率的小技巧
- **自定义布局**:在Visual Studio中自定义布局,将常用功能放在触手可及的位置,可以提高工作效率。
- **使用对象浏览器**:利用对象浏览器快速查看类结构和相关信息,尤其是在处理复杂的继承关系时。
- **文档大纲功能**:在Winform开发中,使用文档大纲功能可以快速定位和操作界面上的控件,提高开发效率。
通过上述技巧,您可以更有效地利用Enterprise Architect与Visual Studio的集成,提升开发工作的整体效率。
通过上述介绍,我们可以看到EA是一款功能全面、强大的系统设计工具,无论是对于软件开发的初学者还是有经验的专家,EA都是一个值得考虑的选择。
参见:
http://modeler.org.cn/mobile/Ea.asp
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/david_232656/article/details/140593650