软件需求工程
分享
课程详情
课程评价
spContent=本课程帮助您建立软件需求工程的概念,掌握软件需求获取、分析的技术和方法,通过案例和项目实践,教会您理解和编写规范化的软件需求规格说明文档(系统解决方案),并能够验证需求,对需求进行管理,具备一个软件需求工程师(产品经理)的基本素质。
—— 课程团队
课程概述

随着计算机技术应用的深入,人们需要收集和处理的信息急剧增大,通过软件收集和处理数据成为必然。然而,软件的开发和预期效果,没有达到人们对软件高质量的要求。软件需求工程指应用工程化的方法、技术和规格来开发和管理系统需求,充分理解客户要求。软件需求工程的目标就是获取高质量的软件需求。与传统需求分析概念相比,软件需求工程突出了工程化的原则,强调以系统化、条理化和可重用的方法和技术进行软件需求相关活动,从而有利于提高与软件需求相关的一切活动及其过程的管理,降低了软件需求开发和管理的难度和成本。

本课程是软件工程专业系列核心课程之一,是软件工程课程体系的最前端课程,主要介绍需求的基本概念,需求的分类,需求工程的过程,需求获取的方法、步骤、技巧,需求建模技术,需求定义和验证的方法和技术,需求管理等内容。后续多门课程均已本课程为基础。学生需求工程能力具有了,对后续课程的理解和学习是一个基础,更增加学生就业时的多种能力——工程能力,文档能力,以及相关职业素养。

学习本课程,第一掌握理论知识基础,第二实际项目演练,第三阅读大量参考资料,第四阅读和分析相关案例及相关文档,第五,尝试规范地编写相关文档。对于理论知识,可以从教师课堂讲授、线上慕课、参考文献资料、网络视频等多途径获得,实验项目需要自己从生活或已有软件中发现问题从而进行提炼。实验效果的好坏需要进行评审,可以提请教师或相关专家,或行业专家评审,从而获得相应工程能力的训练。

 



授课目标
能够按照软件需求工程的思想,阅读、理解、编写中小型应用型类系统软件需求规格说明文档,并进行验证。较好参与软件需求阶段的后续阶段工作。达到具有较好发现问题、分析问题和解决问题的工程能力,以及具有团队能力、表达能力、文档能力等职业能力。
课程大纲

--1 软件需求工程基础1H

   -1.1 什么是软件需求?

    介绍什么是软件及软件工程,软件危机,什么是需求。及需求工程,需求的分类,优秀需求的特点,对需求工程师的要求。

   -1.2软件需求分类

详细介绍软件需求工程的分类。

   -1.3软件需求工程

    介绍软件需求工程及过程。

   -1.4作业及自学内容要求

    介绍作业(实验环节)的要求及提交内容,布置自学内容。布置任务,准备实验,自发现提出Dirty Example,宣布实验规则。

重点:需求及需求工程概念、分类,需求工程及过程。

难点:需求分类,提出Dirty Example。

考核方式:单元测验。15道选择题,考察学生基本知识点的掌握程度。(共15分,1题1分。)

            作业:提出Dirty Example。(10分)

--2 软件需求获取(2H)

   -2.1 需求获取基本概念

     介绍什么是需求获取,软件需求获取在软件需求工程中的地位和作用,为什么需要需求获取,需求获取结果是什么等问题。

   -2.2 需求获取的过程

 从需求获取的内容、来源、方法、成果等几方面阐述需求获取的基本过程,有效指导专业人员开展需求获取。案例示范需求获取的过程。(注:企业真实的案例分析。有条件的话会到企业拍摄相应视频示范需求获取过程。)

   -2.3 业务需求   

    介绍如何确定项目的前景,举例说明如何编写业务需求包含的各部分内容。

   -2.4 边界

   介绍边界概念,举例说明如何用上下文图和用例图表示边界。

  -2.5前景和范围文档

从前景和范围确定的必要性、方法等角度出发,介绍前景和范围文档的模板及写作。

  -2.6涉众与硬数据

   介绍涉众的概念,涉众分析概念及过程。简单介绍硬数据概念及分类,并举例说明。

  -2.7 需求获取的困难及解决方法(自学)

   提供自学材料。从需求方、需求获取方,以及业务本身三个方面阐述需求获取可能遇到的各种困难及解决方法。举例介绍部分获取困难及解决方法。

  -2.8需求获取的方法——面谈法

   介绍需求获取的常用方法,例如面谈法。通过观摩情景剧,以及面谈报告的多次生成过程,介绍需求获取过程,及需求结果的来源。

