西门子PLC模块CPU226CN中央处理单元
一个复杂而迭代的过程。
(3)软件测试
在软件构造完成之后,还要对软件产品进行测试。软件测试主要是通过各种类型的测试及相应的调试,发现功能、逻辑和实现上的缺陷,使软件达到预定的要求,检查和验证所开发的系统是否符合客户期望。测试是有不同层次的,包括单元测试、子系统测试、系统的集期的每个阶段都采用科学的管理技术和良好的技术方法,在每个阶段结束之前都从技术和管理两个角度进行严格的审查,合格之后才开始下一阶段的工作,这就使软件开发工程的全过程以一种有条不紊的方式进行,保证了软件的质量,特别是提高了软件的可维护性。
软件过程是指软件生存周期中的一系列相关过程,是为了获得高质量软件而实施的一系列活动。它包括问题定义、需求开发、软件设计、软件构造、软件测试等一系列软件开发的实现活动,而每一项活动都会产生相应的中间制品。
1.定义阶段
任何一个软件产品,都起源于一个实际问题或者一个创意。当问题或创意提出之后,人们通过开展技术探索和市场调查等活动,来研究系统的可行性和可能的解决方案,从而确定待开发系统的总体目标和范围。软件定义阶段主要是确定待开发的软件
统要做什件必须遵从人为的惯例并适应已有的技术和系统,随着接口的不同而改变。
(3)软件的可变性。软件经常会遭受到持续的变更压力。相对于建筑和飞机等工程制品来说,软件的变更似乎更加频繁,这也许是由于建筑和飞机修改成本太高所致。人们总是以为软件很容易修改,却忽视了修改带来的副作用。软件不断变化,每一次的修改都会造成故障率的升高,也可能给软件的结构带来破坏。如此,成功的软件都是会发生演化的。软件的可变性,给开发带来了很多难题,但也给软件本身带来了生命力。
(4)软件的不可见性。软件是一种逻辑产品,看不见摸不着,它的客观存在不具有空间的形体特征,缺少合适的几何表达方式。这种不可见性,不**制了软件的设计过程,严重地阻碍了人与人之间的相互交流,从而对开发过程的管理造成很大困难。
复杂性、一致性、可变性和不可见性,是软件的本质特性。这些特性,使得软件开发的过程变得难以控制,开发团队如同在焦油坑里挣扎的巨兽,挣扎得越猛烈,焦油纠缠得越紧,*后有可能沉没到坑底。我们需要寻找解决问题的有效方法,以保证软件开发过程的高效、有序和可控。用有关的各种图文资料。
Fred Brooks教授,是软件工程领域非常有影响力的人物。他曾经担任IBMOS360系统的项目经理,在计算机体系结构、操作系统以及软件工程方面做出了杰出的贡献,并于1999年获得了图灵奖。
Brooks教授在1987年发表了一篇题为“没有银弹(No SilverBullet)”的文章。在这篇文章中他指出:“软件具有复杂性、一致性、可变性和不可见性等固有的内在特性,这是造成软件开发困难的根本原因。”
(1)软件的复杂性。软件是复杂的,是人类思维和智能的一种延伸,它比任何以往人类的创造物都要复杂得多。今天,我们已经进入云计算时代。在互联网的集群环境下,系统规模更大更复杂,可以说,软件是人类有史以来生产的复杂度*高的工业产品。这种复杂性,对软