需求分析规约 - XLab-Tongji/KAOSer GitHub Wiki
随着软件工程的发展和技术的进步,目前软件开发的规模越来越大。需求分析作为软件开发生命周期的第一阶段,在整个软件开发与维护过程中变得越来越重要,同时,人们也意识到需求分析不仅局限于软件开发的最初阶段,而是贯穿与系统开发的整个。由需求分析发展而成的需求工程,也成为研究的热点之一。
然而,在进行需求分析时,常常会出现需求不明确而导致需求遗漏的情况,与此同时,在开发过程中由于需求的不断迭代而导致的需求变更,也使得最终获得的需求不够明确全面。因此,需求工程中科学有效方法的运用就显得十分重要。
作为需求工程的方法之一,KAOS提供了一套完善的需求分析建模理论,使用者可以利用KAOS来导出系统需求。它所定义的四个模型:需求模型、责任模型、对象模型和操作模型,从四个不同的方面对需求进行分析和管理。同时,KAOS定义了规范的需求分解模式和需求描述,让使用者能够准确、细致地分析系统需求,并在建立好的模型上抽取出一份标准化的需求文档。
鉴于需求工程的重要性和KAOS在需求分析过程中的便利性,一款针对KAOS建模的专用工具是十分必要的。在前期准备过程中,我们对目前市面上各类需求分析、需求管理和需求模型绘制的软件进行了调研,调研的产品涵盖了Web端和PC端,免费开源产品和收费产品,调研的结果显示,现在还没有一款合适的针对KAOS建模的在线工具。在这种背景下,我们确定了项目的初始开发方向——构建一个在线的KAOS建模工具。
同类产品调研报告:需求工程产品调研报告
本项目的主要目的是研发一款基于KAOS建模方法的在线需求分析建模工具——KAOSER。界面上参照draw.io,功能上以objectiver为基础,可以为用户提供绘制KAOS模型的工具,在用户绘制过程中,实时检测图表正确性,支持图表保存并下载到本地。另外,可以为用户绘制好的KAOS模型生成模板化的需求文档。让用户在KAOS建模方法的引导下,方便全面地对项目作出需求分析和需求管理。
根据项目计划,项目目标主要有以下几个方面:
-
实现在线KAOS模型绘制功能
-
实现图形保存到本地功能
-
实时检测语法错误
-
分析KAOS模型,生成标准表需求文档
-
导出需求文档,保存至本地
-
导出资源列表,保存至本地
-
模型之间连线颜色自动变色
了解并掌握KAOS建模方法,需要利用KAOS来导出并管理系统需求的产品负责人和软件开发团队。
iteration1: 根据初步的原型模型,得到需求描述,确定基本的需求。
iteratoin2: 部署系统结构:在之前画图端、后端和数据库的基础联系上,增加了管理端与它们的联系,使得用户可以首先登录网站,创建自己的项目和文档,方便项目管理。
iteration3: 增加一个描述项目资源的功能,可以绘制资源模型,填写资源文本,导出资源列表。
iteration4: 增加图形连线的自动识别颜色类型,并且增加模型绘制之间的语法检测错误。
iteration5: 导出json文件保存到本地或者导出知识图谱。
iteration6: 再次修正各个图形模型的具体模板。
iteration7: 修改已知bug。
对本项目应用KAOS方法,导出需求,得到KAOS模型图如下:
- 目标-KAOSER
- 目标-绘制模型图
目标-操作选择
- 目标-建立操作接口
- 目标-自动生成标准化文档
- 目标-将图形保存为结构化数据
- 目标-导出并保存文件
- 目标-模型间连线自动识别
- 目标-新增资源模型
- 用例-注册
用例名 | 注册 |
简要描述 | 用户利用该用例设置用户名和密码用于登录系统 |
涉众 | 用户:注册用户名和密码 |
相关用例 | 无 |
前置条件 | 用户已打开主页,点击注册 |
后置条件 | 如果注册成功,数据库中将增加一条该用户信息,否则系统维持现状 |
基本事件流 |
|
备选事件流 |
A-1 用户名已存在 (1) 系统向用户发出错误提示信息 (2) 注册失败 A-2 用户名或密码中含有空格 (1) 系统向用户发出错误提示信息 (2) 注册失败 A-3 密码长度太短或者太长 (1) 系统向用户发出错误提示信息 (2) 注册失败 |
待解决问题 |
暂无 |
- 活动图-注册
- 用例-登录
用例名 | 登录 |
简要描述 | 用户利用该用例输入用户名和密码登录系统 |
涉众 | 用户:进入系统 |
相关用例 | 无 |
前置条件 | 用户已有账号且已打开登录页面 |
后置条件 | 如果登录成功,用户进入自己的文档界面。否则,系统维持现状 |
基本事件流 |
|
备选事件流 |
A-1 系统验证用户名或密码不符合 (1) 系统向用户发出错误提示信息 (2) 登录失败 |
待解决问题 |
暂无 |
- 活动图-登录
- 用例-删除图形
用例名 | 删除图形 |
简要描述 | 用户利用该用例在画板中为当前模型图删除一个图形 |
涉众 | 用户:通过该用例从画板中删除一个图形 |
父用例 | 操作图形 |
前置条件 | 画板中已有图形存在 |
后置条件 | 如果删除图形成功,则在画板中删除该图形以及与其相关的连线,并在数据库中删除相关数据 |
基本事件流 |
|
待解决问题 |
暂无 |
- 活动图-删除图形
- 用例-创建图形
用例名 | 创建图形 |
简要描述 | 用户利用该用例在画板中为当前模型图新建一个图形 |
涉众 | 用户:通过该用例创建一个新图形 |
父用例 | 操作图形 |
前置条件 | 用户已打开画板界面 |
后置条件 | 如果新建图形成功,则在画板中新增该图形,并在数据库中保存相关数据 |
基本事件流 |
|
备选事件流 |
A-1 用户在将图形拖动至画板区域前放弃操作 (1) 系统不对该操作作出反应 |
待解决问题 |
暂无 |
- 活动图-创建图形
- 用例-修改图形文本
用例名 | 修改图形文本 |
简要描述 | 用户利用该用例对画板中当前模型图一个图形的文本内容进行修改 |
涉众 | 用户:通过该用例修改图形的文本内容 |
父用例 | 修改图形 |
前置条件 | 画板中已有图形存在 |
后置条件 | 如果图形文本修改成功,则在画板中更新该图形文本内容,并在数据库中保存该图形新的文本信息 |
基本事件流 |
|
待解决问题 |
暂无 |
- 活动图-修改图形文本
- 用例-修改图形位置
用例名 | 修改图形位置 |
简要描述 | 用户利用该用例对画板中当前模型图一个图形的位置进行修改 |
涉众 | 用户:通过该用例修改图形的位置 |
父用例 | 修改图形 |
前置条件 | 画布中已经有图形存在 |
后置条件 | 如果图形位置修改成功,则在画板中更新该图形的位置及其相关连线位置,并在数据库中保存该图形的信息 |
基本事件流 |
|
待解决问题 |
暂无 |
- 活动图-修改图形位置
- 用例-修改图形大小
用例名 | 修改图形大小 |
简要描述 | 用户利用该用例对画板中当前模型图一个图形的大小进行修改 |
涉众 | 用户:通过该用例修改图形的位置 |
父用例 | 修改图形 |
前置条件 | 画板中已有图形存在 |
后置条件 | 如果图形大小修改成功,则在画板中更新该图形外观,并在数据库中保存该图形的信息 |
基本事件流 |
|
待解决问题 |
暂无 |
- 活动图-修改图形大小
- 用例-连接图形
用例名 | 连接 |
简要描述 | 用户利用该用例连接画板中当前模型图中的两个图形 |
涉众 | 用户:通过该用例连接两个图形 |
父用例 | 操作图形 |
前置条件 | 画板中已有图形存在 |
后置条件 | 图形间有连线关系并且保存进数据库中 |
基本事件流 |
|
备选事件流 |
A-1 鼠标移动到结束图形内部前被松开 (1) 连线创建取消 (2)系统不更新画板内容,用例结束 A-2 系统检测到语法错误 (1)系统终止创建连线,不更新画板内容 (2)系统向用户发出错误提示信息 |
待解决问题 |
暂无 |
- 活动图-连接图形
- 用例-生成需求文档
用例名 | 生成需求文档 |
简要描述 | 用户利用该用例从模型生成需求文档 |
涉众 | 用户:通过该用例从现有KAOS模型生成需求文档 |
父用例 | 生成标准化文档模板 |
前置条件 | 用户打开一个已经绘制好的KAOS模型文件 |
后置条件 | 如果文档生成成功,则将文档数据保存在后端 |
基本事件流 |
|
备选事件流 |
A-1 系统检测到语法错误 (1) 系统向用户发出错误提示信息 (2) 系统终止文档生成 |
待解决问题 |
暂无 |
- 活动图-生成需求文档
- 用例-生成资源列表
用例名 | 生成资源列表 |
简要描述 | 用户利用该用例从模型获取资源列表及之间的关系 |
涉众 | 用户:通过该用例从现有KAOS模型生成资源列表 |
父用例 | 生成标准化文档模板 |
前置条件 | 用户打开一个已经绘制好的KAOS模型文件 |
后置条件 | 如果文档生成成功,则将文档数据保存在后端 |
基本事件流 |
|
备选事件流 |
A-1 系统检测到语法错误 (1) 系统向用户发出错误提示信息 (2) 系统终止文档生成 |
待解决问题 |
暂无 |
- 活动图-生成资源列表
- 用例-导出并下载文件到本地
用例名 | 导出并下载文件到本地 |
简要描述 | 用户利用该用例从系统中下载现有文件 |
涉众 | 用户:通过该用例将文件导出并保存到本地电脑 |
相关用例 | 无 |
前置条件 | 用户已经为当前模型生成了模板文档 |
后置条件 | 无 |
基本事件流 |
|
备选事件流 |
A-1 用户点击取消按钮 (1) 系统回到模型文件界面 |
待解决问题 |
暂无 |
- 活动图-导出并下载文件到本地