本次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. php redis中文手册

    phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: 下载地址如下: https://github.com/ow ...

  2. Convolution1D与Convolution2D区别

    以下是Convolution1D的例子: # apply a convolution 1d of length 3 to a sequence with 10 timesteps, # with 64 ...

  3. Dubbo实践(十七)telnet

    telnet的介绍可以参看<java网络编程3>中有一段介绍telnet,我们可以理解为,telnet命令是通过socket协议与服务器端通信.Dubbo提供了telnet命令去查看服务功 ...

  4. Eclipse常用快捷键(持续更新)

    编辑相关快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 1.[Ctrl+O] 显示类中方法和属性的大纲, ...

  5. sdn测量综述

    一 文章名称:A Survey on Security-Aware Measurement in SDN 发表时间:2018 来源:<Security & Communication N ...

  6. oracle入门(二)

    ### 一,视图 ```1. 什么是视图    视图是一张虚表, 可以把视图看成表使用(增删改查),视图中没有数据,所有的数据都在基本表中(tables)    封装了一个复杂的DQL    操作视图 ...

  7. [jQuery]常用正则表达式

    验证网址:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$电子 ...

  8. MySQL->元数据[20180510]

    MySQL元数据     Meta Data,一般是结构化数据(如存储在数据库里的数据,字段长度.类型.默认值等等).Meta Data就是描述数据的数据,在MySQL中描述有哪些数据库.哪些表.表有 ...

  9. java Clob类型 转String

    1.我的数据库是oracle11g 遇到取出来的字段是clob类型,但是所需要的是string类型,写一个转换函数就可以解决问题了. // Clob类型 转String public String C ...

  10. JS变量、作用域、内存

    写到这个题目<JS变量.作用域,内存>,我就不由自主想起了黄金三嫖客.可能是名字有点像,嗯,一定是这样子的! JS接触下来,应该是要比Java简单不少的,所以,要学好啊.立个flag半年后 ...