【教学导航】知识技能目标(1)了解用户登录模块业务需求建模的方法(2)掌握“用户信息”数据表的设计与创建方法(3)掌握应用程序解决方案中创建多个项目的方法(4)掌握数据库操作类的分析设计方法(5)掌握“用户登录”业务处理类的分析设计方法(6)掌握“用户登录”窗体的界面设计与功能实现方法(7)掌握“用户登录”模块的测试方法本章重点(1)应用程序解决方案中创建多个项目(2)数据库操作类的分析设计(3)“用户登录”业务处理类的分析设计教学方法项目教学法、分组讨论法、理论实践一体化、讲练结合课时建议6课时(含课堂同步实践)【任务描述】1.任务卡任务卡如表2-1所示。表2-1任务卡模块编号002-1模块名称用户登录模块计划工时4所属系统名称图书管理系统窗体名称usersLogin业务处理层的类名称loginClass数据表名称用户信息数据操作层的类名称bookDbClass模块主要功能简述(1)系统运行时,首先显示【用户登录】窗口,用户在该窗口中输入“用户名”和“密码”(2)系统验证用户所输入的用户名和密码是否合法,如果合法则显示“登录成功”的提示信息。如果所输入的用户名或密码有误则显示“登录失败”的原因(3)用户也可以终止登录主要接口与属性简述(1)窗体级公有变量:userName用于存储用户名,userPassword用于存储用户密码,userPurview用于存储用户类型(2)方法getUserInfo:从“用户信息”数据表中获取用户的信息,判断用户所输入的用户名和密码是否正确【任务完成示范】【用户登录】业务需求建模2.1建立数据库和数据表2.2设计【用户登录模块】多层架构2.3创建类2.4设计【用户登录】应用程序界面2.5编写【用户登录】窗体程序代码2.6测试【用户登录】程序2.72.1【用户登录】业务需求建模1.绘制“用户登录”模块的用例图2.绘制“数据库操作类”的类图3.绘制“用户登录类”的类图4.绘制“用户登录界面类”的类图5.绘制“用户登录”的顺序图6.绘制“用户登录”的活动图2.2建立数据库和数据表首先打开SQLServer2000或者SQLServer2005企业管理器新建一个数据库,将其命名为“bookData”。这样就创建了系统所需的数据库。然后在该数据库中创建一个“用户信息”数据表。2.3设计【用户登录模块】多层架构“用户登录”模块采用多层架构设计,其逻辑结构如图2-7所示。图2-7“用户登录”模块的多层架构1.创建应用程序解决方案(1)启动MicrosoftVisualStudio.NET2003,显示系统开发环境。(2)新建一个空白解决方案。·2.创建数据库访问类库在【解决方案资源管理器】中用鼠标右键单击【解决方案“bookMis”(0个项目)】,在弹出的快捷菜单中单击菜单项【添加】→【新建项目】,如图2-9所示。图2-9解决方案对应的快捷菜单在【添加新项目】对话框中,左侧的项目类型选择【VisualBasic项目】,右侧的模板选择【类库】,在名称文本框中输入“bookDB”,如图2-10所示。图2-10添加新类库的对话框单击【确定】按钮,就完成了数据库访问类库的创建。3.创建业务处理类库按照创建数据库访问类库的操作方法,创建一个业务处理类库,将其命名为“bookAPP”。4.创建应用程序项目在【解决方案资源管理器】中用鼠标右键单击【解决方案“bookMis”(2个项目)】,在弹出的快捷菜单中单击菜单项【添加】→【新建项目】,弹出【添加新项目】对话框。在该对话框中,左侧的项目类型选择【VisualBasic项目】,右侧的模板选择【Windows应用程序】,在名称文本框中输入“bookUI”,如图2-11所示。图2-11添加Windows应用程序的对话框单击【确定】按钮,就完成了应用程序项目的创建。2.4创建类2.4.1创建数据库操作类1.数据库操作类(bookDbClass)各个成员的功能说明根据数据库操作类的模型创建数据库操作类(bookDbClass),数据库操作类(bookDbClass)各个成员的功能如表2-5所示。表2-5bookDbClass各个成员的功能成员名称成员类型功能说明connSql变量数据库连接对象checkSqlconnection方法测试数据库连接是否成功。该方法有两个重载形式,第一种形式包含4个参数,用于SQLServer使用登录ID和密码进行身份验证的情形;第二种形式包含2个参数,用于SQLServer使用Windows信任安全连接方式进行身份验证的情形openConnection方法创建数据库连接对象,打开数据库连接成员名称成员类型功能说明closeConnection方法关闭数据库连接createDataTableByKey方法根据传入的字段名、数据表名、检索条件等参数生成相应的数据表。该方法有4个参数,前三个参数分别是字段名列表、检索的数据表和检索条件,最后一个是生成数据表的名称,其中后两个参数是可选参数,默认条件下检索条件为空,返回的数据表名为dataTable0。此方法返回值是一个数据表,将检索的结果以数据表的形式返回createDataTableBySql方法根据传入的SQL语句生成相应的数据表,该方法有两个参数,一个是用于检索的SQL语句,另一个是生成数据表的名称,其中第二个参数是可选参数,该方法返回值是一个数据表2.添加类在【解决方案资源管理器】中用鼠标右键单击类库【bookDB】,在弹出的快捷菜单中单击菜单命令【添加】→【添加新项】,打开【添加新项】对话框,右侧的模板选择【类】,在名称文本框中输入类的名称“bookDbClass.vb”,如图2-13所示。图2-13【添加新项】对话框单击【打开】按钮,这样便新建一个类,并自动打开类代码编辑器。3.数据库操作类(bookDbClass)各个成员的代码编写双击类文件“bookDbClass.vb”,打开代码编辑器窗口,在该窗口中编写程序代码。(1)引入命名空间。(2)声明数据库连接对象。(3)编写方法openConnection的程序代码(4)编写方法createDataTableBySql的程序代码。(5)编写方法createDataTableByKey的程序代码。(6)编写方法checkSqlconnection的程序代码。2.4.2创建业务处理类1.业务处理类(loginClass)各个成员的功能说明根据业务处理类的模型创建业务处理类(loginClass),业务处理类(loginClass)各个成员的功能如表2-12所示。表2-12loginClass类各个成员的功能成员名称成员类型功能说明bookDbObj变量bookDB类库中bookDbClass类的对象getUserInfo方法根据检索条件获取相应的用户数据。该方法有两种重载形式,第一种形式包含2个参数,用于获取指定“用户名”和“密码”的用户数据;第二种形式包含1个参数,用于获取指定“用户名”的用户数据2.添加引用在业务处理类loginClass中使用bookDB类库bookDbClass类中所定义的方法,必须将类库bookDB添加到类库bookAPP的引用中。3.添加类参照2.4.1小节中的方法,在bookAPP类库中添加一个类“loginClass.vb”。4.业务处理类(loginClass)各个成员的代码编写双击类文件“loginClass.vb”,打开代码编辑器窗口,在该窗口中编写程序代码。2.5设计【用户登录】应用程序界面1.添加Windows窗体在【解决方案资源管理器】中用鼠标右键单击项目【bookUI】,在弹出的快捷菜单中单击菜单命令【添加】→【添加Windows窗体】,打开【添加新项】对话框,右侧的模板选择【Windows窗体】,在名称文本框中输入窗体的名称“usersLogin.vb”,如图2-15所示。图2-15添加Windows窗体的对话框单击【打开】按钮,这样便新建了一个Windows窗体,并自动打开窗体设计器。2.设计窗体外观在窗体中添加1个GroupBox控件、1个PictureBox控件、2个Label控件、2个TextBox控件和2个Button控件,调整各个控件的大小与位置,窗体的外观如图2-16所示。图2-16【用户登录】窗体的外观设计3.设置窗体与控件的属性【用户登录】窗体及控件的主要属性设置如表2-15所示。2.6编写【用户登录】窗体程序代码1.添加引用在用户登录应用程序中需要使用bookAPP类库loginClass类中所定义的方法,必须将类库bookAPP添加到类库bookUI的引用中。参照2.4.2小节的方法将类库bookAPP添加到类库bookUI的引用中。2.声明窗体级变量声明bookAPP类库中loginClass类的对象loginObj,声明3个窗体级全局变量,分别存储当前登录用户的“用户名”、“密码”和“用户类型”,另外声明1个窗体级全局变量,用于标识用户是否登录成功。3.编写【确定】按钮Click事件过程的程序代码4.编写【取消】按钮Click事件过程的程序代码【取消】按钮Click事件过程的程序代码如表2-19所示。2.7测试【用户登录】程序2.7.1设置启动项目和启动对象1.设置解决方案的启动项目在【解决方案资源管理器】中用鼠标右键单击【解决方案“bookMis”】,在弹出的快捷菜单中单击菜单命令【设置启动项目】,打开【解决方案“bookMis”属性页】,单击单选按钮【单启动项目】,在启动项目列表中选择项目“bookUI”,如图2-17所示。图2-17设置解决方案“bookMis”的启动项目然后单击【确定】按钮,这样就设置项目“bookUI”为启动项目,在【解决方案资源管理器】中启动项目名称显示为粗体。2.设置启动对象解决方案的启动项目设置完成后,接下来设置启动项目中的启动对象。在【解决方案资源管理器】中用鼠标右键单击项目【bookUI】,在弹出的快捷菜单中单击菜单命令【属性】,打开【bookUI属性页】,在“启动对象”列表中选择“usersLogin”,如图2-18所示,单击【确定】按钮即可。图2-18设置项目中的启动对象2.7.2用户界面测试(1)测试内容:用户界面的视觉效果和易用性;控件状态、位置及内容确认;光标移动顺序。(2)确认方法:屏幕拷贝、目测。(3)测试结论:合格。2.7.3功能测试1.准备测试用例准备的测试用例如表2-20所示。表2-20用户登录模块的测试用例序号测试数据预期结果用户名密码1adminadmin显示“合法用户,登录成功”的提示信息2(空)(不限)显示“用户名不能为空,请输入用户名”的提示信息3adminX(不限)显示“用户名有误,请重新输入用户名”的提示信息4admin123显示“密码有误,请重新输入密码”的提示信息2.测试输入正确的用户名和密码时,【确定】按钮的动作(1)测试内容:输入的用户名和密码都正确时,单击【确定】按钮时,能显示“合法用户,登录成功”的提示信息。(2)确认方法:屏幕拷贝、目测。(3)测试过程。(4)测试结论:合格。3.测试“用户名”为空时,【确定】按钮的动作(1)测试内容:“用户名”为空时,单击【确定】按钮,会出现提示信息。(2)确认方法:屏幕拷贝、目测。(3)测试过程。如图2-22所示,光标停在“用户名”文本框中,但没有输入“用户名”,此时单击【确定】按钮,出现如图2-23所示的提示信息。图2-22测试【用户登录】窗口中用户名为空的情况图2-23“用户名不能为空”的提示信息(4)测试结论:合格。4.测试“用户名”有误时,【确定】按钮的动作(1)测试内容:在“用户名”文本框中输入“adminX”,单击【确定】按钮,会出现提示信息。(2)确认方法:屏幕拷贝、目测。(3)测试过程。如图2-24所示,在“用户名”文本框中输入“adminX”,从表2-4所示可以看出,目前“用户信息”数据表中不存在“adminX”的用户名,也就是所输入的“用户名”有误,此时,单击【确定】按钮,会出现如图2-25所示的提示信息。图2-24