数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: math618

软件工程中的数学思想(作者error.cao)[推荐]

  [复制链接]
发表于 2004-3-3 06:21:06 | 显示全部楼层
应该是做好了上传啦~呵呵
发表于 2004-3-7 20:06:02 | 显示全部楼层
我也想要一个word或PDF的,能否发给我radome78@163.com
发表于 2004-3-16 18:01:52 | 显示全部楼层
[quote]以下是引用math618在2004-2-27 10:31:20的发言:
本帖内容来自:51CMM.COM,适合数学爱好者与计算机专业人士浏览。

[B]软件模型[/B]

一. 软件外的感想
  我记得小的时候和伙伴们一起玩泥巴团,有一种想当建筑师的想法,当时思想幼稚,总是把自己和建筑师们排在一起。
  对于游戏的本身,我是建筑师是没有错的,但是,我的功用仅仅在游戏的本身中才有"建筑师"的身份。若对于文学者来说,在书中描述的就是游戏,但读本书的人,并不拿本书当一本描述游戏的书。
  年龄让我的思想日趋成熟,一种一种的感悟在生活的过程中产生。直到我从事软件行业,才发现自己好象又回到了孩提时代?quot;玩泥巴团"游戏,在糅合着一些泥巴(软件上可能是代码),做一些看上去象"建筑"的东西。
  西方的软件工程化的思想常常以建筑的体系来描述软件开发的过程(UML的三大鼻祖如是用法:从狗窝到大厦),我并不同意如此的比喻,为什么?一个大厦建好后,其框架是不能更换的,在软件开发的迭代的过程中,其构架是变的,一个是活动的(软件过程),一个是不活动的(建造过程),但也的确没有更好的例子来说明软件工程化及其实施的过程。喜欢经济学的朋友一定喜欢张五常先生的散文式的经济学论文,中国人说他是中国的"科斯"。我就是认为该说法钻进一个套子里,何谓中国的"科斯"?在思想上我们在糅泥巴,即希望张五常先生是"科斯",但不可能,就加上"中国"吧。
  一个问题(软件以建筑描述或定义)就暴露了,软件工程在描述上并没有建立一个合理的定义机制,我们依然存在着糅泥巴的作风----以"不完全的构架"代替"完全的构架"。但如何区分真正的建筑和软件的"建筑",artifacts该词是用来描述软件的,从此在定义上我们可以分开软件(是指软件制品)和建筑物,一个是"品",一个是"物",从汉语的角度就很容易理解了。
  软件的一个新事物,从一个抽象化的高度来描述它,自然是和用例(using case)的共性,目前用例(used case)最多的就是建筑及其建筑学。为什么可以从一个抽象的角度描述它(一个新事物:软件的构造)?
  孩提时代的玩泥巴团是对建筑框架的模拟,在模拟一个建筑的构架,建立一个物理模型。而我当时是一个"构架师"(不完全构架师,因为构架师还要制作图纸)有了建筑师的的想法。软件建模也对一个真实世界上的事物建立一个物理模型,这个物理模型是软件制品(artifacts)的系统构架或是一个软件制品。
  如上的说法何以存在疑义?
  这个问题就是出在语义(semantics)上。
  首先抛开我认?quot;我就是建筑师"的想法。
  构造一个建筑物和玩泥巴团的相似之处是它们有共同的目标:建一个建筑(模型也是一种建筑)。采用的方法不同,材料不同,可使用性也不同。但更深一步说明,按照一个建筑物的图纸来建一个模型的话,在视图上创造了一个真实的物件,这个物件就是我们将要描述的真实的事物。
  物件和事物的概念就是以上"品"和"物"的概念。在软件建模上我喜欢两个词artifacts(制品)和system(系统)可以从中抽象出其的意义。
也许需要思考,软件模型或模型的模型被描述时,需要什么样的描述符号?
  首先从模型的概念来回答如是的问题。
二. 模型(model)
  模型这个词是相对于system的,是一个从system抽象的简单实体,以便描述该system。在广义上,模型还可以做动词解,做动词时,模型表明、指出某事物是什么东西,有何功用。为了研究其共性,列出模型三个特征:
  (1)它是现实系统的抽象和模仿。
  (2)它由那些与分析现实系统有关的元素组成。
  (3)它表明这些元素之间的相互关系。
  系统模型(system model)可以由多种方法求解,主要的是数学法。数学法不能说是一个方法,应该是一种行为,它可能包含操作、属性和状态。数学法分析问题一般是分析、归纳、提取、计算、证明和总结,其中最为重要的是描述一个合理化化的过程。
  单词"model"在中文中有两个含义:一是模型,名词;二是建模,动词。但在使用上常用"modeling"来表示建模。
