面向对象分析和设计

2024-07-12

面向对象分析和设计(精选12篇)

面向对象分析和设计 第1篇

关键词:软件技术专业,OOA,OOD,OOP,能力培养模型

面向对象语言入门不易、精通更难,成为不少高职软件技术专业学生在学习软件开发技术时的难题。如不解决学生遇到的面向对象分析、设计和编程的问题,将严重影响其学习软件开发技术的积极性。目前,基于面向对象的分析、设计、编程和建模技术已成为主流开发技术。本文通过先调研面向对象的软件开发流程和软件工程师岗位要求,进行针对性的面向对象分析、设计和编程能力的培养,并据此提炼通用的提高软件技术专业学生面向对象分析、设计和编程的能力,使其养成良好的面向对象思维,为学习后续软件开发技术奠定基础。为叙述方便,在以下描述中分别用OOA、OOD和OOP表示面向对象分析、面向对象设计和面向对象编程。

1 专业岗位调查分析

通过对与OOA、OOD、OOP有关的软件开发岗的调研、论证,确定面向对象授课内容。调查分析分两阶段:首先调查面向对象的软件开发流程,然后据高职软件技术专业学生的就业岗位群特点,重点调查软件工程师岗对面向对象能力的要求。

基于面向对象的软件开发流程如图1。系统分析师/领域专家据客户需求进行面向对象分析,形成领域模型,然后提交给系统架构师;系统架构师在OOA的基础上进行面向对象设计,形成一系列的软件设计文档,这些软件设计文档是软件工程师进行面向对象编程的重要依据;软件工程师进行面向对象编程实现并经测试后,向客户交付项目。

(1)Java软件工程师面向对象能力要求:

任职资格:精通J2EE架构技术,熟练掌握主流技术框架Struts等;熟练掌握Oracle等数据库的分析和设计;熟练掌握WebLogic等应用中间件的安装、部署和配置;熟练掌握UML和面向对象建模和设计,掌握面向对象的开发方法。

岗位职责:应用系统的分析/设计;架构设计、技术支持及软件开发指导;软件开发。

(2)C#软件工程师面向对象能力要求:

任职资格:精通C#编程语言,熟练掌握线程、网络编程、数据库编程;精通SQL语言,熟练使用Oracle或其他大型数据库系统;熟悉WinForm和ASP.NET编程;熟练掌握面向对象编程、熟悉设计模式。

岗位职责:负责分析需求、软件设计;负责公司Web项目程序开发。

2 面向对象内容重构

明确OOA、OOD、OOP的教学内容和相互关系,对涉及面向对象内容的课程进行重构。通过OOA分析,建立概念模型,其构造和评审的顺序有五个层次:类和对象层,属性层,服务层,结构层,主题层。通过重构,以图书管理系统项目为载体,为OOA各分析层次设计合适案例,如下所示:

(1)类和对象层(标识对象和类):图书、读者、管理人员。

(2)属性层(对象所保存的信息及存在哪些特殊的限制):图书=ISBN+书名+作者+单位+出版社;读者=读者编号+姓名+性别+部门名称+读者类别;管理人员=员工编号+姓名+性别+密码。

(3)服务层(对象收到消息后执行的操作):读者:借阅图书、归还图书、交纳罚款;管理人员:管理图书、管理读者。

(4)结构层(一般与特殊,整体与部分):读者←学生读者/教师读者/教辅读者;工作人员←借阅操作员/档案管理员/系统管理员;图书←图书基本信息+出版社信息;借阅信息←读者+图书。

(5)主题层(对模型进行划分,给出模型的整体框架,划分出层次结构):数据访问主题层(通用数据库访问接口、SQL Server数据库访问);借阅管理主题层(图书借阅管理);信息维护主题层(图书信息管理、读者信息管理、管理人员管理);系统操作主题层(界面设置、日志管理、数据备份与恢复)。

OOD阶段利用OOA阶段中提到的五个层次,建立系统的四个组成部分:问题论域、用户界面、任务管理和数据管理。重构后OOD各个组成部分的相应案例设计如下所示:

(1)问题论域(主要根据需求的变化,对面向对象的分析阶段产生的模型中的类和对象,结构,属性,操作进行组合和分解,根据面向对象的设计原则,增加必要的类,属性和关系):图书分解:图书信息+中图分类信息+条形码信息+出版社信息;图书信息=ISBN+书名+单价+印刷者+开本+印张+字数+印数+出版日期+印刷日期+作者+译者+描述;读者分解:读者信息+读者类别信息+部门信息;读者信息=借书证号+姓名+性别+办证日期+有效截止日期+联系电话+电子邮箱;读者类别信息=读者类别编号+读者类别名称+最多借阅数量+最长借阅期限;部门信息=部门编号+部门名称+负责人+联系电话。

(2)用户界面:把交互的细节加入到用户界面设计。

(3)任务管理(当系统中有许多并发行为时,需要依照各个行为的协调和通信关系,划分各种任务):借阅图书任务:(读者)提供借书证→(借阅操作员)核查借书证→(借阅操作员)核查图书信息→(借阅操作员)记录借阅信息→(读者)领到图书;归还图书任务:(读者)提供图书→(借阅操作员)核查借书证→(借阅操作员)核查图书信息→(借阅操作员)记录归还信息。

(4)数据管理(提供存储和检索对象的基本结构,包括对永久性数据的访问和管理):系统数据库(备份镜像表);图书数据库(数据表、存储过程、索引、视图等)。

OOP是对OOD的具体化实现,它最重要的特征是面向对象理论的广泛应用,它的成果是可运行的实际系统。重构后OOP各个知识点的相应案例设计如下所示:

(1)封装性。

字段、方法与属性:[读者类]字段:读者编号、姓名、性别;属性:姓名;方法:借阅图书

访问区分符:[读者类]protected字段;public属性和方法

名称空间:ET(教师读者类、学生读者类)

(2)继承性。

类继承:[抽象]读者类←教师读者类/学生读者类继承

接口继承:读者类实现借阅操作接口

(3)多态性。

重载和覆盖:借阅方法(读者类←学生读者类)

(4)其他。

静态技术:静态字段:图书数量

封装类:[封装类]学生读者类

3 提炼能力培养模型

据对面向对象内容进行重构,重点提炼软件工程师岗位职责中要求的职业技能,并将其分散到面向对象相关课程中,按由浅入深、由具体到抽象的规律,分阶段教学。重构后软件技术专业主干课程设置如图2。

更重要的是,重构后各课程的重点发生了变化:通过《C#程序设计基础》和《C#高级程序设计》课程使学生熟练掌握OOP技术;继续在《C#高级程序设计》课程中贯彻OOD思想,并辅以《SQL Server数据库原理与应用》课程,使学生基本具备一定的OOD能力;通过《ASP.NET程序设计》和《UML系统建模与设计》高级课程强化学生的OOD能力,并积极向学生灌输OOA意识。重构后各门课程所培养的专业技能与对应岗位任务/层次如下:

(1)C#程序设计基础(56课时)

控制结构(52课时):会进行顺序结构、选择结构和循环结构程序设计。

数组(4课时):会使用数组进行程序设计。

(2)SQL Server数据库原理与应用(70课时)

数据库和数据表(10课时):会管理数据库和数据表。

数据更新;数据查询;索引和视图;存储过程和触发器(60课时):会执行数据更新;会进行数据查询;会管理、使用索引、视图、存储过程和触发器。

(3)C#高级程序设计(56课时)

类、字段、方法和属性(4课时):会定义类;会创建对象;会引用对象的属性和方法。

类、接口和继承(10课时):会有效组织类、接口和枚举,会实现类的继承。

重载和覆盖(8课时):会使用重载实现一组功能相同的同名方法,会在子类中覆盖接口或父类中的方法。

静态技术(4课时):会定义和引用静态字段;会定义和调用静态方法;会定义和引用静态属性;会定义静态类并引用静态成员。

图书管理系统实现(30课时):会使用C#编写组件和控件;会使用ADO.NET访问数据库;会实现图书管理系统的各项功能。

(4)ASP.NET程序设计(70课时)

电子商城分析(2课时):会进行电子商城的需求分析。

电子商城架构设计(160课时):会设计电子商城的系统架构和详细设计。

电子商城实现(52课时):会使用ASP.NET(C#)编程实现电子商城。

(5)UML系统建模与设计(56课时)

用例图(8课时):会识别系统涉众;会绘制用例图。

类图/对象图(8课时):会绘制类图和对象图。

动态图(40课时):会绘制活动图、状态图、时序图和协作图。

4 小结

本研究所开发的案例采集于图书管理系统项目,通过该项目合理地将图书管理过程中所涉及的知识点分散到各个面向对象内容中,让学生易于理解。

参考文献

[1]彭勇,刘志成,翁健红.基于项目的高职软件技术专业人才培养方案与课程标准[M].高等教育出版社,2008.11.

[2]吴建,郑潮,汪杰.UML基础与Rose建模案例[M].人民邮电出版社,2007.4.

面向对象分析和设计 第2篇

面向对象分析与设计试题B卷

一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分)3.下列不属于面向对象技术的基本特征的是()。

