前言
今年报考了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等,根据不同的软件开发方法论,可能采用特定的评估模型。
写在最后
以上均为粗看教程的总结,目的不是为了百分之百准确,而是为了过手过脑,有所印象。
但是如有发现谬误,感谢各位随时指出。
– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。