《UML软件模型的实现讲解(共10页).doc》由会员分享,可在线阅读,更多相关《UML软件模型的实现讲解(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上单元9UML软件模型的实现本单元以“用户登录”模块为例说明如何将UML模型转换为可用的系统,主要包括构建多层架构、创建类、编写类代码、设计程序界面、编写程序代码、模块测试等方面。【教学导航】教学目标(1)理解基于UML的分析设计与系统建模(2)熟练设计UML模型(3)学会建立数据库和数据表(4)学会构建模块级多层架构(5)学会根据类图创建类与编写类代码实现所需的功能(6)学会根据系统界面类图设计程序界面(7)学会根据用例图、类图、顺序图、活动图等UML图编写程序代码(8)学会测试模块教学重点(1)根据类图创建类与编写类代码实现所需的功能(2)根据系统界面类图设计程序界
2、面(3)根据用例图、类图、顺序图、活动图等UML图编写程序代码教学方法任务驱动教学法、分组讨论法、自主学习法、探究式训练法课时建议10课时【前导训练】【任务9-1】设计图书管理系统“用户登录”模块的UML模型【任务描述】绘制用户登录模块的用例图、类图、顺序图和活动图。【任务实施】1绘制“用户登录”模块的用例图“用户登录”模块的用例图如图9-1所示。2绘制“数据库操作类”的类图“数据库操作类”的类图如图9-2所示。3绘制“用户登录类”的类图“用户登录类”的类图如图9-3所示4绘制“用户登录界面类”的类图“用户登录界面类”的类图如图9-4所示。5绘制“用户登录”的顺序图“用户登录”操作的顺序图如图
3、9-5所示。6绘制“用户登录”的活动图“用户登录”的活动图如图9-6所示。【任务9-2】建立图书管理系统“用户登录”模块的数据库和数据表【任务描述】在SQL Server 2005或者SQL Server 2008企业管理器中建立数据库,在该数据库建立“用户信息”数据表。【任务实施】首先打开SQL Server 2005或者SQL Server 2008企业管理器新建一个数据库,将其命名为“bookData”。这样就创建了系统所需的数据库。然后在该数据库中创建一个数据表“用户信息”,该数据表的结构信息如表9-1所示,该数据表的记录示例如表9-2所示。【引例探析】图书管理系统的“用户登录”模块一
4、般采用多层架构设计,其逻辑结构如图9-7所示。图9-7“用户登录”模块的多层架构在这种多层架构设计中,用户界面层只负责处理基本的界面操作,并将操作以调用的方式发给相应的业务处理层。业务处理层再根据业务逻辑进行必要的分析和处理,当需要进行数据处理时调用数据操作层。数据操作层将收到的任务组织成不同的数据操作,与数据库进行交互。然后数据操作层将所获取的数据返回给业务处理层,业务处理层将收到的结果进行处理之后再返回给用户界面层,用户界面层负责将处理结果反馈给用户。这种多层架构设计,不但将常用的业务处理封装为类库的形式,而且将数据操作也进行封装,从而增强了代码的重用性,提高编程效率。启动图书管理系统,首
5、先出现如图9-8所示的【用户登录】窗口。图9-8启动图书管理系统出现【用户登录】窗口然后在图9-8所示的窗体中,分别输入用户名“admin”和密码“admin”,结果如图9-9所示,然后单击【确定】按钮,出现如图9-10所示提示信息,表示用户登录系统成功。图9-9在【用户登录】窗口中输入正确的用户名和密码图9-10登录成功的提示信息【知识疏理】1软件的生存周期软件生命周期(Systems Development Life Cycle,SDLC)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、需求分析、概要设计、详细设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时
6、间分阶段的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。概括地说,软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。2程序设计的基本步骤程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,编写出这种语言下的程序。程序设计的基本步骤如下所示。(1)分析问题(2)设计算法(3)编写程序(4)运行程序,分析结果(5)编
7、写程序文档3程序设计的一般方法目前程序设计的方法主要有面向过程的结构化方法、面向对象的可视化方法。这些方法充分利用现有的软件工具,不但可以减轻开发的工作量,而且还使得系统开发的过程规范、易维护和修改。4软件系统界面设计概述用户界面是软件系统与用户之间的接口,用户通过用户界面与应用程序交互,用户界面是应用程序的一个重要组成部分。用户界面决定了使用应用程序的方便程度,用户界面设计应坚持友好、简便、实用、易于操作的原则。软件系统的程序设计一般包括两部分:一部分是用户界面的设计,另一部分才是业务逻辑的实现。用户界面是软件系统与用户之间的接口,用户通过用户界面与应用程序交互,用户界面是应用程序的一个重要
8、组成部分。用户界面决定了使用应用程序的方便程度,用户界面设计应坚持友好、简便、实用、易于操作的原则。5软件测试概述简单地说,软件测试就是为了发现错误而执行程序的过程。软件测试是一个找错的过程,测试只能找出程序中地错误,而不能证明程序无错。测试要求以较少的用例、时间和人力找出软件中潜在的各种错误和缺陷,以确保软件系统的质量。软件测试的主要工作是验证(verification)和确认(validation),验证是保证软件正确实现特定功能的一系列活动,即保证软件做了所期望的事情,确认是一系列的活动和过程,其目的是证实在一个给定的外部环境中软件的逻辑正确性。【方法指导】1基于UML的面向对象分析设计
9、过程UML是一功能强大的、面向对象的可视化系统分析的建模语言,它采用一整成套成熟的建模技术,广泛地适用于各个应用领域。它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、更完善的系统模型。从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保证分析的正确性。2系统建模的简单流程UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。此外,UML适用于软件系统开发过程中从需求规格描述到系统测试的不同阶段。利用UML建造系统模型时,在系统开发的不同阶段有不同的模型,并且这些模型的目的是不同的。在系统分析阶段,建模的目的是捕获系统的需求,建立“现实世界”的
10、类和协作的模型。在系统设计阶段,建模的目的是在考虑现实环境的情况下,将分析模型扩展为可行的技术方案。在系统实现阶段,模型是那些源代码。在系统部署阶段,模型描述了系统是如何在物理结构中部署的。尽管各个阶段的模型各不相同,但是它们通常都是通过对早期模型的内容进行扩展而建立的。正因为如此,所有的模型都应保存好,这样就可以容易地回顾、重做或扩展初始的分析模型,并且在设计阶段的模型和实现阶段的模型中逐渐引入所做的改变。系统建模的过程就是将任务划分为需求分析阶段、系统分析阶段、系统设计阶段、系统实现阶段、系统部署阶段,几个阶段连续迭代的过程。UML建模的简单流程可以用UML的活动图模拟,如图9-11所示。
11、图9-11UML建模的简单流程【引导训练】【任务9-3】实现图书管理系统“用户登录”模块的软件模型【任务描述】(1)在Visual Studio.NET集成开发环境中创建应用程序解决方案,构建模块级多层架构。(2)创建数据库操作loginDbClass、创建业务处理类loginAppClass,且编写类代码实现其所需的功能。(3)设计用户登录界面。(4)编写程序代码,实现用户登录的功能。(5)测试用户登录模块的界面和功能。【任务实施】1构建图书管理系统模块级多层架构(1)创建应用程序解决方案 启动Microsoft Visual Studio,显示系统开发环境。 新建一个空白解决方案。在【Mi
12、crosoft Visual Studio】起始页中,单击选择菜单项【文件】【新建】【项目】,将弹出【新建项目】对话框。在该对话框中,左侧的项目类型选择“其他项目类型”中的【Visual Studio解决方案】,右侧的模板选择【空白解决方案】,名称文本框中输入“用户登录”,如图9-12所示,然后单击【确定】按钮,就完成了系统解决方案的创建。(2)创建数据库访问类库由于图书管理系统需要频繁访问数据库,将常用的数据库访问和操作以类库形式进行封装,这样,需要进行数据库访问和操作时,只需要调用相应的类就可以了,既提高了开发效率,又可以减少错误。在【解决方案资源管理器】中右键单击【解决方案“用户登录”(
13、0个项目)】,在弹出的快捷菜单中单击菜单项【添加】【新建项目】,如图9-13所示。在打开【添加新项目】对话框中,左侧的项目类型选择【Visual C#】,右侧的模板选择【类库】,在名称文本框中输入“loginDB”,如图9-14所示。然后单击【确定】按钮,就完成了数据库访问类库的创建。(3)创建业务处理类库按照创建数据库访问类库的操作方法,创建一个业务处理类库,将其命名为“loginApp”。(4)创建应用程序项目在【解决方案资源管理器】中右键单击【解决方案“用户登录”(2个项目)】,在弹出的快捷菜单中单击菜单项【添加】【新建项目】,打开【添加新项目】对话框。在该对话框中,左侧的项目类型选择【
14、Visual C#】,右侧的模板选择【Windows应用程序】,在名称文本框中输入“loginUI”,如图9-15所示。然后单击【确定】按钮,就完成了应用程序项目的创建。添加了三个项目的【解决方案资源管理器】如图9-16所示,各个项目中保留了系统自动添加的类文件“Class1.cs”或窗体“Form1.cs”。这样分层创建多个类库或应用程序项目,我们将数据库访问类库、业务处理类库和界面应用程序项目分别放置在不同的文件夹中,而解决方案文件则放在这些文件夹之外,这样有利于文件的管理,便于维护。2创建数据库操作类loginDbClass(1)数据库操作类loginDbClass各个成员的功能说明根据
15、数据库操作类的模型创建数据库操作类loginDbClass,数据库操作类loginDbClass各个成员的功能如表9-3所示。(2)添加类在【解决方案资源管理器】中右键单击类库【loginDB】,在弹出的快捷菜单中单击选择菜单项【添加】【添加新项】,打开【添加新项】对话框,模板选择【类】,在名称文本框中输入类的名称“loginDbClass.cs”,如图9-17所示,然后单击【添加】按钮,这样便新建一个类,并自动打开类代码编辑器。也可以直接将系统自动生成的类“Class1.cs”通过重命名的方法,将类文件名和类名都修改为“loginDbClass.cs”。(3)数据库操作类loginDbCla
16、ss各个成员的代码编写双击类文件“loginDbClass.cs”,打开代码编辑器窗口,在该窗口中编写程序代码。 引入命名空间由于数据库操作类中需要使用多个数据库访问类,所以首先应引入对应的命名空间,代码如下所示。using System.Data;using System.Data.SqlClient; 声明数据库连接对象数据库连接对象conn在类loginDbClass的多个方法中需要使用,所以将其定义为类loginDbClass的成中变量,代码如下所示。SqlConnection conn; 编写方法openConn的程序代码类loginDbClass的方法openConn的程序代码如表
17、9-4所示。 编写方法closeConn的程序代码类loginDbClass的方法closeConn的程序代码如表9-5所示。 编写方法getData的程序代码类loginDbClass的方法getData的程序代码如表9-6所示。3创建业务处理类loginAppClass(1)业务处理类loginAppClass各个成员的功能说明根据业务处理类的模型创建业务处理类loginAppClass,业务处理类loginAppClass各个成员的功能如表9-7所示。(2)添加引用在业务处理类loginAppClass中需要使用loginDB类库的loginDbClass类中所定义的方法,必须将类库lo
18、ginDB添加到类库loginApp的引用中。在【解决方案资源管理器】中,在类库名称“loginApp”位置单击右键,在弹出的快捷菜单中单击选择菜单项【添加引用】,打开【添加引用】对话框,在该对话框中单击选择【项目】选项卡,这时前面所创建的类库已经自动显示在项目列表中。单击选择类库“loginDB”,如图9-18所示。然后单击【确定】按钮即可。这样在loginApp类库中的各个类中就可以直接使用loginDB类库中的资源了。(3)对自动生成的类重命名将loginApp类库中自动生成的类“Class1.cs”重命名为“loginAppClass.cs”。(4)业务处理类loginAppClass
19、各个成员的代码编写双击类文件“loginAppClass.cs”,打开代码编辑器窗口,在该窗口中编写程序代码。 声明类oginDbClass的对象对象loginDBObj在loginAppClass类的多个方法中需要使用,所以将其定义为类loginAppClass的成员变量,代码如下所示。loginDB.loginDbClass loginDbObj =new loginDB.loginDbClass() ; 编写方法getUserInfo的程序代码方法getUserInfo的程序代码如表9-8。4设计【用户登录】程序界面根据模块的界面类设计程序界面,实现界面类的功能。(1)对自动生成的Win
20、dows窗体重命名将自动生成的Windows窗体“Form1.vb”重命名为“frmLogin.cs”。(2)设计【用户登录】窗体外观在窗体中添加1个GroupBox控件、1个PictureBox控件、2个Label控件、2个TextBox控件和2个Button控件,调整各个控件的大小与位置,窗体的外观如图9-19所示。(3)设置窗体与控件的属性【用户登录】窗体及控件的主要属性设置如表9-9所示。5编写用户登录应用程序代码根据模块的用例图、类图、顺序图、活动图编写程序代码,实现模块所需的功能。(1)添加引用在用户登录应用程序中需要使用loginAppClass类中所定义的方法,必须将类库log
21、inApp添加到类库loginUI的引用中。(2)编写【确定】按钮Click事件过程的程序代码【确定】按钮Click事件过程的程序代码如表9-10所示。(3)编写【取消】按钮Click事件过程的程序代码【取消】按钮Click事件过程的程序代码如表9-11所示。6【用户登录】模块测试根据模块的用例图测试模块的功能,根据顺序图、活动图测试模块的工作过程和容错能力。(1)设置启动项目和启动对象 设置解决方案的启动项目由于解决方案用户登录中包括三个项目,必须设置其中一个为启动项目。在【解决方案资源管理器】中右键单击【解决方案用户登录】,在弹出的快捷菜单中单击选择菜单项【设置启动项目】,打开【解决方案“
22、用户登录”属性页】,单击选择单选按钮【单启动项目】,然后在启动项目列表中选择项目“loginUI”,如图9-20所示。然后单击【确定】按钮,这样就设置项目“loginUI”为启动项目,在【解决方案资源管理器】中启动项目名称显示为粗体。也可以在【解决方案资源管理器】中右键单击准备设置为启动项目的项目名称“loginUI”,在弹出的快捷菜单中单击选择菜单项【设为启动项目】即可。 设置启动对象解决方案的启动项目设置完成后,接下来设置启动项目中的启动对象。在【解决方案资源管理器】中右键单击项目【loginUI】,在弹出的快捷菜单中单击选择菜单项【属性】,打开【loginUI 属性页】,在“启动对象”列
23、表框中选择“loginUI.loginProgram”,如图9-21所示。然后关闭项目属性对话框即可。(2)【用户登录】界面测试(1)测试内容:用户界面的视觉效果和易用性;控件状态、位置及内容确认;光标移动顺序。(2)确认方法:屏幕拷贝、目测,如图9-22所示。(3)测试结论:合格(3)【用户登录】模块功能测试功能测试的目的是测试【用户登录】窗体是否实现了要求的功能,同时测试用户登录模块的容错能力。 准备测试用例准备的测试用例如表9-12所示。 测试输入正确的用户名和密码时,【确定】按钮的动作在如图9-23所示的窗体中,分别输入用户名为“admin”,输入密码为“admin”,结果如图9-24
24、所示,然后单击【确定】按钮,出现如图9-21所示提示信息。测试结论:合格。“用户信息”数据表中的确存在用户名为“admin”,密码为“admin”的记录数据,“用户信息”数据表中现有的记录数据如表9-2所示。 测试“用户名”有误时,【确定】按钮的动作如图9-25所示。在“用户名”文本框中输入“adminX”时,从表9-2可以看出,目前“用户信息”数据表中不存在“adminX”的用户名,也就是所输入的“用户名”有误,此时,单击【确定】按钮时会出现如图9-26所示的提示信息。测试结论:合格。 测试“密码”输入错误时,【确定】按钮的动作如图9-27所示,在“用户名”文本框中输入正确的用户名“admi
25、n”,在“密码”文本框中输入错误的密码“123”,然后单击【确定】按钮出现如图9-26所示的提示信息。测试结论:合格。 测试【取消】按钮的有效性在【用户登录】窗口中单击【取消】按钮,出现如图9-28所示的“退出系统提示信息”。测试结论:合格。【同步训练】【任务9-4】设计图书管理系统“修改密码”模块的UML模型,并实现该模型【任务描述】(1)设计“修改密码”模块的用例图、类图、顺序图和活动图。(2)在数据库操作类loginDbClass中定义方法editData(),编写方法的程序代码,实现修改数据表中的密码。(3)在业务处理类loginAppClass中定义方法changePassword(),编写方法的程序代码,实现修改密码的功能。(4)设计修改密码的Windows窗体。(5)编写Windows窗体中各按钮的Click事件过程的程序代码,实现修改密码与退出的功能。(6)对以上各方法和Windows窗体进行测试。【单元小结】本单元介绍了基于UML的系统分析设计方法以及系统建模的方法,以“用户登录”模块为例介绍了设计UML模型、建立数据库和数据表、构建模块级多层架构、创建类与编写类代码、设计程序界面、编写程序代码、模块测试全过程。使读者对软件开发有一个完整的印象。专心-专注-专业
限制150内