软件工作(Software Engineering,简称SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

软件工程涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

软件工程的目标:在给定的成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。下面一一介绍这些概念。

1、可修改性(Modifiable)。容许对系统进行修改而不增加原系统的复杂性。它支持软件的调试和维护,是一个难以达到的目标。

2、有效性(Efficiency)。软件系统能最有效地利用计算机的时间资源和空间资源。各种计算机软件无不将系统的时空开销作为衡量软件质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性方面会发生矛盾,这时不得不牺牲时间效率换取空间有效性或牺牲空间有效性换取时间有效性。时空折衷是经常出现的。有经验的软件设计人员会巧妙地利用折衷概念,在具体的物理环境中实现自己的设计和满足用户的需求。

3、可靠性(Reliability)。能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。对于实时嵌入式计算机系统,可靠性是一个非常重要的目标。因为软件要实时地控制一个物理过程,如宇宙飞船的导航、核电站的运行等等。如果可靠性得不到保证,一旦出现问题可能是灾难性的,后果将不堪设想。因此在软件开发、编码和测试过程中,必须将可靠性放在重要地位。

4、可理解性(understandability)。系统具有情形的结构,能直接反映问题的需求。可理解性有助于控制系统的复杂性,并支持软件的维护、移植和重用。

参考网站:

1.互动百科:http://www.hudong.com/wiki/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B