如何合理解释"model"还是从孩提时代的游戏开始说。
  现在建筑上的"七宗罪"说法,我颇同意。关于国内的建筑(主要是城市化建设)问题主要出在规划上,城市建设规划有问题吗?
  在上面刚提过关于用建筑来定义、描述软件工程的,其实有两个问题,在城市建设方面,某一个建筑物就是模型,是一个模型元,若把整个城市当成模型的话,那么某个建筑物就是模块。
  既然可以把某个建筑物当成一个组成模型的最小元,我们就不可以拿之和软件的一个system比,虽然这个system最终是一个artifacts,但从建模方面考虑,必须当之为一个system。
  关于系统化的建模存在那些不合理的方面,软件模型是一个模型系统实践的过程,将有一种模型设计迭代的方式代替原始的一步到位的方式,在软件的建模上称将统一建模过程代替瀑布法建模过程。
  "七宗罪"是目前城建规划不合理的几个方面,虽然,"七宗罪"说法并不一定符合整个城市化建设,但视之、分析之会得到什么结果?是模型不合理还是建模过程不合理?
  第一城市化建设贪洋求大,盲目追求国际大都市,比如说一个县政府在此县城里建了一个10万平方米的广场。考察软件模块,本也希望该软件做出来后可以包罗万象、可以及时跟上时代潮流,所在软件的接口部分庞杂而混乱。
  为什么产生如此现象,在建模上有没有问题?若创建了模型和计算过数字(把模型的某些数据量化),该问题基本上不会发生。你愿意看见一个极不协调的模型?所以模型可以让你清楚看见思想构架出的实例。
  第二缺乏统一协调机制,重复建设严重,在胶东半岛的青岛、济南、烟台有一个机场就够,却建了三个。考察软件模块,如从同一个地方读数据因为两个模块可能不是一个来写,两个人就会写两个模块来解决该任务。
  建模问题?若建模了,大家都从设计的模块上来构架开发程序,大家知道程序采用统一的读数据方式,根本就不会重复"建设"。
  第三领导以权带法(标准),在建设项目时根本就不会关心该被建设的区域有没有被规划,领导说可以建就可以建。好了,如此问题在软件开发上好似不存在?一个项目,该项目的负责人因思想偏颇而让项目偏离原先的规划,由于没有讨论(项目负责人认为他的想法足已),项目无效。
  若使用建模,或更新建模,我们就有一个整体的计划。这个整个的计划一个主轴,该轴不是由某个人的想法的变化而变化,该变化一定参与讨论(更新已建的模型)。
  第四决策不当,不符合规划标准。该问题很简单,若建模型了,模型没有建对。做一个一些不符合规范的模型,该模型上构架事物又如何能正确呢。
  五是领导懂动科学。城市规划建设无方向性和前瞻性。作为软件开发者存在什么样的问题,现在做的程序一定要驾御现在的应用之上,一定需要的是前瞻性,为将来的软件升级做好适当准备。
  在软件的设计阶段,仅仅需要讨论的就是如何建模,因为我们有了模型了,才好在模型上进行构架软件本体(所以台湾把软件叫软体也是合乎道理的)。
  六是风景区开发无序。不是风景区开发无序存在问题,什么地方开发无序它都存在问题。有些人说浮沙之上不能筑高台,但若基础连浮沙都没有又如何筑台。无序的开发其部分难道不是在空之上筑台。
  七是缺乏有效的监督机制。法不是没有,但不执行你也没有办法,因为监督体制没有,其法也形同虚设。
  在此讨论了,如此没有建模带来的坏处,倘若建立简单模型呢?在软件实施时一定需要捡漏补缺。
  如此事实较为多,可以采用软件开发标准来按照逻辑开发软件产品,但根据SW-CMM(Software Capability Maturity Model)或UML(Unified Modeling Language)等开发过程(或其他什么过程)来实施时,虎头蛇尾,执行一半就不再执行了,麻烦!?
  UML就是将system的所有元素和元素的关系模型化,同时也包括对system的理解,构架和实施的模型化。如何描述该system的模型、模型元素、元素关系…。
  依然从城市化建设来谈。
  城市化建设有一点需要认识,城市化建设中有哪些建设是被包罗的。
  描述一下:学校、小区、马路、公园…
  给个城市化建设的具体描述:
  城市化建设将包含如下部分<<>>{学校、小区、马路、公园…},何以描述,该方法是采用数学上的集合描述法。城市化建设就是如上所有&quot;元素&quot;的建设的&quot;集合&quot;。
  模型元素的关系<<>>{模型关系描述一:在某某小区处建一个广场,该广场大小符合该处居民人口数量,一些设施符合该处居民的生活习惯。};{模型关系描述二:在某某公园门前建一条马路}…
  于是乎,便可以在纸上画出待建建筑的分布图,可以画出效果图,也可以根据勾画出的图形采用积木搭建一个模型。有了这个模型,可以看出该片建设的蓝图,而且模型产生的效果,清晰、直观,便于分析、修改和重构。
  如何描述这些模型元素和元素的复杂关系,而且描述对象和采用的描述的文字应该能被所有围绕模型工作的人识别和理解。为此,从最根本的数学语言入手,彻底了解模型语言和建模方式、方法。









[此贴子已经被作者于2004-2-27 16:47:55编辑过]
superzhousg@163.com[/QUOTE]
发表于 2004-3-17 00:13:04 | 显示全部楼层
写得显浅易懂,如果再有点深度和难度就好了
发表于 2004-7-22 01:10:10 | 显示全部楼层
<>开眼界!</P><>受启发!</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-30 13:35 , Processed in 0.051444 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表