软件与软件工程

137 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

一、软件的概念及特点

软件的概念

基于我的理解软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。

软件的特点

(1)软件是一种逻辑实体,具有抽象性而不具有物理性 (2)软件的生产和硬件不同 (3)软件产品不会磨损 (4)开发和运行受计算机系统的限制 (5)未完全摆脱手工艺的生产方式,计算机辅助开发工具帮助有限 (6)软件本身的复杂性 (7)软件成本相当昂贵,主要是脑力劳动成本

二、软件的分类

软件各式各样,在我们的生活中处处可见,但软件究竟是如何划分的我们并不太清楚,我在不同方面进行归纳总结。

(1)按照功能的不同,软件可以分为系统软件,支撑软件和应用软件3类。

(2)基于规模的不同,软件可以分为微型,小型,中型,大型和超大型软件。

(3)根据软件服务对象的不同,软件还可以分为通用软件和指定软件。

(4)按照工作方式的不同,计算机软件还可以划分为实时软件,分时软件,交互式软件和批处理软件。

软件的分类示意图如下图所示:

E703DB656FC3E09F7F9BD0FC67B4478D.jpg

三、软件危机

软件危机的表现及原因

软件危机的表现

什么是软件危机?怎样判断软件危机?软件危机是怎样表现的,如下是我通过学习与思考总结出来的几条内容:

(1)软件开发没有真正的计划性,对软件开发进度和软件开发成本的估计常常很不准确,计划的制定带有很大的盲目因素。

(2)对于软件需求信息的获取常常不充分,软件产品往往不能真正地满足用户的实际需求。

(3)缺乏良好的软件质量评测手段,从而导致软件产品的质量常常得不到保证。

(4)对于软件的可理解性、可维护性认识不够;软件的可复用性、可维护性不如人意。

(5)软件开发过程没有实现“规范化”,缺乏必要的文档资料或者文档资料不合格、不准确,难以进行专业维护。

(6)软件开发的人力成本持续上升。

(7)缺乏自动化的软件开发技术,软件开发的生产率依然低下,远远满足不了急剧增长的软件需求。

软件危机的原因

在以往软件开发过程中出现的问题进行总结,我们会发现软件危机出现的原因有很多,包含各种方面的原因,例如:

(1)软件本身独有的特点确实给开发和维护带来了困难

(2)软件开发和维护过程不规范

(3)缺乏软件开发的经验和有关软件开发数据的积累

(4)轻视,人们在制定计划时总会有一些天马行空的想法和要求,轻视是一个最大的错误。

(5)忽视软件需求分析的重要性、忽视软件的可理解性、文档不完备、轻视软件的可维护性、过分强调编码技巧等等方面。

(6)用户与开发人员的沟通问题,从而技术人员获取的需求不够全面。

软件危机的启示

通过上述对于软件危机的介绍和理解,我们可以得到如下启示:

(1)软件产品是复杂的人造系统,具有复杂性、不可见性和易变性,难以处理。

(2)个人或小组在开发小型软件时使用到的非常有效的编程技术的过程,在开发大型、复杂系统时难以发挥同样的作用。

(3)从本质上讲,软件开发的创造性成分很大,发挥的余地也很大,很接近于艺术。它介于艺术与工程之间的某一点,并逐步向工程一端漂移。

(4)计算机和软件技术的快速发展,提高了用户对软件的期望,促进了软件产品的演化,为软件产品提出了新的、更多的需求,难以在可接受的开发进度内保证软件的质量。

(5)几乎所有的软件项目都是新的,而且是不断变化的。项目需求在开发过程中会发生变化,而且很多原来预想不到的问题也会出现,对设计和实现手段进行适当的调整是不可避免的。