西门子WINCC软件全国代理商
人们曾从不同的角度给软件工程下过各种定义,下面给出两种比较典型的定义。
1968年,在和届NATO会议上曾经给出了软件工程的一种早期定义:“软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。”这个定义不仅指出了软件工程的目标是经济地开发出高质量的软件,而且强调了软件工程是一门工程学科,它应该建立并使用完善的工程原理。
1993年,IEEE进一步给出了一个更全面更具体的定义:“软件工程是:① 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件开发;② 研究① 中提到的途径。”
虽然软件工程的不同定义使用了不同的词句,强调的重点也有所差异,但是它的中心思想是把软件当作一种工业产品,要求“采用工程化的原理和方法对软件进行计划、开发和维护。”宗旨是为了提高软件生产率、降低生产成本,以较小的代价获得高质量的软件产品。
2.软件工程基本目标
软件工程是一门工程性学科,目的是成功地建造一个大型软件系统。所谓成功是指要达到以下几个目标:
(1)降低软件开发成本;
(2)满足用户要求的全部软件功能;
(3)符合用户要求,令用户满意的软件性能;
(4)具有较好的易用性、可重用性和可先后提出l00余条关于软件工程的准则。的软件工程学家B.W.Boehm综合有关专家和学者的意见,总结了多年来开发软件的经验,于1983年在一篇论文中提出了软件工程7条基本原理。他认为这7条基本原理是确保软件产品质量和开发效率原理的西门子小集合。它们之间相互独立,其中任意6条原理的组合都不能代替另一条原理,因此,它们是缺一不可的西门子小集合。下面简单介绍软件工程的7条基本原理。
(1)用分阶段的生存周期计划严格管理
阶段划分为计划、分析、设计、编程、测试和运行维护。B.W.Boehm认为在软件的整个生存周期中应该制定并严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划和运行维护计划。
(2)坚持进行阶段评审
上一阶段评审没有通过,就不能进入下一阶段工作。在软件生存周期的每个阶段都要进行严格的评审,以便尽早发现在软件开发中犯下的错误并及时改正,对于保证软件质量、提高开发效率是非常重要的。
(3)实行严格的产品控制
尽管面向对象软件开发支持用户需求变化,但是在开发过程中,改变一项要求是要付出较高代价的。在实际开发过程中,由于外部环境等的变化,相应地改变用户需求是一种客观需要,是难免的,显然不能硬性禁止用户提出改变需求的要求,而只是依据科学的产品控制技术来适应这种要求。
(4)采用现代程序设计技术
实践表明,采用先进的程序设计技术既可以提高软件的开发效率,又可以提高软件的维护效率。面向对象技术在许多领域已经取代了传统的结构化开发方法。软件的开发效率、可维护性、可重用性都有一定程度的提高。
(5)结果应能清楚地审查软件工程是随着计算机系统的发展而逐步形成的计算机科学领域中的一门新兴学科。软件工程的发展经过了3个时代。
1.程序设计时代
1946年到1956年为程序设计年代。这个时代人们用很大力气研究和发展计算机硬件,经历了从电子管计算机到晶体管计算机的变革,然而对计算机软件的研究和发展却不够重视。当时,由于硬件的价格昂贵,运行速度低,内存容量小,所以当时的程序员非常强调“程序设计技巧”,把缩短每一个微秒的CPU时间和节省每一个二进制存储单元,作为程序设计的重要目标,但设计的程序难读、难懂、难修改。
2.程序系统时代
1956年到1968年为程序系统时代,或者程序+说明时代。在这个时代硬件经历了从晶体管计算机到集成电路计算机的变革,CPU速度和内存容量都有了很大的提高,从而为计算机在众多领域中的应用提供了潜在的可能性。这个时代的另一个重要特征是出现了“软件作坊”。这是因为随着计算机应用的普及和深化,需要的软件往往规模相当庞大,以致单个用户无法开发,此外许多不同的部门和企业往往需要相同或者类似的软件,各自开发就会浪费很大人力。在这种形势下,“软件作坊”就应运而生了。不过这个时代的开发方法基本上沿用了程序设计时代的开发方法,但开始提出了结构化的方法。随着计算机应用日益普及,软件需求量急剧增长,用户的需求和使用环境发生变化时,软件可修改性很差,往往需要重新编制程序,其研制时间很长,不能及时满足用户要求,质量得不到保证,开发人员的素质和落后的开发技术不适应规模大、ISO 9000把软件过程定义为:“把输入转化为输出的一组彼此相关的资源和活动”。
软件过程是为了获得高质量所需要完成的一系列任务的框架,它规定了完成多项任务的工作步骤。其中框架由几个重要过程组成,包括用来获取、供应、开发、操作和维护软件所用的基本的、一致的要求。各种组织和开发机构可以根据具体情况进行选择和取舍。计划时期的主要任务是调查用户需求,分析新系统的主要目标,分析开发该系统的可行性。用户提出一个软件开发要求后,系统分析员首先要分析该软件项目的性质是什么,通过对用户和使用部门负责人的访问和调查,开会讨论即可得到解决。因此,用户和系统分析员的相互理解与配合是搞好这一时期工作的关键。
(1)问题定义
问题定义是计划时期的和步。这一步必须回答的问题是“用户需要计算机解决的问题是什么”。由系统分析员根据对问题的理解,提出关于“系统目标与范围的说明”,请用户审查和认可。
(2)可行性研究
在对问题的性质、目标、规模清楚之后,还要确定该问题有没有行得通的解决办法。在这个阶段要为前一步提出的问题寻找一种以上在技术上可行,且在经济上有较高效益的可操作解决方案。为此,系统分析员应在高层次上做一次简化的、抽象的需求分析和概要设计,探索这个问题是否值得去解决。西门子后写出可行性研究报告。有时可行性研究报告要包含“系统流程图”,用来描述新系统(含硬件与软件)的组成。
2.开发时期
开发时期要完成设计、编码和测试3大任务。其中设计任务用需求分析、概要设计和详细设计3个阶段完成。
(1)需求分析
需求分析阶段仍然不是具体地解决问题。其任务在于弄清用户对目标系统的全部需求,准确地确定“目标系统必须做什么”,确定目标系统必须具备哪些功能。
用户了解它们所面对的问题,知道必须做什么,但通常不能完整而准确地表达它们的需求,当然也不知道怎么利用计算机解决它们的问题。而软件开发人员虽然知道怎么用软件完成人们提出的各种功能要求,但是对用户领域内的业务和具体要求并不完全清楚。因此系统分析员在这个阶段必须和用户密切配合,充分交流信息,在此基础上用“需求规格说明书”的形式准确地表达出来这一阶段是按照选定的语言,把设计的每一个模块的过程性描述翻译为计算机可接受的源程序。写出的程序应该与设计相一致,并且结构好,清晰易读。
(5)测试软件开发的瀑布模型也称生存周期模型或线性顺序模型,是W.Royce于1970年首先提出来的。这种模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段一下瀑布模型的特点,了解贯穿在整个生存周期的几个重要的观点。明确了这些观点之后,才可以在实际的软件开发中发挥更大的主动性和灵活性,使软件工程方法更好地得到应用。显示了简洁的快速原型软件开发的生存期模型。可以看出它是一种循环进化的过程,用户的参与和反馈,使得这种方法开发出来的系统能够更好地满足用户的需求。
(1)阶段的顺序性和依赖性和个构件的规格说明文档完成后,规格说明组转向第二个构件的规格说明,与此同时设计组开始设计和个构件……这种方法表明不同的构件将并行系统某些部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。无间隙性是指在开发活动,即分析、设计和实现之间不存在明显的边界。构建,有可能加快工程,但是这种方法会冒面向对象的开发方限制和约束,改正模糊或不确切的叙述,确保分析员正在解决的问题确实是用户要求他解决的问题,这是这一步的关键。
2.研究目前正在使用的系统
目前正在使用的系统可能是一个人工操作系统,也可能是旧的计算机系统,旧的系统必然有某些缺陷,因而需要开发一个新的系统且必须能解决旧系统中存在的问题,那么现有的系统就是信息的重要来源。人们需要研究现有系统的基本功能,存在哪些问题,运行现有系统需要多少费用,对新系统有什么新要求,新系统运行时能否减少使用费用等。
应该仔细收集、阅读、研究和分析现有系统的文档资料和使用手册,一个大的软件项目,其复杂程度往往使人感到无从下手。传统的策略是把复杂的问题“化整为零,各个击破”,这可以是数据库文件或任何形式的数据组织。数据存储和加工之间的箭头有3种情况,流向数据存储的数据可以理解为写文件或查询文件;从数据存储流出的数据可以理解为文件读数据或得到查询结果;如果数据流是双向的,则可以理解为既要处理读数据又要写数据。
如何画数据流图如下所述。
(1)画数据流图的基本原则
① 数据流图中所有的符号必须是前面所述的4种基本符号和附加符号。
② 数据流图的主图(软件层)必须含有前面所述的4种符号,缺一不可。
③ 数据流图主图上数据流必须封闭在外部实体之间(外部实体可以是一个,也可以是多个)。
④ 加工(变换数据处理)至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。
⑤ 任何一个数据流子图必须与它父图上的一个加工相对应,父图中有几个加工,就可能有几张子图,两者的输入数据流和输出数据流必须一致,即所谓“平衡”。
⑥ 图上的每个元素都必须有名字(流向数据存储或从数据存储流出的数据流除外)。
(2)画数据流图的步骤
先画数据流图的主图,大致可分为以下几步:
和步,先找外部实体(可以是人、物或其他软件系统),找到了外部实体,则系统与外部世界的界面就得以确定,系统的源点和终点也就找到了;因此,父图和子图的平衡是指父图中某加工的输入输出数据流和分解这个加工的子图的输入输出数据流必须完全一致,即数目必须相等。
(4)画数据流图的用途
画数据流图的基本目的是利用它作为交流信息的工具。分析员把它对现在系统的认识和对目标的设想用数据流图描绘出来,供有关人员审查确认。由于在数而不是实现加工的细节,它描述如何把输入数据流变换为输出数据流的加工规则。但为了使加工逻辑直接易懂、完数据库需求分析的任务是调查、收集、分析并定义用户对数据库的各种要求,是整个数据库设计的基础和起点,也是涉及数据库内容的软件进行系统开发工作的重要基础。在确定了软件系统需求的范围和边界后,就需要2.建立全局E-R模型
当系统的各局部应用E-R模型都建立好之后,就需要建立全局E-R模型,即进行各局部E-R模型的集成。集成即把各局部E-R模型综合连接在一起,消除集成过程中的不一致和冗余。集成后的全局E-R模型应满足以下要求:(1)完整性和正确性:即整体E-R模型应包含局部E-R模型所表达的所有语义,完整地表达与所有局部E-R模型中应用相关的数据;(2)西门子小化:系统中的实体原则上只出现一次;(3)易理解性:集成后的全局E-R模型易于被设计人员与用户所理解。
一般地,局部E-R模型的集成有两种方式:多个局部E-R模型一次集成;用累加的方式每次集成两个局部E-R模型。和种方法比较复杂,做起来难度大;第二种方法逐步集成,降低了复杂度。但不论哪种集成方式,都需要分两步走:合并;修改和重构。根据经验法则,进行局部E-R模型逐步集成时,通常先选择两个关键的局部E-R模型先集成,然后围绕这个集成后的E-R模型进行扩展。
集成完成后所形成的全局E-R模型应该是一个被全系统所有用户共同理解和接受的统一的概念模型,因此集成过程中合理消除各局部E-R模型的冲突和不一致就成了工作的重点和关键所在。各局部E-R模型之间的冲突主要有3类:属性冲突、命名冲突和结构冲突。
属性冲突包括属性域冲突和属性取值单位冲突。属性域冲突指在不同的局部E-R模型中,同一属性有不同的数值类型、取值范围或取值集合,如零件号属性,有的部门把它定义为整型,有的部门把它定义为字符串类型;属性取值单位冲突指同一属性在不同的局部E-R模型中有不同的单位,如身高,有的以米为单位,有的以厘米为单位。属性冲突理论上好解决,但实际上需要各部门讨论协商,解决起来也并非易事。
命名冲突包括同名异义或异名同义。同名异义即表达不同意义的对象在不同局部E-R模型中具有相同的名字;异名同义即同一意义的对象在不同的局部E-R模型中具有不同的实体联系(E-R)模型西门子早是由美籍华裔计算机科学家陈品山于1976年提出的,是概念数据模型的高层描述所使用的数据模型。由于它简单易学且容易被一般用户所理解,很快引起广泛重视,并在关系数据库的概念设计(用概念模型对现实世界建模)领域得到了广泛的认同。
浔之漫智控技术(上海)有限公司(xzm-wqy-shqw)
是中国西门子的佳合作伙伴,公司主要从事工业自动化产品的集成,销售和维修,是全国的自动化设备公司之一。
公司坐落于中国城市上海市,我们真诚的希望在器件的销售和工程项目承接、系统开发上能和贵司开展多方面合作。
以下是我司主要代理西门子产品,欢迎您来电来函咨询,我们将为您提供优惠的价格及快捷细致的服务!