需求分析规约 - XLab-Tongji/KAOSer GitHub Wiki

需求分析规约


项目介绍

项目背景

随着软件工程的发展和技术的进步,目前软件开发的规模越来越大。需求分析作为软件开发生命周期的第一阶段,在整个软件开发与维护过程中变得越来越重要,同时,人们也意识到需求分析不仅局限于软件开发的最初阶段,而是贯穿与系统开发的整个。由需求分析发展而成的需求工程,也成为研究的热点之一。

然而,在进行需求分析时,常常会出现需求不明确而导致需求遗漏的情况,与此同时,在开发过程中由于需求的不断迭代而导致的需求变更,也使得最终获得的需求不够明确全面。因此,需求工程中科学有效方法的运用就显得十分重要。

作为需求工程的方法之一,KAOS提供了一套完善的需求分析建模理论,使用者可以利用KAOS来导出系统需求。它所定义的四个模型:需求模型、责任模型、对象模型和操作模型,从四个不同的方面对需求进行分析和管理。同时,KAOS定义了规范的需求分解模式和需求描述,让使用者能够准确、细致地分析系统需求,并在建立好的模型上抽取出一份标准化的需求文档。

鉴于需求工程的重要性和KAOS在需求分析过程中的便利性,一款针对KAOS建模的专用工具是十分必要的。在前期准备过程中,我们对目前市面上各类需求分析、需求管理和需求模型绘制的软件进行了调研,调研的产品涵盖了Web端和PC端,免费开源产品和收费产品,调研的结果显示,现在还没有一款合适的针对KAOS建模的在线工具。在这种背景下,我们确定了项目的初始开发方向——构建一个在线的KAOS建模工具。

同类产品调研报告:需求工程产品调研报告

项目目标

本项目的主要目的是研发一款基于KAOS建模方法的在线需求分析建模工具——KAOSER。界面上参照draw.io,功能上以objectiver为基础,可以为用户提供绘制KAOS模型的工具,在用户绘制过程中,实时检测图表正确性,支持图表保存并下载到本地。另外,可以为用户绘制好的KAOS模型生成模板化的需求文档。让用户在KAOS建模方法的引导下,方便全面地对项目作出需求分析和需求管理。
根据项目计划,项目目标主要有以下几个方面:

  1. 实现在线KAOS模型绘制功能

  2. 实现图形保存到本地功能

  3. 实时检测语法错误

  4. 分析KAOS模型,生成标准表需求文档

  5. 导出需求文档,保存至本地

  6. 导出资源列表,保存至本地

  7. 模型之间连线颜色自动变色

目标用户

了解并掌握KAOS建模方法,需要利用KAOS来导出并管理系统需求的产品负责人和软件开发团队。

项目迭代

iteration1: 根据初步的原型模型,得到需求描述,确定基本的需求。
iteratoin2: 部署系统结构:在之前画图端、后端和数据库的基础联系上,增加了管理端与它们的联系,使得用户可以首先登录网站,创建自己的项目和文档,方便项目管理。
iteration3: 增加一个描述项目资源的功能,可以绘制资源模型,填写资源文本,导出资源列表。
iteration4: 增加图形连线的自动识别颜色类型,并且增加模型绘制之间的语法检测错误。
iteration5: 导出json文件保存到本地或者导出知识图谱。
iteration6: 再次修正各个图形模型的具体模板。
iteration7: 修改已知bug。


项目功能需求分析

对本项目应用KAOS方法,导出需求,得到KAOS模型图如下:

  • 目标-KAOSER

KAOS-KAOSer

  • 目标-绘制模型图

KAOS-绘制模型图

目标-操作选择

KAOS-操作选择

  • 目标-建立操作接口

KAOS-建立操作接口

  • 目标-自动生成标准化文档

KAOS-自动生成标准化文档

  • 目标-将图形保存为结构化数据

KAOS-将图形保存为结构化数据

  • 目标-导出并保存文件

KAOS-导出并保存文件

  • 目标-模型间连线自动识别

KAOS-模型间连线自动识别

  • 目标-新增资源模型

KAOS-新增资源模型


用例分析

用例图

KAOSer 用例图


用例描述

  • 用例-注册
