浔之漫智控技术(上海)有限公司
主营产品或服务:西门子PLC , 西门子变频器 , 西门子数控系统
西门子PLC PROFIBUS插头

西门子PLC PROFIBUS插头

浔之漫智控技术(上海)有限公司(xzm-wqy-sqw)

是中国西门子的合作伙伴,公司主要从事工业自动化产品的集成,销售和维修,是全国的自动化设备公司。

公司坐落于中国城市上海市,我们真诚的希望在器件的销售和工程项目承接、系统开发上能和贵司开展多方面合作。

以下是我司主要代理西门子产品,欢迎您来电来函咨询,我们将为您提供优惠的价格及快捷细致的服务!

⑧ 软件工作牵涉很多社会因素。许多软件的开发运行涉及机构、体制和管理方式等问题,还会涉及人们的观念和心理。这些人的因素,常常成为软件开发的困难所在,直接影响到项目的成败。

软件与所见即所得的硬件区别明显,其中明显的是硬件有老化耗损现象,硬件失效是物理故障,是器件物理变化的必然结果,有浴盆曲线现象;软件不发生变化,没有磨损现象,有陈旧落后的问题,没有浴盆曲线现象。

1.1.2 软件危机与软件工程1.软件危机及其原因

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1968年,北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上,次提出了“软件危机”(Software Crisis)这个名词。

1.1.1 软件及其特性

个编写软件的人是ADA(Augusta Ada Lovelace),在19世纪60年代他尝试为Babbage(Charles Babbage)的机械式计算机写软件。尽管他的努力失败了,但他的名字永远载入了计算机发展的史册。

在20世纪50年代,软件伴随着台电子计算机的问世诞生了。以编写软件为职业的人也开始出现,他们是经过训练的数学家和电子工程师。20世纪60年代美国大学里开始出现授予计算机的学位,专门教人们编写软件。

20世纪中叶软件产业从零开始起步,在短短的50多年时间里迅速发展成为推动人类社会发展的产业,并造就了一批百万、亿万富翁。随着信息产业的发展,软件对人类社会的发展越来越重要。

那么,如何给软件定义?软件是什么?

首先要说明的是,软件对于人类而言是一个全新的东西,其发展历史不过四五十年的时间。人们对软件的认识经历了一个由浅到深的过程。

在计算机系统发展的初期,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成了一个隐藏的过程。而且,除了源代码往往没有软件说明书等文档。

从20世纪60年代中期到70年代中期是计算机系统发展的第二个时期,在这一时期软件开始作为一种产品被广泛使用,出现了“软件作坊”专职应别人的需求编写软件。这一软件开发的方法基础上仍然沿用早期的个体化软件开发方式,但软件的数量急剧膨胀,软件需求日益复杂,维护的难度越来越大,开发成本令人吃惊,而失败的软件开发项目却屡见不鲜。“软件危机”就这样开始了!

“软件危机”使得人们开始对软件及其特性进行更深一步的研究,人们改变了早期对软档;式”进行的。起码,如果听说这个软件是“由出价低的软件公司开发的”,我的心里一定不会太好受。

另一方面,如果你的企业需要开发大型的、打包销售的消费类软件,并且又善于作出恰当的工程学权衡,那么你很可能会使用“足够好的软件”这种方法。这类软件工程成功的秘诀就是以量取胜:消费类软件的市场充满了竞争,消费者决定是否购买某个软件的依据不是细致的比较,而是别人的评论和软件厂商的市场宣传,因此软件厂商只有以较低的价格卖出极其大量的产品才可能占据市场。

设计师,负责创建设计规格;在过去的30年中,软件工程社群一直用“工程学”这个略显呆板的比喻来看待软件开发过程。现在,软件工程际上,“足够好的软件”只不过是软件工程思想的一个衍生物,它的出现完全合乎逻辑。它体现出了人们在资源、进度、功能和缺陷等各方面作出的工程学权衡。航天飞机的软件重视安全性,因此必须尽可能地减少其中的缺陷,并同时接受项目组为了提高质量而提出的资源、进度方面的要求;另一方面,打包的商用软件(例如文字处理软件、Web浏览器等)则要求开发者快速实现大量的功能,因此开发者就会很自然地作出“节省排除已知缺陷的时间从而压缩进度”的工程学权衡。这种权衡的核心思想是:对于某些类型的已知缺陷,花时间去排除它们并不经济。已经成为了计算机学生的一门必修课。在各个大学的计算机系中,软件工程也是一个活跃的研究领域。人们关注的是软件工程项目中那种确定的、可重复的开发方式。按照IEEE的定义,这种方式就是:

软件工程是指采用一种有组织、有纪律、可计量的方式来开发、使用及维护软件,也即在软件领域中对工程学的采用。

对于强调安全性的软件系统,这种有组织、有纪律、可计量的开发方式已经被证明是非常有效的。例如,为航天飞机编写软件的团队就使用这种开发方式,并成功地获得了缺陷率极低的软件系统:

在这个程序的后3个版本(平均代码长度为420 000行)中,每个版本只有一个错误;在其后11个版本中,总共只有17个错误。同等复杂度的商用程序将会有5 000个错误。

但是,在这样的过程中,其他的约束条件则不得不被放松:

金钱不是关键的约束条件:项目组每年3 500万美元的预算对于NASA来说不过是九牛一毛。但是,这个预算额就意味着每行代码价值 1 美元。这使得该项目组成为了全美国值钱的软件组织。

从工程学的角度来说,这是一个恰当的利弊权衡。面对性命攸关的软件,人们毫无疑问会慷慨地用一切资源来确保系统不出错。但是,对于那些出错的代价相对较低的软件,又应

程序员,负责编写代码。

在每个阶段,每份文档的作者都必须在文档中加入额外的细节,因为他们无法知道随后将要阅读这份文档的人是谁。由于无法假设阅读者的知识背景,所以唯一安全的办法就是:将作者所知道的所有细节、所有交叉引用都写在文档中。然后,文档的复审者必须仔细浏览整个文档,以确定它是完善并且明白无误的。

完善的文档也带来了另一个难题:当在实现阶段需要对需求和设计作出修改时,团队成员必须修改所有相关的文档,以保证文档与真实系统之间的一致性。软件工程项目解决这个问题的办法是:确保从需求分析到代码实现的整个过程是完全可回溯的。不论在任何时候需要作出修改,这种可回溯性都将保证相关的文档和组件能够被发现并被更新。

这种文档驱动的开发方式也影响项目中人员的工作方式:设计师不愿意主动置疑分析师的文档,而程序员对设计方案的置疑或改进建议也是不受鼓励的——对于任何一份文档的修改都需要付出高昂的代价,因此所有的修改都必须受到严格的控制。


展开全文
优质商家推荐 拨打电话