网站大量收购闲置独家精品文档,联系QQ:2885784924

谈软件的架构设计.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
谈软件的架构设计

浅谈软件的架构设计 作者:张传波 我将以我主持开发的“工程量自动计算软件”,谈一下我对软件架构设计的体会。 我们公司主要开发建筑造价领域的软件,其中工程量自动计算软件是技术含量最高、难度最大的软件。我是这个项目的主要开发者,我参与了这个项目的全过程。这个项目从立项至今已经差不多3年的时间了。软件的第一个版本是2000年11月1日发布的。 这个软件是和建筑造价行业紧密相关的,我有必要先介绍一些背景资料。 建造一栋建筑物需要多少成本呢?它是如何计算的呢?建筑物除了是由钢筋混凝土做的外,它还有门、窗,装饰用料等等。如果细分,建筑物用料可以细分成成千上万种。国家的建筑造价的部门对许多工程进行了分析,统计出建筑物不同的部分、不同的材料的单价造价。也就是说,如果建筑物的各个部分的工程量算出来的,乘以单价就可以知道建筑物的造价了。比方说,由一栋私人的别墅,要知道它的造价,就要算出它各种型号的混凝土用了多少,其中柱用了多少混凝土,梁用了多少,板用了多少,各种型号和直径的钢筋用了多少,各种型号门、窗用了多少等等,就可以算出它的造价了。建筑物的结构是很复杂的,梁、板、柱等等东西是交错在一起的,如何计算它们的工程量是有规则的。全国各地的定额站对此作了规定。我们这个软件的任务是,按照工程量的计算规则,算出工程量。 如果没有软件,用户原来是怎样计算工程量的呢?用户根据图纸,用纸加计算器,把计算的过程列出来,最后得出各个部分的结果。人手计算的工作量很大,很繁复,也很容易出错。我们的这个软件工作的流程大致是,用户根据图纸,把构件(梁、柱、板等)画上去,绘图完成后,软件计算工程量,计算的结果以报表的形式输出。软件把原来繁复的手工计算工程变成形象画图的过程,大大的减轻了工作量,增加了工作的乐趣。 附图(软件概貌): 下面谈一下这个软件的设计过程。 概念设计 用户手算时的情景: 用户要仔细的看图纸,包括建筑施工图、结构施工图,把各种平面、立面、剖面图在脑中形成立体的模型,在脑中建立各种构件的关系,要计算的内容也一一明确。用户根据自己的经验和本工程的实际情况,开始计算工程量,计算的过程一般是先算基础,然后是主体结构,接着是装饰和脚手架。最后是汇总计算结果。计算的过程中需要不断的看图纸,不能算错,不能多算和漏算,计算要留有中间结果,以备检查。 手算时的工作流程: 手算的特点: 要分析许多图纸,掌握许多资料。 手算者思维要严谨,不过多算、漏算。 计算要步步为营,不能有错,需要反复的检查和较验。 计算的工作很繁复和枯燥。 计算者经验越多,出错的机会越低。 本软件要满足以下两点的基本需求: 降低计算者的工作量。 保证计算的准确度。 用软件计算的工作流程: 用软件工作时,软件极大地降低了计算者的的工作强度和工作量,迭代的过程只有一个。计算者只需要熟悉图纸,然后“依样画葫芦”的输入数据,剩下的工作就交给软件了。 逻辑设计 先看模块与数据关系图: 各模块简介如下: A数据输入模块:用户采用什么方式输入图纸的数据。 参考方案: 表格法输入:用户以表格的形式输入数据,类似于手算的方式。 图形法输入:用户以“画图”的方式输入数据。 表格法方式接近于手算的方式,用户的工作量还是很大,所以我们采用图形法输入。考虑到已经有许多自主图形平台的工程量计算软件,我们不应该再走别人的老路,还有工程量计算的复杂性,我们决定采用了AutoCAD2000作为绘图的平台,这样可以充分利用AutoCAD强大的绘图功能和三维实体布尔运算的功能。 B数据处理模块:对模块D的数据进行处理,也就是要进行工程量的计算。软件要减轻人的工作量主要是体现在这个地方,也是软件的核心部分。此模块需要很强的人工智能技术。 C数据输出模块:以报表的形式输出模块E的数据。 D工程数据:用户输入的数据的储存方式。 参考方案: 数据库方式。 对象模型方式。 本软件的关键问题是人工智能的问题,软件要解决这个问题:怎样去模拟人脑辨别出复杂的工程情况准确无误的计算出结果。本软件处理的数据量很大,采用数据库的方式应该是很适合的。但如果采用数据库的方式来保存工程的数据,会因为数据库的灵活性不足,难以构造满足现实工程的模型。我们决定采用对象模型的方式,用类来构造现实的工程模型。软件数据的存储直接对工程模型进行,运算也直接对工程模型进行,这样上层编程的难度会降低很多,也更容易解决“模拟人脑辨别出复杂的工程情况准确无误的计算”的问题。 工程对象模型: 红色矩形:表示集合对象 蓝色矩形:表示非集合对象 对象描述: 数据输入模块把输入的数据通过接口保存在工程模型里面。数据处理模块通过接口访问工程数据。 E计算结果数据:计算结果的储存方式。 此部分数据量大,而且不需要进行运算,采用数据库的方式保存已经可以满足

文档评论(0)

xingkongwd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档