没有合适的资源?快使用搜索试试~ 我知道了~
首页UML建模:软件结构的艺术与太极哲学
"本文探讨了阴阳太极哲学与UML建模在软件工程中的交融,以火龙果软件工程技术中心的研究背景为引,UML被赞誉为高于高级编程语言如Java和C++的抽象和简洁表达方式。软件被比喻为静态的虚拟建筑、动态的虚拟机器或工厂流水线,体现了其复杂性和多样性。传统的程序定义——算法加数据结构,已不能完全涵盖现代软件的特性,新的视角将其扩展为算法、软件结构和数据结构的结合。 在面向对象(OO)软件占据主导的时代,高质量软件的设计来源于对现实世界的模拟和虚拟世界的建模。UML作为OO建模的工业标准,通过ISO/IEC19501成为正式国际标准,其版本更新至2.1,不仅提升了沟通效率,还擅长表达抽象的OO概念。掌握UML意味着学会了运用OO思维进行软件设计,是软件架构师和程序员的重要技能。 UML的应用不仅限于软件设计,它是理解软件本质和设计模式的有效工具。通过UML建模,人们能够更好地理解和创建复杂的软件架构,洞察软件的内在逻辑。因此,将OOAD(面向对象分析与设计)和UML纳入大专院校软件工程课程显得必要,因为它有助于培养出具备深层次软件设计思维的专业人才。 软件建模并非软件行业的独有实践,而是源于人类工程领域的普遍智慧。建模的目的是为了更好地理解和管理复杂系统,无论是软件还是物理设备,都依赖于模型来指导设计和实现。对软件建模的需求源自于它能提升软件质量,提高团队协作效率,并帮助开发者把握软件的内在结构和行为模式。因此,深入理解并运用UML进行建模,是每个软件工程师不可或缺的技能,也是推动软件工程领域不断进步的关键因素。"
资源详情
资源推荐
浅论阴阳太极与浅论阴阳太极与UML建模建模
火龙果软件工程技术中心
UML抽象、简洁、高于Java、C++诸等高级程序设计语言之上的形象表达,可以让我们真切领略到蕴藏于软件那纷繁芜杂的
细节表面之后的一份简单、和谐之美。
软件究竟是什么?有很多比喻可以形容。静态的软件就像一座虚拟的建筑(Architecture),而运动时的软件有时就像一部开
动的虚拟机器,或多条柔性的工厂流水线(进程与线程),有时又像一种虚拟的生物,可以肆意的复制和生长(比如软件病
毒)。
过去有一种说法认为:程序 = 算法 + 数据结构,如今看来这种旧结构化时代的观点是不准确、不全面的,在新结构化时代我
们至少可以得出这样大致的公式:程序 = 算法 + 软件结构 + 数据结构,在这里我们强调软件结构不同于数据结构,软件是操
纵数据的程序,而软件结构(包括架构和设计模式)的质量对软件的质量同样具有决定性的影响。
过去这15年无疑是面向对象(OO)软件的天下,世界软件开发早已进入了OO时代。
人们知道,高质量的好软件是设计出来的,而软件的设计目前依然主要依赖于人们大脑的思考和判断,人类大脑的思考过程恰
是一个对现实世界以及虚拟世界建模的过程。
而作为OO建模技术的事实上工业标准,统一建模语言(UML)正好为我们提供了一个运用OO思维进行软件建模和设计的工
具。
UML 1.4.2成为正式国际标准ISO/IEC 19501是软件设计史上的一个重要事件,UML标准成熟之后的研发进展也比较顺利,当
前最新版本为2.1。
UML有什么用?作为一种建模“语言”,促进沟通是一项基本功能,然而很多人忽视了UML独立于传统具象编程语言、擅长表达
抽象OO概念的一大特点。
事实上,熟练掌握UML能够帮助我们的大脑学会快速、敏捷地运用OO方式进行思考。UML标准及其相关技术不但是近10年来
各工程领域OO软件设计与建模的利器,还是当前表达软件设计模式最形象和最有效的工具。
在我看来,学会运用UML思考,抽象地用UML表达软件架构和设计方案,从而能透过现象看本质,是当今任何一名软件架构
师乃至普通OO程序员都应该尽快掌握的基本功。所以,这几年世界各地的大专院校纷纷把OOAD/UML列为一门软件工程专业
的必修课也在情理之中了。
建模(modeling)并不是软件行业所特有的做法,建模几乎是几千年来人类所有工程行业所共有的一项最佳实践。为什么我
们要对软件建模?因为软件太复杂,难以理解和掌握,我们需要一种能够简单而深刻地反映软件设计本质的方法和工具。如何
建模?就像对待建筑模型、机械模型一样,软件也是一个多面体(虚拟的),我们也需要选择视点、视角和视图,对模型做投
影、做切片。Kruchten 博士提出的著名的 4+1 视图(逻辑视图、实现视图、构件视图和进程视图,再加上用例视图)为我们
利用UML对复杂软件的结构和行为建模提供了很好的指导。
软件设计和UML建模既然那么重要,有什么简单易学、提纲携领的好方法、好原则吗?我曾经编写了一首建模口诀,多次在
讲课咨询时与客户、学员们分享交流,取得了很好的效果。
这首太极建模诗(或叫十六字OO建模口诀)受到了Larman(《UML和模式应用》)、Cockburn(《编写有效用例》)、3
Amigos(《UML用户指南》)等世界级专家们睿智大作的启发,也凝结了我10多年来从事OO设计和编程的一点小小感悟。
我发现“外与内,高与低,静与动,粗与细”等基本二元辩证关系,不但适用于软件用例需求的建模,也适用于软件架构的
OOAD/UML 建模。
当然,软件设计中的二元关系还远不止这些。充满了二元辩证、平衡之道的现代软件工程,竟然与两千年前中国古典哲学《阴
阳太极》中的黑、白对立统一相暗合,这真的是历史的巧合,还是科学的必然?
由外而内由外而内
外与内,即软件系统本身与其外部环境的关系,大概是软件开发中最根本的一对关系。在软件开发之初需求调研时,我们通常
视整个软件系统为一个黑盒子,我们划地为界,从系统外部来观察软件提供给其各个用户的功能,以及它与外部环境的各种动
态关系(包括彼此之间的行为交互和信息数据的交换)。这种方法可以用UML用例图表示如下:
以银行证券帐户管理系统(类似于“银证通”)为例,图中用例“打印帐户报告!”的需求简述是:
主用角:用户
辅用角:外汇交易中心、证券交易所
范围:证券账户管理系统
层次:用户目标层
后置条件:系统打印客户帐号下已购买的所有币种的证券清单,包括每支证券的单价、份数、余额以及该客户账户下的资产总
下载后可阅读完整内容,剩余3页未读,立即下载
weixin_38658405
- 粉丝: 4
- 资源: 1010
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功