探秘软件工程知识点,掌握软考系统分析师必备技能

发表时间: 2024-10-13 15:08

前言

今年报考了11月份的软考高级:系统分析师。

考试时间为:11月9日。

倒计时:27天。

目标:优先应试,其次学习,再次实践。

复习计划第一阶段:扫平基础知识点,仅抽取有用信息,可有缺失,但得过眼。

第八章:软件工程

内容总结

软件工程

  • 应用科学、数学、管理学解决软件问题。
  • 目标:提高生产率、质量、降低成本。
  • 组成:方法、工具、过程。

软件生命周期:

  1. 概念:软件从需求分析到退役的全过程。
  2. 阶段:可行性研究、需求分析、概要设计、详细设计、实现、测试、运行维护。
  3. 目的:管理软件开发步骤和方法,提高效率和质量。

软件开发方法:

  1. 自顶向下:从整体到细节的开发方法。
  2. 自底向上:从细节到整体的开发方法。
  3. 形式化方法:基于数学基础,适用于高安全级别的软件开发。
  4. 非形式化方法:不强调严格性,体现为各种开发模型。
  5. 整体性方法:适用于软件开发全过程。
  6. 局部性方法:仅适用于开发过程的某个具体阶段。

形式化方法:

  1. 基于严格数学基础的开发方法。
  2. 优点:提高软件可靠性,精确数学语义。
  3. 缺点:需要良好数学基础,难于理解。

净室软件工程(CSE):

  1. 高质量软件开发形式化方法。
  2. 特点:盒结构归约、正确性验证、统计测试。
  3. 缺点:要求高,验证步骤困难。

逆向工程:

  1. 分析程序建立高层次表示的过程。
  2. 相关概念:重构、设计恢复、再工程、正向工程。
  3. 应用:软件维护和改进。

软件开发模型

  1. 瀑布模型:线性顺序模型,需求→设计→编码→测试→维护。
  2. 演化模型:迭代原型改进,适应需求变化。
  3. 螺旋模型:结合瀑布和演化模型,强调风险分析。
  4. 喷泉模型:面向对象,各阶段重叠反复,无固定次序。
  5. V模型:开发与测试阶段的对应关系,强调测试。

快速应用开发(RAD):

  1. 快速开发方法,强调迭代和用户参与。
  2. 特点:短周期、用户参与、原型构建。

统一过程(UP):

  1. 通用过程框架,用例驱动、架构中心、迭代增量。
  2. 特点:灵活性、迭代、以架构为中心。

敏捷方法:

  1. 强调人的核心作用、迭代开发、客户合作、响应变化。
  2. 原则:个体和交互、可工作的软件、客户合作、响应变化。
  3. 方法:XP、ASD、FDD、TDD、AD、Lean等。

软件开发环境与工具:

  1. 支持软件工程化开发和维护的软件集合。
  2. 分类:按模型、功能、应用范围、开发阶段。
  3. 集成机制:平台集成、数据集成、界面集成、控制集成、过程集成。

软件过程管理:

  1. 软件能力成熟度模型(CMM):5个成熟度等级,从初始到优化。
  2. 关键过程域(KPA):实现各等级目标的实践领域。
  3. 能力成熟度模型集成(CMMI):融合多种模型,提供过程改进的单一集成模型。

软件过程评估:

  1. 基于模型对软件过程的规范评估。
  2. 步骤:成立评估小组、填写问卷、分析问卷、现场访问、撰写报告、绘制剖面图。

不常见概念

软件开发工具

软件开发工具分类:需求分析工具、设计工具、编码与排错工具。 软件维护工具:版本管理工具、文档分析工具、逆向工程工具。 软件管理和支持工具:项目管理工具、配置管理工具、软件评价工具。

开发工具的选择:

根据功能、易用性、稳健性、硬件要求、性能以及服务和支持等方面来选择。 考虑最终用户需求和开发人员的偏好。 没有绝对标准,需针对具体使用环境和开发方法进行评价。

软件过程评估模型

CMM/CMMI: 能力成熟度模型/能力成熟度模型集成,提供5个成熟度等级,从初始级到优化级。 ISO/IEC 15504(SPICE): 国际标准,定义了软件过程评估的框架和过程能力模型。 其他模型: 如敏捷模型、RUP等,根据不同的软件开发方法论,可能采用特定的评估模型。

写在最后

以上均为粗看教程的总结,目的不是为了百分之百准确,而是为了过手过脑,有所印象。

但是如有发现谬误,感谢各位随时指出。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。