软件工程发展趋势

注册

 

发新话题 回复该主题

软件工程原理沈备军编著学习笔记之 [复制链接]

1#
北京中科皮肤医院好不好 http://www.xftobacco.com/

复习重点

软件的金三角是重点,金三角有什么构成,它们之间是如何影响的?软件危机的原因也是期末考试考过的。

软件的定义

软件是计算机系统中与硬件相互依存的另一部分,由程序、相关数据及其说明文档组成。

软件工程的金三角

软件工程的内容就是一个金三角,其中人、技术、管理各占一角,过程将三者紧密联系起来,人、技术、管理和过程组成了软件工程的核心内容,它们相互作用和相互依赖,缺一不可。其中,人的因素是最重要的。

1.人

人是完成软件开发和维护的主体,他们将贯穿整个软件生命周期,提供资金,进行规划、开发、管理、测试、使用、维护,或从中受益。所有软件工程中的技术、管理和过程都需要通过人来执行,人是软件组织中最重要的资产。

2.技术

技术提供了开发和维护软件在技术上需要“如何做”的方法。

软件工程的核心技术:

系统工程

软件需求

软件设计

编码

软件测试

软件维护

3.管理软件开发是一项工程,具有高度的组织管理性。软件工程管理分为软件工程管理、软件质量管理、软件配置管理。

4.过程

过程是将人、技术、管理结合在一起的凝聚力,是产品成本、进度和质量的主要决定因素。软件过程的核心知识,包括过程的实施、变更、定义、评估、度量和支撑工具。

软件危机的定义

虽然软件技术和产业发展的速度大大超过了大多数其他行业,但软件开发仍面临许多问题,如开发的软件不符合应用的需要,错误百出,可靠性极差,使用不方便,开发项目常不能按时交货,成本大大超过原来的预算等,这种现象被人们称为“软件危机”。

软件危机的特点

软件危机主要表现在以下方面:

(1)对软件开发成本和进度的估计常常不准确。开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见。

(2)用户对“已完成”的系统不满意的现象经常发生。

(3)软件产品的质量往往无法保证,缺陷很多,补丁一个接一个地打。

(4)软件的可维护程度非常低。

(5)软件通常没有适当的文档资料。

(6)软件的成本不断提高。

(7)软件开发生产率的提高赶不上硬件的发展和人们需求的增长。

软件危机的原因

试从软件的特点出发分析软件危机产生的原因。

软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必须通过观察、分析、思考和判断才能了解它的功能和性能。

软件对硬件和环境有着不同程度的依赖性,这导致了软件升级和移植的问题。计算机硬件和支撑环境不断升级,为了适应运行环境的变化,软件也需要不断维护,并且维护的成本通常比开发成本高许多。

软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就是为应用“量身订做”软件。长期以来,软件给人的感觉是修改几条指令很简单,客户总是强调软件要适应自己的业务需求。因此,软件产品大多是为客户“订做”的,通用性差。

软件涉及人类社会的各行各业,常常涉及一些行业知识,这对软件工程师提出了很高的要求。

软件是与文学艺术作品相似的精神作品,与体力劳动相比,精神活动过程的特点是“不可见性”,这大大增加了组织管理上的困难。

控制软件开发的复杂性

控制软件开发的复杂性有3个基本方法:抽象、分解和迭代。

1.抽象

抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。

2.分解

分解是指把一个复杂的问题分解成若干个简单的问题,然后逐个解决。

3.迭代

迭代是指反复、循环的意思。在正式解决问题前,先做试验,以取得经验。如果问题很复杂,则再做试验,取得更多经验,直到获得足够的经验能够进行正确的处理。

分享 转发
TOP
发新话题 回复该主题