南京邮电大学实验报告课程名称:软件工程课题名称教务系统课程设计专业:广播电视工程学生姓名:陈超班级学号:B13011413指导教师:范山岗日期:2015年12月25日实验面象对象软件设计一、实验目的用面象对象方法设计实用软件,掌握需求分析方法,掌握掌握UML设计方法。二、实验性质验证、设计实验。三、实验要求1、选定题目编写需求分析说明2、学习RationalRose环境3、学习通过RationalRose绘制各类框图的方法。四、环境简介1、RationalRose可视化环境组成Rose界面的五大部分是浏览器、文档工具、工具栏、框图窗口和日志。见图1-1。图1-1:Rose界面浏览器:用于在模型中迅速漫游。文档工具:用于查看或更新模型元素的文档。工具栏:用于迅速访问常用命令。框图窗口:用于显示和编辑一个或几个UML框图。日志:用于查看错误信息和报告各个命令的结果。1.2浏览器和视图浏览器是层次结构,用于在Rose模型中迅速漫游。在浏览器中显示了模型中增加的一切,如参与者、用例、类、组件等。浏览器中包含四个视图:UseCase视图、Logical视图、Component视图和Deployment视图。点击每个视图的右键,选择new就可以看到这个视图所包含的一些模型元素。1.3框图窗口在框图窗口中,我们可以浏览模型中的一个或几个UML框图。改变框图中的元素时,Rose自动更新浏览器。同样用浏览器改变元素时,Rose自动更新相应框图。这样,Rose就可以保证模型的一致性。五、实验步骤1、编写需求分析说明书对系统需求进行初步的整理与分析,是后续建模和设计工作的基础。需求分析说明书详情请见附录。2、用UML语言对系统进行分析与建模(OOA)2.1建立用例图usecasediagram从用例图中我们可以看到系统干什么,与谁交互。用例是系统提供的功能,参与者是系统与谁交互,参与者可以是人、系统或其他实体。一个系统可以创建一个或多个用例图。实例:1)教务管理系统主要用例图。用例图说明:教务管理系统主要用例图实现三个主要参与者——管理员、教师与学生和系统六大主要用例——登陆管理、账号管理、班级管理、课程管理、选课管理、成绩管理之间的关系。管理员主要参与用例账号管理、课程管理与班级管理;教师主要涉及用例选课管理与成绩管理;而参与者学生主要参与选课管理与成绩管理,其中登陆管理是三个主要参与者共同参与的用例。2)教务管理系统——班级管理用例图用例图说明:管理员实现班级管理,班级管理用例包括录入、查看、修改与删除班级基本信息,其中,教师也可对班级基本信息进行查看。3)教务管理系统——成绩管理用例图用例图说明:教师实现成绩管理,主要功能是录入、修改、查看与删除成绩,其中查看成绩可泛华为按学期查询或按学年查询,并注意学生参与用例查看成绩对自己所修课程成绩进行查看。以下用例图也可根据截图进行如上分析。4)教务管理系统——登录管理用例图5)教务管理系统——课程管理用例图6)教务管理系统——选课管理用例图7)教务管理系统——账号管理用例图2.2建立活动图activitydiagram活动图显示了从活动到活动的流。活动图可以在分析系统业务时用来演示业务流,也可以在收集系统需求的时候显示一个用例中的事件流。活动图显示了系统中某个业务或者某个用例中,要经历哪些活动,这些活动按什么顺序发生。实例1)管理员添加课程活动图2)管理员修改课程活动图3)学生选择课程活动图4)学生退选课程活动图2.3建立类图classdiagram类图显示系统之中类和类之间的交互。实例:类图说明如下:1)User类是一个系统角色用户的基类。属性有:UserID对象的账号。UserPassword对象的密码。方法有:getID()获得对象的账号。modifyPassword()设置新建对象的密码。getPassword()获得对象的密码。User()为构造函数。2)Administrator类继承自User类。属性有:name管理员姓名。ID管理员账号。方法有:CourseManager()进行课程管理操作。IDManager()进行账号管理操作。ClassManager()进行班级管理操作。Administrator()为构造函数。3)Student类继承自User类。属性有:name学生姓名。Sex学生性别。Class学生所在班级。Grede学生所在年级。ID学生账号。方法有:SelectElect()用于选择课程。delElect()用于删除所选择的课程。addElect()用于添加所选课程;updateElect()用于更新查询选课信息。Student()为构造函数。4)Teacher类继承自User类。属性有:name教师姓名。ID教师账号。方法有:GradeManager()教师进行成绩管理操作。Teacher()为构造函数。5)Course类是一个课程管理类。属性有:courseID课程代号。courseName课程名称。courseTime课程时间。teacherName课程教师名称。方法有:addCourse()用于添加课程;delCourse()用于删除课程;updateCourse()用于修改课程信息;getCourses()用于获取课程信息。getselectedCourse()用于获取学生所选课程。Course()为构造函数。6)Elect类是一个选课管理类。属性有:stuID学生姓名。courseID课程代号。Score课程成绩teacher课程教师。方法有:elect()选择课程。electDel()退选课程。getElectInfo()查询课程信息。getSchedule()获取课程表信息。7)ID类是登陆管理类。属性有:ID账号。Password密码。方法有:added()用于添加账号。modifyID()用于修改账号。getID()用于查询账号信息。delID()用于删除账号。8)Class类是班级管理类。属性有:student班级学生。方法有:addClass()用于添加班级基本信息。modifyClass()用于修改班级基本信息。getClass()用于查询班级基本信息。delClass()用于删除班级基本信息。9)Grade类是成绩管理类。属性有:course课程。Student学生。grade成绩。方法有:addGrade()用于录入成绩。modifyGrade()用于修改成绩。getGrade()用于查询成绩信息。delGrade()用于删除成绩。10)DataCase类为数据库类。主要方法有:update()进行数据库更新信息操作。show()进行显示数据库所查询信息的操作。Datacase()为构造函数。2.4.1序列图sequencediagram序列图显示用例中的功能流程。实例1)管理员顺序图2)教师录入成绩顺序图3)学生选择课程(退课)顺序图接上图2.4.3序列图和协作图之间的转换在序列图中按F5键就可以创建相应的协作图;同样,在协作图中按F5键就可以创建相应的序列图。序列图和协作图是同构的,也就是说两张图之间的转换没有任何信息的损失。实例1)管理员协作图2)教师录入成绩协作图3)学生选择课程(退课)协作图2.5建立状态图statechartdiagram(可选,根据选定的课题选做)状态图显示了对象的动作行为,显示对象可能存在的各种状态,对象创建时的状态,对象删除时的状态,对象如何从一种状态转移到另一种状态,对象在不同状态中干什么。实例六、实验总结1、对实验过程和自己的感悟进行小节本实验主要内容是基于UML用面象对象设计方法,进行需求分析,并利用软件RationalRose进行实用软件设计。在软件工程大作业用结构化的方法进行教务管理系统需求分析概设详设基础下,选题教务系统,采用面向对象的方法进行分析设计,从而在实验中更清晰深刻地掌握两中国不同设计方案的步骤与比较,与理论课程内容息息相关,不仅是对知识的一次巩固与提升,更是实践与实际操作的一次有效锻炼,获益匪浅。2、结合实验过程和内容对面象对象方法和结构化程序设计方法进行比较。结构化程序设计和面向对象的程序设计阶段,它们的所采用的方法和针对的对象却是不一样的。结构化方法引入了工程思想和结构化思想,基本思想可概括为:自顶向下、逐步求精、模块化技术。先考虑问题大的方面,在确定了主要方向后,再由表及里深入到问题具体的细节,由易到难,逐层解决问题。这是一个由模糊到清晰,由概括到具体的过程。而后逐步求精,在遇到复杂问题的时候,先设计一些子目标作为过渡,来逐步细化。结构化方法强调功能抽象和模块化,降低了问题处理的难度,并且思路清晰,条理清楚。而面向对象方法把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决而面向对象的设计则是从另外的思路来解决问题。它与人类习惯的思维方法一致,使得使用者和维护人员都容易理解。其次,它的稳定性好,对软件的局部进行修改时,不会引起整体的变化,而且对局部修改容易实现。面向对象方法的可重用好,并且由于它是把大的问题分解成相互独立的小问题处理,降低了设计的技术难度。本课程设计采用面向对象的设计方法,在建立系统主要用例图的前提下,面向对象主要对类图、顺序图、协作图进行建模,教务管理系统三大参与者及功能用例的抽象使我们能够根据实际需求与习惯的思维方式进行理解与设计,相对于结构化的E-R图的建立来说,更加方便有效。附录:需求说明书需求规格说明1引言《教务管理系统需求规格说明书》旨在详细描述系统功能需求和一些非功能需求,明确系统需求边界。文档分为四个部分:1)引言部分描述了项目的编写目的和范围,并对文档中使用到的术语进行了说明,还列出了本文档所使用的参考文献和相关文档;2)任务概述部分对系统进行了简要的描述;3)需求规定部分对系统从功能要求、安全性、性能,数据管理及其处理等几方面进行阐述;4)运行环境规定部分对系统运行所需要的设备,支持的软件以及接口方面,做了详细描述。1.1编写目的教务管理系统旨在为全校的教务管理提供一个方便的公共平台,让繁杂的教务管理变的简单易行。本说明书将要说明系统在技术上的具体需求,要实现的具体功能,指出实现系统的方法与途径,为后来的各项工作进行起着指导作用。1.2背景及范围项目的名称:教务管理系统课程设计项目任务开发者:软件工程课程项目用户:南京邮电大学的所有教学管理人员实现此软件的计算机网络:南京邮电大学计算机网络中心项目与其他软件、系统的关系:教务管理系统采用RationalRose作为开发平台,用MicrosoftOfficeAccess作数据库开发,能够在Windows系列的操作系统中,与Internet网良好兼容,且系统可维护性可移植性良好,界面友善,充分考虑到教务管理的实际工作情况,能够满足用户对教务管理的需求。1.3定义2目标系统概述2.1目标本项目设定的目标如下:1、系统能够提供友好的用户界面,使操作人员的工作量最大限度的减少;2、系统具有良好的运行效率,能够达到提高效率的目的,主要包括:要求有良好的权限管理、原始数据修改简单方便,支持多条件修改、方便的数据查询,支持多条件查询、在相应得权限下,删除数据简单方便,数据稳定性好等3、系统应有良好的可扩充性,可以容易地加入其它系统的应有;4、平台的设计具有一定的超前性,灵活性,能够适应学校教务需求的变化;2.2.用户简介本系统的用户包括三类:管理员、学生和老师。其中管理员是整个系统的管理者,他们需要对学校的管理活动进行总体掌控,包括学生所属班级的划分与基本信息的管理、学校所开课程信息录入等,以及为了使教务管理系统平台能够惠及全校,管理员需对账号信息进行设置、权限修改等;教师主要涉及学校的教学活动,将实现给学生评分、公布成绩、查看学生所选课程等功能;学生作为教务管理系统最普遍的用户,可以选课、退课、查看本课程信息等。2.3组织结构和职责3需求规定3.1功能需求:1、从教务管理系统参与者功能需求来看,本系统主要满足来自三方面的需求,这三个方面分别是学