第一章
1、与计算机硬件相比,计算机软件有哪些特点
一、无法直接观察计算机软件的物理形态,只能通过观察他的实际运行情况来了解他的功能、特性、质量等。二、人们在分析、设计、开发、测试软件产品的过程中,自己在软件产品管理的过程中,渗透了大量的脑力劳动。三、不存在像硬件一样的磨损老化现象,但存在着缺陷维护和技术更新的问题。四、软件的开发和运行必须依赖特定的计算机系统环境。五、具有可复用性。
2、为什么说软件工程的发展可以在一定程度上解决软件危机的各种弊端
因为软件工程的提出是为了解决所带来的各种弊端,具体地讲,软件工程的目标主要包括以下几点:
(1)使软件开发的成本能够控制在预计的合理范围内
(2)使软件产品的各项功能和性能能够满足用户需求
(3)提高软件产品的质量
(4)提高软件产品的可靠性
(5)使生产出来的软件产品易于移植、维护、升级、和使用
(6)使软件产品的开发周期能够控制在预计的合理时间范围内
3、略、书上很清晰
4、如何理解软件生命周期的内在特征
软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最终该产品被市场淘汰的过程。软件周期这个概念从时间的角度将软件的开发和维护的复杂过程分为了若干个阶段,每个阶段都完成特定的相对独立的任务。由于每个阶段的任务相对于总任务难度会大幅度降低,在资源分配、时间把握和项目管理上都会比较容易控制。合理的划分软件生命周期的各个阶段,使各个阶段之间相互区别又相互联系,为每个阶段赋予特定的任务。
5、请对比瀑布模型、原型模型、增量模型和螺旋模型
瀑布模型是出现得比较早的软件开发模型。在这种模型中,各阶段的组织方式就如同瀑布流水一样,逐级下落。开发人员必须在完成前一阶段的任务后,才能开始下一阶段的工作,各个阶段通常是按固定顺序连接的,前一阶段的输出往往就是后一阶段的输入。根据瀑布模型的理论,这种模型具有以下几个特点:
(1)瀑布模型是一种线性的软件开发模型,回溯性很差
(2)瀑布模型是一种基于里程碑的阶段过程模型
(3)瀑布模型强调软件开发过程的阶段性,每个阶段完成特定的任务
瀑布模型适用于具有以下特征的软件开发项目:
(1)在软件开发的过程中,需求不发生或很少发生变化,并且开发人员可以一次性获取全部需求
(2)软件开发人员具有丰富的经验,对软件应用领域很熟悉
(3)软件项目的风险较低,瀑布模型不具有完善的风险控制机制
瀑布模型的优缺点:优点是阶段性强,易于对项目进行管理,缺点是开发过程不灵活,不能适应环境的变化。如果后续阶段中发现前期工作的错误或需求发生了变更,会造成巨大的损失。
原型模型
原型模型是开发人员为了快速而准确地获取需求常采用的方法。在初步获取需求后,开发人员会快速地开发一个原型系统,开发人员可以更直观更全面和更准确地了解用户对待开发系统的各项要求,同时还能挖掘到隐藏需求。如果开发人员对将采用的开发技术把握不大,也可以采用原型模型进行技术上的尝试,以降低后续开发的风险。
原型模型具有以下特点:
(1)原型模型主要用于挖掘需求,或是基于某种技术或开发方法的可行性研究
(2)原型系统通常针对软件开发系统的子功能模块,所以功能相对不完善
(3)由于原型系统功能的局部性以及存在阶段的局部性,在软件开发的实践中,原型模型通常结合其他的软件开发模型共同使用,发挥作用
原型模型适用于具有以下特征的软件开发项目
(1)对现有的软件系统进行产品升级或功能完善
(2)开发人员与用户之间交流受限,需求获取困难
(3)开发人员对将要采取的技术手段不熟悉或者把握性不大
(4)具备快速开发的工具
原型模型的优点是简单和快速,缺点是需要花费额外的成本来构造原型,并且不利于创新。