软件工程高效学 | 实战案例:在线选修课程管理系统设计

简介: 软件工程是计算机领域的一门专业基础课,它对于培养开发者的软件素质、提高开发者的软件开发能力与软件项目管理能力具有重要意义。本篇介绍了利用Rational Rose进行“在线选修课程管理系统”面向对象的设计案例。

640.jpg

01、实战案例——在线选修课程管理系统设计

本文以“在线选修课程管理系统”案例为示例,利用Rational Rose进行面向对象设计实战。该系统的需求描述如下。

  1. 教师选择本学期要教授的课程。
  2. 教师选课结束后,教务管理人员进行协调和确认教师的课程,并创建本学期的课程目录表,向学生公布。
  3. 学生填写课程选修表。
  4. 学生按最终的课程表到财务处办理收费手续(Billing System)。
  5. 教师可查询所教课程的学生花名册(Roster)。
  6. 教务管理人员维护学生、教师和课程的信息。

构建用例模型

① “在线选修课程管理系统”中的执行者(Actors)。

  1. 注册选修课程的学生。
  2. 教授选修课程的教师。
  3. 教务管理人员必须汇总选修课程情况,制作课程表。
  4. 教务管理人员必须维护关于课程、教师和学生的所有信息。
  5. 财务管理系统从本系统中取出收费信息。

② “在线选修课程管理系统”中的用例(Use Case)。

步骤1: 使用Rational Rose创建执行者(Actors)。

首先右击浏览器窗口中的Use Case View包,弹出快捷菜单后,选择New→Actor项,并输入执行者的名字(如果输入错误,可用Rename命令更改);如果文档窗口不可见,选择菜单和工具栏中的View→Documentation菜单,然后在浏览器窗口中选中所需执行者,输入相应文档。创建结果如图1所示。

640.png


■ 图1 执行者创建结果


步骤2: 使用Rational Rose创建用例(Use Case)。

首先右击浏览器窗口中的Use Case View包,弹出快捷菜单后,选择New→Use Case项并输入用例的名字;然后在浏览器窗口中选中所需用例;将光标置于文档框中,输入相应文档。创建结果如图2所示。

640.png


■ 图2用例创建结果

步骤3:使用Rational Rose创建主用例图(Main Use Case Diagram)。

首先双击浏览器窗口的Use Case View包中的Main条目,打开主用例图;然后单击选中浏览器窗口中的“执行者”,将其拖到主用例图中;随后单击选中浏览器窗口中的“用例”,并将其拖到主用例图中;最后,在工具栏中选择“单向关联”(Unidirectional Association)图标,单击一个“执行者”,并拖到相应的用例上;或单击一个“用例”,并拖到相应的执行者上。创建结果如图3和图4所示。

640.png


■ 图3主用例图创建结果(1)


640.png


■ 图4 主用例图创建结果(2)


构建活动图模型

本部分主要介绍建立选修课程目录表的步骤。

步骤1: 使用Rational Rose创建活动图(Activity Diagram)。

首先右击浏览器窗口中的Use Case View包,弹出快捷菜单后选择New→Activity Diagram项,然后输入活动图的名字;双击浏览器窗口中的Activity Diagram选项,打开该图。创建结果如图5所示。

640.png


步骤2: 使用Rational Rose创建活动(Activity)。

首先在工具栏中选择Activity 图标,在活动图(Activity Diagram)中单击要放置“活动”(Activity)的位置,输入活动名字;然后在工具栏中选择State Transition图标,单击一个“活动”,并将其拖到相应的活动上。创建结果如图5所示。

640.png


步骤3: 使用Rational Rose创建决策点(Decision Points)。

