当前位置:编程问答 > C#/ASP.NET >

可视化建模软件应用程序(转)

答案:可视化建模软件应用程序
注意:在公开发布的 Visual Studio.NET Beta 2 中可能不提供某些功能。

对于构建复杂分布式应用程序的客户,他们所面临的挑战之一就是能否将应用程序体系结构和要求成功地传达给较大范围内的小组成员。当考虑松散接合的 XML Web 服务时,这种挑战变得更为严峻。人们一般认为,以多种格式(即视觉形式、口头形式和书面形式)表示概念和信息有助于提高人们快速、准确地理解消息的能力。Visual Studio.NET 采用了这一多格式的表述方法。通过提供一整套用于说明应用程序体系结构和要求的可视化建模工具,它将有助于促进团队的协作和工作效率的提高。

行业标准方法
Visual Studio.NET 可支持多种多样的设计和建模活动,其中包括自由制图功能以及一套行业标准的统一建模语言 (UML) 图。UML 是一种直观的表示方法,用于说明和解释组成软件应用程序的元素、关系和操作。

利用 Visual Studio.NET 建模功能,用户可以创建复杂的图表来说明其应用程序体系结构和业务要求,并可以将其传达给他们的小组。业务分析人员、构架设计师、开发人员以及其他需要执行分析和设计任务以增进沟通并提高其开发小组工作效率的人员都可以利用这些新功能。以下方案将演示如何使用 Visual Studio.NET 所创建的软件模型来直观地说明特定软件系统的结构,并有效地将其传达给他人。

应用方案:汽车租赁软件系统
此方案将讨论如何使用 8 种 UML 图来构建一个汽车租赁公司软件系统的模型。先介绍三个简单的用例,这些示例记录了系统的核心过程。

用例图
用例用于说明用户与系统之间的一种交互,通过这种交互,用户将能够实现其目标。一个典型的软件系统可能包括数百个简单的用例。以下是一些适用于汽车租赁公司系统的用例:

客户预订车辆
客户必须先进行预订,然后才能租到汽车。该客户与租赁公司联系并提出租赁请求。租赁公司将基于多项标准(如有无可租赁的汽车或该客户的租赁历史记录)来接受或拒绝该请求。如果接受预订,该公司将建立一个包含客户详细信息的窗体。客户支付抵押金后,即完成预订。
客户取车
客户来到公司后,租赁公司将根据当前的库存情况,为客户分配所请求型号的汽车。客户在支付全部款项以后,即可提走该车。
客户返还汽车
客户将在租赁协议所指定的日期将汽车返还给租赁公司。
以下图像显示了这三个用例的用例图。

图 1:简单的用例图

静态结构(类)图


下一个任务是对所涉及对象及其关系进行分类。检查用例有助于确定各个类。要构建对象类的模型,可以使用静态结构或类、显示系统整体结构的图表,以及关系和行为属性。
在类图中,汽车租赁系统中所涉及的对象被分为不同的类。每个类都包含一个名称部分和一个属性部分。某些类还包含一个操作部分,以指定该类中对象的行为方式。
在“客户”类中,属性包括姓名、电话号码、司机的驾照号码以及地址。为了确定客户是否符合租赁汽车的最小年龄要求,还需要提供出生日期。“客户”类还存储诸如预订等操作。
类图支持继承。例如,在下图中,“机修工”和“租赁公司”类继承了“雇员”类中的某些属性,如姓名和地址。

图 2:静态结构(类)图

顺序关系图


顺序关系图提供了用例的详细信息视图。它显示按时间顺序排列的交互,因此有助于记录应用程序中的逻辑流。其中的参与者将显示在所传递消息的上下文中。在全面的软件系统中,顺序关系图可以详细到包括数千条消息。
假设一名客户需要预订一辆汽车。汽车租赁公司必须先检查该客户的记录,以确保该客户有资格租赁汽车。如果该客户以前从该公司租赁过汽车,就会有该客户的租赁历史记录,租赁公司只需确保以前的所有交易都进行得比较顺利。例如,该公司可以确认该客户以前是否按时返还汽车。一旦核准该客户的租赁状态,该租赁公司就可批准此项汽车租赁预订。这一过程可以用顺序关系图表示,如下图所示。

图 3:顺序关系图

协作图


协作图是另一种类型的交互图。与顺序关系图相似,协作图将显示用例中的一组对象如何进行协作。为了记录消息发生的先后顺序,将对每条消息进行编号。

图 4:协作图

状态图


对象的状态可定义为特定时刻的属性。当对象受到外界激励因素的影响时,它们在多种状态之间变化。状态图将映射这些状态,并映射使该对象处于某一特定状态的触发事件。例如,在上述租赁系统中,对象就是汽车。当汽车在租赁系统中移动时,它的多种状态将生成一个复杂而清晰的图表。例如,该汽车首先会添加到车队中。在被租赁前,它将始终处于 InStock 状态。租赁结束后,该汽车将返回车队并恢复到 InStock 状态。在其商业使用寿命中,该汽车可能需要在不同的时间进行修理 (InService)。当达到它的使用寿命后,该汽车将被卖掉或废弃,以便为新车腾出车位。

图 5:状态图

活动图


活动图显示与内部生成的操作相对应的逻辑关系。活动图与特定的类或用例相关,它将显示执行某一特定操作所需的步骤。

图 6:活动图

组件图


组件图显示各软件子系统构成系统整体结构的方式:该系统构建在集中式数据库基础之上,而数据库中包含过去的租赁记录、汽车详细资料、维修记录以及有关客户和雇员的详细信息。由于库存情况每一小时都有所变化,而相关各方必须获得最新的信息,所以务必要将这些数据集中在一个数据库中。要使数据为最新数据,相关各方必须实时地更新信息。此示例中的软件子系统包括“汽车记录”、“维修记录”、“销售记录”、“客户记录”和“雇员记录”。

图 7:组件图

部署图


部署图显示如何配置系统中的硬件和软件。租赁公司需要一个客户机/服务器系统,该系统包含一个可供员工访问的集中记录数据库。租赁公司需要访问有关车辆可用情况的数据。与此同时,机修工需要能够标识处于 InService 状态的特定车辆。

图 8:部署图

自由图形建模


许多客户还希望能够将其他图形元素添加到其应用程序模型的 UML 图中。Visual Studio.NET 支持自由图形建模,如流程图和其他非语义图表,并且支持在模型中嵌入任何图像。这就使客户能够更灵活地表述其应用程序体系结构和功能。

总结


在应用程序的生存期中,许多具有不同技术背景的人员都需要进行交流和沟通,以成功地实现创建新的应用程序这一共同目标。Visual Studio.NET 为说明和表述体系结构提供重要的功能:行业标准的软件建模功能和丰富的自由制图功能。受益于这些功能,客户将能够更为有效在其开发团队中进行沟通,从而将提高开发人员的工作效率以及组织中软件项目的成功率。

上一个:基于SSE指令集的程序设计简介
下一个:Visual Studio.NET:应用程序生存期平台(转)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,