uml管理系统课程设计

2023-06-08

第一篇:uml管理系统课程设计

《系统设计与UML》课程教学大纲

课程名称:系统分析与UML,System Analysis and UML 课程学科类别:工学 电气信息类 学时与学分:48/3 先修课程:软件工程,面向对象程序设计 课程教学目标:

1. 使学生了解面向对象的软件分析与设计过程,掌握UML的语言、表示法及其应用。 2. 熟练掌握支持UML的CASE软件开发工具Rational Rose。

3. 能够应用UML和Rational Rose对面向对象的软件系统进行分析和设计。 适用学科专业:计算机软件、软件工程、计算机科学与技术 教学手段与方法:面授 基本教学内容与学时安排:

 软件工程与面向对象建摸(4学时)

软件开发方法概述 面向对象的系统分析与设计 面向对象建模  UML概览(2学时)

UML的形成历史 UML的结构、符号与图形 UML建模简单流程

 Rational Rose工具(3学时)

Rational Rose的架构 Rational Rose的安装和使用  Use Case图(3学时)

用例图的概念 用例图建模技术  类图与对象图(3学时)

类图的概念 类图建模技术 对象图 对象图建模技术  包图(2学时)

包的概念 包之间的关系

 状态图(3学时)

状态机 状态图

状态、事件、转换 状态图建模技术  活动图(3学时)

活动图的组成元素 活动的分解 活动图建模技术  时序图(3学时)

时序图的组成 对象的创建和撤销 时序图建模技术  协作图(3学时)

对象、链和消息 时序图与协作图的比较 时序图与协作图的互换 协作图建模技术  组件图(2学时)

接口、依赖关系 组件图建模技术  配置图(1学时)

节点、关联关系 配置图建模技术

 UML的扩展机制(3学时)

UML的体系结构 构造型、标记值、约束

用于业务建模的UML扩展  Rose的双向工程(2学时)

双向工程介绍 逆向工程

 UML与统一开发过程(3学时)软件开发过程

第二篇:软件工程课程设计——基于UML医院患者监护系统的分析与设计

软件工程大作业

姓名:黄会林 学号:2009214454 班级:3110903

实验题目:

基于UML医院患者监护系统的分析与设计

实验目的:

软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。通过这次课程设计,要掌握UML(统一建模语言),并能运用UML在Rational Rose中建模。

实验内容:

一、问题描述

在医院的病房里,将病症监视器安置在每个病床,对病人进行监护。监视器将病人的病症信号(组合)实时地传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。系统根据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。

二、需求分析

根据分析系统主要实现以下功能:

1、要求病症监视器随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成病情报告。

2、病症监视器可以将采集到的病症信号(组合),格式化后实时的传送到中央监护系统。

3、中央监护系统将病人的病症信号与标准的病症信号库里的病症信号的正常值进行比较,当病症出现异常时系统自动报警。

4、当病症信号异常时,系统自动更新病历并打印病情报告。

5、值班护士可以查看病情报告并进行打印。

6、医生可以查看病情报告,要求打印病情报告,也可以查看或要求打印病历。

7、系统定期自动更新病历。

三、用UML的静态建模机制定义描述系统的静态结构

(一) 建立系统的用例图

通过分析可以识别出本系统的四个角色:值班护士,医生,病人,标准病症信号库。其描述面板如下:

角色:病人 角色职责: 提供病症信号

角色职责识别:

负责生成、实时提供 各种病症信号。

角色:医生 角色职责:

对病人负责,负责处理病情的变化

角色职责识别:

(1)需要系统支持以完成其日常工作

(2)对系统运行结果感兴趣

角色:值班护士 角色职责:

负责监视病人的病情变化

角色职责识别:

(1)使用系统主要功能 (2)对系统运行结果感兴趣

角色:标准病症信号库 角色职责:

负责向系统提供病症信号的正常值

角色职责识别:

(1) 负责保持系统正常运行 (2) 与系统交互

通过分析可以初步识别出系统的用例为:中央监护,病症监护,提供标准病症信号,病历管理,病情报告管理。顶层用例图如下:

(二)识别系统的类

通过名词识别法和系统实体识别法等方法可以识别出系统的十二个类。类图(含数据模型)如下:

(三)用配置图描述系统的体系结构

用配置图可以进一步描述系统的网络结构。配置图如下:

四、用UML的动态建模机制定义描述系统结构元素的动态特性及行为

(一)用状态图描述系统结构元素的动态特性及行为 状态图如下:

(二)用序列图和协作图描述病人病情异常时系统的情况 序列图如下:

生成协作图如下:

(三)用活动图描述系统在监护病人时的状态变化 活动图如下:

心得体会:

通过本次课程设计,我对于UML有了更深刻的了解,能更熟练的使用UML在Rational Rose中进行建模,同时也对软件工程及面向对象等方面的知识有了一个温习和巩固,对今后的学习起着积极的作用。在实验中碰到的几个困惑,或请教老师同学,或自己查阅资料都得到了解决,许多以前不甚理解的地方也豁然开朗,收获很大。

