280 likes | 618 Views
软件工程学实验. 马丽. 实验3. 实验3.1 Visio 绘图初步 实验3.2 Visio 绘制工程图形. 实验3.1 Visio 绘图初步. Visio 系列产品大约从1990年开始研发。 Visio 软件秉承了“模块化”和“可重用性”的先进设计思想,通过提供许多应用领域的基本图形模块,允许用户通过拖放图件来组合出自己所需要的图形,使用十分简单,大大简化了用户的工作,产品受到广泛的欢迎 1995年,这家研发 Visio 软件的公司更名为 Visio, 并于同年完成了股票上市. 实验3.1 Visio 绘图初步.
E N D
软件工程学实验 马丽
实验3 • 实验3.1 Visio绘图初步 • 实验3.2 Visio绘制工程图形
实验3.1 Visio绘图初步 • Visio系列产品大约从1990年开始研发。Visio软件秉承了“模块化”和“可重用性”的先进设计思想,通过提供许多应用领域的基本图形模块,允许用户通过拖放图件来组合出自己所需要的图形,使用十分简单,大大简化了用户的工作,产品受到广泛的欢迎 • 1995年,这家研发Visio软件的公司更名为Visio,并于同年完成了股票上市
实验3.1 Visio绘图初步 • 1999年,Microsoft以股票交易方式并购了Visio公司,不久推出新版本Visio软件。至此,和Word、Excel、PowerPoint、FrontPage、Access等软件一样,Visio也成为Microsoft Office家族的一员,得到了Microsoft强大的技术支持
实验3.1 Visio绘图初步 • Visio实际上只能说是一个绘图工具软件。但是,在目前已有的各类绘图软件中,Visio是建立流程图、组织图、日程表、行销图、布置图等各种图形图表最快速、最简便的工具之一
实验3.1 Visio绘图初步 • Visio带有一个绘图模板集,包含了用于各种商业和工程应用的符号。其中的软件和系统开发模板提供了流程图、数据流图、实体-联系 (E-R) 图、UML图以及其他许多图形符号 • 模板提供了一个不断补充和发展的用于存储图表元素的定义和描述信息的有限资料库。由于其所具有的强大的专业绘图功能,系统分析和设计人员可以用Visio来创建CASE应用中所需要的任何系统模型
实验3.1 Visio绘图初步 • 1. Visio的功能与特色 • Visio软件的核心功能包含了智慧图元技术、智慧型绘图和开发式架构,它的最大特色就是“拖拽式绘图”,这也是Visio与其他绘图软件的最大区别之处。用户只需用鼠标把相应的图件拖动到绘图页中,就能生成相应的图形,可以对图形进行各种编辑操作。通过对大量图件的组合,就能绘制出各种图形。 • 说Visio功能强大,是由于它不但能绘制各种各样的专业图形,还可以绘制丰富的生活图形,无论是办公用户还是工程技术人员,都可以用它来绘制自己的图形,包括程序流程图、工艺流程图、企业机构图等等
实验3.1 Visio绘图初步 • Visio提供的模板包括: • Web图表 地图 电气工程 • 工艺工程 机械工程 建筑设计图 • 框图 灵感触发 流程图 • 软件 数据库 图表和图形 • 网络 项目日程 业务进程 • 组织结构图
实验3.1 Visio绘图初步 • 用户也可以根据自己的需要建立个性化的新模板。因此,Visio的应用范围几乎是没有限制的 • Visio与Microsoft的Office系列软件等有着很好的整合性,同时,用户也可以轻松地利用局域网和Internet来分享他们的图表,沟通想法等
实验3.1 Visio绘图初步 • 2. 2Visio的文件类型 • 绘图文件 (.vsd) :用于存储绘制的各种图形。—个绘图文件中可以有多个绘图页,它是Visio中最常用的文件 • 模具文件 (.vss) :用来存放绘图过程中生成各种图形的“母体”,即形状 (图件) 。Visio自带了大量对应于不同绘图场合的模具文件,给绘图带来了很大的方便。用户还可以根据自己的需要,生成自己的模具文件
实验3.1 Visio绘图初步 • 模板文件 (.vst) :同时存放了绘图文件和模具文件,并定义了相应的工作环境。Visio自带了许多模板文件。用户可以利用Visio自带的或者自己生成的模具文件,对操作环境加以改造,进而生成自己的模板文件 • 工作环境文件 (.vsw) :用户根据自己的需要将绘图文件与模具文件结合起来,定义最适合个人的工作环境,生成工作环境文件。该文件存储了绘图窗口、各组件的位置和排列方式等。在下次打开时,可以直接进入预设的工作环境。 • 此外,Visio还支持其他多种格式的文件
实验目的 • 了解Visio工具软件的功能特色、安装、工作环境和基本操作等各方面的基本知识 • 掌握应用Visio工具绘制软件开发图形的基本操作
实验3.2 Visio绘制工程图形 • 除了做一般绘图操作外,Visio还具有很强的开发能力,可以通过开发Visio解决方案来扩展Visio的应用 • 所谓解决方案就是通过组合Visio图形和程序来将现实世界模型化,以解决特定的绘图问题。软件的解决方案通常是将一个自定义的程序与一个或多个封装的软件应用程序组合起来。解决方案的开发人员不是从头开发功能,而是使用内置在封装产品中的现有功能
实验3.2 Visio绘制工程图形 • Visio解决方案通常将一些图形 (由Visio提供的或为该解决方案开发的) 与一个模板组合起来,以创建一些使用这些图形的绘图 • Visio解决方案还可以使用Automation (自动操作) 来控制它的图形和绘图 • Visio解决方案中的自定义程序可以使用任意一种支持将Automation作为客户的编程语言来编写,例如VBA、VB或C++等
实验3.1 Visio绘制工程图形 • 1. 关于Visio解决方案 • Visio解决方案通常包括主要图形的样板 (stencil) ,这些样板被称为“主图形” (master) ,用户可以将其拖放到绘图页面中,以创建一个绘图,而不必手工绘制任何内容。解决方案可能还包括一些特定图形 (如标题框、徽标或框架等) 样板的模板 (template) ,以及一些预先定义绘图比例、绘图大小和用于打印的纸张大小等的模板,以提供给新的绘图中使用。 • 程序 (无论是解决方案中Visio文档的VBA代码,还是Visio文档外的独立程序) 可以帮助创建绘图、分析绘图,或者在绘图和外部数据源之间传输信息。 • 可以将Visio图形设计成可重用的组件,以便用户可以在不必使用绘图工具的情况下创建绘图。Visio是一种用于建模的优秀工具,因为这些图形不仅可以形象地表示模型范围内的对象,而且它们被设计成为正确模型的开发方式。 • 在一个设计良好的Visio解决方案中,图形与模型范围中的对象相对应,创建绘图就是构造模型。图形行为可以确保正确的建模和正确的图形表示,并且使用户可以忽略具体的属性来创建具有可读性的示意图。
实验3.1 Visio绘制工程图形 • 2. 使用Visio图形创建解决方案 • Visio提供了使开发人员可以很容易地访问其专业化图形功能的解决方案,并且提供了一些可以利用ShapeSheet窗口中的公式编程的图形。 • 每个Visio图形都包括一类公式,以表示它的属性,例如它的宽度和高度等,以及像当用户双击它时图形的变化等这样的行为。因为Visio图形可以通过公式编程,所以可以将一些重要的数据 (如零件数量、名称、生产商等) 与表示设备的图形等关联起来。于是,图形就会变成一些功能强大的组件,它们在一个大型解决方案中的独特行为完全是由所编写的公式提供的
实验3.1 Visio绘制工程图形 • (1) 将对象组合成绘图 • Visio图形都是一些“参数性”的矢量集合图形,也就是说,Visio图形可以根据具体的参数值 (有些是由Visio引擎定义的,有些则是由图形开发人员定义的) 来调整它的“几何形状”及其他属性。图形的几何形状随用户对该形状所做的操作,动态地计算公式而变化。可以通过组合一些智能对象来创建所需的绘图。 • 在图3-12所示的螺栓图形中,螺栓长度、螺纹长度和螺栓直径都是一些由公式控制的参数。
实验3.1 Visio绘制工程图形 • 螺帽直径和螺帽厚度都是通过这些参数计算得到的。在实际的物理范围内,这些参数彼此之间是相互独立的。用户可以通过拖动选择柄更改螺栓长度或螺栓直径,或者通过拖动控制柄更改螺纹长度,来设置这些参数。而程序可以使用生产商的可用尺寸数据库中的数值数据来设置这些参数
实验3.1 Visio绘制工程图形 • (2) 用图形表示组件 • 就像一个程序中的过程会将功能封装起来,以使它们更易于使用和重用一样,Visio会将绘图页面中的行为封装起来。可以将Visio图形看作是组件,其默认行为由Visio引擎提供,并且它独特的行为是由所编写的公式提供的。 • 一个解决方案很少是由一个图形组成的,通常需要开发一套支持某种特定类型绘图的图形,然后在Visio样板中将这些图形组合成主图形。在根据该主图形创建实例 (图形) 的样板中,主图形可以由一个图形组成,也可以由多个图形或一组图形组成。实例将从主图形那里继承很多特征。 • 用户 (或程序) 可以将主图形从样板拖放到Visio绘图中。样板使自定义的图形更易于重用——相同的图形可以被工程师用来模拟产品配置,被销售人员用来向顾客展示他们正在购买的产品,也可以被图形艺术家用来创作系列产品的目录等。 • 当用户首次将一个主图形拖放到绘图页中时,Visio将自动在该绘图页中创建一个主图形实例,并将该主图形的一个副本 (被称为“文档主图形”) 添加到绘图的文档样板中。将文档样板存储在绘图文件中可以带来两个主要的好处: • 1) 绘图是完全自我包含的。一旦用户创建了绘图,就不再需要样板。 • 2) 主图形的实例将从文档样板继承属性。用户可以编辑文档样板中的主图形,以更改绘图中该主图形所有实例的特征。 • 因为一个主图形的每个实例都继承文档主图形的特征,所以实例可以支持大量复杂的行为,而同时保持相对较小的规模。可以通过更改文档主图形来将整体更改传递给实例。 • 例如,图3-13所示的网络设备图形设计是与网络设备架对齐和联系在一起的,每个图形都与生产商提供的产品规格匹配,以便能够准确地放置它,而图形的设计者自定义了图形的对齐框,并添加了一些连接点,以使图形更易于使用。
实验3.1 Visio绘制工程图形 • 2为了帮助用户使用主图形来创建绘图,通常需要提供一个模板。模板可以提供绘图页中已经存在的图形,但更为重要的是,它可以设置绘图页,使它具有统一的网格和比例,并且可以包含指定的样式和层。模板还可以打开一个或多个样板。当用户在模板的基础上创建绘图时,Visio将打开一些样板,并创建一个新的绘图文件,将模板的样式及其他属性复制到这个新文件中。就像使用样板一样,一旦用户创建了绘图,就不再需要这个模板。
实验3.1 Visio绘制工程图形 • 3. 使用SmartShape技术开发困形 • 使用Microsoft Visio的SmartShape技术,可以来构建对于需要创建的各种绘图或图表有意义的特征模型。通过定义一些公式,使图形的行为符合应用于它们所对应的对象的设计规则、代码或原则。 • 每个Visio图形都有它自己的ShapeSheet表格,它定义了该图形独特的行为和功能。可以将ShapeSheet看作是图形的属性页,其中每个属性都是由一个随用户对该图形所做的操作动态变化的值或公式来设置的。可以在ShapeSheet窗口中查看和编辑图形的公式。 • 希望通过外部编程获得的很多特性都可以通过ShapeSheet窗口来控制。例如,通过在ShapeSheet窗口中定义用于某个图形的公式,可以将一些菜单项目添加到这个图形的快捷菜单中。这些公式可以控制图形的其他属性,例如: • 1) 几何形状 (翻转、旋转、显示或隐藏路径) 。 • 2) 颜色、模式和线条的粗细。 • 3) 文本,包括字体、段落格式和方向等。 • 4) 帮助用户调整图形的控制柄。 • 5) 可以连接其他图形的连接点。 • 6) 可以包含用户数据的自定义属性。 • 表格形式的界面使它更易于使用单元格引用来将一个图形属性与另一个图形属性联系起来,这意味着图形属性可以以微妙和强大的方式彼此产生影响。例如,可以将一个图形 (如机械绘图中的一个零件) 的颜色与它的尺度联系在一起,以指出该零件是否在公差范围内。
实验3.1 Visio绘制工程图形 • 24. 在Visio解决方案中使用Automation • 有些解决方案不仅仅需要图形、样板和模板。例如,可能需要根据每天都会变化的数据创建一些绘图,或者需要执行一些反复进行的常规图形开发任务等。通过在解决方案中使用Automation (自动操作) 来合并Visio引擎的功能——只需简单地使用它的对象,就可以自动执行这些任务。 • 如果熟悉VBA,那么可以继续使用对象——诸如命令按钮、用户窗体、数据库和字段等控件。使用Automation,也可以使用其他应用程序的对象。绘图、主图形、图形,甚至Visio菜单和工具都可以成为程序的组件。程序可以在一个Visio实例中运行,也可以启动Visio应用程序,然后访问它所需要的对象。 • Visio包括VBA,因此,不需要使用单独的开发环境来编写程序。但是,可以使用任意支持Automation的语言来编写控制Visio引擎的程序。
实验3.1 Visio绘制工程图形 • 5. 计划Visio解决方案 • 最简单的解决方案就是使用由Visio提供的内容,以及用户所创建的图形、样板和模板的标准化绘图。如果想为创建某种特定类型的绘图提供更多的帮助,那么可能会希望以VBA代码、COM (component object model,组件对象模型) 加载项或Visio附件的形式,来为解决方案添加一些程序。如果所创建的绘图符合一组严格的规则,那么解决方案就可以包括一个使用来自其他数据源的数据生成用户可以修改的绘图的应用程序。如果解决方案不仅仅是为了提供绘图,那么它还将涉及到与外部数据库,甚至外部应用程序 (从市场上购买的或者内部开发的) 的集成问题。 • (1) 计划开发过程 • 一位开发人员可能会经常创建一个由自定义图形、模板及少量代码组成的简单的Visio解决方案。但是,更周密的解决方案可能会需要一个开发小组,而每位小组成员都需要具备一定的技术。例如,一个小组可能是由下面的成员组成的: • 1) 一名系统设计师。他了解软件系统的设计过程,并且对Visio及其结构和常用功能也有很好的理解。系统设计师拥有自己的技术思想和Visio解决方案的设计方案。 • 2) 多名图形开发人员。他们需要非常熟悉Visio的绘图工具和ShapeSheet窗口,需要具有扎实的数学和几何学知识,因为他们的大多数工作都会涉及到创建控制图形行为的公式方面的内容。 • 3) 多名Automation开发人员。他们掌握用来开发解决方案的编程语言 (VBA、Visual Basic或C++,这取决于解决方案需要的集成类型) 。Automation开发人员需要对Visio图形和公式有一定的了解,并且需要非常熟悉Visio对象模型。 • 4) 多名学术问题专家。他们具有广泛的知识背景,并且在解决方案所属的领域内具有一定的经验。他们需要向开发小组提供行业或公司标准、处理方法、实用性,以及规则的例外情况等方面的建议。 • 一旦成立了开发小组,就可以为开发过程采用下述执行步骤: • 1) 拜访用户以了解他们的需求,并确定解决方案所属领域内的对象。在一个大型工程中,需要考虑文档管理方面的需求,以便其他用户和开发人员能够查阅这些文档,以了解他们所需的内容。 • 2) 逐步地开发解决方案,并且在每个阶段都要求用户介入,以获得反馈信息。 • 3) 从开发图形并允许用户试用它们开始,然后根据用户的反馈信息来修改图形。 • 4) 一旦用户对最初的图形设计感到满意,就可以开发用户需要用来构建绘图的所有助理程序或附件,并且,如果需要,还可以调整这些图形,以使它们能够更顺利地工作。 • 5) 最后,如果解决方案的图形和附件需要与数据库或其他应用程序进行交互,那么需要在开发过程的早期准确地确定如何来实现这一点,以便可以相应地设计图形和附件。 • (2) 计划图形和样板 • 可以通过构建所需要的图形,然后用公式实现尽可能多的图形功能,来开始开发解决方案。之所以从图形开始主要有两个重要原因: • 1) 图形可以是智能的——可以使用Visio图形本身固有的能力来处理多种必须通过编码才能实现的图形功能。 • 2) 图形独立于控制它们的代码。一旦开发出解决方案将要使用的主图形,就可以更改这些图形,而不必重新编译代码,反之亦然。 • 如果图形行为是可预测的,并且可以使用公式来实现 (例如,自动调整大小或缩放) ,那么可以使用ShapeSheet为图形设置它的行为。如果行为是在运行时动态变化的,例如,图形中的文本或绘图中的图形的排列方式都可能是变化的,那么可以在程序 (如文档的VBA代码、ActiveX控件、Visio附件,或者COM加载项) 中处理这种行为。通过设置图形公式,可以更准确地控制图形的外观和行为。如果可以创建一个主图形的样板来完成解决方案,那么用户可能就不再需要使用Visio绘图工具绘制些什么。 • 当为程序构建主图形时,可以通过手工创建各种希望程序自动执行的绘图,在Visio实例中测试这些主图形。这将会对需要编写的代码及需要提供的数据很有帮助。 • (3) 计划模板 • 模板为用户提供了一个共用的工作区。通过使用户简单地从一些图形组中进行选择来创建标准化的绘图。 • 模板可以包括一些样式,并且可以使用统一的网格和度量系统来设置绘图页面。模板可以设置其中已经包含图形的绘图页面,并且可以打开一个或多个样板,以使用户可以添加更多的图形。模板还可以通过包括ActiveX控件 (如命令按钮和文本框等) 、执行特定任务的自定义控件,以及允许用户通过控件与绘图进行交互的VBA代码,来为绘图提供它们自己的用户界面。 • (4) 自动实现图形和模板 • 当完成解决方案的主图形和模板的开发之后,就可以使用Automation来实现解决方案的其他内容。具体内容取决于解决方案要达到的目的,以及它所需要的运行环境。但是,通常可以使用Automation进行下面的操作: • 1) 实现解决方案的用户界面。大多数独立的程序都需要一个对话框或向导页面,来向用户提供操作建议,并提示程序执行所需要的信息。 • 2) 存储和检索数据。图形可以具有自定义属性——通过配置这些属性来提示用户输入数据或图形属性,例如,当将一个主图形拖放到绘图页面中时。但是,为了保护数据类型及防止数据被无意中更改,可能希望解决方案将数据存储在一个外部数据库中,然后从这个外部数据库中检索数据。 • 3)设置图形及其属性,或者连接图形。图形可以有一些公式,当程序移动或调整这些公式——就好像在Visio绘图窗口中使用鼠标移动或调整图形本身一样,它们将会相应地做些调整。如果发现自己编写了大量操纵图形的复杂代码,那么回过头来,仔细地考虑一下,这些功能是否可以通过图形公式来处理。 • (5) 集成Visio解决方案和数据库 • 集成Visio解决方案和数据库需要进行一些计划,以将绘图与数据库保持同步。决定将要使用哪个数据库、将要更改哪些内容、如何更改,以及什么时候进行更改,是很重要的。 • (6) 实现Automation的不同方法 • 所编写的程序类型取决于打算做些什么。可以在Visio文档或其他Automation控制器应用程序中编写VBA宏,也可以用Visual Basic或C/C++ 编写独立的程序。可以为COM加载项编写动态链接库 (DLL) ,也可以编写另一种与Visio一起运行的特殊类型的DLL——称为“Visio库” (VSL) 。用户可以从Windows桌面或Windows资源管理器运行程序,也可以在Visio中通过选择添加到Visio菜单中的命令、选择添加到Visio工具栏中的按钮,甚至通过双击或右击绘图中的图形,来运行自己的程序。或者,还可以设计程序,使它能够在发生某个事件 (如打开文档或创建文档) 时自动运行。 • 在Visio解决方案中实现Automation有4种基本的方法。可以实现下面这些内容: • 1) 独立的可执行 (EXE) 文件。这些文件通常使用Visual Basic或C++ 编写,但是,它们也可以使用任意一种支持创建ActiveX Automation客户的语言来编写。 • 2) Visio库。它是具有规定Visio入口点和 .vsl 文件扩展名的标准的Windows DLL。VSL的速度比EXE文件的速度快许多,但是它必须使用C++来编写。 • 3) VBA宏。VBA被包括在Visio产品中,它可以用来编写宏、创建对话框,或者创建类模块。其他VBA客户 (如Word和Excel) 也可以用来控制Visio。 • 4) COM加载项。它是专门被注册由Visio或其他Office应用程序加载的标准的Windows DLL。可以在Microsoft Office Developer中使用任意的Office应用程序来构建COM加载项,也可以在Visio中使用VBA来构建COM加载项。另外,还可以使用Visual Basic或C++来创建COM加载项。像VSL和VBA宏一样,COM加载项是在与Visio实例相同的进程中执行的,并且也很容易编写。 • 5) 在Visio实例中使用VBA来加载和执行用其他语言创建的Automation服务器 (DLL或EXE文件) 的混合方法。 • 如果Automation服务器是被作为DLL创建的,并且支持广泛的结构范围,那么这种混合方法将支持进程内执行。但是,这种混合方法一般需要进行更谨慎的系统设计。
实验目的 • 了解开发Visio解决方案的基本概念 • 学习应用Visio工具绘制UML模型图、网络图、机架图和网站图等图形,熟练Visio绘图操作