首先,在工具栏中选择Decision图标,在活动图(Activity Diagram)中单击要放置决策点的位置,并输入决策的名字;其次,在工具栏中选择State Transition图标,单击一个“活动”,并将其拖到相应的决策点上;然后,在工具栏中选择State Transition图标,单击一个“决策点”选项,拖至拐角处单击左键,再将其拖到相应的活动上;随后,双击此条“转换线”,打开规格设定框,单击Detail 标签,在Guard Condition框中输入条件No,单击OK按钮,关闭规格设定框;最后,在此条转换线上单击左键,选中此条“转换线”,单击菜单和工具栏中的Format→Line Style→Rectilinear 选项,使其变得美观,调整过程如图4-21所示,调整完成后,创建结果如图6所示。

640.png


■ 图6 创建决策点调整过程


640.png


■ 图7 决策点创建结果


步骤4:使用Rational Rose创建同步条(Synchronization Bar)。

首先在工具栏中选择Horizontal Synchronization图标;然后在活动图(Activity Diagram) 中单击要放置同步条的位置;最后在工具栏中选择State Transition图标;创建结果如图8所示。

640.png


■ 图8 同步条创建结果


步骤5:使用Rational Rose创建泳道(Swim lanes)。

首先在工具栏中选择Swim lanes图标,在活动图(Activity Diagram)中单击要放置泳道的位置;然后双击泳道,打开规格说明框,在Name框中输入泳道的名字,单击OK按钮,关闭规格设定框;最后对泳道的大小位置进行调整,将所需的活动和变换线拖至新泳道中。创建结果如图9所示。

640.png


■ 图9 泳道创建结果

步骤6: 使用Rational Rose创建起始活动和终止活动。

首先在工具栏中选择“起始活动”或“终止活动”图标,在活动图(Activity Diagram)中单击要放置“起始活动”或“终止活动”的位置;然后在工具栏中选择State Transition图标,单击“起始活动”图标,拖到相应的活动上;最后单击一个“活动”图标,拖至“终止活动”图标上。创建结果如图10所示。

640.png


■ 图10 创建起始活动和终止活动

构建相关的包和类以及简单类图

步骤1: 在Rational Rose的浏览器窗口中创建类(Class)。

首先右击浏览器窗口中的Logical View,弹出快捷菜单后,选择New→Class项,输入类的名字;然后在所建类上单击右键,弹出快捷菜单,选择Open Specification项,单击General标签;最后在Stereotype框中选择entity类;单击OK按钮关闭规格说明框。规格说明框的设置过程如图11所示。

640.png


■ 图11规格说明框设置过程

表1列出了边界类、控制类、实体类各自的功能。

■ 表1 边界类、控制类、实体类功能


640.png


步骤2: 在Rational Rose的浏览器窗口中创建包(Packages)。

首先右击浏览器窗口中的Logical View选项,弹出快捷菜单后,选择New→Package选项,输入包的名字;然后新建相关类并设置其相应的类别,其中设置边界类和控制类的过程如图12和图13所示;最后单击浏览器窗口中的“类”选项,将其拖至相应的包中。

640.png


■ 图12 设置边界类过程示意图


640.png


■ 图13 设置控制类过程示意图


在Package项中,PeopleInfo包用来存放与人员有关的内容,Interfaces包用来存放与界面有关的内容,UniversityArtifacts包用来存放与学校工件有关的内容。

步骤3: 在Rational Rose中创建主类图(Main Class Diagram)。

首先双击浏览器窗口中Logical View中的Main类图,打开它;然后单击浏览器窗口中的包,将其拖到Main类图上;重复以上步骤后,创建结果如图14所示。

640.png


■ 图14 主类图创建结果

步骤4: 在Rational Rose中创建包中的主类图(Package Main Class Diagram)。

首先双击Main 类图中的University Artifacts包,打开这个包,并创建这个包的主类图(Package Main Class Diagram);然后,单击浏览器窗口中的“类”图标,将其拖到类图上;重复以上步骤,最后创建结果如图15所示。

640.png


■ 图15 包中的主类图创建结果

(4) 构建用例实现图(Use Case Realization Diagram)。

使用Rational Rose创建逻辑视图中的用例图(Use Case Diagram)。