第三篇:UML JSP课程设计心得体会

在这次课程设计过程中,在这与代码为伴的一个月里,我真的收获了很多。这次软件工程大型课程设计,既巩固了这学期学的UML知识,又复习了关于数据库和java的知识,更是学会了如何将所学知识运用到实际,真正的应用到软件开发、网站开发中来。

这次课程设计还有一个额外收获,就是初步学会了用JSP开发网页。虽然做出来的网页不是特别美观,有些地方还存在一些瑕疵,但是从对网页编程一窍不通到能做出一个功能基本完善的简单的毕业设计选题系统,一步步走来,其中收获的不仅仅是全新的知识,对于自学能力、动手能力、合作能力甚至接受挑战的勇气方面的影响,也都是巨大的。对于我来说,以前只接触过用C语言在DOS界面下编程,用java编写简单的桌面应用程序,最多只是简单的连接数据库,所以一开始听说要编网页的时候,实在是缺乏信心,在编程过程中遇到一些棘手的问题的时候,甚至一度想要逃避,可最终还是坚持下来了。虽然这点小程序对于熟练掌握网页编程语言的人来说不算什么,但对于我来说,没有接触过的东西,就是一个新挑战,任何语言的学习,在入门的时候都是最困难的。现在对于网页编程已经有了一个初步的了解,对于有些概念的理解还不是很准确,不过会努力在以后的学习过程中慢慢理解,在以后的编程过程中慢慢熟悉这些概念。

除了学习新语言的收获外,在编程过程中对于功能的实现、一些异常的处理还有界面的设计,也有着很深的感触。既然要做毕业设计选题系统,那么就要先考虑到用户的功能需求,分析不同的用户都是要通过网站做什么,每个用户都有哪些权限;对于数据库的操作来说,是要向数据库中插入数据,还是更新还是删除。而且要考虑到各个方面异常的处理,比如用户名、密码错误怎么办,输入的信息错误怎么处理,成功更新数据库信息后要弹出什么提示框,要转入那个页面等等。对于异常处理,我做的还不够好,由于时间精力有限,有一些异常情况没有考虑到,功能实现的还不够完美,在以后的编程过程中我会在力所能及的范围内尽量考虑周全,既然要做程序,那就要尽量做的完善。对于界面的设计,由于时间关系,没有采用流行的Dreamweaver,感觉有点遗憾,网页的背景图片都是自己手工合成的,略显简陋了些,唯一值得欣慰的就是实现了我一直想要的布局效果,以后在美工方面也会努力的提高自己的能力。

另外对于实际应用中课程之间的融合也是有了一个初步的概念。一开始总觉得UML没有什么实际的用处,但通过这次课程设计我发现,每门课程都是有它独特的意义的,UML中画出的类图、顺序图、活动图等等都对自己编程过程有着极佳的指导意义,这些图能使编程思路变得更加清晰。

总而言之,这一个月的感受可谓五味杂陈,是三言两语难以说清的,最明显的还是感觉到自己知识的不足,对于一些东西还是缺乏一个系统的准确的理解。java是门很有用的语言,考试范围之外的东西还有很多很多;JSP让我接触到了全新的网页编程,也让我知道,学无止境,想要全面深入的掌握一门语言,还是要付出很大的努力的。

第四篇:图书管理系统UML分析与设计

1. 系统需求

系统的功能性需求描述如下:

·

图书管理系统为管理员提供主功能界面。

·

图书管理系统在启动时要求管理员输人口令,只有口令正确,才可以进入系统的主功能界面。

·

管理员负责对图书管理系统的维护工作,因此系统应赋予管理员对图书信息、读者信息和出版社信息进行录入、修改、查询和删除等功能的操作权限。

·

管理员作为读者的代理实现借书与还书业务。

·

图书信息、读者信息和出版社信息保存在对应的数据库表中。

在上述功能性需求分析的基础上,可以写出较为详细的需求规格说明书,作为进行系统分析、设计和实现的依据。需求分析规格说明书由系统最终用户提出需求,系统分析人员负责编写。图书管理系统需求分析规格说明书如下:

·

这是一个图书馆图书借阅管理的应用系统;

·

图书管理系统负责将图书、杂志借给读者,前提条件是这些读者在系统进行了注册,图书和杂志也在系统中进行了注册;

·

图书馆负责新书的购买,当书和杂志已经过时或者破旧不堪时,可以将这些图书和杂志从图书馆管理系统中删除;

·

图书管理员是图书馆的员工,负责与读者打交道,并且是在系统提供的支持下开展工作;

·

图书管理系统能够容易地建立、修改和删除系统中的信息,包括图书信息、读者信息、以及出版社信息等;

·

图书管理系统能够在所有流行的平台环境(windows,uNIx等操作系统)上运行,并具有一个美观的图书用户界面;

·

图书管理系统容易扩展新功能。

2. 分析建模

 Use case diagram 分析

采用下列描述项撰写用例的脚本。

· 用例名称——表明用户的意图或用例的用途。

· 参与者——与该用例相关的参与者列表。