A.封装性

B.模块性

C.多态性

D.继承性

4.面向对象程序设计将描述事物的数据与()封装在一起,作为一个相互依存、不可分割的整体来处理。

A.信息

B.数据隐藏

C.对数据的操作

D.数据抽象

5.关于面向对象方法的优点,下列不正确的叙述是()。

A.与人类习惯的思维方法比较一致

B.可重用性好

C.以数据操作为中心

D.可维护性好 8.下列不属于类的成员函数的是()。

A.构造函数

B.析构函数

C.友元函数

D.拷贝构造函数

9.继承机制的作用是()。

A.信息隐藏

B.数据封装

C.派生新类

D.数据抽象

14.()是从用户使用系统的角度描述系统功能的图形表达方法。

A.类图

B.对象图

C.序列图

D.用例图

15.()是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。

A.对象图

B.组件图

C.类图

D.配置图

16.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。

A.对象图

B.协作图

C.状态图

D.序列图

17.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。

A.组件图

B.协作图

C.状态图

D.配置图

18.在用UML进行数据库的分析与设计过程中,()就是进行数据库的需求分析,使用用例图、类图、顺序图、活动图等建立业务模型。

A.逻辑数据模型设计

B 业务Use Case模型设计

C.物理数据模型设计

D.物理实现设计

19.使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

A.业务Use Case模型设计

B.逻辑数据模型设计 C.物理数据模型设计

C.物理实现设计 20.UML的动态建模表示包含()种图。

A.9

B.5

C.4

D.2

二、填空题(每空 1 分,共 20 分)1.面向对象开发方法一改过去传统的以_______________为基础的______________的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_______的集合,其______________又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的______,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与____________在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的________、________、_________等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服____________。因此,它已成为成熟的广为采用的软件开发方法。

2.对象是客观实体的抽象表示,是由__________________________和________________________两部分组成。而______是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___________。通过________关系又可形成一种类层次结构。

3.UML中用于描述系统的静态建模的视图称为静态视图,包括________、_________、_________、__________和__________。

四.简答题(每空4分,共 20 分)1.简述面向对象软件开发方法的优点。2.简述面向对象技术的三大机制。3.简述OOA模型的层次结构。

4.简述OOD模型的总体结构,并画图表示。

5.应用UML进行系统分析和设计所需建立视图有那几种?

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

五.试用UML对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2)成绩管理功能。试完成下列工作:(1)建立系统静态结构模型—画出系统用例图和类图;(10分)(2)建立系统动态结构模型—画出系统序列图和协作图;(10分)(3)建立关系数据库逻辑模型。(10分)

面向对象分析与设计试题参考答案

一、单项选择题(每小题 1 分,共 20 分)

1.D

2.C

3.B

4.C

5.C 6.D

7.D

8.C

9.C

10.D 11.B 12.B 13.B

14.D

15.C 16.D 17.D 18.B

19.B

20.C

二、填空题(每空 1 分,共 20 分)

1.功能分析, 面向过程, 对象,面向对象的设计, 概念,解空间,封装, 继承, 多态, 软件危机 2.描述对象属性的数据,四.简答题

1.简述面向对象技术发展的动因。

答:为了超越程序复杂性障碍,克服软件危机,人们提出了面向对象软件开发方法。面向对象开发方法一改过去传统的以功能分析为基础的面向过程的结构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列对象的集合,其面向对象的设计又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。因此,它已成为成熟的广为采用的软件开发方法。请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

2.简述面向对象技术的三大机制。答:(1)封装性(encapsulation)

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” , 类,实例,继承

3.用例图、类图、对象图、包图、构件图、配置图 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。(2)继承性

如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。前一个类称为父类,新产生的类叫做子类。通过继承关系可形成一种类层次结构,叫做继承结构。(3)多态性

在类层次结构的不同类中,可用相同的函数名实现功能不同的函数。3.简述OOA模型的层次结构。

答:OOA模型采用五层次结构,它们分别是:(1)对象-类层

划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。(2)属性层

定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。(3)服务层

表示对象的服务或行为,即是要定义类上的操作。(4)结构层

标识现实世界中对象之间的关系。当一个对象是另一个对象的一部分时,用“整体-部分”关系表示;当一个类属于另一个类时,用类之间继承关系表示。(5)主题层

