角色:学校、学员、课程、讲师
要求:
-
创建北京、上海 2 所学校
学校
属性:名字 地址 电话 课程列表 (目前可以将课程存到学校中 后期要反过来 在课程中存储学校信息)
行为: 创建课程
-
创建linux , python , go 3个课程 , linuxpy 在北京开, go 在上海开
课程
属性:课程名称 价格 周期 学校名称
行为:
-
课程包含,周期,价格,通过学校创建课程
-
通过学校创建班级, 班级关联课程、讲师
班级
属性:班级名称 课程名称 老师名称
行为:
-
创建学员时,选择学校,关联班级
学生
属性:姓名,性别,年龄 学校名称 班级名称
行为:选择校区 选择课程 加入班级 交学费 注册
-
创建讲师角色时要关联学校,
讲师
属性:姓名年龄,性别,学校名称
行为: 修改学生成绩 选择班级 查看班级学员列表
-
提供三个角色接口
学员: 登录 注册 选课 交学费 查看自己的分数
老师: 登录, 选择班级 , 修改学员成绩 查看学员信息
管理: 登录,注册, 创建校区,创建讲师,创建课程,创建班级
管理员:
属性: 账号 密码
行为:创建学校,创建班级,创建讲师, 创建课程
-
-
上面的操作产生的数据都通过pickle序列化保存到文件里
pickle 可以直接存储任何类型对象
需求分析 :
明确要做的程序 具备哪些功能,并分析 每个功能是否可以用代码实现, 产生需求文档
技术选型:
1.要使用的技术是否已经成熟 (使用的人多,有完整官文档,还有相对活跃的社区)
-
需要考虑开发团队是否能够hold住该技术
面向对象 还是 面向过程
如果项目体积较大,后续可能需要修改需求或是增加需求,优先考虑 面向对象
1.分析需求 确定需要哪些对象和类 ,分别有哪些特征和行为
三层:
用户层V 接口层C 数据访问层M
用户层 :与用户交互 输出数据 或者接收输入
接口层: 1.判断 验证 组装 数据 交给给数据访问层 来存储 2.从数据访问层拿到数据 组装成用户可以看懂的格式 交给用户层
数据访问: 提供数据的读取和存储
model 模型 就是一个对象 专门用于描述数据 相当于数据容器
需要的文件应该放在那一层
与用户直接打交道的 例如请输入功能序号 放到用户层
user_view
teacher_view
admin_view
一堆类 例如学生 课程 等 放在数据访问层
接口层:
user_interface
teacher_interface
admin_interface
数据访问层:
DBHandler
标准文件目录:
bin
start.py
conf
settings.py
lib
common.py
core
user_view
teacher_view
admin_view
db
DBHandler
models
interface
user_interface
teacher_interface
admin_interface
logs
一堆日志文件
从用户层开始写 功能选择
用户的登录 注册
先后顺序 不是必须的
管理员
学生
老师