· 前置条件——一个条件列表,如果其中包含条件,则这些条件必须在访问用例之前得到满足。

· 后置条件——一个条件列表,如果其中包含条件,则这些条件将在用例完成以后得到满足。

· 基本事件流——描述用例中各项活动都正常进行时用例的工作方式。

· 分支事件流——描述用例中某项活动的子活动各项工作都正常进行时用例的工作式。

· 异常事件流——描述用例的变更工作方式,以及出现异常或发生错误的情况下所执行的路径。

图书管理系统中每个用例的脚本描述如下:

1.系统登录

用例名称:系统登录

参与者:图书管理员 1.1前置条件 无

1.2后置条件

如果用例成功,参与者可以启动系统,使用系统提供的功能。反之,系统的状态不发生变化。

1.3基本事件流

当图书管理员登录系统时,用例启动。

①系统提示用户输入用户名和密码。

②用户输入用户名和密码。

③系统验证输入的用户名和密码,若正确,则用户登录到系统中。

1.4异常事件流

如果用户输入无效的用户名/密码,则系统显示错误信息。用户可以选择返回基本事件流的起始点,重新输入正确的用户名/密码;或者取消登录,用例结束。

2.图书借阅

用例名称:借阅图书

参与者:读者,图书管理员 2.1前置条件

在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。

2.2后置条件

如果这个用例成功实现,则在系统中创建并存储借阅记录。 2.3基本事件流

当读者借阅图书时,用例启动。

①登录系统。

②输人图书ID和读者ID。

③检索读者ID。

④检索图书ID。

⑤根据时间算法确定图书借出日期和归还日期。

⑥图书馆将图书借给读者。

⑦创建借阅记录。

⑧存储借阅记录。 2.4异常事件流

①如果读者未注册,则系统显示提示信息,用例被终止。

②如果要借图书不存在,系统显示提示信息,用例被终止。

③如果要借图书都已借出,则系统提示信息,用例被终止。 3.图书归还

用例名称:图书归还

参与者:读者,图书管理员 3.1前置条件

在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。

3.2后置条件

如果这个用例成功实现,则系统删除借阅记录;否则,系统的状态不发生变化。 3.3基本事件流

当读者归还借阅的图书时,用例被启动。

①登录系统。

②输入图书ID和读者ID。 ③检索图书ID。

④检索读者ID。

⑤查询图书借阅记录。 ⑥删除借阅记录。 3.4异常事件流

①如果归还图书不存在,则系统显示提示信息,用例被终止。 ②如果借阅记录不存在,则系统显示提示信息,用例被终止。 4.读者维护

用例名称:读者维护 ‘ 参与者:图书管理员 ’ 4.1前置条件

在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。 4.2后置条件

如果这个用例成功地实现,则系统添加、修改或检索读者信息;否则,系统的状态不发生变化。

4.3基本事件流

当图书管理员维护读者信息时,用例被启动。 ①登录系统。

②如果选择的活动是“添加读者信息”,则执行分支事件流4.3.1:添加读者信息。 ③如果选择的活动是“修改读者信息”,则执行分支事件流4.3.2:修改读者信息。 ④如果选择的活动是“检索读者信息”,则执行分支事件流4.3.3:检索读者信息。 4.3.1分支事件流

①提供读者的信息,例如,读者ID,读者姓名、电话号码等。 ②系统存储读者信息。 4.3.2分支事件流 ①输入读者ID。

②查询并显示读者信息。 ③更新系统中读者信息。 4.3.3分支事件流 ①输入读者ID。

②查询并显示读者信息。 4.4异常事件流

①如果读者已经存在,则系统显示提示信息,用例被终止。 ②如果查询不到读者,则系统显示提示信息,用例被终止。 5.图书维护

用例名称:图书维护 参与者:图书管理员 5.1前置条件

在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。 5.2后置条件

如果这个用例成功实现,则系统添加、修改或检索图书信息;否则,系统的状态不发生变化。

5.3基本事件流

当图书管理员维护图书信息时,用例被启动。 ①登录系统。

②如果选择的活动是“添加图书信息”,则执行分支事件流5.3.1:添加图书信息。 ③如果选择的活动是“修改图书信息”,则执行分支事件流5.3.2:修改图书信息。 ④如果选择的活动是“检索图书信息”,则执行分支事件流5.3.3:检索图书信息。 5.3.1分支事件流

①提供图书的信息,例如,图书ID,图书名称、编著者、出版社、价格、出版年份筹 ②系统存储图书信息。 5.3.2分支事件流 ①输人图书ID。

②查询并显示图书信息。 ⑨更新系统中图书信息。 5.3.3分支事件流 ①输入图书ID。

②查询并显示图书信息。 5.4异常事件流

①如果该图书已经存在,则系统显示提示信息,用例被终止。 ②如果查询不到该图书,则系统显示提示信息,用例被终止。

系统总体功能结构

 根据用例图定义分析包以及分析包(子系统)之间的关系。

图书管理系统分析包详细结构

 定义类、用例实现(序列图)、类关系图 (1) 系统登录

