软件工程实验:用例图设计

news2024/11/24 1:38:31

目录

前言

实验目的

实验要求

实验步骤

结果展示

总结


前言

软件工程导论实验是一门旨在培养学生掌握软件开发过程中的基本方法和技能的课程。本实验的主题是用例图设计,用例图是一种描述系统功能需求的图形化工具,它可以帮助分析和设计系统的行为和交互。用例图由用例、参与者和关系三个元素组成,用例表示系统提供的服务,参与者表示与系统交互的外部实体,关系表示用例之间或用例和参与者之间的联系。本实验的目的是让学生了解用例图的概念和规则,掌握用例图的绘制方法,能够根据给定的需求描述或场景分析出用例和参与者,并用合适的关系连接它们,形成完整的用例图。

实验目的

通过实验,熟悉并掌握面向对象分析的一种工具Rational Rose 2003,掌握面向对象软件 开发中用例图的绘制。

本文中使用的软件流程是Rose,结果展示使用的软件是software ideas modeler professional portable

实验要求

1、给出本系统的功能描述:

某学校的网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开的各种课程、将课程信息保存在数据库中并可以对课程进行修改和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费,并将这些操作结果存入数据库中。

2、对本系统的用例、活动者进行分析:本系统拟使用Java语言通过三层模型实现:数据核心层、业务逻辑层和接入层。数据核心层包括对于数据库的操作;业务逻辑层作为中间层对用户输入进行逻辑处理,再映射到相应的数据层操作;接入层包括用户界面、系统登录界面、管理界面、用户选课界面等。
本系统涉及的用户包括管理员和学生,他们是用例图中的活动者,他们的主要特征相似,都具有学号和姓名等信息,可抽象出“基”活动者people,而registrar和student则从people继承诞生,数据库管理系统是另外一个活动者。

3、写出系统中出现的一些事件流,如添加课程事件流、删除课程事件流、修改课程事件流、选课事件流。

4、根据以上的分析,可以绘出如下图所示的系统用例图。

5、在Rose 2003中绘制系统用例图

实验步骤

下面是系统中出现的一些事件流。

添加课程事件流:

  1. 管理员选择进入管理界面,用例开始。
  2. 系统提示输入管理员密码。
  3. 管理员输入密码。
  4. 系统验证密码。

A1:密码正确

  1. 进入管理界面,系统显示目前所建立的全部课程信息。
  2. 管理员选择添加课程。
  3. 系统提示输入新课程信息。
  4. 管理员输入信息。
  5. 系统验证是否和已有课程冲突。

A2:没有冲突

  1. 系统添加新课程,提示课程添加成功。
  2. 系统重新进入管理主界面,显示所有课程。
  1. 用例结束。

其他事件流:

A1:密码错误

  1. 系统提示再次输入密码
  2. 用户确认。
  3. 三次错误,拒绝再次访问。
  4. 否则进入添加课程事件流第e)步。

            A2:有冲突

  1. 系统提示有冲突,显示冲突课程信息
  2. 用户重新输入
  3. 继续验证知道无冲突
  4. 进入添加课程事件流第j)步

删除课程事件流和修改课程事件流与此类似。

选课事件流:

  1. 学生进入选课登陆界面,用例开始。
  2. 系统提示输入学号和密码。
  3. 学生输入学号和密码。
  4. 系统验证课程是否可选。

      A1:验证通过

  1. 进入选课主界面。
  2. 学生点击选择课程。
  3. 系统显示所有课程信息。
  4. 学生选择课程。
  5. 系统验证课程是否可选。

            A2:课程可选

  1. 系统提示课程选择成功,提示学生交费。
  2. 用例结束。

错误流:

A1:验证失败

  1. 系统提示验证失败,提示重新输入
  2. 三次错误,拒绝再次访问。
  3. 成功,转选课事件流第e)步

A2:课程不可选

  1. 系统提示课程不可选以及原因。
  2. 学生重新选课。
  3. 重新验证直至成功。
  4. 转选课事件流第j)步。

