基于组件的开发思路
程序员文章站
2022-07-14 11:55:42
...
1. 4个基本特性:组件,组件之间的协同,组件插座,组件的使用者。
2. 高度的以体系结构为中心。
3. 业务组件5要素:组件粒度层次、体系结构视点、分布层、功能类(或层)和开发生命周期视点。
4. 五种粒度层次:语言类、分布式组件、业务组件、系统级组件、系统级组件联盟。
5. 四种体系结构:技术体系结构、应用体系结构、项目管理体系结构和功能体系结构。
6. 四种分布式层:用户层、工作空间层、企业层、资源层。
7. 三种主要功能类:过程、实体和实用程序类。也叫做开放层。
8. 开发过程早期设计接口。
9. 分布式组件内部要素:接口规格说明、功能代码、隔离层(接口实现、代理)、语言类(焦点业务语言类、支持业务语言类、辅助业务语言类和技术语言类)。
10. 分布式组件外部要素:接口设计(早期)、业务数据类型。
11. 业务组件内部要素:分布层(单向或事件通知)。
12. 业务组件外部要素:接口(业务组件内、系统内业务组件之间、系统外)、依赖关系(依赖列表)、插座/插头。
13. 组件图:直接表示为功能体系结构(根据三层来分类——过程、实体、实用)。
14. 实用业务组件:通常在各个不同的业务系统中重用。
15. 业务组件系统外部要素:接口(黑盒——网关和互操作适配器、白盒——直接依赖内部的业务组件),预定义代理。
16. 业务组件系统的接口说明和设计往往比业务组件接口的说明和设计更重要(涉及到更多复杂的需求,eg安全等)。
17. 互操作七层协议
1. 技术接口:基于数据库(直接SQL,适配器,互操作表)、基于文件桥接、基于API(网关,适配器)。(技术体系结构)
2. 技术基础设施:错误处理、保密安全、命名、事务处理等。(技术体系结构)
3. 应用基础设施:弥补实际项目和技术之间的鸿沟。(应用体系结构)
4. 功能接口:技术接口的一个特定实例。(功能体系结构)
5. 语义:双方语义需要达成共识。 (功能体系结构)
6. 功能参考模型:双方共享某种功能参考模型。(功能体系结构)
7. 开发生命周期:需要开发时和运行时协议。
18. 交互模式:集成交互模式、桥接交互模式、协同交互模式和基于总线的交互模式。
19. 标准:基于总线的交互模式、数据交互标准——XML。
20. 基于组件开发过程的10个黄金特性:
1. 以组件为中心:所有问题都是不同粒度的组件为中心。
2. 以体系结构为中心:整个生命周期以体系结构视点推动系统的进化。
3. 以自治为核心
4. 向协同发展
5. 支持迭代特性
6. 支持并发开发
7. 持续集成
8. 支持风险驱动开发(不断反馈和迭代)
9. 强调重用
10. 把组件开发作为产品开发(质量、文档和支持)
21. 需求:特性表、用例
分析:见28
22. 企业对象模型(扁平,是对业务的一种静态和结构的描述),需要将它转成组件模型。
23. 根据焦点类进行分组:给定焦点类和业务组件之间的联系,标示焦点类就相当密切地对应标示业务组件。
24. 设计:标识各层上的分布式组件、外部规格说明(标识企业分布式组件和工作间分布式组件的接口),依赖关系规格说明(依赖关系表和确切接口和操作的标识)、内部规格说明(至少包含内部对象模型——业务语言类图、序列图、关键部分过程的伪代码等,持久模型)。
25. 实现:快速迭代,主要实现业务语言类。开发步骤:建立分布式组件的执行环境、尽快使整个系统建立和运行起来、完成其依赖组件的调用、快速迭代持续集成。
26. 技术体系结构:技术核心(组件激活/停止、组件调用、支持组件访问的并发性、异步消息传递、动态继承)、服务和设施(事务、错误处理、事件、持久化、元数据、用户界面框架、监控、配置管理、类工厂等)。
27. 应用体系结构:体系结构原则(非循环原则(解除依赖: 事件通知、元素下推到底层组件)、体系结构规范化原则(不重复)、分层、一致性、时间内聚等)、体系结构模式(组件作为协调器——外观和中间人模式、对等组件——组件间相互调用,尽量避免这种模式)、协同模式(业务事务:实现它的最好方法是保持前面操作的中间结果,等后续操作完成时统一提交;其他的方法有临时存储中间结果 ——使用单独数据表或是在原表上增加字段)。
28. 基于组件的业务建模:主要建模构件(业务过程、业务实体、业务事件、业务规则)、划分业务空间(分块,分层——过程、实体、实用,功能子类)、标识业务组件(独立且真实的业务概念、满足市场需求、很高的重用性、支持自治开发、符合多个内聚原则;实体业务组件来自业务对象模型和设计师的经验)。
29. 行业级粗粒度功能域,经过细化后,形成行业功能参考模型(包括主要的功能要素域以及这些域间功能接口的主要要素)。
上一篇: DataBinding点击事件没有反应
下一篇: 自定义控件事件
推荐阅读
-
iOS开发中使用UIDynamic来捕捉动画组件的重力行为
-
iOS开发中常见的项目文件与MVC结构优化思路解析
-
基于jQuery的弹出框插件开发教程
-
基于JQ的自定义弹窗组件
-
基于go语言结合微信小程序开发的微商城系统
-
基于vue 添加axios组件,解决post传参数为null的问题
-
基于NetCore+SqlSugar+Layui开发出来的开源框架项目FytSoaCms问题处理
-
【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持
-
基于Maya API和PySide2的插件开发(用TextBrowser实现文件信息的显示)
-
基于wxpython开发的简单gui计算器实例