1、1修订说明:1本修订版完成与 2007 年 3 月 5 日。2与原版相比较,修订部分采用加粗的方正舒体(5 号字)软件需求分析教学大纲(供软件工程本科专业使用)版本:V1.0课程编号:11100700课程名称:软件需求分析课程类型:专业限选课 总 学 时:64 讲课学时:54 实验学时:10学 分:3先修课程:软件工程概论,程序设计语言类课程1 课程的目的与任务本课程是软件工程专业的专业限选课程。软件需求作为软件工程的一个阶段,在软件项目开发中起着至关重要的作用。软件项目要取得成功,最重要的莫过于了解所要开发的软件需要解决哪些问题,这就是软件需求所要解决的问题,因此,软件需求为软件项目的成功奠
2、定了基础。因此,本课程是提升软件工程专业毕业生能力和水平的重要教学内容。通过本课程的教学使学生知道、了解和理解软件需求工程的各个阶段(需求获取阶段、需求分析阶段、编写需求规格说明阶段、需求确认阶段和需求管理阶段) ,有效的需求获取技术等,培养学生的专业意识,建立专业知识体系,为后续的毕业设计工作打下良好的基础。2 课程有关说明软件工程师所需解决的问题往往十分复杂。了解问题的性质可能是非常困难的,尤其当系统是全新的时候。因此,搞清系统应该做什么也是困难的。对系统应提供的服务和所受到的约束的描述就是系统需求关心的内容,对服务和约束的发现、分析、建立文档、检验的过程叫做需求工程。本课程全面而深入地介
3、绍软件开发中一个至关重要的问题-软件需求问题。软件开发人员及用户往往容易忽略沟通的重要性,导致软件开发出来后,不能很好地满足用户的需要。返工不仅在技术上给开发人员带来巨大的麻烦,并且会造成人力、物力和资源的浪费,还使软件性能深受影响,所以在开发早期提高项目需求分析的质量,减少重复劳动,通过控制项目范围的扩大及需求变更来达到按计划完成预定目标,是当前软件业急需解决的问题,也是本课程讨论的主要内容。22.1 教学指导思想在教学指导思想上,突出以下原则:1.实践原则。学生只有参与一个实际的软件需求开发活动,才能理解软件需求的重要性,掌握需求分析和需求描述的技法。2.工程原则。软件工程项目质量直接与需
4、要分析和需求描述有关,最终交付的系统必须符合用户的具体需求,因此要在建立起基于工程质量的需求分析的理念和方法。3.业务原则。软件工程是为其他领域或其他工程解决软件工具问题的学科,学生必须学会学习其他学科的业务知识,教师必须深入理解和应用各领域知识,从多个角度帮助学生进入软件需求的业务领域。2.2 教学方法本课程采用两种教学方法:(1)提示型教学方法。提示型教学方法是教师在课堂上通过各种提示活动(如讲解、示范等)来教授课程内容,学生接受并内化这些内容的方式。提示型教学方法主要包括四种形式:“示范” , “呈示”、 “展示” 、 “口述” 。(2)共同解决问题型教学方法。共同解决问题型教学方法是通
5、过师生的民主对话与讨论来共同思考、探究和解决问题,由此获得知识技能、发展能力和人格的教学方法。这种教学方法的基本特点是教师和学生民主参与教学过程,教学过程能够发挥教师和学生这两类主体的积极性。共同解决问题型教学方法包括“教学对话”和“课堂讨论”两种基本形态。2.3 考核方式根据上述教学原则,本课程的考核重点:1. 基本认识:在软件开发中,需求获取常常是最困难、最关键、最容易出错和最需要沟通的一个环节。要求学生应通过实践认知和理论学习,对上述结论有切实的认识,并在基本概念与术语方面有所理解。2. 信息获取:获取需求,即获取关于需求的有用信息,并使之结构化。信息的传统来源是与潜在用户(个人或小组)
6、进行面谈。用户参与需求获取过程是获得用户支持及购买合同的一种方法。要求学生应通过需求获取试验活动,提高沟通能力,总结出需求内容,以商业原则评判自己的需求获取劳动。3. 工作方法:理解用户提出需求的思维过程,理顺用户对他们的工作做出决策所遵循的流程,并从中提炼出基本逻辑。流程图和判定树是描绘这些逻辑判定路径的两种行之有效的方法。要求学生通过自己的需求实验和需求报告,展示自己的理解,描述自己的分析和判断。4. 劳动态度:学生的学习成绩,在很大程度上取决自身的脑力、体力以及相应的劳动时间投入,这样的劳动态度必然反映在实验报告的文字和陈述质量上。要求学生必须坚持不懈,勤勉努力,以较好的劳动态度完成学习
7、任务。考核方式确定为需求分析实验考核与需求文档写作考核相结合的方式:(1) 需求分析实验考核:即平时成绩。要求学生按照实验教学大纲要求,在撰写实验报告的基础上,陈述自己的需求分析实践活动内容,考察学生的学习态度、问题思考和实践过程。要求学生在撰写的实验报告基础上进行口头陈述,每人 10 分钟,占总成绩的 50%。学生的陈述由教师当场打分,并采用规定格式记录陈述过程。实验报告及实验记录格式参见实验教学大纲。实验考核评分表见表 2-1。3表 2-1 需求分析实验考核评分表学生姓名 实验编号 基本认知(30 分) 实验报告(30 分) 实验方法(20 分) 劳动态度(20 分) 小计123注:学生在
8、实施实验活动时,可每 2 人组成一个小组。在考核时,每个小组成员都要陈述自己的实践工作;实践总结报告中要明确标示出每个人从事的工作内容及其成果与收获。(2) 需求文档写作考核:要求学生在所有实验完成后对实验工作进行总结,撰写XXX 软件需求文档(Word 文件形式),在规定的时间内提交。成绩占 50%。评分表格见表 2-2。表 2-2 需求文档撰写评分表学生姓名 知识整理(20 分) 需求分析过程 ( 20 分) 需求分析模型 ( 20 分) 需求文档描述 ( 40 分) 总分注:需求分析文档的撰写,要求每个学生必写。同组的学生应注明自己的实验内容,并努力总结出自己的收获,提出自己的思考。3
9、教学内容3.1 课程内容概述工科专业基础课和专业课具有同样的特点,即课程知识内容可分为两类:第一类为“概念原理的知识” ,即一门学科经由探究过程而获致的基本结论概念原理的体系;第二类为“过程方法的知识” ,即关于一门学科的探究过程与探究方法的知识。同时,概念原理的知识和过程方法的知识具有内在的统一性,课程选择就不能把二者人为地割裂开来。为此,本课程内容共分 4 个部分,前两个部分为“概念原理的知识” ,后两部分为“过程方法的知识” ,每个部分都具有明确的目的。第一部分 软件需求初步知识和体验第二部分 软件需求理论知识与方法第三部分 软件需求分析实践与文档写作第四部分 软件需求管理初步3.2 教
10、学路线按照教学内容的划分,本教学大纲设计了教学路线如图 3-1 所示。 (此图已变更)4实 验 教 学 大 纲第 0 部 分第 1 部 分第 4 部 分软件需求分析实践与文档写作软 件 需 求 理 论 知 识 与 方 法考 核 方 式 :( 1 ) 需求分析实验考核 : 6 0 %( 2 ) 需求文档写作 : 4 0 %软 件 需 求 初 步 知 识 和 体 验实 践 实 施 教 学 内 容软 件 功 能 描 述 与 确 认实 验 1( 2 学 时 )软 件 需 求 分 析 , 分 三 个 层 次 : 业 务 需 求 , 用 户 需 求 , 功 能 需 求实 验 4( 2 学 时 )实 验 5
11、( 2 学 时 )汇 总 实 验 报 告 ,提 交 需 求 分 析 文 档第 1 章 软 件 需 求 基 础 知 识第 2 章 客 户 眼 中 的 需 求第 3 章 需 求 工 程 的 推 荐 方 法第 4 章 需 求 分 析 员第 5 章 确 定 产 品 前 景 与 项 目 范 围第 6 章 获 取 客 户 的 需 求第 7 章 聆 听 客 户 的 需 求第 8 章 理 解 用 户 需 求第 9 章 遵 守 规 则第 2 部 分实 验 3( 2 学 时 )第 3 部 分第 1 0 章 编 写 需 求 文 档第 1 1 章 一 图 胜 千 言第 1 2 章 软 件 质 量 属 性第 1 3 章
12、 通 过 制 作 原 型 减 少 项 目 风 险第 1 4 章 设 定 需 求 优 先 级软 件 需 求 管 理 初 步第 1 5 章 需 求 确 认第 1 6 章 需 求 开 发 面 临 的 特 殊 难 题第 1 7 章 超 越 需 求 开 发第 1 8 章 需 求 管 理 的 原 则 和 实 践第 1 9 章 变 更 管 理第 2 0 章 需 求 链 中 的 联 系 链第 2 1 章 需 求 管 理 工 具教学切入点教 学 大 纲附 录 D : 需 求 文 档 范 例自 助 食 堂 订 餐 系 统实 验 2( 2 学 时 )图 3-1 软件需求分析教学路线图3.2.1 第 1 部分:软件需
13、求初步知识和体验(8 学时)目的:通过课堂理论教学,课下关于常用软件的体验和理解,使学生建立软件需求的初步知识。教材内容 教学内容案例介绍:自助食堂订餐系统第 1 章 软件需求基础知识第 2 章 客户眼中的需求第 3 章 需求工程的推荐方法第 4 章 需求分析员教学重点:什么是软件需求?为什么要实现软件需求?哪些人应参与软件需求?需求分析员的责任如何?基础知识(第 1 章,第 2 章)软件需求的定义软件需求的开发与管理软件需求问题与软件返工优质需求过程与优秀需求工程方法(第 3 章,第 4 章)需求获取的方法如何分析需求如何说明需求了解需求的开发过程教学难点:软件需求的定义,软件需求问题实验-
14、1:软件功能描述与确认。要求学生结合常用软件,如文字处理软件(Word)等的使用、分析,认知、描述和讲解什么是用户需求、功能需求。作业-1:知识整理(第 1 部分:软件需求初步知识和体验) ,编写实验报告。53.2.2 第 2 部分:软件需求理论知识与方法(12 学时)目的:通过课堂及实验教学,课下的阅读和理解,使学生建立关于软件需求的基础理论与实践知识,了解软件需求基本方法。教材内容 教学内容第 5 章 确定产品前景与项目范围第 6 章 获取客户的需求第 7 章 聆听客户的需求第 8 章 理解用户需求第 9 章 遵守规则第 10 章 编写需求文档案例介绍:自助食堂订餐系统国内软件公司的需求分
15、析文档介绍教学重点:如何开发软件需求?重点内容为第 7 章,第 8 章,第 9 章基础知识(第 5 章,第 6 章,第 7 章)业务需求与软件产品的前景软件需求关联图需求来自何方用户分析听取客户的需求如何归类用户的意见需求获取中的注意事项工程方法(第 8 章,第 9 章,第 10 章)用例法事件-响应表业务规则及其描述业务规则与软件需求如何编写需求文档数据字典教学难点:软件需求关联图,用例法,事件-响应表实验-2:从程序设计看软件功能需求。要求学生结合已有的 C 语言程序设计等知识,对程序设计描述进行分析,提炼出软件功能需求和非功能需求,并以比较规范的语言进行描述。作业-2:知识整理,编写实验
16、报告。3.2.3 第 3 部分:软件需求分析实践与文档写作(20 学时)目的:通过课堂及实验教学,课下的实践与应用,使学生初步掌握软件需求文档的写作方法,重点掌握业务需求和用户需求的编写方法。教材内容 教学内容第 11 章 一图胜千言第 12 章 软件质量属性第 13 章 通过制作原型减少项目风险第 14 章 设定需求优先级案例介绍:自助食堂订餐系统教学重点:如何描述需求描述重点内容为第 11 章,第 12 章基础知识需求建模(第 11 章)从客户需求到分析模型数据流图实体关系图状态转换图对话图类图工程方法软件质量属性(第 12 章,第 13 章,第 14 章)6教材内容 教学内容质量属性性能
17、需求非功能需求原型方法需求的优先级教学难点:数据流图、实体关系图、状态转换图、质量属性、性能需求实验-3:软件需求分析(业务需求) 。要求学生结合课堂教学,针对小型软件(网站)设计开展业务需求分析实验,在模拟性工程实践中,理解需求获取阶段、需求分析阶段的需求工程基础理论与实践方法。作业-3:知识整理,编写实验报告。3.2.4 第 4 部分:软件需求管理初步(14 学时)目的:本部分为提高部分,通过课堂教学和课下阅读,使学生对软件工程中的需求管理具有初步的了解。教材内容 教学内容第 15 章 需求确认第 16 章 需求开发面临的特殊难题第 17 章 超越需求开发第 18 章 需求管理的原则和实践
18、第 19 章 变更管理第 20 章 需求链中的联系链第 21 章 需求管理工具第 22 章 改进需求过程第 23 章 软件需求与风险管理案例介绍:自助食堂订餐系统教学重点:为什么要管理需求?如何管理需求?重点内容为第 15 章,第 16 章,第 18 章基础知识需求开发中的特殊难题(第 16 章,第 17 章)软件维护需求软件包解决方案中的需求分析外包项目的需求分析突发型软件项目需求从需求到项目规划从需求到设计和编码从需求到测试工程方法需求管理的原则和实践(第 18 章,第 19 章)需求基线的概念需求管理概念与方法需求跟踪概念与方法需求变更管理需求链中的联系链改进需求过程(第 22 章)需求
19、与项目过程的联系软件过程改进的基本原则需求过程的改进路线软件需求与风险管理(第 23 章)软件风险管理的基本原理与需求相关的风险教学难点:软件维护需求、软件包解决方案中的需求分析、7教材内容 教学内容需求变更管理、软件过程改进的基本原则实验-4:软件需求分析(用户需求) 。要求学生结合课堂教学,针对小型软件(网站)设计开展用户需求分析实验,在模拟性工程实践中,理解需求获取阶段、需求分析阶段的需求工程基础理论与实践方法。作业-3:知识整理,编写实验报告。实验-5:软件需求分析(功能需求) 。要求学生针对小型软件(网站)设计开展软件功能需求分析实验,在模拟性工程实践中,理解需求获取阶段、需求分析阶
20、段的需求工程基础理论与实践方法。作业-5:知识整理,编写实验报告。最终作业(期末考核依据):要求学生队实验报告 3,4,5 进行汇总、整理、加工,形成 软件需求分析文档 。要求学生结合本部分的课堂教学,继续完善第三部分的作业和实验。3.3 教学内容与学时分配教学内容与学时分配如表 3-1 所示,实验内容见实验教学大纲。表 3-1 教学内容与学时分配表阶段划分 内容 讲授学时 实验学时 学时小计案例介绍:自助食堂订餐系统 1第 1 章 软件需求基础知识实验 1 介绍 2第 2 章 客户眼中的需求 2第 3 章 需求工程的推荐方法 2第 4 章 需求分析员 1第 1 部分:软件需求初步知识和体验实
21、验 1:软件功能描述与确认 28第 5 章 确定产品前景与项目范围实验 2 介绍 2第 6 章 获取客户的需求案例介绍:自助食堂订餐系统 2第 7 章 聆听客户的需求 2第 8 章 理解用户需求 2第 9 章 遵守规则 2第 10 章 编写需求文档 2第 2 部分:软件需求理论知识与方法实验 2:从程序设计看软件功能需求 212第 11 章 一图胜千言实验 3 介绍 4第 12 章 软件质量属性案例介绍:自助食堂订餐系统 4第 3 部分:软件需求分析实践与文档写作第 13 章 通过制作原型减少项目风险 4208阶段划分 内容 讲授学时 实验学时 学时小计第 14 章 设定需求优先级 2教材附录
22、介绍附录 D:需求文档范例讲解 4国内外软件公司的需求分析文档介绍 2实验 3:软件需求分析(业务需求) 2实验 4:软件需求分析(用户需求) 2第 15 章 需求确认实验 4,实验 5 介绍案例介绍:自助食堂订餐系统4第 16 章 需求开发面临的特殊难题 2第 17 章 超越需求开发 2第 18 章 需求管理的原则和实践 1第 19 章 变更管理 1第 20 章 需求链中的联系链 1第 21 章 需求管理工具 1第 22 章 改进需求过程 1第 23 章 软件需求与风险管理 114第 4 部分:软件需求管理初步实验 5:软件需求分析(功能需求) 2学时小计 54 10 544 实践教学要求(
23、1) 充分利用前导课程教学成果,如 C 语言编程的经验,从软件功能的描述入手,引入需求分析的目的,意义;(2) 教师应准备若干来自工程实践的技术文档,让学生学习、模仿软件工程文档的格式和用语,练习写作,再布置作业,通过课外阅读和写作练习,逐步建立需求工程的思想意识;(3) 注重作业和练习,强化建模训练,为此必须要求学生学会使用 Visio 建模工具,实验室设备必须安装该软件。(4) 多讲解业务知识,多讲解学生身边的或经历过的业务知识。(5) 多媒体教学加黑板教学,现场画图讲解。为保证实践教学的效果,结合教学内容安排好实践活动内容,要求学生投入必要的课外学时,教师应及时给出指导性意见。为训练学生
24、的团队意识和协作精神,建议二、三名学生组成一个实验小组开展课程实验。具体要求见本课程实验教学大纲。5 建议使用教材及参考书目本课程目前选用教材:(美)Karl E.Wiegers, 软件需求(第 2 版) ,清华大学出版社,2004-11-1(Software Requirements,Second Edition) , 【译者】 刘伟琴 刘洪涛 参考教材:英Ian Sommerville 著,程成等译, 软件工程 6th Edition ,机械工业出版社,中信出版社2003 年 1 月9(美)Roger S.Pressman, 软件工程实践者的研究方法(原书第 5 版) ,机械工业出版社,2
25、002年 9 月B.Bruegge 和 A.H.Doutoit, 面向对象软件工程-使用 UML、模式与 Java(第 2 版) ,清华大学出版社出版,:2006-09教学参考资料:(参见:张华, 课程与教学论 ,上海教育出版社 2002 年 6 月)6 其他说明本课程需要与教师与学生之间有良好的互动,为此,只能小班(30 人左右)上课。本课程教学方法必须灵活,适应学生的理解与接受程度,需要以实践为动力推进教学。特别是:端正实践教学的态度实践不是应用,是对理论教学的方法之一。长期以来,很少见到国内作者编写的软件需求类专门教材,究其原因不难理解:软件需求知识体系完全来自软件工程实践,而国内学者、教师既缺乏实际案例,又缺乏研讨的兴趣,专门从事软件需求者很少,故本课程的教学研究和师资培养任务十分重要。课程的其他教学环节,应结合已经开设的 C/C+程序设计语言课程,理解软件需求的基本概念,掌握基本方法。制订人: 陶铮 2007 年 3 月 5 日审核人: 年 月 日批准人: 年 月 日