类图:

系统登录分析类图

用例实现:

登录系统成功顺序图

登录系统失败顺序图

(2) 登录图书信息

类图:

登录图书信息分析类图

用例实现:

登录图书信息顺序图

(3) 修改图书信息

类图:

修改图书信息分析类图

用例实现:

修改图书信息顺序图

(4) 检索图书信息

类图:

检索图书信息分析类图

用例实现:

检索图书信息顺序图

(5) 借阅图书 类图:

借阅图书分析类图

用例实现:

借阅图书顺序图

(6) 归还图书

类图:

归还图书分析类图

用例实现:

归还图书顺序图

(7) 借出图书一览表

类图:

借出图书一览表分析类图

用例实现:

借出图书一览表顺序图

(8) 类关系图

系统实体类(业务类)之间的关系

(9) 类的具体定义

1.图书表类

编号:A—l一0l

类名:图书表

职责:存放图书馆所能处理的所有图书的基本信息

属性:图书代号,图书名称,编著者,ISBN代码,出版社代码,出版年份,页数,价格,购入日期,过期日期,书架代码,备注

说明:该类存放所有图书类的公用信息,它是“图书借阅表”的父类。图书也有身份,可以通过不同的ISBN相区别。在图书管理系统中,图书也有相关的行为,图书因为使用期限等可以被销毁,所以图书表也是系统中的一个对象。

2.登录图书界面类

编号:A一1—02

类名:登录图书界面

职责:提供输入所有图书信息的界面

属性:图书代号,图书名称,编著者,ISBN代码,出版社代码,出版年份,页数,价格,购入日期,过期日期,书架代码,备注

说明:该类的所有属性是非持久性的,但它为用户保存永久性的图书属性提供了一个临时的输入接口。

3.登录图书信息控制类

编号:A—l—03

类名:登录图书信息控制类

职责:实现登录图书界面类与图书表类所提供信息的交互。

属性:图书代号,图书名称,编著者,ISBN代码,出版社代码,出版年份,页数,价 格,购人日期,过期日期,书架代码,备注

说明:该类的所有属性是非持久性的,但它为用户保存永久性的图书属性提供了一 个临时的输人接口。

4.出版社表类

编号:B—l—01

类名:出版社表

职责:存放图书表所使用的所有图书的出版单位

属性:出版社代码,出版社名称

说明:该类与出版社表之间存在着单向关联的关系。

5.读者表类

编号:C一1一Ol

类名:读者表

职责:存放图书馆的所有读者的基本信息

属性:读者代码,读者名,联络电话

说明:该类类描述了物理借阅者的信息,代表了系统中存储的物理借阅者的信息, 即物理借阅者在系统中的账户。同时,读者表又是图书借阅表的组成成分之一。

6.图书借阅表类

编号:D—l—01

类名:图书借阅表

职责:存放图书馆所能处理的所有图书的基本信息

属性:图书代号,读者代号,借书日期,还书日期, 说明:该类描述了从图书馆借阅图书的借阅记录。一个该类的对象对应一个借阅者和一本图书。该类的对象的存在表示借阅者借阅了借阅记录中记录的物理图书。当图书被归还时,要删除借阅记录(对象)。

 形成系统分析规约(注意规约可能会有活动图、状态图等)

3. 系统设计

设计模型的主要工作: 1).软件平台设计

软件平台是系统开发和运行的环境。图书管理系统的开发和运行环境如下:

· 操作系统——操作系统是计算机系统中最重要的系统软件。图书管理系统可以运行在Windows 95/98/2000/NT/Windows XP等桌面操作系统上。

· 支撑软件——支撑软件是协助人们开发和维护软件的工具和环境软件。数据库系统、集成开发环境等都属于支撑型软件,例如,Delphi、Oracle、Java等。图书管理系统使用的DBMS是Access 2003,数据库中间件是JDBC。

· CASE平台——采用CASE开发环境可保证系统开发质量,提高开发效率,保证文档的一致性。图书管理系统的分析、设计j实现和部署模型是在Rose 2003建模环境下创建的,清晰地表达了在不同的开发阶段的系统模型。 2).结构设计

结构设计是把软件分解成为多个子系统,并确定出由各子系统及其接口构成的软件结构。子系统是对软件分解的一种中间形式,也是组织和描述软件的一种方法。由多个子系统构成系统软件,每一个子系统又包括多个用例设计、设计类和接口。结构设计具体要做的工作是将系统划分成相对独立、功能相对完整的子系统(包),将系统模型中的元素划分到不同的包中,说明在什么地方定义包,各个包之间的依赖性和主要通信机制。从而得到尽可能简单和清晰的结构,各部分之间的依赖尽可能的少,并尽量减少双向的依赖关系。 3).详细设计与界面设计

详细设计是对软件结构中确定出的各个子系统内部的设计,需要分析和确定每一个子系统中的用例设计、设计类和接口。详细设计还要描述每个类的细节,并用动态模型描述类的实例在具体环境中的行为。

