首页 理论教育 软件工程:软件特性与功能

软件工程:软件特性与功能

时间:2023-11-06 理论教育 版权反馈
【摘要】:软件固有的特性·复杂性。软件与计算机硬件的这种密切相关性与依赖性,是一般产品所没有的特性。为了减少这种依赖性,在软件开发中提出了软件的可移植性问题。软件生产特性·软件开发特性。·软件维护特性。首先,软件投入运行后,总会存在缺陷甚至暴露出潜伏的错误,需要进行“纠错性维护”;其次,用户可能要求完善软件性能,对软件产品进行修改,进行“完善性维护”。

软件工程:软件特性与功能

软件是计算机系统的思维中枢,是软件产业的核心。作为信息技术的灵魂——计算机软件,在现代社会中起着极其重要的作用。

1.软件

计算机软件是由计算机程序的发展而形成的一个概念。它是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。

程序是按事先设计的功能和性能要求执行的语句序列。数据是程序所处理信息的数据结构。文档则是与程序开发、维护和使用相关的各种图文资料,如各种规格说明书、设计说明书、用户手册等。在文档中记录着软件开发的活动和阶段成果。

2.软件的特点

软件是一种逻辑产品而不是实物产品,软件功能的发挥依赖于硬件和软件的运行环境,没有计算机硬件的支持,软件毫无实用价值。若要对软件有一个全面而正确的理解,我们应从软件的本质、软件的生产等方面剖析软件的特征。

(1)软件固有的特性

·复杂性。软件是一个庞大的逻辑系统。一方面在软件中要客观地体现人类社会的事务,反映业务流程的自然规律;另一方面在软件中还要集成多种多样的功能,以满足用户在激烈的竞争中对大量信息及时处理、传输、存储等方面的需求,这就使得软件变得十分复杂。(www.xing528.com)

·抽象性。软件是人们经过大脑思维后加工出来的产品,一般寄生在内存、磁盘、光盘、硬盘载体上,我们无法观察到它的具体形态,这就导致了软件开发不仅工作量难以估计,进度难以控制,而且质量也难以把握。

·依赖性。软件必须和运行软件的机器(硬件)保持一致,软件的开发和运行往往受到计算机硬件的限制,对计算机系统有着不同程度的依赖性。软件与计算机硬件的这种密切相关性与依赖性,是一般产品所没有的特性。为了减少这种依赖性,在软件开发中提出了软件的可移植性问题。

·软件使用特性。软件的价值在于应用。软件产品不会因多次反复使用而磨损老化,一个久经考验的优质软件,可以长期使用。由于用户在选择新机型时,通常提出兼容性要求,所以一个成熟的软件可以在不同型号的计算机上运行。

(2)软件生产特性

·软件开发特性。由于软件固有的特性,使得软件的开发不仅具有技术复杂性,还有管理复杂性。技术复杂性体现在软件提供的功能比一般硬件产品提供的功能多,而且功能的实现具有多样性,需要在各种实现中做出选择,更有实现算法上的优化带来的不同,而实现上的差异会带来使用上的差别。管理上的复杂性表现在:第一,软件产品的能见度低(包括如何使用文档表示的概念能见度),要看到软件开发进度比看到有形产品的进度困难得多;第二,软件结构的合理性差,结构不合理使软件管理复杂性随软件规模增大而呈指数增长。因此,领导一个庞大人员的项目组织进行规模化生产并非易事,软件开发比硬件开发更依赖于开发人员的团队精神、智力和对开发人员的组织与管理。

·软件产品形式的特性。软件产品的设计成本高昂而生产成本极低。硬件产品试制成功之后,批量生产需要建设生产线,投入大量的人力、物力和资金,生产过程中还要对产品进行质量控制,对每件产品进行严格的检验。然而,软件是把人的知识与技术转化为信息的逻辑产品,开发成功之后,只需对原版软件进行复制即可,大量人力、物力、资金的投入和质量控制、软件产品检验都是在软件开发中进行的。由于软件的复制非常容易,软件的知识产权保护就显得极为重要。

·软件维护特性。软件在运行过程中的维护工作比硬件复杂得多。首先,软件投入运行后,总会存在缺陷甚至暴露出潜伏错误,需要进行“纠错性维护”;其次,用户可能要求完善软件性能,对软件产品进行修改,进行“完善性维护”。当支撑软件产品运行的硬件或软件环境改变时,也需要对软件产品进行修改,进行“适应性维护”。软件的缺陷或错误属于逻辑性的,因此不需要更换某种备件,而是修改程序,纠正逻辑缺陷,改正错误,提高性能,增加适应性。当软件产品规模庞大、内部的逻辑关系复杂时,经常会发生纠正一个错误而产生新的错误的情况,因此,软件产品的维护要比硬件产品的维护工作量大而且复杂。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