1. 与计算机硬件相比,计算机软件有哪些特点?
- 计算机硬件是有形的设备,具有明显的可见性。但是人们却不能直接观察计算机软件的物理形态,只能通过他的实际运行情况来了解他的功能,特性和质量。
- 人们在分析,设计,开发,测试软件产品的过程中,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动,人类的逻辑思维和智力活动和技术水平是生产软件产品的关键。
- 计算机软件不存在像硬件一样的磨损和老化现象,他不会受引起计算机硬件老化的环境因素的影响,但是软件却存在着缺陷维护和技术更新的问题。
- 软件开发和运行必须依赖特定的计算机系统环境。
- 软件具有可复用性
2. 为什么说软件工程的发展在一定程度上解决了软件危机的各种弊端?
因为软件工程提出是为了解决软件危机所带来的各种弊端。具体的讲,软件工程的目标主要包括以下几点。
- 使软件的开发成本控制在预计的合理范围之内。
- 使软件产品的各项功能和性能能够满足用户需求。
- 提高软件产品的质量。
- 提高软件产品的可靠性。
- 使生产出来的软件产品易于移植,维护,升级和使用。
- 使软件的开发周期能够控制在预计的合理时间范围内。
3. 简述软件工程的基本原则
1.== 将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理。软件开发的生命周期可以划分为可行性研究,需求分析,软件设计,软件实现,软件测试,产品验收和交付手段。
2. 坚持阶段评审制度,以确保软件产品的质量。
3. 实施严格的产品控制,以适应软件规格的变更。在软件开发过程中,用户需求很可能不断发生变化。
4. 采用现代程序设计技术==。
5. 开发出来的软件产品应该能够清楚地被审查。
6. 合理的安排开发软件小组人员,并且开发小组人员要小而精。
7. 不断地改进软件工程实践。
4. 如何理解软件生命周期的内在特征?
答:软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最终该产品被市场淘汰的全过程。软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。由于每个阶段的任务相对于总任务难度会大幅度降低,在资源分配、时间把握和项目管理上都会比较容易控制。合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。
.
5. 请对比瀑布模型,原型模型,增量模型和螺旋模型
瀑布模型是出现得比较早的软件开发模型。在这种模型中,各阶段之间的组织方式就如同瀑布流水一样,逐级下落。开发人员必须在完成前一阶段的任务后,才能开始下一阶段的工作,各个阶段之间通常是按固定顺序连接的,前一-阶段的输出往往就是后- -阶段的输入。
根据瀑布模型的理论,这种模型具有以下几个特点。
(1)瀑布模型是一种线性的软件开发模型,回溯性很差。
(2)瀑布模型是一种基于里程碑的阶段过程模型。
(3)瀑布模型强调软件开发过程的阶段性,每个阶段完成特定的任务。瀑布模型适用于具有以下特征的软件开发项目。
1) 在软件开发的过程中,需求不发生或很少发生变化,并且开发人员可以一次性获取到全部需求
2) 软件开发人员具有==丰富的经验,对软件应用领域很熟悉。
3)软件项目的风险较低。 瀑布模型不具有完善的风险控制机制。
优缺点:
瀑布模型的优点是阶段性强,易于对项目进行管理,缺点是开发过程不灵活,不能适应环境的变化。如果后续阶段中发现前期工作的错误或需求发生了变更,会造成巨大的损失。
原型模型是开发人员为了快速而准确地获取需求经常采用的方法。在初步获取需求后,开发人员会快速地开发一个原型系统。通过对原型系统进行模拟操作,开发人员可以更直观、更全面和更准确地了解用户对待开发系统的各项要求,同时还能挖掘到隐藏的需求。如果开发人员对将采用的开发技术把握不大,也可以采用原型模型进行技术上的尝试,以降低后续开发的风险。原型模型具有以下特点。
(1)原型模型主要用于挖掘需求,或是进行某种技术或开发方法的可行性研究。
(2)原型系统通常针对软件 开发系统的子功能模块,所以功能相对不完善。
(3)由于原型系统功能的局部性以及存在阶段的局部性,在软件开发的实践中,原型模型通常结合其他的软件开发模型共同使用,发挥作用。
原型模型适用于具有以下特征的软件开发项目。
(I)对现有的软件系统进行产品升级或功能完善。
(2)开发人员与用户之间交流受限,需求获取困难。
(3)开发人员对将要采用的技术手段不熟悉或把握性不大。
(4)具备快速开发的工具。
优缺点
原型模型的优点是简单和快速,缺点是需要花费一些额外的成本来构造原型,并且不利于创新。
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。增量模型的最大特点就是将待开发的软件系统模块化和组件化。基于这个特点,增量模型具有以下优点。
(1)将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。
(2)以组件为单位进行开发降低了软件开发的风险。-一个开发周期内的错误不会影响到整个软件系统。
(3)开发顺序灵活。
增量模型的缺点是要求待开发的软件系统可以被模块化。如果待开发的软件系统很难被模块化,那么将会给增量开发带来很多麻烦。
增量模型适用于具有以下特征的软件开发项目。
(1)软件产品可以分批次地进行交付。
(2)待开发的软件系统能够被模块化。
(3)软件开发人员对应用领域不熟悉,难以一-次性地进行系统开发。
(4)项目管理人员把握全局的水平较高。
螺旋模型是一种用于风险较大的大型软件项目开发的过程模型。它把开发过程分为制定计划、风险分析、实施工程和客户评估4种活动。制定计划就是要确定软件系统的目标,了 解各种资源限制,并选定合适的开发方案。风险分析旨在对所选方案进行评价,识别潜在的风险,并制定消除风险的机制。实施工程的活动中渗透了瀑布模型的各个阶段,开发人员对下一版本的软件产品进行开发和验证。客户评估是获取客户意见的重要活动。
螺旋模型适应于风险较大的大型软件项目的开发。它的优点是将风险分析扩展到各个阶段中,大幅度降低了软件开发的风险。但是这种模型的控制和管理较为复杂,可操作性不强,对项目管理人员的要求较高。
6. 在统一软件开发过程模型中,核心工作流程包括哪些?
核心工作流程有业务建模,需求分析,分析设计,实现,测试和部署