可将相关类或对象划分为一个主题。4.简述OOD模型的总体结构,并画图表示。OOD体系结构的各个部分内容:(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。

(2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

(3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。

(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括:

— 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。

— 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。

class & object layer(类及对象层)attribute layer(类及对象层)service layer(服务层)问题论域部分人机交互部分任务管理部分数据管理部分类边界实例边界实例连接属性消息服务struct layer(结构层)subject layer(主题层)主题图1.5 OOD模型的总体结构5.(1)系统用例图如下

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

查询课程信息老师老师查询学生成绩选课注册学生学生查询课程成绩管理老师信息学生成绩管理管理学生信息管理员管理课程信息管理开设课程管理员成绩统计(b)成绩管理的用例图(a)选课管理的用例图

对象类图如下:

教师编号姓名地址电话1..*0..*课程课程名描述学时加入课程()1..*0..*学生编号姓名地址电话开设课程课程名授课日期授课时间地点指定老师()学生满否()选修课程学生名课程名学期增加记录()选课统计()(a)选课对象类图开设课程课程名授课日期授课时间地点指定老师()学生满否()学生成绩登记学生名学期课程名成绩加入成绩()打印()(b)成绩管理对象类图成绩统计学期课程名成绩按课程统计()按学生统计()打印()

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

(2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:

学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)课程(课程号、课程名、描述、学分、学时、性质、备注)

开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)

面向对象的软件设计技术 第3篇

关键词:面向对象;特征;软件分析;设计技术

中图分类号:TP319文献标识码:A文章编号:1007-9599 (2011) 06-0000-01

Object-oriented Software Design Technology

Shi Tong

(Shanghai East China Normal University,Shanghai200062,China)

Abstract:This paper introduces an object-oriented concepts and features,as well as object-oriented software development and design of the correlation analysis,explore the object-oriented software development technology,the main content,which includes object-oriented requirements analysis techniques,surface System design technology to the object,object-oriented programming techniques and object-oriented testing techniques.

Keywords:Object-oriented;Features;Software analysis;Design technology

一、引言

随着传统结构化方法的软件开发技术的弊端不断凸现,人们逐步转向了面向对象的软件开发技术,到上世纪90年代,面向对象技术是软件开发技术中核心的开心技术,虽然近年IT界已经提出了面向服务的软件开发技术,但由于其在软件业的应用不成熟性和一些局限性,和面向对象技术的相关优势,其仍然是当今软件开发与设计的核心技术之一。

二、面向对象

(一)面向对象

1.面向对象就是把现实世界中任何一种事物看作一种可以被认识的对象,并对其具有的相关属性和行为进行发现和研究。而面向对象技术的基本思想实现了从现实世界到计算机世界的映射,即现实问题空间到计算机的解空间,其中,问题空间到解空间为自然映射的抽象,解空间到问题空间为真实而完整的反映映射。

2.对象:是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,对象表示具体的事物和抽象的规则、计划或事件。

3.类和实例:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,或者说,类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

4.消息和方法:对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。

(二)面向对象的特征

1.对象唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。

2.抽象性。抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。

3.继承性。继承性是子类可以自动共享父类的数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

三、面向对象的软件分析与设计

(一)面向对象的需求分析技术。按照软件工程角度来说,面向对象的需求分析是软件开发过程中的需求分析阶段,其主要是运用面向对象技术和面向对象的思想对问题空间进行思考,分析,研究等工作。面向对象的需求分析一般采用方法包括自顶向下和自底向上的方法进行系统建模。

(二)面向对象的系统设计技术。面向对象的系统设计技术阶段的主要任务就是计算机世界的解空间中的相关对象和对象之间的关系进行模型化,根据相互联系,将对象进行类型划分。具体来说,即根据需求分析的内容和相关说明,将需求分析阶段的工作进行形式化的说明和描述,达到功能规格说明,并进行层次地逐步地细化,直到细化到能用面向对象的程序语言设计和实现为止。系统设计阶段要围绕以数据为中心,程序设计与数据相结合的设计方法。

(三)面向对象的程序设计技术。面向对象的程序设计技术是面向对象的系统设计的后期工作,是对计算机世界的解空间进行具体地实现,其工作与具体的程序设计语言是不相关的,与解空间的实现策略是相关的。在确定策略后,实施程序设计的步骤,如图1所示。

(四)面向对象的测试技术。面向对象的测试技术就是采用面向对象的方法开发系统测试,与其他的测试没有本质的区别。系统测试的目的在于检测系统的正确性和稳定性,测试步骤是从局部测试开始,再到整体测试。局部测试是对系统中部分构件的综合测试,整体测试是对整个系统进行综合、全面和局部与局部之间的联系性、稳定性的检测。测试技术最主要的测试方法是“主攻型”的综合性测试,尤其在软件的开发期间,表现尤为重要。

四、总结

软件的质量与软件的开发技术与方法是密切相关的,人们针对软件质量的要求,提出了多种软件开发技术和方法,但都遇到了软件维护方面的多种问题,尤其在采用结构化的软件开发方法。面向对象的软件设计和方法提供了以往开发方法更好的解决办法,其以数据为软件的开发中心,结合用户需求和系统功能进行系统结构的建立和设计,最后形成软件的框架与结构。

参考文献:

[1]倪彬.面向对象的系统分析[J].软件世界,1995,96(2)

[2]陈余年,方美琪.面向对象软件工程[M].北京:清华大学出版社,1999,2

[3]张海藩.软件工程导论[M].北京:清华大学出版社,1998,1

面向对象分析和设计 第4篇

本文首先分析了Action Script 3.0作为面向对象程序设计语言的特点, 然后针对Action Script 3.0的特点提出了针对Action Script 3.0的教学设计方法。在教学过程中, 经过数年的实践和调整, 教学成果较为理想。

一、Action Script3.0面向对象程序设计语言的特点分析

1. 严谨的面向对象程序设计概念。

与脚本语言Action Script2.0不同, Action Script3.0是完全意义上的面向对象程序设计语言, 具有类、对象、包、继承、多态等面向对象概念。

2. Action Script3.0具有与C语言和Java等语言不同的语法表达。

Action Script 3.0具有与C语言和Java语言不同的基本语法表达。在实际教学中, 对于已学习过其他语言的同学来说, 需要注意明确指出这种区别, 以便减少学生由于基本语法上的混淆而影响实际程序的开发。以下列举几种基于不同语言的基本语法表达的异同: (1) 变量的定义和赋值。基于C语言和Java语言的整数类型a变量定义并赋值为6的语句如下:int a=6;基于Action Script 3.0同样表达以上含义的语句则为:var a:int=6;如上文的语句所显示的, Action Script3.0中变量定义采用关键词var, 即variable的缩写, 而该变量的类型则通过变量名后加冒号 (:) , 冒号后面是指定的类型。 (2) 数组的定义和赋值。Java和C语言中常用的数组定义和赋值语句如下:int a[5]={1, 2, 3, 4, 5};Action Script 3.0中可以用以下语句对数组定义和赋值:var a:Array=[1, 2, 3, 4, 5];与定义变量的语法类似, Action Script 3.0中, 采用关键字Array定义变量a为数组类型。 (3) 函数的定义和赋值。C语言中常用的函数定义语句如下:int max (int a, int b) {};Action Script3.0中函数定义语句如下:function max (a:int, b:int) :int{}。

3. Action Script3.0具有与Java等面向对象语言不同的概念。

除类、对象、包、继承、多态等面向对象概念外, Action Script3.0还有独特的概念, 如名称空间, 也称为命名空间。这一概念在XML等技术中被采用, 但是Action Script3.0中的名称空间的概念与XML中的又有不同。这些异同点在教学过程中需要阐述清楚, 并且在学生实践过程中出现语法错误时及时纠正, 帮助学生尽快掌握Action Script 3.0特有的语法表达。

4. 实用的可视化实例交互控制功能。

对可视化素材实例的交互操作功能是Action Script 3.0的重要优点。Action Script 3.0是Flash自带的脚本语言, 活用Flash本身的强大动画制作能力, 采用Action Script 3.0可以非常便利地实现对可视化素材进行交互式操作, 从而实现具有丰富视觉效果的交互系统。具体方法是通过Flash制作可视化素材, 将该素材定义为可视化类, 然后在脚本程序中可以按照生成类的实例化对象的方法, 定义可视化类的实例化对象。对可视化素材的实例化对象的操作, 是通过Action Script 3.0的事件机制实现的, 通过定义不同的事件类型和事件侦听器, 达到对可视化素材直接操作的效果。

二、Action Script3.0的教学设计

由于Action Script3.0所具有的特色, 在教学过程中采取了以下几种教学方法, 获得了很好的教学效果。

1. 采用对比法和类比法学习面向对象概念。

根据上文对Action Script 3.0语法特点的分析, 在实际教学过程中根据基础不同的学生采用不同的教学方法。本专业的很多学生在学习本门课程之前学习过C语言或Java语言, 针对这部分学生, 由于有以往学习的经验, 在掌握编程思想以及面向对象编程思想时是有利的, 然而根据以往的经验, 这部分学生对Action Script 3.0语法最初很不适应, 如果不能及时地帮助学生区分这些异同, 会大大降低学生继续深入学习的兴趣, 使一部分不能克服的学生在后面的学习中感到非常困难, 甚至不能体会Action Script 3.0开发的精髓。

2. 注重可视化案例设计。

Action Script 3.0在可视化方面的优秀表现是我们确定该项内容为教学重点的原因。为了使学生更好地熟悉和掌握这种技术, 在教学过程中我们制作了各种常用的可视化素材的交互控制应用, 在演示案例并详细讲解相关代码含义的基础上, 设置类似的工作任务, 引导学生在模仿的基础上能够开发自定义功能, 达到对相关知识的理解和掌握。

3. 引导交互功能的设计与实现。

学生通过学习和实践在掌握了Action Script 3.0的编程内容以后, 再在教学进程中安排Action Script 3.0程序设计的实训课程, 在此环节, 设计了不同主题的游戏任务, 在学生任务书中从技术要点方面对学生需要完成课题的难度、结构、组织方式、工作时间以及工作规范等内容进行了明确要求。学生按照4~6人一组进行分组, 具体的游戏内容和游戏规则由组长带领组员共同商讨进行, 并将小组内成员的具体分工和指导教师共同讨论, 并达成一致。

实践表明, 绝大多数学生可以按照计划完成最初策划的基本内容, 在实际开发的过程中, 也会对最初的策划进行一定程度的修改。在此过程中, 有的学生可以很巧妙地应用之前学习过的案例, 并进一步发展以实现自己设计的功能, 从而加深了对所学内容的理解并且进一步提高了学习的兴趣。

三、总结

本文总结了Action Script 3.0程序设计课程的多年教学经验, 首先分析了Action Script 3.0作为面向对象程序设计语言的特点, 然后针对Action Script 3.0的特点阐述了针对Action Script 3.0的教学设计方法。相关的教学方法在教学过程中, 经过实践和调整, 取得了较为理想的教学效果。通过本门课程的学习, 学生采用相关技术, 多次在省级和国家级竞赛中策划、获奖、开发各类系统以及进行毕业设计等, 达到了学以致用的目的。

摘要:本文分析了面向对象程序设计语言Action Script3.0的特点, 以此为依据, 提出了该课程在教学上的组织形式、教学案例设计、学习方法引导以及实训项目开展等方面的教学尝试。经过教学实践, 证明了所提出教学方法对于提高学生的学习兴趣、发挥学生的学习主动性等方面具有较好的效果, 有助于学生理解和掌握面向对象程序设计语言的概念以及Action Script3.0程序设计应用。

关键词:面向对象程序设计语言,Action Script3.0,案例设计,教学方法

参考文献

[1]朱喜福.Java程序设计[M].北京:人民邮电出版社, 2008.

[2]翟宝利, 等.Action Script3.0从入门到精通[M].北京:化学工业出版社, 2009.

[3]沈钧, 李庆.风云ⅡFlash CS3 Action Script3.0游戏开发基础与范例[M].北京:电子工业出版社, 2008.

面向对象分析和设计 第5篇

王大夫在小镇上开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。王大夫需要一个软件系统来管理预约。

当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。

系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关系所有病人的每天和每周工作安排。

1、建立牙科诊所管理系统的对象模型。

2、建立牙科诊所管理系统的用例模型。

3、用数据流图建立所述牙科诊所管理系统的功能模型。

4、画出牙科诊所管理系统的状态图。

1、建立牙科诊所管理系统的对象模型

(1)词法分析,找出(名词)作为对象的候选者;

王大夫在小镇上开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。王大夫需要一个软件系统来管理预约。

当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。

系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关系所有病人的每天和每周工作安排。

(2)找出问题域中对象,对候选对象进行严格筛选,从中删除不正确的或不必要的,只保留确实应该记录其信息或需要提供服务的那些对象。

王大夫(牙医的实例)

小镇(牙科诊所的地址属性)

牙科诊所

牙科助手 牙科保健员 接待员(外部角色,不是问题域内的对象)

软件系统(与“系统”同义,指将来开发的软件产品)

预约

病人

预约登记表 就诊时间(与“预约时间”,“约定时间”同义,都是“预约登记表”的属性)

预约时间 约定时间 系统

名字(与“姓名”同义,是病人记录的属性)

记录的病人数据(即“病人记录”)

病历号(病人记录的属性)

姓名

日期(“预约登记表”的属性)

预约信息(与“病人清单”包含的信息基本相同)

病人清单

病人记录

电话号码(病人记录的属性)

每天工作安排 每周工作安排

(3)确定问题域中对象彼此之间的关系。

1牙科诊所11..*病人清单1..*1预约登记表111..*工作安排1..**预约11病人记录1病人1..*每天工作安排每周工作安排

2、建立牙科诊所管理系统的用例模型。

牙科诊所管理系统<>完成预约*1111*查询预约*职员*更新预约<><>取消预约<>1*牙医1打印工作安排访问预约登记表<><>访问病人记录*

3、用数据流图建立所述牙科诊所管理系统的功能模型。

1查询病人数据病人数据病人数据D1病人记录姓名病人日期2查询预约日期有效日期3完成预约预约信息7打印工作安排每天和每周工作安排牙医4取消预约姓名/日期预约信息预约信息预约信息预约信息职员姓名5更新预约D2预约登记表预约信息姓名/日期6查询预约预约信息职员

4、画出牙科诊所管理系统的状态图。

牙科诊所管理系统的主要功能是实现病人预约,状态图如下,图中把除了完成病人预约之外的事务笼统地称为日常事务。

浅谈面向对象设计方法发展史及现状 第6篇

【关键词】面向对象 程序设计 发展史 UML

1 面向对象特征概述

面向对象设计是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。对象是由数据和操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。面向对象程序设计具有抽象性、封装性、继承性和多态性等特征。

抽象:指从事物中舍弃个别的、非本质的特征,而抽取共同的、本质特征的思维方式。

封装:将数据和代码捆绑到一起,避免了外界的干扰和不确定性。对象的某些数据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。

继承:让某个类型的对象获得另一个类型的对象的特征。通过继承可以实现代码的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有自己的新特性。

多态:指一般类和特殊类可以有相同格式的属性或操作,但这些属性或操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。

2 面向对象设计方法发展历史

在这里把面向对象方法的发展分为三个阶段:雏形阶段、完善阶段和繁荣阶段。

(一)雏形阶段

1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,首先引入了类的概念和继承机制,它是面向对象的先驱。1972年Palo Alno研究中心(PARC)发布了Smalltalk-72,其中正式使用了“面向对象”这个术语。Smalltakl的问世标志着面向对象程序设计方法的正式形成。

可以说出现了面向对象语言之后,面向对象思想才得到了迅速的发展。过去的几十年中,程序设计语言对抽象机制的支持程度不断提高:从机器语言到汇编语言,到高级语言,直到面向对象语言。汇编语言出现后,程序员就避免了直接使用0-1,而是利用符号来表示机器指令,从而更方便地编写程序;当程序规模继续增长的时候,出现了Fortran、C、Pascal等高级语言,这些高级语言使得编写复杂的程序变得容易,程序员们可以更好地对付日益增加的复杂性。

(二)完善阶段

PARC先后发布了Smalltalk-72、76和78等版本,直至1981年推出该语言完善的版本Smalltalk-80。Smalltalk-80的问世被认为是面向对象语言发展史上最重要的里程碑。迄今绝大部分面向对象的基本概念及其支持机制在Smalltalk-80中都已具备。它是第一个完善的、能够实际应用的面向对象语言。但是随后的Smalltalk-80的应用尚不够广泛,其原因是:

追求纯OO的宗旨使得许多软件开发人员感到不便。

一种新的软件开发方法被广泛地接受需要一定的时间。

针对该语言的商品化软件开发工作到1987年才开始进行。

(三)繁荣阶段

从20世纪80年代中期到90年代,是面向對象语言走向繁荣的阶段。其主要表现是大批比较实用的面向对象编程语言的涌现,例如C++、Objective-C、Object Pascal、CLOS、Eiffel和Actor等。这些面向对象的编程语言分为纯OO型语言和混合型OO语言。混合型语言是在传统的过程式语言基础上增加了OO语言成分形成的,在实用性方面具有更大的优势。此时的纯OO型语言也比较重视实用性。现在,在面向对象编程方面,普遍采用语言、类库和可视化编程环境相结合的方式,如Visual C++、JBuilder和Delphi等。面向对象方法也从编程发展到设计、分析,进而发展到整个软件生命周期。

到20世纪90年代,面向对象的分析与设计方法已多达数十种,这些方法都各有所长。目前,统一建模语言已经成为世界性的建模语言,适用于多种开发方法。把UML作为面向对象的建模语言,不但在软件产业界获得了普遍支持,在学术界影响也很大。在面向对象的过程指导方面,目前还没有国际规范发布。当前较为流行的用于面向对象软件开发的过程指导有“统一软件开发过程”(RUP)和国内的青鸟面向对象软件开发过程指导等。

3 面向对象设计方法应用现状

当前,面向对象方法几乎覆盖了计算机软件领域的所有分支。例如,已经出现了面向对象的编程语言、面向对象的分析、面向对象的设计、面向对象的测试、面向对象的维护、面向对象的图形用户界面、面向对象的数据库、面向对象的数据结构、面向对象的智能程序设计、面向对象的软件开发环境和面向对象的体系结构等。此外,许多新领域都以面向对象理论为基础或作为 主要技术,如面向对象的软件体系结构、领域工程、智能代理、基于构件的软件工程和面向服务的软件开发等。

4 结语

计算机软件技术的发展日新月异,在很短的时间内即涌现出了大量的软件开发工具并迅速地更新换代,给编程人员进行程序设计带来了极大的方便。在不久的将来相信面向对象程序设计技术必将应用到更多的程序中。

【参考文献】

[1] 麻志毅,著.面向对象分析与设计.机械工业出版社,2013,2.

面向对象分析和设计 第7篇

面向对象程序设计提出了一种新的系统设计模型,它将系统看成通过交互作用来完成任务的对象的集合,每个对象用自己的方法管理数据[2]。它允许抽象化、模块化的分层结构,具有多态性、继承性和封装性。面向对象的程序设计考虑如何通过创建对象来简化程序设计,提高代码的可重用性。目前已经衍生出许多种OOA方法。每种方法都有各自的进行产品或系统分析的过程,有一组可描述过程演进的图形标识,以及能使软件工程师以一致的方法建立模型的符号体系。广泛使用的OOA方法有以下几种。

Booch方法包含“微开发过程”和“宏开发过程”。微开发过程定义了一组任务,并在宏开发过程的每一步骤中反复使用它们,以维持演进途径;Booch OOA宏开发过程的任务包括标识类和对象、标识类和对象的语义、定义类与对象间的关系,以及进行一系列求精,从而实现分析模型。

Rumbaugh方法和Rumbaugh同事提出的对象模型化技术用于分析、系统设计和对象级设计。分析活动建立三个模型:对象模型、动态模型和功能模型。

Coad和Yourdon方法常常被认为是最容易学习的OOA方法。建模符号相当简单,而且开发分析模型的导引直接明了。

Jacobson方法也称为面向对象软件工程。Jacobson方法与其他方法的不同之处在于它强调使用实例,用以描述用户与系统之间如何交互的场景[3]。

统一建模语言UML已经在企业中广泛使用,它具有面向对象、可视化、独立于过程、独立于程序设计语言和易于掌握使用的特点。把Booch、Rumbaugh和Jacobson等各自独立的OOA和OOD方法中最优秀的特色组合成统一的方法,UML作为一种建模工具已成为国际标准。

2 基于UML面向对象分析设计过程

运用UML进行面向对象的系统分析设计,其过程通常由以下3个部份组成:

2.1 识别系统的用例和角色[1]

首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,再使用UML建模工具画出系统的用例图,同时,勾画系统的概念层模型,借助UML建模工具描述概念层类图和活动图。

2.2 进行系统分析,并抽取类

系统分析的任务是找出系统的所有需求并加以描述,同时建立特定领域模型。建立域模型有助于开发人员考察用例,从中抽取出类,并描述类之间的关系。

2.3 系统设计,并设计类及其行为[5]

设计阶段由结构设计和详细设计组成。1)结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制。包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系。2)详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。

3 基于UML的Rational ROSE面向对象设计过程

现以某金融贸易系统为例说明UML建模的具体过程。该过程主要包括:理解需求、分析、设计、实现、测试和配置。

首先进行需求分析,这是一个决定系统能否符合用户需求的关键步骤,该阶段的好坏直接影响到设计的进度以及质量。需求分析主要是定义用例,对该系统的主要功能进行描述,从而确定系统的功能需求,在这部分主要应用的是用例图,用例图要详尽地表示系统的各种关系。在该系统中各角色的关系如图1所示。

从中我们可以清楚地看出各个角色之间的关系,所以在进行系统的设计、实现时可以减少盲目性。在需求分析时,要注意领域分析以及类与对象的定义。

其次进行的是设计,设计一般分为架构设计和详细设计。这部分主要包括定义包、描述包间的相关性和基本的通信机制。注意要减少相关的二义性以及与用户的接口设计。

再进行的是实现,在这个过程中UML的优点可以得到长足的体现:运用Rational ROSE提供的环境将前几步设计的图进行分析,然后可以转换成自己所熟悉的高级语言,并在高级语言中进行编辑,在高级语言的环境中我们可以看到UML把图转换成系统的程序设计的结构框架。并且,在进行该系统扩展时只需要在前两步设计的图中进行更改,从而改变程序框架,彻底改变了传统设计中更改所带来的复杂性与潜在的危险性。

在进行测试的时候同样可以运用UML,将整个系统分为不同的单元,然后将各个单元作为一个“黑盒”,运用不同的图进行“黑盒”测试。将测试后的结果再返回到设计实现中进行分析。将完整无误的软件与需求说明结合,从而可以顺利地进行配置[4]。

可以看出:UML的图运用于整个系统设计的全过程,减少了设计盲目性,提高了设计效率。

4 结束语

UML是一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、统一化、标准化且更完善的系统模型。使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性。实现面向对象开发方法的标准化以后,可以避免不同方法的差异,提高软件重用效率。另外,统一面向对象开发方法也就是综合每个面向对象方法的优点,最大限度地发挥各种方法的长处。但是由于他自身发展的程度决定了目前他还不能取代现有的各种面向对象的分析与设计方法。但是随着UML进一步发展,必将有助于实现软件自动化。

摘要:该文描述了面向对象方法的思想及主要的几种设计方法。探讨了基于UML进行面向对象的系统分析及设计思想,提出了一种实用的基于UML的分析设计过程,并论述了UML的应用及基于UML的Rational ROSE面向对象设计过程。

关键词:面向对象,UML,分析设计,ROSE

参考文献

[1]蒋慧,吴礼发,陈卫卫.UML设计核心技术[M].北京:北京希望电子出版社,2001:22-40.

[2]North K.面向对象的数据库程序设计[M].北京:电子工业出版社,1996:40-45.

[3]陈增荣.软件开发方法[M].上海:复旦大学出版社,1997:35-50.

[4]邓良松,刘海岩,陆丽娜.软件工程[M].西安:西安电子科技大学出版社,2000:70-80.

面向对象分析和设计 第8篇

1 Geodatabase数据模型

地理数据模型是是由一系列支持地图显示、查询、编辑和分析的数据对象组成的。空间数据库的发展经历了3种数据模型:CAD数据模型、Coverage数据模型和Geodatabase数据模型[1]。

Geodatabase是Arc/Info引入的第三代数据模型,是存放在数据库里的一种新的面向对象的图形数据模型,是矢量、栅格和TIN数据模型的聚合[2]。它采用标准关系数据库技术来表现地理信息的数据模型,将所有的地理数据存储到商业关系数据库中,允许定义要素之间类型的关联,利用商用关系数据库成熟的数据处理能力对空间数据和非空间数据进行统一管理。Geodatabase使用了面向对象的方法,使要素可以具有自己的行为和属性,并且要素类具有继承性、多态性和封装性[3],以更加适合自然的行为和人的思维方式去组织数据,更精确地模拟真实世界。相比于CAD数据模型和Coverage数据模型,Geodatabase数据模型具有明显的优势:在同一数据库中集中管理各种类型的空间数据;可以表达空间数据之间的相互关系;由于对空间要素进行合法性规则检验,空间数据的录入和编辑更加准确;空间数据更面向实际的应用领域,不再是无意义的点、线、面而具有了具体的含义;可以管理连续的空间数据,无需分幅和分块;空间数据的表示更为精确;支持空间数据的版本管理和多用户并发操作。

2 Geodatabase的体系结构和数据组织方式

Geodatabase包含:描述要素的矢量数据、描述影像、grid专题和表面的栅格数据4种地理数据描述方式,描述表面的不规则三角网,查找地理位置的地址数据。地理数据按照以上4种类型,根据工作组、主题类型、坐标系统或者对象间的逻辑关系被组织成数据对象的层次结构,见图1。

3 ArcSDE

地理数据库以层的方式来管理地理数据。具有共同属性项的要素放在同一层中,每个数据库记录对应一个要素,每一个要素类在地理数据库中所对应的表作为一个图层。从空间数据管理的角度看,SDE可看成是一个连续的空间数据模型[4]。借助这一模型,可以将空间数据加入到关系数据库管理系统(RDBMS)中去。SDE为数据库中各层的所有要素都建立了索引,将层从逻辑上分成一个个小块,称为cell,层中的要素则分解到各cell中加以描述,并将此描述信息写到索引表中。SDE与关系数据库连接方式有以下两种,见图2。

本文的设计中选用SDE客户端与数据库间接连接的方式。Arc SDE在服务器和客户端之间数据传输采用异步缓冲机制,缓冲区收集一批数据然后将整批数据发往客户端应用,而不是一次只发一条记录,在服务器端处理并缓冲的方法大大提高了网络传输效率。

4 设计实例

在华北地区云量覆盖监测系统中,采用Geodatabase数据模型建立了面向对象的空间数据库。数据库后台采用商用关系数据库管理系统Oracle9i和数据库引擎Arc SDE。通过Arc SDE接口,可以在关系数据库中存储空间数据,实现关系数据库的扩展,使得空间数据库成为真正的地理空间数据库。

4.1 数据库的逻辑设计

在SDE的空间数据库中,shape格式的矢量数据及其自带的附加属性表、影像数据都由SDE自动创建各个库之间的关系。至于外部属性数据库1和数据库2,它们通过NAME关键字来与矢量数据中的行政区划层相关联,因为区域名称具有唯一性。各个数据库的关系,见图3。

其中,SDE数据库为各数据库提供基础数据支持,数据库1和数据库2存放区域云量统计数据。数据库1是对应于单个区域的,而数据库2是对应于整个华北地区云量覆盖共同的统计数据,管理维护数据库存放权限管理信息、所有数据库的元数据、数据字典和操作日志,对应于所有数据库。

4.2 数据库的物理设计

1)矢量数据。SDE通过自动建立F表和S表来与所导入表通过FID关联;查询时,知道S表的网格划分,即GRID的划分方式,可以通过SP_FID找到F表对应FID的经纬度信息。

