| 课程名称 | https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/ |
| ---- | ---- | ---- |
| 作业要求 | https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11621 |
| 作业目标 | 面向对象的分析与数据 |
| 学号 | 3180701141 |
一.实验目的

1、了解基于UML的面向对象分析与设计方法

2、掌握用例图的绘制、用例规约(文档)的编制

3、掌握类图、活动图、状态图、时序图的绘制方法

二、实验内容

1、参照实验指导书完成在线选课系统、或试卷自动生成系统,或人事信息管理系统的用例图、类图、活动图、状态图、时序图等的

绘制

在线选课系统

  1. 大学教师选择本学期要教授的课程,每位教师最多只能上报 4 门课程。

  2. 教师选课结束后,教务管理人员进行协调和确认教师的课程,并创建本学期的课程目录表,向学生公布。

  3. 学生填写课程选修表,每个学生最多选修 4 门课程;每门选修课程的学生数最多为 10 人,最少为 3 人。人数达到 10 人时,停

止学生登记注册此门课程;

  1. 学生选课结束后,系统自动取消人数少于三人的课程。

  2. 学生按最终的课程表到财务处办理收费手续(billing system)。

  3. 教师可查询所教课程的学生花名册(roster)。

  4. 教务管理人员维护学生、教师和课程的信息。
    三、实验步骤

1、熟悉Rational rose的绘图方法,阅读实验指导《使用 Rational Rose 进行 UML 可视化建模》,以及实验指导书实验十一与实

验十二

2、使用 Rational rose 完成在线选课系统、或试卷自动生成系统,或人事信息管理系统等的用例图、类图的绘制

3、使用 Rational rose 完成在线选课系统、或试卷自动生成系统,或人事信息管理系统等的活动图、状态图、时序图等的绘制

4、使用教材中用例描述模版描述在线选课系统的 Register for course 用例或试卷自动生成系统的自动组卷用例,或人事信息管理

系统等中的某个用例

5、为教材订购系统,或飞机订票系统等(根据自己的选题)绘制用例图,并分析某个用例为其绘制类图、时序图、活动图等

使用 Rational Rose 创建执行者(Actors)

1)右击 browser 框中的 Use Case View 包,弹出快捷菜单;
2)选择 New——Actor 项;
3)输入执行者的名字;(如出错,可用 Rename 命令更改)
4)如果文档窗口不可见,选择屏幕上方的 View——Documentation 菜单;
5)在browser 框中选中所需执行者;
将光标置于文档框中,输入相应文档。

使用 Rational Rose 创建用例(Use Case)

1)右击 browser 框中的 Use Case View 包,弹出快捷菜单;
2)选择 New——Use Case 项;
3)输入用例的名字;(如出错,可用 Rename 命令更改)
4)如果文档窗口不可见,选择屏幕上方的 View—— Documentation 菜单;
5)在browser 框中选中所需用例;
6)将光标置于文档框中,输入相应文档。

使用 Rational Rose 创建主用例图(Main Use Case Diagram)

1)双击 browser 框中的 Use Case View 包中的 Main 条目,打开主用例图;
2)单击选中browser 框中的执行者,并将其拖到主用例图中;
3)重复第 2)步,直到完成所需的工作为止;
4)单击选中browser 框中的用例,并将其拖到主用例图中;
5)重复第 4)步,直到完成所需的工作为止;
6)在工具条中选择单向关联(Unidirectional Association)图标;
7)单击一个执行者,并拖到相应的用例上;或单击一个用例,并拖到相应的执行者上。

使用 Rational Rose 创建活动图(Activity Diagram)
1)右击 browser 框中的 Use Case View 包,弹出快捷菜单;
2)选择 New——Activity Diagram 项;
3)输入活动图的名字;(如出错,可用 Rename 命令更改)
4)双击 browser 框中的 Activity Diagram 名称,打开该图。
使用 Rational Rose 创建活动(Activity)
1)在工具条中选择 Activity 图标;
2)在活动图(Activity Diagram)中单击要放置活动(Activity)的位置;
3)输入活动名字;(如出错,可用Rename 命令更改)
4)在工具条中选择 State Transition 图标;
5)单击一个活动,并将其拖到相应的活动上。

使用 Rational Rose 创建决策点(Decision Points)
1)在工具条中选择 Decision 图标;
2)在活动图(Activity Diagram)中单击要放置决策点的位置;
3)输入决策的名字;(如出错,可用 Rename 命令更改)
4)在工具条中选择 State Transition 图标;
5)单击一个活动,并将其拖到相应的决策点上;
6)在工具条中选择 State Transition 图标;
7)单击一个决策点,拖至拐角处单击左键,再将其拖到相应的活动上;
8)双击此条转换线,打开规格设定框;
9)选择 Detail 标签页;
10)在 Guard Condition 框中输入条件 No;
11)点按 OK 按扭,关闭规格设定框;
12)在此条转换线上单击左键,选中此条转换线;
13)点按屏幕上方的 Format:Line Style:Rectilinear 菜单;
14)调整这条线,使其美观。

