UML建模实验报告
- 格式:doc
- 大小:158.00 KB
- 文档页数:13
面向对象建模方法与技术综合实验报告题目:在线选课系统的U M L建模班级:信息081班学号:3080702138*名:**指导教师:修宇UML建模实验报告一、用例图(一)本次目的1)熟悉用例图的基本功能和使用方法。
2)掌握如何使用建模工具绘制用例图方法。
(二)要求请完成如下任务:1)使用Rational rose 画出选课系统的用例图。
2) 同时对主要功能用例进行详细说明。
选课系统用例图如下图所示:Delete Course图1二、活动图(一)本次目的1)熟悉活动图的基本功能和使用方法。
2)掌握如何使用建模工具绘制活动图方法。
(二)要求请完成如下任务用活动图来描述系统中已知用例的业务过程1)使用活动图对选课用例或相关用例进行描述。
2)使用活动图对建立选修课程目录表用例进行描述。
活动图如下图所示:使用ROSE创建类图。
请完成如下任务:1)寻找和抽象出选课用例或相关功能中的类,并进行简要说明。
2)确定类之间的继承关系已经创建类之间的继承关系,。
3)请根据教材中示例部分在Rational Rose中绘制类间的关联关系。
类图如下图所示:图3四、序列图及协作图完成了选课系统的需求分析,并从业务对象中抽象出了类。
现在需要对前面所给出的用例进行实现,而用例的实现主要由交互图来指定和描述系统的动态特性。
(一)本次目的1)理解顺序图的基本概念;2)理解协作图的基本概念;3)掌握在Rational Rose中绘制交互图的操作方法。
(二)要求请完成如下任务1)阅读用例建模得到的用例文档说明和用例图。
2)根据事件流,确定对象,对选课功能中的主要用例进行动态建模。
3)根据分析设计情况,进一步发现类,细化各类之间的关系,确定主要类的属性和职责。
Add Course 序列图如下所示:图4Delete Course 序列图如下所示:图5Modify Course 序列图如下所示:图6Query Course 序列图如下所示:图7Registrar Login 序列图如下所示:图8Select Course序列图如下所示:图9Select Course 协作图如下所示:6: DisplayCourseList()db : Database图10五、状态图(一)本次目的1)理解什么状态和状态图;2)学会使用UML绘制状态图(二)要求请完成如下任务1)考察课程类对象的状态变化情况并分析,定义状态及迁移及条件,对课程类对象进行状态建模。
2)考虑选课系统的业务流程,对系统进行状态建模,帮助设计人员对系统业务的进一步理解。
状态图如下所示:图11六、构建图和部署图(一)本次目的1)理解组件图的基本概念2)理解组件图的应用:逻辑部署3)理解部署图的基本概念4)理解部署图的应用:物理部署5)掌握组件图和部署图绘制的方法(二)要求请完成如下任务参照实验辅导教材,画出选课系统构件图及部署图并进行文字说明。
构建图如下所示:MainProgram图12部署图如下所示:Web浏览器Apache服务器Oracle打印机图13七、双向工程(一)本次目的1)理解双向工程的概念2)使用Rose进行完成模型的代码生成(二)要求请完成如下任务现在,选课系统的分析和设计工作已经基本完成,即将进入编码阶段。
为了加快编码进度,可以利用建模工具执行正向工程,将系统中的模型转换成指定语言类型的代码框架,现要求您使用Rose工具将设计的模型通过正向工程生成代码框架。
按照使用Rose工具生成代码的6步基本步骤可以顺利的完成代码框架的生成工作。
(1)检查模型,(2)创建组件(3)将类映射到组件(4)设置代码生成属性(5)选择类,组件和包(6)生成代码粘贴得到的主要代码生成代码如下://People.javapublic class People {private String name;private int age;public People() {}}//Student.javapublic class Student extends People {private int StudentID;public FormObject theFormObject;public Student() {}public int getStudentID() {return StudentID;}}//DataBase.javapublic class DataBase {private String dbpath;public DataBase() {}public boolean QueryCourse(int CourseID) { return true;}public Boolean AddCourse(Course Course) { return true;}public Boolean DeleteCourse(int CourseId) { return true;}public void QueryAllCourse() {}public Boolean querYAssociation(int CourseID, int StudentID) { return true;}public Boolean AddAssociation(int CourseID, int StudentID) { return true;}public void QuerySelectedCourse() {}public String QueryPasswd(int regID, String Regname) {return null;}}//Registrar,javapublic class Registrar extends People {private int regID;public FormObject theFormObject;public Registrar() {}private void GetRegistRarInfo() {}}//Course.javapublic class Course {private String name;private String classroom;private int CourseID;private String teacher;private int Students;private String firstLessondate;private int maxStudent;public Course() {}public void Create(String Coursename, int CourseID, String ClassRoom, String Teacher) {}public void getCourseInfo() {}public void DestroyCourse() {}}//ControlObject.javapublic class ControlObject {public DataBase theDataBase;public FormObject theFormObject;public Course theCourse[];public ControlObject() {}public boolean VerifyCourse(Course course) {return false;}public boolean CanAdd() {return false;}public boolean CanModify() {return false;}public boolean QueryCourseByID(int courseID) {return false;}public void ConfirmDelete() {}public void GetAllCourse() {}public boolean queryAssociation(int CourseId, int StudentID) { return false;}public boolean CanSelect() {return false;}public void QueryCoursseList(int StudentID) {}public boolean VerifyRegistrar(int regID, String regname) { return false;}public Boolean CheckPasswd() {return false;}}//FormObject.javapublic class FormObject {public ControlObject theControlObject;public Course theCourse;public FormObject() {}private void GetCourseInfo() {}private void ShowSuccessInfo(String strinfo) {}public int GetCourseID() {return 0;}private void ShowConfirmPage(String strInfo) {}private void ConfirmDelete() {}private void SelectCommand() {}private void DisplayCourseList(Course[] courseList) {}private void DisplayCourseList() {}private void QuerySelectedCourse(int StudentID) {}}实验小结本学期的实验到此也告一段落了。
一学期的实验主要完成“在线选课系统的UML建模”,现已圆满完成。
在学习课本知识的同时,结合实验指导书,边学习新知识边进行实际操作。
对书本上的知识有了更全面的掌握。
在建模过程中遇到了一些问题,通过询问老师、同学和上网查找资料,得到了比较满意的解决。
在这次课程设计实验中,关于UML的概念以前比较模糊的地方,在实际操作中,变得更加清楚了。
对Rational Rose的UML功能运用的更加熟练。
使我对UML建模的思想有了更进一步的了解,在以后得学习中,还将不断的学习UML 的理论知识。