1、第10章 软件项目开发辅助工具10.1 版本控制管理工具版本控制管理工具Visual SourceSafe10.2 系统建模工具系统建模工具PowerDesigner【本章提要本章提要】本章通过校园在线超市系统的具体实现,详细阐述版本控制管理工具Visual Source Safe 在软件项目管理中的重要性及其配置过程;分析了系统数据库设计工具PowerDesigner的使用方法,阐述了数据库概念设计的实现过程,介绍了概念模型到物理模型的转换以及数据库正向工程和逆向工程的操作过程。【学习目标学习目标】掌握版本控制管理工具VSS在软件项目管理中的配置过程。掌握使用PowerDesigner工具进
2、行数据库分析与设计的基本方法。10.1.1 Visual SourceSafe简介简介版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失,允许反追踪到早期版本,并能对版本进行分支、合并和管理。在软件开发过程中,需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。10.1 版本控制管理工具版本控制管理工具Visual SourceSafeVisual SourceSafe(VSS)是一种源代码控制系统,它提供了完善的版本和配置管理功能以及安全保护和跟踪检查功能。VSS通过将有关项目文档(包括文本文件、图像文件、二进制文件、声音文件、视屏文件)存入数据库以进行项目开发
3、管理工作。用户可以根据需要随时快速有效地共享文件。文件一旦被添加进VSS,则它的每次改动就会被记录下来,用户可以恢复文件的早期版本,项目组的其他成员也可以看到有关文档的最新版本,并对它们进行修改。用VSS来组织管理项目,使得项目组间的沟通与合作更简易和直观。VSS可以同 Visual Basic、Visual C+、Visual J+、Visual InterDev、Visual FoxPro 开发环境以及 Microsoft Office 应用程序集成在一起,提供了方便易用、面向项目的版本控制功能。VSS 可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型。在提倡文件再使用的今天
4、,用户可以同时在文件和项目级进行工作。VSS面向项目的特性能更有效地管理工作组应用程序开发工作中的日常任务。1VSS中的文件中的文件VSS能够保存文档的所有改动,并显示最新版本,同时早期版本也会被跟踪记录下来。当开发小组成员需要修改某个文档时,先从数据库中将它签出(check out),或者告诉VSS要编辑该文档。VSS会将该文档的副本从数据库中放到指定的工作文件夹(working folder)中,供编辑修改。如果其他用户再想对同一文档进行修改,VSS会产生一个信息,指示该文档已被签出(check out),从而避免多人同时修改文档,以保证文档的安全性。修改完成之后,需要将文档签入(chec
5、k in)VSS。这个操作将从指定的工作文件夹(working folder)中复制被修改的文档,并将它放回VSS数据库,以便开发小组其他成员能够及时看到文档的改动。如果没有修改文档,可以执行撤消签出(undo check out)命令,文档将被保存为被签出(check out)之前的状态。如果只需读取某一文档而并不需要编辑它,可以执行取出(get)命令,将文档放入工作文件夹,再选择查看文档(view),以获取文档的最新版本。2VSS中的项目中的项目项目(project)是指用户存储在VSS数据库中的所有文件(file)的集合。用户可以在项目之间或项目内部实现文件的添加(add)、删除(del
6、ete)、编辑(edit)和共享(share)。一个“项目”类似一个普通系统的文件夹,不同的是它能更好地支持文件合并(merge)、跟踪(archive)和版本控制(version control)功能。文件保存在VSS数据库中的项目里,无需管理存储在VSS 中的文件正本,除非需要检查或与其他拷贝进行比较。VSS为每一位开发成员提供了一份备份文件放入工作文件夹(working folder),供用户对文件进行查看与编辑。即使没有工作文件夹,也可以查看文件,但如想真正实现对文档的处理,必须建立工作文件夹。3VSS的版本控制功能的版本控制功能VSS能够保存文件的多个版本,包括文件版本之间每一处微小
7、的变动。版本控制有以下几方面的内容:组内合作。在缺省的情况下,一般一个文件在某一时间只允许一个用户对其进行修改,这样可以防止文件意外地被其他用户改动或者覆盖。但管理员可以改动这种缺省的设置,允许文件多层签出。这种设置也能防止过多的、不必要的改动。版本追踪。VSS能够对源代码和其他文件进行存储和早期版本的追踪,从而实现重建文件早期版本等有关功能。跨平台开发。在多平台开发的情况下,版本追踪用于维护核心代码。代码的重用。追踪程序基准使得代码可重用。4文件的拆分和共享文件的拆分和共享在VSS中,可以实现一个文件被多个项目共享(share)。在一个项目中对文件的改动可以自动反映到其他共享的项目中去,这正
8、体现了代码重用。在VSS界面的file菜单中的properties中,点击link,可以查看某一文件的共享情况。拆分(branch)是将文件从原来共享的项目中分离出来的过程,它使得VSS可以实现从不同的路径追踪文件。在其他版本控制系统中,分支是通过跟踪版本号来实现的。例如,版本“2.3.9.2”是版本2.3的第二个修订版本的第九个分支。VSS通过明显不同的项目名称实现对文件分支的跟踪。拆分文件就断开了共享连接,使得项目中的文件与其他原来共享的项目无关,对此文件的修改将不会再反映到其他项目上。拆分是这样被建立的:两个文件以前有着共同的历史记录,从实现拆分开始,它们的历史记录将被VSS分别追踪。拆
9、分文件之后,link按钮将不再显示已断开的连接,但可以用path(file菜单中的properties项)按钮浏览拆分的历史记录。共享(share)文件就是在多个项目间建立文件的连接。拆分(branch)文件就是在项目之间建立了不同的文件路径。5工作文件夹工作文件夹(working folder)VSS是存储和管理文件的工具,但是编辑和编译文件必须在VSS指定文件夹中进行。这个文件夹叫工作文件夹,它可以是现存的文件夹,也可以是VSS新建的文件夹。VSS浏览器在文件列表上方显示了文件的工作文件夹的路径。在VSS系统中,工作文件夹才是真正用于处理文档的地方。当编辑或修改某个文档时,必须对文档实施c
10、heck out操作,VSS将该文档从项目中拷贝出来,放入工作文件夹。当修改完毕并check in文件之后,VSS又将文件重新拷贝到数据库中以记录修改。一旦文件签出,VSS就开始在本地机上创建并管理工作文件夹。每一个用户、每一个项目或每一台微机都可以有自己的工作文件夹。10.1.2 Visual SourceSafe的配置过程的配置过程本小节使用Visual SourceSafe 2005,以校园在线超市系统为例,搭建组内合作开发的平台。1.建立数据库建立数据库打开Visual SourceSafe 2005,如果是第一次执行,程序会提示设定 Admin账号的密码,若此时不设定,以后也可以在U
11、sersChange Password里面变更 Admin账号的密码。进入VSS之后,先点选FileNew Database,使用“数据库创建向导”建立数据库。建立数据库时会同时建立一个预设的管理员账户“Admin”,此账户无法删除。点击“下一步”按钮,在“New Database Location”界面的“Location”中给定数据库的位置为“D:VSS_DB”,如图10-1所示。图10-1 确定数据库位置图10-2 数据库创建完成界面2建立使用者账户建立使用者账户数据库建好后,必须先开启数据库,然后就可以为这个数据库建立使用者账户,以便日后为各个使用者赋予适当的档案存取权限。这些使用者就
12、是开发小组的成员。要开启数据库,请点选FileOpen SourceSafe Database或者按 Ctrl+O,然后选择上一个步骤建立的数据库。数据库开启后,点选UsersAdd User或按 Ctrl+A新增一名使用者,用户名为zhangsan,密码为zhangsan,如图10-3所示。图10-3 新增使用者图10-4 使用者列表3设定其他选项设定其他选项在 VSS Admin中选择ToolsOptions即可开启选项设定窗口,其中有些设定在客户端VSS Explorer里面也有,而这里的设定是全域的。也就是说,如果客户端没有修改自己的设定,就会取用这里的设定。设定General选项卡中
13、的“Use network name for automatic user log in”为true,如图10-5所示。图10-5 设定General选项卡图10-6 设定Project Rights选项卡4设定共享目录设定共享目录设定共享目录就是至少要把服务器端的两个目录分享出来给其他网络使用者存取:即分享VSS的应用程序目录,以便客户端可以在网络上直接执行其中的Setup.exe,进行安装;分享数据库所在的目录,即D:VSS_DB。5创建项目创建项目执行Microsoft Visual SourceSafe,第一次执行时会出现登录窗口,选择要登录的数据库路径,点击“Open”即可登录数据库
14、,如图10-7所示。图10-7 Microsoft Visual SourceSafe的登录界面图10-7左边是以树状显示的项目面板,“$/”是VSS的root project,所有的项目都建立在此节点之下;右边会显示目前的项目的目录文件清单;下方状态栏中则显示提示信息、目前登录的使用者名称、档案的排序方式以及档案数量。在“F:SuperMarketWebSite”路径下打开校园在线超市系统的解决方案文件,选择“文件源代码管理将解决方案添加到源代码管理”,输入用户名和密码后出现向VSS添加项目的界面,如图10-8所示。图10-8 向VSS添加项目的界面设置Name为空,设置Location为“
15、$/”,点击“OK”按钮之后会在指定数据库中添加该项目的文件。刷新VSS中的项目,可看到文件列表,如图10-9所示。图10-9 添加项目后的文件列表6客户端创建项目客户端创建项目执行VSS,点击“Add”按钮,选择要登录的数据库配置文件的网络路径,在“Database Selection”界面,选择“Connect to an existing database”选项,如图10-10所示。单击“下一步”按钮,在“Share Location”界面选择要登录的数据库配置文件的网络路径,单击“Browse”按钮,根据网络路径选择配置文件“srcsafe.ini”,如图10-11所示。单击“打开”按
16、钮后,“Share Location”界面的“Location”后的文本框出现选择的数据库路径,如图10-12所示。图10-10 选择已存在的数据库图10-11 选择配置文件图10-12 “Share Location”界面其他选项采用默认设置。点击完成之后,在“Open SourceSafe Database”中会出现一个新的列表,选中它,并设置“Username”为“zhangsan”,点击“Open”按钮。设置“SourceSafe password”为“zhangsan”,选择“OK”按钮后进入“Visual SourceSafe Explorer”界面,并列出了服务器上的项目文件,如
17、图10-13所示。图10-13 “Visual SourceSafe Explorer”界面选择图10-13左边列表的项目文件名“SuperMarketWebSite”,右键选择“Get Latest Version”,在“Get SuperMarketWebSite”界面进行如图10-14所示的设置,并单击“OK”按钮。此时,客户端下载了服务器上最新版本的项目文件,并可以使用添加的使用者账号打开解决方案,就可以进行编辑了。图10-14 “Visual SourceSafe Explorer”界面10.2.1 PowerDesigner简介简介PowerDesigner是Sybase公司的CA
18、SE工具集,使用它可以方便地对管理信息系统进行分析设计。它几乎函盖了数据库模型设计的全过程。PowerDesigner是Sybase发布的最新的软件分析设计工具,是目前最为流行的软件分析设计工具之一。10.2 系统建模工具系统建模工具PowerDesigner利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可以为数据仓库制作结构模型,也能对团队设计模型进行控制。PowerDesigner系列产品提供了一个完整的建模解决方案,业务或系统分析人员、设计人员、数据库管理员DBA和开发人员可以对其裁剪,以满足他们特定的需要;其模块化
19、的结构为购买和扩展提供了极大的灵活性,从而使开发单位可以根据其项目的规模和范围来使用他们所需要的工具。PowerDesigner灵活的分析和设计特性允许使用一种结构化的方法有效地创建数据库或数据仓库,而不要求严格遵循一种特定的方法学。PowerDesigner提供了直观的符号表示,使数据库的创建更加容易,并使项目组内的交流和通信标准化,同时能更加简单地向非技术人员展示数据库和应用的设计。PowerDesigner不仅加速了开发的过程,也向最终用户提供了管理和访问项目信息的一个有效的结构。它不仅允许设计人员创建和管理数据的结构,而且还可以开发和利用数据的结构,以对领先的开发工具环境快速地生成应用
20、对象和数据敏感的组件。开发人员可以使用同样的物理数据模型查看数据库的结构、整理文档以及生成应用对象和在开发过程中使用的组件。应用对象的生成有助于在整个开发生命周期提供更多的控制和更高的生产率。1.PowerDesigner的组成的组成PowerDesigner是一个功能强大而使用简单的工具集,它提供了一个复杂的交互环境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的生成。PowerDesigner产生的模型和应用可以不断地增长,适应并随着组织的变化而变化。PowerDesigner包含六个紧密集成的模块,允许个人和开发组的成员以合算的方式最好地满足他们的需要。这六个模块是:DataA
21、rchitect:是一个强大的数据库设计工具,使用DataArchitect可利用实体-关系图为一个信息系统创建“概念数据模型”,并且可根据CDM产生基于某一特定数据库管理系统的“物理数据模型”,还可优化PDM,产生为特定DBMS创建数据库的SQL语句,可以以文件形式存储之,以便在其他时刻运行这些以SQL语句创建的数据库。另外,DataArchitect还可根据已存在的数据库反向生成PDM、CDM及创建数据库的SQL脚本。ProcessAnalyst:用于创建功能模型和数据流图,创建“处理层次关系”。AppModeler:为客户/服务器应用程序创建应用模型。ODBC Administrator
22、:用来管理系统的各种数据源。WarehouseArchitect:用于数据库的设计和实现。Viewer:用于以只读的、图形化方式访问整个企业的模型信息。2PowerDesigner 的模型文件的模型文件(1)概念数据模型(CDM)CDM(Conceptual Data Model)表现数据库的全部逻辑的结构,与任何的软件或数据存储结构无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对象。它给运行计划或业务活动的数据一个正式表现方式。(2)物理数据模型(PDM)PDM(Physical Data Model)叙述数据库的物理实现,藉由 PDM考虑真实的物理实现的细节,选用合适的数据表现或
23、物理约束。(3)面向对象模型(OOM)一个OOM(Physical Data Model)包含一系列包、类、接口和它们的关系。这些对象一起形成所有的(或部分)一个软件系统的逻辑的设计视图的类结构。一个OOM本质上是软件系统的一个静态的概念模型。(4)业务程序模型(BPM)BPM(Bussiness Program Model)描述业务的各种不同内在任务和内在流程以及客户如何以这些任务和流程互相影响。BPM是从业务合伙人的观点来看业务逻辑和规则的概念模型,它使用一个图表描述程序、流程、信息和合作协议之间的交互作用。CDM、PDM和OOM之间的关系如图10-15所示。图10-15 CDM、PDM和
24、OOM之间的关系图10.2.2 在在PowerDesigner中创建中创建CDM模型模型这里采用PowerDesigner12作为设计工具,以校园在线超市项目为例,利用PowerDesigner工具创建系统概念数据模型,并转换为相应的PDM模型和OOM模型,最终生成对应的数据库。1创建工作空间创建工作空间右击工作空间WorkSpace,点击弹出菜单项“New”,选择“Folder”选项,创建名为SuperMarketData的文件夹,如图10-16所示。图10-16 PowerDesigner新建项目文件夹2创建概念数据模型创建概念数据模型右击SuperMarketData文件夹,新建CDM模
25、型,弹出如图10-17所示的对话框,并将概念模型命名为SuperMarketCDM,如图10-18所示。图10-17 创建CDM模型对话框图10-18 CDM模型设计界面3创建概念模型实体对象创建概念模型实体对象根据对校园在线超市系统分析,抽象出的实体有会员类别、会员信息、管理员、商品、商品类别、商品评价、订单、购物车等。下面以商品实体为例,介绍实体的创建过程。右击SuperMarketCDM概述模型,选择新建实体,打开如图10-19所示的界面,并设置概念模型中实体显示名称(Name)为“商品(T_Ware)”,对应的实体代码(Code)名称为“T_Ware”,注释(Comment)等相关信息
26、。图10-19 创建实体对象设置界面图10-20 实体属性设置4创建实体间的关系创建实体间的关系根据系统需求确定实体间的关系,并通过选择工具面板上的“RelationShip”,在商品实体中点击具体商品,不松开鼠标将其拖放至商品类别实体中,就完成了商品类别和商品实体间的关系。双击两实体间的关系,将弹出如图10-21所示的关系属性设置框。图10-21 实体与实体关系设置5完善完善根据校园在线超市的需求分析,为各实体创建相应的关系,完成校园在线超市系统的概要设计,如图10-22所示。图10-22 校园在线超市CDM图10.2.3 将将CDM对象转换成对象转换成PDM对象对象当系统的概念模型建立后,
27、就可以将其映射到对应的物理模型了。选择菜单项“Tools-Generate Physical Data Model”,弹出PDM生成选项对话框,如图10-23所示。选中“Share the DBMS definition”,并为其命名为“SuperMarketPDM”。点击“Detail”选项卡,有“Check Model”、“Save Generation Dependencies”等选项。如果选择了Check Model,模型将会在生成之前被检查。选项Save Generation Dependencies选项决定PowerDesigner是否为每个模型的对象保存对象识别标签,这个选项主要
28、用于合并由相同CDM生成的两个PDM。图10-23 生成PDM模型对话框点击Selection选项卡,列出所有的CDM中的对象,默认情况下,所有对象将会被选中。单击“确定”按钮,生成如图10-24所示PDM图。图10-24 校园在线超市的PDM图10.2.4 数据库正向工程和逆向工程数据库正向工程和逆向工程1数据库正向工程数据库正向工程当物理模型设计完成后,接下来就是将设计模型生成到数据库中,建立应用系统的数据库。直接从PDM产生一个数据库,或产生一个能在数据库管理系统环境中运行的数据库脚本,称为数据库正向工程。选择菜单项“Database-Generate Database”,弹出PDM生成
29、选项对话框,如图10-25所示。图10-25 生成数据库属性设置选择“Generation Type”类型,如果为“Script generation”,则采用脚本的方式生成数据库;如果类型选择为“Direct generation”,则将指定ODBC方式,可以直接连接到数据库,从而直接产生数据库表以及其他数据库对象。2数据库逆向工程数据库逆向工程逆向工程是指用已存在的数据库生成新的PDM模型。其数据来源可能是脚本文件或与一个开放数据库连接的数据来源。选择菜单项“Database-Reverse Engineer Database”,弹出逆向工程对话框,如图10-26所示。图10-26 逆向工程生成PDM模型选中“Using script files”,逆向工程将从指定的脚本程序生成对应的PDM对象。选中“Using a data source”,则将指定的ODBC生成对应的PDM对象。