《软件工程》期末复习重点整理
版权申诉
72 浏览量
更新于2024-07-09
收藏 504KB PDF 举报
"《软件工程》期末复习资料收集.pdf"
《软件工程》是一门研究软件开发过程、方法和技术的学科,对于理解和掌握软件开发的整个生命周期至关重要。这份复习资料涵盖了多个关键知识点,以下是详细的解释:
1. 软件发展的三个阶段:
- 第一阶段(1946-1956年):此阶段主要关注单个程序的开发,高级语言尚未普及。
- 第二阶段(1956-1968年):高级编程语言的出现使得软件开发变得更加高效,但仍然存在管理问题。
- 第三阶段(1968年以来):软件工程的概念诞生,引入了系统化和规范化的开发方法。
2. 软件工程的原则:
- 基于需求驱动,强调需求分析的重要性。
- 强调软件开发的可维护性和可扩展性。
- 采用迭代和增量的开发方式。
- 注重文档编写,确保信息传递的准确性。
- 强调团队协作和质量管理。
3. 瀑布模型:
- 特征:线性、顺序的开发流程,每个阶段完成后才能进入下一个阶段。
- 优点:明确的阶段划分,适合需求稳定且变化小的项目。
- 缺点:缺乏灵活性,对需求变更适应性差。
4. 原型模型:
- 处于需求分析阶段,用于快速构建和验证需求。
- 特点:快速、低成本,能直观展示软件功能。
- 适用范围:适用于需求不明确或需要用户反馈的项目。
5. 需求工程:
- 包括需求获取、分析、规格说明、验证等阶段。
- 需求获取的结果是初步的需求描述,最终结果是需求规格说明书。
6. 软件设计:
- 任务包括架构设计、模块设计、接口设计等。
- 设计原则:模块化、抽象、信息隐藏、低耦合高内聚等。
7. 内聚和耦合:
- 内聚:模块内部元素间的关联程度,最高为功能内聚,最低为偶然内聚。
- 耦合:模块间相互依赖的程度,最高为内容耦合,最低为数据耦合。
8. 结构化分析:
- 过程包括了解业务、建立数据流图、编写数据字典等。
9. 系统建模:
- 通常包括用例建模、对象建模、状态机建模等,从不同角度理解系统。
10. 人机界面:
- 包括图形用户界面、命令行界面等多种风格。
- 黄金原则:用户界面应直观、一致、灵活、高效。
11. 程序设计语言:
- 包括语法(语言规则)、语义(执行规则)和语用(上下文意义)。
12. 测试策略:
- 单元测试、集成测试、系统测试、验收测试等,对应不同开发阶段。
13. 逻辑覆盖:
- 最强覆盖是路径覆盖,最弱覆盖是语句覆盖。
14. 软件维护:
- 分为结构化维护(有计划的改进)和非结构化维护(应对意外问题)。
15. 软件度量:
- 包括软件复杂性、代码质量、缺陷率等。
16. 软件质量要素:
- 功能性、可靠性、效率、易用性、可维护性、可移植性等。
17. 程序设计小组的组织形式:
- 可以是金字塔式、矩阵式、敏捷团队等。
18. 软件质量管理:
- 关注过程质量、产品质量、团队能力等,以确保高质量软件。
这些知识点涵盖了软件工程的主要方面,包括软件开发的历史、方法、设计原则、测试策略以及质量管理,对于准备期末考试或深入理解软件工程实践都非常有帮助。
2021-11-02 上传
2021-06-25 上传
2021-10-01 上传
2021-10-01 上传
2021-11-02 上传
2022-11-29 上传
hyj15659071652
- 粉丝: 0
- 资源: 7万+
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