使用 Rational Rose 创建同步条(Synchronization Bar)
1)在工具条中选择 Horizontal Synchronization 图标;
2)在活动图(Activity Diagram)中单击要放置同步条的位置;
3)在工具条中选择 State Transition 图标;
4)完成下图。

使用 Rational Rose 创建泳道( Swim lanes)
1)在工具条中选择 Swim lanes 图标;
2)在活动图(Activity Diagram)中单击要放置泳道的位置;
3)双击泳道,打开规格说明框;
4)在 Name 框中输入泳道的名字;
5)点按 OK 按扭,关闭规格设定框;
6)对泳道的大小位置进行调整;
7)将所需的活动和变换线拖至新泳道中。

使用 Rational Rose 创建起始活动和终止活动
1)在工具条中选择起始活动或终止活动图标;
2)在活动图(Activity Diagram)中单击要放置起始活动或终止活动的位置;
3)在工具条中选择 State Transition 图标;
4)单击起始活动,拖到相应的活动上,或者单击一个活动,拖至终止活动上。

在 Rational Rose 的 Browser 框中创建类(Class)
1)右击 browser 框中的 Logica View,弹出快捷菜单;
2)选择 New——Class 项;
3)输入类的名字;(如出错,可用Rename 命令更改)
4)在所建类上单击右键,弹出快捷菜单;
5)选择 Open Specification 项,选择 General 标签页;
6)在 Stereotype 框中选择 entity 类;
单击 OK 按扭关闭规格说明框。

在 Rational Rose 的 Browser 框中创建包(Packages)
1)右击 browser 框中的 Logica View,弹出快捷菜单;
2)选择 New—— Package 项;
3)输入包的名字;(PeopleInfo 包用来存放与人员有关的内容;Interfaces 包用来存放与界面有关的内容;UniversityArtifacts 用来存放与学校工件有关的内容。)
4)新建图中的相关类,并设置其相应的类别;
单击 Browser 框中的类,将其拖至相应的包中

Rational Rose 中的主类图(Main Class Diagram)
1)双击 browser 框 Logica View 中的 Main 类图以打开之;
2)单击 Browser 框中的包,将其拖到 Main 类图上;
3)重复第 2)步,完成下图。

在 Rational Rose 中创建包中的主类图(Package Main Class Diagram)
1)双击 Main 类图中的 University Artifacts 包,rose 将打开这个包,并创建这个包的主类图(Package Main Class Diagram);
2)单击 Browser 框中的类,将其拖到类图上;
3)重复第 2)步,完成下图。

使用 Rational Rose 创建逻辑视图中的用例图(Use Case Diagram)
1)右击 browser 框中的 Logica View,弹出快捷菜单;
2)选择 New——Use Case Diagram 项;
3)输入用例图的名字“Realizations”;(如出错,可用 Rename 命令更改)
4)右击 browser 框中的 Logica View,弹出快捷菜单;
5)选择 New—— Use Case 项;
6)输入用例的名字;(如出错,可用 Rename 命令更改)
7)双击新建的用例,打开用例的规格设定框;
8)单击 Stereotype 框,选择 use case realization 选项;
9)关闭用例的规格设定框;
10)重复 4——9 步,双击“Realizations”,打开实现用例图;
将新建的实现用例拖入图中,如下图

使用 Rational Rose 创建顺序图(Sequence Diagram)

1)右击 browser 框中的 Logica View 中的“Maintain course information”实现用例,弹出快捷菜单;
2)选择 New—— Sequence Diagram 项;
输入顺序图的名字“Creat a course”;
在顺序图中创建对象和信息
1)双击顺序图名称,打开顺序图;
2)将 browser 框 Use CaseView 包中的执行者“Registrar”拖入图中;
3)选择工具条中的“Object”图标;
4)单击图中放置对象的位置,并输入相应的名字;
5)重复 3——4 步;
6)选择工具条中的“Object Message”图标;
7)从信息发出者拖至信息接收者;
8)输入信息的名字;
9)重复 6——8 步。

给顺序图中的对象分配类
1)单击选中 Browser 框中所需的类;
2)将此类拖至顺序图相应的对象上。

将顺序图转换为合作图
1)双击顺序图名称,打开顺序图;
2)选择屏幕上方的菜单Browser——Create Collaboration Diagram,或者点按
F5 键;
调整图中的对象和信息,使其美观。

使用 Rational Rose 创建关系(Relationship)
1)打开 University Artifacts 包中的Main 类图;
2)选择工具条中的“Association”图标(若此图标不存在,则右击工具条, 选择 Customize 项将其加入);
3)点按类图中的一个类,拖至另一个类,输入关系的名称;
4)选择工具条中的“Aggregation”图标(若此图标不存在,则右击工具条, 选择 Customize 项将其加入);
点按类图中的一个整体类,拖至另一个部分类,输入关系的名称。

