Software Primer

来源:互联网 发布:unity3d 开发web 编辑:程序博客网 时间:2024/06/04 22:46

        身为计算机专业的学生,对于“软件”的深入了解是一项基本功。最近,本人阅读了“软件工程”的相关书籍,对于“软件”的基本理论也有了一定的认识。本文对“软件”的定义、特性、作用、可靠性和危机等作一个简单的介绍。


        (一) 软件的定义及特性

       1. 软件的定义

        根据传统对计算机软件的定义,软件是计算机系统中与硬件相依存的另一部分,软件包括程序、数据及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。

        也就是说,软件包括3部分:1)能够完成预定功能和性能的可执行的指令(计算机程序);2)使得程序能够适当地操作信息的数据结构(数据);3)描述程序的操作和使用的文档(相关文档)。

       2. 软件的特性

       相对于硬件,软件具有完全不同的特征,包括:1)软件是由开发或工程化而形成的,而不是传统意义上的制造产生的;2)软件不会“磨损”;3)大多数软件是自定的,而不是通过已有的构件组装而来的。

       更具体地,软件包括10个特性:1) 形态特性;2)智能特性;3)开发特性;4)质量特性;5)生产特性;6)管理特性;7)环境特性;8)维护特性;9)废弃特性;10)应用特性。

       其中,形态特性是指软件是无形的、不可见的逻辑实体。质量特性中需要注意的有3个方面:1)软件的需求在软件开发之初常常是不确切的;2)软件测试技术存在不可或缺的局限性;3)已经长期使用或多次反复使用的软件没有发现问题,但这并不意味着今后的使用总不会出现问题。


        (二) 软件的应用

        计算机软件已经成为世界舞台上最为重要的科技领域,商业、科学和工程都离不开软件技术。现在的软件技术具有产品和产品生产载体的双重作用。

        软件的应用主要分为7类:1)系统软件;2)实时软件;3)商业软件;4)工程和科学计算软件;5)嵌入式软件;6)个人计算机软件;7)人工智能软件。

       其中,系统软件是一组为其他程序服务的程序。它具有以下特点:与计算机硬件频繁交互;多用户支持;需要精细调度、资源共享及灵活的进程管理的并发操作;复杂的数据结构;多外部接口。


       (三) 软件可靠性及软件危机

       1. 软件可靠性

    IEEE将软件可靠性定义为:系统在特定环境下,在给定的时间内无故障运行的概率。软件可靠性是对软件在设计、开发以及所预定的环境下具有能力的置信度的一个度量,是衡量软件质量的主要参数之一。

       2. 软件危机

        软件开发周期长、成本高、质量差、维护困难,导致60年代末软件危机的爆发,其突出的实例是IBM公司在1963年—1966年开发的IBM 360机的操作系统。

       软件危机是指在计算机软件开发中所遇到的一系列问题。其发生的原因主要有5个方面:1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制订;2)软件人员与用户的交流存在障碍;3)软件开发过程不规范,缺少方法论和规范的指导;4)随着软件规模的增大,其复杂性往往会呈指数型增长;5)缺少有效的软件评测手段,提交用户的质量差。

 

 

       参考资料

[1] 软件工程。郑人杰,马素霞,麻志毅编著,人民邮电出版社。

[2] 软件测试教程。贺平编著,电子工业出版社。

[3] 软件工程——实践者的研究方法。(美)Roger S. Pressman著,黄柏素,梅宏等译。
原创粉丝点击