因为付费方式多样,所以此处不必讨论费用例。查询事件流比较简单,这里也不用详细描述。

  1. 在Rose 2003中绘制系统用例图,具体步骤如下:
    1. 点击浏览器中的Use Case View 中的Main,弹出用例图窗口。
    2. 将光标置于工具栏的Actor图标上,按下左键并将光标拖拽到用例图窗口上,放开左右键,用例窗口内出现一个活动者的图标,将其命名为“People”
    3. 采用同样的方法,在用例图中添加Registrar和Student图标。
    4. 点击用例窗口工具栏中的图标“generalization”,在用例图窗口中,将光标从Student移动到People之间添加泛化(generalization)关系。
    5. 同样在Registrar和People之间添加泛化关系。
    6. 点击工具栏中Use Case但图标,将光标移到用例图窗口,窗口内显示用例的椭圆图标,将其命名为“Select Course”。
    7. 点击工具栏中的Undirectional Relation 图标,将光标从Student指向Select Course,在Student和Select Course之间添加关联关系。
    8. 重复以上步骤,完成(4)中所示的用例图。
    9. 然后再指定活动者和用例的属性。在浏览器中选择活动者People,按下鼠标右键,在弹出的菜单中选择“Open Specification”,可以看到People的版型(Stereotype)是Actor。
    10. 双击Select Course用例,弹出Use Case Specification对话框。
    11. 在Documentation文本框中书写该用例的事件流。
    12. 在完成以上步骤,可以看到Rose在浏览器中自动标出了各种关系。

结果展示


总结

本实验的目的是通过用例图设计的方法,分析和描述软件工程导论课程管理系统的功能需求。用例图是一种用于表示系统与外部参与者之间交互的图形化技术,它可以展示系统的功能边界和参与者的角色。本实验中,我们首先确定了系统的主要参与者,包括教师、学生、管理员和教务处。然后,我们根据参与者的需求和目标,识别了系统的主要用例,例如登录、选课、查看成绩、发布公告等。最后,我们使用UML工具绘制了用例图,并编写了用例描述文档,详细说明了每个用例的名称、参与者、前置条件、后置条件、基本流程和异常流程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/432414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识Tkinter弹窗

Tkinter弹窗 Tkinter是什么 Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面&#xff…

【蓝桥杯省赛真题17】python删除字符串 青少年组蓝桥杯python编程省赛真题解析

目录 python删除字符串 一、题目要求 1、编程实现 2、输入输出 二、解题思路

Qt创建SDK库(dll动态库)并调用SDK库(dll动态库)

Qt创建SDK库(dll动态库)并调用SDK库(dll动态库) 一、项目场景 在日常的项目中,我们经常会遇到调用别人的数学库、线程库、图形库等操作。这些库通常就被称为SDK,SDK全称是Software Development Kit(软件开发工具包),…

【C++ 五】结构体

结构体 文章目录 结构体前言1 结构体基本概念2 结构体定义和使用3 结构体数组4 结构体指针5 结构体嵌套结构体6 结构体做函数参数7 结构体中 const 使用场景8 结构体案例8.1 案例一8.2 案例二 总结 前言 本文包含结构体基本概念、结构体定义和使用、结构体数组、结构体指针、结…

gitlab CI CD基础概念

gitlab CI CD基础概念 本文目录 gitlab CI CD基础概念基础概念Pipelines:流水线JobsStage .gitlab-ci.yml使用模式1:官网gitlab 本地gitlab runner使用模式2:docker gitlab docker gitlab runner 基础概念 开发模式转变:瀑布模…

【MySQL】(5)聚合函数

文章目录 聚合函数COUNT 函数SUM 函数AVG 函数MAX 函数 MIN 函数 group by 子句简介示例:scott 数据库单列分组多列分组 having 子句总结 聚合函数 在 MySQL 中,聚合函数是用于计算多行数据的统计信息的函数,例如总和、平均值、最大值、最小…

图扑数字孪生工厂合集 | 智慧工厂可视化,推动行业数字化转型

前言 图扑软件基于 HTML5(Canvas/WebGL/WebVR)标准的 Web 技术,满足了工业物联网跨平台云端化部署实施的需求,以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从 SDK 组件库,到 2D 和 3D 编辑&#…

LeetCode算法小抄--花式遍历二叉树