使用 Rational Rose 创建角色(Role)
1)新建一个 People Info 包的 Main 类图;
2)右击关系线(靠近需要创建角色的类的一端),弹出快捷菜单;
3)选择 Role Name 项,输入角色的名字。

增加多重度
1)双击关系线,使其弹出规格设定框;
2)选择 Detail 标签页(Role A Detail 或者 Role B Detail);
3)在 Multiplicity 框中输入或选择相应的多重度;
4)点按 OK 按扭,关闭规格设定框。4.创建包之间的关系

创建包之间的关系
1)打开 Logica View 中的 Main 类图;
2)选择工具条中的“dependency”图标; 点按类图中的一个客户包,拖至另一个供应包。
5.使用 Rational Rose 创建属性和方法
1)右击 browser 框 Logica View 中 UniversityArtifacts 包中的类,弹出快捷菜单;
2)选择 New——Attribute 项,输入相应的名字;
3)重复 1——2 步,完成添加属性;
4)右击 browser 框 Logica View 中 UniversityArtifacts 包中的类,弹出快捷菜单;
5)选择 New——Operation 项,输入相应的名字;
重复 4——5 步,完成添加操作

在类中增加了属性和操作后对类图的影响
1)打开 University Artifacts 包中的Main 类图;
2)将图中相关类的显示改为 label(右击每一个类,选择 Options: Stereotype Display: Label 菜单);
类图中相应的属性与操作自动变化为下图

使用Rational Rose 创建一个有泛化关系的类图
1)在 People Info 包中创建一个空类图 Generalization;
2)创建类图中相关的类,并将相关的类拖入图中;
3)选择工具条中的“Generalization”图标;
4)点按类图中的一个子类,拖至一个父类;
5)重复第 4 步完成下图;
6)将左边的泛化箭头拖至右边的泛化线上;
7)调整图形

将有泛化关系的类图进行扩展
1)将 Course Offering 类拖入图中,并创建对应的关联线、角色、多重度;
2)为相关的类创建属性

将有泛化关系的类图进行优化
1)在 Browser 框中将子类中的公共属性拖入父类中;
将子类中多余的属性删去。

将有泛化关系的类图进行多层泛化
1)在 People Info 包中创建相关的类,并拖入图中;
2)创建关系线、泛化线和多重度。

使用 Rational Rose 创建状态图(Statechart Diagrams)
1)右击 browser 框中的 CourseOffering 类,弹出快捷菜单;
2)选择 New——Statechart Diagrams 项;
输入状态图的名字“CourseOffering States”

使用 Rational Rose 创建状态(States)
1)在工具条中选择 State 图标;
2)在状态图中单击要放置状态的位置;
3)输入状态的名字。(如出错,可用 Rename 命令更改)

使用 Rational Rose 创建状态转换(State Transitions)
1)在工具条中选择 State Transitions 图标;
2)单击起始状态,并拖至下一个状态;
3)输入状态转换的名字。(如出错,可用 Rename 命令更改)

使用Rational Rose 创建起始状态
1)在工具条中选择 Start 图标;
2)在状态图中单击要放置起始状态的位置;
3)用状态转换线进行连接。

使用 Rational Rose 创建结束状态
1)在工具条中选择 Stop 图标;
2)在状态图中单击要放置结束状态的位置;
3)用状态转换线进行连接。

使用 Rational Rose 增加状态转换的细节部分
1)双击某条转换线,打开规格设定框;
2)选择 Detail 标签页;
3)在相应的框中输入 action(/后的内容)、guard condition([ ]里的内容)以及发出的 event(^后的内容);
4)点按 OK 按扭,关闭规格设定框。

使用 Rational Rose 增加状态的 Actions 部分
1)双击某个状态,打开规格设定框;
2)选择 Actions 标签页;
3)右击 Actions 框中的任一位置,弹出快捷菜单;
4)选择 Insert 项,将创建一个类型为 entry 的action;
5)双击这个 action,弹出 action 的规格设定框;
6)在 when 框中设定相应的类型;
7)在 type 框中设定:action 或者 send event(用^表示);
8)输入 action 的名字,或 event 的信息;
9)点按 OK 按扭,关闭 Action 规格设定框。
10)点按 OK 按扭,关闭状态规格设定框。

理清开发的完整环节,争取在每个环节都有实际的工作,一开始边界不清楚是正常的,但请尝试按照自己的理解努力对应每个环节的实际工作

b.预估每个环节的时间,并真实统计这些环节的耗时,在完成后填写完整的psp耗时表

psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 20 8
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 10 18
Development 开发 100 150
Analysis 需求分析(包括学习新技术) 15 5
Design Spec 生成设计文档 5 5
Design Review 设计复审 5 5
Coding Standard 代码规范 3 2
Design 具体设计 10 19
Coding 具体编码 36 29
Code Review 代码复审 5 7
Test 测试(自我测试,修改代码,提交修改) 10 10
Reporting 报告 9 6
Test Report 测试报告 3 2
Size Measurement 计算工作量 2 1
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 3 3