uml案例教务管理系统
第一篇:uml案例教务管理系统
某大学教务管理系统UML模型
随着高校校园网的建设和Internet技术的引进,基于校园网和Internet的应用系统的开发正在蓬勃发展。教务管理师高校教学管理的一向重要工作,现代化的高校教务管理需要现代化的信息管理系统支持。新世纪背景下,高校教育体制进行了大规模的改革,招生人数逐年增加,教学计划不断更新。在高校日常管理中,教务管理无疑是核心工作,重中之重。其管理模式的科学化与规范化,管理手段的信息化与自动化对于学校的总体发展产生深远的影响,由于管理内容过多,繁琐,处理的过程也非常复杂,并且随着学校人员的增加,教务管理系统的信息量大幅上升,因此往往很难及时准确地掌握教务信息的运作状态这使得高校教务管理的工作量大幅度增加,另外,随着教育改革的不断深化,教学管理模式也在发生变化,例如实施学分制、学生自主选课等。这一切都有赖于计算机网络技术和数据库技术的支持,在这样的形势下建立和完善一个集成化的教务管理系统势在必行。
目前,国内高校都开发了自己基于校园网的教务管理系统。由于其教务管理模式不尽相同,不同学校的实际教务管理情况各有自己的特点,因而各高校需要针对自己的教务管理模式和特点建立自己的教务管理系统。本设计是基于某高校的教务管理模式开发的基于校园网的教务管理系统。这样一个系统不仅可以降低工作量、提高办公效率,而且使分散的教务信息得到集中处理,对减轻教务工作负担、提高教务管理水平、实现教务管理的现代化具有重要意义。
1.建立系统用例模型
1.1确定系统模型的参与者
仔细分析教务管理系统问题描述。在UML中,角色代表位于系统之外和系统进行交互的一类对象,本系统中创建主要的角色有以下三类:
(1)教务员:教务员在教学管理系统中对全体学生进行用户登录、学籍管理、选课管理、教学管理和成绩管理,并且对教师进行登录管理、教学管理和成绩管理。教务处工作人员处理日常的系统维护,例如维护和及时更新学生,教师信息以及安排选课等。
(2)教师:教师根据教务系统的选课安排进行教学,将学生的考试成绩录入此系统。 (3)学生:学生能够在教务管理系统更改学籍信息、进行选课、查询已选课程和考试成绩。
1.2识别用例
用例是系统外部参与者与系统在交互过程中需要完成的任务,识别用例最好的方法就是从分析系统的参与者开始,考虑每一类参与者需要使用系统的哪些功能,如何使用系统,根据教务管理系统的运行流程个提取的参与者信息,确定系统分为以下几个用例: (1)学生参与者用例:
用户登录 学籍管理 选课管理 (2)教师参与者用例:
用户登录 成绩管理 教学管理
(3)教务员参与者用例:
用户登录 学籍管理 排课管理 成绩管理 选课管理 教学管理 系统维护
1.3建立如下四个用例图模型
(1)顶层用例图如图1-1所示
图1-1顶层用例图
从用例图1-1可以看出学生、教师和教务员都使用了“用户登录”用例,表示学生必须先进行用户登录后才可以进行学籍管理和选课管理。同理,教师也必须登录后才能进行成绩管理和教学管理。教务员登录后进行系统设置、学籍管理、排课管理和教学管理等操作。
(2)学生角色用例图 如图1-2所示
图1-2学生角色用例图
从用例图1-2可以看出学生登录后才能进行所有的操作,这样可以提高系统的安全性。 (3)教师角色用例图如图1-3所示
图1-3教师角色用例图 从用例图1-3可以看出教师所有的用例都是建立在“用户登录”基础上,表示教师必须先登录后才可以执行相应的功能,这样可以提高系统的安全性,以免有人故意提供虚假信息。 (4)教务员角色用例图如图1-4所示
图1-4教务员角色用例图
从用例图1-4可以看出教务员的用例相对较多,但是教务员的所有的用例都必须在“用户登录”的基础上,表示教务员必须先登录才可以执行相关的功能,这样同样可以提高系统的安全性,避免有人故意更改信息。
2 建立系统动态模型 2.1活动图
经过活动图的建模可以比较清楚地了解整个进程过程的操作过程,本系统中主要的活动图有如下几个:学生成绩查询活动图、教务员修改学生资料活动图、学生选课活动图以及教师成绩录入活动图
(1)学生成绩查询图如图2-1所示
图2-1 学生成绩查询活动图
从图2-1可以看出,活动图分为多个不同的泳道,每个泳道表示学生在查询成绩活动中不同参与者的工作流。每个泳道中的活动是参与者要执行的操作。通过不通泳道之间的活动过渡,可以了解参与者之间的通信。这些信息可以帮助我们更好地理解系统的业务过程。
在学生成绩查询活动图中可以知道,学生、教师和教务员之间存在着相互联系。学生登录以后可以查询已选科目和成绩单,如果发现自己的成绩单有错误后可以通知教务员成绩有误,教务员联系教师后,教师修改成绩,然后教务员更新数据库。成绩无误后,查询结束。
(2)教务员学生资料修改活动图如图2-2所示; (3)学生选课活动图如图2-3所示;
图2-2教务员学生资料修改活动图图2-3学生选课活动图
从图2-2可以看出,教务员登录教务系统,系统验证用户名和密码,若有错误重新输入,无误后进行选择修改项目,确定修改,
图2-3学生选课活动图图2-4 教师成绩录入活动图
2.2顺序图
主要包括如下几个顺序图 ①教务学籍管理顺序图 ②学生注册顺序图 ③学生选课顺序图 ④教师成绩录入顺序图
图2-5教务学籍管理顺序图
图2-6学生注册顺序图
图2-7教师成绩录入顺序图
3系统类模型 3.1系统包图
将整个教务管理系统划分为人员信息、接口和事务3个包,分别控制不同的应用。
3.2类图
根据系统划分的三类包图,分别讨论人员信息包,接口包和事务包中的类图分别为: (1)人员信息包内的类图 (2)接口包内的类图 (3)事务包内的类图
图3-1 人员信息包内的类图
图3-2接口信息包内的类图
图3-3系统事务信息包内的类图
第二篇:UML库存管理系统
UML课程设计
报告 设计名称: 库存管理系统
专业班级: 姓 名: 学 号: 起止时间: 成 绩 评 定
考核 设计 设计 综合评 答辩 内容 表现 报告 定成绩 成 绩 计算机科学与工程系
一、系统需求说明 20世纪90年代以来随着科学技术和生产力的迅速发展以及经济全球环境的深刻变化,企业面临着一个崭新而又激烈的竞争环境,体现在全球化的信息网络和全球化市场形成所带来的信息爆炸技术变革的加速市场和劳务竞争的全球化,围绕新产品的市场竞争日趋激烈,用户的需求越来越苛刻,同时产品的生命周期不断缩短,企业又面临着缩短交货期、提供产品质量、降低成本和改进服务的压力,在这种情况下全面提高和改善自身水平成为企业最关心的问题之一。企业实施信息化建设已成为企业的发展趋势和提高企业的管理水平的有效手段。信息化建设不在是企业的效益工程而是企业的生存工程,20世纪90年代美国著名的IT分析公司Grant Group Inc,提出了ERP企业资源计划的概念,迎合了信息时代企业管理的发展要求。随着ERP相关理论,以及ERP系统开发的逐渐成熟,企业界掀起了实施ERP管理信息系统的浪潮。中国作为制造大国,在制造业迅速发展的今天,库存国民投资额在整个国民生产总值占有相当大的比重达到了20%——30%,库存管理的适当与否对企业经营利润有很大影响,因此新环境下非常值得人们对ERP环境下的库存管理进行深入研究和探讨。 本文结合ERP环境下的库存管理系统,重点研究如何利用UML建模语言对库存管理系统进行建模,给出了ERP环境下库存管理系统的需求模型和对象模型,在建模过程中利用了用例图、类图、包图、顺序图等图形。最后,结合系统模型的研究,实现了库存管理系统。
二、系统分析
(一) 库存管理业务流程分析 企业的库存管理工作主要由企业物资部门或仓库部门完成,其主要业务就是对企业物料收获、存货、发货,以及分析提供库存管理所需的各种数据报表等管理工作。 库存管理业务流程图,如图所示: 采购部门采购订单 供应商发票 财务部门发货 检验接受库存盘点发销售出入库票货款凭证求购处理入库领料通知单生产发料发料 生产部门仓库部门客户入库 库存订单工票产品入库分析提货单决策部门销售部门 2
(二) Uml表示法 1.1 用例图 根据业务流程图确定系统边界,确定用例(Use Case)。用例可从另一个方面对企业的业务流程建模,从中可以提取对我们开发系统有用的信息,可以确定系统功能。如图2所示库存管理系统的用例图
inter manageout manageadministratorinventory manage
information search
该图展示了一张仓库管理系统的用例图,从系统的外部执行者的角度来看,普通仓库管理员可以进行出库管理、入库管理、盘点管理和信息查询等操作。 (2)顺序图
: administrator1: load
2: back3: data name and position4: copy data5: copy success 3
(3)活动图
produce inventory bills inventory on the spot inventory manage
三、系统设计报告 (一) 库存管理系统需求模型的建立
1、用例图 在库存管理系统中,由于牵扯到大量的执行者和用例,为了便于组织,按与系统交互的对象的不同将系统划分为三个包,如图所示:
用例模型包图 其它系统与仓库高层决策人员和系统仓库管理员管理系统的交互 管理员与系统的交互 与交互系统 仓库管理员与系统交互包主要描述仓库管理员要使用系统的那些功能,向系统输入哪些信息,从系统获取哪些信息,以及需要系统提供哪些功能支持仓库管理员的日常工作。高层决策人员及系统管理员与系统交互包描述高层决策人员需要从系统获取什么信息,做出什么分析与决策支持系统更好的运转;系统管理员则需要维护,管理系统,使其正常化工作。由于库存管理系统并不是一个孤立系统,他需要其他系统进行交互,其他系统与库存管理系统的交互包则反映交互信息的流向。 下面对每个系统包进行详细的描述。 4
(1)仓库管理员与交互的用例模型
high-inventory alarm identity testexpand
useinventory place appointaccount updateinter manageuseexpandadministratorout
managelow-inventory alarminventory manageinformation searchform produce 在这个用例模型中有一个执行者:库存管理员。十一个用例:身份验证,入库管理员,最高库存警报,出库管理,最低库存管理,指定库位,更新账目,库存信息查询,盘点管理及报表生成。 当有物资需要进行出入库时,仓库管理员就要进行出入库的管理:核实账单,清点物资,录入单据,然后由系统自动为该批物资分配货架,同时更新账目。在入库时,如果系统检测该类物资库存量超过限定的最高存量,也将发出警报。在入库管理用例与最高库存警报用例,出库管理用例与最低库存警报用例之间采用了扩展关系。入库管理,出库管理与指定库位之间,指定库位与更新账目之间采用了使用关系。扩展时一种基本需求的特殊情况。而当在两个或更多的用例中出现重复描述而又想避免这种重复时,采用使用。 出入库单据录入后,仓库管理员还需要定期对单据进行核对,即进行库存信息的查询,主要包括:账目信息,出入库信息,以及库位信息,存量信息等。当所有信息核对完成后,仓库管理员还需要定期打印出各种报表,以供其他系统做出一些决策。 盘点也是库管员一项很重要的工作,保持经常有效的盘点,可以更加全面准确的掌握库存信息。当库管员进行盘点时,首先要锁定盘点的库位或物料信息,即盘点时刻不允许出入库;盘点完毕后,要填写盘点记录,对于盘点数量与账目数量不同的物料需求要给出原因。 5
(2)高层决策人员与系统管理员的交互用例模型
inventory originallimits manage
inventory controlidentity testadministratorhigh-adminform produceanalyze reportdata copy and resume 在这个用例模型中共有两个执行者:高层决策人员,系统管理员。七个用例:基本信息维护、数据的备份与恢复、身份验证、仓库信息初始化、库存控制、分析评价及库存信息查询。其中身份验证和库存信息查询用例和库管员和系统的交互的用例是同一用例。对于高层决策人员来讲仓库一些基本信息的初始化,主要是账目和库位信息初始化。当系统开始使用,高层决策人员还是要进行一些库存控制,即为了满足用户及生产需求,确定最低库存量,决定订货时间及订货量。当然为了及时动态了解库存情况,还需要一些库存信息进行分析评价,例如:资金占用情况,积压失效情况,仓库使用情况等。不论是做决定还是分析,都需要库存基本信息支持。对于系统管理员来讲,主要的工作室进行基本信息的维护,包括权限的管理和数据的备份与恢复。 (3)其它系统与库存系统的交互
out manageform produceproduce sys information searchsupply syscost manage project data syssell sysinter manage 由于库存管理系统并不是一个独立的系统,他需要和其他系统进行信息的集成,以保证数据的完整和准确。再生产计划出入库时,需要根据计划来限制出入库的物资品种及数量。 6
当然,计划的制定还需要准确的库存信息。采购供应管理系统需要根据库存信息来制定采购计划,外购物资则需要根据采购计划进行入库。库存管理系统需要用工程数据管理系统中的一些基本信息,包括:物料信息,人员信息,以支持系统准确的进行。销售和成本核算管理系统的梳理进行同样需要库存数据的支持。 2.业务活动图 (1)物资入库活动 inter form receive identity test inter manage inventory inventory inventory place checkcheckstate check alarm transmit inventory place appoint account update 物资的出入库是库存管理中主要的业务,合理的出入库流程不仅能加快出入库的效率, 7
而且能够对库存信息做到心中有数。 当一批物资需要进行出入库时,首先库管员需要核对入库单,清点入库物资,当入库单据与入库物资相符时,才能入库。接着库管员登录系统,通过身份验证,进入入库管理主界面。输入要入库物资的基本信息后,系统自动进行一些信息查询:存量信息,库位状态,盘点状态。当该类物资存量超出最高库存量,系统发出报警,此时可以退出系统,即此类物资不在进行入库,也可以强行入库。在检查库位信息时,如果发现没有空余库位,同样系统会发出警报,但允许入库,只是需要人工指定库位。完成上述步骤,系统会主动为物资安排库位,更新账目,到此时也就完成入库过程。 (2)主要业务活动图 inventory inter out check account place checkcheckcheck
produce
inter and
inventory formoutmanage
analyze
and
inventory NewStatevaluatecontrole 8
库存管理的业务都是以出入库信息,账目信息和库位信息为依托进行的。所以首先需要将出入库信息,账目信息,库位信息进行核对,只有这些信息准确无误才可以进行下一步的工作。核对基本信息后,为了确定仓库内物资,可以进行盘点;为了进行分析评价,库存控制,可以生成报表;对一些信息筛选后,可以进行数据的备份或恢复。
(二)库存管理系统对象模型的建立 1. 类图 基本信息中的类图 入库类别与出库类别的属性为出入库别编码及名称,在进行出入库时,以其为依据判别出入库类型,例如确定一批货物是一般收料还是委托加工等等。 不论是仓库管理员还是系统管理员还是高层决策人员在登录时,都需要进行身份验证,以确定其权限,如果是仓库管理员则需要细化仓库一级权限。 下图为主要类图及没类图的具体属性及操作,如图所示: 9
10
2.顺序图与协作图 (1)物资入库顺序图
inter windowaccountshelves state
inter shelves info1: ready to assign shelve 2: shelve not null3: shelve on inventory4: shelve available5: work normal and update6: back 物资入库顺序图 在完成入库单与入库项的填写后,进入胃物资指定库位的操作中,首先系统要自动检查库位的状态,当没有多余库位或者库位正在进行盘点时,则系统提示不能进入下一步的操作,如果有多余库位则系统自动为物资安排库位,进行物资的入库,同时修改库存信息,此时完成了物资的入库的所有操作。 (2)物资入库协作图 5: error4: error
6: change or check of goods incoming of 3: incoming of change the form(right)formitem2: incoming of form7: checkquit9: surpass of max reserve
window of
account of incomingreserve8: less than max resevelogon 1: incoming of administrgoodsator 11
物资入库协作图 上图为物资入库的合作图。在一批物资要入库时,首先仓库管理员登陆系统进入入库窗体,然后进行入库单录入,只有在入库单填写正确的情况下才能转入入库项填写,如果入库项填写错误时,同样不能进行下一步操作;并且如果在填写入库项时发现仓库内此类物资正在盘点,则此批货物此时不能进行入库的,需要退出或等待。当所有条件都符合时,系统自动检查物资的库存量,但超出仓库最大库存时,退出所有操作;反之进入为此货物指定库位的操作。 (3)状态图
系统人机交互状态图
fail logonstartlogonlogon successoperateentry/ inputdo/ check
namefinishreturncancel password and logoncancelcancelfinishexit/ quit
entry/ prompt do/ checkexit/ quit or returnoutcome 人机系统交互状态图
四、系统的配置与实现
(一)系统的组件图
<>Businessp
The user
The
Server The rocessinterfacedatebase 系统组件图 12
(二) 系统配置图
clientdatab...program 系统配置图
五、设计心得体会 项目实训开始的时候,要求每两个人选择一个题目,本以为这会很简单,可坐下来之后才发现,事实并非如此。从需求分析到最后的课题的终结,中间实现的过程都需要应用很多的理论知识,而时间的推移让自己发现所学知识的肤浅性,只是模糊的停留在知识的表面,没有对其深刻的认识与掌握,同时,这也是对信心,和耐心的一次考验。 通过这次课程设计,小组成员分工合作,我们两个都学到了很多东西。以前不熟悉的地方都得到了很好的解决。我们通过自我学习掌握一些基本应用,并通过项目来加强对其的理解,我们完成了这一系列的设计。过程是艰苦的,但是通过这次实训我们学到了很多,结果是美好的。这次课程设计也让我明白了,作为一个软件技术的学习者,多动手显得尤为重要,另外,多看看经典的例题,多与同学之间交流,对于知识和能力的提高也有很大的帮助。由于我们能力有限,加上时间仓促,本系统难免会出现一些不足之处,对于出现的问题,在此深表歉意,如果还有其他问题希望老师批评指正。 13
第三篇:UML建模--银行管理系统(范文)
银行管理系统的UML
建模
课程设计报告
专业:
学号:
姓名:
任课教师:
一、系统概述
银行是与人们生活密切相关的一个机构,银行可以提供存款、取款、转账等业务。 在银行设立账户的人或机构被称为银行的客户(customer)。一个客户可以在银行开设多个账户(account),客户可以存钱到账户中,也可以从自己的账户中取钱,还可以将存款从一个账户转到另一个账户。另外,客户可以随时查询自己的账户情况,以及查询以前所进行的存款、取款等交易记录。客户还有权利要求关闭自己的账户。
实际生活中的银行功能其实还要复杂得多,但为了简化系统,本次设计只考虑银行的基本功能。简化版的银行信息系统至少应具有如下功能:
1. 一个银行可以有多个账户; 2. 一个银行可以有多个客户; 3. 一个客户可以持有多个账户; 4. 一个账户可以有多个持有者; 5. 银行可以为客户开设账户; 6. 银行可以为客户注销账户; 7. 客户可以从自己账户中取钱; 8. 客户可以向自己账户中存钱;
9. 客户可以在同一银行的不同账户之间转账; 10. 客户可以在不同银行的不同账户之间转账; 请完成登录、存款、取款、转账和查询几个模块的设计。
二、需求分析
银行系统是与生活紧密相关的一个机构,银行提供了存款、取款、转账等业务。在银行设立账户的人或机构通常被称为银行的储户。一个储户可以在银行开多个账户,储户可以存钱到账户中,也可以从自己的账户中取现,还可以将存款从一个账户转到另一个账户。储户还可以随时查询自己账户的情况,并查询以前所进行的存款、取款等交易记录。后台管理员可以对客户的账户进行注销、删除、查询等管理,还有就是银行利息、汇率、手续费之类参数的设置,以及财务管理以及财务分析。
软件分别有开户,查询存取款,转账等功能。各个模块各有不同的功能,但都能完成查询和存取功能。各模块的数据都存放在数据库中。数据的调用和连接都有程序来完成。
此软件所要完成的主要功能有三方面:如果是存款,用户填写存款单,然后交给收银员键入系统,同时系统还要记录存款人姓名,住址,身份证号码,存款类型,存款日期,利率及密码(可选)等信息,完成后由系统反馈成功存款信息给用户。如果是取款,用户填写取款的相关信息(取款金额、取款币种)进行提交,系统要求用户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息单给用户。如果是转账,用户填写转账的相关信息进行提交,系统要求用户输入密码以确认身份,核对密码正确无误后系统计算利息并反馈信息给用户。系统及时更新数据库。
外部功能:实现化窗口,开户/销户、存款/取款、查询/转账。
内部功能:同步,过滤,定位,识别,更新,连接。
三、系统的UML基本模型
(1)、用例图
通过分析对银行管理系统的需求分析,确定参与者有银行客户、收银员。 收银员具有维护系统信息、维护客户信息、查询客户情况和处理处理客户需求的作用。 用例包括:
1)开户、 2)存款、 3)取款、 4)转账、 5)查询、
6)销户等
(2)、用例描述:
用例名称:银行信息系统
描述:银行客户对需要办理业务的需求以及收银员对事件的处理。
(3)、银行信息系统的事件流
1.用例存款的事件流
1.1 前置条件
在存款之前,客户已经办理银行账号并且带来现金若干,并到达银行网点。 1.2 后置条件
如果这个用例成功,这个存款事件是成功的,否则,系统没有变化。 1.3 扩充点
无 1.4 事件流
1.4.1 基流 (1)客户将银行卡交给收银员。
(2)收银员要求客户输入卡密码。
(3)客户输入卡密码,并确认密码。
(4)收银员提示,请客户选择服务类型。
(5)客户选择存款服务。
(6)收银员提示:存款数目。
(7)客户说出数目,并把钱交给收银员。
(8)收银员完成服务。
(9)收银员退还卡。 1.4.2 替代流
如果输入的密码无效,用户可以重新输入密码或者终止用例。
2. 用例转账的事件流
2.1 前置条件
在转账之前,客户已经办理银行账号,被转账人的账号已经存在并且已经知道了对方的账号。
2.2 后置条件
如果这个用例成功,这个转账事件是成功的,否则,系统没有变化。 2.3 扩充点
无 2.4 事件流
2.4.1 基流
(1)客户填写转账单。
(2)客户把转账单和银行卡交给收银员。
(3)收银员要求客户输入卡密码。
(4)客户输入卡密码,并确认密码。
(5)收银员转账成功。
(6)收银员退还卡。 2.4.2 替代流
如果输入的密码无效,用户可以重新输入密码或者终止用例。
3.用例查询的事件流
3.1 前置条件
在查询之前,客户已经办理银行账号并且携带银行卡,并到达银行网点。 3.2 后置条件
如果这个用例成功,这个查询事件是成功的,否则,系统没有变化。 3.3 扩充点
无 3.4 事件流
3.4.1 基流
(1)客户将银行卡交给收银员。
(2)收银员要求客户输入卡密码。
(3)客户输入卡密码,并确认密码。
(4)收银员提示,请客户选择服务类型。 (5)客户选择查询服务。
(6)客户说出查询内容,收银员将内容反馈给客户。
(7)收银员完成服务。
(8)收银员退还卡。 3.4.2 替代流
如果输入的密码无效,用户可以重新输入密码或者终止用例。
(4)、活动图
活动图是基于对象的状态变迁所绘制的视图。
收银员首先凭着自己的系统用户名和密码登录系统,收银员可以通过银行客户提供的有效证件号开户,提供客户账号开户、存款、取款、转账、查询、销户等功能,最后退出系统。
1.存款活动图
2.转账活动图
3.查询活动图
(5)、时序图
时序图(Sequence Diagram)主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。收银员通过用户账号和密码登录系统,在系统的操作窗口对需要存款、取款、转账、查询、销户的用户进行操作,最后退出操作窗口。
我们所开发的银行管理系统时序图如图所示:
(6)、类图
类图是对象结构建模的一部分,类图描述系统中类的静态结构。类图是代码生成(将模型转化为代码)的来源,也是逆向工程(将代码转化为模型)的目标设生成物。
类图设计如下图:
系统中主要的类 (1)用户类: 它的属性有用户名(Name)、密码(Password)、银行卡号(Cardnumber)、用户身份证号码(ID)。
操作包括修改密码(Changpassword)、存款(deposit)、取款(cash)、转账(transfer)、 查询(Chaxun)、、用户开户(Registered)。
(2)系统类:
它的属性有电脑号(Computernumber)、机器地址(Mac)。 本身的操作没有,但有被管理员使用的操作。 (3)收银员类:
它的属性有用户名(name)、密码(password)。
操作包括用户开户(Registeredusers)、注销用户(Deleteusers)、查询用户信息(Chaxun)、系统维护(Weihu)。
(7)状态图
状态图用来表示建模对象是如何改变其状态的,状态定义为对象行为在某一时刻的快照或转折点。
四、结论
系统主要的实现目标是实现客户开户、存款、取款、转账、查询、销户和后台服务器端系统的设计,提供完善的功能设计。
五、总结及心得体会
UML工具很好的帮助我们实现了对银行信息系统的设计,通过UML建模,把事物从抽象到实例化的过程,对每个对象进行细化分析,从而得到简单而方便,容易理解的模型结构。通过此次试验收获很大,使我们认识到了通过UML模型可以高效完成软件设计,收获颇丰。
一、开发背景与目标
1.1开发背景
本系统选题为银行存储系统,是模拟银行存储开发的。随着计算机的飞速发展及应用领域的扩大,特别是计算机网络和电子商务的发展,极大的改变了商业银行传统的经营模式。能够为客户提供方便、快捷、安全的服务,也能够有效的降低银行的营运成本,这是银行存储系统追求的目标。目前,对于现代化银行运营的要求是客户可以实现方便安全的业务交易,银行职员可以进行高效合理的工作管理,实现银行业务电子化
在银行管理系统中,系统包括4个节点,分别是:银行管理员业务处理节点、
ATM自动取款机节点、系统维护节点、数据库节点。
银行管理员业务处理节点,银行管理员通过该节点办理相应业务; ATM自动取款节点,用户通过该节点进行自动取款服务;
系统维护节点,系统管理员通过该节点进行后台维护,执行银行管理员允许的所有操作;数据库节点,负责数据的存储与处理。
谁使用系统的主要功能?谁改变系统的数据? 谁从系统获取信息? 谁需要系统的支持才能完成日常的工作任务?谁负责维护,管理并保持系统的正常运行?系统需要应付,处理那些硬件设备?系统需要和那些外部系统交互?谁(或是什么)对系统运行产生的结果感兴趣?
用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。
【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求
第四篇:uml 描述高校教材管理系统
2 高校教材管理系统
随着高等学校扩大招生情况的出现,每一个高校需要处理的各种教材的数量逐年倍增。如何改变低效率的原始教材管理方式,成为摆在高校管理人员面前的一个重要课题。而建立高效的教材管理系统就是一个解决此根本问题的思路。所以,这里为读者介绍一个高校教材管理系统的建模实例。
2.1需求分析
高校教材管理系统的功能性需求综述如下:
(1)高校的每个学生使用自己的姓名和学号登陆系统之后,可以查询自己每个学期的教材使用情况,也能够查询自己的教材费用。
(2)高校的每个老师使用自己的姓名和密码登陆系统后,能够查询自己教材的使用情况,也可查询自己的教材费用(供报销用)。
(3)系统管理员通过用户名和密码登陆系统后,能够输入教材订购计划,生成订购单,统计各个班级教材费用和教材使用情况,同时,还可以更新删除学生﹑教师﹑教材等各类信息。
2.2系统建模
在系统建模以前,我们首先需要在Rational Rose 2003中创建一个模型。并命名为“高校教材管理系统”,该名称将会在Rational Rose 2003的顶端出现,如下图2-1所示。
图2-1创建项目系统模型
2.2.1创建系统用例模型
创建系统用例的第一步是确定系统的参与者。高校教材管理系统的参与者包含以下三种:
(1)学生(2)教师(3)系统管理员
此三个参与者如图2-2所示。
图2-2 系统参与者图 2-3 学生用例图
然后,我们根据参与者的不同分别画出各个参与者的用例图。
(1)学生用例图:学生在本系统中可以进行登录、教材费用查询和教材使用情况查询的相关操作,通过这些活动创建的学生用例图如图2-3所示。
(2)教师用例图:教师在本系统中可以进行登录、查询教材费用和教材使用情况查询的操作,通过这些活动创建的教师用例图如图2-4所示。
图 2-4 教师用例图图 2-5 系统管理员用例图
(3)系统管理员用例图:系统管理员在本系统中可以进行登录、教材订购资料输入、生成订购单、统计教材费用、统计教材使用情况和管理各类信息的操作,通过这些活动创建的系统管理员用例图如图2-5所示。
2.2.2创建系统静态模型
从前面的需求分析中,我们可以依据主要六个类对象:学生、教师、班级、教材、库存和订单创建完整的类图如图2-6所示。
图2-6 系统类图
2.2.3创建系统动态模型
系统的动态模型可以使用交互作用图、状态图和活动图来描述。
2.2.3.1 创建序列图和协作图
1.学生在本系统中活动步骤分为:(1)进行注册个人信息(2)登录通过身份验证(3)选择查询的教材(4)查询使用情况(5)返回查询结果(6)退出系统。根据以上步骤创建的序列图和协助图,如下图2-7和图2-8所示。
图 2-7 学生序列图
图 2-8 学生协作图
2.表示教师的序列图和协作图与学生序列图和协作图相似,只是把学生换成了教师。
3.系统管理员在本系统活动的步骤分为:(1)进行注册个人信息(2)登录通过身份验证(3)管理学生信息、管理教师信息或管理教材信息。(4)退出系统。根据以上步骤创建的的序列图和协作图,如图2-9和图2-10所示。
图 2-9 系统管理员序列图
图 2-10 系统管理员协作图
2.2.3.2 创建活动图
我们还可以利用系统的活动图来描述系统的参与者是如何协同工作的。高校教材管理系统中,根据教材管理人员、学生和教师的活动步骤,我们可以创建活动图如下图2-11所示。
图 2-11 系统活动图
2.2.3.3 创建状态图
在高校教材管理系统中,有明确状态转换的类是系统参与者,在整个验证过程前后有各种不同的状态。本系统的状态图如下图2-12所示。
图 2-12 参与者状态图
2.2.4创建系统部署模型
对系统的实现结构进行建模的方式包括两种,即构件图和部署图。高校教材管理系统的构件图我们通过构件映射到系统的实现类中,说明该构件物理实现的逻辑类,在本系统中,我们可以对学生类、系统管理员类、教师类、教材库存、订单类、教材类和班级类分别创建对应的构件进行映射,创建的高校教材管理系统的构件图如图2-13所示。
.图2-13 系统构件图
高校教材管理系统的部署图描绘的是系统节点上运行资源的安排。包括四个节点,分别是:客户端浏览器、Http服务器、数据库服务器和打印机,创建后的部署图如图2-14所示。
图 2-14 系统部署图
第五篇:图书管理系统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()——返回用户口令。
数据库设计(表略)
完成设计规约