
《软件工程》(课程代码02333).pdf
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
《软件工程》(课程代码02333)是一门系统介绍软件开发过程、方法及管理原则的专业教材或参考书。本书涵盖了需求分析、设计、实现、测试和维护等关键阶段,旨在帮助读者掌握构建高质量软件系统的技能和知识。适合计算机及相关专业学生学习使用。
### 软件工程知识点梳理
#### 一、软件工程基础概念
- **软件工程**是一种将工程领域的原则应用于软件的开发、运行和维护的方法论。其目标是提高软件产品的质量和生产效率。
#### 二、软件工程的基本结构
1. **描述加工逻辑的外层结构**:
- 包括顺序结构(按序执行)、选择结构(根据条件判断)以及重复结构(循环操作直到满足退出条件)。这些基本类型构成了程序设计的基础。
- 非基本结构如嵌套,则是指在一个基础模式内包含另一个。
2. **可维护软件的主要特性**包括:
- 可理解性:软件的逻辑易于理解和分析;可修改性:能够方便地适应新需求或修复错误;
- 可移植性:在不同硬件和操作系统环境中正常运行的能力。
3. **程序设计语言的特性**:
- 心理特性(如易学性和表达力)与工程特性(支持软件开发实践的能力),而非技术特性,指编程语言实现特定功能的技术能力。
4. **项目进度安排的主要方法**包括:
- 工程网络图:展示任务间的依赖关系;甘特图:表示项目的计划和执行情况;
- 任务资源表:记录所需的各种资源信息。
5. **冗余技术**:
- 结构冗余、信息冗余及时间冗余,通过增加额外组件或数据来提升系统可靠性与可用性。代码重复不属于常见策略。
#### 三、软件生命周期管理
6. **需求追踪工具**用于跟踪数据库管理系统中需求变更对整个系统的潜在影响。
7. **软件测试的目的**:
- 发现错误:通过执行程序找出可能存在的问题;验证正确性:确保符合预期行为,但不能完全证明无误。
8. **软件工程的概念**是为了应对“软件危机”而提出的。它强调了工程原则在解决开发和维护挑战中的重要性。
9. **瀑布模型的特点**:
- 将整个流程划分为若干阶段,并且每个阶段完成后才能进入下一阶段;
- 缺乏灵活性,一旦向前推进就很难返回修改前期工作。
10. **需求分析的问题识别**关注于收集功能、性能及环境等各类需求,但不直接涉及输入输出的具体要求。
#### 四、软件设计与实现
11. **数据流图(DFD)的顶层视图**用于描绘整个系统的最高层次结构,通常仅有一张图表表示全貌。
12. **模块内聚性类型**:
- 功能内聚为最强形式:一个单元只完成单一明确的功能;偶然内聚是最弱形式:各部分之间无关联。
13. **软件维护的考虑因素最早出现在需求分析阶段**,此时需要预先规划未来可能的需求变更和维护工作。
14. **结构化设计方法生成的是模块结构图而非具体算法或单个模块的设计内容**。
15. **测试顺序安排中单元测试优先于组装及有效性测试进行**。
16. 详细设计阶段的任务主要集中在算法与数据结构的规划上,为后续编码提供详尽指导方案。
17. 静态分析方法如人工检查用于识别代码中的语法错误和规范性问题等。
18. Fortran语言主要用于科学计算领域,因其高效的数值运算能力而被广泛使用。
19. 项目开发计划文档应包含概述、实施策略及交付时间表等内容而不包括测试方案的具体细节。
20. 面向对象方法学:
- Booch是早期面向对象技术之一,最初为Ada语言设计的框架体系提供了基础支持。
21. 提升软件质量和可靠性的手段包括容错机制的设计应用等。
22. **可行性研究**通过简化的分析来评估项目的实施可能性和价值性。
23. 系统流程图用于描述现有系统的结构,帮助理解其运行模式及架构设计的改进方向。
24. 描述系统体系结构是系统流程图的主要功能之一,有助于理解和优化软件的整体框架。
25. 详细设计阶段使用的工具不包括数据流图(DFD),后者多在需求分析环节使用。
26. 白盒测试依据程序内部逻辑来制定具体的测试案例和场景。
27. 技术评审是一种提高软件质量的技术活动,通过检查代码与设计方案发现潜在问题并加以解决。
28. 面向对象方法学旨在模拟人类思维模式以提升开发效率及产品质量。
全部评论 (0)


