1、UML建模实验报告系统超市运营设计资料UML建模实验报告一、 用例图(一) 本次目的1) 熟悉用例图的基本功能和使用方法。2) 掌握如何使用建模工具绘制用例图方法。(二) 要求请完成如下任务:1) 使用Rational rose 画出选课系统的用例图。2) 同时对主要功能用例进行详细说明。 选课系统用例图如下图所示: 图1二、 活动图(一) 本次目的1)熟悉活动图的基本功能和使用方法。2)掌握如何使用建模工具绘制活动图方法。(二) 要求请完成如下任务用活动图来描述系统中已知用例的业务过程1) 使用活动图对选课用例或相关用例进行描述。2) 使用活动图对建立选修课程目录表用例进行描述。 活动图如下
2、图所示: 图2三、类图(一) 本次目的1) 理解类的基本概念;2) 掌握如何从需求分析中抽象出类的方法及关系;3) 掌握在Rational Rose中绘制类的操作方法。(二) 要求请完成如下任务通过这用例图和活动图我们可以初步了解系统的业务处理流程。现在需要对系统进行静态建模,这就需要从系统的用例图、活动图去寻找和发现重要概念和对象,定义类及关系,使用ROSE创建类图。请完成如下任务:1) 寻找和抽象出选课用例或相关功能中的类,并进行简要说明。2) 确定类之间的继承关系已经创建类之间的继承关系,。3) 请根据教材中示例部分在Rational Rose中绘制类间的关联关系。 类图如下图所示: 图
3、3四、序列图及协作图完成了选课系统的需求分析,并从业务对象中抽象出了类。现在需要对前面所给出的用例进行实现,而用例的实现主要由交互图来指定和描述系统的动态特性。(一) 本次目的1) 理解顺序图的基本概念;2) 理解协作图的基本概念;3) 掌握在Rational Rose中绘制交互图的操作方法。(二) 要求请完成如下任务1) 阅读用例建模得到的用例文档说明和用例图。2) 根据事件流,确定对象,对选课功能中的主要用例进行动态建模。3) 根据分析设计情况,进一步发现类,细化各类之间的关系,确定主要类的属性和职责。 Add Course 序列图如下所示: 图4 Delete Course 序列图如下所
4、示: 图5 Modify Course 序列图如下所示: 图6 Query Course 序列图如下所示: 图7 Registrar Login 序列图如下所示: 图8 Select Course序列图如下所示: 图9 Select Course 协作图如下所示: 图10 五、状态图(一) 本次目的1) 理解什么状态和状态图;2) 学会使用UML绘制状态图(二) 要求请完成如下任务1)考察课程类对象的状态变化情况并分析,定义状态及迁移及条件,对课程类对象进行状态建模。2)考虑选课系统的业务流程,对系统进行状态建模,帮助设计人员对系统业务的进一步理解。 状态图如下所示: 图11六、构建图和部署图
5、(一) 本次目的1) 理解组件图的基本概念2) 理解组件图的应用:逻辑部署3) 理解部署图的基本概念4) 理解部署图的应用:物理部署5) 掌握组件图和部署图绘制的方法(二) 要求请完成如下任务参照实验辅导教材,画出选课系统构件图及部署图并进行文字说明。 构建图如下所示: 图12 部署图如下所示: 图13七、双向工程(一) 本次目的1) 理解双向工程的概念2) 使用Rose进行完成模型的代码生成(二) 要求请完成如下任务现在,选课系统的分析和设计工作已经基本完成,即将进入编码阶段。为了加快编码进度,可以利用建模工具执行正向工程,将系统中的模型转换成指定语言类型的代码框架,现要求您使用Rose工具
6、将设计的模型通过正向工程生成代码框架。按照使用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 FormObje
7、ct 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 Cours
8、eId) 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; /Regist
9、rar,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; priv
10、ate 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 FormObje
11、ct 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
12、 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; /FormObje
13、ct.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() pr
14、ivate void SelectCommand() private void DisplayCourseList(Course courseList) private void DisplayCourseList() private void QuerySelectedCourse(int StudentID) 实验小结 本学期的实验到此也告一段落了。一学期的实验主要完成“在线选课系统的UML建模”,现已圆满完成。在学习课本知识的同时,结合实验指导书,边学习新知识边进行实际操作。对书本上的知识有了更全面的掌握。在建模过程中遇到了一些问题,通过询问老师、同学和上网查找资料,得到了比较满意的解决。在这次课程设计实验中,关于UML的概念以前比较模糊的地方,在实际操作中,变得更加清楚了。对Rational Rose的UML功能运用的更加熟练。使我对UML建模的思想有了更进一步的了解,在以后得学习中,还将不断的学习UML的理论知识。