当前位置: 首页 > news >正文

通过建立系统用例模型和静态模型,搭建教学管理系统

目录

案例

【题目】

【问题 1】(7 分)

【问题 2】(7 分)

【问题 3】(11 分)

答案

【问题 1】解析

【问题 2】解析

【问题 3】解析

相关推荐


案例

        阅读以下关于软件系统建模的叙述,在答题纸上回答问题 1 至问题 3。

【题目】

        某软件公司计划开发一套教学管理系统,用于为高校提供教学管理服务。该教学管理系统基本的需求包括:
        (1)系统用户必须成功登录到系统后才能使用系统的各项功能服务;
        (2)管理员(Registrar)使用该系统管理学校(University)、系(Department)、教师(Lecturer)、学生(Student)和课程(Course)等教学基础信息;
        (3)学生使用系统选择并注册课程,必须通过所选课程的考试才能获得学分;如果考试不及格,必须参加补考,通过后才能获得课程学分;
        (4)教师使用该系统选择所要教的课程,并从系统获得选择该课程的学生名单;
        (5)管理员使用系统生成课程课表,维护系统所需的有关课程、学生和教师的信息;
        (6)每个月到了月底系统会通过打印机打印学生的考勤信息。

        项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。

【问题 1】(7 分)

        用例建模用来描述待开发系统的功能需求,主要元素是用例和参与者。请根据题目所述需求,说明教学服务系统中有哪些参与者。

【问题 2】(7 分)

        用例是对系统行为的动态描述,用例获取是需求分析阶段的主要任务之一。请指出在面向对象系统建模中,用例之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时, “登录系统”用例与“注册课程”用例之间、“参加考试”用例与“参加补考”用例之间的关系分别属于哪种类型?

【问题 3】(11 分)

        类图主要用来描述系统的静态结构,是组件图和配置图的基础。请指出在面向对象系统建模中,类之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时,类 University与类 Student 之间、类 University 和类 Department 之间、类 Student 和类 Course 之间的关系分别属于哪种类型?

答案

        本题考查面向对象系统建模的相关知识。

        此类题目要求考生能够理解面向对象系统建模的基本概念和方法,并在应用系统开发中结合系统需求,利用面向对象建模技术构建系统的需求模型、分析模型和设计模型UML,是面向对象系统的标准建模语言,是一种定义良好、易于表达、功能强大的建模语言。UMI在支持面向对象分析与设计的基础上,能够支持从需求分析开始的软件开发全过程。在 UML 建模过程中,通过建立系统用例模型和静态模型,搭建系统体系结构用例模型属于系统的高级视图,按照面向对象的原则将系统要实现的行为划分为用例,并基于用例按照交互关系和时间产生顺序图:在用例模型的基础上抽象出系统的类,明确各模块之间的关系按照合适的粒度构建系统类图。对于复杂的交互过程,需要补充状态图、活动图和协作图等系统模型,对系统内部处理细节进行建模。该题目针对教学管理系统需求,主要考查考生对于用例图和类图进行系统建模的掌握情况。

【问题 1】解析

        本问题考查考生对用例建模中“参与者”元素的理解。参与者是为了完成一个事件而与系统交互的实体,参与者可以表示与系统接口的任何事物和任何人。这可以包括人(不仅仅是最终用户)、外部系统和其他组织,参与者位于建模的系统的外部。在识别参与者时,要注意参与者是与系统交互的所有事物,该角色的承担者除了人之外,还可以是其他系统和硬件设备,甚至是系统时钟。按照题目中给出的系统需求说明,从需求(3)、(4)、(5)中可以得到由人承担的参与者包括学生、教师、管理员;需求(6)可以得到的参与者是时间(系统时钟)和打印机

        答案:

        参与者:学生、教师、管理员、时间、打印机。

        博主答案:学生、教师、管理员。缺少了时间和打印机(粗心与骄傲导致的)。

【问题 2】解析

        用例之间的关系包括:包含、扩展、泛化。这个是理论没得说。在题目要求中,用例“登录系统”是用例“注册课程”和其他用例执行的公共行为,两者是包含(Include)关系。用例“参加补考”是用例“参加考试”的一种分支和特殊场景,两者是扩展(Extend)关系。

        答案:

        用例之间的关系包括:包含、扩展、泛化。

        “登录系统”用例与“注册课程”用例之间的关系为:包含关系。
        “参加考试”用例与“参加补考”用例之间的关系为:扩展关系。

        博主答案:“参加考试”用例与“参加补考”用例之间的扩展关系。这里搞错了写成了泛化关系

