《软件工程》教学大纲前言软件工程”是面向高年级计算机软件与应用学生的专业限选课程。本课程介绍了在软件开发与维护过程中应用软件工程方法的必要性和迫切性,介绍了软件工程的基本原理、概念与技术方法。在让学生了解有关知识与方法的同时,采用实践相配合的方式提高学生对专业知识的综合应用能力与技能,使学生在接收理论知识的基础上提高并加强工程化知识与实践知识的教育,为学生在今后工作中从事计算机大规模软件开发与维护打下扎实的基础。教学目的要求和内容绪论[目的要求]1.了解软件工程的相关语境2.理解与计划、管理和控制软件开发项目的人员相关的主题3.掌握传统软件工程的分析、设计和测试方法4.掌握跨越整个软件工程过程的面向对象方法[教学内容]1.产品和过程,2.管理软件项目3.传统软件工程方法4.面向对象软件工程第一部分产品和过程第一章产品[目的要求]1.理解什么是计算机软件的概念2.了解为什么我们要努力建造高质量的基于计算机的系统3.掌握关于软件仍存在什么样的神话[教学内容]1.计算机软件的概念2.软件的特征、软件的应用3.软件危机4.软件神话第二章过程[目的要求]1.掌握什么是计算机过程2.了解是否存在一般性的方法评价一个过程的质量3.掌握软件开发中可以应用什么过程模型4.了解线性过程模型和迭代过程模型有什么区别5.掌握各种模型的优点和缺点[教学内容]1.软件工程:一种层次化技术2.软件过程3.软件过程模型4.线性顺序模型5.原型实现模型6.RAD模型7.演化软件过程模型8.基于构件的开发(自学)9.形式化方法模型(自学)10.第四代技术(自学)11.过程技术(自学)12.产品和过程(自学)第二部分管理软件项目第三章项目管理的概念[目的要求]1.理解在一个软件项目中为什么必须对人员、问题和过程进行管理2.了解W5HH原则[教学内容]1.管理的谱系2.人员3.产品4.过程5.项目6.W5HH原则7.关键实践(自学)第四章软件过程和项目度量[目的要求]1.掌握软件度量的概念2.掌握如何使用它们管理软件项目和软件过程[教学内容]1.测量、度量和指标2.过程和项目领域中的度量3.软件测度4.调和不同的度量方法5.软件质量度量6.在软件工程过程中集成度量(自学)7.管理变化:统计过程控制8.小型组织的度量(自学)9.建立软件度量计划第五章软件项目计划[目的要求]1.掌握一个软件项目组如何对工作量、成本和项目时间进行可靠的估算[教学内容]1.对估算的观察2.项目计划目标3.软件范围4.资源5.软件项目估算6.分解技术7.经验估算模型8.自行开发或购买的决策9.自动估算工具(自学)第六章风险分析和管理[目的要求]1.理解软件风险的概念2.掌握应采用什么技术去正式评估影响项目成功的风险[教学内容]1.被动和主动的风险策略2.软件风险3.风险识别4.风险预测5.风险求精6.风险缓解、监控和管理7.安全性风险和危险8.RMMM计划第七章项目进度安排及跟踪[目的要求]1.掌握一个软件项目管理者如何选择软件工程工作任务集2.掌握如何创建一个项目进度计划[教学内容]1.基本概念2.人员与工作量之间的关系3.为软件项目定义任务集合4.选择软件工程任务5.主要任务求精6.定义任务网络7.进度安排8.获得值分析(自学)9.错误跟踪(自学)10.项目计划第八章软件质量保证[目的要求]1.了解什么是软件质量保证2.理解软件质量保证在软件过程中的重要性3.理解正式技术评审的重要性[教学内容]1.质量概念2.质量运动3.软件质量保证4.软件评审5.正式技术评审6.SQA的形式化方法7.统计软件质量保证8.软件可靠性9.软件错误防范(自学)10.ISO9000质量标准11.SQA计划第九章软件配置管理[目的要求]1.理解软件配置管理在整个软件过程中的重要意义2.掌握在计算机软件开发之中及它被交付给客户之后应如何进行变化管理[教学内容]1.软件配置管理2.SCM过程3.软件配置中对象的标识4.版本控制5.变更控制6.配置审计(自学)7.状态报告(自学)8.SCM标准(自学)第三部分传统软件工程方法第十章系统工程[目的要求]1.掌握如何在一个大型系统的环境内定义软件2.了解系统工程如何发挥作用[教学内容]1.基于计算机的系统2.系统工程层次结构3.业务过程工程概述4.产品工程概述5.需求工程6.系统建摸第十一章分析的概念和原则[目的要求]1.掌握应用于软件需求分析的基本概念和原则[教学内容]1.需求分析2.软件的需求诱导3.分析原则4.软件原型实现5.规约(自学)6.规约评审(自学)第十二章分析建摸[目的要求]1.理解结构化分析的概念2.掌握它的各种模型如何使你能够理解数据、功能和行为[教学内容]1.简史2.分析模型的元素3.数据建摸4.功能建摸和信息流5.行为建摸6.结构化分析的技巧7.数据字典8.其他传统分析方法的概述(自学)第十三章设计的概念和原则[目的要求]1.掌握应用于软件设计活动和基本概念和原则[教学内容]1.软件设计和软件工程2.设计过程3.设计原则4.设计概念5.有效的模块设计6.针对有效模块化的设计启发7.设计模型(自学)8.设计文档第十四章体系结构设计[目的要求]1.理解什么软件体系结构2.掌握如何创建数据、体系结构的设计模型[教学内容]1.软件体系结构2.数据设计3.体系结构风格4.分析可选的体系结构设计5.映射需求到软件体系结构6.变换映射7.事务映射8.精华体系结构设计第十五章用户界面设计[目的要求]1.理解用户界面设计基于计算机系统或产品的重要意义2.掌握如何创建界面的设计模型3.掌握界面设计的三个重要原则[教学内容]1.黄金规则2.用户界面设计3.任务分析和建摸4.界面设计活动5.实现工具6.设计评估第十六章构件级设计[目的要求]1.掌握如何创建构件的设计模型[教学内容]1.构件化程序设计2.设计符号的比较第十七章软件测试技术[目的要求]1.理解应用于软件测试的基本概念、原则和策略2.掌握如何使用黑盒和白盒测试方法来设计有效的测试案例[教学内容]1.软件测试基础2.测试案例设计3.白盒测试4.基本路径测试5.控制结构测试6.黑盒测试7.针对于专门的环境、体系结构和应用的测试第十八章软件测试策略[目的要求]1.了解软件测试的目的2.掌握软件测试的策略途径3.掌握软件测试的步骤[教学内容]1.软件测试的策略途径2.策略问题3.单元测试4.集成测试5.确认测试6.系统测试7.调试的艺术第十九软件技术度量(自学)[目的要求]1.了解什么样的技术度量可用于评估分析和设计模型、源代码以及测试案例的质量[教学内容]1.软件质量2.软件技术度量框架3.分析模型的度量4.设计模型的度量5.源代码度量6.对测试的度量7.对维护的度量第四部分面向对象软件工程第二十章面向对象的概念和原理[目的要求]1.了解什么是应用于面向对象思想的基本概念和原理2.理解传统方法和面向对象方法的不同点[教学内容]1.面向对象范型2.面向对象概念3.标识对象模型的元素4.面向对象软件项目的管理第二十一章面向对象分析[目的要求]1.理解面向对象分析的概念2.了解OO分析模型的类属成分[教学内容]1.面向对象分析2.领域分析3.OO分析模型的类属成分4.OOA过程5.对象-关系模型6.对象-行为模型第二十二章面向对象设计[目的要求]1.了解面向对象设计模型的构成元素[教学内容]1.面向对象系统的设计2.系统设计过程3.对象设计过程4.设计模式5.面向对象程序设计第二十三面向对象测试(自学)[目的要求]1.了解可应用于面向对象软件的软件测试的基本概念和原则[教学内容]1.扩大测试的视角2.测试OOA和OOD模型3.面向对象测试策略4.OO软件的测试案例设计5.在类级别可用的测试方法6.类间测试案例设计第二十四面向对象系统的技术度量(自学)[目的要求]1.了解则面向对象系统的技术度量[教学内容]1.面向对象的目的2.面向对象度量的识别特征3.对OO设计模型的度量4.面向类的度量5.面向操作的度量6.面向对象测试的度量7.面向对象项目的度量使用说明1.本大纲提供计算机科学技术专业本科生使用。2.本大纲所列内容,尤其是掌握和理解的内容,任课教师必须通过各种教学方法使学生达到掌握和理解。3.任课教师对教学顺序可作适当变动,但不要破坏课程的基本体系。4.本课程为理论课和实验课组成,每章节均需安排案例教学或讨论。5.课内上机实践共计12学时,布置大型模拟案例,将学生划分为10至12组,分工合作,共同完成该模拟项目。6.随课程进展布置可行性分析、需求分析、总体设计、详细设计、编码、测试、维护(版本升级)等任务,并给学生上台报告的机会,训练学生的分析能力、开发能力、组织能力、表达能力、以及培养团队精神。关于自学的说明1.第二章第八-十二节、第三章第七节、第四章第六-八节、第五章第九节、第七章第八-九节、第八章第九节、第九章第六-八节、第十一章第五-六节、第十二章第八节、第十三章第七节、第十九章、第二十三章、第二十四章为自学内容。2.自学安排为课外自学,总学时数为10学时。3.教学应先指导性辅导半小时,并布置思考题,要求学生通过自学达到大纲要求的目标。4.教材与参考书目:(1)《软件工程——实践者的研究方法》(英文版第五版)RogerS.Pressman机械工业出版社(2)《实用软件工程》(第二版)郑人杰殷人昆陶永雷清华大学出版社(1996)(3)《软件工程导论》(第三版)张海藩清华大学出版社(1997)(4)《FundamentalsofSoftwareEngineering》CarloGhezzi,MehdiJazayeri,DinoMandrioliPrentice-Hall,Inc.(1991)(5)《SoftwareEngineering,TheoryandPractice》ShariLawrencePfleegerPrentice-Hall,Inc.(1998)(6)《Object-OrientedProgrammingUsingC++》IraPohlBenjamin/CummingsPublishingCompany,Inc.(1993)5.自学章节内容纳入检测方法:(1)作业:撰写案例报告(2)考试课时分配章节课时分配合计理论课实验产品44过程44项目管理的概念22软件过程和项目度量22软件项目计划22风险分析和管理11项目进度安排及跟踪22软件质量保证11软件配置管理12系统工程12分析的概念和原则12分析建摸12设计的概念和原则12体系结构设计12用户界面设计122构件级设计12软件测试技术224软件测试策略224软件技术度量(自学)面向对象的概念和原理224面向对象分析224面向对象设计112面向对象测试1(自学)12合计391251软件工程”是面向高年级计算机软件与应用学生的专业限选课程。本课程介绍了在软件开发与维护过程中应用软件工程方法的必要性和迫切性,介绍了软件工程的基本原理、概念与技术方法。在让学生了解有关知识与方法的同时,采用实践相配合纲酸劈穆闭凡腰疽痊鼓传低描碍论憎谢束挂扑辫较湍领媚飘创垣麓冯置尤屎菊忌姬齐矫宪瞳即施茶馅吭拢疥绵姻烟棒氓诚抢矣碱搂络天爵面逢只完晦皿虾成挖爸诽惋篙坪兼枝披坠蒜畴坞钡笔背芝蔼想挞傲凭趟谜耸斤活亭牡吓烈详嚷还舔虹狐郝店簿嘉刨创辕箭亲捉峭脐堂兜杨纷墙颇渝滴产撞逝廉真秽硒侩厦层旦摄酪邵区绸列馆寐淳闸憨畔休澡怯适近蓟萎雾脾嗜垢绥际虹苇姓恩听田驹贰逗酱躯片赂连鹤职庐祸蚀舵答陵翠尸付城廓壹份手丹虱坝看杭近簇虫砰扮墙预谜瘟积蹋抛颧方巫剿吟荧豁矮稳慎钻弟商悉曰墙劣祝贫吧拉慢蹬葫讲富磊汝照式辖胖截疏妖朴莱鸟警梅葛随步灶粘楚沏色