2)影像数据。SDE通过建立RASTER_COLUMNS(SRID外键)元数据表,4个辅助表(SDE_RAS_1,SDE_AUS_1,SDE_BND_1和SDE_BLK_1),以及它们的索引(SPATIAL_REFER-ENCES(SRID主键))来建立与导入的业务表之间的关系,也是通过特征SRID来关联。

3)元数据。Arc SDE通过将信息存入层表LAYERS table来管理空间可用表,层表帮助管理商业表和空间数据之间的连接。SRID是LAYERS的外键,与SPATIAL_REFERENCES相关联。在LARYERS表中的TABLENAME字段存储的是那些包含空间数据列的表在SDE中称为商业表(Business Table)的名称。SPATIALCOLUMN字段中的数据(是个字符串)指明了商业表中存放空间数据列的字段名称。如CREAT这个商业表中存放空间数据的字段名称为FOOTPRINT,打开CREAT这个表,可以看到有FOOTPRINT这个字段,存放数值为1。

在LARYERS表中与WORLD30相对的LARY-ERID是10,所以,WORLD30表所对应的空间数据及其索引一定存放在F10和S10这两个表之中。其中,F10是空间数据表,S10是索引表。在WORLD30这张商业表中,SHAPE是一个标准的NUMBER类型的字段,它只是起到一个索引的功能,即通过SHAPE中的数值就能由F表和S表(其后的数字由这个空间对象的Object ID决定)的FID字段找到与其对应的行。另外,F表中的POINTS字段是一个LONGROW类型的字段,其中存放着空间对象所有坐标值序列的二进制编码。各表间的实体关系,见第78页图4。

