如何定义软件工程?
- 将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化的方法应用于软件。
- 软件工程包括 过程、管理和构建软件的方法和工具。
*什么是软件过程?
- 软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。
五个最基本的过程框架活动是什么?
- 沟通,策划,建模,构建,部署
什么是过程流
过程流描述了在执行顺序和执行时间上如何组织框架中的活动、动作和任务。
- 线性过程流
- 迭代过程流
- 演化过程流
- 并行过程流
什么是过程模式
过程模式描述了软件工程工作中遇到的过程相关的问题,明确了问题环境并给出了针对该问题的一种或几种可证明的解决方案。
瀑布模型的优缺点
优点:
- 为项目提供了按阶段划分的检查点。
- 当前一阶段完成后,你只需要去关注后续阶段。
- 可在迭代模型中应用瀑布模型。
缺点:
- 在项目各个阶段之间极少有反馈。
- 只有在项目生命周期的后期才能看到结果。
- 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
*瀑布模型的特点?
- 从上一项开发活动接受其成果作为本次活动的输入。
- 利用这一输入,实施本次活动应完成的工作内容。
- 给出本次活动的工作成果,作为输出传给下一项开发活动。
- 对本次活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前项的活动。尽量减少多个阶段间的反复。以相对来说较小的费用来开发软件。
为什么瀑布模型有时候会失效?
- 实际的项目很少遵守瀑布模型提出的顺序。
- 客户通常难以清楚地描述所有的需求。
- 客户必须要有耐心,因为只有在项目接近尾声的时候,他们才能得到可执行程序。
*增量模型的特点:
- 以组件为单位进行开发降低了软件开发的风险。
- 将待开发的软件系统模块化和组件化。
- 开发顺序灵活。
*演化模型的特点:
在获取了一组基本需求后,通过快速分析,构造出该软件的一个初始版本,称为原型,然后根据用户在试用原型的过程中提出的反馈对原型进行改进,获得原型新版本。演化模型采用迭代的思想,渐进的开发、逐步完整软件版本。
*统一过程模型的特点:
这里是引用
过程评估与CMM/CMMI的基本概念
CMM是指“能力成熟度模型”,它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
CMMI认证是由美国软件工程学会制定的一套专门针对软件产品的质量管理和质量保证标准.CMMI 即能力成熟度模型集成.
*敏捷宣言
- *定义: 也叫做敏捷软件开发宣言,正式宣布了对四种核心价值和十二条原则,可以指导迭代的以人为中心的软件开发方法。
- 内容:
- 价值观:
- 个体和互动 高于 流程和工具
- 工作的软件 高于 详尽的文档
- 客户合作 高于 合同谈判
- 响应变化 高于 遵循计划
敏捷过程的特点
- 敏捷开发的过程有着更强的适应性而不是预设性,从敏捷宣言的第四条响应变化高于预设计划便可以看出来。
- 敏捷开发的过程中,更加的注重人的因素。
- 在敏捷开发的过程中,整个项目是测试驱动的而不是文档驱动的。
需求工程
- 定义: 是指致力于不断理解需求的大量任务和技术。
从软件角度来看,需求工程是一个软件工程动力,开始于沟通并持续到建模活动。
需求工程的任务
起始、获取、细化、协商、规格说明、确认和管理
- 在软件过程中,技术工作的层次包括活动,活动由动作构成,动作由任务构成。