用例名 注册
简要描述 用户利用该用例设置用户名和密码用于登录系统
涉众 用户:注册用户名和密码
相关用例
前置条件 用户已打开主页,点击注册
后置条件 如果注册成功,数据库中将增加一条该用户信息,否则系统维持现状

基本事件流

  1. 用例起始于用户需要注册新的账号

  2. 用户填写用户名和密码

  3. 系统验证用户所填的信息(A-1、A-2、A-3)

备选事件流

A-1 用户名已存在

  (1) 系统向用户发出错误提示信息

  (2) 注册失败

A-2 用户名或密码中含有空格

  (1) 系统向用户发出错误提示信息

  (2) 注册失败

A-3 密码长度太短或者太长

  (1) 系统向用户发出错误提示信息

  (2) 注册失败

待解决问题

暂无

  • 活动图-注册

Use Case sample


  • 用例-登录
用例名 登录
简要描述 用户利用该用例输入用户名和密码登录系统
涉众 用户:进入系统
相关用例
前置条件 用户已有账号且已打开登录页面
后置条件 如果登录成功,用户进入自己的文档界面。否则,系统维持现状

基本事件流

  1. 用例起始于用户需要登录系统

  2. 用户填写用户名和密码

  3. 系统验证用户所填的信息(A-1)

备选事件流

A-1 系统验证用户名或密码不符合

  (1) 系统向用户发出错误提示信息

  (2) 登录失败

待解决问题

暂无

  • 活动图-登录

Use Case sample


  • 用例-删除图形
用例名 删除图形
简要描述 用户利用该用例在画板中为当前模型图删除一个图形
涉众 用户:通过该用例从画板中删除一个图形
父用例 操作图形
前置条件 画板中已有图形存在
后置条件 如果删除图形成功,则在画板中删除该图形以及与其相关的连线,并在数据库中删除相关数据

基本事件流

  1. 用例起始于用户需要删除图形

  2. 用户从画板中选中一个目标图形

  3. 用户选择删除操作

  4. 系统从画板中删除该图形

待解决问题

暂无

  • 活动图-删除图形

Use Case sample


  • 用例-创建图形
用例名 创建图形
简要描述 用户利用该用例在画板中为当前模型图新建一个图形
涉众 用户:通过该用例创建一个新图形
父用例 操作图形
前置条件 用户已打开画板界面
后置条件 如果新建图形成功,则在画板中新增该图形,并在数据库中保存相关数据

基本事件流

  1. 用例起始于用户需要创建一个新图形

  2. 用户从左侧图形栏中选中一个目标图形

  3. 用户拖动该图形到画板中(A-1)

  4. 系统在画板中显示该新图形

备选事件流

A-1 用户在将图形拖动至画板区域前放弃操作

  (1) 系统不对该操作作出反应

待解决问题

暂无

  • 活动图-创建图形

Use Case sample


  • 用例-修改图形文本
用例名 修改图形文本
简要描述 用户利用该用例对画板中当前模型图一个图形的文本内容进行修改
涉众 用户:通过该用例修改图形的文本内容
父用例 修改图形
前置条件 画板中已有图形存在
后置条件 如果图形文本修改成功,则在画板中更新该图形文本内容,并在数据库中保存该图形新的文本信息

基本事件流

  1. 用例起始于用户需要修改一个图形的文本内容

  2. 用户从画板区域中选中一个目标图形

  3. 用户双击该图形

  4. 用户输入新的文本内容

  5. 输入结束,系统更新画板中该图形的文本内容

待解决问题

暂无

  • 活动图-修改图形文本

Use Case sample


  • 用例-修改图形位置
用例名 修改图形位置
简要描述 用户利用该用例对画板中当前模型图一个图形的位置进行修改
涉众 用户:通过该用例修改图形的位置
父用例 修改图形
前置条件 画布中已经有图形存在
后置条件 如果图形位置修改成功,则在画板中更新该图形的位置及其相关连线位置,并在数据库中保存该图形的信息

基本事件流

  1. 用例起始于用户需要修改一个图形的位置

  2. 用户从画板区域中选中一个目标图形

  3. 用户拖动图形

  4. 用户结束拖动,系统更新画板中该图形的外观,同时修改与该图形相关连线的位置

