UML课程设计华北电力大学科技学院Word文件下载.docx
《UML课程设计华北电力大学科技学院Word文件下载.docx》由会员分享,可在线阅读,更多相关《UML课程设计华北电力大学科技学院Word文件下载.docx(34页珍藏版)》请在冰豆网上搜索。
并熟练运用相关建模工具对软件系统进行静态建模和动态建模。
3.通过运用面向对象方法对一个小型软件应用系统进行完整设计,可以培养学生面向对象分析和建模能力。
主要有以下几个方面的具体要求:
使用UML语言中的各种图形表达面向对象分析设计的建模结果;
熟练使用建模工具实践UML语言;
加深面向对象概念、面向对象设计原则的理解,并能够自觉运用;
熟悉并实践面向对象分析与设计的步骤。
二、主要内容
本实验是针对一个实际中常见的小型系统(需求参见班级邮箱中下发的需求文档)进行全面的分析,主要包含以下内容:
1.根据所选系统收集简单需求,利用CASE工具对系统进行用例建模。
2.根据前述需求描述,进行初步分析,寻找并筛选类及其属性、操作,绘制相应的类图;
同时寻找类之间的静态关系,建立类模型。
3.根据用例模型,分析类对象的状态变化情况,并对其中重要部分绘制系统的状态图。
4.根据用例模型,进行类之间的交互情况分析,并对其中重要的交互情况绘制活动图。
5.根据用例模型,进行类之间的交互情况分析,并对其中重要的交互情况绘制顺序图。
6.将类图生成代码(C++或JAVA)。
7.将代码在相应的环境中,进行扩充编程,能运行,具有良好的人机界面。
三、进度计划
序号
设计(实验)内容
完成时间
备注
1
理解系统需求,建立相应的用例图
第一天
2
建立相应的类图,确定类之间的关系
第二天
3
建立UML各种图
第三天
4
程序运行
第四天
5
测试并验收
第五天
四、设计(实验)成果要求
1.运用建模工具完成系统的面向对象的分析;
生成代码;
代码运行,效果良好。
2.完成实验报告。
五、考核方式
1.在微机上检查系统的建模情况,并请学生解释分析和设计的理由。
2.实验报告的检查。
南方小羊
课程教学组
2011年6月27日
一、课程设计(综合实验)的目的与要求
课程设计目的:
1、掌握运用数据库原理进行系统分析和设计的方法;
2、掌握关系数据库的设计方法;
3、掌握利用rose技术;
4、掌握应用程序对数据库的访问方法。
课程设计内容及要求:
1.要求根据数据库原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。
2.需求分析具体实现
3.对应用程序进行概要设计。
4课程设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。
正确地完成上述内容,规范完整地撰写出课程设计报告。
二、设计(实验)正文
图书管理系统主要设计目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。
同时对整个系统的分析、设计过程给出一个完整论证。
图书管理系统是一种基于集中统一规划的数据库数据管理新模式。
在对图书、读者的管理,其实是对图书、读者数据的管理。
本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。
需求分析,需求分析是指准确了解和分析用户的需求,这是最困难、最费时、最复杂的一步,但也是最重要的一步。
它决定了以后各步设计的速度和质量。
根据系统的需求,首先将要记录的信息分类,要记录的信息如下。
1.系统的功能需求包括一下几个方面。
(1)借阅者可以通过网络查询书籍信息和预定书籍。
(2)借阅者能够节约书籍和还书。
(3)图书管理员能够处理借阅者的借阅和还书请求。
(4)系统管理员可以对系统的数据进行维护,如增加、删除和更新数目,增加、删除和更新借阅者账户,增加和删除书籍。
(1)用例图
(2)时序图
(3)协作图
(4)活动图
(5)类图
2.设计过程
用例图分析:
借阅者请求服务的用例图
图书馆里员处理借书还书的用例图
系统管理员进行系统维护的用例图
实现用例的时序图:
系统管理员添加借阅者账户的时序图
Create(string,string):
添加新的借阅者账户的函数
Additem():
添加书籍函数。
find(string):
根据书籍查找相应数目的函数。
Creat(intefer,title):
修改书籍数目的函数。
系统管理员删除数目的时序图
Find(string):
书目类的查找函数
Find_on_title(title):
查找此书目下书籍信息的函数
Destroy():
删除书籍信息的函数
删除书目信息的函数
图书管理员处理书籍借阅的时序图
查找书目的函数
Find_item()查找所要书籍的函数
根据书目名从数据库中找到书目信息的函数
Identity_borrower():
验证借阅者身份的函数
根据借阅者的登录账号找到借阅者信息的函数
Creat(borrower,item):
修改借阅信息的函数
图书管理员处里书籍归还的时序图
Check():
检查书籍状况的函数
Update:
()更新书籍类信息的函数
Update():
更新借阅者借阅信息的函数
借阅者查询书籍信息的时序图
借阅者预定书籍的时序图
书的状态图
借阅者账户的状态图
借阅者的活动图
图书管理员的活动图
系统管理员维护借阅者账户的活动图
系统管理员进行书目信息维护的活动图
系统管理员维护书籍信息的活动图
类图:
publicclassAdministrator
{
privateStringworkID;
privateStringcode;
publicTheLibraryRecordstheTheLibraryRecords;
/**
@roseuid4FEBB648031B
*/
publicAdministrator()
{
}
@roseuid4FEBAFA100B1
publicvoidfindReaderInformation()
stringname1;
System.out.println("
inputname3"
)
Scannersc=newScanner(systemin);
name3=sc.nextstring;
@roseuid4FEBAFA100B2
publicvoidfindBookInformation()
inttota_lmunber1;
stringouthor1;
stringtype1;
intborrow_number1;
BooleanIsAllowForBorrow;
inputouthor1"
outhor=sc.nextstring;
inputnumber1"
tota_lnumber1=sc.nextInt;
outhor1=sc.nextstring;
inputtype1"
type1=sc.nextstring;
inputborrow_numbe1"
borrow_number1=sc.nextInt;
System.out.print("
succestitle"
);
stringdate2;
stringISBN2;
doublemoney2;
Boolenispay2;
inputdate2"
date2=sc.nexttring;
inputISBN2"
ISBN2=sc.nexttring;
inputmoney"
money2=sc.nextstring;
;
sucesstoloan"
stringname3;
stringstate3;
stringzip3;
intmaxbook3;
intmaxda3y;
stringuserId3;
intborrownumbe3r;
inputstate3"
state3=sc.nexttring;
inputzip3"
zip3=sc.nextstring;
inputuserId3"
useId3=sc.nexttring;
inputmaxbook"
maxbook3=sc.nextInt;
inputmaxday3"
maxday3=sc.nextInt;
inputborrow_number3"
borrow_number3=sc.nextInt;
}
@roseuid4FEBAFA100B3
publicvoidaddBook()
System.out.print("
请输入书名:
"
);
Stringsbn=s.nextLine();
System.out.println();
@roseuid4FEBAFA100B4
publicvoidaddBookInformation()
{
请输入作者:
Stringa=s.nextLine();
请输入出版社:
Stringp=s.nextLine();
请输入ISBN号码:
StringsISBN=s.nextLine();
publicclassBossextendsAdministrator
@roseuid4FEBBF2703A5
publicBoss()
@roseuid4FEBB4C901CD
publicvoiddestroyWorker()
publicclassOtherextendsStudent
@roseuid4FEBB64802EC
publicOther()
publicclassStudent
privateStringname;
privateStringborrowID;
privateStringStudentID;
privateintallowtotal;
publicStudent()
publicvoidborrow()
BookInfo[]numOfInfo;
Scanners=newScanner(System.in);
Menus()
numOfInfo=newBookInfo[MAX];
numOfInfo[NUMBER++]=newBookInfo();
for(inti=NUMBER;
i<
MAX;
++i)
numOfInfo[i]=newBookInfo();
}
publicvoidreturn()
if(date2equaldate&
&
ISBN2equalISBN&
money2equalmoney&
ispay2equalixpay)
successreturn"
publicvoidfind()
if(name1equalname&
author1equalauthor&
isbn1equalisbn&
tota_number1equaltota_number&
borrow1equalborrow_number&
type1equaltype)
successfindtitle"
if(name3equalname&
state3equalstate&
zip3equalzip&
maxbook3equalmaxbook&
userId3equalmaxbookmaxdy3equalmaxdsay&
userId3equaluserId&
borrow_number3equalborrow_number)
ystem.out.println("
successBorrower"
publicvoidfindstate()
@roseuid4FEBAFA100B5
publicvoiddestroy()
是否注销"
if(yes)
pressy"
else
pressn"
publicclassTheLibraryRecords
privateintname;
privateintborrowID;
privateintbookInformation;
publicAdministratortheAdministrator;
publicStudenttheStudent;
publicBooktheBook;
@roseuid4FEBB64803B7
publicTheLibraryRecords()
{stringname;
inttota_lmunber;
stringouthor;
stringtype;
if(haspeopleborrowbook||haspeoplereturn||hasnewbook)
inputouthor"
inputtota_lnumber"
inputtype"
type=sc.nextstring;
@roseuid4FEBAFA100BE
publicvoidsetInformation()
@roseuid4FEBAFA100BF
publicclassBook
privateStrin