1,软件的特征有:
(1)复杂性:软件的底层有许多调用,同时还涉及到函数的嵌套与递归,在动态执行的过程中呈现更为复杂的状态;
(2)一致性:软件不能独立存在,需要依附于一定的环境;同时也需要根据不同的使用环境做出调整,当接口发生变化时,需要做出改变,这些都是需要人为设置的标准;
(3)可变性:用户的需求、使用的环境、更先进的编程技术等等,都在改变着软件的功能和使用情况,因此软件需要不断地发展,完善。例如微信、qq的功能都在不断的丰富
(4)不可见性:软件是一种逻辑实体,不具有空间的形体特征;开发人员可以直接看到程序代码,但是源代码并不是软件本身;软件以机器代码的形式在计算机中运行,用户包括程序员都是看不到软件具体如何执行;
2,软件危机是指计算机软件开发和维护的过程中所遇到的一系列的严重问题;
软件危机的产生原因:(1)客观上,需要分析的问题机理太复杂,软件功能太庞大,用户的需求在不断变化;(2)主观上,人的能力有限,在程序开发的技术上和问题分析的经验上,都不能做到完美;
3,软件工程的核心内容是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可追踪性、可互操作性和满足用户需求的软件产品。
4,软件工程包含的领域有:软件需求、软件设计、软件构建、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件模型方法、软件质量、软件工程职业实践、软件工程经济学。