软件工程教程 课件 教案

上传人:飞*** 文档编号:53575385 上传时间:2018-09-03 格式:PPT 页数:285 大小:800KB
返回 下载 相关 举报
软件工程教程 课件 教案_第1页
第1页 / 共285页
软件工程教程 课件 教案_第2页
第2页 / 共285页
软件工程教程 课件 教案_第3页
第3页 / 共285页
软件工程教程 课件 教案_第4页
第4页 / 共285页
软件工程教程 课件 教案_第5页
第5页 / 共285页
点击查看更多>>
资源描述

《软件工程教程 课件 教案》由会员分享,可在线阅读,更多相关《软件工程教程 课件 教案(285页珍藏版)》请在金锄头文库上搜索。

1、1.1 软件的概念 1.1.1 软件的含义,软件是计算机系统中与硬件相互依存的部分,它包括程序及其相关文档。程序是计算机任务的处理对象和处理规则的描述;文档是为了理解程序所需的阐述性资料。,和硬件相比,软件主要有以下特点:(1)表现形式不同:软件是无形无色、看不见摸不着的。(2)生产方式不同:软件是人的智力的高度发挥,它没有明显的制造过程。(3)维护不同:软件不存在磨损和老化问题,但随着某些缺陷的改变,很可能带来一些新的缺陷。,1.1 软件的概念 1.1.2 软件的特点,(1)按软件的功能:系统软件、支撑软件、应用软件 (2)按软件的规模:微型、小型、中型、大型、超大型、极大型 (3)按软件的

2、工作方式:实时处理软件、分时软件、交互式软件、批处理软件 (4)按软件服务对象的范围:项目软件、产品软件,1.1 软件的概念 1.1.3 软件的分类,软件危机的表现 : (1)不能正确地估计软件开发成本和进度 (2)在开发的初期,软件需求不够明确 (3)开发过程没有统一、公认的方法和规范进行指导 (4)未做好测试阶段的工作 (5)开发效率低,1.2 软件工程的产生和概念 1.2.1 软件危机,解决软件危机的策略 (1)加强软件开发过程的管理 (2)推广使用开发软件的成功技术与方法 (3)开发和使用好的软件工具,1.2 软件工程的产生和概念 1.2.1 软件危机,软件工程是一门指导软件开发和维护

3、的工程学科,是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法来生产软件,以达到提高质量、降低成本的目的。 1993年IEEE为软件工程下的定义是“软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件中的方法的研究。”,1.2 软件工程的产生和概念 1.2.2 软件工程的定义和内容,一般将方法、工具和过程称为软件工程的三要素。 软件工程学所依据的理论基础极为丰富,包括数学、计算机科学、经济学、工程学、管理学和心理学等其他学科,其研究的内容包括软件开发

