本次DDD实践选取我们都熟悉的高校成绩管理作为例子。

(一).需求描述

  1. 每学期学校教务处老师会进行教学安排,具体就是建立教学班,指定该教学班代课教师,上课学生,然后进行排课(忽略此部分,这是另一个系统)。指定上课学生有下面几种方式:单独一个班上课;多个班合上课;一个班部分学生上课;一个班部分学生与其它班合上课。也有一些教学任务,上课学生是没有规律的,即我们熟悉的选修课,是由学生自由选择的。

  2. 学期末,代课教师会根据自己所授课程上课学生名单登记成绩,经教务处审核后该成绩即可公布。登记成绩时系统需要标识出申请了本门课程缓考的学生,并且不能给这些学生录成绩。对于缺考和作弊的学生需如实登记。

  3. 每门课最终成绩的记录形式由课程考核方式(考试、考查)决定。考试课记录形式为百分制。考查课记录形式为两分制(合格、不合格)。

  4. 每门课的最终成绩计算办法由课程考核办法规定。考查课最终成绩由代课教师直接给出并登记。而考试课根据课程包含的性质(理论、实验、实践)而对应有平时成绩、实验成绩、实践成绩、卷面成绩中的几项(卷面成绩必有,平时成绩绝大部分有),最终成绩由这些成绩加权计算得出(这四项成绩均采取百分制)。对存在缺考、作弊学生该门课程记为0分或不及格。

  5. 最终成绩不及格的课程需要补考(第二学期初进行),如果补考不及格还需要清考(毕业学期进行)。这两个成绩均需记录,且最终成绩根据补考成绩决定:补考或清考及格,记为“补及”,否则记为“补不及”。补考成绩由授课教师录入。清考成绩由教务处老师录入。
  6. 缓考的学生需安排补考,由授课教师录入成绩,成绩处理办法同正常考试相同。

以上需求更接近于高校的实际成绩管理业务,因为各学校的规定也会有差异,如医学类,所以实际情况比这个还要复杂,我们本次只选择这些片段进行开发。

(二).用户故事

  • 作为教务处老师,我要建立教学班,以便教师和学生彼此都清楚他们之间的教学关系

  • 作为教务处老师,我要登记清考成绩,以便根据清考成绩结果调整学生该门课程的最终成绩

  • 作为教务处老师,我要录入课程的考核办法,以便各类成绩录入人在录入成绩时系统根据此方案计算该课程的最终成绩
  • 作为授课教师,我要登记学生的相关成绩,以便算出学生该门课程的最终成绩

    • 作为授课教师,我能登记学生缺考或作弊的情况,以便学校按规定判定学生该门课程的最终成绩
    • 作为授课教师,我要查看本门课程的缓考学员名单,以避免为这些学员录入成绩
  • 作为授课教师,我要登记不及格学生的补考成绩,以便根据补考成绩结果调整学生该门课程的最终成绩

  • 作为学生,我能申请缓考某门课程,以便避免被误认为缺考并能进行正常补考。

  • 作为学生,我能补考缓考的课程,以便取得该门课程的最终成绩。

  • 作为学生,我能查看我各学期学习课程的最终成绩,以了解我的成绩情况和需补考和清考的课程
  • 作为学生,我能查看需补考和清考的课程,以便准备考试

DDD实战成绩管理---用户故事的更多相关文章

  1. DDD实战成绩管理---需求分析

    需求的分析我们采用四色模型.从用户故事中找出MI,然后围绕MI找出其中的role,ppt,des.本次先对两个优先级最高的用户故事进行四色模型建模. 1.用户故事一建模:作为教务处老师,我要建立教学班 ...

  2. 用户故事驱动的敏捷开发 – 2. 创建backlog

    本系列的第一篇[用户故事驱动的敏捷开发 – 1. 规划篇]跟大家分享了如何使用用户故事来帮助团队创建需求的过程,在这一篇中,我们来看看如何使用这些用户故事和功能点形成产品backlog.产品backl ...

  3. 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划

    菜鸟Scrum敏捷实践系列索引 菜鸟Scrum敏捷实践系列(一)用户故事概念 菜鸟Scrum敏捷实践系列(二)用户故事验收 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划 采用Sc ...

  4. 2.windows-oracle实战第二课 -用户管理

    创建用户:在oracle中创建一个用户有create user语句,一般是具有dba(数据库管理员)的权限才能使用.用户创建在所在的实例数据库中. 给用户修改密码:passw 给别人修改密码需要dba ...

  5. DDD实战课--学习笔记

    目录 学好了DDD,你能做什么? 领域驱动设计:微服务设计为什么要选择DDD? 领域.子域.核心域.通用域和支撑域:傻傻分不清? 限界上下文:定义领域边界的利器 实体和值对象:从领域模型的基础单元看系 ...

  6. DDD实战课(实战篇)--学习笔记

    目录 DDD实践:如何用DDD重构中台业务模型? 领域建模:如何用事件风暴构建领域模型? 代码模型(上):如何使用DDD设计微服务代码模型? 代码模型(下):如何保证领域模型与代码模型的一致性? 边界 ...

  7. core3商城DDD实战(一)建模

    我所在学校部门的一个校园商城项目(学生售卖二手物品与发布悬赏求助等,在线上确认,校园内线下交易) 我们使用DDD的软件开发方法,这是我们进入编程世界上手的第二个项目,从创建仓库到现在已经过去二十多天, ...

  8. UDAD 用户故事驱动的敏捷开发 – 演讲实录

    敏捷发展到今天已经在软件行业得到了广泛认可,但大多数敏捷方法都是为了解决某一特定问题而总结出来的特定方法或实践,一直缺乏一个可以将整个开发过程串接起来的成体系的方法.用户故事驱动的敏捷开发(User ...

  9. (l老陈-小石头)典型用户、用户故事、用例图

    一.典型用户 老陈 小石头 二.用户故事 老陈:作为一个家长,我希望能利用软件在电脑上储存一些数学题目,以便在繁忙的工作中也能帮助到孩子提高数学. 小石头:作为一个小学二年级的小学生,我希望能利用软件 ...

随机推荐

  1. 【CSS-flex】圣杯布局(Holy Grail Layout)、输入框的布局、悬挂式布局、固定的底栏

    1.圣杯布局(Holy Grail Layout) 其指的是一种最常见的网站布局.页面从上到下,分成三个部分:头部(header),躯干(body),尾部(footer).其中躯干又水平分成三栏,从左 ...

  2. Java利用 ganymed-ssh2-build.jar来上传文件到linux以及下载linux文件以及执行linux shell命令

    package api; import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOExcepti ...

  3. Selenium & Webdriver 远程测试和多线程并发测试

    Selenium & Webdriver 远程测试和多线程并发测试 Selenium Webdriver自动化测试,初学者可以使用selenium ide录制脚本,然后生成java程序导入ec ...

  4. printf重定向问题

    1.使用printf库函数时,要加入头文件<stdio.h> 2.另外在keil里面需要把:use MicroLIB 勾选上,不然程序没办法在线调试.编译的时候不会报错. 3.当然可以不用 ...

  5. mysql 全量备份与增量备份

    全量备份[root@master adm]# cat DBfullBak.sh #!/bin/bash #use mysqldump to fully backup mysql data BakDir ...

  6. 通过系统进程查找sql语句

    一.通过系统进程id查找sql语句 SELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN ...

  7. CentOS6安装各种大数据软件 第六章:HBase分布式集群的配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  8. Google Cloud Platform 续

    Google Cloud Platform 创建新实例 地区:australia-southeast1-a 机器类型:1个vCPU n1-standard-1 系统:Ubuntu 16.04 LTS ...

  9. linux静态IP最简配置

    vi /etc/sysconfig/network-scripts/ifcfg-xxx TYPE="Ethernet"BOOTPROTO="static"ONB ...

  10. Bootstrap源码解读之栅格化篇

    本文纯属自己研究所写笔记,如果有错误还请多多指教提出 版心(container) 版心:class名为.container的容器,其版心的宽度在各个屏幕设备下是不一样的值,版心两边就是留白. 各尺寸下 ...