一、项目简介
在信息化技术发达的今天,区块链技术应用领域非常广泛,各行各业如金融,医疗,公益等行业对信息透明以及留存证据有着莫大的需求。本项目设计了基于区块链的学生信息管理系统,通过构建学生信息管理系统,以此探索区块链技术和日常应用的结合性。
二、需求分析
面向学校信息管理员、教学教师和学生。
需要实现的功能模块:用户信息管理模块,院系管理模块,班级信息管理模块,学生信息管理模块,课程信息管理模块,成绩管理模块,并能根据登入用户的权限自动展示相关操作。
不同功能模块中需要可以对不同分类下的信息维度进行增删改查功能,其中课程信息管理模块中为方便老师需要增加查看平均成绩、查看不及格率和学生成绩排名等功能。
三、用例建模
用例建模的基本步骤
·第一步,从需求表述中找出用例,往往是动名词短语表示的抽象用例;
·第二步,描述用例开始和结束的状态,用TUCBW和TUCEW表示的高层用例;
·第三步,对用例按照子系统或不同的方面进行分类,描述用例与用例、用例与参与者之间的上下文关系,并画出用例图;
·第四步,进一步逐一分析用例与参与者的详细交互过程,完成一个两列的表格将参与者和待开发软件系统之间从用例开始到用例结束的所有交互步骤都列举出来扩展用例。
其中第一步到第三步是计划阶段,第四步是增量实现阶段。
从需求分析中可以发现项目包含三个对象:管理员、教师和学生
用例图
管理员用例图
教师用例图
学生用例图
四、业务领域建模
业务领域建模的基本步骤
·第一步,收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;
·第二步,头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
·第三步,给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系;
·第四步,将结果用 UML 类图画出来。
UML类图
五、数据建模
学生
| 属性 | 类型 | 约束 | 描述 |
| password | String | not null | 密码 |
| id | int | primary key | 学号 |
| name | String | not null | 姓名 |
| major | String | not null | 专业 |
| deparment | String | not null | 院系 |
| class | String | not null | 班级 |
教师
| 属性 | 类型 | 约束 | 描述 |
| password | String | not null | 密码 |
| id | int | primary key | 教师号 |
| name | String | not null | 姓名 |
| deparment | String | not null | 院系 |
管理员
| 属性 | 类型 | 约束 | 描述 |
| password | String | not null | 密码 |
| id | int | primary key | 管理员号 |
| name | String | 姓名 |
课程
| 属性 | 类型 | 约束 | 描述 |
| teacher_id | int | not null | 授课老师 |
| id | int | primary key | 课程号 |
| name | String | not null | 课程名 |
| credits | int | not null | 学分 |
| place | String | not null | 上课地点 |
| time | String | not null | 上课时间 |
成绩
| 属性 | 类型 | 约束 | 描述 |
| course_id | int | primary key | 课程号 |
| student_id | int | primary key | 学生号 |
| grade | int | not null | 成绩 |
六、概念原型
概念原型简介
概念是人对能代表某种事物或者发展过程的特点及其意义所形成的思维结论,而概念原型是一种虚拟化的、理想化的软件产品形式。我们可以得到这样的公式:概念原型=用例+数据模型。
本项目的用例为学生、教师和管理员。数据模型为学生、教师、管理员、课程和成绩表。
工作过程
学生进行注册,选择学生登录窗口,填入学号以及密码注册,然后返回登录窗口,完成登录。学生可以在系统内修改密码以及个人信息;学生可以查看所有课程,选择课程,或者退选课程,并可以查看课程成绩。
教师登录后,可以查看自己所授的课程以及上课地点和时间等信息,在完成考核后给学生设置成绩。
管理员可以对各类用户的信息以及成绩课程数据的增删改查最高权限。
七、总结
第一次接触软件工程中的需求分析,发现并不是一件容易的事情,想要明确项目的需求,需要考虑很多方面,本次对工程实践项目的需求分析还不够完善,但加深了自己对该项目的认知。希望在通过后面的学习可以更加完善,并且在以后的学习和工作中,加强这方面的训练,积极地对项目进行需求分析,让项目更加完善。