首先,右击浏览器窗口中的Logical View选项,弹出快捷菜单后,选择New→Use Case Diagram选项,输入用例图的名字“Realizations”;其次,右击浏览器窗口中的Logical View选项,弹出快捷菜单后,选择New→ Use Case选项,输入用例的名字;然后双击新建的“用例”选项,打开用例的规格设定框,单击Stereotype框,选择use-case realization选项,规格设定过程如图16所示。重复以上过程,用例的创建结果如图17所示。最后,打开实现用例图,将新建的“实现用例”拖入图中,创建结果如图18所示。

640.png


■ 图16 用例规格设定过程


640.png


■ 图17 用例创建结果


640.png


■ 图18 用例实现图创建结果


构建顺序图(Sequence Diagram)与协作图(Collaboration Diagram)

步骤1: 使用Rational Rose创建顺序图(Sequence Diagram)。

首先,右击Logical View中的Maintain course information实现用例,弹出快捷菜单后,选择New→Sequence Diagram选项,然后输入顺序图的名字“Create a course”;创建结果如图19所示。

640.png


■ 图19 顺序图创建结果图


步骤2:在顺序图中创建对象和分配类。

首先,双击顺序图名称,打开顺序图,将浏览器窗口中Use Case View包中的执行者Registrar拖入图中;其次,选择工具栏中的Object图标,单击图中放置对象的位置,并输入相应的名字,重复以上步骤;然后,选择工具栏中的Object Message图标,从信息发出者拖至信息接收者,并输入信息的名字,重复以上步骤,创建对象完成后结果如图20示;最后,单击选中浏览器窗口中所需的类,将此类拖至顺序图相应的对象上,对象分配类后,结果如图21所示。

640.png


■ 图20 创建对象结果


640.png


■ 图21 对象分配类结果


步骤3:将顺序图转换为协作图。

首先,双击顺序图名称,打开顺序图;然后选择屏幕上方的菜单Browser→Create Collaboration Diagram选项,或者按F5键;最后调整图中的对象和信息,使其美观。创建结果如图22所示。

640.png


■ 图22 顺序图转换为协作图创建结果


构建状态图(Statechart Diagram)

步骤1:使用Rational Rose创建状态图(Statechart Diagrams)。

首先,右击浏览器窗口中的CourseOffering类,弹出快捷菜单后,选择New→Statechart Diagrams选项;然后,输入状态图的名字“CourseOffering States”,创建结果如图23所示。

640.png


■ 图23 状态图创建结果


步骤2: 使用Rational Rose创建状态(States)。

首先,在工具栏中选择State图标,在状态图中单击要放置状态的位置;然后,输入状态的名字。创建结果如图24所示。

640.png


■ 图24 状态创建结果

步骤3: 使用Rational Rose创建状态转换(State Transitions)。

首先,在工具栏中选择State Transitions图标,单击“起始状态”,并拖至下一个状态;然后,输入状态转换的名字。创建结果如图25所示。

640.png


■ 图25 状态转换创建结果

步骤4:使用Rational Rose创建起始、结束状态。

首先,在工具栏中选择Start图标,在状态图中单击要放置起始状态的位置;然后,用状态转换线进行连接。起始状态创建结果如图26所示。

640.png


图26 起始状态创建结果

同样地,在工具栏中选择Stop图标,在状态图中单击要放置结束状态的位置,用状态转换线进行连接,结束状态的创建结果如图27所示。

640.png


图27 结束状态创建结果

步骤5: 使用Rational Rose增加状态转换的细节部分。

首先,双击某条转换线,打开规格设定框,单击Detail标签;然后,在相应的框中输入action(/后的内容)、guard condition([ ]里的内容)以及发出的event(^后的内容);最后,单击OK 按钮,关闭规格设定框。创建结果如图28所示。

640.png


■ 图28 状态转换规格设定结果

步骤6: 使用Rational Rose增加状态的Actions部分。

首先,双击某个状态,打开规格设定框,单击Actions标签;然后,右击Actions框中的任一位置,弹出快捷菜单后,选择Insert选项,将创建一个类型为Entry的action,规格设定过程如图29所示;

