Chaper 1 软件和软件工程的概念
1.1软件的概念特性和分类
软件的作用:
具有产品和产品生产载体的双重作用。
软件的概念:
软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的_指令序列_;数据是使程序能够正确的处理信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。
软件的特性:
- 形态特性:软件的形态特性指的是软件并没有具体的物理形式,而是以逻辑形式存在,包括程序、数据和文档等。这意味着软件是抽象的,只能通过其功能和行为来理解和使用。
- 智能特性:软件的智能特性指的是软件能够自主地执行任务或提供智能化的服务。软件开发的核心问题是需要做什么事,这是由软件的智能特性所决定的。
- 开发特性:软件开发需要经过一系列的步骤和过程,包括需求分析、设计、编码、测试和维护等。这些步骤和过程都需要经过精心策划和管理,以确保软件的开发质量和效率。
- 质量特性:软件的质量特性指的是软件的正确性、可靠性、效率、安全性、可维护性、可测试性和可用性等方面。为了保证软件的质量,需要在开发过程中进行质量控制和测试。
- 生产特性:软件的生产特性指的是软件的批量生产能力和成本控制能力。在软件开发过程中,需要进行成本控制和优化,以提高生产效率和降低成本。
- 管理特性:软件的管理特性指的是软件的开发和管理过程中的计划、组织、指挥、协调和控制等方面。为了保证软件的管理效率和开发质量,需要进行有效的项目管理。
- 环境特性:软件的环境特性指的是软件运行所需的环境和基础设施,包括硬件、操作系统、网络和其他软件系统等。
- 维护特性:软件的维护特性指的是软件在使用过程中需要进行修改、更新、升级和维护等方面。为了保证软件的可用性和安全性,需要进行有效的维护和管理。
- 废弃特性:软件的废弃特性指的是软件在使用过程中可能需要被废弃或替换,需要进行废弃管理。
- 应用特性:软件的应用特性指的是软件在不同领域和行业中的应用情况。不同的应用场景可能需要不同的软件功能和特性。
软件特性的本质:
- 软件是设计的,不是设备加工制造的。
- 软件是认得智力密集劳动成果,在软件中人是关键因素。
- 软件的要求是变化的。
- 软件的测试是困难的。
根本原因: 软件是人的智力劳动 。
1.1.2软件的分类
- 系统软件
- 支撑软件
- 应用软件
- 可复用软件
软件危机、软件工程的提出(略)
软件工程的概念:概括的说,软件工程是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经过时间考验且证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护它。
1.2软件工程的基本原则:
- 用分阶段的生命周期计划严格管理。
- 坚持进行阶段评审。
- 实行严格的产品控制。
- 采用现代程序设计技术。
- 结果应能清楚的审查。
- 开发小组的人员应该少而精。
- 承认不断改进软件工程实践的必要性。
1.3软件工程的目标
目标:
软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。
基本目标:
- 付出较低的开发成本
- 达到要求的软件功能
- 取得较好的软件性能
- 开发的软件易于移植
- 需要较低的维护费用
- 能按时完成开发工作,及时交付使用
软件的质量特征:
功能性、可靠性、易用性、效率、维护性和可移植性。
功能性是指软件所实现的功能达到它的设计规范和满足用户需求的程度,其质量子特征包括适合性、正确性、安全保密性;
可靠性是指在规定的时间和条件下,软件能够正常维持其工作的能力,其质量子特征包括成熟性、恢复性、容错性;
易用性是指为了使用该软件所需要的能力,其质量子特征包括易理解性、易学习性、易操作性;
效率是指在规定的条件下用软件实现某种功能所需要的计算机资源的有效性,其质量子特征包括时间特性、资源特性;
可维护性是指当环境改变或软件运行发生故障时,为使其恢复正常运行所做努力的程度,其质量子特征包括易分析性、易修改性、易测试性;
可移植性是指软件从某一环境转移到另一环境时所做努力的程度,其质量子特征包括适应性、易替换性。
1.4软件生命周期(国内常用阶段)
- 软件定义时期
问题定义
可行性研究
需求分析
- 软件开发时期
概要设计
详细设计
编码
测试
- 运行维护时期
维护
1.5软件工程方法概述
软件工程方法三要素(软件工程层次结构):过程、方法和工具。
过程是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。
软件工程方法为软件开发提供了 “如何做” 的技术;
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境;
软件工程包含开发和管理两方面的内容,是开发和管理紧密结合所形成的工程学科。
通常将软件开发全过程中使用的一整套技术方法的集合称为方法学(methedology),也称为范型(paradigm)。
目前使用最广泛的软件工程方法学:传统方法学(结构化方法学),面向对象方法学。
- 结构性方法学(数据驱动)
- 面向对象方法学(对象驱动)
- 面向服务方法学(接口驱动)
- 面向数据的方法学(数字对象驱动)
- 形式化方法(数学抽象)
- 本博客所拥有的文章除特别声明外,均默认采用 CC BY 4.0 许可协议。
- 文章部分内容可能来源于公共网络,如有侵权,请联系博主在核实后进行修改或删除。
暂无评论内容