首页 > 其他分享 >实验三 功能模型设计

实验三 功能模型设计

时间:2024-06-07 22:30:20浏览次数:14  
标签:选课 模型 系统 学生 用例 课程 实验 设计 成绩

  功能模型设计

1. 实验目的

掌握面向对象分析中功能模型设计的过程及注意事项

2. 实验环境

软件平台:Microsoft Windows 操作系统,

软件工具:Microsoft VISIO;Star UML;EnterPrise Architect等

3. 实验原理

使用用例方法来描述系统功能需求的过程,就是用例建模,它是实现"功能模型"建模的主要手段之一。用例模型主要包括以下两部分内容。

⑴用例图(Use Case Diagram)

确定系统中所包含的参与者、用例和两者之间或其自身的关系,用例图是基于系统要实现的功能的一个可视化描述。

① 参与者(Actor)

② 用例(Use Case)

用例是用来描述参与者使用系统,以达到某个目标时所涉及到的一系列的场景的集合。一个用例的核心并不是上述的图标,而是一个规格化的叙述型文档,它描述了参与者要实现某项功能的事件流程,展示和体现了其所描述的过程中的需求情况。用例名称一般以“做什么”即“动宾词组”形式来命名。

③ 用例和参与者及自身的关系

泛化关系(generalization)

包含关系(include)

扩展关系(extend)

⑵用例规约(Use Case Specification)

所谓规约,就是业务规则的规格说明。针对每一个用例,都应该有一个用例规约文档与之相对应,以描述该用户的细节内容。每一个用例的用例规约,都应该包含以下内容:

①用例名称(Use Case Name):用例的名称一般由"动词+名词"构成,简单说明"做什么"。

② 简要说明(Brief Description):简要介绍该用例的作用和目的。

③ 前置条件(Previous Condition):系统在执行该用例前必须处在的状态。

④ 事件流(Flow of Event)

⑤ 用例场景(Use Case Scenario):包括成功场景和失败场景,场景主要由基本流和备选流组合而成。

⑥ 特殊需求(Special Requirement):描述与该用例相关的非功能性需求(性能、可靠性、可用性和可扩展性等)以及涉及约束(所使用的操作系统、开发工具等)。

⑦ 后置条件(Post Condition):系统在执行完该用例之后应该处在的状态 。

4. 实验步骤

(1) 找出系统边界以外的角色(actor),角色是与系统进行交互的外部实体,可以是与系统交互的人员、与系统相连并交换信息的设备和其他系统;

(2) 从这些角色如何与系统进行交互的角度,使用用例(use case)来描述角色怎样使用系统以及系统向角色提供什么功能,用例所表示的是从外部用户角度观察的系统功能;

(3) 绘制用例图,并编写详细的用例描述。用例图只能宏观地描述系统的功能,但却不能提供用例模型所必需的所有信息,每个功能的含义和具体实现步骤则以文本方式描述。

(4)挑选三个重点用例编写用例规约说明

(5)撰写实验报告

5. 实验选题

教学事务管理系统 

某学院教务处教学事务现由手工管理,效率低、易出错、耗费人力。教务处希望设计一个实用的教学事务管理系统,完成学生的学籍管理、报到注册、课程的选择、成绩登入、各种通知单的打印和报表的输出等。

估计开发该系统需购买硬件、外部设备(高性能计算机一台、打印机一台),花费1。2万元左右,开发工作量约需3个人月工作量,每人月工资约为2000元,开发完成后维护费用每年约600元,开发完成后,原有的三名管理人员可以减少为二名,每人月工资是600元.

(1)Actor:

  • 学生
  • 教师
  • 管理员

(2)用例:

  • 选择课程
  • 报道注册
  • 录入成绩
  • 查询成绩
  • 统计成绩
  • 新增学生信息
  • 修改学生信息
  • 删除学生信息
  • 查询学生信息
  • 报表定制
  • 打印报表

  1. 用例图

  1. 用例规约

1.

用例名称

选择课程

用例描述

学生登录系统并选择学期课程。学生可以查看可用的课程列表,并根据自己的兴趣和学习计划选择课程。

参与者列表

学生

前置条件

1.学生已登录系统。

2.学期课程列表已加载到系统中。

用例场景(事件流)

1.学生登录系统。

2.系统验证学生身份

3.如果:验证通过,则

3.1学生进入选课界面,查看学期课程列表。

3.2如果:课程列表为空或无法加载,则

3.2.1系统显示错误信息。

3.2.2重新回到3.1

3.2学生从课程列表中选择课程。

