为什么要用UML建模之面向对象建模
发布时间:2006-07-04 12:50:52 来源:CSDN 网友评论 0 条 土木工程师构造了很多种模型。通常这些模型能帮助人们可视化并说明系统的各部分以及这些部分之间的相互关系。根据业务或工程中所着重关心的内容(例如为了帮助研究地震时的结构行为)工程师也可以建立动态模型。各种模型的组织是不同的,各有自己的侧重点。对于软件,有几种建模的方法。最普通的两种方法是从算法的角度建模和从面向对象的角度建模。
传统的软件开发是从算法的角度进行建模。按照这种方法,所有的软件都用过程或函数作为其主要构造块。这种观点导致开发人员把精力集中于控制流程和对大的算法进行分解。这种观点除了倾向于产生脆弱的系统之外没有其他本质上的害处。当需求发生变化(总会变化的)以及系统增长(总会增长的)时,用这种方法建造的系统就会变得很难维护。
现代的软件开发采用面向对象的观点进行建模。按照这种方法,所有软件系统都用对象或类作为其主要构造块。简单地讲,对象通常是从问题空间或解空间的词汇中抽取出来的东西;类是对具有共同性质的一组对象(从建模者的视角)的描述。每一个对象都有标识(能够对它命名,以区别于其他对象)、状态(通常有一些数据与它相联系)和行为(能对该对象做某些事,它也能为其他对象做某些事)。
例如,可考虑把一个简单的计账系统的体系结构分成3层:用户界面层、业务服务层和数据库层。在用户界面层,将找出一些具体的对象,如按钮、菜单和对话框。在数据库层,将找出一些具体的对象,例如描述来自问题域实体的表,包括顾客、产品和订单等。在中间层,将找出诸如交易、业务规则等对象,以及顾客、产品和订单等问题实体的高层视图。
可以肯定地说,面向对象方法是软件开发方法的主流部分,其原因很简单,因为事实已经证明,它适合于在各种问题域中建造各种规模和复杂度的系统。此外,当前的大多数程序语言、操作系统和工具在一定的方式上都是面向对象的,并给出更多按对象来观察世界的理由。面向对象的开发为使用构件技术(如J2EE或.NET)装配系统提供了概念基础。
选择以面向对象的方式观察世界,会产生一系列的问题:什么是好的面向对象的体系结构?项目会创造出什么样的制品?谁创造它们?怎样度量它们?
对面向对象系统进行可视化、详述、构造和文档化正是统一建模语言(UML)的目的。
传统的软件开发是从算法的角度进行建模。按照这种方法,所有的软件都用过程或函数作为其主要构造块。这种观点导致开发人员把精力集中于控制流程和对大的算法进行分解。这种观点除了倾向于产生脆弱的系统之外没有其他本质上的害处。当需求发生变化(总会变化的)以及系统增长(总会增长的)时,用这种方法建造的系统就会变得很难维护。
现代的软件开发采用面向对象的观点进行建模。按照这种方法,所有软件系统都用对象或类作为其主要构造块。简单地讲,对象通常是从问题空间或解空间的词汇中抽取出来的东西;类是对具有共同性质的一组对象(从建模者的视角)的描述。每一个对象都有标识(能够对它命名,以区别于其他对象)、状态(通常有一些数据与它相联系)和行为(能对该对象做某些事,它也能为其他对象做某些事)。
例如,可考虑把一个简单的计账系统的体系结构分成3层:用户界面层、业务服务层和数据库层。在用户界面层,将找出一些具体的对象,如按钮、菜单和对话框。在数据库层,将找出一些具体的对象,例如描述来自问题域实体的表,包括顾客、产品和订单等。在中间层,将找出诸如交易、业务规则等对象,以及顾客、产品和订单等问题实体的高层视图。
可以肯定地说,面向对象方法是软件开发方法的主流部分,其原因很简单,因为事实已经证明,它适合于在各种问题域中建造各种规模和复杂度的系统。此外,当前的大多数程序语言、操作系统和工具在一定的方式上都是面向对象的,并给出更多按对象来观察世界的理由。面向对象的开发为使用构件技术(如J2EE或.NET)装配系统提供了概念基础。
选择以面向对象的方式观察世界,会产生一系列的问题:什么是好的面向对象的体系结构?项目会创造出什么样的制品?谁创造它们?怎样度量它们?
对面向对象系统进行可视化、详述、构造和文档化正是统一建模语言(UML)的目的。
相关文章
上一篇文章:搭建Eclipse+MyEclipse开发环境
下一篇文章:为什么要用UML建模之建模原理
- 推荐阅讯
- 根据MIDlet套件自动生成jad文件
- Gartner:国际标准组织不采用Open XML格式
- OpenGL编程轻松入门之动画制作
- AJAX中JavaScript类的三种成员
- Monitor Oracle Resource Consumption in U
- 微软量产软件开发协作工具 ALM战略开始
- JMX+J2SE5.0实现Web应用的安全管理
- Atlas编程揭密之数据绑定
- ComicStudio绘制漫画线稿《内心之鬼》
- J2ME手机游戏引擎程序结构简述
- 阅读排行
- 1..net页面间的参数传递简单实例
- 2.VC++与Matlab混合编程之引擎操作详解
- 3.Oracle数据库数据对象分析
- 4.Eclipse3.2+Tomcat5.5.17+Oracle9配置
- 5.Oracle数据库中索引的维护
- 6.在Oracle的网络结构中解决连接问题
- 7.Oracle数据安全面面观
- 8.Oracle数据库的ORA-00257故障解决过程
- 9.Oracle数据库备份与恢复的三种方法
- 10.Oracle与SQL Server在企业应用中的比较
- 专题教程
- Windows Server-Windows Server文档-Windows Server新闻-Windows Ser PostgreSQL-PostgreSQL文档-PostgreSQL新闻-PostgreSQL专家
- WebLogic-WebLogic文档-WebLogic新闻-WebLogic专家 FreeBSD-FreeBSD文档-FreeBSD新闻-FreeBSD专家
- Linux-内核 GUI KDE Gnome DNS FTP 安全 安装-Linux专区 Windows-AD IIS ServerCore 虚拟化 安全 HPC-Windows专区
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
