前言
今年报考了11月份的软考高级:系统分析师。
考试时间为:11月9日。
倒计时:27天。
目标:优先应试,其次学习,再次实践。
复习计划第一阶段:扫平基础知识点,仅抽取有用信息,可有缺失,但得过眼。
第八章:软件工程

内容总结
软件工程 :
- 应用科学、数学、管理学解决软件问题。
 - 目标:提高生产率、质量、降低成本。
 - 组成:方法、工具、过程。
 
软件生命周期:
- 概念:软件从需求分析到退役的全过程。
 - 阶段:可行性研究、需求分析、概要设计、详细设计、实现、测试、运行维护。
 - 目的:管理软件开发步骤和方法,提高效率和质量。
 
软件开发方法:
- 自顶向下:从整体到细节的开发方法。
 - 自底向上:从细节到整体的开发方法。
 - 形式化方法:基于数学基础,适用于高安全级别的软件开发。
 - 非形式化方法:不强调严格性,体现为各种开发模型。
 - 整体性方法:适用于软件开发全过程。
 - 局部性方法:仅适用于开发过程的某个具体阶段。
 
形式化方法:
- 基于严格数学基础的开发方法。
 - 优点:提高软件可靠性,精确数学语义。
 - 缺点:需要良好数学基础,难于理解。
 
净室软件工程(CSE):
- 高质量软件开发形式化方法。
 - 特点:盒结构归约、正确性验证、统计测试。
 - 缺点:要求高,验证步骤困难。
 
逆向工程:
- 分析程序建立高层次表示的过程。
 - 相关概念:重构、设计恢复、再工程、正向工程。
 - 应用:软件维护和改进。
 
软件开发模型:
- 瀑布模型:线性顺序模型,需求→设计→编码→测试→维护。
 - 演化模型:迭代原型改进,适应需求变化。
 - 螺旋模型:结合瀑布和演化模型,强调风险分析。
 - 喷泉模型:面向对象,各阶段重叠反复,无固定次序。
 - V模型:开发与测试阶段的对应关系,强调测试。
 
快速应用开发(RAD):
- 快速开发方法,强调迭代和用户参与。
 - 特点:短周期、用户参与、原型构建。
 
统一过程(UP):
- 通用过程框架,用例驱动、架构中心、迭代增量。
 - 特点:灵活性、迭代、以架构为中心。
 
敏捷方法:
- 强调人的核心作用、迭代开发、客户合作、响应变化。
 - 原则:个体和交互、可工作的软件、客户合作、响应变化。
 - 方法:XP、ASD、FDD、TDD、AD、Lean等。
 
软件开发环境与工具:
- 支持软件工程化开发和维护的软件集合。
 - 分类:按模型、功能、应用范围、开发阶段。
 - 集成机制:平台集成、数据集成、界面集成、控制集成、过程集成。
 
软件过程管理:
- 软件能力成熟度模型(CMM):5个成熟度等级,从初始到优化。
 - 关键过程域(KPA):实现各等级目标的实践领域。
 - 能力成熟度模型集成(CMMI):融合多种模型,提供过程改进的单一集成模型。
 
软件过程评估:
- 基于模型对软件过程的规范评估。
 - 步骤:成立评估小组、填写问卷、分析问卷、现场访问、撰写报告、绘制剖面图。
 
不常见概念
软件开发工具:
软件开发工具分类:需求分析工具、设计工具、编码与排错工具。
 软件维护工具:版本管理工具、文档分析工具、逆向工程工具。
 软件管理和支持工具:项目管理工具、配置管理工具、软件评价工具。
开发工具的选择:
根据功能、易用性、稳健性、硬件要求、性能以及服务和支持等方面来选择。
 考虑最终用户需求和开发人员的偏好。
 没有绝对标准,需针对具体使用环境和开发方法进行评价。
软件过程评估模型
CMM/CMMI: 能力成熟度模型/能力成熟度模型集成,提供5个成熟度等级,从初始级到优化级。
 ISO/IEC 15504(SPICE): 国际标准,定义了软件过程评估的框架和过程能力模型。
 其他模型: 如敏捷模型、RUP等,根据不同的软件开发方法论,可能采用特定的评估模型。
写在最后
以上均为粗看教程的总结,目的不是为了百分之百准确,而是为了过手过脑,有所印象。
但是如有发现谬误,感谢各位随时指出。
– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。