LeetCode算法小抄--花式遍历二叉树花式遍历二叉树翻转二叉树[226. 翻转二叉树](https://leetcode.cn/problems/invert-binary-tree/)填充节点的右侧指针[116. 填充每个节点的下一个右侧节点指针](https://leetcode.cn/problems/populating-next-right-pointers-in-each-node/)将…

OpenCV实例(一)人脸检测

OpenCV实例(一)人脸检测 1.人脸检测和识别概述2.使用OpenCV进行人脸检测2.1静态图像中的人脸检测2.2视频中的人脸检测 作者:Xiou 1.人脸检测和识别概述 计算机视觉使很多任务成为现实,其中两项任务就是人脸检测(在图…

psql Centos7安装postgresql-12

之前在centos7上下的postgresql,它的数据库实例在 “var/lib/pgsql/” 下。这就导致了系统用户的"postgres"的家目录跟postgresql数据库目录不在同一目录下。因此,今天趁着有闲暇时间把数据库装到"postgres"目录下,顺便把…

罗丹明荧光染料标记叶酸,FA-PEG2000-RB,叶酸-聚乙二醇-罗丹明; Folic acid-PEG-RB

FA-PEG-RB,叶酸-聚乙二醇-罗丹明 中文名称:叶酸-聚乙二醇-罗丹明 英文名称:FA-PEG-RB, Folic acid-PEG-RB 性状:粉红色固体或液体,取决于分子量 溶剂:溶于水和DMSO、DMF等常规性有机溶剂 保存条件:-2…

学习系统编程No.17【vscode实战】

引言: 北京时间:2023/4/11/7:25,昨天11点洗澡,洗完直接睡,导致现在头发愈发不能看,So,平头时刻将要来临,头发太长真的很不方便,昨天已经更文啦!这个星期一定…

miss_01(简单密码学及音频隐写)

下载附件,解压时提示输入密码 使用010editor打开,发现deFlags值被修改 (如果frFlags 或者 deFlags 的值不为0就会导致zip的伪加密) 将deFlags的值修改为0,并将文件另存为1.zip 再次打开,没有密码提示了 打…

酒吧攻略:一文解读酒吧类型

目前主流酒吧类型可以大致分为以下几类: 夜店:(NIGHT CLUB):KTV,夜总会,酒吧等总称club,主要指的就是夜店。 Bar:多指娱乐休闲类的酒吧,提供现场的乐队或歌…

UG导出点集坐标到txt文本文档中

文章目录 前言一、下载文件二、使用步骤1.运行Grip程序2.选择下载的points-file.grx文件3.选择要导出的文本文档的位置4.选择想要导出的点集5.查看文件 参考 前言 将UG中的离散的点或者点集坐标导出到文本文档; 原文地址 俩文件链接如下,失效了可以私信…

客快物流大数据项目(一百一十四):负载均衡 Spring Cloud Ribbon

文章目录 负载均衡 Spring Cloud Ribbon 一、Ribbon 简介 二、负载均衡源码跟踪探究 负载均衡 Spring Cloud Ribbon 为了增加服务并发访问量,我们搭建集群,集群的负载均衡怎么实现?

OpenAI-ChatGPT最新官方接口《速率并发限制》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(八)(附源码)

Rate limits 速率并发限制前言Introduction 导言What are rate limits? 什么是速率限制?Why do we have rate limits? 为什么我们有速率限制?What are the rate limits for our API? 我们API的速率限制是什么?GPT-4 rate limits GPT-4速率…

【JavaEE】Spring + IoC + DI

目录 Spring概念 IoC DI Spring概念 Spring是包含众多工具方法的IoC容器。 IoC IoC:Inversion of Control 控制权反转 它是一种思想,是面向对象的一种设计原则。这种思想为了实现类与类之间的解耦。 比如当一个对象要使用另一个对象时,不再…

IO流相关知识

IO流 1.文件 保存数据的地方 2.文件流 文件在程序中以流的形式来操作的 流:数据在数据源(文件)和程序(内存)之间的经历的路程 输入流:数据从数据源(文件)到程序(内存…

【FPGA-DSP】第五期:FFT调用流程

目录 1. matlab输入信号编写 2. Simulink开发 2.1 模块搭建 2.2 Simulink运行 2.3 matlab信号处理 拓:输入信号位数改变 本章节主要说明如何在system generator中使用fft模块,话不多说,看操作: 参考教程第5期 - FFT调用流…