《面向对象方法在线选课系统UML建模报告.docx》由会员分享,可在线阅读,更多相关《面向对象方法在线选课系统UML建模报告.docx(14页珍藏版)》请在优知文库上搜索。
1、面向对象方法在线选课系统UML建模报告一、用例图(一)本次目的1)熟悉用例图的基本功能和使用方法。2)掌握如何使用建模工具绘制用例图方法。(二)要求请完成如下任务:1)使用RationaIroSe画出选课系统的用例图。2)同时对主要功能用例进行详细说明。选课系统用例图如下图所示:二、活动图(一)本次目的1)熟悉活动图的基本功能和使用方法。2)掌握如何使用建模工具绘制活动图方法。(二)要求请完成如下任务用活动图来描述系统中已知用例的业务过程1)使用活动图对选课用例或相关用例进行描述。2)使用活动图对建立选修课程目录表用例进行描述。活动图如下图所示:三、类图(一)本次目的1)理解类的基本概念;2)
2、掌握如何从需求分析中抽象出类的方法及关系;3)掌握在RationalRose中绘制类的操作方法。(二)要求请完成如下任务通过这用例图和活动图我们可以初步了解系统的业务处理流程。现在需要对系统进行静态建模,这就需要从系统的用例图、活动图去寻找和发现重要概念和对象,定义类及关系,使用ROSE创建类图。请完成如下任务:1)寻找和抽象出选课用例或相关功能中的类,并进行简要说明.2)确定类之间的继承关系已经创建类之间的继承关系,。3)请根据教材中示例部分在RationalRose中绘制类间的关联关系。类图如下图所示:图3四、序列图及协作图完成了选课系统的需求分析,并从业务对象中抽象出了类。现在需要对前面
3、所给出的用例进行实现,而用例的实现主要由交互图来指定和描述系统的动态特性。(一)本次目的1)理解顺序图的基本概念;2)理解协作图的基本概念;3)掌握在RationalRose中绘制交互图的操作方法。(二)要求请完成如下任务1)阅读用例建模得到的用例文档说明和用例图。2)根据事件流,确定对象,对选课功能中的主要用例进行动态建模。3)根据分析设计情况,进一步发现类,细化各类之间的关系,确定主要类的属性和职责。图4DeIeteCourse序列图如下所示:图5图6序列图如下所示:Query Course图7RegistrarLogin序列图如下所示:SelectCOUrSe序列图如下所示:1:Sele
4、ctCommarxfOForm:FOrmVieW8:GetCourseDO14:GetStudentIDO5:GetCoursehfoO4:Create(StringjntjString1String)6:DisplayCourseListOIW7j:DestroyCourseQfU9:Queryssociation(it,int)2:GetAlICourseOCOntiol:ControIObiectdb:J3:QueryCourseODatabaSe:13:ShowsuccessInfo(String)10: QueryAssociation(int,int)、11: CanSeleetO
5、TJ12:AddASSOCiatiOn(int,int)SeIectCourse协作图如下所示:6:DisplayCourseListO5:GetCourselnfo()form:FOrmvieW8:GetCourseID1:SeIectQommandQ7:DestroyCourseOurses:COUrSe10:QueryAssociation(int1int)3:QueryCourseOcontrol:ControlobieCtStU14:GetStudentIDO2:QeJAIIurse()13:ShoWSuCCe於ImO(String)11:CanSeIeociation(ipttt)
6、12:AddAssociation(IntJnt)Tdb:Database图10五、状态图(一)本次目的1)理解什么状态和状态图;2)学会使用UML绘制状态图(二)要求请完成如下任务1)考察课程类对象的状态变化情况并分析,定义状态及迁移及条件,对课程类对象进行状态建模。2)考虑选课系统的业务流程,对系统进行状态建模,帮助设计人员对系统业务的进一步理解。状态图如下所示:图11六、构建图和部署图(一)本次目的1)理解组件图的基本概念2)理解组件图的应用:逻辑部署3)理解部署图的基本概念4)理解部署图的应用:物理部署5)掌握组件图和部署图绘制的方法(二)要求请完成如下任务参照实验辅导教材,画出选课系
7、统构件图及部署图并进行文字说明。构建图如下所示:MainProgram部署图如下所示:图13七、双向工程(一)本次目的1)理解双向工程的概念2)使用R。Se进行完成模型的代码生成(二)要求请完成如下任务现在,选课系统的分析和设计工作已经基本完成,即将进入编码阶段。为了加快编码进度,可以利用建模工具执行正向工程,将系统中的模型转换成指定语言类型的代码框架,现要求您使用Rose工具将设计的模型通过正向工程生成代码框架。按照使用Rose工具生成代码的6步基本步骤可以顺利的完成代码框架的生成工作。(1)检查模型,(2)创建组件(3)将类映射到组件(4)设置代码生成属性(5)选择类,组件和包(6)生成代
8、码粘贴得到的主要代码生成代码如下:/PeopIe.javapubIicclassPeopIeprivateStringname;privateintage;pubIicPeopIe()/Student.javapubIiccIassStudentextendsPeopIeprivateintStudentID;pubIicFormObjecttheFormObject;pubIicStudent()pubIicintgetStudentID()returnStudentID;)/DataBase.javapubIiccIassDataBaseprivateStringdbpath;pubIic
9、DataBase()JpubIicbooleanQueryCourse(intCourseID)returntrue;pubIicBooleanAdcICourse(CourseCourse)returntrue;)pubIicBooleanDeIeteCourse(intCourseld)returntrue;)pubIicBooleanquerYAssociation(intCourseIDtintStudentID)returntrue;1pubIicBooleanAddAssociation(intCourseID1intStudentID)returntrue;)pubIicvoid
10、QuerySeIectedCourse()pubIicStringQueryPasswd(intreglD,StringRegname)returnnull;)/Registrar,javapubIiccIassRegistrarextendsPeopIeprivateintreglD;pubIicFormObjecttheFormObject;pubIicRegistrar()()privatevoidGetRegiStRarInfoO()/Course,javapubIiccIassCourse(privateStringname;privateStringcIassroom;privat
11、eintCourseID;privateStringteacher;privateintStudents;privateStringfirstLessondate;privateintmaxStudent;pubIicCourse()pubIicvoidCreate(StringCoursename,intCourseID,StringCIassRoom,StringTeacher)()pubIicvoidgetCourseInfo()pubIicvoidDestroyCourse()/ControIObject.javapubIiccIassControIObject(pubIicDataB
12、aseIheDataBase;pubIicFormObjecttheFormObject;pubIicCoursetheCourse;pubIicControIObject()pubIicbooleanVerifyCourse(Coursecourse)returnfalse;1pubIicbooleanCanAdd()returnfalse;)pubIicbooIeanCanModify()returnfalse;)pubIicbooIeanQueryCourseByID(intcourseID)(returnfalse;)pubIicvoidConfirmDeIete()pubIicvoi
13、dGetAIICourseO()pubIicbooIeanqueryAssociation(intCourseId,intStudentID)returnfalse;)pubIicbooIeanCanSeIectO(returnfalse;)pubIicvoidQueryCoursseList(intStudentID)pubIicbooleanVerifyRegistrar(intreglD,Stringregname)returnfalse;)pubIicBooIeanCheckPasswd()returnfalse;)/FormObject.javapubIiccIassFormObje
14、ctpubIicControIObjecttheControIObject;pubIicCoursetheCourse;pubIicFormObject()J)privatevoidShowSuccessInfo(Stringstrinfo)pubIicintGetCourseID()returnO;)privatevoidShowConfirmPage(StringstrInfo)privatevoidConfirmDelete()privatevoidSeIectCommandO()privatevoidDisplayCourseList(CoursecourseList)privatevoidDisplayCourseListO()privatevoidQuerySeIecte