西门子PLC模块CPU226CN中央控制单元
同努力,所以仅仅建立在可得到特定人员上的成功不能为全组织的生产和质量的长期提高打下基础,必须在建立有效的软件如管理工程实践和管理实践的基础设施方面,坚持不懈地努力,才能不断改进,才能持续地成功。
软件质量,乃至于任何产品质量,都是一个很复杂的事物性质和行为。产品质量,包括软件质量,是人们实践产物的属性和行为,是可以认识、可以科学地描述的。为了解决软件危机,既要有技术措施(方法和工具),又要有先进的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。1.2 软件开发工程化
软件作为人类纯智力的劳动成果,和其他科学、技术、文学、艺术一样是人类共享的社会财富。但与文学艺术这类纯精神产品不同的是,它要面向社会发展的方方面面,它的研制开发工作就必须从用户的要求和市场的需求出发。能否得到用户的欢迎,能否取得一定的市场份额,将取决于软件本身的功能、性能、可靠性、价格以及扩充能力等。软件产品的商品化是实现上述目标的必由之路。传统的“艺术创作”式的方式,极不适应提供低价格高品质软件产品的商品化需求。为此,人们将借鉴其他科技产品商品化的路子,提出软件产品的研制开发与生产必须工程化、标准化。1.2.1 软件工程的定义
1968年“软件工程”这一名称被首次提出。软件工程的目标简而言之就是要使开发的软件产品具有可靠性、有效性、易维护性和可理解性。实现这一目标的软件工程原理就是:必须采用一种有效的方法和技术来降低开发活动的复杂性。
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构分别给出了自己认可的定义:
BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护
些程序所必需的相关文件资料。
IEEE在软件工程术语汇编中的定义:①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究。
FritzBauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
此外,《计算机科学技术百科全书》中,软件工程是性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。1.2.2 软件开发的发展过程
软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。
1.程序设计阶段
程序设计阶段出现在1946年至1955年。此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。
2.软件设计阶段
软件设计阶段出现在1956年至1970年。此阶段的特点是:硬件环境相对稳定,出现了“
件作坊”的开发组织形式。开始广泛使用产品软件(可购买),从而建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,**编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。
3.软件工程阶段
自1970年起,软件开发进入了软件工程阶段。由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件开发进入了软件工程时代。此阶段的特点是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;和代软件技术——结构化程序设计在数值计算领域取得优异成绩;第二代软件技术——软件测试技术、方法、原理用于软件生产过程;第三代软件技术——处理需求定义技术用于软件需求分析和描述。
4.未来变。云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)、热备份冗余(High Available)等传统计算机和网络技术发展融合的产物。云