1、UML Unified Modeling Language13:052目标目标知识目标知识目标掌握时序图的基本元掌握时序图的基本元素素熟悉绘制时序图的步熟悉绘制时序图的步骤和方法骤和方法能力目标能力目标具有根据项目实际具有根据项目实际情况利用时序图建模情况利用时序图建模的能力的能力素质目标:培养学生动手、解决问题、逻辑分析的能力素质目标:培养学生动手、解决问题、逻辑分析的能力13:053内容内容 时序图案例案例及练习时序图案例案例及练习4.时序图元素时序图元素2.时序图绘制步骤及方法时序图绘制步骤及方法3.时序图概述时序图概述1.13:054p系统或对象的系统或对象的动态模型动态模型主要包括主
2、要包括13:0551 时序图概述时序图概述活动图状态图协作图顺序图顺序图13:0561 时序图概述时序图概述描述了与用例相关的多个对象及其之间的动态描述了与用例相关的多个对象及其之间的动态交互关系,通常用于解释系统用例的实现过程。交互关系,通常用于解释系统用例的实现过程。用例常常被细化为一个或多个时序图。用例常常被细化为一个或多个时序图。主要用来描述对象之间信息交换时的时间顺序。主要用来描述对象之间信息交换时的时间顺序。可以有效地帮助人们观察和理解系统的动态行可以有效地帮助人们观察和理解系统的动态行为。为。13:0571 时序图概述时序图概述 例如:用户登录例如:用户登录p登录登录n(1)用户
3、将用户名和密码提交给)用户将用户名和密码提交给LoginActionn(2)由由LoginAction调用调用UserManagern(3)UserManager到用户数据库到用户数据库User Server中查找用户对中查找用户对 象并返回象并返回n(4)由由UserManager判断用户名是否为空、密码是否正确判断用户名是否为空、密码是否正确n(5)然后将然后将User对象返回对象返回n(6)返回后台登录主界面。)返回后台登录主界面。13:05813:059活动者(活动者(actor)或者)或者 对象(对象(object)生命线(生命线(lifeline)激活激活(activation)/
4、控制焦点(控制焦点(focus of control)消息(消息(message)13:05102 时序图的组成元素时序图的组成元素当执行一个用例行为时,顺序图中的每条消息对应了一个类操作当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。或状态机中引起转换的事件。13:0511p活动者活动者n活动者和对象按照从左到右的顺序排列活动者和对象按照从左到右的顺序排列n一般最多两个活动者,他们分列两端。启动这个用例的活动者一般最多两个活动者,他们分列两端。启动这个用例的活动者往往排在最左边;接收消息的活动者则排在最右端;往往排在最左边;接收消息的活动者则排在最右端;n对
5、象从左到右按照重要性排列或按照消息先后顺序排列。对象从左到右按照重要性排列或按照消息先后顺序排列。13:0512p对象对象n对象的命名方式有三种:对象的命名方式有三种:n包括对象名和类名包括对象名和类名n类名(匿名对象)类名(匿名对象)n对象名(不关心类)对象名(不关心类)13:0513p生命线(生命线(Lifeline):):n每个对象都有自己的生命线,用来表示在每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在,该用例中一个对象在一段时间内的存在,垂直的虚线表示。垂直的虚线表示。n如果对象生命期结束,则用注销符号表示如果对象生命期结束,则用注销符号表示n对象默认的位置在
6、图顶部,表示对象在交对象默认的位置在图顶部,表示对象在交互之前已经存在互之前已经存在n如果是在交互过程中由另外的对象所创建,如果是在交互过程中由另外的对象所创建,则位于图的中间某处。则位于图的中间某处。13:0514p激活激活n当一条消息被传递给对象的时候,它当一条消息被传递给对象的时候,它会触发该对象的某个行为,这时就说会触发该对象的某个行为,这时就说该对象被激活了。该对象被激活了。n在在UML中,激活用一个在生命线上的中,激活用一个在生命线上的细长矩形框表示。细长矩形框表示。n矩形本身被称为对象的激活期或控制矩形本身被称为对象的激活期或控制期,对象就是在激活期顶端被激活的。期,对象就是在激
7、活期顶端被激活的。n激活期说明对象正在执行某个动作。激活期说明对象正在执行某个动作。当动作完成后,伴随着一个消息箭头当动作完成后,伴随着一个消息箭头离开对象的生命线,此时对象的一个离开对象的生命线,此时对象的一个激活期也宣告结束。激活期也宣告结束。13:0515p消息消息p向哪个对象发消息实际上就是调用它的类中的操作,就向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指向的对象所在类的一个是调用箭头指向的对象所在类的一个operation。p顺序图中消息编号可显示,也可不显示。顺序图中消息编号可显示,也可不显示。订单类发消息给客户类调用客户类中订单类发消息给客户类调用客户类中的的“验
8、证客户验证客户”操作操作13:0516p当进行时序图建模时,所用到的消息主要包括以下几种当进行时序图建模时,所用到的消息主要包括以下几种类型:类型:n简单消息(简单消息(Simple Message)n调用消息(调用消息(Call Message)n返回消息(返回消息(Return Message)n异步消息(异步消息(Asynchronous Message)13:051713:0518ObjectAObjectB1:Message3:Message2:Message:ActorObject1Object22:Message3:Message4:Message1:Message5:Messa
9、gep简单消息简单消息n简单消息是在同步和异步之间没有区别的消息。简单消息是在同步和异步之间没有区别的消息。n使用简单消息是因为有时消息是同步还是异步无关紧要,或者使用简单消息是因为有时消息是同步还是异步无关紧要,或者在不知道消息的类型的情况下就需要用到简单消息。在不知道消息的类型的情况下就需要用到简单消息。n在对系统进行时序图建模时,可以对所有的消息都使用简单消在对系统进行时序图建模时,可以对所有的消息都使用简单消息进行表示,然后再根据情况确定消息的类型。息进行表示,然后再根据情况确定消息的类型。13:0519p调用消息调用消息n调用消息最常见的情况是调用,即消息发送者对象在它的一个调用消息
10、最常见的情况是调用,即消息发送者对象在它的一个操作执行时调用接收者对象的一个操作,此时消息名称通常就操作执行时调用接收者对象的一个操作,此时消息名称通常就是被调用的操作名称。是被调用的操作名称。n当消息被处理完后,可以回送一个简单消息,或者是隐含的返当消息被处理完后,可以回送一个简单消息,或者是隐含的返回。回。13:0520p返回消息返回消息p调用消息中的操作完成后,由接收对象返回给发送对象调用消息中的操作完成后,由接收对象返回给发送对象的说明执行结果的回应。一个调用消息通常对应一个返的说明执行结果的回应。一个调用消息通常对应一个返回消息。回消息。13:0521p异步消息异步消息p是一种不需要
11、等待返回消息的特殊调用消息。发送对象是一种不需要等待返回消息的特殊调用消息。发送对象发送消息后可以立刻进行下一步操作,无需一直等待回发送消息后可以立刻进行下一步操作,无需一直等待回复。复。13:0522p 组合组合片段片段p组合片段组合片段 用来解决交互执行的条件及方式。用来解决交互执行的条件及方式。它允许在序它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和的应用区域,为任何生命线的任何部分定义特殊条件和子进程。子进程。13:0523片段类型名称说明Opt选项包含一个可能发生或可能不发生的
12、序列。可以在临界中指定序列发生的条件。Alt抉择包含一个片段列表,这些片段包含备选消息序列。在任何场合下只发生一个序列。可以在每个片段中设置一个临界来指示该片段可以运行的条件。else的临界指示其他任何临界都不为True时应运行的片段。如果所有临界都为False并且没有else,则不执行任何片段。Loop循环片段重复一定次数。可以在临界中指示片段重复的条件。Loop组合片段具有“Min”和“Max”属性,它们指示片段可以重复的最小和最大次数。默认值是无限制。Break中断如果执行此片段,则放弃序列的其余部分。可以使用临界来指示发生中断的条件。Par并行并行处理。片段中的事件可以交错。Criti
13、cal关键用在Par或Seq片段中。指示此片段中的消息不得与其他消息交错。Seq弱顺序有两个或更多操作数片段。涉及同一生命线的消息必须以片段的顺序发生。如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。Strict强顺序有两个或更多操作数片段。这些片段必须按给定顺序发生。pa.抉择抉择(Alt)n抉择在任何场合下只发生一个序列。抉择在任何场合下只发生一个序列。可以在每个片段中设置一可以在每个片段中设置一个临界来指示该片段可以运行的条件。个临界来指示该片段可以运行的条件。else 的临界指示其他的临界指示其他任何临界都不为任何临界都不为 True 时应运行的片段。时应运行的片段。如果所
14、有临界都为如果所有临界都为 False 并且没有并且没有 else,则不执行任何片段。,则不执行任何片段。13:052513:0526pb.:选项选项(Opt)包含一个可能发生或不发生的序列13:0527pc.循环循环(Loop)片段重复一定次数。)片段重复一定次数。可以在临界中指示可以在临界中指示片段重复的条件。片段重复的条件。13:0528pd.并行并行(Par)13:0529p对系统动态行为建模的过程中,当强调按时间展开信息对系统动态行为建模的过程中,当强调按时间展开信息的传送时,一般使用时序图建模技术。的传送时,一般使用时序图建模技术。p一个单独的时序图只能显示一个控制流。一个单独的时
15、序图只能显示一个控制流。p一般情况下,一个完整的控制流是非常复杂的,要描述一般情况下,一个完整的控制流是非常复杂的,要描述它需要创建很多交互图(包括时序图和协作图),一些它需要创建很多交互图(包括时序图和协作图),一些图是主要的,另一些图用来描述可选择的路径和一些例图是主要的,另一些图用来描述可选择的路径和一些例外,再用一个包对它们进行统一的管理。外,再用一个包对它们进行统一的管理。13:05303 时序图绘制步骤及方法时序图绘制步骤及方法p时序图建立步骤时序图建立步骤31设置消息设置消息4.设置对象生命线开始和结束设置对象生命线开始和结束3.识别参与交互的对象和活动者识别参与交互的对象和活动
16、者2.确定交互的范围确定交互的范围1.细化消息细化消息5.13:0532设置交互的设置交互的语境语境,这些语境可以是系这些语境可以是系统、子系统、类、统、子系统、类、用例和协作的一个用例和协作的一个脚本。脚本。识别识别对象对象在交互语境在交互语境中所扮演的中所扮演的角色角色,根,根据对象的重要性及相据对象的重要性及相互关系,将其从左至互关系,将其从左至右放置在时序图的顶右放置在时序图的顶部。部。设置每个对象的设置每个对象的生命生命线线。通常情况下,对。通常情况下,对象存在于整个交互过象存在于整个交互过程中,但它们也可以程中,但它们也可以在交互过程中创建和在交互过程中创建和撤销撤销从引发某个从引
17、发某个消息消息的信的信息开始,在生命线之息开始,在生命线之间画出从顶到底依次间画出从顶到底依次展开的展开的消息消息,显示每,显示每个消息的内容标识。个消息的内容标识。设置对象的设置对象的激活期激活期,可视化消息的嵌,可视化消息的嵌套或可视化实际计套或可视化实际计算发生时的时间点算发生时的时间点。如果需要设置时间或空如果需要设置时间或空间的间的约束约束,可以为每个,可以为每个消息附上合适的时间和消息附上合适的时间和空间约束。如果需要形空间约束。如果需要形式化的说明某控制流,式化的说明某控制流,可以为每个消息附上可以为每个消息附上前前置和后置条件置和后置条件。p下面将以下面将以“教师查看学生成绩教
18、师查看学生成绩”为例,介绍如何去创建为例,介绍如何去创建系统的序列图系统的序列图13:0533名称名称教师查看学生成绩教师查看学生成绩标识标识UC 011描述描述教师查看学生关于某门课程的成绩前提前提学生为在校学生,拥有学号结果结果显示学生的成绩或空扩展扩展N/A包含包含N/A继承继承N/A13:0534p可以通过更加具体的描述来确定工作流程,基本的工作流程可以通过更加具体的描述来确定工作流程,基本的工作流程如下:如下:李老师希望通过系统查询某名学生的学科成绩。李老师希望通过系统查询某名学生的学科成绩。李老师通过用户界面录入学生的学号。李老师通过用户界面录入学生的学号。用户界面根据学生的学号向
19、数据库访问层请求学生信息。用户界面根据学生的学号向数据库访问层请求学生信息。数据库访问层根据学生的学号加载学生信息。数据库访问层根据学生的学号加载学生信息。数据库访问层根据学生信息和学科科目获取该名学生的分数信息。数据库访问层根据学生信息和学科科目获取该名学生的分数信息。数据库访问层将学生信息和分数信息提供给用户界面。数据库访问层将学生信息和分数信息提供给用户界面。用户界面将学生信息和分数信息显示出来。用户界面将学生信息和分数信息显示出来。13:0535p在这些基本的工作流程中还存在分支,可使用备选过程在这些基本的工作流程中还存在分支,可使用备选过程来描述。来描述。p备选过程备选过程A:该名学
20、生没有学科成绩。:该名学生没有学科成绩。n 数据访问层返回学科成绩为空。数据访问层返回学科成绩为空。n 系统提示李老师没有该学生的成绩。系统提示李老师没有该学生的成绩。p备选过程备选过程B:系统没有该学生的信息。:系统没有该学生的信息。n 数据访问层返回学生信息为空。数据访问层返回学生信息为空。n 系统提示李老师该学生不存在。系统提示李老师该学生不存在。13:053613:053713:053813:0539p请绘制读者借阅图书的时序图请绘制读者借阅图书的时序图13:0540练习练习13:05414 时序图建模案例及练习时序图建模案例及练习 p添加借阅者的过程为:添加借阅者的过程为:系统管理员
21、选择菜单项系统管理员选择菜单项“添添加借阅者加借阅者”,弹出,弹出AddBorrowerDialog对话框。系对话框。系统管理员可以在该对话框中输入借阅者的信息并提统管理员可以在该对话框中输入借阅者的信息并提交,随后系统对管理员所提交的借阅者信息进行验交,随后系统对管理员所提交的借阅者信息进行验证,查看输入的借阅证号是否已经存在于系统中,证,查看输入的借阅证号是否已经存在于系统中,若不存在,则为借阅者创建一个账户,并存储借阅若不存在,则为借阅者创建一个账户,并存储借阅者信息。者信息。:Administrator:ManagerWindow:AddBorrowerDialog:Borrower1
22、:AddBorrower()2:CreateDialog()3:AddBorrower()4:FindBorrower()5:NewBorrower()6:Write()p修改借阅者的过程为:修改借阅者的过程为:系统管理员选择菜系统管理员选择菜单项单项“修改借阅者修改借阅者”,弹出,弹出UpdateBorrow erDialog对话框。系统管对话框。系统管理员可以在该对话框中输入借阅者的借阅理员可以在该对话框中输入借阅者的借阅证号,随后系统查询数据库并显示相关的证号,随后系统查询数据库并显示相关的借阅者信息(如果输入的借阅者信息不存借阅者信息(如果输入的借阅者信息不存在,则显示提示信息,结束修
23、改操作),在,则显示提示信息,结束修改操作),修改相关借阅者信息,并存储。修改相关借阅者信息,并存储。:Administrator:ManageWindow:UpdateBorrowerDialog:Borrower1:UpdateBorrower()2:CreateDialog()3:FindBorrower()4:FindBorrower()5:UpdateBorrowerInfo()6:UpdateBorrowerInfo()7:Write()p删除借阅者的过程为:删除借阅者的过程为:系统管理员选择菜系统管理员选择菜单项单项“删除借阅者删除借阅者”,弹出,弹出DeleteBorrower
24、 Dialog对话框。系统管理对话框。系统管理员可以在该对话框中输入借阅者的借阅证员可以在该对话框中输入借阅者的借阅证号,随后系统查询数据库并显示相关的借号,随后系统查询数据库并显示相关的借阅者信息(如果输入的借阅者信息不存在,阅者信息(如果输入的借阅者信息不存在,则显示提示信息,结束删除操作),点击则显示提示信息,结束删除操作),点击删除按钮,系统确认是否存在与该借阅者删除按钮,系统确认是否存在与该借阅者相关的借阅信息,若有,显示提示信息,相关的借阅信息,若有,显示提示信息,结束删除操作;若没有,则系统删除该借结束删除操作;若没有,则系统删除该借阅者。阅者。:Administrator:Ma
25、nageWindow:DeleteBorrowerDialog:Borrower1:DeleteBorrower()2:CreateDialog()3:FindBorrower()4:FindBorrower()5:DeleteBorrower()7:Delete()6:GetLoansNum()p添加书目的过程为:添加书目的过程为:系统管理员选择菜单系统管理员选择菜单项项“添加书目添加书目”,弹出,弹出AddTitleDialog对对话框。系统管理员可以在该对话框中输入话框。系统管理员可以在该对话框中输入图书的名称、图书的名称、ISBN号、出版社名、作者姓号、出版社名、作者姓名等信息并提交,
26、系统根据提交的名等信息并提交,系统根据提交的ISBN号号查询图书的书目是否存在,若不存在,则查询图书的书目是否存在,若不存在,则为创建该书目。为创建该书目。:Administrator:ManageWindow:AddTitleDialog:Title1:AddTitle()2:CreateDialog()3:AddTitle()4:FindTitle()5:NewTitle()6:Write()p修改书目的过程为:修改书目的过程为:系统管理员选择菜单系统管理员选择菜单项项“修改书目修改书目”,弹出,弹出UpdateTitleDialog对话框。系统管理员可以在该对话框中输对话框。系统管理员可
27、以在该对话框中输入图书的入图书的ISBN号并提交,随后系统查询数号并提交,随后系统查询数据库并显示相关的书目信息(如果输入的据库并显示相关的书目信息(如果输入的ISBN号不存在,则显示提示信息,结束修号不存在,则显示提示信息,结束修改操作),修改相关书目信息,并存储。改操作),修改相关书目信息,并存储。:Administrator:ManageWindow:UpdateTitleDialog:Title1:UpdateTitle()2:CreateDialog()3:FindTitle()4:FindTitle()5:UpdateTitle()6:UpdateTitle()7:Write()p
28、删除书目的过程为:删除书目的过程为:系统管理员选择菜单系统管理员选择菜单项项“删除书目删除书目”,弹出,弹出DeleteTitleDialog对话框。系统管理员可以在该对话框中输对话框。系统管理员可以在该对话框中输入图书的入图书的ISBN号并提交,随后系统查询数号并提交,随后系统查询数据库并显示相关的书目信息(如果输入的据库并显示相关的书目信息(如果输入的书目信息不存在,则显示提示信息,结束书目信息不存在,则显示提示信息,结束删除操作),点击删除按钮,系统验证该删除操作),点击删除按钮,系统验证该书目对应的图书数目是否为书目对应的图书数目是否为0,如果为,如果为0,则删除该书目信息;反之,则系
29、统提示必则删除该书目信息;反之,则系统提示必须先删除相应的图书。须先删除相应的图书。:Administrator:ManageWindow:DeleteTitleDialog:Title1:DeleteTitle()2:CreateDialog()3:FindTitle()4:FindTitle()5:DeleteTitle()6:GetBooksNum()7:Delete()p添加图书的过程为:添加图书的过程为:系统管理员选择菜单系统管理员选择菜单项项“添加图书添加图书”,弹出,弹出AddBookDialog对对话框。系统管理员可以在该对话框中输入话框。系统管理员可以在该对话框中输入图书的图
30、书的ISBN号并提交,系统根据提交的号并提交,系统根据提交的ISBN号查询图书的书目是否存在,若不存号查询图书的书目是否存在,若不存在,则提示管理员需要先添加书目,然后在,则提示管理员需要先添加书目,然后才可以添加图书;若存在,则添加一个图才可以添加图书;若存在,则添加一个图书,并更新图书对应的书目信息。书,并更新图书对应的书目信息。:Administrator:ManageWindow:AddBookDialog:Title:Book1:FindTitle()2:CreateDialog()3:AddBook()4:FindTitle()5:Return true6:NewBook()7:A
31、ddBook()p删除图书的过程为:删除图书的过程为:系统管理员选择菜单系统管理员选择菜单项项“删除图书删除图书”,弹出,弹出DeleteBookDialog对话框。系统管理员可以在该对话框中输对话框。系统管理员可以在该对话框中输入要删除图书的入要删除图书的ISBN号并提交,随后系统号并提交,随后系统查询数据库并显示相关的图书信息(如果查询数据库并显示相关的图书信息(如果输入的输入的ISBN号不存在,则显示提示信息,号不存在,则显示提示信息,结束删除操作),系统管理员进行确认并结束删除操作),系统管理员进行确认并点击删除按钮,删除该图书,系统更新相点击删除按钮,删除该图书,系统更新相应的书目信
32、息。应的书目信息。:Administrator:ManageWindow:DeleteBookDialog:Book:Title1:DeleteBook()2:CreateDialog()3:InputBookID()4:FindBook()5:GetTitle()6:DeleteBook()7:Delete()8:RemoveBook()p添加管理员的过程为:添加管理员的过程为:系统管理员选择菜系统管理员选择菜单项单项“添加管理员添加管理员”,弹出,弹出AddManager Dialog对话框。系统管理员可以在该对话对话框。系统管理员可以在该对话框中先输入一个用户名和初始密码,然后框中先输入
33、一个用户名和初始密码,然后提交,系统根据提交的用户名和密码验证提交,系统根据提交的用户名和密码验证该用户名是否已经存在,若该用户已经存该用户名是否已经存在,若该用户已经存在,系统则提示出错;若不存在,则系统在,系统则提示出错;若不存在,则系统提示先添加管理员的权限为系统管理员还提示先添加管理员的权限为系统管理员还是图书管理员,并根据系统管理员的选择是图书管理员,并根据系统管理员的选择添加一个图书管理员或系统管理员。添加一个图书管理员或系统管理员。:Administrator:ManagerWindow:AddManagerDialog:Manager1:AddManager()2:Create
34、Dialog()3:AddManager()4:FindManager()5:Permission()6:NewManager()7:Write()p删除管理员的过程为:删除管理员的过程为:系统管理员选择菜系统管理员选择菜单项单项“删除管理员删除管理员”,弹出,弹出DeleteManager Dialog对话框。系统管对话框。系统管理员可以在该对话框中输入要删除的管理理员可以在该对话框中输入要删除的管理员的用户名并提交,随后系统查询数据库,员的用户名并提交,随后系统查询数据库,以检验该管理员是否存在,若存在,则删以检验该管理员是否存在,若存在,则删除该管理员。除该管理员。:Administra
35、tor:ManageWindow:DeleteManagerDialog:Manager1:DeleteManager()2:CreateDialog()3:DeleteManager()4:FindManager()5:Delete()p借阅图书的过程为:借阅图书的过程为:图书管理员选择菜单图书管理员选择菜单项项“借阅图书借阅图书”,弹出,弹出BorrowDialog对话对话框,图书管理员在该对话框中输入借阅者框,图书管理员在该对话框中输入借阅者信息,然后由系统查询数据库,以验证该信息,然后由系统查询数据库,以验证该借阅者的合法性,若借阅者合法,则在由借阅者的合法性,若借阅者合法,则在由图书
36、管理员输入所要借阅的图书信息,系图书管理员输入所要借阅的图书信息,系统记录并保存该借阅信息。统记录并保存该借阅信息。:Librarian:MainWindow:BorrowDialog:Borrower:Book:Loan1:BorrowBook()2:CreateDialog()3:GetBorrowerID()4:FindBorrower()5:InputBookID()6:FindBook()7:NewLoan()8:Write()9:AddLoan()10:Write()11:SetLoan()12:Write()p归还图书的过程为:归还图书的过程为:图书管理员选择菜单图书管理员选择菜
37、单项项“归还图书归还图书”,弹出,弹出ReturnDialog对话对话框,图书管理员在该对话框中输入归还图框,图书管理员在该对话框中输入归还图书编号,然后由系统查询数据库,以验证书编号,然后由系统查询数据库,以验证该图书是否为本馆藏书,若图书不合法,该图书是否为本馆藏书,若图书不合法,则提示图书管理员;若合法,则由系统查则提示图书管理员;若合法,则由系统查找该图书的借阅者信息,然后删除相对应找该图书的借阅者信息,然后删除相对应的借阅记录,并更新借阅者信息。的借阅记录,并更新借阅者信息。:Librarian:MainWindow:ReturnBookDialog:Book:Loan:Borrow
38、er1:ReturnBook()2:CreateDialog()3:ReturnBook()4:FindBook()5:GetLoan()6:GetBorrower()7:Delete()8:SetLoan()9:Write()10:DeleteLoan()11:Write()p查询借阅信息的过程为:查询借阅信息的过程为:图书管理员选择菜图书管理员选择菜单项单项“查询借阅信息查询借阅信息”,弹出,弹出QueryDialog对话框,图书管理员在该对话框中输入要查对话框,图书管理员在该对话框中输入要查询的借阅证号,然后由系统查询数据库,以询的借阅证号,然后由系统查询数据库,以获得该借阅者信息,并通
39、过显示借阅信息用获得该借阅者信息,并通过显示借阅信息用例显示该借阅者所借阅的所有图书信息。例显示该借阅者所借阅的所有图书信息。:Librarian:MainWindow:QueryDialog:Borrower1:QueryLoanInfo()2:CreateDialog()3:QueryLoanInfo()4:GetBorrower()p显示借阅信息的过程为:显示借阅信息的过程为:当当BorrowDialog、ReturnDialog和和QueryDialog对话框调用对话框调用Borrower类的类的GetTitleInfo()方法时,系统获取该方法时,系统获取该借阅者信息,然后根据借阅信
40、息找到所借阅的图书,借阅者信息,然后根据借阅信息找到所借阅的图书,并进一步获取所借阅图书对应的书目信息,最后由并进一步获取所借阅图书对应的书目信息,最后由相应的对话框负责显示。相应的对话框负责显示。:QueryDialog:Borrower:Loan:Book:Title1:GetTitleInfo()2:GetBook()3:GetTitle()4:GetName()5:GetPublisher()6:GetAuthor()p超期处理的前提条件是:超期处理的前提条件是:当发生借书或还书时,当发生借书或还书时,首先由系统找到借阅者的信息,然后调用超期处首先由系统找到借阅者的信息,然后调用超期处
41、理以检验该借阅者是否有超期的借阅信息。理以检验该借阅者是否有超期的借阅信息。p超期处理的过程为:超期处理的过程为:获取借阅者的所有借阅信息,获取借阅者的所有借阅信息,查询数据库以获取借阅信息的日期,然后由系统查询数据库以获取借阅信息的日期,然后由系统与当时日期比较,以验证是否超过了规定的借阅与当时日期比较,以验证是否超过了规定的借阅期限,若超过规定的借阅时间,则显示超期的图期限,若超过规定的借阅时间,则显示超期的图书信息,以提示图书管理员。书信息,以提示图书管理员。:MessageBox:BorrowDialog:Borrower:Loan:Book1:FindBorrower()2:GetD
42、ate()3:Return4:GetBook()5:GetTitleName()6:Return7:Return8:Return9:Create()10:Display Error11:Destroy()p管理员登录的过程为:管理员登录的过程为:当图书管理员或系统当图书管理员或系统管理员运行系统时,系统将首先运行管理员运行系统时,系统将首先运行Login对话框,然后又图书管理员或系统管理员输对话框,然后又图书管理员或系统管理员输入用户名和密码,并提交到系统,后来由系入用户名和密码,并提交到系统,后来由系统查询数据库以完成对用户身份的验证,当统查询数据库以完成对用户身份的验证,当通过验证后,将根
43、据登录的用户是系统管理通过验证后,将根据登录的用户是系统管理员还是图书管理员,以打开相应的对话框。员还是图书管理员,以打开相应的对话框。:Librarian:LoginDialog:Manager:MainWindow1:Start OS2:CreateDialog()3:Login()4:FindManager()5:CreateMainWindow()p修改密码的过程为:修改密码的过程为:图书管理员选择菜单项图书管理员选择菜单项“修改密码修改密码”,弹出,弹出ModifyDialog对话框,对话框,图书管理员在该对话框中输入旧密码和新密图书管理员在该对话框中输入旧密码和新密码,并提交,然后
44、由系统查询数据库,以验码,并提交,然后由系统查询数据库,以验证当前用户的密码是否与输入的旧密码相同,证当前用户的密码是否与输入的旧密码相同,若相同,则将密码更改为新的密码,并提示若相同,则将密码更改为新的密码,并提示图书管理员修改密码成功。图书管理员修改密码成功。:Librarian:MainWindow:ModifyDialog:Librarian1:ModifyPassword()2:CreateDialog()3:ModifyPassword()4:GetPassword()5:SetPassword()6:Update()13:057613:057713:057813:057913:0580