结果应能清楚地审查。5.6.开发小组的人员应该少而精。7.承认不断改进软件工程实践的必要性。1.3.3软件工程的基本内容从内容上划分软件工程学可分为理论、结构、方法、工具、环境、管理、规范等。1.3.4软件工程学研究的基本目标定义良好的方法学,面向计划、开发维护整个软件生存周期的方法学。确定的软件成分,记录软件生存周期每一步的软件文件资料,按步显示轨迹。可预测的结果,在生存周期中,每隔一定时间可以进行复审。软件工程学的最终目标是以较少投资获得易维护、易理解、可靠、高效率的软件产品。软件工程学是研究软件结构、软件设计与维护方法、软件工具与环境、软件工程标准与规范、软件开发技术与管理技术的相关理论。1.3.5软件工程方法学三要素1.软件工程三要素:·方法一一提供“如何做”的技术。项目计划与估算、软件系统需求分析、数据结构和系统总体结构设计、算法设计、程序编码、软件测试、软件维护·工具一一提供自动的或半自动的软件支撑环境。支持各种方法的单个工具:CASE:将各种软件工具、开发机器和一个存放开发过程信息的工程数据库结合起来形成的软件工程环境。过程一方法与工具的结合。方法使用的顺序、要求交付的文档资料、为保证质量和协调变更所需要的管理及软件开发各阶段完成的标志。2.传统方法学和面向对象方法学目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。(1)传统方法学,也称为生命周期方法学和结构化范型。它采用结构化技术(结构化分析、结构化设计、结构程序设计和结构化测试)来完成软件开发的各项任务
5. 结果应能清楚地审查。 6. 开发小组的人员应该少而精。 7. 承认不断改进软件工程实践的必要性。 1.3.3 软件工程的基本内容 从内容上划分软件工程学可分为理论、结构、方法、工具、环境、管理、规范等。 1.3.4 软件工程学研究的基本目标 ·定义良好的方法学,面向计划、开发维护整个软件生存周期的方法学。 ·确定的软件成分,记录软件生存周期每一步的软件文件资料,按步显示轨迹。 ·可预测的结果,在生存周期中,每隔一定时间可以进行复审。 软件工程学的最终目标是以较少投资获得易维护、易理解、可靠、高效率的软件 产品。软件工程学是研究软件结构、软件设计与维护方法、软件工具与环境、软件工 程标准与规范 、软件开发技术与管理技术的相关理论。 1.3.5 软件工程方法学三要素 1.软件工程三要素: • 方法——提供“如何做”的技术。 项目计划与估算、软件系统需求分析、数据结构和系统总体结构设计、算法设计、 程序编码、软件测试、软件维护 • 工具——提供自动的或半自动的软件支撑环境。 支持各种方法的单个工具; CASE:将各种软件工具、开发机器和一个存放开发过程信息的工程数据库结合 起来形成的软件工程环境。 • 过程——方法与工具的结合。 方法使用的顺序、要求交付的文档资料、为保证质量和协调变更所需要的管理及 软件开发各阶段完成的标志。 2.传统方法学和面向对象方法学 目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。 (1)传统方法学,也称为生命周期方法学和结构化范型。它采用结构化技术(结 构化分析、结构化设计、结构程序设计和结构化测试)来完成软件开发的各项任务
并使用适当的软件开发工具或软件工程环境来支持结构化技术的运用。当软件规模较大,或者对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功:此外,使用传统方法学开发出的软件,维护起来通常都很困难。(2)面向对象方法学面向对象方法学=对象+类+继承+消息通信面向对象方法学体现了信息隐藏的观点。例子:税率的频繁改变对不同方法产生不同影响。假定营业税税率6%,我们要实现一个财务系统计算应纳税额,实现方式:1、直接计算:营业额*6.0%2、传统方法学:constfloatsalestax=6.0%3、面向对象方法学:请求对象返回税率..另一个典型的例子是油价。1.4软件工程包含的领域1.软件需求5.软件维护9.软件工程工具和方法2.软件设计6.软件配置管理10.软件质量3.软件构建7.软件工程管理4.软件测试8.软件工程过程小结软件危机软件工程定义本章对计算机软件工程学作了一个简短的概述。首先通过回顾计算机系统发展简史,说明开发软件的一些错误方法和观念是怎样形成的。然后列举了这些错误方法带来的严重弊病(软件危机),澄清了一些糊涂观念。为了计算机系统的进一步发展,需要认真研究开发和维护软件的科学技术。应总结计算机软件的历史经验教训,借鉴其他工程领域的管理技术,逐步使软件工程这门新学科发展和完善起来。本章力求使读者对软件工程的基本原理和方法学有概括的本质的认识。生命周期方法学把软件生命周期划分为若干个相对独立的阶段
并使用适当的软件开发工具或软件工程环境来支持结构化技术的运用。 当软件规模较大,或者对软件的需求是模糊的或随时间变化的时候,使用结构化 范型开发软件往往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很 困难。 (2)面向对象方法学 面向对象方法学=对象+类+继承+消息通信 面向对象方法学体现了信息隐藏的观点。 例子:税率的频繁改变对不同方法产生不同影响。 假定营业税税率 6%,我们要实现一个财务系统计算应纳税额,实现方式: 1、直接计算:营业额*6.0% 2、传统方法学:const float salestax=6.0% 3、面向对象方法学:请求对象返回税率 . 另一个典型的例子是油价。 1.4 软件工程包含的领域 1.软件需求 5.软件维护 9.软件工程工具和方法 2.软件设计 6.软件配置管理 10.软件质量 3.软件构建 7.软件工程管理 4.软件测试 8.软件工程过程 小结 软件危机 软件工程定义 本章对计算机软件工程学作了一个简短的概述。首先通过回顾计算机系统发展简 史,说明开发软件的一些错误方法和观念是怎样形成的。然后列举了这些错误方法带 来的严重弊病(软件危机),澄清了一些糊涂观念。为了计算机系统的进一步发展,需 要认真研究开发和维护软件的科学技术。应总结计算机软件的历史经验教训,借鉴其 他工程领域的管理技术,逐步使软件工程这门新学科发展和完善起来。 本章力求使读者对软件工程的基本原理和方法学有概括的本质的认识。生命周期 方法学把软件生命周期划分为若干个相对独立的阶段
教案(第次课,学时)授课题目第二章软件过程掌握软件的生命周期及每阶段的基本任务教学目的了解各种常用的过程模型与要求掌握瀑布模型、快速原型模型、增量模型和螺旋模型的基本思想和特点软件生命周期每阶段的基本任务教学重点几种常用模型的基本思想和特点教学难点几种常用模型的基本思想和特点教学方法课堂讲授课后作业P34:2、3、4、5专业术语SoftwareLifeCycle、waterfallmodel、rapidprototype、RUP主要参考《软件工程概论》,郑人杰,机械工业出版社资料《软件工程一一方法与实践》,许家怡,电子工业出版社教学后记
教 案 (第 次课, 学时) 授课题目 第二章 软件过程 教学目的 与要求 掌握软件的生命周期及每阶段的基本任务 了解各种常用的过程模型 掌握瀑布模型、快速原型模型、增量模型和螺旋模型的基本思想和 特点 教学重点 软件生命周期每阶段的基本任务 几种常用模型的基本思想和特点 教学难点 几种常用模型的基本思想和特点 教学方法 课堂讲授 课后作业 P34:2、3、4、5 专业术语 Software Life Cycle、waterfall model、rapid prototype、RUP 主要参考 资料 《软件工程概论》,郑人杰,机械工业出版社 《软件工程——方法与实践》,许家怡,电子工业出版社 教学后记
第二章软件过程1.软件过程过程(ISO9000):把输入转化为输出的一组彼此相关的资源和活动。软件开发过程是一个将用户需求转化为软件系统所需要的活动的集合。人们开发和维护软件及其相关产品所采取的一系列活动。其中软件相关产品包括项目计划、设计文档、源代码、测试用例和用户手册等。2.过程模型经典模型:瀑布模型,快速原型法,增量模型,螺旋模型,喷泉模型。现代模型:统一过程,能力成熟度模型。敏捷过程:极限编程,SCRUM2.1软件生命周期(SoftWarelifecycle)即软件从定义、开发、维护直到报废,结束其使命的全过程。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。2.1.1软件生命周期各阶段的基本任务把软件从产生、发展到成熟、直至衰亡为止。可划分为三个时期,每个时期又可进一步划分成若干个阶段。各个阶段的基本任务:1.软件定义(系统分析):确定软件开发工程必须完成的总目标。■问题定义:要解决的问题是什么?■可行性研究:上一个阶段所确定的问题是否有行得通的解决办法?■需求分析:目标系统必须做什么?2.软件开发(系统设计和系统实现):具体设计和实现在前一个时期定义的软件。■概要设计:怎样实现目标系统?,详细设计:应该怎样具体地实现这个系统?■编码和单元测试:关键任务是写出正确的、容易理解、容易维护的程序模块。■综合测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。3.运行维护:修正错误(BUG),使软件持久地满足用户的需要。■改正性维护:诊断和改正使用过程中发现的软件错误·适应性维护:修改软件以适应环境的变化·完善性维护:根据用户的要求改进或扩充软件使它更完善·预防性维护:修改软件为将来的维护活动预先作准备2.1.2生命周期模型为了反映软件生存周期内各种工作应如何组织及软件生存周期各个阶段应如何衔接,需要用软件开发模型给出直观的图示表达。软件开发模型是软件工程思想的具
第二章 软件过程 1.软件过程 过程(ISO 9000):把输入转化为输出的一组彼此相关的资源和活动。 软件开发过程是一个将用户需求转化为软件系统所需要的活动的集合。 人们开发和维护软件及其相关产品所采取的一系列活动。其中软件相关产品包括 项目计划、设计文档、源代码、测试用例和用户手册等。 2.过程模型 经典模型:瀑布模型,快速原型法,增量模型,螺旋模型,喷泉模型 现代模型:统一过程,能力成熟度模型 敏捷过程:极限编程,SCRUM 2.1 软件生命周期(SoftWare life cycle) 即软件从定义、开发、维护直到报废,结束其使命的全过程。 软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。 2.1.1 软件生命周期各阶段的基本任务 把软件从产生、发展到成熟、直至衰亡为止。可划分为三个时期,每个时期又可 进一步划分成若干个阶段。各个阶段的基本任务: 1.软件定义(系统分析):确定软件开发工程必须完成的总目标。 问题定义:要解决的问题是什么? 可行性研究:上一个阶段所确定的问题是否有行得通的解决办法? 需求分析:目标系统必须做什么? 2.软件开发(系统设计和系统实现):具体设计和实现在前一个时期定义的软件。 概要设计:怎样实现目标系统? 详细设计:应该怎样具体地实现这个系统? 编码和单元测试:关键任务是写出正确的、容易理解、容易维护的程序模 块。 综合测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。 3.运行维护:修正错误(BUG),使软件持久地满足用户的需要。 改正性维护:诊断和改正使用过程中发现的软件错误 适应性维护:修改软件以适应环境的变化 完善性维护:根据用户的要求改进或扩充软件使它更完善 预防性维护:修改软件为将来的维护活动预先作准备 2.1.2 生命周期模型 为了反映软件生存周期内各种工作应如何组织及软件生存周期各个阶段应如何 衔接,需要用软件开发模型给出直观的图示表达。软件开发模型是软件工程思想的具
体化,是实施于过程模型中的软件开发方法和工具,是在软件开发实践中总结出来的软件开发方法和步骤。总的说来,软件开发模型是跨越整个软件生存周期的系统开发、运行、维护所实施的全部工作和任务的结构框架。生命周期模型:规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此也称为过程模型。也即在软件产品开发和维护过程中的一系列要执行的步骤。一般都包含定义、开发和维护三类活动。定义活动主要弄清软件“做什么”,开发活动集中解决让软件“怎么做”,维护活动则集中于软件的“修改”,即What-How-Change。瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型2.2瀑布模型(WaterfallModel)瀑布模型:瀑布模型规定了各项软件工程活动,包括:制定开发计划,进行需求分析和说明,软件设计,程序编码。测试及运行维护,参看图2.1。并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。赛求定义L开求说明书计划明认阶段需求分析设计设计说明书=设计开发阶段确认编码卜编码源程字清单=测试确认运行·维护维护阶段+测试测试报告=确认图2.1瀑布模型1.传统瀑布模型的特点:缝护软件维护报告U(1)阶段间具有顺序性和确认依赖性。(2)推迟实现的观点(3)质量保证的观点每个阶段都必须完成规定的文档每个阶段结束前都要对所完成的文档进行评审2.实际瀑布模型(有反馈环)优点:(1)强迫开发人员采用规范方法:(2)严格规定每个阶段必须提交的文档;“文档驱动的”(3)要求每个阶段的所有产品必须经过质量保证小组的仔细验证。缺点:
体化,是实施于过程模型中的软件开发方法和工具,是在软件开发实践中总结出来的 软件开发方法和步骤。总的说来,软件开发模型是跨越整个软件生存周期的系统开发、 运行、维护所实施的全部工作和任务的结构框架。 生命周期模型:规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此, 也称为过程模型。也即在软件产品开发和维护过程中的一系列要执行的步骤。一般都 包含定义、开发和维护三类活动。定义活动主要弄清软件“做什么”,开发活动集中 解决让软件“怎么做”,维护活动则集中于软件的“修改”,即 What-How-Change。 瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型 2.2 瀑布模型(Waterfall Model) 瀑布模型: 瀑布模型规定了各项软件工程活动,包括:制定开发计划,进行需求 分析和说明,软件设计,程序编码。测试及运行维护,参看图 2.1。并且规定了它们 自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。 图 2.1 瀑布模型 1.传统瀑布模型的特点: (1)阶段间具有顺序性和 依赖性。 (2)推迟实现的观点 (3)质量保证的观点 每个阶段都必须完成规定的文档 每个阶段结束前都要对所完成的文档进行评审 2.实际瀑布模型(有反馈环) 优点: (1)强迫开发人员采用规范方法; (2)严格规定每个阶段必须提交的文档; “文档驱动的” (3)要求每个阶段的所有产品必须经过质量保证小组的仔细验证。 缺点: