今天,来自教科书的关于软件的定义大多是:(1)指令的集合(计算机程序),通过执行这些指令可以满足预期的特性、功能和性能需求;(2)数据结构,使得程序可以合理利用信息;(3)软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序的操作和使用。
当然,还有更完整的解释。
但是一个非常形式化的定义可能并不能显著改善其可理解性,为了更好地理解“软件”的含义,有必要将软件和其他人工产品的特点加以区分。软件是逻辑的而非物理的系统元素。因此,软件和硬件具有完全不同的特性:
(1)软件是设计开发的,而不是传统意义上生产制造的;
(2)软件不会磨损;
(3)虽然整个工业向着基于构建的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的;
现如今,计算机软件可分为七大类:系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
”工程不仅仅是一个学科或知识体,它是一个动词,一个行为动词,一个解决问题的方法“——Scott Whitmire
尽管有很多作者都给出了各自软件工程的定义,但Fritz Bauer在该主题会议上给出的定义仍是进一步 开展讨论的基础:
(软件工程是)建立和使用一套合理的工程原则,以便经济地获得可靠的、可以在实际机器上高效运行的软件。
你也许试图在这个定义上增加点什么。它没有提到软件质量的技术层面,也没有直接谈到用户满意度或按时交付产品的要求,它忽略了测量和度量的重要性,它也没有阐明有效的软件过程的重要性。但Bauer的定义给我们提供了一个基线。什么是可以应用到计算机软件开发中的“合理工程原则”?我们如何“经许地”获得“可靠的"软件?如何构建程序使其能够不是在一个而是在多 个不同的“实际机器”上都能“高效运行”?这些都是对软件工程师提出进一步挑战的问题。IEEE给出了一个更全面的软件工程的定义:软件工程是: (1) 将系统化的、规范的、可量化的方法应用于软件的开发、适行和雏护。即将工程化方法虚用于款件. (2) 在(1) 中所述方法的研究作者认为我们需要规范,也需要可适应性和灵活性。
软件工程是一种层次化技术。任何工程方法(包括软件工程)必须构建在质量承诺的基础上。全面质量管理、六西格玛和类似的理念促进李不断的过程改进文化,正是这种文化,最终引导人们开发更有效的软件工程方法。
软件工程的基础是过程层,软件过程将各个技术层次结合在一起,使的合理及时的开发计算机软件成为可能。过程定义了一个框架,构建该框架是有效实施软件工程技术必不可少的。软件过程构成了软件项目控制管理的基础,建立了工作环境以便于应用技术方法、提交工作产品、建立里程碑、保证质量及正确管理变更。
软件工程包含过程、方法和工具,这些工具使得快速构建高质量的复杂的计算机系统成为可能。软件过程包括五个框架活动:沟通、策划、建模、构建和部署,这些活动适用于所有软件项目。软件工程实践遵照一组核心原则,是一个解决问题的活动。
读软件工程实践者的研究方法
最新推荐文章于 2023-10-22 22:22:30 发布