应用实例_电梯调度模拟器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.. .. .. PAGE .专业资料. UML程序设计实例 —电梯调度模拟器— 本章通过电梯调度模拟器的例子详细介绍了如何利用UML进行一个实际系统的开发。这个系统的实现过程,遵循Rational统一软件开发过程,最后用Vc++编码实现。 问题描述 在开发任何一个系统之前,开发人员对所要开发的系统的初步理解首先是从用户的问题描述开始的。问题描述的内容包括系统的基本功能需求,用户对系统的性能,外观等特性的要求。这种描述根据开发项目的规模不同,呈现不同的形式。对于大的项目,问题描述可能是长达几页(几十页)的需求规格说明;对于小的项目,可能只是口头上的几句陈述。通过问题描述,开发人员对要开发的系统产生一个大概的印象。 此实例的问题描述如下: 有一座8层楼房,每层提供一组按钮(“上”或“下”),用于请求电梯的到达;每部电梯内部提供一个控制面板,提供用户对目标楼层的选择,并显示电梯当前所处楼层、运行方向。两部电梯由一个调度器统一调度。如果没有请求,并超过一定时限,电梯回到一楼。希望开发人员能实现一个电梯调度模拟器来模拟如上所述的一切,对电梯的调度准则没有做特别要求。 此外,用户还可能会对系统的性能,外观等特性提出要求,这些都需要在开发过程中加以考虑。 需求分析 拟订侯选需求 在系统开发启动之前,首先要对项目做一些可行性分析。在Rational统一软件开发过程中,称这个阶段为初始阶段。 在初始阶段主要是跟各方进行交流,广泛收集信息,听取客户和专家的建议。并对这些信息和建议进行记录,整理得到一个后选需求列表。 后选需求列表中应包括如下各项 名称 简要说明 状态(建议的、批准的、并入的或证实的) 实现成本估算(人小时,人月) 优先级(关键的、重要的或辅助的) 实现风险的级别(关键的、重要的或一般的) 表1 后选需求列表 名称 说明 状态 成本估算 优先级 风险级别 模拟控制器界面 用户通过此界面控制电梯的模拟运行 证实的 重要的 请求电梯到达 通过外部控制面板 证实的 重要的 选择目标楼层 通过内部控制面板 证实的 重要的 显示电梯所处楼层 界面 证实的 一般的 显示电梯运行方向 界面 证实的 一般的 合理的调度算法 对电梯进行调度 证实的 关键的 这时对系统所要实现的功能在整体上有了一个大致的了解。然后明确哪一部分功能是系统中应该实现的,哪一部分功能是由其它外部系统实现的。即确定出系统的功能范围,并粗略估计一下项目的花费和可能得到的收益。这个阶段最重要的是弄清楚启动这个项目是不是有意义,有价值。 初始阶段根据项目的大小,表现为不同的形式。对于小的项目,可能只需要与相关人员进行一些交流和讨论。而对于大的项目可能要花费几个月的时间进行可行性分析。 经过分析,作出启动项目的决定之后,就进入开发过程的细化阶段。 理解系统上下文 建立领域模型 如果对要实现系统所要解决的问题领域没有一个清楚的了解,就不可能开发出一个满足用户需求的软件。因此,进行系统建模时,应首先建立领域模型,描述问题领域中的基本概念。建立领域模型时,先不要考虑软件是怎样实现的,而只关心如何将用户和领域专家头脑中与业务过程相关的概念组织起来,并将业务过程描绘出来。所以在电梯调度模拟器这个实例中,暂不考虑用户界面,而首先考虑把电梯的运做过程描述清楚。用户界面的加入推迟到分析阶段的后期进行。 首先从问题描述和所了解的领域知识中抽取出可能与解决问题有关的重要概念(领域对象)。 本例中通过分析问题描述提取出了这样一些名词(概念)。同时,为了便于理解,各名词的修饰语也被一同标注出来。 楼房 (两部)电梯 (每层)一组按钮(“上”或“下”) (电梯内部)控制面板 用户 调度器 接下来,再抽取问题描述中重要动词短语,它们可能会成为某个类的属性或方法。 请求电梯的到达; 提供用户对目标楼层的选择; 显示电梯当前所处楼层、运行方向 通过对这些概念做进一步分析,不难发现2.电梯、3.按钮(“上”或“下”)、4.控制面板、5.用户、9.调度器等这些概念在电梯运做过程中都担当一定的职责,可以把它们抽象为系统中的一个类。“请求电梯的到达”可以作为外部控制面板的职责;“提供用户对目标楼层的选择”作为内部控制面板的职责;“显示电梯当前所处楼层、运行方向”作为电梯的职责。 此外,还有1.楼房,它在电梯运做过程中不与任何其它对象交互,也不承担任何职责,也不能成为任何其它对象的属性或方法,则把它删除。 根据以上分析,初步地找出了系统中的一些类实体,再根据用户或领域专家对电梯运做过程的描述,以及开发者本人对问题的理解,建立起这些对象之间的关联关系。此外,根据问题描述中限定这些概念的量词(例如:8层、两部、一个等),还可以进一步描述它们之间的多重性关系。然后

文档评论(0)

zxiangd + 关注
实名认证
文档贡献者

本人从事教育还有多年,在这和大家互相交流学习

1亿VIP精品文档

相关文档