软件的特点
1、无形的,没有物理形态,只能通过运行状况来了解功能、特性、和质量
2、软件渗透了大量的脑力劳动,人的逻辑思维、智能活动和技术水平是软件产品的关键
3、软件不会像硬件一样老化磨损,但存在缺陷维护和技术更新
4、软件的开发和运行必须依赖于特定的计算机系统环境,对于硬件有依赖性,为了减少依赖,开发中提出了软件的可移植性
5、软件具有可复用性,软件开发出来很容易被复制,从而形成多个副本
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
1、与软件本身的特点有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件;软件样品即是产品,试制过程也就是生产过程。
软件不会因使用时间过长而“老化”或“用坏”;软件具有可运行的行为特性,在写出程序代码并在计算机上试运行之前,软件开发过程的进展情况较难衡量,软件质量也较难评价,因此管理和控制软件开发过程十分困难。
2、来自于软件开发人员的弱点。
其一,软件产品是人的思维结果,因此软件生产水平最终在相当程度上取决于软件人员的教育、训练和经验的积累。
其二,对于大型软件往往需要许多人合作开发,甚至要求软件开发人员深入应用领域的问题研究,这样就需要在用户与软件人员之间以及软件开发人员之间相互通讯,在此过程中难免发生理解的差异,从而导致后续错误的设计或实现。
软件工程的核心思想是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可追踪性、可互操作性和满足用户需求的软件产品。
软件工程学的主要内容是软件开发技术和软件工程管理。 软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。