【问题 3】解析

        类与类之间的关系,主要包括关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)和依赖(Dependence)。

        在题目要求中,类 University 与类 Student 之间的关系是整体与部分关系,而且具有不同的生存周期,所以是聚集(Aggregation)关系。类University 和类 Department 之间的关系是整体与部分的关系,两者具有相同的生存周期,所以是组合(Composition)关系。类 Student 和类 Course 之间为连接关系,所以属于关联(Association)关系。

        答案:

        类之间的关系:关联、聚合、组合、泛化、依赖。

        类 University 与类 Suudent 之间的关系是聚合关系;
        类 University 和类 Departiment 之间的关系是组合关系;
        类 Student 和类 Course 之间的关系是关联关系。

相关推荐

【系统架构设计师】九、软件工程(面向对象方法|逆向工程)-CSDN博客文章浏览阅读1.7k次,点赞27次,收藏14次。面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。软件的逆向工程是分析程序,力图在比源代码更高抽象层次上建立程序的表示过程,逆向工程是设计的恢复过程。与逆向工程相关的概念有重构、设计恢复、再工程和正向工程。_软件架构设计 面向对象设计https://shuaici.blog.csdn.net/article/details/140287834【系统架构设计师】十、统一建模语言UML(基本概念|UML2.0|SysML)_sysml与uml-CSDN博客文章浏览阅读767次,点赞21次,收藏14次。UML 2.0 提供了 14 种图,分别是类图、对象图、用例图、序列图、通信图(协作图)、状态图、活动图、构件图(组件图)、部署图、制品图、组合结构图、包图、交互概览图和计时图(定时图)。序列图、通信图、交互概览图和计时图均被称为交互图。系统建模语言(SysML)是一种通用图形建模语言,用于指定,分析,设计和验证可能包括硬件,软件,信息,人员,程序和设施的复杂系统。特别是,该语言提供了图形表示,其具有用于建模系统需求,行为,结构和参数的语义基础,用于与其他工程分析模型集成。_sysml与umlhttps://shuaici.blog.csdn.net/article/details/140349590

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • React学习笔记(一)——react基础
  • 关于python的Django项目性能优化
  • 软件测试3333
  • 苹果系统更新失败怎么办?教你几招轻松应对!
  • 游戏开发中客户端和服务器逻辑
  • pcdn闲置带宽被动收入必看教程。第五讲:光猫更换和基础设置
  • Oracle23ai新特性FOR LOOP循环控制结构增强
  • 工业互联网与大数据实训室解决方案
  • [Linux网络】基本网络命令socket编写TCP应用层实现简易计算器
  • 【TVM 教程】使用 tvmc 接口在 Adreno™ 上部署预训练模型
  • Window下node安装以及配置
  • intel ECI作为ACRN VM使用dpdk(vfio和iommu问题)以及img扩容
  • 2024年消防设施操作员考试题库及答案
  • 【论文阅读】DaST: Data-free Substitute Training for Adversarial Attacks(2020)
  • 六款免费写作工具,一键自动生成爆款文章
  • Android 控件背景颜色处理
  • Centos6.8 使用rpm安装mysql5.7
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • javascript 哈希表
  • k8s 面向应用开发者的基础命令
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Vue UI框架库开发介绍
  • Vue官网教程学习过程中值得记录的一些事情
  • Vue全家桶实现一个Web App
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 计算机常识 - 收藏集 - 掘金
  • 人脸识别最新开发经验demo
  • 如何在 Tornado 中实现 Middleware
  • 通过几道题目学习二叉搜索树
  • 一文看透浏览器架构
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 原生js练习题---第五课
  • ​第20课 在Android Native开发中加入新的C++类
  • "无招胜有招"nbsp;史上最全的互…
  • # 透过事物看本质的能力怎么培养?
  • #13 yum、编译安装与sed命令的使用
  • #HarmonyOS:基础语法
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • $NOIp2018$劝退记
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (12)Linux 常见的三种进程状态
  • (3) cmake编译多个cpp文件
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (python)数据结构---字典
  • (分布式缓存)Redis持久化
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (九十四)函数和二维数组
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (五)MySQL的备份及恢复
  • (转)GCC在C语言中内嵌汇编 asm __volatile__