界面设计是对人和外部系统与系统之间交互界面的设计,包括输入界面、输出界面和输入/输出界面的设计。另外,界面设计还涉及到人机交互方式、人机交互流程、输入输出设备和媒体等内容。 4).数据库设计

数据库是系统存储和管理数据的主要技术手段,数据库设计的任务是根据给定的系统应用需求和系统环境,设计出合理的数据库结构。数据库设计可分为概念设计、逻辑设计和物理设计3个阶段。用UML进行数据库设计的主要思想,是利用UML的扩展机制定义一些版型,用于表示与数据库相关的一些概念。Rose 2003提供了对数据库设计的支持,所设计的模型可以直接生成具体数据库中的表、触发器、存储过程等。

 系统结构设计

系统框架视图

· 用户界面包(User Interface Package)——用于描述整个用户界面使用的类,这些类提供的操作允许用户浏览系统中的数据,允许用户输入新数据。用户界面类基于Java AWT包设计,AWT包是Java语言中用于编写用户界面应用程序的一个标准库。用户界面包与业务模型包相互协作,调用业务模型包中类实例的方法对图书信息进行检索和插入操作。

。 业务模型包(Business Model Package)——包含分析阶段主要的类(借阅图书类、归还图书类、图书类、读者类、出版社类)。在设计阶段将进一步细化这些类,从而完整地定义它们的操作,并为它们增加永久性存储支持。业务模型包与数据库包相互协作,访问数据库中的数据。 · 数据库包(Database Package)——为业务模型包中的类提供数据存取服务,以便这些类能够实现数据的永久性存储功能。

。 组件包(Utility Package)——包含一些可以被系统中其他包所使用的服务。

 界面设计

 详细设计

图书信息管理详细设计:

1.设计类图

“图书信息管理’’是一个用例,在“图书信息管理”用例所提取的3个概念类的基础上,可以确定该用例有3个设计类:登录图书信息(LoginBook)、修改图书信息(UpdateBook)、检索图书信息(SelectRook)。如图13.2所示为“图书信息管理”用例的设计类图。

“图书信息管理”用例设计类图

·

BpFrame类——属于用户界面包,定义系统检索与修改界面的框架。

·

BpSelectFrame类——属于用户界面包,继承BpFrame类,定义检索界面框架。

·

BpUpdateFrame类——属于用户界面包,继承BpSelectFrame类,定义系统修改界面框架。

·

SelectBook类——属于用户界面包,继承BpSelectFrame类,与DbChoice类相关联,显示图书信息检索界面。

·

LoginBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书信息登录功能。

·

UpdateBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书信息修改功能。

·

DbChoice类——属于组件包,定义了用于数据库操作的实例变量和实例方法。

2.顺序图

为实现用例的功能,每个用例要实现的功能要通过用例中各个类的对象的操作的相互协作完成,这就要在顺序图或协作图中反映各个对象之间的消息调用过程。如图13.3所示为添加的图书ID不重复的情况下“登录图书信息”用例的顺序图。

“登录图书信息”顺序图

3.属性和方法设计

用例设计中识别出了大量的设计类,接下来要详细地设计所识别出来的每一个设计类,即设计类的属性和方法。属性设计应该注意的问题是:一要补充属性分析时没有考虑到的属性,确定属性的全部内容,其中包括属性名、可视性、范围、类型、初始值;二要尽量采用系统采用的程序设计语言的语法规范描述属性。

方法设计包括数据结构设计、算法设计和流程设计。方法设计要注意的是:一要立足于所采用的程序设计语言;二所选用的程序设计语言应该能够提供丰富的数据结构;三要根据所实现的功能确定算法设计;四是可以用程序流程图或活动图来描述流程设计的结果。

如图所示为添加了属性和方法“图书信息管理”用例的设计类图。

添加属性和方法后的“图书信息管理”类图

LoginBook类的属性和方法设计如下:

·

sql属性——定义执行插人操作的SQL命令字符串。

·

chpublish_id属性——定义出版社ID。

·

LoginBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加图书信息界面。

·

cheekInsea()方法——①检查各输入项的输人格式是否正确;②检查图书ID是否重复。

·

makelnsertStmt()方法——定义执行插人操作的SQL命令字符串。

·

afterlnsert()方法——清空登录图书界面的各输入项。

SelectBook类的属性和方法设计如下:

·

sql属性——定义执行插入操作的SQL命令字符串。

·

chpublish_id属性——定义出版社ID。

·

SelectBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供检索图书界面。

·

checkSelect()方法——检查是否输入要检索的图书ID。

·

makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。

·

setSelectedData()方法——显示检索图书的结果。

·

clear()方法——清空图书检索界面各检索项。

UpdateBook类的属性和方法设计如下:

·

sql属性——定义执行插入操作的SQL命令字符串。

·

chpublish_id属性——定义出版社ID。

·

UpdateBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供检索图书界面;③提供修改图书功能。

·

checkSelect()方法——检查是否输人要检索的图书ID。

·

makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。

·

setSelectedData()方法——显示检索图书的结果。

·

clear()方法——清空图书修改界面各修改项。

