标签:体会 String 选课 软件设计 业务 用例 课程 数据模型
0. 前言
本文主要基于孟宁老师的高软课程[1],结合学院安排的工程实践项目,体会如何在项目中进行需求分析,在头脑风暴中提取有用信息(如需求分析、用例建模、业务类图等),从而为最终的软件设计打下基础。
本项目为学生选课管理系统[2],可以为不同用户提供不同的功能,如学生用户的选课、退课、查看成绩等服务,教师用户查看课表、添加成绩等服务,管理员可以总体的管理课程、成绩,统筹维护系统。
1. 需求分析
1.1 需求分析概述
需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程[3]。下面我们将就本项目提取需求,分析该选课系统应该具备的功能。
1.2 学生用户功能需求
学生用户可以输入学号、密码登录系统,查看选课信息,并在相应的选课时间段进行课程选择。对于已经选上的课程,可以进行课表查看和退课。学生的个人信息可以在信息中心进行修改。教师将课程成绩发布后,学生可以在系统上查看成绩。
1.3 教师用户功能需求
教师用户可以输入账号、密码登录系统,查看自己的课程安排。教师能够登录成绩。
1.4 管理员用户功能需求
管理员用户可以输入账号、密码登录系统。管理员可以对选课系统的使用用户进行管理(添加、删除、更改权限),也可以对当前的课程、成绩进行管理。
2. 项目用例建模
2.1 用例建模简介
用例的核心概念中首先它是一个业务过程,经过逻辑整理抽象出来的一个业务过程,这是用例的实质。在待开发软件所处的业务领域内完成特定业务任务的一系列活动就是业务过程。
在需求中提取一个用例的通用方法如下:
①从需求表述中找出用例。
②描述用例的开始和结束的状态。
③对用例按照子系统或者不同方面进行分类。
④进一步逐一分析用例和参与者的交互过程。
2.2 项目中的用例建模
(1)学生用例图
(2)教师用例图
(3)管理员用例图
3. 项目业务类图
3.1 业务领域建模简介与方法
业务建模是以软件模型方式描述企业管理和业务所涉及的对象和要素、以及它们的属性、行为和彼此关系,业务建模强调以体系的方式来理解、设计和构架企业信息系统[3]。业务领域建模是开发团队用于获取业务领域知识的过程。
业务领域建模的基本步骤如下:
①收集业务领域的信息。
②头脑风暴。列出业务领域概念、属性、关系。
③将这些业务领域概念分类为类、属性和关系。
④用UML图绘制上属关系。
3.2 项目中的业务建模
根据我们在需求分析和用例分析中得到的结果,我们不难可以提出下面四个类:学生、教师、管理员和课程。列出他们的属性如下:
类名 |
属性 |
学生 |
学号,密码,姓名,学院,专业等 |
教师 |
账号,密码,姓名,学院,任课课程等 |
管理员 |
账号,密码,姓名,权限,课程管理、用户管理、成绩管理等 |
课程 |
课程ID,课程名,任课教师,学分等 |
3.3 UML图实现业务类图
根据上述分析,我们可以绘制出如下五个类的业务类图。
4. 项目数据模型
4.1 数据模型简介
数据模型是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。数据模型所描述的内容有三部分,分别是数据结构、数据操作和数据约束[5]。
4.2 教学管理系统中的数据模型
根据上述对于用例图、业务类图的分析,我们不难可以提取出各个类中的数据模型,具体如下所示:
(1) 学生
数据名 |
数据类型 |
备注 |
student_id |
String |
学生id |
account |
String |
账号 |
password |
String |
密码 |
name |
String |
姓名 |
college |
String |
所属学院 |
major |
String |
专业 |
lesson |
vector<course> |
所选课程 |
(2) 教师
数据名 |
数据类型 |
备注 |
account |
String |
账号 |
password |
String |
密码 |
name |
String |
姓名 |
Teacher_id |
String |
教师id |
college |
String |
所属学院 |
lesson |
vector<course> |
教学课程 |
(3) 管理员
数据名 |
数据类型 |
备注 |
account |
String |
账号 |
password |
String |
密码 |
name |
String |
姓名 |
jurisdiction |
int |
权限 |
(4) 课程
数据名 |
数据类型 |
备注 |
lesson_id |
String |
课程id |
lesson_time |
String |
课程时间 |
lesson_name |
String |
课程名 |
teacher_name |
String |
教师姓名 |
credit |
int |
学分 |
5. 概念原型
5.1 概念原型简介
根据孟宁老师的课件:概念是人对能代表某种事物或者发展过程的特点及其意义所形成的思维结论,而概念原型是一种虚拟化的、理想化的软件产品形式。我们可以得到这样的公式:概念原型=用例+数据模型。
5.2 项目中的概念原型
概念原型需要结合具体的用例与数据模型去分析,就好像程序是由算法和数据结构两部分组成的。
本项目中运用到了学生用例、教师用例和管理员用例。涉及的数据模型为学生、教师、管理员和课程这四个数据类型。
以学生用例为例子:学生用户输入学号和密码,登录系统,可以点击个人中心修改个人信息(登录密码、邮箱、出生年月、联系方式等);在选课允许的时间内,选择和退选课程,查看课表和成绩,这些都是业务操作的结果。在教师用例下,教师用户登录后,可以查看自己的课程安排,在期末的时候也能对学生的课程进行成绩评定。而对于管理员用例来说,具有最高的权限,统筹课程、用户和成绩的管理,对于这些信息进行全局的维护与增删改查。
6. 总结
本文结合了孟宁老师的高软课程和工程实践项目,具体的分析了基于学生选课系统,如何从需求分析,到最后实现了一个软件系统的工作过程。由于项目还在初级阶段,本人理解也不是很到位,难免存在纰漏,若是能抛砖引玉就不甚荣幸。
7. 参考文献
[1] https://gitee.com/mengning997/se/tree/master/ppt,从需求分析到软件设计,孟宁
[2] https://github.com/fuzui/StudentInfo,基于SSM的学生信息管理系统
[3]https://baike.baidu.com/item/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/2012709?fr=aladdin,需求分析
[4]https://baike.baidu.com/item/%E4%B8%9A%E5%8A%A1%E5%BB%BA%E6%A8%A1/6812236?fr=aladdin,业务建模
[5]https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B/1305623?fr=aladdin,数据模型
标签:体会,String,选课,软件设计,业务,用例,课程,数据模型 来源: https://www.cnblogs.com/cszjc/p/14076994.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。