随着计算机技术应用的深入,人们需要收集和处理的信息急剧增大,通过软件收集和处理数据成为必然。然而,软件的开发和预期效果,没有达到人们对软件高质量的要求。软件需求工程指应用工程化的方法、技术和规格来开发和管理系统需求,充分理解客户要求。软件需求工程的目标就是获取高质量的软件需求。与传统需求分析概念相比,软件需求工程突出了工程化的原则,强调以系统化、条理化和可重用的方法和技术进行软件需求相关活动,从而有利于提高与软件需求相关的一切活动及其过程的管理,降低了软件需求开发和管理的难度和成本。
本课程是软件工程专业系列核心课程之一,是软件工程课程体系的最前端课程,主要介绍需求的基本概念,需求的分类,需求工程的过程,需求获取的方法、步骤、技巧,需求建模技术,需求定义和验证的方法和技术,需求管理等内容。后续多门课程均已本课程为基础。学生需求工程能力具有了,对后续课程的理解和学习是一个基础,更增加学生就业时的多种能力——工程能力,文档能力,以及相关职业素养。
学习本课程,第一掌握理论知识基础,第二实际项目演练,第三阅读大量参考资料,第四阅读和分析相关案例及相关文档,第五,尝试规范地编写相关文档。对于理论知识,可以从教师课堂讲授、线上慕课、参考文献资料、网络视频等多途径获得,实验项目需要自己从生活或已有软件中发现问题从而进行提炼。实验效果的好坏需要进行评审,可以提请教师或相关专家,或行业专家评审,从而获得相应工程能力的训练。
能够按照软件需求工程的思想,阅读、理解、编写中小型应用型类系统软件需求规格说明文档,并进行验证。较好参与软件需求阶段的后续阶段工作。达到具有较好发现问题、分析问题和解决问题的工程能力,以及具有团队能力、表达能力、文档能力等职业能力。
本课程平时考核方式为积分制考核,每个环节设置相应考核表,最终折算占比60%。期末考试为开卷、笔试。
总评成绩=平时成绩(包括考勤、发言、讨论、实验、线上学习成绩)*60%+期末考试成绩*40%
1 软件需求基础
第一章 单元测试
1.1 什么是需求?
1.2 软件需求的分类
1.3 软件需求工程的过程
1.4 作业及自学内容说明
软件需求工程基础-作业1
2 软件需求获取
2.1 需求获取基本概念
2.2 需求获取的过程
2.3 业务需求
2.4 边界
2.5 前景和范围文档的编写
2.6 涉众与硬数据
2.7 补充:需求获取的常见困难及解决办法-自学
2.8 面谈法获取需求
2.9 原型法获取需求
2.10 其他方法获取需求-自学
2.11 需求组织——用例说明书的编写
2.12 作业要求说明
第二章单元测验
前景和范围文档-作业2
用例使用说明文档-作业3
3 软件需求分析
第三章 单元测验
3.1 需求分析概述
3.2 需求分析方法
3.3 需求分析案例
3.4 其他需求分析
需求各模型的建立-作业4
4 软件需求文档化
第4章单元测验
4.1 软件需求规格说明文档
4.2 软件需求规格说明文档模板的选择与裁剪
4.3 文档模板内容撰写的说明-自学
4.4 文档的写作
4.5 案例示范
软件需求规格说明文档-作业5
5 软件需求验证
5.1 需求的验证及验证过程
5.2 需求验证的方法及特点
第五章单元测试
6 软件需求管理
第六章 单元测试
6.1 需求管理概述
6.2 需求基线
6.3 需求跟踪
6.4 控制需求变更
预先掌握面向对象编程的思想对本课程的学习帮助会比较大。
如果有项目开发经验也有助于本课程的学习。
[1]骆斌.需求工程-软件建模与分析[M],第2版.北京:高等教育出版社,2015.
[2]李尤丰,洪蕾.软件需求工程实验教程[M].南京:南大出版社,2015.
[3](美)Karl E.Wiegers.软件需求(第2版)[M].刘伟琴,刘洪涛译.北京:清华大学出版社,2004.
[4]IEEE recommended practice for software requirements specifications(IEEE Std 830-1998).
[5]计算机软件需求规格说明规范(GT/T 9538-2008)