为什么掌握UML建模需要编程吗是成为编程高手的一条捷径

  如果想搭一个狗窝备好木料、钉子和一些基本工具(如锤子、锯和卷尺)之后,就可以开始工作了从制定一点初步计划到完成一个满足适当功能的狗窝,可能不鼡别人帮助在几个小时内就能够实现。只要狗窝够大且不太漏水狗就可以安居。如果未能达到希望的效果返工总是可以的,无非是讓狗受点委屈

  如果想为家庭建造一所房子,备好木料、钉子和一些基本工具之后也能开始工作,但这将需要较长的时间并且家庭对于房子的需求肯定比狗对于狗窝的需求要多。在这种情况下除非曾经多次建造过房子,否则就需要事先制定出一些详细的计划再開始动工,才能够成功至少应该绘制一些表明房子是什么样子的简图。如果想建造一所能满足家庭的需要并符合当地建筑规范的合格房屋就需要画一些建筑图,以便能想清楚房间的使用目的以及照明、取暖和水管装置的实际细节问题做出这些计划后,就能对这项工作所需的时间和物料做出合理的估计尽管自己也可能建造出这样的房屋,但若有其他人协作并将工程中的许多关键部分转包出去或购买預制的材料,效率就会高得多只要按计划行事,不超出时间和财务的预算家庭多半会对这新房感到满意。如果不制定计划新房就不會完全令人满意。因此最好在早期就制定计划,并谨慎地处理好所发生的变化

  如果你要建造一座高层办公大厦,若还是先备好木料、钉子和一些基本工具就开始工作那将是非常愚蠢的。因为你所使用的资金可能是别人的他们会对建筑物的规模、形状和风格做出偠求。同时他们经常会改变想法,甚至是在工程已经开工之后由于失败的代价太高了,因此必须要做详尽的计划负责建筑物设计和施工的是一个庞大的组织机构,你只是其中的一部分这个组织将需要各种各样的设计图和模型,以供各方相互沟通只要得到了合适的囚员和工具,并对把建筑概念转换为实际建筑的过程进行积极的管理将会建成这座满足使用要求的大厦。如果想继续从事建筑工作那麼一定要在使用要求和实际的建筑技术之间做好平衡,并且处理好建筑团队成员们的休息问题既不能把他们置于风险之中,也不能驱使怹们过分辛苦地工作以至于精疲力尽

  奇怪的是,很多软件开发组织开始想建造一座大厦式的软件而在动手处理时却好像他们正在倉促地造一个狗窝。

  有时你是幸运的如果在恰当的时间有足够的合适人员,并且其他一切事情都很如意你的团队有可能(仅是可能)推出一个令用户眼花缭乱的软件产品。然而一般的情况下,不可能所有人员都合适(合适的人员经常供不应求)时间并不总是恰當的(昨天总是更好),其他的事情也并不尽如人意(常常由不得自己)现在对软件开发的要求正在日益增加,而开发团队却还是经常單纯地依靠他们唯一真正知道如何做好的一件事——编写程序代码英雄式的编程工作成为这一行业的传奇,人们似乎经常认为更努力地笁作是面对开发中出现的各种危机的正常反应然而,这未必能产生正确的程序代码而且一些项目是非常巨大的,无论怎样延长工作时間也不足以完成所需的工作。

  如果真正想建造一个相当于房子或大厦类的软件系统问题可不是仅仅编写许多软件。事实上关键昰要编出正确的软件,并考虑如何少写软件要生产合格的软件就要有一套关于体系结构、过程和工具的规范。即使如此很多项目开始看起来像狗窝,但随后发展得像大厦原因很简单,它们是自己成就的牺牲品如果对体系结构、过程或工具的规范没有作任何考虑,总囿一天狗窝会膨胀成大厦并会由于其自身的重量而倒塌。狗窝的倒塌可能使你的狗恼怒;同理不成功的大厦则将对大厦的租户造成严偅的影响。

  不成功的软件项目失败的原因各不相同而所有成功的项目在很多方面都是相似的。成功的软件组织有很多成功的因素其中共同的一点就是对建模需要编程吗的采用。

  建模需要编程吗是一项经过检验并被广为接受的工程技术建立房屋和大厦的建筑模型,能帮助用户得到实际建筑物的印象甚至可以建立数学模型来分析大风或地震对建筑物造成的影响。

  建模需要编程吗不只适用于建筑业如果不首先构造模型(从计算机模型到物理风洞模型,再到与实物大小一样的原型)就装配新型的飞机或汽车,那简直是难以想像的新型的电气设备(从微处理器到电话交换系统)需要一定程度的建模需要编程吗,以便更好地理解系统并与他人交流思想在电影业,情节串联板是产品的核心这也是建模需要编程吗的一种形式。在社会学、经济学和商业管理领域也需要建模需要编程吗以证实囚们??的理论或用最小限度的风险和代价试验新的理论。

  那么模型是什么?简单地说:

  模型是对现实的简化

  模型提供了系統的蓝图。模型既可以包括详细的计划也可以包括从很高的层次考虑系统的总体计划。一个好的模型包括那些有广泛影响的主要元素洏忽略那些与给定的抽象水平不相关的次要元素。每个系统都可以从不同的方面用不同的模型来描述因而每个模型都是一个在语义上闭匼的系统抽象。模型可以是结构性的强调系统的组织。它也可以是行为性的强调系统的动态方面。

  为什么要建模需要编程吗一個基本理由是:

  建模需要编程吗是为了能够更好地理解正在开发的系统。

  通过建模需要编程吗要达到4个目的:

  (1)模型有助于按照实际情况或按照所需要的样式对系统进行可视化。

  (2)模型能够规约系统的结构或行为

  (3)模型给出了指导构造系统嘚模板。

  (4)模型对做出的决策进行文档化 【第2章讨论UML如何完成这4件事情。】

  建模需要编程吗并不只是针对大的系统甚至像狗窝那样的软件也能从一些建模需要编程吗中受益。然而可以明确地讲,系统越大、越复杂建模需要编程吗的重要性就越大,一个很簡单的原因是:

  因为不能完整地理解一个复杂的系统所以要对它建模需要编程吗。

  人对复杂问题的理解能力是有限的通过建模需要编程吗,缩小所研究问题的范围一次只着重研究它的一个方面,这就是Edsger Dijkstra几年前讲的“分而治之”的基本方法即把一个困难问题劃分成一系列能够解决的小问题;解决了这些小问题也就解决了这个难题。此外通过建模需要编程吗可以增强人的智力。一个适当选择嘚模型可以使建模需要编程吗人员在较高的抽象层次上工作

  任何情况下都应该建模需要编程吗的说法并没有落到实处。事实上一些研究指出,大多数软件组织没有做正规的建模需要编程吗即使做了也很少。按项目的复杂性划分一下建模需要编程吗的使用情况将會发现:项目越简单,采用正规建模需要编程吗的就越少

  这里强调的是“正规”这个词。实际上开发者甚至对非常简单的项目也偠做一些建模需要编程吗工作,虽然很不正规开发者可能在一块黑板上或一小片纸上勾画出他的想法,以对部分系统进行可视化表示戓者开发组可能使用CRC卡片描述一个场景或某种机制的设计。使用任何一种这样的模型都没有什么错如果它能行得通,就可以使用然而,这些非正规的模型经常是太随意了它没有提供一种容易让他人理解的共同语言。建筑业、电机工程业和数学建模需要编程吗都有通用嘚建模需要编程吗语言在软件开发中使用一种共同的建模需要编程吗语言进行软件建模需要编程吗也能使开发组织获益匪浅。

  每个項目都能从一些建模需要编程吗中受益即使在一次性的软件开发中——由于可视化编程语言的支持,可以轻而易举地扔掉不适合的软件建模需要编程吗也能帮助开发组更好地对系统计划进行可视化,并帮助他们正确地进行构造使开发工作进展得更快。如果根本不建模需要编程吗项目越复杂,就越有可能失败或者构造出错误的东西所有实用系统都有一个自然趋势:随着时间的推移变得越来越复杂。雖然今天可能认为不需要建模需要编程吗但随着系统的演化,终将会对这个决定感到后悔但那时为时已晚。

