h14125689 2024-09-12 22:25 采纳率: 100%
浏览 11
已结题

大二软件工程基础大题

1.某软件公司计划开发一套教学管理系统,用于为高校提供教学管理服务。

该教学管理系统基本的需求包括:
(1)系统用户必须成功登录到系统后才能使用系统的各项功能服务;
(2)管理员(Admin)可以编辑该系统管理学院系 (Department)、教师(Teacher)、学生(Student)和课程(Course)等教学基础信息;
(3)管理员可以编辑课程的授课教师,并据此生成课表;

(4)教师使用该系统查看所要教的课程,并可以从系统获得选修该课程的学生名单;
(5)学生使用系统选择并注册课程,只有注册才能参加考试。
(6)学生必须通过所选课程的考试才能获得学分;如果考试不及格,必须参加补考,通过后才能获得课程学分;
项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。

请阅读材料,完成下列问题:
1、(需求获取)用例建模用来描述待开发系统的功能需求,主要元素是用例和参与者。请根据题目所述需求,绘制用例图,并对材料中(4),(5)涉及的用例做简要描述。(15分)
2、(需求分析)从材料中需求(4),(5)中,选择一个需求,做分析时序图和分析类图。(15分)
3、(系统设计)请根据前述问题中的用例模型、分析时序图以及分析类图,绘制该用例的设计时序图和该用例的设计类图。(15分)

  • 写回答

12条回答 默认 最新

  • 杨同学* 2024-09-12 23:04
    关注

    该回答引用ChatGPT4o及杨同学*共同作答, 如有帮助,还请采纳。

    1. 用例建模

    用例图描述:

    根据题目描述的需求,可以绘制如下的用例图:

    参与者(Actors):

    • 管理员(Admin)
    • 教师(Teacher)
    • 学生(Student)

    用例(Use Cases):

    • 登录系统
    • 管理教学基础信息(管理学院系、教师、学生和课程信息)
    • 管理课程的授课教师和生成课表
    • 教师查看课程及学生名单
    • 学生选择并注册课程
    • 学生参加考试
    • 补考获取学分

    用例图:

      +------------------------+
      |       教学管理系统      |
      +------------------------+
           |                     |                   |
      [管理员(Admin)]  [教师(Teacher)]    [学生(Student)]
            |                     |                   |
      登录系统                 查看课程            选择并注册课程
            |                     |                   |
      管理学院系、教师、  查看学生名单            参加考试
      学生、课程信息          |                   |
            |                                            补考获取学分
      管理授课教师与生成课表
    

    用例描述:

    用例 (4) 教师查看课程及学生名单

    • 主要参与者: 教师(Teacher)
    • 用例描述: 教师登录系统后,可以查看所教课程的详细信息,包括课程名称、时间、地点等。同时,教师可以获得选修该课程的学生名单,名单包括学生的基本信息(如学号、姓名)。
    • 前置条件: 教师必须成功登录系统。
    • 后置条件: 教师能够成功查看相关课程信息及学生名单。

    用例 (5) 学生选择并注册课程

    • 主要参与者: 学生(Student)
    • 用例描述: 学生在登录系统后,可以查看学校提供的课程,选择自己想要选修的课程并进行注册,注册成功后才能参与该课程的学习及考试。
    • 前置条件: 学生必须成功登录系统。
    • 后置条件: 学生能够成功注册课程,系统记录该学生的选课信息。

    2. 需求分析

    选择需求 (5) 学生选择并注册课程,进行分析。

    (1) 时序图

    时序图展示学生选择并注册课程的交互过程:

        学生        系统        课程
         |            |           |
    1. 登录系统       |           |
         | -------->  |           |
    2. 查看课程列表   |           |
         | <--------  |           |
    3. 选择课程       |           |
         | -------->  |           |
    4. 注册课程       |           |
         | -------->  |  更新课程状态 |
         |            | ---------> |
    5. 返回注册结果   |           |
         | <--------  |           |
    

    (2) 分析类图

    • Student: 属性包括学号、姓名等;方法包括查看课程、选择课程、注册课程。
    • Course: 属性包括课程编号、课程名称、授课教师、选修学生等;方法包括注册学生、查看学生名单。
    • System: 主要负责处理学生的登录请求、展示课程列表、处理注册请求等。
    +-------------------+        +-------------------+        +-------------------+
    |     Student       |        |     Course        |        |      System       |
    +-------------------+        +-------------------+        +-------------------+
    | - studentID       |        | - courseID        |        | + login()         |
    | - name            |        | - courseName      |        | + displayCourses()|
    +-------------------+        +-------------------+        | + registerCourse()|
    | + viewCourses()   |        | + registerStudent()|        +-------------------+
    | + selectCourse()  |        | + getStudentList() |
    +-------------------+        +-------------------+
    

    3. 系统设计

    (1) 设计时序图

    设计时序图与分析时序图类似,但加入了更多细节,如数据库交互。

        学生        系统        数据库        课程
         |            |            |            |
    1. 登录系统       | -------->  验证登录信息  |
         | <--------- |            |            |
    2. 查看课程列表   | --------> 查询课程信息  |
         | <--------- |            | <--------- |
    3. 选择课程       |            |            |
         | -------->  |            |            |
    4. 注册课程       | --------> 更新课程信息  |
         |            | --------> 更新数据库    |
    5. 返回注册结果   | <--------- |            |
         | <--------- |            |            |
    

    (2) 设计类图

    设计类图添加了数据库和更多交互细节。

    +-------------------+        +-------------------+        +-------------------+        +-------------------+
    |     Student       |        |     Course        |        |      System       |        |     Database       |
    +-------------------+        +-------------------+        +-------------------+        +-------------------+
    | - studentID       |        | - courseID        |        | + login()         |        | + update()         |
    | - name            |        | - courseName      |        | + displayCourses()|        | + query()          |
    +-------------------+        +-------------------+        | + registerCourse()|        +-------------------+
    | + viewCourses()   |        | + registerStudent()|        | + updateDatabase()|
    | + selectCourse()  |        | + getStudentList() |        +-------------------+
    +-------------------+        +-------------------+        
    

    通过上述用例图、时序图和类图,可以更好地理解和设计该教学管理系统的需求和功能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(11条)

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 创建了问题 9月12日