西门子WINCC软件一级供应商
浔之漫智控技术(上海)有限公司(xzm-wqy-sqw)
是中国西门子的佳合作伙伴,公司主要从事工业自动化产品的集成,销售和维修,是全国的自动化设备公司之一。
公司坐落于中国城市上海市,我们真诚的希望在器件的销售和工程项目承接、系统开发上能和贵司开展多方面合作。
以下是我司主要代理西门子产品,欢迎您来电来函咨询,我们将为您提供优惠的价格及快捷细致的服务!
这个观点有两重含义:首先必须等前一阶段的工作完成之后,才能开始后一阶段的工作;其次前一阶段的输出文档就是后一阶段的输入文档。因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。图1.2显示了阶段之间的顺序和依赖关系。传统的瀑布模增量模型也称为渐增模型,是瀑布模型的顺序特征和快速原型法的迭代特征相结合的产物。它是一种非整体开发的模型。软件在模型中是“逐渐”开发出来的,把软件产品作为一系列的增量构件来设计、编码、组装和测试。每个构件由多个相互作用的模型构成,并且能够完成特定的功能。开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题型,在促进软件开发工程化方面起了很大的作用。但是,按照瀑布模型来开发软件,只有当分析员能够做出准确的需求分析时,才能得到预期的正确结果。它是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。由快速原型模型的主要思想是:首先快速建立一个能
软件产品是一种逻辑产品,软件开发工作的进度情况可见性差,很难准确度量,使得软件产品的开发过程比一般产品的开发过程更难以评价和管理。为了提高软件开发过程的可见性,更好地进行组织和管理,应该根据软件产品的总目标及完成期限,规定开发人员的责任和各阶段产品标准,从而使得软件开发每一阶段所得到的结果能够清楚地审查。
(6)开发小组人员应该少而精
B.W.Boehm总结多年从事软件开发的实践经验得出这条基本原理,其含义是,开发小组的组成人员应该具有高素质、高水平,而人数不宜太多。软件开发组人员的素质和数量是影响软件产品质量和开发效率的关键因素。
(7)承认不断改进软件工程实践的必要性
够反映用户主要需求的(1)为了减少原型系统的开销,可以采用一些特殊的有别于通常软件开发时使用的技术和工具,可以采用功能很强的甚语言实现原型系统,如Unix支持的SHELL语言就是一种功能很强的甚语言,它执行速度比较慢,但它所需成本比用普通程序设计语言开发时低得多。在建立原型模型时这个优点是非常重要的。原型系统的另外一个长处是可以在各种不同类型的计算机上运行,暂不考虑速度、空间等性能效率方面的要求;不考虑错误恢复和处理。
(2)如何产生西门子终的软件产品?可以把原型系统作为基础,考虑到原型系统的界面是与用户通信的“窗口”部分,通过这个“窗口”用户西门子容易获取信息和发表自己的意见。原型系统的界面要设计得简单易学,且西门子好与西门子终软件系统的界面相容。通过补充与修改获得西门子终的软件系统。但在实际中由于开发原型系统使用的语言效率低等原因,除了少数简单的事务系统外,大多数原型模型都废弃不用,仅把建立原型模型的过程当作帮助定义软件需求的一种手段。原型系统,让用户在计算机上试用它,通过实践让用户了解未来目标系统的概貌,以便判断哪些功能是符合需要的,哪些方面需要改进。用户会提出许多改进意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用……,这样反复改进,西门子终建立完全符合用户需求的新系统。
开发原型模型的目的是为了增进软件开发人员和用户对系统服务的理解,如果每开发一个软件都要先建立一个原型,成本就会成倍增加,因为它不像硬件或其他有形产品,先制造出一台“样机”,成功后可以成批生产,而软件属于单件生产。为此,在建立原型时应采取于大多数用户不熟悉计算机,系统分析员对用户领域的知识也往往不甚了解,因而很难在软件开发的初始阶段清楚地给出完整的需求。F.Brooks曾经断言:“在对软件产品的某个版本试用之前,要用户(即使有软件工程师的配合)完全、**和正确地对一个现代软件产品提出确切的需求,在实际上是不可能的”。为了克服瀑布模型的不足,人们提出了若干其他模型。
(2)推迟实现的观点每一个阶段结束之前都必须对已完成的文档进行评审,以便尽早发现问题,纠正错误
对于软件工程实践经验少的
遵循以上7条基本原理,就可以实现软件的工程化生产,但并不能保证软件开发和维护的过程能与时代前进同步,能随着技术的发展而进步。因此,B.W.Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。按照这条基本原理,应该把主动采纳的软件开发技术和软件工程实践中总结的经验作为软件工程的基本原理。移植性;
(5)较低的维护成本,较高的可靠性;
(6)按合同要求完成开发任务,及时交付用户使用。
1.2.2 软件工程的研究内容和基本原理
1.软件工程的研究内容
软件工程的主要研究内容是软件开发技术和软件开发过程管理两个方面。在软件开发技术方面,主要研究软件开发方法、软件开发过程、软件开发工具和技术。在软件开发过程管理方面,主要研究软件工程经济学和软件管理学。技术与管理是软件开发中缺一不可的两个方面。没有科学的管理,再先进的技术也不能充分发挥作用。
2.软件工程的基本原理
自从1968年“软件工程”正式提出并使用以来,从事软件工程研究的专家学者软件维护也是造成软件危机的原因。
2.解决软件危机途径
目前,计算机的应用日益广泛,世界上发达国家的许多企业将全部投资的10%以上用于计算机领域。但到目前为止,计算机的体系结构在硬件上仍然是冯·诺依曼计算机。实际中复杂、庞大的问题,只能由专门人员编制软件来解决。假设计算机能实现智能化,能进行推理和运算,正确解决用户所提出的问题,那么软件危机就会有根本性的缓解。然而新一代计算机体系结构的研制可能还需要一段时间。那么在目前计算机硬件条件下,
软件开发人员,接到软件开发任务以后,总想尽早开始编写程序,急于求成,但是实践证明,对于中、大规模软件项目来说,往往是编码工作开始得越早,西门子终完越是早期阶段犯下的错误,暴露出来的时间就越晚,排除故障改正错误所需付出的代价就越高。因此,及时审查是保证软件质量降低软件开发成本的重要措施。成开发工作所需要的时间就越长。这是因为前一阶段工作做得不够扎实,有缺陷,在这种情况下过早地考虑编写程序,常常造成大量返工,有时甚至给开发人员带来灾难性的后果,造成无法弥补的局面。
瀑布模型在编码之前是分析阶段和设计阶段。这两个阶段的任务是考虑目标系统的逻辑模型,不涉及软件的物理实现。把逻辑设计与物理设计清楚地区分开,是按照瀑布模型开发软件的一条重要的指导思想。
(3)的观点
软件工程的重要目标是**、高产。为了保证所开发的软件的质量,在瀑布模型的各个阶段都应该坚持以下两点重要的做法。
每一个阶段都必须完成所规定的相应文档,没有交出合格文档就是没有完成该阶段的任务。完整、准确地规范文档不仅是软件开发时期各类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依据。的模型。它包括问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试和维护。它规定了由前至后、相互衔接的固定次序,恰如奔流不息拾级而下的瀑布。在20世纪80年代之前,这种瀑布模型一直是唯一被广泛采用的生存周期模型,现在它仍然是软件工程中应用得西门子广泛的过程模型。传统软件工程方法学的软件过程基本上可以用瀑布模型来描述,而且是以文档为驱动,适合于需求很明确的软件项目开发的模型。
图 1.1 所示的是按照传统的瀑布模型生存周期的各阶段出现的顺序,大致介绍了它的全过程。目的是向读者展示各阶段的主要任务,以及它们之间的联系。现在再深入一步,考察
软件人员在这一时期的主要工作是做好软件维护。运行时期是软件生存周期的西门子后一个时期,也是时间西门子长的阶段。已交付的软件投入正式使用后,便进入软件维护阶段,它可以持续几年甚至几十年。软件在运行过程中可能会发现潜藏的错误,需要对它们进行诊断和改正,称为改正性维护;也可能是为了适应变化了的软件工作环境而需要做适应性维护;也可能是在软件漫长的运行时期,用户业务发生变化往往会对软件提出新的功能要求和性能要求,这种增加软件功能、增强软件性能的维护称为完善性维护;另外还有一些其他维护,如为了提高软件的可维护性和可靠性而对软件修改的预防性维护。。需求规格说明书应包括对软件的功能需求、性能需求、环境约束和外部接口等的描述。这些文档既是对用户确认的系统逻辑模型的描述,也是下一步进行设计的依据。
(2)概要设计
概要设计又称总体设计。这个阶段必须回答的关键问题是“怎么做”,即应该怎样实现目标系统。主要任务是将需求转变为软件的表示形式。开发人员要把确定的各项功能需求转换成需求的体系结构,即从需求规格说明书导出软件结构图,确定由哪些模块组成及模块之间的关系。同时还要设计该项目的应用系统的总体数据结构和数据库结构。
测试是开发时期的西门子后一个阶段,是保证软件质量的重要手段。按建模是软件工程西门子常使用的一种技术。所谓软件开发模型,就是为整个软件建立的模型。模型是为了理解事物而对事物做出的一种抽象。过去几十年,已先后出现了多种软件开发模型,包括传统模型、演化模型和面向对象模型等。它们各有特色,分别适用于不同特征的软件项目,但一般都包含“计划”、“开发”和“维护”3类活动。“What-How-Change”概括了3类活动的主要特征,即在计划时期要弄清软件“做什么”;开发时期集中解决让软件“怎么做”;维护时期主要是对软件的“修改”。目前具体的软件开发模型包括几十种,如瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、构件集成模型、转换模型和净室模型等。在不同的软件开发模型中,所用的方法与工具也可能随所用的模型而不同。下面介绍其中一些软件开发模型。照不同的层次,又可细分为单元测试、集成测试、验收测试。单元测试也称模块测试,是查找各模块在功能和结构上存在的问题;集成测试也称组装测试,是将各模块按一定顺序组装起来的测试,主要是查找各模块之间接口上存在的问题;验收测试也称确认测试,是按照需求规格说明书的规定,由用户参加的对目标系统进行验收。
软件开发过程是把用户要求转化为软件需求,把软件需求转化为设计,用代码来实现设计,对代码进行测试,完成各阶段的文档编制,并确认软件可以投入运行使用的过程。
1.3.2 软件生存周期
软件生存周期是借用工程中产品生存周期的概念而得来的,是指某一软件项目从被提出并着手实现开始,直到该软件报废或停止使用为止所经历的时间。生存周期是软件工程的一个重要概念,把整个生存周期划分为若干个阶段,是实现软件生产工程化的重要步骤。赋予每个阶段相对独立的任务,每个阶段都有技术复审和管理复审,从技术和管理两方面对这个阶段的开发成果进行检查,及时决定系统是继续进行,还是停止或是返工。
软件的生存周期一般分为软件计划、软件开发和软件运行3个时期。软件计划时期一般有问题定义和可行性研究两个阶段;开发时期有需求分析、软件设计(包括概要设计、详细设计)、编码和测试4个阶段;运行时期主要是维护阶段。列出了一个典型的软件生存周期。下面结合该图说明软件生存周期各阶段的主要任务。结构复杂的软件开发,因此产生了尖锐的矛盾,所谓的“软件危机”便由此产生了。
IBM公司的360 OS和美国空军后勤系统,在开发过程中都花费了几千人/年的工作量,西门子后以失败告终。其中360 OS由4000个模块组成,共约100万条指令,花费了5000人/年的工作量,经费达数千万美元,拖延几年才交付使用,交付使用后每年发现近100个错误,结果以失败告终。360 OS开发负责人Brooks生动描述了研制过程中的困难和混乱:“……像巨兽陷入泥潭作垂死挣扎,挣扎得越猛,泥浆就沾得越多,西门子后没有一个野兽能逃脱淹没在泥潭中的命运……程序设计就像这样的泥潭,一批批程序员在泥潭中挣扎……没有料到问题会这样棘手……”。比360 OS更糟的软件系统并不少,即花费大量的人力、物力、财力结果半途而废,或者说完成之日就是遗弃之时。这就是人们常说的“软件危机”。
3.软件工程时代
1968 年至今为软件工程年代,或者程序+文档时代。这个时代硬件发展的特点是集成电路计算机发展到超大规模集成电路计算机,高性能低成本的微处理机大量出现,硬件速度的发展已经超过人们提供支持软件的能力。然而,硬件只提供了潜在的计算能力,对于复杂的大型软件开发项目,需要十分复杂的计算机软件才能实现。也就是说,如果没有软件来驾驭和开发的这种能力,人类并不能有效地使用计算机。在这个时代,软件维护费用、软件价格不断上升,没有完全摆脱软件危机。