请指出三种以上现实生活中的常鼡模型并说明它们分别在各自的领域中发挥了什么

)电路图:电子产品设计、生产、维修

)园区沙盘:直观、立体化地展示园区的景观、布局

请简要说明建模需要编程吗的意义和建模需要编程吗的原则。

建议能够帮助我们按照实际情况或按我们需要的样式对系统进行可视囮;

明系统的结构或行为的方法;

给出一个指导系统构造的模板;

对我们所做出的决策进行文档化

在建模需要编程吗时应遵循以下原则:

選择要创建什么模型对如何动手解决问题和如何形成解决方案

每一种模型可以在不同的精度级别上表示;

最好的模型是与现实相联系

的;單个模型是不充分的对每个重要的系统最好用一组几乎独立的模型去处理

请说明蓝图和草图的区别,并简单描述其适用的场景

工具绘淛的、正式的、规范的

模型;而草图则通常是指手

工绘制的、规范度较低的在纸张的

对于局部的、重要性不高的、共享范围较小的

模型,矗接将草图扫描到电脑存档即

可;对于全局的、重要性高的、高度共享的在草图的基础上用

图,并将其纳入统一的模型管理中

适用的建模需要编程吗领域以及其作用和主要的参与人员。

业务建模需要编程吗用来加强对业务领域的了解,以领域专家为主需求分析人员昰主力,系

统分析员、架构师可参与

需求模型,用来加强需求了解便于技术决策,以需求分析人员为主系统分析员是

主力,领域专镓提供指导架构师和资深开发人员参与。

包括高层设计模型和详细设计模型

高层设计模型以架构师为主,

析员从需求方面提供支持

資深开发人员从技术实现方面提供支持。

以资深开发人员为主架构师提供指导。

数据库模型:架构师、数据库开发人员、资深开发人员(设计人员);以数据库开发

人员为主架构师提供指导,资深开发人员(设计人员)予以配合

是一种方法论吗?并简要说明理由

不昰方法论。它仅仅是一种描述模型的标准语言虽然渗透了许多方法论的基础概

念,但是却没有在标准中给出完整的方法指南

我要回帖

更多关于 建模需要编程吗 的文章

 

随机推荐