本次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. 在Windows 10中更改网络连接优先级

    查看接口列表 (也可使用 如下) 选择网络连接,然后单击右侧的箭头以更改网络连接优先级.  可以参考之前的部分 链接在此 更改单个wi-fi连接顺序可以使用如下

  2. springmvc与Structs2本质区别

    1.前端控制器不同:structs2入口是一个filter过滤器,springmvc入口是一个servlet. 2.设计思想不同: struts2通过在action类中定义成员变量接收请求参数,str ...

  3. Dubbo实践(一)入门示例

    dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候 ...

  4. ovs加dpdk在日志中查看更多运行细节的方法

    想查看更多dpdk+ovs的更多运行细节,可以采用以下方法,增加更多运行日志. 在终端输入: ovs-appctl vlog/set dpdk:file:dbg ovs-appctl vlog/set ...

  5. sharepoint rest api Add ListItem 报错

    Recently, I was trying to create a list item using Rest API on Sharepoint 2013. I got the following ...

  6. PHP介绍(PHP入门1)

    BS架构和CS架构 B:Browser:浏览器 S:Server:服务器 C:Client:客户端 BS 浏览器和服务器的关系,通过浏览器来访问服务器,比如:百度.新浪... 优点:只要有浏览器就能访 ...

  7. Java解析Excel之应用Reflection等技术实现动态读取

    目录树 背景 技术选型 问题分析 技术要点及难点分析 源码分析 测试用例 背景 Tip:因为产品提的需求我都开发完了,进行了项目提测:前天老大走过来说:你用spring-boot开发一个解析Excel ...

  8. spring 包的依赖关系

    转自:http://www.cnblogs.com/ywlaker/p/6136625.html 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring ...

  9. win7在安装时跳过输入用户名界面,直接开启管理员用户

    WIN7原版系统安装完后需要创建用户,为了追求纯净简化不必要的步骤,可以选择跳过创建用户直接启用内置管理员账户.首先,到了创建用户这一步先别急着往下点,此时按键盘的SHIFT + F10 组合键调出命 ...

  10. iOS之Custom UIViewController Transition

    本文学习下自定义ViewController的切换,从无交互的到交互式切换. (本文已同步到我的小站:icocoa,欢迎访问.) iOS7中定义了3个协议: UIViewControllerTrans ...