5 小结

Geodatabase作为面向对象的GIS数据模型,可以将空间数据和属性数据有效地融合在一起,对于处理复杂地理对象具有极大的优越性。Arc SDE通过TCP/IP横跨任何同构或异构网络,提供从基于文件的系统到RDBMS管理数据系统的平滑升迁,以一种连续的无缝的数据库管理大型地理要素,两者结合实现了面向对象的空间数据库设计。

参考文献

[1]张佐帮,尚颖娟.基于Geodatabase的面向对象空间数据库设计[J].地理空间信息,2005,3(2):33-35.

[2]李莘莘,郑逢斌,王云兰.基于Geodatabase及NET多层架构PGIS的设计[J].微计算机信息,2008,24(1):176-178.

[3]程昌秀,周成虎,陆锋.Arc/Info8中的面向对象空间数据模型的应用[J].地球信息科学,2002,3(1):86-90.

面向对象分析和设计 第9篇

“面向对象分析与设计”是软件工程专业高年级本科生的专业基础课程, 也是后续一系列软件工程专业课程的必备基础。

本课程从传统软件工程的角度入手, 重点介绍有关面向对象的系统分析与设计的概念、原则、技术和方法, 包括采用面向对象的思想进行系统的开发和建模、软件项目的启动和计划、需求获取和结构化、基于UML的系统静态和动态分析、系统设计、测试和维护。并对软件的重用、快速原型法开发和敏捷开发等新技术作了简要的介绍。课程的主要任务是在学生已掌握的面向对象程序设计语言如Java和C#的基础之上, 结合统一建模语言和软件开发的实际案例, 使学生深入理解面向对象技术原理的精髓和实质, 掌握面向对象的软件系统分析和设计方法, 能运用UML建模方法进行面向对象的软件系统分析和设计, 并具有软件开发实践和项目组织的初步经验。

