《软件开发过程》教学大纲_第1页
《软件开发过程》教学大纲_第2页
《软件开发过程》教学大纲_第3页
《软件开发过程》教学大纲_第4页
《软件开发过程》教学大纲_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发过程PAGE1《软件开发过程》教学大纲目录5755一、教学目的和要求 111445二、教学中应注意的问题 123242三、教学课时分配 224367四、学时分配表 1417215五、参考书目 15课程名称:软件开发过程学时:64学时课程类型:必修课程性质:服务外包方向的核心课程开课学期:第2学期先修课程:软件工程计算基础适用专业:计算机科学与技术专业服务外包方向一、教学目的和要求1、教学目的软件工程将系统化、规范化、可定量的方法应用于软件的开发、运行和维护中,是软件开发的工程方法学。软件工程涉及技术、方法和管理等诸多方面,已经成为计算机领域的一个重要方向。软件工程包括两个大的相互交织的过程:软件开发过程和项目管理过程。软件开发过程课程是软件工程课程群的先导课程,通过介绍软件开发过程的各个阶段和各种不同过程模型的演化,使学生对软件开发过程的框架及作用、各个开发阶段所需的知识和能力有一个总体的了解,有助于学生在后续课程中明确学习目标,从而激发学生的学习积极性。此外,软件开发过程课程也是学习后续软件工程专业课程的必要条件。课程讲授基本要求本课程的重点:系统分析、系统设计、系统实现、系统维护。难点包括:需求分析、软件测试。课程的教学提示在每一章教学内容之后给出,大体上分为:四个层次:初步了解、了解、掌握、熟练掌握。教学中应注意的问题教学方法:以多媒体幻灯片形式进行讲授。为加强和落实动手能力的培养,课后应安排作业。对课程中关键性概念、设计思想方面的问题辅以课堂讨论的形式。考核方法:由于本课程以理论学习为主,因此该课程学习成绩的评定需要建立起多元化考核评价体系。采用平时作业、课堂讨论、测验成绩和项目答辩相结合的评价方式,防止出现死记硬背式的学习。平时成绩:10%;测验成绩:50%项目答辩:40%。教学课时分配(1)软件与软件工程基本学时:6学时教学内容●软件:定义、作用、特点;学习目标:1.正确理解软件的定义,文档是软件的组成部分,写文档是软件工程师的工作之一;2.理解软件的特点,抽象及建模是软件工程师必备的能力;3.理解软件的重要性,软件质量是软件工程的生命。●软件危机与软件工程;学习目标:1.了解软件工程出现的原因;2.理解软件工程的定义;3.理解“软件质量取决于软件过程质量”的含义。●软件工程与传统工程的共性与区别;学习目标:1.理解工程学科的共性;2.理解软件工程的特殊性;3.理解测量和度量是软件项目管理的需要,也是软件工程师必备的能力;4.理解软件质量对软件复用以及软件维护的影响。重点理解软件工程的定义和软件工程与传统工程的共性与区别。难点理解理解“软件质量取决于软件过程质量”的含义。讲授提示由于学生没有接触过软件工程的概念,经常把编程序看作是软件开发的全过程,这一误解会影响学生的整个学习过程,甚至会影响其未来的工作。所以,必须强调编程只是整个软件开发过程中的一个步骤,从一开始就使学生对软件工程有清晰地理解。此外,要强调软件不仅仅指代码,还包括相关文档,编写符合工程规范的文档时软件工程应当具备的能力,这一点往往被忽略,计算机专业的毕业生一般不会写文档、不愿意写、也不知为什么写,这也是软件企业认为毕业生工程能力差的原因之一。所以,从一开始就要强调文档的重要性。另一个需要强调的是软件质量与软件过程的关系。一般认为,软件质量是靠最后阶段的测试来保证的,而实际上软件质量取决于软件过程中的各个阶段,无论处在软件工程的哪一个阶段,都要保证开发结果(中间在制品)的质量,软件工程师要保证每一个工作产品的质量。在讲授本单元内容时,可通过实际案例说明软件质量的重要意义。习题要求无。(2)软件工程师的知识与能力基本学时:4学时教学内容●软件工程师应该具备相应的工程知识、技能和职业素养;学习目标:1.理解软件工程师不仅要精通编程,还要掌握丰富的工程知识、技能,并具有良好的职业素养;2.理解学习大量软件工程课程的必要性;3.理解软件工程需要多种技能,需要进行大量的训练;4.理解除了知识学习外,还要进行职业素养训练的必要性。●独立完成工程任务的能力;学习目标:1.理解独立完成工程任务需要具备综合利用多种知识和技能的能力;2.理解个人工程能力训练的重要性;3.理解训练是将知识转化为能力的重要手段。●协作完成任务的能力;学习目标:1.理解软件工程需要多人协作;2.理解协作能力需要训练;3.理解协作能力是一种综合能力,需要多方面的知识与技能,如心理学、组织行为学知识、沟通和相应工具的应用能力。●在限定时间、成本、资源的情况下制定可行方案的能力;学习目标:1.理解作为软件工程师要具备计划制定能力(进度计划、成本计划、质量计划等);2.理解作为软件工程师要具备方案评价、选择能力。●综合利用所学知识和技能进行分析、设计、实施、验证和编写文档的能力;学习目标:1.理解软件工程师要具备问题的抽象建模和分析能力;2.理解软件工程师要具备软件设计能力,包括设计数据结构和算法;3.理解软件工程师要具备熟练运用编程工具编写代码的能力;4.理解软件工程师要具备按照工程化规范编写文档的能力;5.理解软件工程师要具备测试、验证和文档评审能力。●沟通、协商、组织、领导和自我管理能力;学习目标:1.理解沟通、协商、组织、领导和自我管理能力在软件工程中的重要作用;2.理解软件工程师要具备自我管理能力,包括:时间管理(即按照任务要求制定工作计划、认真记录任务的实际完成情况等),质量管理(质量计划、工作产品的质量情况等),以及任务的事后分析等等。3.理解上述能力需要大量的训练。●跟踪新技术、新方法的能力学习目标:理解软件技术发展的特点以及跟踪新技术、新方法的必要性;了解跟踪新技术、新方法的常用方法。重点理解知识学习与能力训练的重要性。难点理解知识学习与能力训练之间的关系。讲授提示软件工程师要求有很强的工程能力,需要经过大量的训练才能将知识转化为解决实际问题的能力。这就要求学生不仅要重视传统意义上的知识学习,还要重视能力训练,包括:课堂上的上机练习、课下上机作业、综合类实训等等。本单元的讲授要强调能力训练的重要性,让学生从一开始就做好充分的思想准备,避免沿用应试教育的学习方法。本单元比较抽象,应借助案例说明软件工程开发过程中涉及的角色(如开发工程师、测试工程师、软件架构师、项目经理等等)以及他们的责任和应具备的基本知识和能力。习题要求可布置适量思考题,让学生加深对软件工程师职责和能力需求的理解以及应该采取的学习方法。(3)软件过程框架基本学时:12学时教学内容●公共过程框架(commonprocessframework):开发活动、保障活动(Umbrellaactivities)、开发活动和保障活动的关系;学习目标:1.理解开发活动和保障活动的内容;2.理解开发活动中测量和度量的重要性;3.理解公共过程框架与软件过程模型的关系。●用户需求定义:用户、业务建模、问题定义、用户需求文档、用户需求质量的测量与度量;学习目标:1.理解业务建模的意义;2.理解用户需求的易变性;3.理解用户需求文档的必要性;4.理解准确获取用户需求的困难性。●软件需求分析:软件需求、需求模型、功能需求、非功能需求、原型验证、需求可跟踪性、需求确认、软件需求文档、软件需求质量的测量与度量;学习目标:1.理解软件需求与用户需求的关系与区别;2.理解需求建模的意义;3.理解功能需求与非功能需求的定义;4.理解需求质量对整个开发过程的影响;5.理解需求确认的意义;6.理解软件需求文档的必要性;7.理解需求可跟踪性的作用;8.理解软件需求文档与用户需求文档的关系。●体系结构设计:体系结构定义、设计模型、设计原则、体系结构验证、体系结构设计文档、体系结构设计质量的测量与度量;学习目标:1.理解体系结构的定义;2.理解体系结构设计的意义;3.了解设计原则;4.理解体系结构验证的必要性;5.理解体系结构设计设计文档与软件需求文档的关系。6.理解体系结构设计设计文档的必要性。●详细设计与软件构建:数据结构与算法设计、详细设计原则、设计评审、编程、代码评审、测试(单元测试、集成测试、功能测试、非功能测试)、测试设计、详细设计文档、代码文档、测试设计文档、用户手册、详细设计质量的测量与度量、代码质量的测量与度量、测试设计质量的测量与度量;学习目标:1.理解详细设计的定义;2.了解详细设计原则;3.理解软件构建的定义;4.理解详细设计与软件构建的关系;5.理解设计评审的必要性;6.理解测试的分类及目标;7.理解代码评审与代码测试的关系;8.理解详细设计文档与代码文档的关系;9.理解详细设计文档与体系结构设计设计文档的关系。●软件测试:系统测试、接受测试、可靠性测试、回归测试;学习目标:1.理解系统测试的目标;2.理解接受测试的目标;3.理解可靠性测试的目标;4.理解回归测试的意义;5.理解上述各种测试之间的关系;6.理解测试与文档评审之间的关系。●软件维护:软件维护的定义、改错、增加功能、提高性能、移植、文档对软件维护的影响、软件逆向工程、软件再工程、软件维护文档。学习目标:理解软件维护的定义;理解文档对软件维护的影响;理解软件维护在整个软件工程中的作用;理解软件质量对维护成本的影响;理解软件设计质量对软件复用的影响;理解软件维护文档的必要性。重点公共过程框架、各个开发活动。难点理解各个开发活动之间的关系以及测试与其它质量保证活动之间的关系。讲授提示本单元是该课程的重要内容,是后续单元的基础,需要讲清各个开发过程的目标以及各个开发过程之间的关系。在讲授过程中要强调质量控制的意义,使学生理解软件质量不是仅仅靠软件测试实现的,而是要贯穿于开发的全过程,文档评审、验证、确认等都是重要的质量保证手段,作为软件工程师不仅要保证代码质量,也要保证各种文档的质量。由于软件可跟踪性在软件维护和软件复用中的重要作用,在讲授过程中可利用文档规范中的跟踪矩阵说明从代码到用户需求之间的可跟踪性。习题要求可布置适量思考题,让学生加深对软件开发过程框架的理解以及对软件质量保证方法的理解。(4)软件过程模型基本学时:32学时教学内容●软件过程模型:软件过程定义、软件过程模型的作用、软件过程模型与公共软件过程框架的关系(4学时)。学习目标:1.理解软件过程和软件活动的关系;2.理解软件过程模型的作用;3.理解“过程质量决定产品质量”的含义。●瀑布模型:瀑布模型的定义、模型的特点、模型的应用条件、模型的优点及限制(3学时)。学习目标:1.理解瀑布模型的过程顺序;2.理解瀑布模型的应用条件;3.理解瀑布模型的特点;4.理解瀑布模型的限制。●原型化模型:模型的定义、模型的特点、模型的应用、模型的限制(3学时)。学习目标:1.理解原型化模型的过程顺序;2.理解原型化模型的特点;3.理解原型化模型的应用方法;4.理解原型化模型与瀑布模型的区别;5.理解原型化模型的限制。●快速应用开发模型(RAD):模型的定义、模型的特点、模型的应用、模型的限制(1学时)。学习目标:1.理解增量式开发的意义;2.理解RAD的特点;3.理解RAD的应用条件;4.理解RAD与上述模型的区别;5.理解RAD的限制。●螺旋开发模型:模型定义、风险分析、用户评价、模型特点、模型的应用、模型的限制(1学时)。学习目标:1.理解螺旋式开发模型的过程顺序;2.理解风险分析在整个开发过程中的作用;3.理解用户评价在螺旋式开发过程中的作用;4.理解螺旋式开发模型与上述模型的关系与区别;5.理解螺旋式开发模型的特点;6.理解螺旋式开发模型的应用条件;7.理解螺旋式开发模型的限制。●灵巧开发方法(ASD-AgileSoftwareDevelopment):产生的背景、XP(eXtremeProgramming)开发过程、XP的特点、测试驱动的开发、结对编程(PairProgramming)、XP的应用条件、XP的限制(8学时)。学习目标:1.理解增量式开发及循环式(IID-IncrementalandIterativeDevelopment)开发的意义;2.理解ASD产生的背景;3.理解ASD的思想基础;4.理解XP(eXtremeProgramming)的开发过程;5.理解XP的特点;6.理解XP的应用条件;7.理解XP的限制。●面向构件的开发方法:构件的定义、构件复用、方法提出的背景、开发过程、构件集成的标准(CORBA、DCOM等)、开发过程的特点、开发方法的限制(2学时)。学习目标:1.理解构件复用的意义;2.理解构件的定义;3.了解构件集成的标准;4.理解面向构件开发方法的特点;5.理解面向构件开发方法的限制;6.理解构件复用与代码复用的区别。●形式化开发方法:形式化方法的定义、形式化开发过程、形式化开发的特点、形式化开发的限制、形式化开发方法的应用、形式化方法对软件质量的影响(1学时)。学习目标:1.理解形式化方法的特点;2.理解形式化方法对软件质量的影响;3.理解形式化方法的限制;4.理解形式化方法的应用方法。●软件产品线方法:软件复用、领域工程、产品工程、软件产品线方法的特点、共性建模、可变性建模、软件产品线方法的应用条件(1学时)。学习目标:1.理解软件复用的意义;2.理解代码和构件复用的局限性及其原因;3.理解基于需求的软件复用;4.理解软件产品线方法的特点;5.理解软件产品线方法的应用条件;6.理解共性建模和可变性建模的作用;7.理解软件产品线方法的局限性。●面向对象的开发方法:对象、类、信息隐藏与封装、继承、多态性、OOA、OOD、OOP、类的测试、UML、对象模型、对象模型的度量、面向对象开发方法的特点、面向对象开发方法的限制(6学时)。学习目标:1.理解面向对象的相关概念;2.理解面向对象开发方法的开发过程;3.理解面向对象开发方法的特点;4.理解对象模型的意义;5.理解面向对象抽象对测试的影响;6.理解面向对象开发方法对软件复用的影响;7.理解面向对象的开发方法的局限性。●面向服务的开发方法:Web服务、相关标准(WSDL、SOAP、UDDI、OWL等)、SOA、服务发现与组合、SOSE、面向服务开发方法的特点、面向服务开发方法的应用条件、面向服务开发方法的限制(2学时)。学习目标:理解Web服务的定义;理解面向服务的复用;理解SOA结构;理解服务发现与语义Web;理解面向服务开发方法的特点;理解标准的重要性;理解SOA对应用集成的影响。重点软件过程模型的作用、瀑布模型,ASD,面向对象的开发方法。难点理解各种过程模型的特点、局限性及应用条件。讲授提示本单元的内容比较抽象,其目标是使学生了解软件开发的不同方法,为后续的课程提供基础。在讲授过程中要强调本课程的内容与后续课程之间的关系,如UML与面向对象的软件工程、软件测量与度量、个人软件能力实训等等。本单元的讲授注重说明各种模型的特点及应用条件,各种模型没有好坏之分,都有其应用的范围,需要根据实际情况确定合适的模型。此外还要说明过程模型的选择是软件工程过程的一个重要步骤。为了便于理解,可通过一个开发案例说明各个开发过程并进行比较。习题要求可布置适量思考题,让学生加深对各种软件过程模型及其应用方法的理解。(5)过程技术基本学时:2学时教学内容●软件过程建模:软件过程模型、软件过程工程、软件过程建模的作用、软件过程描述语言;学习目标:1.理解软件过程建模的作用;2.了解软件过程描述语言;3.理解软件过程工程的步骤。●以过程为中心的软件工程环境:应用背景、CASE工具、面临的问题、发展前景;学习目标:1.理解软件工程环境的作用;2.了解目前软件工程环境的面临的问题。●软件过程复用:过程复用的定义、过程复用的意义、过程复用与软件复用;学习目标:1.理解过程复用的意义;2.理解过程复用的方法;3.理解“软件过程也是软件”的含义。●软件过程改进:过程测量与度量、过程改进的意义、过程改进的方法(如GQM)、过程改进的目标。学习目标:理解过程改进的意义;了解过程改进的方法;理解过程测量与度量的作用。重点软件过程建模,软件过程复用,软件过程改进。难点软件过程建模,软件过程复用。讲授提示本单元的内容比较抽象,要重点说明过程复用的重要作用,并说明过程复用的应用条件,过程复用实际上是开发经验的复用,它发生在每一个人、每一个组织身上。宜采用例子进行说明。过程改进是每一个软件开发组织必须进行的工作,其目的是为了提高开发质量和开发效率,过程测量与度量是进行过程改进的前提。作为软件工程师要具备过程测量与度量的知识和能力,并掌握相应的方法和工具。在本单元的讲授中要强调过程测量与度量的必要性,使学生理解过程测量与产品测量具有同等重要性,特别是对于未来职业的发展(如项目经理)具有十分重要的作用。习题要求可布置适量思考题,让学生加深对软件过程建模和软件过程复用的理解。(6)软件过程成熟度模型基本学时:6学时教学内容●CMM的背景:背景、模型框架、CMM与PSP、CMM与TSP;学习目标:1.了解CMM的作用;2.了解CMM模型框架;3.理解CMM的基础是软件工程师的个人能力。●可重复级(Repeatable);学习目标:1.了解可重复级的关键过程域;2.了解可重复级的目标。●定义级(Defined);学习目标:1.了解定义级的关键过程域;2.了解定义级的目标;3.理解过程建模的作用。●管理级(Managed)学习目标:1.了解管理级的关键过程域;2.了解管理级的目标;3.理解过程测量与度量的作用。●优化级(Optimizing)学习目标:了解优化级的关键过程域;了解优化级的目标。重点理解各个级别之间的关系,过程建模的作用,过程测量与度量的作用。难点理解各个级别之间的关系。讲授提示本单元属于了解性内容,讲授时要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论