精华内容
下载资源
问答
  • 架构模型

    千次阅读 2019-05-23 09:49:34
    我们可以将软件架构归纳成 5 种模型:结构模型、框架模型、动态模型、过程模型和功能模型。最常用的是结构模型和动态模型。 (1)结构模型。这是一个最直观、最普遍的建模方法。这种方法以架构的构件、连接件和其他...

           我们可以将软件架构归纳成 5 种模型:结构模型、框架模型、动态模型、过程模型和功能模型。最常用的是结构模型和动态模型

    (1)结构模型。这是一个最直观、最普遍的建模方法。这种方法以架构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是架构描述语言

    (2)框架模型。框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。

    (3)动态模型。动态模型是对结构或框架模型的补充,研究系统“大颗粒”的行为性质。例如,描述系统的重新配置或演化。动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。

    (4)过程模型。过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的结果。

    (5)功能模型。该模型认为架构由一组功能构件按层次组成,且下层向上层提供服务。它可以看作是一种特殊的框架模型。

    4+1” 视图模型从 5 个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件架构。每一个视图只关心系统的一个侧面,5 个视图结合在一起才能反映系统的软件架构的全部内。

    (1)逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。逻辑视图中使用的风格为面向对象的风格,逻辑视图设计中要注意的主要问题是要保持一个单一的、内聚的对象模型贯穿整个系统。

    (3)进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求,例如系统的性能和可用性。进程视图强调并发性、分布性、系统集成性和容错能力,以及逻辑视图中的主要抽象的进程结构。它也定义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。

    (4)物理视图:主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装、通信等问题。当软件运行于不同的节点上时,各视图中的构件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小。

    (5)场景:可以看作是那些重要系统活动的抽象,它使四个视图有机地联系起来,从某种意义上说,场景是最重要的需求抽象。在开发架构时,它可以帮助设计者找到架构的构件和它们之间的作用关系。同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。场景可以用文本表示,也可以用图形表示。

    逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。对于不同的软件系统来说,侧重的角度也有所不同。例如,对于管理信息系统来说,比较侧重于从逻辑视图和开发视图来描述系统,而对于实时控制系统来说,则比较注重于从进程视图和物理视图来描述系统。

    展开全文
  • 有关C++对象模型架构方面的书
  • ArcGIS 对象模型,二次开发必备,了解结构设计,架构学习,GIS新手。
  • 第二单元:技术架构视图─面向对象程序设计原则与模式 59 用GRASP模式指导设计 62 领域模型 96 面向对象设计的基本原则 132 第三单元:用UML辅助系统分析与设计 177 UML简介及常见疑难问题辨析 ...
  • 第二单元:技术架构视图─面向对象程序设计原则与模式 59 用GRASP模式指导设计 62 领域模型 96 面向对象设计的基本原则 132 第三单元:用UML辅助系统分析与设计 177 UML简介及常见疑难问题辨析 178 借鉴RUP的UML建模...
  • 数仓架构实践2:京东四层模型架构

    千次阅读 2019-05-17 14:21:31
    京东数仓大致分四层架构 BDM:数据缓冲层,与源系统保持一致,相当于传统数仓的ODS。 FDM:基础数据层,按主题设计,数据融合,存放明细历史数据,相当于传统数仓的EDW。 GDM:通用汇总数据层,明细粒度,可以查询到...

    京东数仓大致分四层架构


    BDM:数据缓冲层,与源系统保持一致,相当于传统数仓的ODS。
    FDM:基础数据层,按主题设计,数据融合,存放明细历史数据,相当于传统数仓的EDW。
    GDM:通用汇总数据层,明细粒度,可以查询到具体字段信息;数据的预关联,预汇总和预加工;依赖对应用的共性提炼,而不是某个具体应用。
    ADM:聚合数据层,应用层。面象应用按需定制。


    1:数据缓冲层(BDM)
    源业务系统数据的快照,保存细节数据,按天保存
    2:基础数据层(FDM)
    按业务概念组织细节数据,并进行名称、代码等标准化处理,同时对表进行标准化处理。
    3:通用数据层(GDM)
    根据京东核心业务价值链按照星型模型或雪花模型设计方式建设的最细业务粒度汇总层。在本层需要进行度量与维度的标准化,保证度量数据的唯一性。
    4:聚合数据层(ADM)
    根据不同的业务需求采用星型或雪花型模型设计方法构建的数据汇总层
    5:维度层(DIM)
    维度是对具体分析对象的分析角度,维度要具备丰富的属性,历史信息的可追溯性,对通用的维表要保持一致性。


    另附,大数据平台架构:

    展开全文
  • 面向对象架构设计 面向对象设计的活动 系统架 构设计 用户界 用例设 面设计 计 面向对 象设计 活动 数据库 类设计 设计 面向对象设计活动之一 架构设计 架构设计的目的是要勾画出系统的总体结构 这项工作由经验...
  • 摘要: 本文对项目采用的架构进行介绍,并说明每一个模块在架构中扮演的角色。 本文隶属于新手图文教程《IDEA+Maven搭建Spring+SpringMVC+Mybatis项目骨架》 下一篇:图文示范IDEA创建Maven项目和子模块 目录 &...

    转载自 https://my.oschina.net/mzdbxqh/blog/865046

    摘要: 本文对项目采用的架构进行介绍,并说明每一个模块在架构中扮演的角色。
    本文隶属于新手图文教程《IDEA+Maven搭建Spring+SpringMVC+Mybatis项目骨架》

    下一篇:图文示范IDEA创建Maven项目和子模块

    目录 & 项目地址:http://git.oschina.net/mzdbxqh/ssm-study/

    一、工程结构
    本系列文章所示范的项目基于传统三层架构进行分层,基于工作职责和Maven结构进行模块划分。本文将对传统三层架构和对应的领域模型架构、以及每个模块的职责进行简单的说明。下图即示范项目的模块结构:

    工程结构

    二、架构之传统三层架构
    传统三层架构是一种软件架构,是一种典型的、基于贫血模型的、面向过程的JavaWeb分层方式。该架构分为以下三个层次:

    数据访问层(DAL - Data Access Layer)即对包括数据库在内的数据源进行操作的部分。
    业务逻辑层(BLL - Business Logic Layer)即对业务数据进行逻辑处理的部分。
    表现层(UI - User Interface)即与用户交互的部分。
    分层的目的是为了解耦和明确责任。开发人员可以只关心自己所负责的那一层,因为他只需要知道上一层提供了哪些接口,从而利用这些接口进行编程。而上一层的开发人员在不改变接口的情况下,可以任意地替换具体的实现,从而实现松耦合。

    相比更传统的架构,三层架构有着明显的优势,但也有不可忽视的缺点。初期的JavaWeb在JSP内同时进行数据库读写、业务逻辑处理和页面渲染,简单而暴力。而今的架构,在JSP之上增加了一个处理业务逻辑的中间层和一个封装了数据库操作的数据访问层,毫无疑问造成了代码量的大幅度上升和效率的下降。

    本项目中,Mybatis承担数据访问的责任;SpringMVC包揽了页面渲染和请求调度;Spring的IoC和AOP组成了整个项目的支架;Spring的事务控制为业务逻辑层的一致性提供了强有力的保障。

    不同的语言、不同的框架对三层架构有不同的演绎,但殊途同归,业务数据的流向是一致的。下面以一个点菜的例子来示范这一点:

    三层架构数据流示意图

    三、架构之领域模型架构
    领域模型的概念源于2004年出版的经典著作《Domain-Driven Design –Tackling Complexity in the Heart of Software》(《领域驱动设计:软件核心复杂性应对之道》,简称DDD)。所谓领域,即软件所关注的主题区域:

    每个软件程序的目的都是为了执行某项活动,或是满足用户的某种需求。用户会把软件程序应用于某个主题区域,这个区域就是软件的领域。一些领域涉及物质世界,例如机票预订程序的领域中包括飞机乘客在内。有些领域则是无形的,例如会计程序的金融领域。

    ——摘自《领域驱动设计》第一章

    该著作提出,设计软件分为两个步骤:

    由领域专家、开发人员、设计人员就某一领域进行交流,从中发现领域概念,并根据需要,划定边界,将边界内的概念抽象为领域模型。
    由领域模型驱动软件设计,用代码来实现该模型。
    基于此,DDDSample官网提出了另一种三层架构(参考链接):

    领域模型三层架构

    如图,该架构分为界面(Interfaces)、应用(Application)和领域(Domain)三层,以及一个基础设施(Infrastructure),是一种基于充血模型的、面向对象的分层方式。其各层职责如下:

    1. 界面层(Interface)
      负责所有与外部系统的交互,包括WebService、RMI或REST等。包括外观(Facade)、装配(Assembler)和数据传输对象(DTO)三类组件:

    ★ DTO组件
    因为领域对象不适合暴露给用户,因此需要在返回给用户之前,重新封装为DTO,只暴露我们希望暴露的内容。同时,DTO还有减少请求的次数、简化传输对象、避免代码重复等作用。

    ★ Assembler组件
    正如其字面上的含义,Assembler是一个装配工人,负责DTO与领域对象的转换。

    ★ Facade组件
    Facade是外观模式的践行者,作用与传统三层架构的Controller类似,负责将一个或多个service方法组合起来,然后封装为一个接口提供为外部系统。换句话说,他负责将外部请求委派给一个或多个service进行处理。他本身不处理任何业务逻辑。

    1. 应用层(Application)
      应用层的主要组件就是Service,其粒度与传统三层架构的service一致。差别在于,传统三层架构的service层负责业务逻辑的处理,而领域模式三层架构的service只负责将业务委派给领域对象进行处理。

    2. 领域层(Domain)
      这一层是整个软件的核心,几乎包括了所有的业务逻辑。他包括了Entity(实体)、Value Object(值对象)、Domain Event(领域事件)和Repository(仓储)等领域组件。下面以时下很火的共享自行车为例来简单解释这几个组件:

    ★ Entity/Value Object
    实体是一个在业务领域有着唯一标识的对象。实体有属性和状态,有业务行为,其业务行为会影响他的属性和状态。而值对象呢,用于描述没有唯一标识的对象。

    举个栗子,当我们希望对每一辆共享自行车进行管理时,他应该被设计为实体,有唯一编号作为标识,有颜色、重量、价格、品牌等属性,有位置状态、使用状态,有租赁行为。当其被租赁时,其位置状态和使用状态可能发生改变。

    同样是共享自行车,如果我们的系统只为了统计各地区各品牌自行车的使用情况,即我们只关心他是什么,而不关心他是谁,那么他应该被设计为值对象。

    ★ Domain Event

    简单的说,实体触发事件,实体绑定事件。用户的租赁行为会触发租赁事件;而自行车绑定了租赁事件,当事件发生时,自行车的使用状态发生改变。

    ★ Repository
    仓储类似于传统三层架构的DAO接口,但只是接口,不包括实现。

    1. 基础设施(Infrastructure)
      作为基础设施,Infrastructure负责给三层架构提供支持。所有与具体平台、框架相关的实现都会在这一层实现,以免影响三层架构职责的纯粹性、以及污染领域模型。对象持久化的具体实现也放在基础设施里。

    四、传统三层架构 VS 领域模型架构
    从领域模型架构各层的职责可以看出,他和传统三层架构最大的差别在于,领域模型架构的业务逻辑包含在领域模型里,而传统三层架构的业务逻辑在Service层。为了实现这一点,领域模型还引入了在Javascript和ActionScript中常见的事件机制;而传统三层架构中,领域模型的属性和行为严格分离,变成了POJO和Service。

    个人认为,两种架构的出发点是相同的,一样是先挖掘领域概念,然后建模,再根据模型进行设计。差别在于,当业务逻辑的复杂程度在单个开发人员或单个团队的把控能力范围之内时,采用面向过程的传统三层架构可以很快地完成建模工作,并开始业务逻辑的设计;而当业务逻辑复杂到一定程度时,则有必要花更多的时间用在建模上,去抽取模型的行为,去设计和关联模型事件,以期在后续迭代中,开发人员只需面对一个个可以清晰地理解的领域对象,而不是一坨动辄上千行的某业务行为的逻辑代码。

    综上考虑,大部分web系统可以采用传统三层架构。

    五、模型的形态
    不同的架构、不同的层、不同的应用场景中有着不一样的建模需求,因此表述相同概念的模型可能会有不同的“形态”,例如:

    充血模型 - 领域模型架构中包含了领域逻辑和领域属性的领域模型。
    失血模型 - 传统三层架构中只有get/set方法,没有业务逻辑的POJO对象。
    贫血模型 - 类似充血模型,但是不包括持久化相关逻辑。
    PO - Persistant Object,持久化对象,即DAO从JDBC取出来的对象。传统三层架构中,PO即POJO组件中的对象,存在于DAO和Service之间。
    DO - Domain Object,领域对象。领域模型架构中,PO从数据库取出来后,有一个“重建”的概念,即根据数据还原实体,这个被还原的实体就是DO,存在于DAO和Service之间。
    DTO - Data Transfer Object,数据传输对象。上面在领域模型架构的界面层提过。对传统三层架构来说,该对象存在于Service和Controller之间。PO到DTO的转换可以在service实现,也可以在controller实现。本教程在Service进行转换。
    VO - View Object,视图对象。Controller在返回DTO给视图时,可能还需要包括状态信息—例如操作成功/失败的状态吗、提示文本等—这时就需要在DTO外面再包一层,即View Object。该对象存在于Controller和Web之间,由Controller进行装配。
    六、MVC模式
    跟架构密切相关的另一个词汇是MVC模型,即Model-View-Controller模式。MVC模式是一种设计软件的模式,不是一种架构。在传统三层架构中,MVC的理念被应用在表现层:View提交请求数据给Controller,Controller返回数据用于渲染View,两者之间以Model(VO - ViewModel)的形式进行通信。如下图:

    mvc模式示意图

    七、模块说明
    注:下文中提到的Parent(父模块)和Aggregator(聚合器)概念会在后续章节讲解。

    1. study-parent:pom
      他是一个Parent - 父模块(被其他模块配置为parent)

    配置基本参数供其他模块继承
    管理整个项目所需要的第三方依赖及其版本
    他是一个Aggregator - 聚合器(配置modules并包含了其他模块)

    配置build信息、配置maven插件,规范项目构建行为
    根据不同的运行环境配置多套profile
    该项职能可以下放到study-blog
    即此处不配置modules节点,让common和plugin分别构建,blog相关包统一构建。
    2. study-common:jar
    放置工具类,例如Base64加密解密、MD5加密解密、读写Cookie等。来源包括:
    1. 从成熟的java开源项目的common/util包获得工具类
    2. 平时根据个性化需求进行收集工具类
    3. 自己写工具类
    4. 也可以使用Guava这样的成熟类库。
    放置自定义基础类。例如自定义的BaseException及其子类UploadException、自定义的BaseInterceptor及其子类EventInterceptor、Controller基类、Model基类等。
    放置与第三方依赖相关的个性封装或实现。例如Mybatis多数据源的实现、Excel通用导入导出的实现、对httpClient方法的个性封装、对shiro的个性封装等。
    放置硬编码的参数。例如自定义常量,自定义枚举等等。可配置的参数放在study-web模块的xml或者properties文件中。
    3. study-plugin:jar
    这个模块主要是第三方服务的实现类。例如调用短信接口、实现微信登录等。
    第三方服务相关的参数可以硬编码在代码内,也可以放在study-web模块的resources中,交由spring进行初始化。

    1. study-blog:pom
      blog相关模块的Parent - 父模块(被blog相关模块配置为parent)

    统一管理子模块的依赖。
    该项职能可以上升到study-parent。
    即子模块的parent改为study-parent,直接继承study-parent的属性。
    blog相关模块的Aggregator - 聚合器(配置modules并包含了其他模块)

    聚合子模块,统一构建。
    一个网站除了Blog可能还包括了OA、CMS等子系统,每个子系统都有各自的pojo、mapper、service和controller,容易混乱。
    5. study-blog-pojo:jar
    POJO即Plain Old Java Objects,简单的JavaBean,即对对象实体的封装,只有属性和get/set方法。POJO中的实体还可以称为PO(Persistant Object - 持久化对象)。我们把内存中的临时数据存储到存储设备上变成永久数据的过程叫做持久化。对于需要进行持久化操作的对象,我们称之为持久化对象。Hibernate中把持久化对象的生命周期分成三种:

    临时状态 - 刚创建出来,还未持久化的状态。此时该对象不在session缓存中,数据库中也没有相应的记录。
    持久化状态 - 已经被持久化,且在session缓存中的状态。对该状态下对象的修改会由Hibernate同步反映到数据库中。
    游离状态 - 已经持久化但不在session缓存中的状态。对该状态下对象的修改不会反映到数据库中,除非手动调用相关方法使之回到持久化状态。
    然而Mybatis并未对对象的生命周期进行管理,更不会有持久化状态。但我们根据是否已进行持久化操作,将对象状态粗分为临时状态和游离状态。

    1. study-blog-mapper:jar
      Mybatis将它的DAO对象(Data Access Object - 数据访问对象)称为Mapper - 映射器,每个映射器包含了一个Mapper接口类和一个XML映射配置文件。其中,XML映射配置文件包含了SQL代码和映射定义信息(也可以通过注解直接写在接口类中,但不推荐)。

    Mybatis的映射器都放在这个模块里。该模块只负责数据的CRUD操作,不管业务逻辑。数据访问对象不限于数据库数据源。

    1. study-blog-controller:jar
      controller的作用常被概括为“取调转”:

    取 - 取出页面发来的数据。
    当变量较多时考虑打包成一个VO(View Object - 表现层对象,不是Value Object - 值对象,用于controller与view交互)。
    调 - 调用service方法,完成具体的业务逻辑。
    转 - 转发到下一个controller或页面。
    8. study-blog-service:jar
    service就是三层架构的业务逻辑层,也有biz(business的缩写)这种叫法。业务逻辑层是三层架构中最为厚重的一层,所有跟具体业务相关的环节都在这里完成。

    另外,在soa架构中,业务逻辑层会细分为biz和service:

    biz是对业务逻辑的更细粒度划分,但又有别于DAO对数据库的原子性操作,目的在于抽象出业务逻辑的公共部分,更好地实现代码复用。
    service即对外暴露的接口。借用悠然大神的例子,biz层的许多东西是不适合对外的,好比厨师炒菜,你看了炒菜的过程估计吃不下去。但是让service层包装一下,让漂亮的服务员端上来就好多了。
    9. study-web:war
    放置所有子系统相关的jsp和前端静态资源。
    放置所有resources。mapper里边的xml不在此列。
    如果把不同子系统的web模块分成不同的模块(例如study-blog-web和study-cms-web),打包时需要通过maven插件进行合并,较为复杂。
    本文就先介绍到这里。

    展开全文
  • 模型驱动架构

    千次阅读 2011-11-14 00:53:34
    模型驱动架构  自从2001年被OMG(Object Management Group 国际对象管理集团)提出以后,"随风潜入夜,润物细无声",未见轰轰烈烈宣传,各大厂商却惊人一致地争相跟进,关于MDA的话题转眼之间在网络上也...
    模型驱动架构 
    
      自从2001年被OMG(Object Management Group 国际对象管理集团)提出以后,"随风潜入夜,润物细无声",未见轰轰烈烈宣传,各大厂商却惊人一致地争相跟进,关于MDA的话题转眼之间在网络上也如火如荼地繁荣起来了。
      为了实现MDA这一宏大构想,OMG制定了一系列的标准:
      UML:UML被MDA用来描述各种模型。它并不是为MDA而生,但是作为目前最为风行的 建模语言 ,UML已经占据了全球建模语言领域90%的市场份额,成为了建模语言事实上的标准,因此OMG将它作为MDA技术的基础是自然而然的明智选择。它是MDA的基础,也是MDA最有力的武器。
      MOF:MOF(Meta Object Facility 元对象机制)是比UML更高层次的抽象,它的目的是为了描述UML的扩展或者其它未来可能出现的类UML的建模语言。由此我们可以看到OMG的"野心",虽然MOF也不是为MDA而生的,但是我们可以体味到OMG的工程师们良苦的用心和长远的目光。
      XMI:XMI(XML-based metadata Interchange)是基于XML的元数据交换。它通过标准化的XML文档格式和DTDs(Document Type Definitions)为各种模型定义了一种基于XML的数据交换格式。这使得作为最终产品的模型可以在各种不同的工具中传递,这一点是非常重要的,它保证了MDA不会在打破了一种束缚之后再被加上一层新的束缚。
      CWM:CWM(Common Warehouse Metamodel 公共仓库元模型)提供了一种数据格式变换的手段,在任意级别的模型上都可以使用CWM来描述两种数据模型之间的映射规则,比如将数据实体从关系数据库变换为XML格式。在MOF的框架下,CWM使得通用的数据模型变换引擎成为可能。
      在OMG的蓝图中,UML、MOF、XMI、CWM等一系列标准分别解决了MDA的模型建立、模型扩展、模型交换、模型变换这几个方面的问题。OMG试图通过标准化的定义,扩大MDA的应用范围。同时通过这样一个可扩展的建模语言环境,IT厂商可以自由实现自己的建模语言,以及语言到可执行代码的映射,然而不管怎么样,都必须处于OMG的标准化框架之下。
      MDA源自于众所周知的把系统操作的规范从系统利用底层平台能力的方式细节中分离出来的思想,MDA提供了一种途径(通过相关的工具)来规范化一个平台独立的系统、规范化平台、为系统选择一个特定的实现平台,并且把系统规范转换到特定的实现平台。MDA的三个主要目标是:通过架构性的分离来实现轻便性、互操作性和可重用性。
      在MDA中软件开发过程是由软件系统的建模行为驱动的。
      MDA生命周期和传统生命周期没有大的不同,主要的区别在于开发过程创建的工件,包括PIM(Platform Independent Model,平台无关模型)、PSM(Platform specific Model,平台相关模型)和代码。PIM是具有高抽象层次、独立任何 实现技术 的模型。PIM被转换为一个或多个PSM。PSM是为某种特定实现技术量身定做。例如,EJB PSM是用EJB结构表达的 系统模型 。开发的最后一步是把每个PSM变化为代码, PSM同应用技术密切相关。传统的开发过程从模型到模型的变换,或者从模型到代码的变换是手工完成的。但是MDA的变换都是由工具自动完成的。从PIM到PSM,再从PSM到代码都可以由工具实现。PIM, PSM,和Code 模型被作为软件开发生命周期中的设计工件,在传统的开发方式中是文档和图表。重要的是,它们代表了对系统不同层次的抽象,从不同的视角来看待我们的系统,将高层次的PIM 转换到PSM 的能力提升了抽象的层次。能够使得开发人员更加清晰地了解系统的整个架构,而不会被具体的实现技术所“污染”,同时对于复杂系统,也减少了开发人员的工作量。
      MDA的出现,为提高软件开发效率,增强软件的可移植性、协同工作能力和可维护性,以及 文档编制 的便利性指明了解决之道。MDA被 面向对象技术 界预言为未来两年里最重要的方法学。当今建模的主要问题在于,对于很多企业来说它只是纸面上的练习。这就造成了模型和代码不同步的问题,代码会被不断修改,而模型不会被更新,这样模型就失去了意义。弥补建模和开发之间的鸿沟的关键就在于将建模变为开发的一个必不可少的部分。MDA 是 模型驱动开发 的框架,MDA 的愿景是定义一种描述和创建系统的新的途径。MDA 使得UML 的用途走得更远,而不仅仅是美丽的图画。很多专家预言MDA 有可能会带领我们进入软件开发的另一个黄金时代。
    展开全文
  • linux设备驱动模型架构分析 一

    千次阅读 2018-07-04 15:14:49
    ”这个描述就是linux设备驱动模型(下面简称为LDDM)。LDDM不是独立存在,其体系如下图所示:对架构的每一部分本文都会开辟独立的章节进行描述。暂且抛开这个架构,首先从总体上了解一下LDDM。LDDM与驱动程序密切...
  • 面向对象分析与设计——对象模型

    千次阅读 2014-10-22 09:18:58
    对象模型  对象模型包括:抽象、封装、模块化、层次结构、类型、并发和持久   2.1 对象模型的演进   OO建立在以前技术的最佳思想之上。两大趋势:小规模→大规模;高级程序设计语言;   2.1.1 程序...
  • 数据架构与数据模型

    千次阅读 2020-06-26 21:12:57
    数据架构与数据模型 数据架构与数据模型两者关系经常是讨论的热点。 因为数据架构里面主要工作和产物就是数据建模和数据模型,那为什么要将两者作为独立的两个过程域。 本文将对此问题进行探讨。 在《数据管理...
  • 概述对于使用 .NET 平台的 Web 应用程序开发,Crystal Decisions 为开发者提供了三种愈加高级的报表对象模型:1. 水晶报表 Visual Studio .NET 版 (.NET) 对象模型:捆绑在微软 Visual Studio .NET 和水晶报表 9 ...
  • 模型驱动架构 (MDA)

    千次阅读 2014-06-03 05:16:56
    模型驱动架构()是OMG提出的一种新的软件开发模式。
  • ”这个描述就是linux设备驱动模型(下面简称为LDDM)。LDDM不是独立存在,其体系如下图所示: LDDM体系结构 对架构的每一部分本文都会开辟独立的章节进行描述。暂且抛开这个架构,首先从总体上了解一下LDDM。 ...
  • 对象模型 Contiv对象模型被定义为JSON模式(基于 ),并且各种后端和客户端库都是从该模式自动生成的。 modelgen工具是用于生成各种后端库和客户端库的架构编译器。 对象模型生成 当前,以下是从modelgen工具生成...
  • 数据仓库——阿里五层模型架构

    万次阅读 多人点赞 2018-12-04 16:11:14
    来做传统行业数仓的工程师,开始尝试将工程领域比较流行的ER模型+维度模型方式应用的阿里集团,构建出一个四层的模型架构ODL(操作数据层)+BDL(基础数据层)+IDL(接口数据层)+ADS(应用数据层)。ODL保持和源系统...
  • 本文将对比分析DDD分层架构、整洁架构、六边形架构。 整洁架构 又名“洋葱架构”(看图就懂),体现了分层思想。 同心圆代表应用软件的不同部分,由...领域模型的主体是实体(可以是一个带方法的对象,也可以是一个数据
  • 业务架构精简元模型

    千次阅读 2016-12-21 17:08:11
    其中的业务架构,是指导后面3个架构的,是业务的高级模型。即使现在流行敏捷开发,但业务架构还是要先设计出来,作为敏捷的”框架“或”蓝图“。敏捷开发通过迭代形成的业务模型是业务架构的细节。 下图是Togaf中...
  • 1、经典的三层架构 (这不合理,太复杂的分层会导致混乱,《阿里巴巴手册》还是很有问题的。) 分层领域模型规约: DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。 DTO( Data ...
  • 组件对象模型是传统面向对象模型的扩充,传统面向对象模型的重点是源程序,以及系统分析和设计过程。组件的概念则强调大的软件系统如何由不同开发商的小型可执行组件构成。  · 面向对象编程   面向对象是
  • 趣味理解ADO.NET对象模型

    千次阅读 2014-01-15 20:31:27
    按照这个思路讲解大家对ADO.NET对象的概念理解不是很透彻,为了更好地理解ADO.NET的架构模型的各个组成部分,我们可以对ADO.NET中的相关对象进行图示理解,如图所示的是ADO.NET中数据库对象的关系图。 讲究完...
  • 架构的分析模型

    千次阅读 2016-08-12 18:15:31
    架构的分析模型 一、 讨论的背景 现代电子游戏,基本上都会使用一定的网络功能。从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序。因此,游戏服务器端软件的架构,本质...
  • 通过数据对象预分类模型将数据对象按照读写倾向性分配到内存器 件中,构建二室模型对数据对象的迁移和备份速率进行计算,确保系统的稳定性和可靠性。模拟算例结果表明,与相同能耗的内存云架构相比,该混合内存云...
  • C++对象模型之RTTI的实现原理

    万次阅读 多人点赞 2015-06-14 03:11:19
    C++引入这个机制是为了让程序在运行时能根据基类的指针或引用来获得该指针或引用所指的对象的实际类型。但是现在RTTI的类型识别已经不限于此了,它还能通过typeid操作符识别出所有的基本类型(int,指针等)的变量...
  • 本文重在模型之间的比较(优缺点、适用范围等),而不在于模型定义的阐述.^-^ 不过还是要先提几个基本概念滴: 1.软件生存周期:软件是会迭代的,软件从生到死的整个过程被称为软件生命周期(Software Development...
  • MDA:模型驱动架构 简介

    千次阅读 2011-11-14 01:00:33
    MDA:模型驱动架构 2011-04-18 23:30 模型驱动架构(MDA)是一种独立于特定平台和软件供应商的软件体系结构设计和开发方法,它适用于设计、部署、集成等软件开发的整个生命周期。 MDA 遵循的是诸如...
  • Thinking in UML 学习笔记(一)——建立对象模型

    千次阅读 多人点赞 2014-04-29 15:01:33
    一、面向对象的本质面向对象的本质是抽象,当系统达到了超越其处理能力的程度,我们可以抽象出我们能够处理的范围来提成抽象级别,这样就可以构建更大、更复杂的系统。现实世界和对象世界之间存在着一道沟壑,这道...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 294,136
精华内容 117,654
关键字:

对象模型架构