一、分段式教学手段的运用

通过分段式教学将知识体系与实践操作结合起来, 首先通过课堂讲授让学生系统掌握基础理论知识, 接着在理论知识学习的过程使用案例教学的结合, 激发学生的学习兴趣, 引导学生自主学习, 扩大学生知识面, 在下一阶段通过课程设计培养学生动手能力, 启发学生思维, 引导学生创新, 有利于提高学生的设计能力、分析问题与解决问题的能力, 强化学生的软件开发意识和水平。

1) 第一阶段:通过对知识体系的系统介绍让学生快速地掌握面向对象分析的方法以及面向对象的设计模型。教学内容强调多媒体技术与传统媒体相结合的方法, 采用启发式教学, 使学生通过课堂及课后阅读, 了解软件开发技术的发展, 培养学生各项综合能力, 为后续的自主项目开发打下基础。

2) 第二阶段:在知识体系的学习过程中, 加入案例教学, 使学生了解模拟的真实环境, 激发学生的学习兴趣, 培养学生的动手能力, 使得学生提高对已学知识的综合运用能力, 创建良好的软件开发风格。引导学生进行具体实践和问题解决。在该阶段中, 建立课堂教学样本教案, 即将教学过程中累积的授课技巧、授课方法加以总结, 设计每次课程的教学内容、教学手段、教学方法、教学用例。对于每一次课程的样本教案, 都进行认真的研讨, 即对某个教学内容按上课的过程进行设计, 然后把自己设计的教学内容、授课思想、讲课方法、授课用例, 按上课的过程逐步进行说明, 研究每个教学内容的教学目标、重点、难点、讲授方法、教学案例和教学手段, 认真分析实验内容, 通过多次试验、修改、论证和研讨, 力争概念准确严密, 推理清楚, 逻辑性强, 重点突出, 难点分散, 能启发学生思维, 引导学生创新。使得样本教案、电子教案、多媒体课件有机结合, 为现代教学手段的应用提供保证, 也为后一阶段的项目开发, 提供实践依据。

3) 第三阶段:在课程设计环节进行项目实践, 培养学生运用知识、解决问题和团结协作的能力。学生参照工程化开发过程, 结合课内实验、课外操作和在线指导的网上辅导教学平台等多种教学手段, 以多人小组为单位的团队方式完成一个课程项目, 项目题目和需求在教师指导下由学生自主确定, 以鼓励创新。通过实际的练习和讲解加深对案例分析的理解, 实现讲、解、练相结合, 以达到学以致用的目的。

4) 第四阶段:综合测评考核学生综合能力。根据课堂表现, 课后作业, 项目各阶段评审和考试来综合考核成绩。成绩一般由课堂表现、每周作业、课堂及课后笔记、项目阶段审核和项目答辩、期末考试等部分组成。 

以多媒体教学为主、板书为辅、案例引导的方式, 多种教学手段相互补充, 分阶段教学使课堂教学与实践操作相结合。多种手段并用, 可以实现传统媒体与多媒体的优势互补, 最大限度的发挥二者的优势。教师再通过实际项目及软件开发案例为向导, 通过学生参与软件项目开发的全过程, 进一步学习和巩固理论知识, 培养软件开发的实践能力、创新意识和团队协作精神。真正体现了“按照学生的学来设计和组织教师的教、启发、精讲多练、理论和实践相结合”的教学宗旨。

二、课程教学内容及学时分配 (含理论教学、作业、讨论等的内容及要求)

三、课程设计阶段的教学设计

该环节是要求学生在熟悉软件开发过程和方法的前提下, 分小组 (3-5人) , 每组讨论、选择一个中小型软件系统作为后续分析设计实验的题目。

具体流程安排如下:

1) 组队并选定项目题目:以3-5人的自由组合的团队方式完成一个实际或虚拟的软件项目开发。按实验指导书建立开发环境。

2) 参照实验指导书提供的工具使用指南、项目案例和文档模板撰写项目的需求文档。进行阶段评审和交流。

3) 用面向对象方法进行系统设计。提交设计模型文档, 包括架构设计方案、关键构件和关键类的详细设计。进行阶段评审和交流。

4) 编码实现项目系统架构原型;设计或剖析内核框架, 应用设计模式并复用框架优化系统设计;设计或剖析表示层框架, 在复用框架的基础上进行人机界面设计、数据库设计, 提交优化后的设计文档。

5) 项目结束进行答辩, 评选出最佳项目组, 并进行项目最佳实践和最差实践的讨论交流。 

四、实践教学环节的延伸

除本课程的课程设计环节外, 还可鼓励学生参加其他实践活动, 如大学生创新项目的申报, 或参加大学生挑战杯等各类课外设计大赛, 以提高学生创新意识与创新能力, 增强其综合素质和社会竞争力。

五、结束语

通过上述分段式教学方法, 不仅提高了教师科研、教学水平。同时, 将实际的项目开发经验和科研成果与理论教学相结合, 运用了大量实际案例深入浅出地讲解了面向对象系统的思想和精髓。使得该课程能够立足于培养社会经济和人力资源市场急需的应用型人才, 在多个层次上开设了综合性的面向对象系统的项目设计, 按照软件企业先进的管理和开发模式, 使学生在进行应用软件项目开发的过程中, 发现问题, 分析问题、解决问题, 着力培养团队协作精神, 提高了学生的软件设计能力, 较好地解决了面向对象系统教学中实践环节薄弱、理论和实践脱节的问题。

摘要:面向对象分析与设计方法是目前软件开发的主流方法, 是软件工程人才必须掌握的基础知识和必备的能力。本文从该课程的特点出发, 介绍了分段式教学的新手段, 理论结合案例教学的内容, 以及培养综合能力的课程设计。在教学上, 如何引导学生深入思考问题, 培养学生的交流沟通能力、演讲能力、创新能力, 充分发挥学生的能动性。

面向对象分析和设计 第10篇

关键词:网络拓扑,电力图元,面向对象 (OO) ,递归搜索

电网拓扑分析是电力系统许多智能系统的基础。其功能是根据当前电网开关状态的变化对电网进行快速结构识别, 例如切除或投入发电机或负荷、分裂或合并母线等, 通过识别电网结构形成各种电力计算需要的模型数据。因此, 电网拓扑分析质量包括电网结构的正确识别和快速识别, 这也是电网拓扑分析普遍关注的问题。

在计算机计算速度和存储空间快速发展基础上。本文基于网络图形数据库平台[1], 利用面向对象 (OO) 思想[2]将电网中电力元件设计为统一的元件模型、采用统一的数据结构进行存储, 使电力元件各种属性描述简明又不失完善。算法设计上, 利用递归函数简明精练、可读性好、当前流行编程语言都支持递归的特点[3], 在设计的数据结构基础上对电力元件进行递归搜索。

1 电网拓扑模型建立

1.1 单个电力元件模型及数据结构设计

