第10章 软件工程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件的定义、特点及分类(三)
3. 软件分类
软件根据应用目标的不同,是多种多样的。软件按功能可以分为:应用软件、系统软件 软件根据应用目标的不同,是多种多样的。软件按功能可以分为:应用软件、 支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。例如, )。应用软件是为解决特定领域的应用而开发的软件 、支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。例如, 事务处理软件、工程与科学计算软件、实时处理软件、嵌入式软件、 事务处理软件、工程与科学计算软件、实时处理软件、嵌入式软件、人工智能等应用性 质不同的各种软件。系统软件是计算机管理自身资源, 质不同的各种软件。系统软件是计算机管理自身资源,提高计算机使用效率并为计算机 用户提供各种服务的软件,如操作系统、编译程序、汇编程序、网络软件、 用户提供各种服务的软件,如操作系统、编译程序、汇编程序、网络软件、数据库管理 系统等。支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件, 系统等。支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件, 包括辅助与支持开发并维护应用软件的工具软件,如需求分析工具软件、 包括辅助与支持开发并维护应用软件的工具软件,如需求分析工具软件、设计工具软件 编码工具软件、测试工具软件、维护工具软件等, 、编码工具软件、测试工具软件、维护工具软件等,也包括辅助管理人员控制开发进程 和项目管理的工具软件,如计划进度管理工具软件、过程控制工具软件、 和项目管理的工具软件,如计划进度管理工具软件、过程控制工具软件、质量管理及配 置管理工具软件等。 置管理工具软件等。
软件工程过程与软件生命周期 (一)
1. 软件工程过程
软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。 软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。它的定义 是把输入转化为输出的一组彼此相关的资源和活动 具有以下两方面的内涵: 具有以下两方面的内涵: 软件工程过程是指为获得软件产品, (1)软件工程过程是指为获得软件产品,在软件工具支持下由软件工程师完 成的一系列软件工程活动。基于这个方面,软件工程过程通常包含以下4 成的一系列软件工程活动。基于这个方面,软件工程过程通常包含以下4种基 本活动: 本活动: • P(Plan):软件规格说明。规定软件的功能及其运行时的限制。 Plan):软件规格说明。规定软件的功能及其运行时的限制。 ):软件规格说明 • D(Do):软件开发。产生满足规格说明的软件。 Do):软件开发。产生满足规格说明的软件。 ):软件开发 • C(Check):软件确认。确认软件能够满足客户提出的要求。 Check):软件确认。确认软件能够满足客户提出的要求。 ):软件确认 • A(Action):软件演进。为满足客户的变更要求,软件必须在使用的过程 Action):软件演进。为满足客户的变更要求, ):软件演进 中演进。 中演进。 从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、 (2)从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、 时间等),为开发软件进行的一组开发活动,在过程结束时将输入( ),为开发软件进行的一组开发活动 时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要 转化为输出(软件产品)。 求)转化为输出(软件产品)。
第10章 软件工程 10章
教学目的
•了解软件工程的基本知识 •了解结构化分析和设计的基本方法 •了解软件测试的目的、准则及方法 了解软件测试的ቤተ መጻሕፍቲ ባይዱ的、 •了解程序的调试方法
软件的定义、特点及分类(一)
1. 软件的定义 国标(GB)中对计算机软件的定义为:与计算机系统的操作有关的计 中对计算机软件的定义为: 计算机软件的定义为 国标( 算机程序、规程、规则以及可能有的文件、文档及数据。 算机程序、规程、规则以及可能有的文件、文档及数据。 计算机软件( 计算机软件(Software)是计算机系统中与硬件相互依存的另一部分 是包括程序、数据及相关文档的完整集合。其中, ,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发 人员根据用户需求开发的、用程序、设计语言描述的、 人员根据用户需求开发的、用程序、设计语言描述的、适合计算机执 行的指令(语句)序列。数据是使程序能正常操纵信息的数据结构。 行的指令(语句)序列。数据是使程序能正常操纵信息的数据结构。 文档是与程序开发、维护和使用有关的图文资料。 文档是与程序开发、维护和使用有关的图文资料。可见软件由两部分 组成:一是机器可执行的程序和数据; 组成:一是机器可执行的程序和数据;二是机器不可执行的与软件开 运行、维护、使用等有关的文档。 发、运行、维护、使用等有关的文档。
软件生命周期的主要活动阶段有: 软件生命周期的主要活动阶段有: • 可行性研究与计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、 可行性研究与计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、 性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。 性能、可靠性以及接口等方面的可能方案, 制定完成开发任务的实施计划。 • 需求分析。对待开发软件提出的需求进行分析并给出详细定义。编写软件规格说明书 需求分析。对待开发软件提出的需求进行分析并给出详细定义。 及初步的用户手册,提交评审。 及初步的用户手册,提交评审。 • 软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软 软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上, 件的结构、模块的划分、功能的分配以及处理流程。 件的结构、模块的划分、功能的分配以及处理流程。 • 软件实现。把软件设计转换成计算机可以接受的程序代码,即完成源程序的编码,编 软件实现。把软件设计转换成计算机可以接受的程序代码, 即完成源程序的编码, 写用户手册、操作手册等面向用户的文档,编写单元测试计划。 写用户手册、操作手册等面向用户的文档,编写单元测试计划。 • 软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。 软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。 • 运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的 运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护, 需求进行必要而且可能的扩充和修改。 需求进行必要而且可能的扩充和修改。
软件危机与软件工程(二)
2. 软件工程 国标(GB)中指出,软件工程是应用于计算机软件的定义、开发和维 国标( 中指出,软件工程是应用于计算机软件的定义、 是应用于计算机软件的定义 护的一整套方法、工具、文档、实践标准和工序。 护的一整套方法、工具、文档、实践标准和工序。 软件工程包括3个要素,即方法、工具和过程。 软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项 目的技术手段,工具支持软件的开发、管理、文档生成, 目的技术手段,工具支持软件的开发、管理、文档生成,过程支持软 件开发的各个环节的控制、管理。 件开发的各个环节的控制、管理。 软件工程的核心思想是把软件产品(就像其他工业产品一样) 软件工程的核心思想是把软件产品(就像其他工业产品一样)看作是 一个工程产品来处理,把需求计划、可行性研究、工程审核、 一个工程产品来处理,把需求计划、可行性研究、工程审核、质量监 督等工程化的概念引入到软件生产当中,以期达到工程项目的3 督等工程化的概念引入到软件生产当中,以期达到工程项目的3个基本 要素:进度、 要素:进度、经费和质量的目标
软件危机与软件工程(一)
1. 软件危机
20世纪60年代后期,“软件危机”为业界所经常谈及。软件危机是指在计算 年代后期, 软件危机”为业界所经常谈及。 机软件的开发和维护过程中所遇到的一系列严重问题。实际上, 机软件的开发和维护过程中所遇到的一系列严重问题。实际上,几乎所有的 软件都不同程度地存在这些问题。 软件都不同程度地存在这些问题。 在软件开发和维护过程中,软件危机主要表现在: 在软件开发和维护过程中,软件危机主要表现在: • 软件需求的增长得不到满足。用户对系统不满意的情况经常发生。 软件需求的增长得不到满足。用户对系统不满意的情况经常发生。 • 软件开发成本和进度无法控制。开发成本超出预算,开发周期大大超过规定 软件开发成本和进度无法控制。开发成本超出预算, 日期的情况经常发生。 日期的情况经常发生。 • 软件质量难以保证。 软件质量难以保证。 • 软件不可维护或维护程度非常低。 软件不可维护或维护程度非常低。 • 软件的成本不断提高。 软件的成本不断提高。 • 软件开发生产率的提高赶不上硬件的发展和应用需求的增长。 软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
软件的定义、特点及分类(二)
2. 软件的特点
软件在开发、生产、维护和使用等方面与计算机硬件相比存在明显的差异。 软件在开发、生产、维护和使用等方面与计算机硬件相比存在明显的差异。深入理解软 件的定义需要了解软件的以下特点: 件的定义需要了解软件的以下特点: • 软件是一种逻辑实体,而不是物理实体,具有抽象性。软件的这个特点使它与其他工 软件是一种逻辑实体,而不是物理实体, 具有抽象性。 程对象有着明显的差异。人们可以把它记录在纸上或存储介质上, 程对象有着明显的差异。人们可以把它记录在纸上或存储介质上,但却无法看到软件本 身的形态,必须通过观察、分析、思考、判断,才能了解它的功能、性能等特性。 身的形态,必须通过观察、分析、思考、判断,才能了解它的功能、性能等特性。 • 软件的生产与硬件不同,它没有明显的制作过程。一旦研制开发成功,可以大量拷贝 软件的生产与硬件不同,它没有明显的制作过程。一旦研制开发成功, 同一内容的副本。所以对软件的质量控制,必须着重在软件研发方面下功夫。 同一内容的副本。所以对软件的质量控制,必须着重在软件研发方面下功夫。 • 软件在运行、使用期间不存在磨损、老化问题。软件虽然在生存周期后期不会因为磨 软件在运行、使用期间不存在磨损、老化问题。 损而老化,但为了适应硬件、环境以及需求的变化要进行修改, 损而老化,但为了适应硬件、环境以及需求的变化要进行修改,而这些修改又会不可避 免地引入错误,导致软件失效率升高,从而使得软件退化。 免地引入错误,导致软件失效率升高,从而使得软件退化。 • 软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移 软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制, 植的问题。 植的问题。 • 软件复杂性高,成本昂贵。软件是人类有史以来生产的复杂度最高的工业产品。软件 软件复杂性高,成本昂贵。 软件是人类有史以来生产的复杂度最高的工业产品。 涉及人类社会的各行各业、方方面面,软件开发常常涉及其他领域的专门知识。 涉及人类社会的各行各业、方方面面,软件开发常常涉及其他领域的专门知识。软件开 发需要投入大量、高强度的脑力劳动,成本高,风险大。 发需要投入大量、高强度的脑力劳动,成本高,风险大。 • 软件开发涉及诸多的社会因素。许多软件的开发和运行涉及软件用户的机构设置体制 软件开发涉及诸多的社会因素。 问题以及管理方式等,甚至涉及到人们的观念和心理,软件知识产权及法律等问题。 问题以及管理方式等,甚至涉及到人们的观念和心理,软件知识产权及法律等问题。
软件工程过程与软件生命周期 (二)
2. 软件生命周期
通常,将软件产品从提出、实现、 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件 生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用 生命周期。也就是说,软件产品从考虑其概念开始, 为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、 为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设 实现、测试、交付使用以及维护等活动。 计、实现、测试、交付使用以及维护等活动。