原型法,文档和观察法等,并介绍一些需求获取最前沿的方法技术,

  -2.9需求获取的方法——原型法

   介绍需求获取的常用方法,例如原型法。通过案例,掌握界面原型和故事板原型的使用。并同时介绍需求获取过程,及需求结果的来源。

  -2.10需求获取的其他方法(自学)

   提供自学内容,并建议读者查阅相关资料,学习需求获取的其他方法方法。

   -2.11 需求的组织-用例说明文档

    从用例结合场景的视角阐述需求的组织过程,特别强调使用用例法组织需求。介绍如何编写用例列表和用例说明书等相关文档。案例示范用例说明文档的编写。(注:企业真实的案例示范。)

    提供目标法、场景法等进行需求组织的自学材料。

   -2.12 作业要求和补充说明

项目启动,线下调研课题,编写前景和范围文档,并度量该文档,上线提交文档及自评价结果。  

 项目开展,使用各种方法获取需求,编写用例列表和用例使用说明书,并度量该文档。(注:部分内容要求学生线下完成,然后线上提交用例说明文档及自评结果。)

 

重点:需求获取的各种方法使用,前景和范围文档的编写,用例说明文档的编写。

难点:需求获取的各种方法使用,前景和范围文档的编写,用例说明文档的编写。

考核方式:(1)单元测验。25道选择题,考核学生基本知识点的掌握情

况。(共25分,1题1分。)

            2)作业:前景和范围文档(共20分)

                     用例使用说明文档。(共25分) 

--3 软件需求分析(3H)

   -3.1 需求分析概述

      介绍需求分析的具体工作,包含首先自顶向下进行分解,其次自底向上进行提炼,最后发现分析中的矛盾并消除矛盾。介绍建模的目标与要点,认识UML。

   -3.2 需求分析方法

 介绍两种需求分析方法并进行了对比。

结构化建模方法主要介绍了数据建模与过程建模,包括E-R图、数据流程图、数据字典。面向对象建模主要介绍了用例模型、静态模型和动态模型,包括用例图、状态图、活动图、类图、交互图等。(注:真实的案例分析。)

   -3.3 需求分析案例

 通过课程项目案例介绍一个完整的需求分析过程,通过理清业务与流程和确定需求细节两个阶段完成。(注:真实的案例分析)

   -3.4 其他需求分析

 功能需求完成以后,还需要完成接口需求,非功能需求和设计约束的分析,本节通过案例介绍了其他需求分析。(注:真实的案例分析。)

重点: 各种建模方法的恰当使用,各种模型的建立。

难点:各种建模方法的恰当使用各种模型的建立。

考核方式:(1)单元测验。25道选择题,考核学生基本知识点的掌握情况。(共25分,1题。1分)

             2)作业:完成软件需求规格说明书的附录B中各类模型。(共20分)

--4 软件需求文档化(1H)

   -4.1 软件需求规格说明文档

     介绍软件需求规格说明文档的概念、编写目的、过程及意义。  

   -4.2 软件需求规格说明文档模板的选择与裁剪

   介绍软件需求规格说明文档模板及其选择

  -4.3 软件需求规格说明文档各部分内容书写说明-自学

   介绍软件需求规格说明文档各部分该书写什么内容。

    -4.4软件需求规格说明文档的写作

   介绍软件需求规格说明文档写作注意事项

  -4.5案例示范

   案例示范SRS的编写,案例分析常见软件需求规格说明文档编写问题

 

   作业说明:项目定型,选择和裁剪软件需求规格说明文档模板,并完成软件需求规格说明文档。按照评审规格和方法,评审所有结果文档,评审所有度量结果,记录考核结果。

重点: 软件需求规格说明文档的编写。

难点:软件需求规格说明文档的编写。

考核方式:(1)单元测验。15道选择题,考核学生基本知识点的掌握情况。(共15分,1题。1分)

             2)作业:完成软件需求规格说明文档。(共25分)

--5 需求验证1H)

  -5.1 需求验证及过程

   介绍什么是需求验证,什么是系统验证,什么是需求确认,什么是系统确认,并注意区分。

   -5.2 需求验证方法及特点

   介绍通过需求评审,原型法,测试用例开发, 编制用户手册,需求跟踪,自动化分析,以及其他方法等需求验证的方法来进行需求验证。并介绍需求验证的反复、迭代的特点。

重点: 需求验证的过程和方法。

难点:需求验证的过程和方法。

考核方式:(1)单元测验。10道选择题,考核学生基本知识点的掌握情况。(共10分,1题。1分)

          

--6 软件需求管理(1H)

介绍软件需求管理概念,需求基线,需求跟踪,需求变更及控制 三个方面介绍需求管理。案例示范需求管理过程。(注:真实的案例分析。)

重点:  需求管理的过程。

难点: 需求管理的过程。

考核方式:单元测验。10道选择题,考核学生基本知识点的掌握情况。(共10分,1题1分。)


最终成绩:单元测验:作业:期末考试:课程讨论=2:3:4:1。满分100分。60分至89分合格。90至100分优秀。

预备知识

预先掌握面向对象编程的思想对本课程的学习帮助会比较大。

如果有项目开发经验也有助于本课程的学习。

证书要求

成绩60分至89分为合格。

成绩90分及以上优秀。

参考资料

[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)