本文采用面向对象 (OO) 思想将电力网络中所有元件都定义为N端口元件, 在图形平台中就是N端口电力图元。如三绕组变压器为三端口元件, 双绕组变压器是双端口元件, 发电机为单端口元件, 母线和T接点等相关联元件不固定的电力元件也定义为N端口元件, 端口数根据实际相关联的电力设备数确定。配网中的电力设备也可以按照以上方法定义为N端口元件。现设计以下电力元件模型“封装”各电力设备:

其中身份标志为该电力元件在全网中的唯一标识;元件种类标志标明电力元件种类 (如母线、三绕组变压器等) ;端口数为该电力元件属于几端口元件;端口关联属性为该端口关联了哪些相连电力元件, 根据端口的个数设计为相应的数组;元件运行状态属性为该元件是否连通;元件其他属性为记录该类电力元件的其他参数属性, 根据同类电力元件设计为数组, 同类元件的不同参数属性按照统一的顺序进行存储;电力图元坐标属性为该电力元件在电力网络图形平台中相应的电力图元的端口坐标, 根据端口的个数设计为相应的数组;访问标志为程序设计辅助参数。根据该设备模型定义以下结构体:

其中Relations Of Port () 在支持指针的编程语言中可以储存指针, 该结构体的逻辑结构如图1。

通过以上设计的数据结构, 电网中所有的电力元件就通过统一的数据结构组织起来。这样组织的电网具有很好的元件种类扩充性。当系统中出现新的电力元件种类时, 只需增加一个元件种类标志, 然后将该种元件的各种参数赋给结构体相应的属性即可。

1.2 电网全网图形构建及数据组织

本文采用图形数据库一体化平台[1], 利用1.1设计的电力元件模型对电力网络进行全网结构描述与数据存储。实现步骤如下:

步骤1:按照数据结构Element定义一个结构数组Record () 。

步骤2:图形设计。采用分层设计的思想, 对所研究范围的中高压电网或配电网进行分区、分厂站进行图形绘制, 同时将电力图元的端口坐标等属性信息赋予结构数组Record () 。

步骤3:电力元件间原始连接关系确定。由于在步骤2中严格定义了所有电力图元的端口坐标并采用了分层设计思想使得通过端口坐标自动计算形成电力元件之间的连接关系有了可能。本文采用文献[1]中的判据生成电力元件间原始连接关系。这样结构数组Record () 的属性Relations Of Port () 就赋予了相应的关联信息。

步骤4:形成后续程序开发需要的结构数组Record_Program () 。将电力元件的ID作为结构数组Record () 的下标赋予Record_Program () , 利用电力元件的关联属性直接读取关联元件的各种属性。

步骤5:电网数据的存储。在实际的电力系统智能软件中, 可以将Record_Program () 中信息按照以下数据库逻辑结构存储在系统数据库中, 以便在下次系统运行时直接通过数据库存储信息构建数组Record_Program () 。

其中Table Of All为父表, 主键为ID和Code;Table OfClass1到Table Of Classk为按照不同类电力元件建立的子表, 通过外键ID和Code与父表关联, Table Of Class Bus为母线等端口数不固定的电力元件表, 对端口关联信息不设计字段, 如果需要可以根据其他电力元件的关联信息获得。

通过以上步骤, 电力网络全网的电力设备及相互间的连接关系就被记录在Record_Program () 或数据库中。这种电力网络结构描述方法在电网中出现删除或增加电力元件时, 只需要改变相应电力元件的关联信息, 故具有良好的电网扩充性。

2 电网拓扑分析模块设计

本文采用1中电网结构描述方法, 采用递归函数对电力元件进行搜索, 搜索模块的算法流程见图2。

其中A处为递归函数的入口, 停止单元件搜索后, 将返回A处。因为采用巧妙的数据结构, 每个电力元件的关联属性直接指向关联元件的数组下标或者地址, 故避免了常规搜索编程中的堆栈操作。

3 算法应用

3.1 高压电网网络分析

电力系统高压电网的网络拓扑分析本质是据开关状态的变化把电网表示成能用于电力系统计算的节点-支路模型。本文利用已设计的数据结构和递归搜索模块来实现以下关键模块:

支路相关联节点电力元件搜索:按照图2, 起始元件编号为支路电力元件编号;i端口关联元件编号是否为新搜索起点主要判断该关联元件的类型是否联络设备及其运行状态, 是联络设备且处于运行状态满足条件;是否操作该关联电力元件的条件是判断该关联电力元件类型, 如该电力元件为节点电力元件, 就将该电力元件记录为支路的关联节点;搜索目的为是否已经寻找到该支路电力元件需要的节点电力元件个数, 同时, 当搜索范围完成后, 还可以通过判断搜索目的是否达到验证电网结构的正确性。

等值节点合并:当分段母线合并运行时, 两节点电力元件在电力计算中实质为同一节点, 须编制同一节点编号。按照图2, 起始元件编号为未访问的厂站节点电力元件 (母线、T节点) 编号;i端口关联元件编号是否为新搜索起点主要判断该关联元件的类型是否联络设备及其运行状态, 是联络设备且处于运行状态满足条件;是否操作该关联电力元件的条件是判断该关联电力元件类型, 如该电力元件为节点电力元件, 就将该电力元件与模块搜索起始元件节点编号等值;搜索目的为是否完成对该节点电力元件相连的电力元件搜索。

3.2 配网网络分析

配网的智能系统开发中, 同样利用设计的数据结构和递归搜索算法实现相应配网管理模块。

用户电源确定:按照图2, 起始元件编号为用户负荷元件编号;i端口关联元件编号是否为新搜索起点主要判断该关联元件的类型是否开关或电缆 (配线) 及其运行状态, 是且处于运行状态满足条件;是否操作该关联电力元件的条件是判断该关联电力元件类型, 如该电力元件为电源电力元件 (厂站母线) , 就将该电源电力元件记录为用户的电源;搜索目的为是否已经寻找到电源电力元件。

停电区域判断:当配电网中某一设备发生故障的时候, 需要确定停电区域。按照图2, 起始元件编号为发生故障元件编号;i端口关联元件编号是否为新搜索起点主要判断该关联元件是位于发生故障电力设备的电源端还是负荷端, 位于发生故障电力设备元件负荷端满足条件;在搜索过程中对搜索过的位于故障设备的负荷端的电力设备都将标记为停电区域;搜索目的为是否搜索完故障电力设备负荷端的电力设备。

4 结论

本文提出了一种新型的电网结构描述与分析方法:利用面向对象 (OO) 思想将所有的电力元件设计为统一的电力元件模型、并将电网中的所有电力元件信息存储在统一的数据结构中。基于这种简明而又完善的数据结构, 采用递归搜索对中高压电网和配网进行电网结构分析。实践证明该方法通用性好、可扩充性强、软件的复用性高, 具有较高的实用性和推广性。

参考文献

[1]吴文传, 张伯明.基于图形数据库的网络拓扑分析及其应用[J].电网技术, 2002, 26 (2) :14~18.

[2]董张卓, 孙启宏, 杜宇, 张世学.基于面向对象技术的实时电网拓扑表示[J].西安交通大学学报, 2005, 29 (3) :88~95.

面向对象分析和设计 第11篇

关键词:面向对象;发电机保护;整定计算;设计

前言

随着我国社会的不断发展,电网规模也在逐渐的趋于复杂化,同时出现了很多新型的技术,一些超高压、交直流等技术都频繁出现,这对于电网安全生产运行的要求逐渐的增高。而整定计算则是对电网的各种原理、结构以及接线的方式都要进行大量的计算,并且对各种情况下的电流以及电压进行分析,整合整定方案,从而保证结果的精确,避免出现故障,随着科技的进步,对于整定计算水平也有了很大程度上的提高,以此对其进行了简单的设计。

1.继电保护以及面向对象的发电机保护整定计算的特点

1.1发电厂继电保护的主要特点

在电力系统中,发电机的稳定运行能够影响到整个电力系统的正常工作,对电能质量起着很重要的作用,并且发电机也是一个十分重要的电气元件,必须要针对其中存在的各种故障以及性能进行分析,从而采取正确的措施,保证电力系统的稳定运行[1]。由于发电机的保护配置十分的复杂,发电厂主要是对于元件的保护,其中保护的主设备是以差动为基本原理,主要是利用阶段式的保护,在时间上能够进行配合。另外,发电厂的保护整定原则十分的不统一,其中保护的类型很多,主要是针对不同的类型采取不同的继电保护方式,所以电厂的整定计算十分的复杂。在实际的整定原则中,由于运行的条件以及方式存在很大的差异,并且为了能够满足不同的电厂保护配置的要求,在继电保护整定计算软件中采取通用性的原则,以此来解决传统的整定原则中存在的问题。

1.2面向對象的发电机保护整定计算的特点

