上海西门子PLC模块授权一级总代理
中西门子关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术起不到预期的作用。而且项目的成功也是通过工作组的共同努力,所以仅仅建立在可得到特定人员上的成功不能为全组织的生产和质量的长期提高打下基础,必须在建立有效的软件如管理工程实践和管理实践的基础设施方面,坚持不懈地努力,才能不断改进,才能持续地成功。
软件质量,乃至于任何产品质量,都是一个很复杂的事物性质和行为。产品质量,包括软件质量,是人们实践产物的属性和行为,是可以认识、可以科学地描述的。为了解决软件危机,既要有技术措施(方法和工具),又要有先进的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。1.2 软件开发工程化
软件作为人类纯智力的劳动成果,和其他科学、技术、文学、艺术一样是人类共享的社会财富。但与文学艺术这类纯精神产品不同的是,它要面向社会发展的方方面面,它的研制开发工作就必须从用户的要求和市场的需求出发。能否得到用户的欢迎,能否取得一定的市场份额,将取决于软件本身的功能、性能、可靠性、价格以及扩充能力等。软件产品的商品化是实现上述目标的必由之路。传统的“艺术创作”式的方式,极不适应提供低价格高品质软件产品的商品化需求。为此,人们将借鉴其他科技产品商品化的路子,提出软件产品的研制开发与生产必须工程化、标准化。1.2.1 软件工程的定义
1968年“软件工程”这一名称被提出。软件工程的目标简而言之就是要使开发的软件产品具有可靠性、有效性、易维护性和可理解性。实现这一目标的软件工程原理就是:必须采用一种有效的方法和技术来降低开发活动的复杂性。
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构分别给出了自己认可的定义:
BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE在软件工程术语汇编中的定义:①将系统化的、严
的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究。
FritzBauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
此外,《计算机科学技术百科全书》中,软件工程是性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。1.2.2 软件开发的发展过程
软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。
1.程序设计阶段
程序设计阶段出现在1946年至1955年。此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。
2.软件设计阶段
软件设计阶段出现在1956年至1970年。此阶段的特点是:硬件环境相对稳定,出现了“软件作坊”的开发组织形式。开始广泛使用产品软件(可购买),从而建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,编程语言层出不穷,应用领域不断拓宽,开发者和用户
浔之漫智控技术(上海)有限公司(w)是中国西门子的合作伙伴,公司主要从事工业自动化产品的集成,销售和维修,是全国的自动化设备公司。公司坐落于中国城市上海市,我们真诚的希望在器件的销售和工程项目承接、系统开发上能和贵司开展多方面合作。以下是我司主要代理西门子产品,欢迎您来电来函咨询,我们将为您提供优惠的价格及快捷细致的服务!
明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。
3.软件工程阶段
自1970年起,软件开发进入了软件工程阶段。由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件开发进入了软件工程时代。此阶段的特点是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;和代软件技术——结构化程序设计在数值计算领域取得优异成绩;第二代软件技术——软件测试技术、方法、原理用于软件生产过程;第三代软件技术——处理需求定义技术用于软件需求分析和描述。
4.未来变。云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)、热备份冗余(High Available)等传统计算机和网络技术发展融合的产物。云计算是通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
云计算背景下,传统软件工程也需要不断创新发展。在传统的软件开发过程中,软件使用者对软件的需求确定后则按照传统软件工程开发模型进行软件设计,需求的改变则可能会导致软件架构的改变,这种改变会对软件设计影响巨大。而在云计算背景下,需求可能是在不断地变化,比如刚开始预期的使用人数只有一万
大超过了之前软件设计容量,于是通过云计算,可以对软件的运行环境进行动态扩充,只要对软件稍作修改便下面是软件工程的七条原理:
1.用分阶段的生命周期计划严格管理
这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把软件生命周期分成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发和维护进行管理。
玻姆认为,在整个软件生命周期中应指定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。
2.坚持进行阶段评审
统计结果显示:大部分错误是在编码之前造成的,大约占63%,错误发现得越晚,改正它要付出的代价就越大,要差2到3个数量级。因此,软件的工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。
3.实行严格的产品控制
开发人员西门子头疼的事情之一是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又称基准配置管理。当需求变动时,其他各个阶段的文档或代码随之相应变动,以保证软件的一致性。
4.采纳现代程序设计技术