本次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. docker-7-常用软件的安装

    1.总体步骤 搜索镜像 拉取镜像 查看镜像 启动镜像 停止容器 移除容器 2.安装tomcat docker hub上面查找tomcat镜像:docker search tomcat     从doc ...

  2. html字段验证

    (1)连接去掉下划线:style="text-decoration:none" <a href="/example/html/lastpage.html" ...

  3. 前端页面 SEO 优化

    SEO要点:1.语义化html标签,用合适的标签嵌套合适的内容,不可过分依赖div,对浏览器更友善就能更容易被抓取.2.重要的内容html代码放在前面/左边.搜索引擎爬虫是从左往右,从上到下进行抓取的 ...

  4. I、Q信号是如何产生的,I、Q信号复用的作用

    接收机在中频部分实现模数变换和采样,采样后的信号和数字域的同频相乘,就可以得到基带的I.Q分量.在无线接口传输时,每一种使用特定的载波频率.码(扩频码和扰码)以及载波相对相位(I或Q)的信道都可以理解 ...

  5. myeclipse调用loadrunner函数开发测试脚本

    myeclipse调用loadrunner函数开发测试脚本 一.使用myeclipse开发性能测试脚本 1.使用Eclipse新建一个Java工程,将目录%LoadRunner_Home%\class ...

  6. css让不同大小的图片适应div的大小,且不变形。

    做成背景图片 单个 .imgdiv { width: 100px; // 你要的正方形 height: 100px; // 你要的正方形 background-image: url(/your/ima ...

  7. 推荐一个Oracle数据库学习网站

    推荐一个我个人的Oracle数据库学习网站,比较系统性的整理,会持续更新的网站.网址: Oracle基础教程: http://www.oraclejsq.com/article/010100110.h ...

  8. oracle安装程序异常终止解决办法

    安装Oracle时总是会报程序异常终止,摸不着头脑,作为初学者一下就乱了分寸   工具/原料   Oracle软件包 win764位 方法/步骤     右击Oracle安装图标setup.exe,选 ...

  9. 关于2018年第九届蓝桥杯[C++省赛B组][第四题:测试次数]的疑问

    题目来源:https://blog.csdn.net/qq_34202873/article/details/79784548 #标题:测试次数#x星球的居民脾气不太好,但好在他们生气的时候唯一的异常 ...

  10. Python 用hashlib。md5加密算法

    廖雪峰的官方网站学习MD5加密,网址:“http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a0 ...