目录
写在前面
本文是一个梗概,大致描述了本门课程到底学了什么,算作是个人笔记的大纲。
这门课程到底介绍的是什么:需求工程。
整个软件开发大致分为需求工程、设计、编码、测试等流程。需求工程就是获取用户的需求,对需求进行分析和建模,最后攥写规格说明书,再对需求规格说明中的需求进行验证和确认,最终得到一份用户和开发人员之间都具有法律效力的文档。需求工程的输出就是SRS(软件需求规格说明书)。
需求工程分为三部分:需求启动、需求开发、需求管理。
需求开发分为四部分:需求获取、需求分析与建模、需求规格说明、需求验证和确认
需求启动
一句话概括:我要解决什么问题,我能否解决,我能否胜任?
目的
了解项目解决什么样的问题,要求我们解决到一个什么程度,对问题可能的解决办法(solution),不同的解决方案有什么优点和缺点,对于我的项目我会采取哪个方案。此外还要进行项目可行性的分析和风险的分析。
输出
上下文图或者系统用例图、项目愿景+范围文档/POS(项目概述说明)、可行性报告和风险评估报告等。
可能涉及的技术:
分析出现问题的原因:鱼骨图和帕累托图
范围和边界的表示:上下文图和系统用例图
保证获取的需求是完整的:上下文的四个刻面
如何处理最顶级(抽象)的目标:目标分解
把用户在业务领域中的描述的需求转换成软件开发需要的需求:目标建模
目标建模的方式:自然语言建模(目标文档),图形化建模(与或树、与或图、复杂项目使用I*和KAOS框架)。
记录和分析目标和目标依赖的综合方法:I*
为目标建模并将目标的责任分配给代理:KAOS