640.png


■ 图29 状态的Actions设定过程

双击这个action,弹出action的规格设定框后,在when框中设定相应的类型,在type框中设定action或者send event(用^表示),输入action的名字或event的信息;单击OK按钮,关闭Actions规格设定框。创建结果如图30所示。

640.png


■ 图30 状态的Actions设定结果

构建构件图(Component Diagram)

步骤1: 使用Rational Rose创建Main构件图(Component Diagram)。

首先,在浏览器窗口中的Component View中创建图中的各个构件包,双击浏览器窗口中的Component View中的Main 构件图;然后,将浏览器窗口中的Component View中的构件包拖入图中;最后创建包之间的依赖线。创建结果如图31所示。

640.png


■ 图31 Main构件图创建结果

步骤2: 创建University构件包中的构件。

首先,双击Main构件图中的University包,打开图形;然后,在工具栏中选择Component图标;最后,单击图中某一位置,放置构件,输入构件名称。创建结果如图32所示。

640.png


■ 图32 University构件包中的构件创建结果

步骤3: 将类映射到构件上。

首先,右击浏览器窗口中的CourseOffering构件,弹出快捷菜单后,选择Open Specification项,单击Realizes标签;然后,右击所需的类,弹出快捷菜单,选择Assign项;最后,单击OK按钮,关闭规格设定框。创建过程如图33所示。

640.png


■ 图33 将类映射到构件上

构建部署图(Deployment Diagram)

使用Rational Rose创建部署图(Deployment Diagram)。

首先,双击浏览窗口中的“部署图”(Deployment Diagram)选项,选择工具栏中的Processor图标,并单击图中某一位置,输入结点的名字;然后,选择工具栏中的Connection图标,单击某一结点,拖至另一结点;最后,选择工具栏中的Text 图标,在相应结点下写上文字。创建结果如图34所示。

640.png


■ 图34 部署图创建结果

目录
相关文章
|
6月前
|
数据建模 程序员 持续交付
系统分析师笔记-案例分析-软件开发方法
系统分析师笔记-案例分析-软件开发方法
|
20天前
|
存储 算法 Java
【软件设计师—基础精讲笔记12】第12章 软件系统分析与设计(下午题)
【软件设计师—基础精讲笔记12】第12章 软件系统分析与设计(下午题)
51 0
|
5月前
|
存储 安全 搜索推荐
100 云笔记案例(需求分析)
100 云笔记案例(需求分析)
33 0
|
9月前
|
存储 前端开发 JavaScript
构建高效学生志愿者活动管理系统:基于前后端分离的设计与实现
构建高效学生志愿者活动管理系统:基于前后端分离的设计与实现
构建高效学生志愿者活动管理系统:基于前后端分离的设计与实现
|
11月前
|
SQL 存储 物联网
数据开发在图书馆场景的应用实践案例
本文介绍如何使用物联网平台SQL工作的实践案例
|
项目管理
软件工程高效学 | 实战案例:禅道进行Bug管理
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动,其根本目的是让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下。本篇通过禅道进行Bug管理。
235 0
软件工程高效学 | 实战案例:禅道进行Bug管理
|
项目管理
软件工程高效学 | 实战案例:TAPD进行需求管理
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动,其根本目的是让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下。本篇通过TAPD进行需求管理。
393 0
软件工程高效学 | 实战案例:TAPD进行需求管理
|
存储 监控 测试技术
软件测试技术实战 设计、工具及管理》联载-32
软件测试技术实战 设计、工具及管理》联载-32
80 0
|
Java 测试技术 程序员
软件测试技术实战 设计、工具及管理》联载-31
软件测试技术实战 设计、工具及管理》联载-31
75 0
软件测试技术实战 设计、工具及管理》联载-31
|
数据可视化 BI 调度
员工管理系统综合实践|学习笔记(一)
快速学习员工管理系统综合实践
150 0
员工管理系统综合实践|学习笔记(一)

热门文章

最新文章