待解决问题

暂无

  • 活动图-修改图形位置

Use Case sample


  • 用例-修改图形大小
用例名 修改图形大小
简要描述 用户利用该用例对画板中当前模型图一个图形的大小进行修改
涉众 用户:通过该用例修改图形的位置
父用例 修改图形
前置条件 画板中已有图形存在
后置条件 如果图形大小修改成功,则在画板中更新该图形外观,并在数据库中保存该图形的信息

基本事件流

  1. 用例起始于用户需要修改一个图形的大小

  2. 用户从画板区域中选中一个目标图形

  3. 用户拖动图形大小控制元件

  4. 用户结束拖动,系统更新画板中该图形的外观

待解决问题

暂无

  • 活动图-修改图形大小

Use Case sample


  • 用例-连接图形
用例名 连接
简要描述 用户利用该用例连接画板中当前模型图中的两个图形
涉众 用户:通过该用例连接两个图形
父用例 操作图形
前置条件 画板中已有图形存在
后置条件 图形间有连线关系并且保存进数据库中

基本事件流

  1. 用例起始于用户需要连接两个图形

  2. 用户从起始图形内部开始按下鼠标

  3. 用户移动鼠标(A-1)

  4. 系统根据起始图形和结束图形的类型确定连线类型

  5. 系统创建图形间连线,并更新画板(A-2)

备选事件流

A-1 鼠标移动到结束图形内部前被松开

  (1) 连线创建取消

  (2)系统不更新画板内容,用例结束


A-2 系统检测到语法错误

  (1)系统终止创建连线,不更新画板内容

  (2)系统向用户发出错误提示信息

待解决问题

暂无

  • 活动图-连接图形

Use Case sample


  • 用例-生成需求文档
用例名 生成需求文档
简要描述 用户利用该用例从模型生成需求文档
涉众 用户:通过该用例从现有KAOS模型生成需求文档
父用例 生成标准化文档模板
前置条件 用户打开一个已经绘制好的KAOS模型文件
后置条件 如果文档生成成功,则将文档数据保存在后端

基本事件流

  1. 用例起始于用户需要获取该模型的需求文档

  2. 用户在文件窗口内点击生成需求文档按钮

  3. 系统分析模型的数据结构(A-1)

  4. 系统向文档模板内填充模型数据

  5. 系统将生成的文档模板保存为临时文件

备选事件流

A-1 系统检测到语法错误

  (1) 系统向用户发出错误提示信息

  (2) 系统终止文档生成

待解决问题

暂无

  • 活动图-生成需求文档

Use Case sample


  • 用例-生成资源列表
用例名 生成资源列表
简要描述 用户利用该用例从模型获取资源列表及之间的关系
涉众 用户:通过该用例从现有KAOS模型生成资源列表
父用例 生成标准化文档模板
前置条件 用户打开一个已经绘制好的KAOS模型文件
后置条件 如果文档生成成功,则将文档数据保存在后端

基本事件流

  1. 用例起始于用户需要获取该模型的资源列表

  2. 用户在文件窗口内点击生成资源列表按钮

  3. 系统分析模型的数据结构(A-1)

  4. 系统向资源列表内填充模型数据

  5. 系统将生成的资源列表保存为临时文件

备选事件流

A-1 系统检测到语法错误

  (1) 系统向用户发出错误提示信息

  (2) 系统终止文档生成

待解决问题

暂无

  • 活动图-生成资源列表

Use Case sample


  • 用例-导出并下载文件到本地
用例名 导出并下载文件到本地
简要描述 用户利用该用例从系统中下载现有文件
涉众 用户:通过该用例将文件导出并保存到本地电脑
相关用例
前置条件 用户已经为当前模型生成了模板文档
后置条件

基本事件流

  1. 用例起始于用户需要从系统中下载文件

  2. 用户在文件窗口内点击下载按钮

  3. 用户指定文件名(A-1)

  4. 用户点击确定按钮

  5. 系统将数据库中该文件的数据保存到用户电脑

备选事件流

A-1 用户点击取消按钮

  (1) 系统回到模型文件界面

待解决问题

暂无

  • 活动图-导出并下载文件到本地

Use Case sample

⚠️ **GitHub.com Fallback** ⚠️