西门子WINCC软件全国经销商
浔之漫智控技术(上海)有限公司(w)
是中国西门子的佳合作伙伴,公司主要从事工业自动化产品的集成,销售和维修,是全国的自动化设备公司之一。
公司坐落于中国城市上海市,我们真诚的希望在器件的销售和工程项目承接、系统开发上能和贵司开展多方面合作。
以下是我司主要代理西门子产品,欢迎您来电来函咨询,我们将为您提供优惠的价格及快捷细致的服务!
结构化设计方法是以自软件向下、逐步求精、模块化为基点,以模块化、抽象、逐层分解求精、信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。
结构化方法按软件生命周期划分,有结构化分析(SA)、结构化设计(SD)和结构化实现(SP)。其中要强调的结构化方法学是一个思想准则的体系,虽然有明确的阶段和步骤,但是也集成了很多原则性的东西。所以,学会结构化方法,仅从理论知识上去了解是不够的,还要从实践中慢慢理解各准则,并将其变成自己的方法学。
结构化分析的步骤如下:
①分析当前的情况,做出反映当前物理模型的数据流图。
②推导出等价的逻辑模型的数据流图。
③设计新的逻辑系统,生成数据字典和基元描述。确定数据流图的类型。
③把数据流图映射到软件模块结构,设计出模块结构的上层。
④基于数据流图逐步分解高层模块,设计中下层模块。
⑤对模块结构进行优化,得到更为合理的软件结构。
⑥描述模块接口。
(2)面向对象方法
面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
OO方法起源于面向对象的编程语言(简称OOPL)。20世纪50年代后期,在用FORTRAN语言编写大型程序时,常出现变量名在程序不同部分发生冲突的问题。鉴于此,ALGOL语言的设计者在ALGOL60中采用了以“Begin…End”为标识的程序块,使块内变量名是局部的,以避免它们与程序中块外的同名变量相冲突。这是编程语言中提供封装(保护)的尝试。此后程序块结构广泛用于语言如Pascal、Ada、C之中。
20世纪60年代中后期,Simula语言在ALGOL基础上研制开发,它将ALGOL的块结构概念向前发展一步,提出了对象的概念,并使用了类,也支持类继承。20世纪70年代,Smalltalk语言诞生,它取Simula的类为核心概念,它的很多内容借鉴于Lisp语言。由Xerox公司经过对Smautalk72/76持续不断地研究和改进之后,于1980年推出并商品化,它在系统设计中强调对象概念的统一,引入对象、对象类、方法、实例等概念和术语,采用动态联编和单继承机制。特殊和归纳—从特殊到一般”的完整理论和方法体系)而建立面向对象方法等基础。
面向对象方法学要点之一:认为客观世界是由各种“对象”所组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,每一个对象都属于某个对象“类”,都是该对象类的一个元素。复杂的对象可以是由相对比较简单的各种对象以某种方式而构成。不同对象的组合及相互作用就构成了要研究、分析和构造的客观系统。
面向对象方法学要点之二:是通过类比,发现对象间的相似性,即对象间的共同属性,这就是构成对象类的依据。
面向对象方法学要点之三:认为对已分成类的各个对象,可以通过定义一组“方法”来说明该对象的功能,即允许作用于该对象上的各种操作。对象间的相互联系是通过传递“消息”来完成的,消息就是通知对象去完成一个允许作用于该对象的操作,至于该对象将如何完成这个操作的细节,则是封装在相应的对象类的定义中的,细节对于外界是隐蔽的。
面向对象方法的具体步骤如下:
①分析确定在问题空间和解空间出现的全部对象及其属性。
②确定应施加于每个对象的操作,即对象固有的处理能力。
③分析对象间的联系,确定对象彼此间传递的消息。
④设计对象的消息模式,消息模式和处理能力共同构成对象的外部特性。
⑤分析各个对象的外部特性,将具有相同外部特性的对象归为一类,从而确定所需要的类。
⑥确定类间的继承关系,将各对象的公共性质放在较上层的类中描述,通过继承来共享对公共性质的描述。
⑦设计每个类关于对象外部特性的描述。
⑧设计每个类的内部实现(数据结构和方法)。提出BNF描述Algol60语言的语法,出现了各种语法分析程序自动生成器以及语法制导的编译方法,使得编译系统的开发从“手工艺制作方式”发展成具有牢固理论基础的系统方法。形式化方法的研究高潮始于20世纪60年代后期,针对当时所谓的“软件危机”,人们提出种种解决方法,归纳起来有两类:一是采用工程方法来组织、管理软件的开发过程;二是深入探讨程序和程序开发过程的规律,建立严密的理论,以其用来指导软件开发实践。前者导致“软件工程”的出现和发展,后者则推动了形式化方法的深入研究。经过30多年的研究和应用,今人们在形式化方法这一领域取得了大量、重要的成果,从早期西门子简单的形式化方法——一阶谓词演算方法到现在的应用于不同领域、不同阶段的基于逻辑、状态机、网络、进程代数、代数等众多形式化方法。形式化方法的发展趋势逐渐融入软件开发过程的各个阶段,从需求分析、功能描述(规约)、(体系结构/算法)设计、编程、测试直至维护。1.6 软件工程人员的业务素质和职业道德
现在,计算机越来越成为商业、工业、政府、医疗、教育、娱乐、社会事务以及人们日常生活的中心角色。那些直接或通过教学从事设计和开发软件系统的人员,有着极大的机会既可从事善举也可从事恶行,同时还能影响或使得他人做同样的事情。为尽可能保证这种力量用于有益的目的,软件工程师必须要求他们自己所进行的软件设计和开发是有益的,所从事的是受人尊敬的职业。
软件工程从业人员的业务素质和职业道德规范对顺利高效地完成软件开发过程和管理过程有重要的影响。和其他工程人员一样,软件工程人员必须担负许多责任。软件工程人员的工作是在法律和社会认可的框架内完成的。软件工程人员要想受人尊敬,其行为就必须合乎道德,必须有责任感。软件工程人员必须坚持诚实正直的行为准则,这是不言而喻的。他们不能用掌握的知识和技能做不诚实的事情,更不能给软件工程行业抹黑。然而,在有些方面,某些行为没有法律加以规范,只能靠职业道德来约束,这种约束是软弱无力的。包括:
1.保密
工程人员必须严格保守雇主或客户的机密,而不管是否签署了保密协议。
2.工作能力
工程人员应该实事求是地表述自己的工作能力,不应有意接受超出自己能力的工作。
3.知识产权
工程人员应当知晓有关专利权、著作权等知识产权的地方法律,必须谨慎行事,确保雇主和客户的知识产权受到保护。至少要熟练掌握两种以上的编程语言,能编写规范的源程序。
(3)熟悉问题求解的数据结构或数据库,即数据建模。数据结构适合于系统软件、工具软件的建模,数据库应用于管理信息系统软件建模。
(4)有良好的文档书写习惯,真正理解软件是“知识、程序、数据和文档”的集合,掌握符合规范的文档撰写方法,以便国际软件工程师之间互通交流。
(5)在软件工程技术上与时俱进,掌握主流的软件开发工具及环境,如各种CASE工具和软件配置管理工具等。
(6)努力跟踪所在行业领域知识,不断适应客户需求的变化。因为任何软件企业,都不可能面向许多行业,而只能面向一两个行业,所以必须掌握这些行业领域的西门子新业务知识。
(7)在技术或管理上不断总结经验,吸取教训,做到每年都有所进步。
(8)在业务工作中
(1)公众——软件工程师应当以公众利益为目标。
(2)客户和雇主——在保持与公众利益一致的过程描述了所有的主要活动。软件过程活动通常有:需求分析和定义、系统设计、程序设计、编码、单元测试、集成测试、系统测试、系统支付、维护等。
(2)过程在一定限制下使用资源、产生中间和西门子终产品。
(3)过程由以某种方式连接的子过程构成,活动以一定的顺序组织。过程是有结构的,表现为过程和活动的组织模式,以适应相应项目的开发。
(4)每个过程活动都有入口和出口准则以便确立活动的开始和结束。
(5)每个过程都有达到活动目标的相关指导原则。2.1.3 软件过程的分类
(1)基本过程类:是构成软件生存期主要部分的那些过程,包括获取、供应、开发、操作、维护等过程。
(2)支持过程类:可穿插到基本过程中提供支持的一系列过程,包括文档开发、配置管理、、验证、确认、联合评审、审计、问题解决等过程。
(3)组织过程类:一个组织用来建立、实施一种基础结构,并不断改进该基础结构的过程,包括管理、基础、改进、培训等过程。2.1.4 软件过程的作用
软件过程是一组引发软件产品的生产活动,采用软件过程管理的主要作用有:
(1)有效的软件过程可以提高组织的生产能力。
(2)可以理解软件开发的基本原则,辅助研发人员做出决策。
(3)可以标准化研发过程工作,提高软件的可重用性和软件不是程序,而是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。1983年IEEE为软件下的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。其中的方法和规则通常是在文档中说明并在程序中实现的。特别是当软件成为商品时,相关的文档资料是必不可少的。没有相关文档,仅有程序是不能称为软件产品的。
程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。它是由软件开发人员设计和编码的。程序执行时一般要输入一定的数据,也会输出运行的结果。而文档则是软件开发活动的记录,主要供人们阅读,既可用于人员和用户之间的通信和交流,也可以用于软件开发过程的管理和运行阶段的维护。我国国家标准局已参照,陆续颁布了《计算机软件开发规范》、《计算机软件需求说明编制指南》、《计算机软件测试文件编制规范》、《计算机软件配置管理计划规范》等文档规范。为了提高软件开发的效率和方便软件产品的维护,现在的软件人员越来越重视文档的作用及其标准化工作。
提倡与遵守团队精神,反对个人英雄主义。
以上八条是一个整体,对于不同的人、不同的岗位及不同的软件企业,可能各自有所侧重。1.6.2 软件工程师的职业道德规范
什么样的人才能成为出色的软件工程师呢?他们要遵守软件开发规范,要有诗人的激情,艺术家的灵感,孩童的好奇心,要有团队合作精神,要能忍耐寂寞,要有很强的自我控制能力,要有温情的性格,要有耐心细腻的作风,要喜欢软件、热爱软件。此外,软件工程师还特别肩负着社会责任,所以更要有良好的职业道德的约束。
软件工程师的职业道德规范有如下八条:
(1)首先必须做一位遵纪守法的公民。
(2)做事认真负责,一丝不苟,每一条语句都经过周密自觉遵守公民道德规范标准和中国软件行业基本公约。
(2)讲诚信,坚决反对各种弄虚作假现象,不承接自己能力尚难以胜任的任务,对已经承诺的事,要保证做到,在情况变化和有特殊原因实在难以做到时,应及早向当事人报告说明。忠实做好各种作业记录,不隐瞒、不虚构,对提交的软件产品功能,在有关文档上不作夸大不实的说明。
(3)讲团结、讲合作,有良好的团队协作精神,善于沟通和交流。在业务讨论上,积极坦率地发表自己的观点和意见,对理解不清楚和有疑问的地方,决不放过。在做同行评审和技术审核时,实事求是地反映和指出问题,对事不对人,要自觉协助项目经理做好项目管理,积极提出工作改进建议。
(4)有良好的知识产权保护观念,自觉抵制各种违反知识产权保护的行为,不购买和使用盗版软件,不参与侵犯知识产权的活动,在自己开发的产品中,不复制/复用未取得使用许可的他方内容。
(5)树立正确的技能观,努力提高自己的技能,为社会和人民造福,绝不利用自己的技能从事危害公众利益的活动,包括构造虚假信息和不良内容、制造计算机病毒、参与盗版活动、非法解密存取、黑客行为和攻击网站等,提倡健康的网络道德准则和交流活动。对于利用自己的计算机知识、积极参与社会科学普及和应用推广活动,应大力鼓励和提倡。
(6)认真履行签订的合同和协议,有良好的责任感。不能以追求个人利益为目的而做出如下行为:不顾协议与合同规定,不顾对原先已承诺的项目开发任务的影响,甚至以携带原企业的资料提高自己的身价。自觉遵守保密规定,不随意向他人泄露工作和客户机密。
(7)软件业是一个不断变化和不断创新的行业,面对飞速发展的技术,能自觉跟踪技术发展动态,积极参与各种技术交流、技术培训和继续教育活动,不断改进和提高自己的技能,自觉参与项目管理和软件过程改进活动,注意对个人软件过程活动的监控和管理,积累工程数据,研究和不断改进自己的软件生产率和质量,并积极参与发展高效的团队软件过程的管理,使各项软件产出都能达到国际和国家标准与规范。
(8)努力提高自己的技术和职业道德素质,力争做软件工程师应履行其实践承诺,使软件的需求分析、规格说明、设计、开发、测试和维护成为一项有益和受人尊敬的职业。为实现他们对公众健康、安全和利益的承诺目标,软件工程师。