软件工程

2022-04-01
4分钟阅读时长

基本概念

软件概念

软件:软件=程序+数据+文档

  1. 程序:按事先设计的功能和性能需求执行的指令序列;
  2. 数据:是程序能正常操纵信息的数据结构;
  3. 文档:与程序开发、维护和使用有关的图文材料;

软件的特征:

  1. 软件不是制造的,而是设计开发或工程化的;
  2. 软件的开发时间和工作量难以估计;
  3. 软件会多次修改,测试困难;
  4. 软件可能随着运行的时间增加而效率变低或问题变多;
  5. 软件生产是简单的拷贝;
  6. 软件开发环境对产品影响巨大;

软件功能划分:

  1. 系统软件:服务于其他程序的程序。(操作系统、编译器)
  2. 应用软件:解决特定需要的独立应用程序。(管理系统、浏览器)
  3. 支撑软件:支持需求分析、设计、实现、测试和支持管理的软件。(如中间件、数据库)
  4. 工程/科学软件:带数值计算的特征。
  5. 嵌入式软件。
  6. 产品线软件:为不同用户使用提供特定功能。
  7. web 应用软件。
  8. 人工智能软件:利用非数值计算解决复杂问题。

软件危机

软件危机:在计算机软件的开发、运行和维护过程中所遇到的一系列严重问题。 (效率和质量问题)

软件危机的原因:

  1. 客观上,即软件本身特点:逻辑部件、规模庞大。
  2. 主观上,即不正确的开发方法:忽视需求分析,忽视设计,忽视合作,忽视软件维护。

消除软件危机的途径:

  1. 正确的认识
  2. 软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
  3. 推广使用在实践中总结出来的开发软件的成功技术。

软件工程

软件工程的定义:

  1. 将系统的、规范的、可度量的方法应用于软件开发、运行和维护过程,即将工程应用到软件。
  2. 对上述中各种方法的研究。

软件工程的目标:

在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应力强、可移动、可重用的软件。

软件工程三要素:方法、工具、过程

  1. 方法:软件工程方法是构建软件工程的解决方法,软件工程方法分两类:结构化方法和面向对象方法。
  2. 工具:为软件工程的过程和方法提供自动化或半自动化的工具支持。
  3. 过程:过程贯穿软件开发的各个环节,在各环节之间建立里程碑;

软件工程的发展过程:

传统软件工程→对象工程→过程工程→构件工程

过程模型

软件生命周期

定义:一个软件产品或软件系统从定义、开发、投入使用到被淘汰的全过程;

三阶段:定义、开发、维护;

八步骤:问题的定义、可行性研究、需求分析、概要设计、详细设计、编码实现、测试、维护;

软件过程

定义:软件生产过程中的一系列活动、动作、任务的集合,这些活动贯穿于软件开发的整个过程。

软件过程也称为软件生存周期过程,是指软件生存周期中的一系列相关过程。为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

能力成熟度模型

成熟度模型标准(CMM)如下:

  1. 初始级:工作无序,缺乏健全的管理制度。
  2. 可重复级:管理制度化,建立了基本的管理制度和规程,初步实现标准化。
  3. 已定义级:过程标准化,工作和管理工作,均已实现标准化、文档化。
  4. 量化管理级:产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。
  5. 优化级:持续的过程改进,拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。

需求分析

系统设计

质量保证

回归测试

回归测试的概念

  1. 在软件测试的各个阶段,在修正发现的软件缺陷或增加新功能时,变化的部分必须进行再测试。此外,对软件进行修改还可能会导致引入新的软件缺陷以及其他问题。为解决这些问题,需要进行回归测试。
  2. 回归测试是指有选择地重新测试系统或其组件,以验证对软件的修改没有导致不希望出现的影响,以及系统或组件仍然符合其指定的需求。
  3. 回归测试可以在所有的测试级别执行,并应用于功能和非功能测试中。
  4. 回归测试应该尽量采用自动化测试。

回归测试的范围

  1. 缺陷再测试:重新运行所有发现故障的测试,而新的软件版本已经修正了这些故障。
  2. 功能改变的测试:测试所有修改或修正过的程序部分。
  3. 新功能测试:测试所有新集成的程序。
  4. 完全回归测试:测试整个系统。

软件维护

项目管理

Avatar

坐忘道琼峰 Sitting Oblivion Tao EndlessPeak

瞽者无以与乎文章之观,聋者无以与乎钟鼓之声。岂唯形骸有聋盲哉?
上一页 项目经历
下一页 英语面试