·

checkUpdate()方法——检查各修改项的修改格式是否正确。

·

makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。

读者信息管理详细设计: 1.设计类图

“读者信息管理”是一个用例,在“读者信息管理”用例确定了3个概念类:添加读者信息、修改读者信息、检索读者信息。但是,该用例的功能相对比较简单。可以用1个设计类Borrow实现这3个概念类的功能。如图所示为“读者信息管理”用例的设计类图。

图13.5 “读者信息管理”用例设计类图

· Borow类——属于业务模型包,继承BpupdateFrame类,实现读者信息添加修改和检索功能。

2.顺序图

如图13.6所示为添加的读者ID不重复的情况下“添加读者信息”用例的顺序图。

“添加读者信息”顺序图

通过分析如图所示的顺序图,可以得到下图所示为“读者信息管理”用例的设计类图。

图优化后的“读者信息管理”用例设计类图

3.属性和方法设计

如下图所示为添加了属性和方法“读者信息管理”用例的设计类图。

添加属性和方法后的“读者信息管理”类图

Borrow类的属性和方法设计如下:

· sql属性——定义执行插入操作的SQL命令字符串。

· Borrow()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加、修改和检索读者信

息界面。

· checkSelect()方法——检查是否输入要检索的读者ID。

· makeSeleetStmt()方法——定义执行检索操作的SQL命令字符串。

· setSelectedData()方法——显示检索读者的结果。

· ehecklnsert()方法——检查是否可执行插入操作。

· makeInsertStmt()方法——定义执行插入操作的SQL命令字符串。

· afterlnsert()方法——清空各输入项。

· checkUpdate()方法——检查是否可执行修改操作。

· makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。

· checkData()方法——检查各输入项的输人格式是否正确。

· clear()方法——清空各文本框。

出版社信息管理详细设计: 1.设计类图

“出版社信息管理”是一个用例,可以用1个设计类Publish实现添加出版社信息、修改出版社信息、检索出版社信息3个概念类。如图13.9所示为“出版社信息管理”用例的设计类图。

图13.9 “出版社信息管理”用例设计类图

· Publish类——属于业务模型包,继承BpUpdateFrame类,实现出版社信息添加、修改和检索功能。

2.顺序图

如图13.10所示为添加的出版社ID不重复情况下“添加出版社信息”用例的顺序图。

图13.10 “添加出版社信息”顺序图

3.属性和方法设计

如图13.1l所示为添加了属性和方法“出版社信息管理”用例的设计类图。

图13.11 添加属性和方法后的“出版社信息管理”类图

Publish类的属性和方法设计如下:

· sql属性——定义执行插入操作的SQL命令字符串。

· Publish()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加、修改和检索出版社信息界面。

· checkSelect()方法——检查是否输入要检索的出版社ID。

· makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。 · setSelectedData()方法——显示检索出版社的结果。 · checklnsert()方法——检查是否可执行插入操作。

· makeInsertStmt()方法——定义执行插入操作的SQL命令字符串。 · afterInsert()方法——清空各输人项。

· checkUpdate()方法——检查是否可执行修改操作。

· makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。 · checkData()方法——检查各输入项的输人格式是否正确。 · clear()方法——清空各文本框。

图书借还信息管理详细设计: 1.设计类图

“图书借还信息管理”是一个用例,在“图书信息管理”用例所提取的4个概念类的基础上,可以确定该用例有4个设计类:借阅图书( BorrowBook)、归还图书(RetumBook)、借出图书一览表(BorrowBookList)和未按期归还图书一览表(OverdueList)。如图所示为“图书借还信息管理”用例的设计类图。

图“图书借还信息管理”用例设计类图

· BorrowBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书借阅功能。

· ReturnBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书归还功能。

· BorrowBookList类——属于业务模型包,继承BpSelectFrame类,与DbChoice类相关联,显示借出图书清单一览表。

· OverdueList类——属于业务模型包,继承BpSelectFrame类,与DbChoice类相关联,显示未按期归还图书与读者清单一览表。

2.顺序图

如图所示为读者ID与图书ID都存在情况下的“借阅图书”用例的顺序图。

“登录图书信息”顺序图

3.属性和方法设计

如图所示为添加了属性和方法“图书借还信息管理”用例的设计类图。

添加属性和方法后的“图书借还信息管理”类图

BorrowBook类的属性和方法设计如下:

· sql属性——定义执行插入操作的SQL命令字符串。

· BorrowBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加图书信息界面。 · checklnsert()方法——①检查各输入项的输入格式是否正确;②检查借阅图书ID是否存在。

· makeInsertStmt()方法——定义执行插入操作的SQL命令字符串。

· afterInsert()方法——清空借阅图书界面的各输入项。

· checkSelect()方法——检查是否输入读者ID和图书ID。

· makeSelectStmt()方法——显示检索结果。

· checkDelete()方法——检查是否可执行删除操作。

· makeDeleteStmt()方法——定义执行删除操作的SQL命令字符串。

· afterDelete()方法——清空删除操作后的各输入项。

