1.什么是软件?软件有什么特点? 软件分类?
计算机软件--计算机系统中的程序、数据及其文档的统称。


2.软件发展的3个阶段
(1)程序设计阶段;(2)程序系统阶段;(3)软件工程阶段。
3.什么是软件危机?为什么会出现软件危机?
(1)软件危机是在计算机软件的开发和维护过程中所遇到的一系列严重问题。
(2)与软件本身特点有关;软件开发与维护的方法不正确有关。
4.消除软件危机的途径
(1)对软件有正确认识;(2)软件开发规范化。
5.什么是软件工程?
软件工程是指导计算机软件开发和维护的一门工程学科。
6.软件工程的本质特性

7.软件工程的目标

8.软件工程的基本原理(7条)

9.软件工程三要素
过程、方法、工具。
10.什么是软件生命周期?分为哪些阶段?每个阶段的主要工作是什么?
(1)软件生命周期:指软件产品从规划、提出、实现、使用维护到停止使用退役的过程。
(2)由软件定义、软件开发、运行维护3个时期组成。
①软件定义时期包括:问题定义、可行性研究、需求分析 3个阶段;
②软件开发时期包括:总体设计、详细设计、编码和单元测试、综合测试 4个阶段;
③软件维护时期包括:软件运行和软件维护阶段。
(3)
11.什么是软件过程? 软件过程中有哪些通用的框架活动(过程模型)?
(1)软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。是研究软件开发的方法论,规范软件开发的活动集合和活动顺序。 软件过程描述为了开发出客户需要的软件,什么人(who)、在什么时候(when)、做什么事(what)以及怎样(how)做这些事以实现某一个特定的具体目标。
(2)
①瀑布模型一直是唯一被广泛采用的生命周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。传统的瀑布模型过于理想化了。实际的瀑布模型是带"反馈环"的。


优缺点和适用范围:

②快速原型模型是不带反馈环的,这正是这种过程模型的主要优点:软件产品的开发基本上是线性顺序进行的。


③增量模型:把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。后续每个增量可按快速原型法进行。


④螺旋模型:使用原型降低风险,可以看做是增加了风险分析过程的快速原型模型。


⑤喷泉模型:体现面向对象软件开发过程迭代和无缝的特性。用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。
