最近工作一直比较忙,很多想法没时间写下来,最近回复了CSDN杂志社的一系列相关的建模问题,顺便贴在这里,欢迎大家讨论。

以下是我对建模的一些看法

1 你怎么看待建模?

作为一个程序员,可能每个人都经历过这样一个阶段,在需求分析完毕后,立刻开始建立数据模型,也就是把表结构设计出来,然后根据功能需求和表结构开始进行简单设计,大部分设计文档为Word和Excel,然后就着手进行编码。很多经验比较丰富的程序员用这种方法也可以很快把系统开发出来,这种方法的基本思想是使用数据库来表示业务模型,那么是否就不需要建模了呢?我们深入考虑一下,就我们广泛使用的关系数据库来说,它是否能确切的描述业务模型呢,显然答案是否定的。一个简单的二维表只能描述相对单一的对象,对于语义丰富的对象来说,显然就勉为其难了。基于面向对象设计和CBD(Component Based Design)设计方法,基于软件的高内聚,松耦合原则,基于提高软件生产率和可维护性的考虑,目前软件建模已经是商业软件开发过程中不可或缺的一部分部分了。

简单来说,建模就是使你能够逐层深入解决问题的办法,建模能够确认系统的功能需求并为业务系统建立模型,根据场景为系统提供相应的设计模式,根据需求划分出子系统。

说到这里,我们就不能不提UML了,UML(Unified Modeling Language,统一建模语言)是一种通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,同样,在网站设计或以网站为表现形式的各种网络应用项目中,UML也表现出强大的作用。UML能够描述系统的静态结构和动态行为:静态结构定义了系统中重要对象的属性和操作以及这些对象之间的相互关系;动态行为定义了对象的时间特性和对象为完成目标任务而相互进行通信的机制。UML不是一种程序设计语言,但我们可以用代码生成器将UML模型转换为多种程序设计语言代码,或使用反向生成器工具将程序源代码转换为UML模型。这就是OMG组织正在力推的MDA,除了UML之外,建模语言还新增加了XMI和MOF,感兴趣的可以到相关的MDA网站查找它们的定义。

我们可以看的出,建模不是编码,利用同样的UML模型可以生成不同语言的框架代码,而且可以通过反向生成,在编写代码过程中及时更新UML模型,这对系统分析员和项目管理人员来说是梦寐以求的,也就是MDA要实现的。

建模必定会使软件开发走向成熟。

建模工具推荐使用Rational Rose、Together。

2 公司的建模现状
    本公司作为一个面向全球Out Sourcing业务的软件外包公司,始终采用规模化和标准化的开发过程和建模方法。由于用友软件工程公司是CMM3级,目前正在全力推进CMM5的工作,所有CMM KPA(关键过程域)的实施能够保证从公司高层的组织模型就支持这样的开发过程。目前用友软件工程采用的软件开发过程是基于RUP开发方法,并结合用友十几年的软件开发经验建立的一整套符合自己的开发过程和开发标准,对需求,分析与设计、实现、测试和实施都做了标准的过程定义,同时提供相关的模板、模式、样例、规范、检查单等,并从组织级加以保证,软件建模是目前用友软件开发过程中的核心过程。

3 你感觉软件建模的趋势?

同时我们提供了可复用的应用软件开发平台,这个平台提供了一整套基于J2EE和.NET架构的相关应用,基于这个平台可以迅速开发出相关业务程序。

目前我们需要持续改进的方面就是提高项目开发过程中的可复用度,提升开发人员素质,进行持续技术改进。针对这些我们都会成立相关的Pat小组,根据CMM的标准KPA对我们的过程进行改进。

目前Eclipse的EMF(Eclipse Modeling FrameWork)、Rational的XDE、Borland的Together都是以Modeling为核心的技术架构,都对MDA进行了不同程度的实现,XDE和Together现在已经是商业软件,估计不久的将来EMF就会集成到IBM WSAD的某个版本中。还有两款MDA工具,分别是OptiamlJ和ArcStyler,据说不错,笔者还没有试用过。

就目前趋势来看,随着大厂商对MDA支持力度的加大和OMG组织的影响力,笔者觉得,软件建模未来的趋势就是MDA,驱动模型架构,大家应该记住这个名字。

转载于:https://www.cnblogs.com/chijianqiang/archive/2004/05/14/2041611.html

