【知识点详解】
1. 软件工程:软件工程是一门综合性的学科,涉及软件的开发、维护和管理。它包括一系列活动,如需求获取、软件设计、编码、测试和维护,旨在确保软件产品的质量和效率。
2. 软件过程:软件过程是指软件开发的各个阶段和活动,如需求分析、设计、实现、测试和维护。软件过程是软件工程的核心组成部分,规定了软件开发的流程和方法。
3. 需求分析:这是软件开发的第一步,确定软件的功能和非功能需求。功能需求描述软件应做什么,非功能需求则涉及性能、安全性和可维护性等方面。
4. 软件测试:软件测试是在软件发布前对其功能、性能和可靠性的验证过程。它始于需求分析阶段,贯穿整个开发周期,最终在软件测试阶段完成。
5. CMM(Capability Maturity Model):CMM是由卡内基-梅隆大学SEI提出的软件过程成熟度模型,将软件过程分为五个等级,从初始级到已定义级,再到可管理级,最后是优化级。可管理级意味着软件过程的生产率和质量是可度量的。
6. McCall软件质量度量模型:该模型关注软件的三个主要质量维度:产品修改(如可维护性)、产品运行(如可靠性、效率)和产品转移(如可移植性、可重用性)。
7. 软件维护:软件生命周期中最昂贵的阶段通常是维护阶段,因为随着时间的推移,需要修复错误、添加新功能和适应环境变化。
8. 内聚性:内聚性是衡量模块内部元素相关性的指标。时间内聚是指模块内的任务需同时执行,逻辑内聚是基于相似逻辑的内聚,通信内聚是指模块处理同一类数据,而信息内聚是最弱的内聚形式。
9. 软件可维护性:软件的可维护性是其能够被容易地修改、增强和更新的能力。文档、可理解性、可测试性和可修改性都是影响可维护性的因素,其中可修改性是决定性的。
10. 基本控制结构:在编程中,顺序、选择(条件)和循环是构建程序的基本结构,用于实现单入口单出口程序。
11. 信息隐蔽:软件结构设计时遵循信息隐蔽原则,意味着模块内部的实现细节对外部是隐藏的,只通过接口进行通信,以提高软件的稳定性和可维护性。
12. 数据流图(DFD):DFD中的每个加工至少需要一个输入流和一个输出流,以表明数据的处理和流动。
13. 软件维护困难的原因:软件维护困难通常源于开发方法的不足,如缺乏文档、设计不清晰以及初期对需求理解不准确。
14. 动态模型:动态模型描述了对象之间的交互和行为,通常用状态图、序列图或协作图来表示。
15. 快速原型模型:快速原型模型强调快速开发一个可运行的软件版本,以便尽早获得用户反馈和进行调整。
16. 整体与部分关系:汽车与发动机的关系是整体与部分的关系,发动机是汽车的一个组成部分。
17. 用户需求:用户需求描述了用户使用软件产品期望完成的任务,是功能需求的基础。
18. 关键过程域(Key Process Areas, KPA):CMM中的每个关键过程域包含了实现特定目标的一系列关键实践。
19. 软件测试的目的:软件测试是为了发现并修复软件中的错误,确保软件的质量和可靠性。
以上是对软件工程考试中涉及的知识点的详细解析,这些知识点涵盖了软件开发的不同阶段、质量管理模型、软件设计原则以及软件测试的重要性和方法。