4、技术和软件管理技术,软件开发技术又包括软件开发方法、软件开发工具和软件工程环境,软件管理技术包括项目估算、项目计划、人员组织、进度控制、配置管理和软件度量等。,1.2 软件工程的产生和概念 1.2.2 软件工程的定义和内容,1.3 软件工程的目标和原理 1.3.1 软件工程的基本目标,付出较低的开发成本。 达到预期的软件功能。 取得较好的软件性能。 使软件易于移植。 需要较低的维护费用。 能按时完成开发工作,及时交付使用。,1.3 软件工程的目标和原理 1.3.2 软件工程的基本原理,(1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实施严格的产品控制 (4)采用现代程序设计

5、技术 (5)结果应能清楚地审查 (6)开发小组的成员应该少而精 (7)承认不断改进软件工程实践的必要性,1.4 软件生命周期和开发模型 1.4.1 软件生命周期,软件生命周期是指一个计算机软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直到停止该软件使用的全过程。 个阶段:制定计划、需求分析、设计、程序编码、测试、运行维护。,1.4 软件生命周期和开发模型 1.4.1 软件生命周期,制定计划确定待开发软件系统的总目标,给出它的功能、性能、可靠性以及接口等方面的总体要求;完成该项软件任务的可行性研究,探讨解决问题的可能方案;制定完成开发任务的实施计划。 需求分析由系统

6、分析人员对待开发软件提出的需求进行分析并给出详细的定义,确定对该软件的各项功能、性能需求和设计约束,编写软件需求说明书及初步的用户手册。,1.4 软件生命周期和开发模型 1.4.1 软件生命周期,软件设计系统设计人员和程序设计人员把已确定的软件需求转换成相应的软件设计,包括该软件的结构、模块的划分、功能的分配以及处理流程。若系统比较复杂,设计阶段应分解成概要设计阶段和详细设计阶段两个步骤,应编写概要设计说明书、详细设计说明书和测试计划初稿。 程序编码把软件设计的结果转换成计算机可以接受的程序代码,要完成源程序的编码、编译(或汇编)和排错调试得到无语法错的程序清单。,1.4 软件生命周期和开发模

7、型 1.4.1 软件生命周期,软件测试在设计测试用例的基础上,按照软件测试计划对软件进行全面测试,给出软件测试报告,并排除检查出的错误,确保软件质量。 运行和维护软件在运行使用中要进行适当维护,包括纠正软件的错误、使软件能够适应环境的变化及扩充软件的功能。,1.4 软件生命周期和开发模型 1.4.2 软件开发模型,软件开发模型(也称为软件过程模型)是从软件项目需求定义开始直至软件经使用后废弃为止,跨越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架。 常用模型:瀑布模型、快速原型化模型、增量模型、螺旋模型、喷泉模型,1.4 软件生命周期和开发模型 1.4.2 软件开发模

8、型,1.瀑布模型 规定了各项软件工程活动,并且规定了自上而下相互衔接的固定顺序。 要明确规定各个开发阶段应交付的产品,为严格控制软件开发项目的进度,最终按时交付产品以及保证软件产品质量创造了有利条件。 突出的缺点是描写缺乏灵活性,无法通过开发活动澄清本来不够确切的软件需求。,2.快速原型模型 快速原型模型的基本思想是软件开发人员根据用户提出的主要需求快速开发一个原型,以便让用户看到软件系统基本功能和性能,以判断哪些功能是符合需要的,哪些是需要改进的,进一步使需求精确、完全,并将原型改进、完善,如此反复,直到软件开发人员和用户都确认软件系统的需求并达成一致的理解为止。 原型不是实现系统的所有性质

9、,而只能是用户和开发人员最为关心的一部分性质,如用户界面、功能或性能。,1.4 软件生命周期和开发模型 1.4.2 软件开发模型,3.增量模型 增量模型规定软件的开发过程是一次开发产品的一个部分。第一轮只满足用户一些基本的需求,还有一些其他的需求暂不实现。根据用户对基本产品的评价结果和提出的修改和补充意见,进行下一轮的计划和开发。 增量模型在开发人员不是非常充裕或者规定交付期限很短的情况下十分有用。 使用难点:后来开发的部分必须能够集成到先前已经开发的产品中而不破坏已开发的功能,这就要求开发的产品必须容易扩充。,1.4 软件生命周期和开发模型 1.4.2 软件开发模型,4.螺旋模型 螺旋模型是

10、将瀑布模型与增量模型结合起来,不仅体现了两个模型的优点,而且还增加了风险分析。 螺旋模型由风险驱动。 螺旋模型受以下条件的限制: 螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此这种模型往往用于内部的大规模软件开发; 进行风险分析费用很高,因此螺旋模型只适合于大规模软件项目; 软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则可能会带来更大的风险。,1.4 软件生命周期和开发模型 1.4.2 软件开发模型,5.喷泉模型 喷泉模型是以面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的模型,它克服了瀑布模型不支持软件复用和多项开发活动集成的局

11、限性。 喷泉模型具有增量开发特性,即能做到边分析、边设计,边实现、边测试,使相关功能随之加入到演化的系统中。,1.4 软件生命周期和开发模型 1.4.2 软件开发模型,软件方法就是指导研制软件的某种标准规程,它告诉人们:“什么时候做什么以及怎么做”,由于软件研制过程毕竟是相当复杂的,它涉及的因素很多,所以各种软件方法又有不同程度的灵活性、试探性。 一个软件方法往往规定:明确的工作步骤、具体的描述方式以及确定的评价标准。,1.5 软件开发方法和开发工具 1.5.1软件开发方法的概念,1.5 软件开发方法和开发工具 1.5.2 软件开发的基本方法,1.结构化方法 结构化方法的基本思想可以概括为自顶

12、向下、逐步求精,采用模块化技术和功能抽象将系统按功能分解为若干模块,从而将复杂的系统分解成若干易于控制和处理的子系统,子系统又可分解为更小的子任务,最后的子任务都可以独立编写成子程序模块,模块内部由顺序、选择、循环等基本控制结构组成。 由于结构化方法将过程与数据分离为相互独立的实体,因此开发的软件可复用性较差,在开发过程中要使数据与程序始终保持相容也很困难。,1.5 软件开发方法和开发工具 1.5.2 软件开发的基本方法,2.面向对象方法 面向对象方法的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,将客观世界中的实体抽象为

13、问题域中的对象。 面向对象方法的主要优点是使用现实的概念抽象地思考问题,从而自然地解决问题,保证软件系统的稳定性和可复用性以及良好的维护性。,1.5 软件开发方法和开发工具 1.5.2 软件开发的基本方法,3.两种方法的比较 传统的结构化方法是软件工程中最为成熟的方法。对于能够预先确定需求的系统的开发,采用结构化方法非常有效,但是对于需求是模糊的或随时间变化的系统开发这种方法不能适应。 对于需求不能预先确定的系统的开发,可采用面向对象方法结合,这样就能够结合面向对象方法所具有的稳定性好、可复用性好和可维护性好的特点。,1.5 软件开发方法和开发工具 1.5.3 软件开发工具,软件开发工具是为支

14、持软件开发和维护活动而使用的软件,用来提高软件的生产效率和软件质量。 方法和工具之间有着密切的联系,方法是主导,工具则是辅助。,1.6 软件开发文档 1.6.1 软件开发文档综述,1.文档的作用:软件开发文件连同计算机程序及数据一起,构成为计算机软件。文件是计算机软件中不可缺少的组成部分 。 2.软件开发文档的种类:在一项计算机软件的开发过程中,一般地说,应该产生十四种文件。这十四种文件是可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、用户手册、操作手册、模块开发卷宗、测试计划、测试分析报告、开发进度月报、项目开发总结报告。,1.

15、6 软件开发文档 1.6.1 软件开发文档综述,3.文件的使用者 对于使用文件的人员而言,他们所关心的文件的种类,随他们所承担的工作而异。 管理人员:可行性研究报告、项目开发计划、模块开发卷宗、开发进度月报、项目开发总结报告; 开发人员:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、测试计划、测试分析报告; 维护人员:设计说明书、测试分析报告、模块开发卷宗; 用户:用户手册、操作手册。,1.6 软件开发文档 1.6.1 软件开发文档综述,4.软件生命周期中各种文件的编制 可行性研究与计划阶段:可行性分析报告、项目开发计划 需求分

16、析阶段内:软件需求说明书、数据要求说明书和初步的用户手册等 设计阶段:概要设计说明书、详细设计说明书和测试计划初稿等 实现阶段:程序清单、模块开发卷宗、用户手册、操作手册、测试计划等 测试阶段:模块开发卷宗、测试分析报告、项目开发总结报告 整个开发过程:按月编写开发进度月报 有些文件的编写工作可能要在若干个阶段中延续进行。,1.6 软件开发文档 1.6.2 文件编制中的考虑因素,1.文件的读者:文件的编写必须注意适应自己的特定读者的水平、特点和要求 2.重复性:较明显的重复有引言和各种文件中的说明部分两类,这是为了方便每种文件各自的读者,每种产品文件应该自成体系,尽量避免读一种文件时又不得不去参考另一种文件。 3.灵活性:在文件编制工作中应允许一定的灵活性,包括应编制的文件种类 、文件的详细程度 、文件的扩展 、节的扩张与缩并 、程序设计的表现形式 、文件的表现形式 、文件的其他种类等,1.6 软件开发文档 1.6.3 文件编制的管理工作,文件的形成 文件的分类与标识 文件的控制 文件的修改管理,1.6 软件开发文档 1.6.4 文件编制实施规定的实例,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号