· clear()方法——清空所有的文本框。 ReturnBook类的属性和方法设计如下:

· sql属性——定义执行插人操作的SQL命令字符串。

· RetumBook()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供图书归还界面。

· checkUpdate()方法——检查各修改项的修改格式是否正确。

· makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。 · afterUpdate()方法——清空所有的文本框。 BorrowBookList类的属性和方法设计如下:

· sql属性——定义执行插入操作的SQL命令字符串。

· BorrowBookList()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供实现“借出图书一览表”功能的界面。

· makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。

· setSelectedData()方法——显示检索结果。 OverdueList类的属性和方法设计如下:

· sql属性——定义执行插入操作的SQL命令字符串。

· xOverdueList()方法——类的构造方法。①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供实现“未按期归还图书一览表”功能的界面。

· makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。

· setSelectedData()方法——显示检索结果。

组件包设计:

组件包包含被所有其他包使用的通用组件,图书管理系统的组件包由Const、DbChoice、BpUtil三个类组成,这三个类定义了系统所有其他类所使用的公共常量与公共方法。另外,IconCanvas(加载系统界面所使用的图标)、MsgDialog(信息显示对话框)、SQLExceptionDialog(显示数据库异常信息对话框)3个类也为系统所有其他类所公共使用。在此与组件包中的类一起进行说明。 1.Const类

Const类定义了系统所使用的公共名称等常量,其类图如图所示。

Const类的类图

2.BpUtil类

BpUtil类定义了系统使用的公共方法,其类图如图所示。

BpUtil类的类图

BpUtil类的方法设计如下:

· repeateString()方法——返回指定个数的字符串对象。

· varchar2text()方法——返回按照指定长度调整的字符串对象。

· setComp()方法——在组件上按照CridBagConstraints布局配置Panel。 · checkWaming()方法——检查数据库连接操作是否出现异常。 · isNumeric()方法——验证字符串能否转换为数值。

· getToday()方法——以YYYY/MM/DD的格式返回今日的日期。

· getToday()方法——返回以今日为基点的指定为YYYY/MM/DD格式的日期。 · isYMD()方法——验证能否识别YYYY/MM/DD格式的字符串。 · GB2312Unicode()方法——GB2312转换为Unicode。 · UnicodeGB2312()方法——Unicode转换为GB2312。

· getRowCount()方法——求数据表中满足条件的记录数。

· convYMD()方法——Java.util.Date类型数据转换为YYYY/MM/DD格式。

3.DbChoice类

DbChoice类定义了用于数据库操作的实例变量与实例方法,其类图如图所 示。

DbChoice类的类图

DbChoice类的属性和方法设计如下:

· con属性——定义用于数据库连接的实例变量。 · query属性——定义用于SELECT语句的实例变量。 · displayCol属性——定义用于检索结果的列数。

· valueCol属性——定义方法getSelectedVal()返回值的列数。

· vItem属性——定义用于保存方法getSelectedVal()返回值的Vector · DbChoice()方法——构造方法,用于初始化实例变量。 · setQueryData()方法——执行检索操作。 · getSelectedVal()方法——返回检索结果。 · setValueCol()方法——设置列的值。 · getValueCol()方法——返回列的值。

· setDisplayCol()方法——设置显示列的值。 · getDisplayCol()方法——返回显示列的值。

· setDisplayhem()方法——设置显示项的列的值。 4.IconCanvas类

IconCanvas类用于完成加载系统界面所使用图标的功能,其类图如图所示。

IconCanvas类的类图

IconCanvas类的方法设计如下:

· IconCanvas()方法——构造方法,用于完成加载图像文件的功能。 · paint()方法——用于完成显示图像文件的功能。 5.MsgDialog类

MsgDialog类用于完成显示系统界面所使用的信息对话框功能,其类图如图13.19所 示。

MsgDialog类的类图

MsgDialog类的属性和方法设计如下:

· MsgDialog()方法——构造方法,用于生成信息显示区域,定义信息对话框的

标题、布局管理器等功能。

· actionPerformed()方法——用于处理发生的事件。

6.SQLExceptionDialog类

当发生数据库异常时,SQLExceptionDialog类定义了用于显示数据库异常信息对话框,其类图如图所示。

SQLExceptionDialog类的类图

SQLExceptionDialog类的属性和方法设计如下:

· SQLExceptionDialog()方法——构造方法,用于定义发生的SQL异常。 · actionPerformed()方法——用于处理发生的事件。 · setMessage()、方法——用于显示发生的异常信息。 系统管理详细设计:

系统管理由Bookplate和LoginDialog两个类组成,Bookplate类用于显示系统主功能界面,LoginDialog类用于显示用户登录对话框界面。Bookplate类与LoginDialog类之间有单向关联关系,即Bookplate类中定义的实例变量dialog可以调用LoginDialog类的构造函数,以实现系统登录界面的显示,描述两者之间关系的类图如图所示。

“系统管理”用例设计类图

Bookplate类的方法设计如下:

· main()方法——系统执行的入口点,用于显示系统主功能界面。

· Bookplate()——构造方法,用于设置系统框架(Frame)、标题、菜单、按钮布局、标签等系统组件。

· aetionPerformed()——当用鼠标左键点击各功能按钮时,分别调用各个子功能系统,同时实现生成、显示和隐藏对应的框架的功能。 LoginDialog类的方法设计如下:

· LoginDialog()方法——构造方法,用于设置用户登录对话框界面的标题、显示信息区域、设置标签和文本域、生成按钮等功能。

· actionPerformed()——当用鼠标左键点击功能按钮时,处理所触发的事件。 · getStatus()——返回按钮的状态值。 · getUserID()——返回用户ID。 · getPassword()——返回用户口令。

 数据库设计(表略)

 完成设计规约

第五篇:uml图书管理系统需求分析与设计

图书馆图书管理系统的需求分析与设计

一、本课题的研究意义

一个图书馆的图书资料库在正常运转中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。图书馆作为一个信息资源的集散地,图书和用户借阅资料繁多,包含着很多的信息数据。以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用人工检查,对借阅者的借阅权限以及借阅天数等采用人工计算、手抄进行,数据信息处理工作量大,容易出错和丢失。因此,建立一个智能化、系统化、信息化的图书资料库是十分重要的。使用计算机软件对图书进行管理,是计算机应用的一部分。充分利用计算机的功能,实现对读者管理、书籍管理等自动化控制,将会使图书资料库的工作强度大大减弱,可以实现图书检索迅速、可靠性高、存储量大、寿命长、成本低,能最大限度地提高图书管理的效率,也是图书管理信息化、正规化管理的必然趋势。

二、图书馆图书管理系统的需求分析与设计过程

图书管理系统的开发和应用主要通过两个步骤来实现:首先是基于系统功能的需求分析,其次是系统模型的设计和实现。

2.1需求分析

需求分析是信息系统设计过程中的一个重要阶段,其中一个主要任务是确定系统的功能需求,并采用面向对象方法,即基于UML的可视化系统进行需求分析。需求分析的目标就是建立需求模型,即从功能需求出发建立图形模型, UML的视图从用户的需求中提取,以图形的方式描述待开发的系统的功能需求。每个图形都指定了客户的需求,即他们需要系统干什么。用图形为设计活动不仅记录需求而且还提供了一种挖掘的信息, 它记录了需求到设计结果之间的映射关系,能够确保设计结果具有明确的根据或者说具有可维护性,基于UML的信息系统设计过程是以建模图形驱动的。

首先我们进行角色的认识,对于一所大学的图书管理系统,基本的功能是完成图书的借阅和相关信息的管理,服务的对象有本科生,研究生,教师,及其他学校的学生,还有社会人员,这些人可归结为一类即读者。而为帮助读者顺利完成借还书的可以是工作人员,可以是自动借还书机,他们可以归结为一类即图书管理人员。因此对于一个图书管理系统主要有两类角色,读者、图书管理员。

其次,在主要角色的基础上,可以识别出与角色相应的用例,从而得到系统的用例模型图。与读者相关的过程包括:借书、还书、预借(想借的书已借出,预定要借的书籍)、图书信息检索、借阅查询(如查询本人借书记录、还书期限、是否超期)、个人相关信息查询及修改(如学号、姓名、性别、年级、专业、家庭住址、联系电话、出生日期、民族、政治面貌、身份证号等)。与图书管理员相关的过程包括:办理借书、办理还书、删除预借对象、图书订购、读者信息管理(增加/删除读者、修改读者权限及密码、借阅超期罚款)、图书信息管理(增加/删除数目、图书类别等相关信息的修改、流通情况)。系统管理(系统的登陆、退出、日志维护、系统更新)。以上分析中,与读者,图书管理员相关的过程构成了本系统的基本用例。

2.2 系统的整体结构

综上所述一个图书馆图书管理系统的整体结构可以分为三大模块:图书管理模块、读者管理模块、系统管理模块。

(1)图书管理模块包括与图书相关的一些过程,主要有图书的借出、图书的归还、预借、图书信息检索、图书订购、图书相关信息管理。

(2)读者管理模块主要包括与读者有联系相关的过程,主要有增加/删除读者、修改读者权限及密码、借阅信息查询、个人信息查询及修该、借阅超期和丢失罚款。

(3)系统管理模块包括系统的登陆、退出、系统维护、系统更新。 综上我们画出系统的整体结构,如图一所示:

图一 图书管理系统的整体结构

2.3 图书管理系统的用例图

从以上分析中我们不难得出系统的基本用例图,如图二所示:

图二 系统的基本用例图

图书管理和图书管理是图书管理系统的重要组成部分,为此我们按照前文所述将图书管理模块和读者模块以及系统管理模块详细精化得出如下的用例图,如图

三、图

四、图五所示:

图三 图书管理模块的用例图

图四 读者管理用例图

图五 系统管理模块的用例图

2.4 图书管理系统的交互图

协作图

上一篇:三年级想象作文400字下一篇:三年级作文上册200字