1.前言
本博文是根据本学期的工程实践项目以及高级软件工程所学知识,通过需求分析建立用例建模和业务领域建模,以及数据建模,完成一个软件设计的流程,是一种敏捷统一过程的基本建模方法。
工程实践项目为学生的选课系统,该系统可以完成学生对于选课与退课的需求,并可以查看课程成绩,教师也可以在该系统上对学生成绩进行填写,管理员可以为二者提供相关的权限,以及一定约束。
2.需求分析
所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,在软件工程当中的"需求分析"就是确定要计算机"做什么",要达到什么样的效果。可以说需求分析是做系统之前必做的。
在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能。
2.1 学生用户功能需求
学生用户可以输入学号、密码登录系统,查看选课信息,并在相应的选课时间段进行课程选择。对于已经选上的课程,可以进行课表查看和退课。学生的个人信息可以在信息中心进行修改。教师将课程成绩发布后,学生可以在系统上查看成绩。
2.2 教师用户功能需求
教师用户可以输入账号、密码登录系统,查看自己的课程安排。教师能够登录成绩。
2.3 管理员用户功能需求
管理员用户可以输入账号、密码登录系统。管理员可以对选课系统的使用用户进行管理(添加、删除、更改权限),也可以对当前的课程、成绩进行管理。
3 用例建模
用例(Use Case)的核心概念中首先它是一个业务过程(business process),经过逻辑整理抽象出来的一个业务过程,这是用例的实质。在待开发软件所处的业务领域内完成特定业务任务(business task)的一系列活动就是业务过程。用例模型主要由以下元素构成:
参与者(Actor) 参与者是指存在于被定义系统外部并与该系统发生交互的人或其他系统,他们代表的是业务领域内的参与者或者业务实体。
用例(Use Case) 用例必须能为特定的参与者完成一个特定的业务任务,用于表示系统所提供的服务。
通讯关联(Communication Association) 通讯关联用于表示参与者和用例之间的对应关系。
用例建模的基本步骤
- 从需求表述中找出用例,往往是动名词短语表示的抽象用例;
- 描述用例开始和结束的状态,用TUCBW和TUCEW表示的高层用例;
- 对用例按照子系统或不同的方面进行分类,描述用例与用例、用例与参与者之间的上下文关系,并画出用例图;
- 进一步逐一分析用例与参与者的详细交互过程,完成一个两列的表格将参与者和待开发软件系统之间从用例开始到用例结束的所有交互步骤都列举出来扩展用例。
其中第一步到第三步是计划阶段,第四步是增量实现阶段。
(1)学生例图
(2)管理员例图
(3)教师模块
4 业务领域建模
4.1概念
业务对象模型(也叫领域模型 domain model)是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例 。
4.2 基本步骤
第一步,收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;
第二步,头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
第三步,给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系。
第四步,将结果用 UML 类图画出来。
下表是应用业务领域概念,以及概念的属性
类名 |
属性 |
学生 |
姓名,学号,班级,密码等 |
教师 |
姓名,密码,账号,授课等 |
管理员 |
账号,密码,姓名,用户管理等 |
课程 |
课程号,课程名称,学分,授课老师,允许选课的学生人数等 |
成绩 |
课程号,课程名称,分数 |
UML图实现业务类图
5数据模型设计
5.1概念
数据模型(Data Model)是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。数据模型所描述的内容有三部分,分别是数据结构、数据操作和数据约束。
5,.2数据模型
(1)学生
字段名称 |
字段类型 |
字段描述 |
Student_id |
int |
主键 |
account |
varchar |
账号 |
password |
varchar |
密码 |
name |
varchar |
姓名 |
|
varchar |
电子邮件 |
class |
varchar |
班级 |
lessons |
set |
课程 |
(2)教师
字段名称 |
字段类型 |
字段描述 |
Teacher_id |
int |
主键 |
account |
varchar |
账号 |
password |
varchar |
密码 |
name |
varchar |
姓名 |
|
varchar |
电子邮件 |
course |
varchar |
课程 |
(3)管理员
字段名称 |
字段类型 |
字段描述 |
Administrator_id |
int |
主键 |
Account |
varchar |
账号 |
password |
varchar |
密码 |
name |
varchar |
姓名 |
|
varchar |
电子邮件 |
jurisdiction |
int |
权限 |
(4)课程
字段名称 |
字段类型 |
字段描述 |
Course_id |
int |
主键 |
Course_name |
varchar |
课程名称 |
Course_location |
varchar |
上课地点 |
Course_time |
varchar |
上课时间 |
Course_weeks |
varchar |
课程的周数 |
Course_teacher |
varchar |
授课老师 |
Course_credit |
int |
课程学分 |
(5)成绩
字段名称 |
字段类型 |
字段描述 |
Course_id |
Int |
主键 |
Course_grade |
set |
成绩表 |
Course_student |
set |
学生表 |
6.概念原型
6.1概念
概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论。
概念原型是一种虚拟的、理想化的软件产品形式。
其定义用以下公式描述:
概念原型 = 用例 + 数据模型。
6.2工作过程举例
学生进行登录,选择学生窗口登录,填入账号以及密码进行登录,系统进行校验,完成登录。学生可以在登录界面点击修改密码,通过邮件认证方式进行修改确认;学生可以根据课程名称,选择课程,或者推选课程,并可以查看课程成绩;教师登录后,可以查看自己课程信息,如课程地点时间,并对学生打分;管理员掌管对用户信息以及成绩课程数据的增删改查最高权限。
7.总结
本文参考了软件工程的相关知识,并结合工程实践项目,根据老师上课的内容以及ppt内容,完成对于项目的需求分析。在此过程中,我对系统本身业务的理解也更为深刻,也将有利于后续系统的开发。
8.参考文献
https://gitee.com/mengning997/se/tree/master/ppt
https://baike.baidu.com/item/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/2012709?fr=aladdin 需求分析概念
https://www.cnblogs.com/handson/p/11928113.html 业务领域建模