答CSDN关于建模的系列问题相关推荐

  1. 经典!沐风老师3DMAX建模实例系列教程上线啦。。。

    经典!沐风老师3DMAX建模实例系列教程上线啦... 该系列之一[3DMAX螺旋球吊灯建模]封面 3DMAX建模是基础,也是3DMAX所有功能中不可绕过的,使用频率最高的,目前在3D游戏角色建模.科学 ...

  2. 【数学建模绘图系列教程】绘图模板总结

    数学建模绘图系列教程合集已更新完成: https://space.bilibili.com/472442675/channel/collectiondetail?sid=562950&ctyp ...

  3. 【加文老师】快速入门数学建模竞赛系列课程问答帖

    最近正在录制3小时快速入门数学建模竞赛系列课程,这个帖子用于占位.大家可以可以在评论区提出对课程的看法,对数学建模的提问,加文老师和助教将会及时回复大家! 网课已经开发完毕:网易云课堂 适合人群: 1 ...

  4. 我是梦想橡皮擦,这是我在 CSDN 所有博客系列的清单(2022年3月22日更新)

    我是梦想橡皮擦,一个喜欢编程的人,技术栈:前端入门级,NET 入门级,PHP 入门级,Python 入门级,擅长写 BUG,对于互联网上的所有事情都挺感兴趣的佛系博主. 以下是这 2 年我在 CSDN ...

  5. matlab电机建模,Matlab系列之无刷电机matlab建模.ppt

    永磁无刷电机(BLDC)的数学模型 由于定子三相绕组为星形连接,且无中线,则有: 无刷电机本体模块 无刷直流电机定子电压平衡方程 无刷电机本体模块 无刷电机本体模块 无刷电机本体模块 无刷电机本体模块 ...

  6. Python3数学建模基础系列教程——生姜用户

    目录 python3数学建模基础(一)绘制各类型的图表 python3数学建模基础(二)矩阵运算 python3数学建模基础(三)实现斐波那契数列 python3数学建模基础(四)多个函数图像求交点 ...

  7. 建模杂谈系列226 流程与对象

    说明 鲁迅说:我家门前门前有两棵树,一棵是枣树,另一棵也是枣树. 从编程语言的角度,可以分为两大类(面向过程或面向对象),可以参考这篇文章 文章的内容其实不多,我贴一下: 对于两者的比较,文章这么说: ...

  8. 建模杂谈系列225 小结与反思

    说明 一个项目结束了,趁这两三天在休息,把本次的收获和教训都盘点一下,然后再开始一个更刺激的项目. 短暂的停顿,是为了把过去一段时间辛苦的成果固化一下,把那些很容易消散的宝贵知识和经验可以给未来做决策 ...

  9. 数据仓库建模指南系列

    │ 数仓实时场景中的应用2018.5.12-03.pdf │   ├─(第一节课)数据仓库的概念和ER实体模型 │      数据仓库的概念和ER实体模型1.mp4 │      数据仓库的概念和ER ...

最新文章

  1. lora和nbiot的相同点,它们之间有何区别和联系?
  2. [实战] 用数人云,部署弹性 ELK 集群就五步
  3. c语言 if 多个判断条件执行顺序_C语言之流程控制选择语句
  4. linux用户和用户组及权限管理
  5. DataMining with Sql 2005
  6. 保障Web服务的安全
  7. [置顶]【留言板 Message Board】
  8. 算法:动态规划解决爬楼梯Climbing Stairs python3
  9. java中抽象工厂模式_抽象工厂模式(详解版)
  10. 【第二届集成电路EDA备赛】一、Icarus Verilog(iverilog)快速上手使用(基于windows)
  11. 美国服务器电影网站版权问题,为什么说选择美国服务器做电影网站比较好
  12. IDEA2022 提示:更新 TKK 失败,请检查网络连接
  13. Visual Studio 2022下载安装及使用教程
  14. 如何在H5页面上添加音乐播放
  15. 51单片机数码管滚动显示学号_单片机数码管显示0到9程序代码
  16. 15个“在线配色方案”工具网站
  17. first meet ot MLIR
  18. mysql中vlookup函数_数据库合并函数vlookup介绍
  19. win7网站服务器空间怎么清理,window_Win7系统如何清理C盘空间?Win7系统清理C盘空间小技巧,  Win7系统清理C盘空间小技 - phpStudy...
  20. (转)设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)

热门文章

  1. Swagger的简单入门【转载】
  2. Java数据类型(基本数据类型)学习
  3. 缩放浏览器时 背景图片固定
  4. Oracle Imp and Exp (导入和导出) 数据 工具使用
  5. Session 丢失问题
  6. vuex的结构有哪些参数?
  7. 【汇编语言】——第三章课后总结
  8. ironic如何支持部署时按需RAID?
  9. python---重点(设计模式)
  10. 一 手游开发工具cocos2d-x editor初识