软件是计算机程序、规程以及运行计算机系统可能我需要的相关文档和数据。然而,软件的真正含义却不是一个形式的定义所能体现的。按照软件服务对象的范围不同,一般将软件划分为通用软件和定制软件两种类型。其中,由于软件本身具有复杂性、不可见性、不断变化、和现有软件大部分未实现构件化,使得软件开发依然面临着过分依赖人工、软件难以重用、开发大量重复和生产率低下等问题。随着软件的四个重要的阶段性发展。在计算机软件的开发和维护过程中遇到了一系列严重问题,即所谓的软件危机。
为提高软件的质量与生产率,最终实现软件的工业化生产。1968年10月,NATO科学委员会在德国的加尔密斯开会讨论软件危机的问题,Fritz Bauer首次提出了“软件工程”的概念。随后形成更全面的定义:软件工程是1将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即将工程化应用到软件上;2对1中所述方法的研究。软件工程以关注软件质量为目标,由过程、方法和工具三个要素组成。
一个专业成熟发展的重要标志是具备一整套的知识体系。下面我们就一起来了解1998年由SWECC发起研究和指定软件工程知识体系SWEBOK项目。。整个项目分为草人、石人和铁人三个阶段。SWEBOK将软件工程知识分解成若干知识领域及其组成部分,并将其组织成一个多级多层次的体系结构,以此确定软件学科的内容和边界。其中软件知识体系被划分为10个知识域,即软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量。同时软件工程是一门交叉性的工程学科,它将计算机科学、数学、工程和管理学等基本原理应用于软件开发的工程实践中,并借鉴传统工程的原理和方法,以系统的、可控的、有效的方式产生高质量的软件。
职业道德是所有从业人员应当具备的最基本的道德素养,也是这些人员在其职业活动中应当遵循的最基本的行为准则。没有职业道德规范,软件行业难以在社会百业中壮大发展,软件人员也不可能在行业中长久立足。