3.3系统验证选课条件(如选课人数限制、课程冲突等。

3.4如果:选课条件不满足(如人数已满、课程冲突等),则

3.4.1系统提示错误并允许重新选择。

3.4.2重新回到3.2

3.5系统记录学生的选课信息。

3.6学生收到选课成功的通知。

3.7重复上述3.1~3.6

4.否则:

4.1如果:学生未登录或登录失败,则

4.1.1系统提示重新登录。

4.1.2重新回到2

特殊需求

1.非性能需求:

   1.1性能:

1.1.1响应时间:学生在选择课程时,系统的响应时间应在合理范围内,以确保用户体验的流畅性。通常,选择课程的操作响应时间应控制在2秒以内,达到优秀水平。

1.1.2并发处理能力:在选课高峰期,系统应能处理大量学生的并发选课请求,保证系统的稳定性和响应速度。

     1.2可靠性:

1.2.1数据一致性:在选课过程中,系统应确保学生选课信息的一致性,避免出现数据错误或丢失的情况。

1.2.2故障恢复:系统应具备故障自动恢复能力,在出现异常情况时能够迅速恢复正常运行,减少对学生选课的影响。

     1.3可用性:

1.3.1易用性:选课系统应提供直观、易用的界面和操作流程,方便学生快速完成选课操作。

1.3.2可访问性:系统应支持多种访问方式(如Web浏览器、移动应用等),以满足不同学生的使用需求。

     1.4可扩展性:

1.4.1功能扩展:随着学校课程的变化和学生需求的增加,选课系统应能够方便地添加新的功能或模块。

1.4.2数据扩展:系统应能够处理更大规模的数据量,包括学生信息、课程信息等,以支持更多学生的选课需求。

2.约束:

2.1操作系统:选课系统应支持常见的操作系统,如Windows、Linux等,以确保不同用户环境的兼容性。

2.2开发工具:系统应使用稳定、高效的开发工具进行开发,如Java、Python等,以确保系统的性能和可维护性。

2.3安全性:选课系统涉及到学生的个人信息和选课数据,应采用加密存储、权限管理等技术手段确保数据的安全性。

后置条件

1.学生的选课信息已成功保存到系统中。

2.课程的选课状态(如选课人数)已更新。

3.学生已收到选课成功的通知或系统已更新选课页面以反映已选课程。

2.

用例名称

报道注册

用例描述

生如何按照学校规定的时间和流程,完成新学期的报道注册过程。学生需前往指定地点,确认身份和入学资格,并在教务管理系统中完成报道注册的相关操作。

参与者列表

学生

前置条件

1.学生已收到入学通知和报道注册的相关指导信息。

2.学校的教务管理系统处于运行状态,并能够正常处理学生的报道注册信息。

3.场地已准备好必要的报道注册材料和流程指导。

用例场景(事件流)

    1.学生按照报道注册的时间安排,到达学校指定的报道注册地点。

2.学生向出示入学通知和身份证明,经核实学生的身份和入学资格。

3.学生到教务管理系统进行自助报道注册,或直接在系统中为学生完成报道注册操作。

4.学生在系统中填写或确认个人信息,包括学号、姓名、专业、班级等。

5.系统验证学生信息的准确性,并检查学生是否已缴纳学费和住宿费(如适用)。

6.如果:学生信息有误或未缴纳学费和住宿费,则

6.1系统显示错误信息,提示学生进行修正或缴费。

  6.2重新回到4

7.如果:验证通过,则

7.1系统更新学生的注册状态为“已注册”,并生成相应的报道注册证明或确认信息。

7.3系统向学生发放报道注册证明或确认信息,并告知后续的学习和生活安排。

8.否则:

8.1学生到备用报道注册地点或采取其他紧急措施。

特殊需求

1.系统应支持多种身份验证方式,如身份证、护照等,以满足不同学生的需求。

2.系统应提供友好的用户界面和操作流程,方便学生自助完成报道注册。

3.对于需要特殊关注或帮助的学生(如残疾学生、家庭经济困难学生等),应提供个性化的报道注册服务。

后置条件

1.学生的报道注册信息已成功保存到学校的教务管理系统中,并与学生记录相关联。

2.学生已收到报道注册证明或确认信息,并了解后续的学习和生活安排。

3.通过已记录学生的报道注册情况,并对未完成报道注册的学生进行跟踪和催促。

3.

用例名称

录入成绩

用例描述

教师登录系统并为学生录入课程成绩。教师需要选择特定的课程,查看学生名单,并为学生输入或更新成绩。

参与者列表

教师

前置条件

1.教师已登录系统。

2.需要录入成绩的课程列表已加载到系统中。

用例场景(事件流)

1.教师登录系统。

2.系统验证教师身份

3.如果:验证通过,则

      3.1教师选择录入成绩功能,并选择具体课程。

3.2如果课程列表为空或无法加载,则

3.2.1系统显示错误信息

3.2.2重新回到3.1

3.3教师查看学生名单和成绩录入界面。

3.4教师录入学生成绩。

3.5如果录入的成绩有误(如超出分数范围、格式错误等),则

3.5.1系统提示错误并

3.5.2重新回到3.4

3.6系统保存成绩信息。

3.7教师收到成绩录入完成的通知。

3.8重新回到

4.1如果:教师未登录或登录失败,则

4.1.1系统提示重新登录。

4.1.2重新回到2

特殊需求

1.数据验证:系统应能自动验证录入成绩的有效性,如检查成绩是否在合理范围内(如0-100分)、格式是否正确(如只包含数字和小数点)等。

2.批量处理:为提高效率,系统应支持教师批量导入或录入学生成绩,例如通过上传成绩文件(如CSV、Excel等)的方式。

3.成绩修改记录:系统应记录每次成绩的修改情况,包括修改时间、修改人等信息,以便后续审计或查询。

4.成绩统计:在录入成绩的同时,系统应能实时统计课程的平均分、最高分、最低分等统计数据,为教师提供快速参考。

后置条件

1.学生的成绩已成功保存到系统中,并与学生记录相关联。

2.课程的成绩统计信息已更新。

3.教师已收到成绩录入成功的通知或系统已更新界面以反映已录入的成绩。

4.系统已记录成绩的修改情况(如果适用)。

标签:选课,模型,系统,学生,用例,课程,实验,设计,成绩
From: https://blog.csdn.net/m0_72034235/article/details/139536462

相关文章

  • 代码随想录第3天 | 链表 203.移除链表元素,707.设计链表,206.反转链表
    题目:203.移除链表元素思路:主要是头节点的删除问题,一种是直接在原链表上后移头节点设置虚拟头结点,指向原链表的头结点,在设置一个cur指针指向当前节点,虚拟头节点初始化后就不移动了,使用cur进行移动不要忘记释放删除节点的内存,自行设置的虚拟头节点也要释放时间复杂度:O(n)空......
  • 美团面试:百亿级分片,如何设计基因算法?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 代码随想录训练营第三天 | 203.移除链表元素 707.设计链表 206.反转链表
    python定义链表val:数据域,节点存储的元素。next:指针域,指向下一个节点的指针,最后一个节点指向None表示空指针。点击查看代码classListNode:def__init__(self,val,next=None):self.val=valself.next=next203.移除链表元素题目:给你一个链表的......
  • 国产大模型参加高考,同写2024年高考作文,及格分(通义千问、Kimi、智谱清言、Gemini Advan
    大家好,我是章北海今天高考,上午的语文结束,市面上又要来一场大模型参考的文章了。我也凑凑热闹,让通义千问、Kimi、智谱清言一起来写一下高考作文。公平起见,不加任何其他prompt,直接把题目甩过去。感觉写的都很一般,通篇口水文,都能拿个及格分吧。有点好奇,就加了几个国外选手参赛:Ge......
  • IP和域名 关联关系系统设计
    0x01数据库表实现IP域名关系系统包括域名库检索和whois库检索,详情如下。域名库检索域名库检索支持以下5项功能:1.通过过滤器检索筛选条件包含IP地址、口令、工具名称、可利用的漏洞编号、创建时间;2.通过关键字检索在查询框中输入域名库名称的部分关键词,支持模糊查找和精确......
  • 【计算机毕业设计】ssm714实验室预约管理系统+vue
    身处网络时代,随着网络系统体系发展的不断成熟和完善,人们的生活也随之发生了很大的变化,人们在追求较高物质生活的同时,也在想着如何使自身的精神内涵得到提升,而读书就是人们获得精神享受非常重要的途径。为了满足人们随时随地只要有网络就可以看书的要求,实验室预约管理被开发......
  • 7-2 学生类设计
           分数10       设计一个类Student,并在Main类中生成Student类对象进行测试       1.对于Student类,设计私有属性name和age,并为每一个成员变量name和age设计其setXXX()和getXXX()方法,并对于setAge方法,如果age被赋值为<=6,则age值为7,其他为参数值。......
  • Ctranslate2 调用翻译模型 M2M100
    点击下载完整代码:完整代码importctranslate2importsentencepieceasspmimportosdeftokenize(sp,queries):ifisinstance(queries,list):returnsp.encode(queries,out_type=str)else:return[sp.encode(queries,out_type=str)]def......
  • 实验3:OpenFlow协议分析实践
    一、实验目的能够运用wireshark对OpenFlow协议数据交互过程进行抓包;能够借助包解析工具,分析与解释OpenFlow协议的数据包交互过程与机制。二、实验环境下载虚拟机软件OracleVisualBox;在虚拟机中安装Ubuntu20.04Desktopamd64,并完整安装Mininet;三、实验要求(一)基本......
  • 使用skylearn实现词袋模型
    词袋模型(BagofWords,BoW)是一种常用的文本表示方法,它将文本内容转换为向量形式,以便机器学习算法可以处理。在Python中,scikit-learn库提供了多种工具来实现词袋模型。以下是使用scikit-learn实现词袋模型的详细步骤。1.准备环境首先,确保你的开发环境中已经安装了scikit-lea......