软件工程复习笔记
### 软件工程复习知识点总结 #### 一、软件危机与软件工程的起源 - **软件危机**:指的是在软件开发与维护过程中所遇到的各种问题。这些问题主要包括质量低下、效率不高以及成本过高,通常被概括为“两低一高”问题。 - **具体表现**: 1. 开发成本和进度预估不准确。 2. 用户对已完成的软件系统满意度不高。 3. 软件质量不稳定。 4. 软件常常难以维护。 5. 缺乏足够的文档资料。 6. 软件成本逐年攀升。 7. 软件开发生产率落后于硬件发展和计算机应用普及的速度。 - **产生原因**: 1. **软件本身的特性**:软件是逻辑实体而非物理实体,这使得其可见性较低、难以测试,并且管理起来较为复杂。此外,大规模软件项目的复杂度随规模增长而成倍增加。 2. **方法论上的不足**:包括忽视需求分析的重要性、将软件开发简单等同于编写代码、轻视后期维护等。 - **软件的特点**: 1. **无形性**:软件是一种看不见摸不着的产品。 2. **易于复制**:软件副本可以轻易大量复制。 3. **劳动密集型**:软件开发高度依赖人力资源。 4. **易于编写但难于理解与修改**:未经良好训练的开发者容易写出难以理解和维护的代码。 5. **易于修改但难以正确修改**:虽然软件易于修改,但由于其复杂性,修改时很难保证不出错。 6. **不易磨损但会逐渐退化**:软件不会因为使用而磨损,但在不断的修改过程中,其设计可能会逐渐退化。 - **消除软件危机的途径**: 1. 正确认识软件。 2. 将软件开发视为一项需要良好组织、严格管理、多方协作的工程项目。 3. 推广使用有效的软件开发技术和方法。 4. 开发和利用更先进的软件开发工具。 #### 二、软件工程的概念与本质 - **软件工程的定义**:是一门指导计算机软件开发和维护的工程学科。它结合了管理技术和最先进的技术方法,以达到高效开发高质量软件的目的。 - **软件工程的目标**:更好、更快、更便宜(Better、Faster、Cheaper,简称BFC)。 - **软件工程的本质特征**: 1. 关注大型程序构建。 2. 控制复杂性是中心议题。 3. 软件需求经常发生变化。 4. 提升开发效率至关重要。 5. 团队合作是成功的关键。 6. 需要有效支持用户。 7. 不同文化背景下的软件开发合作。 - **软件工程的基本原理**: 1. 实行分阶段的生命周期管理。 2. 定期进行阶段评审。 3. 严格执行产品控制。 4. 应用现代编程技术。 5. 结果需清晰可审查。 6. 开发团队应精简高效。 7. 持续改进软件工程实践。 #### 三、软件工程方法学 - **软件工程方法学**:是指在软件生命周期中使用的一整套技术的集合,通常包括分析、设计、编程和测试等多个方面。 - **传统方法学**(结构化方法学):包括软件需求分析(SA)、软件设计(SD)、软件编程(SP)、软件测试(ST)等。 - **面向对象方法学**:包括面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)、面向对象测试(OOT)等。 - **方法学三要素**: 1. 方法:解决如何做的问题。 2. 工具:提供自动化或半自动化的支持环境。 3. 过程:定义工作的流程、阶段划分、产品验收标准等。 #### 四、软件过程 - **软件过程定义**:ISO9000将其定义为一组相互关联的资源和活动,用于将输入转化为输出。 - **软件生命周期**:分为软件定义、软件开发和运行维护三个主要阶段,每个阶段又可细分为多个子阶段。 - **定义阶段**:确定项目需求、可行性研究等。 - **开发阶段**:包括需求分析、设计、编码、测试等环节。 - **运行维护阶段**:涉及部署、运行监控、故障修复及后续升级等。 通过以上内容的学习与掌握,有助于深入理解软件工程的基本概念、理论基础以及实践方法,从而提高软件开发的质量和效率。
剩余18页未读,继续阅读
- 狙神哥哥2019-02-22谢谢,找了很久了
- 粉丝: 162
- 资源: 42
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 自动化应用驱动的容器弹性管理平台解决方案
- 各种排序算法 Python 实现的源代码
- BlurAdmin 是一款使用 AngularJs + Bootstrap实现的单页管理端模版,视觉冲击极强的管理后台,各种动画效果
- 基于JSP+Servlet的网上书店系统源代码项目包含全套技术资料.zip
- GGJGJGJGGDGGDGG
- 基于SpringBoot的毕业设计选题系统源代码项目包含全套技术资料.zip
- Springboot + mybatis-plus + layui 实现的博客系统源代码全套技术资料.zip
- 智慧农场小程序源代码全套技术资料.zip
- 大数据技术毕业设计源代码全套技术资料.zip
- renren-ui-nodejs安装及环境配置