软件工程复习重点:定义、要素与挑战
需积分: 10 115 浏览量
更新于2024-09-26
收藏 62KB DOC 举报
"该资源是针对软件工程的复习资料,涵盖了软件工程的基础概念、理论、实践以及相关的难点问题。"
在软件工程领域,理解和掌握以下几个关键知识点至关重要:
1. IEEE对软件和软件工程的定义:IEEE(电气和电子工程师协会)定义软件为一组程序、数据及相关文档的集合。软件工程则是一门应用系统化的、规范化的和科学的方法来开发、运行和维护软件的学科,强调质量和效率。
2. 软件工程的三个要素:包括方法、工具和过程。方法是解决问题的技术和策略,工具是支持方法实施的软件或硬件,而过程则是指导整个软件开发的步骤和活动。
3. 软件分类:通常根据功能和用途,软件可以被分为系统软件、应用软件、编程语言等。系统软件包括操作系统、数据库管理系统等;应用软件服务于特定用户群体,如办公软件、图形处理软件;编程语言则是编写其他软件的工具。
4. 软件维护费用高的原因:主要在于需求变化频繁、文档不全、代码质量低等。克服这些困难需要完善的需求管理、良好的文档记录和高质量的编码实践。
5. 系统分析过程涉及的问题:包括需求识别、系统边界确定、功能分析、数据流分析、逻辑结构设计等。
6. 系统分析员的素质:包括技术技能、沟通能力、问题解决能力、业务理解力和团队协作精神。
7. 系统技术评审内容:通常包括需求一致性、功能完备性、性能指标、接口兼容性等。
8. 系统管理评审的关键问题:涉及项目的进度、成本、质量、风险等管理。
9. Vitalari和Dickson的研究揭示了系统分析和设计的困难,如需求模糊、变更频繁、技术挑战等。
10. 软件需求分析的基本原则:确保完整性、一致性、可行性、可验证性和可修改性。
11. 快速原型的优势:有助于早期验证需求、减少风险、提高用户满意度。
12. PIECES模型:包括问题域、界面、环境、构架、客户和扩展,是软件系统分析的一种方法。
13. 科德的面向对象方法四大活动:识别类、定义类接口、实现类、组织类。
14. 面向对象方法论的8个特点:封装、继承、多态、抽象、模块化、动态绑定、信息隐藏和类的层次结构。
15. “困难”或“复杂”的系统:指的是具有高度交互性、变化性和规模性的系统。程序设计的困难可能源于其结构和逻辑,而理解的难度可能源于系统的复杂性。
16. 信息隐蔽与模块独立性:信息隐蔽是每个模块内部的信息对外部模块是不可见的,增强了模块的独立性,降低模块间的耦合。
17. 模块内聚的七种类型:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚,依次从弱到强。
18. 传统软件设计的缺点:如过度设计、灵活性差、难以适应变化等。
19. 面向对象方法论的8个特点包括:对象、类、继承、多态、封装、消息传递、抽象和接口。
20. 软件复用的层次:代码复用、构件复用、设计模式复用、系统复用。复用技术包括库、框架、中间件等。
以上是软件工程复习中的一些核心内容,涵盖了从基本概念到具体实践的多个方面,对于准备考试或深入学习软件工程的人来说是非常宝贵的参考资料。
2009-06-09 上传
2021-10-01 上传
2022-02-12 上传
2022-02-09 上传
2021-03-28 上传
2009-05-08 上传
2022-10-29 上传
2022-05-29 上传
2021-10-28 上传
leibao1204
- 粉丝: 0
- 资源: 1
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析