答CSDN关于建模的系列问题

原创 2004年05月14日 09:52:00

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

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

1 你怎么看待建模?

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

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

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

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

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

 

建模工具推荐使用Rational RoseTogether

 

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

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

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

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

 

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

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

数据仓库系列-为什么要维度建模

凡是建设数据仓库,一定会提到维度建模方法。这一方法是Kimball最先提出的,其最简单的描述就是,按照事实表、维度表来构建数据仓库、数据集市。在维度建模方法体系中,维度是描述事实的角度,如日期、商品、...
  • dtqyhq
  • dtqyhq
  • 2015年01月20日 10:26
  • 639

第二周 程序阅读并回答问题

问题及代码:/*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:liu_feng_zi_ ...
  • liu_feng_zi_
  • liu_feng_zi_
  • 2015年03月18日 09:28
  • 244

数学建模十大经典算法漫谈

数学建模十大算法漫谈 作者:July  二零一一年一月二十九日本文参考:I、  细数二十世纪最伟大的十大算法 [译者:本人July]II、 本BLOG内 经典算法研究系列III、维基百科-------...
  • Augusdi
  • Augusdi
  • 2013年10月08日 21:44
  • 11923

数学建模 ————统计问题之预测(一)

该资料是笔者根据自身理解一点点写出来的,希望各位能尊重这一份来之不易的劳动成果。因个人水平有限,资料中难免会出现不足与错误,欢迎各位的批评指正。(笔者曾获得2015年全国大学生数学建模国家一等奖,20...
  • nightmare_dimple
  • nightmare_dimple
  • 2017年07月03日 19:31
  • 839

Dubbo系列之——Dubbo入门介绍

分布式SOA服务治理框架Dubbo 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对, 分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保...
  • tjeagle
  • tjeagle
  • 2017年03月30日 17:17
  • 256

Caffe学习系列(1):命令行解析

caffe的运行提供三种接口:c++接口(命令行)、python接口和matlab接口。本文先对命令行进行解析,后续会依次介绍其它两个接口。 caffe的c++主程序(caffe.cpp)放在根目录...
  • vicdd
  • vicdd
  • 2016年09月22日 17:16
  • 423

《数学建模》之最优化(规划)数学模型

最简单的规划问题其实就是函数的求极值的问题。在这个基础上扩展并运用相关的软件解决实际生产中的一些问题。简单的说,就是一些最大、最小的问题。在这类问题中,重点在于写出目标函数、设置好决策变量、找对找全约...
  • fz_851474
  • fz_851474
  • 2016年08月12日 20:42
  • 845

数学建模————统计问题之分类/聚类(二)

首先要弄明白分类和聚类的区别:      分类(判别):数据包含数据特征部分和样本标签部分,分类的目的就是判别新的数据特征到其应有的样本标签(类别)中。       比方说,现在告诉大家一个教室里面...
  • nightmare_dimple
  • nightmare_dimple
  • 2017年07月03日 20:33
  • 674

【微信开发】“你问我答”

前言   如题,我们在使用像中国移动等公众号时,可以通过输入一些文本内容来查询我们需要的信息,实现我们“提问”,公众号自动“回答”,将微信公众号接入我们自己的网站,通过微信将消息转发给用户。 ...
  • u013201439
  • u013201439
  • 2017年07月30日 20:23
  • 3122

Mybatis系列(一)入门

Mybatis入门 简介 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBati...
  • chris_mao
  • chris_mao
  • 2015年09月29日 10:27
  • 3803
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:答CSDN关于建模的系列问题
举报原因:
原因补充:

(最多只允许输入30个字)