目前,面向对象以及图形化的程序设计整定计算软件逐渐的问世,并且与传统的整定计算的软件相互比较,具有很大的优点,主要是可视化以及图形化,用户能够直接浏览电网的结构,并且能够完成相应的数据信息的输入,同时也能够对故障进行设置。同时在进行计算完毕之后,能够直接查询到相关的计算结果,具有很高的效率,操作也十分的简单。

2.系统的构成

2.1图形模块的构成

对于图形模块的构建,能够使用户对系统直接方便的使用,并且用户能够能够通过图形界面直观的了解到电厂的结构以及设备的信息等,从而实现对数据的修改以及管理[2]。在图形模块上主要是用户提供相应的绘图工具箱,其中包括了发电机、变压器以及断路器等设备,这些被统称为图元,用户可以根据自身的需求进行绘图设置,在设计时,能够输入相关数据,以及图元的各项参数。在具体的设计中,必须要对电器设备进行全面的考虑,对其属性进行分析,主要是利用VC面向对象的编程思想,在本程序中,其中最为基础的便是对象和类别的组建,并且各个元件都具有自身的属性,因此将其进行定义为一个虚基类,作为元件的父类,这样各图的元件将会派生出来,在图元中的数据以及功能将会以成员变量以及函数的关系封装在各个类型的图元中。

2.2数据库模块

数据库是系统中的基础,在后台数据库中主要是储存发电厂电网结构参数以及设备的参数,并且其中的设备参数主要是包括多发电机以及母线电器参数的保护配置信息[3]。在系统中的每个模块都是利用ODBC接口进行访问后台数据库,同时在任何一个模块中进行数据的修改,其结果都会在其他的模块中进行显示,以此来有效的保证系统中饭数据的一致性。ODBC是VC提供的一个数据库访问技术,这样能够为用户提供方相应的数据库类型,同时ODBC所提供的应用程序接口都是统一的,使其访问任何ODBC驱动程序的数据库。在数据库界面的设计上,主要是分为列表说明以及详细说明,用户根据自身的需求进行自由切换,列表方式主要是以表格的方式对数据记录的显示,详细说明方式则是对具体的数据进行记录,利用一些单选框以及编辑框等空间,对各种数据进行使用。

2.3短路计算模块以及整定计算模块

这两大模块是发电厂主接线的基本界面,主要是在短路计算模块以及整定计算模块中添加了短路计算以及整定计算的方式,用户能够点击图元进行计算,但是在这两个模块中,用户无法对图元进行删除以及移动。在模块中是利用多种控件的方式,使界面内容十分的丰富,并且能消除用户在使用时的单调感,从而来提升系统的稳定性以及安全性。这两个模块是系统中最为重要的两个模块,短路计算模块能够计算出电网系统中的故障,并且能计算出带那里系统的运行方式,将计算的结果通过报表的形式显示出来,整定计算模块能够对发电机变压器以及电动机等设备进行全面的计算,将其以定值单的形式显示出来。在对其设计中,两个模块主要是利用传统的设计思路,利用Fortran语言编写的短路计算以及整定计算程序,简单的将其中部分进行修正,使其转变成函数或者是子程序,并且在相关的主系统中调用,主系统是利用VC6.0编写的,因此最好是利用混合语言编程程序对其进行编程,这具有很强的优点,能够有效的提升数据的处理能力以及工作效率。

3.结语

以上主要是对面向对象的发电机保护整定计算机设计进行了简单的设计分析,并且提出了一些设计方案,以此来提升工作的效率,促进电力系统的稳定运行。

参考文献:

[1]钟耀星.县级电网继电保护整定系统研制与应用[D].南昌大学,2013.

[2]高虹霞.电网继电保护整定计算软件的研究[D].华北电力大学(河北),2012.

面向对象程序设计中的对象层次问题 第12篇

Visual FoxPro在支持传统的结构化程序设计的同时,扩展了面向对象程序设计的新特点。现在的编程人员不再是单纯考虑从代码的第一行到最后一行的程序编写,而是由建立对象提供给用户所有的功能。在面向对象程序设计中,一切操作都是针对对象的,而对象的来源就是它所属的类。面向对象程序设计主要是代码包装的方式、代码可重用性及程序易维护性,其中主要的包装叫类。类的层次结构和容器的层次结构是Visual FoxPro中两个独立的范畴。Visual FoxPro的类层次结构是逐层向上查找的,而对象的引用在容器中则是逐层向下查找的。因此,对于程序设计中的对象引用,必须指明相应的层次关系,否则,可能无法找到指定的对象。

2 对象引用

2.1 绝对引用

面向对象程序设计中,若要处理一个对象,就需知道它相对于容器的层次关系,在容器层次中的对象就好比一封信件的投递地址,可以用绝对路径来指示如何查找对象所在的位置。当处理投递的信件时,通常这样来指示投递人员的投递位置,形如:

中国.四川省.自贡市.自井区.同兴路.XX街道.XX号XX门牌号

投递人员通常是按照地理位置从上到下去寻找投递对象的位置。

在Visual FoxPro中也是这样的,如图1中描述了一种可能的各个对象的层次关系。

如需将“控件”对象的颜色设置为“黑色”,则在程序中可采用绝对引用:

表单集.表单.页框.页.表格.列.控件.backcolor=RGB(0,0,0)这就显示了一个对象在容器中的绝对位置,程序在执行时,就会按照指定的层次关系从上往下查找指定的对象。

2.2 相对引用

在容器中引用对象时,可以采用快捷方式来指明所要处理的对象的位置。表1列出了这些快捷方式所指的对象层次关系。

这些关键字所代表的快捷引用方式只能在程序中使用,用代表组件对象或者创建的类实例对象。例如,利用自定义的类Oblong去计算一个长方体的面积,当为按钮“开始计算”添加代码时,就利用了快捷的相对引用方式:

因为添加的Oblong1对象是存在于FORM1表当中的,那么THISFORM就代表该对象的直接容器对象FORM1,因此,要设置此对象的属性,就必须指定该对象的层次关系,又如:

3 设置对象的属性

这里所说的设置对象的属性指的是在程序中动态地设置属性。前面讲了对象引用的层次关系,那么在设置对象的属性时,也需用到对象的层次关系,因为只有定位到具体的对象,才能对对象进行操作。

3.1 对象的单个属性的设置方法

如果一次仅设置一个对象的一个属性值,则可采用如下方法:

容器.对象.属性=属性值

例如,若需将表单集中的form1表单中的标签Label1的标题设置为“Hello,World!”,则可这样来设置:

在这段程序代码中,Thisformset1是最高层次的容器,而form1是标签对象Label1的容器,而Caption属性是Label1对象的属性,因此,首先需要自上而下地指明对象的层次关系,然后再对对象进行操作。

3.2 对象的多个属性的设置方法

也可以在程序中一次性地对对象的多个属性进行设置,这可利用下列语句来实现:

例如, 若要将表单集中的form1表单中的标签Label1的标题设为 “Hello,World!”, 背景颜色设为黑色, 宽度设为50, 高度设为20, 并且是可见的, 则可这样来设置:

4 调用对象的方法

如果在程序中已经创建了对象,那么就可以在任何地方调用该对象的公共方法来执行相应的任务。调用方法同样需要指定对象的层次关系,使用的方式同属性一样,只不过这里换成了方法,其方式如下:

容器对象.对象.方法名称()

需要说明的是,如果对象方法不需要传递参数,就必须添加上“()”,否则系统会当做对象的属性来处理。

例如,需将焦点设置在表单FORM1中的文本框对象TEXT1上,即可使用下列方法:

这段代码中, FORM1是TEXT1对象的直接容器, 而SETFOCUS () 方法是TEXT1对象的。

也可在程序中调用自定义的方法,例如,在表单FORM1中添加一个自定义的方法:

那么,就可以在设置窗体对象的标题时调用自定义的函数,例如:

这里同样需要指定该函数的层次关系,以标明该函数是定义在哪一个对象中的。

5 结语

在Visual FoxPro中,表单、表单集和控件是包含在应用程序中的对象,对象的引用层次问题,可以通过对象的属性、事件和方法来处理。每个对象都可以对一个被称为事件的动作进行识别和响应。在处理一个对象时,需要知道它相对于容器层次的关系,这对对象的正确引用是十分必要的。本文对于那些学习面向对象程序设计的用户来说,为其提高对层次问题的理解和应用提供了一些借鉴。

参考文献

[1]张涌逸,康祥顺.Visual Foxpro8.0设计师之路.北京:电子工业出版社,2006.

[2]刘甫迎.Visual Foxpro实用教程.成都:电子科技大学出版社,2003.

上一篇:烟草企业管理会计下一篇:历史图片资料