开发对象

2024-09-07

开发对象(精选9篇)

开发对象 篇1

1 面向对象技术的基本思想

随着计算机应用领域的不断扩大, 软件的规模和复杂性也在不断增加, 我们需要按照更科学、有效的方法组织软件的生产与管理。面向对象技术首先在编程领域兴起, 并逐渐发展成熟, 并随着面向对象的测试、集成等技术的出现而发展为一套贯穿整个软件生命周期的方法体系。

面向对象技术首先在编程领域兴起, 并逐渐发展成熟, 并随着面向对象的测试、集成等技术的出现而发展为一套贯穿整个软件生命周期的方法体系。面向对象方法的基本思想是:从客观存在的事物 (即对象) 出发来构造软件系统, 并在系统构造中尽可能运用人类的自然思维方式。

具体地讲, 面向对象技术是从问题域中客观存在的事物出发构造软件系统, 用对象作为这些事物的抽象表示, 并以此作为系统的基本构成单位。每个对象都有其属性和方法, 属性表示事物的静态特征, 方法表示事物的动态特征。对象的属性和方法结合为一体, 对外屏蔽其内部细节, 称作封装。把具有相同属性和相同方法的对象归为一类, 类是对象的抽象描述, 每个对象是它所属类的一个实例。通过在不同程度上运用抽象的原则, 可以得到基类和子类, 子类继承基类的属性和方法。

面向对象的三个基本特征:

封装———是把客观事物封装成抽象的类, 可以隐藏实现细节, 使得代码模块化;

继承———使用现有类的所有功能, 并在无需重写原来类的情况下对这些功能进行扩展;

多态———指同一消息作用于不同的对象时, 具有不同的处理方案和处理结果, 即所谓的“同一接口, 多种方法”, 增强了程序的灵活性。

2 面向对象的分析与设计实现

面向对象的程序设计以解决的问题中所涉及的各种对象为主要矛盾, 力图从实际问题中抽象出封装了数据和操作的对象, 通过定义属性和操作来表述他们的特征和功能, 定义接口来描述他们的地位及与其他对象的关系, 最终形成一个可理解、可扩充、可维护的动态对象模型。面向对象的软件开发过程可以大体划分为面向对象的分析, 面向对象的设计, 面向对象的实现三个阶段。

2.1 面向对象的分析

面向对象的分析主要作用是明确用户的需求, 并用标准化的面向对象的模型规范来表述这一需求, 最后形成面向对象的分析模型。图1展示的是面向对象系统分析示意图。

面向对象的分析分为如下几步:

2.1.1 确定需求

明确用户的需求, 包括对用户需求的全面理解和分析;明确所要开发的软件系统的职责界限;进行可行性研究和制订方案, 交给用户确认。

2.1.2 进行分析

对问题域进行分析和理解, 对其中的事物和它们之间的关系产生正确的认识, 找出描述问题域所需的类及对象, 定义这些类和对象的属性与服务, 以及它们之间形成的结构、静态联系和动态联系。

2.2 面向对象的设计

面向对象的设计的主要工作是确定如何做。面向对象的设计将在对象类模型的基础上引入界面管理、任务管理和数据管理, 进一步确定模型。界面管理:负责整个系统的人机界面的设计。任务管理:负责处理并进行操作之类的系统资源管理功能的工作。数据管理:负责设计系统与数据库的接口。

2.3 面向对象的实现

面向对象的实现就是具体的编码阶段。选择合适的面向对象的编程语言, 用选定的语言编码实现的对设计阶段所得的各对象类的详尽描述。将编好的各个类代码模块根据类的相互关系集成, 测试检验各个模块和整个软件系统。

3 总结

面向对象的技术相对于之前的程序设计方法, 能够更好地适应当今软件开发在规模、质量、效率、复杂性和可靠性上的种种需求。

3.1 可重用性

可重用性是面向对象软件开发的一个核心思路, 类能够抓住事物的实质特征, 具有普遍适应性, 类的另外一大特点是继承, 通过继承大幅减少冗余的代码, 并可以方便地扩展现有代码, 提高编码效率, 这就是一种可重用性的体现。

3.2 可扩展性

可扩展性即要求应用软件能够很方便地进行扩充和修改。对于面向过程的程序设计来说, 往往添加一个功能, 整个程序都要重新考虑, 对于大型程序来说, 这样付出的代价是很大的。面向对象的程序设计则可以有效地避免这一缺点, 降低软件维护的难度。

3.3 可管理性

面向对象的开发方法采用类作为构建系统的部件, 使整个项目的组织更加合理、方便。数据抽象可以在保持外部接口不变的情况下改变内部实现, 从而减少对外界的干扰, 提高程序的可靠性。

3.4 可直接操作性

允许将问题域中的对象直接映射到程序中, 减少软件开发过程的中间环节的转换过程, 优化整个程序设计结构, 提高软件质量。

面向对象技术出现和广泛应用是计算机软件技术发展中的重要成果和趋势之一, 在许多应用领域的软件开发中都极具前途。相信随着经验的积累, 面向对象的软件开发技术会在当今的软件开发中占据主流的位置, 并将日趋成熟。

参考文献

[1]王维江.面向对象方法的程序设计简述[J].航空计算技术, 2004, 6.

[2]郭领艳, 常淑凤.面向对象编程思想的理解及案例分析[J].资源建设:技术与应用, 2007, 5.

[3]宋晓军, 李卓玲.Oracle系统中面向对象技术的应用[J].信息技术, 2002, 5.

[4]王文华, 雷聚超.面向对象在电力地理信息系统中的应用[J].国外电子测量技术, 2006, 10.

开发对象 篇2

面向对象的技术是计算机软件技术史上的一次革命,为软件开发拉开了新的篇章。面向对象的软件开发方法,是一种以对象建模为基础,自底向上和自顶向下相结合的方法,包括了所有对象的数据结构。基于此,文章从传统软件开发方法存在的问题出发,并以此为基础,对面向对象的软件开发方法展开分析,以供参考。

相比传统的软件开发方法,面向对象的软件开发方法(OMT)实现了质的飞跃,采用了一种自底向上的归纳、自顶向下的分解方法,通过对对象建模的建立,彻底解决了软件开发在需求分析、可维护性以及可靠性三大环节上的问题,同时也大大提高和改善了系统的可维护性。可见,面向对象的软件开发方法,作为一种归纳和演绎思想的综合体现,其对软件设计、软件开发所起的促进作用是毋庸置疑的。

一、传统软件开发方法存在的问题

(一)软件复用性差

在软件开发工程所追求的目标当中,软件复用性是重点之一,同时也是节约人力和提升软件生产率的重要渠道。虽然近年来软件当中的结构化分析、结构化设计和结构化程序开发给软件产业带来了巨大的进步,但是还不足以从根源上解决软件重复使用的问题。

(二)软件可维护性差

传统的软件开发方法过于侧重一致、完整的文件合成最终的产品,以致在整个开发过程中,软件的可测试性、可读性和可修改性成了衡量一个软件产品优劣的重要标准。事实上,在软件的实际应用中,我们可以发现这类产品的维护性差,且所消耗的成本相当高。

(三)开发出的软件不能满足用户需要

传统的结构化方法所涉及的知识领域比较广泛,以致使用它开发大型软件时,一旦遇到系统需求模糊或者系统发生动态变化,就会影响开发效率,导致最终开发出来的软件脱离用户实际需求。

(四)软件质量难以保证

传统的软件开发方法所开发出来的复杂型大型软件,或者是需求模糊的系统,绝大多数都是难以成功投入市场使用的。归其原因,主要有以下两大因素:第一,软件开发人员对用户的实际需求理解不够透彻,以致最后开发出来的软件和用户的期待不相符;第二,所开发出来的软件灵活性低,无法适应用户需求的经常性变化,再加上部分用户有时会在软件的一些使用性能方面提出部分要求,倘若系统的设计和开发是基于过程中,那么软件系统的可扩充性和稳定性就会无法适应变化,而这种变化也会对软件系统自身的机构造成影响,设计、开发的成本也会随之提高。

二、面向对象的软件开发方法

现阶段,面向对象的软件开发方法的研究已经日趋成熟,市场上也不断有新产品涌现。面向对象的软件开发方法有Coad方法、Booch方法和OMT方法等。

(一)Booch方法

Booch方法的最突出特点就是它能够反映出系统的各个方面是如何相互联系和作用的。在一系列的.面向对象的软件开发方法中,Booch方法是最早描述当中的基础问题的,其首先提出面向对象是区别于传统软件开发的一种方法。Booch方法认为面向对象的软件分解更接近人们对客观事物的认知,它并没有对各个开发阶段进行明确的周期划分,把主要的工作都集中在软件设计阶段。

(二)Coad方法

Coad方法是通过多年来大型系统开发的经验与面向对象概念的有机结合,该方法在对象、结构、属性和操作的认定方面,提出了一套系统化的原则,并完成了从客户需求角度进一步进行类和类层次结构的认定。Coad方法把软件系统的开发划分为分析和设计两个阶段,虽然说Coad方法没有引入类和类层次结构的术语,但事实上它已经在分类结构、消息关联等概念中呈现了类和类层次结构的特征。从某种程度上来说,Coad方法的概念虽然简单易懂,但是它对各个面向对象和行为的描述不够全面,对象模型的语言表达能力也不突出。

(三)OMT方法

OMT方法是一种跟随OOP向OOD和OOA发展而形成的面向对象的软件开发方法,它的方法涵盖了软件分析、软件设计以及软件实现三大步骤,贯穿于软件开发的全程。OMT还建立了对象模型、动态模型和功能模型三个模型,这三个模型在一定程度上完善了软件,使软件开发更加清晰,也更易于维护。可以说,作为一种以真实世界为对象建模而进行的独立语言设计,OMT方法彻底实现了传统软件开发方法没有完全实现的目标,为绝大多数领域的应用软件提供了一种实际的、高效的、可操作的保证。

(四)UML语言

UML语言是一种建模语言,它是软件工程领域的重要成果之一,在未来,UML语言将会成为面向对象技术领域内的标准建模语言。UML不仅结合了Booch方法、OMT方法、OOSE方法的优势,而且还对其做了进一步的发展,汲取了面向对象技术领域中的其他流派优秀的开发思想,融入了软件工程领域的新思想、新方法、新技术。总而言之,UML是一种通用的标准建模语言,适用于以面向对象技术为基础的任何类型的软件系统,而且还能够在系统开发的不同阶段使用,从需求规格描述直至系统完成后的测试和维护。

面向对象设计的软件工程开发分析 篇3

面向对象设计是一种软件工程方法学的发展主流方向之一, 当前被广泛应用, 其有效性在实际应用中也得到了证实。对于面向对象的方法, 以对象为基础, 在其中事物都是由对象构成的。对象有内部特征和运动规律并且分别与不同的对象彼此互动。在面向对象的方法中, 对象主要具有两方面的特征属性, 其中包括数据和操作, 分别对应于对象的内部属性特征以及其外部运动的规律。面向对象的方法使软件的开发以及其相关的维护工作更便利, 增强了软件的可重用性, 并且同时其生产率大大提高。

一、面向对象的设计与分析简要介绍

面向对象的分析过程中的主要的阶段包括:一是提取和抽象概括用户需求;二是模型的建立。而设计是将用户的要求转换成可实现的最优方案的过程。从分析到设计的过程是一个逐步扩充和完善在分析阶段中所建立的模型的过程, 二者虽然是两个不同的阶段, 但却是相辅相成互相制约和影响的。只有分析的准确, 才能建立适合的模型并很好地解决用户所提出的需求和问题。在一般情况下, 分析的结果会在一定程度上反映设计的结果, 而设计的阶段中又会反复理解分析的结果, 进而完善分析过程中的结果。

二、面向对象的软件开发方法

现在, 随着面向对象的技术的飞速发展, 当前出现了很多的软件开发方法。其中, 在面向对象的软件工程开发中, 比较常见且广泛应用的有OMT和Booch等方法。它们根据各自不同的特点被应用在不同的领域中。虽然UML方法在该领域的方法中占有重要作用, 但是这些面向对象的方法对于研究者仍然具有很关键的指导作用, 在实际应用和开发过程中, 综合考虑这几种方法在分析建模过程中具有重要的意义。

(一) Booch方法。

Booch方法是Grady Booch从20世纪80年代开始研究, 后来这个方法在实际的应用中得到了逐步的完善和改进。Booch方法可被分为两个主要的过程。面向对象分为微观和宏观两个不同的过程, 微观的过程通常包含:一是将类和对象抽象化, 从问题中挖掘类和对象, 确定实现对象功能的行为。二是建立抽象出来的类的状态和行为。利用类图建立识别对象和类的关系, 确定类对象的边界以及辨别出相互协同作用的类对象。三是找出设计最优的算法和数据结构来实现对象类与对象。在宏观软件工程的开发过程中, 为了方便进行风险评估和方便快速的修改, 在该过程中确定一些相应的成果和活动。宏观过程更注重风险和结构, 因此, 结构以及完整性等在该过程中显得尤为重要。其中包括:概念化和需求的建立。概念化过程中要求具有较强的创造性, 没有固定的模式, 该过程主要是建立核心的需求。在分析过程中需要提供软件开发所需要的模型, 在该过程中注重系统的行为, 以此来区分系统的功能特点。设计的过程中, 体统结构的实现很重要。

Booch方法是UML技术方法的基础起源。其中的概念有:类、对象、操作和继承等。其主要的模型分为逻辑的和物理的, 两类中都包含各自的静态和动态视图。Booch的主要优势有很强的表达能力, 并且其设计的迭代和增量的思想对很多软件工程开发的设计阶段的建模提供了重要的指导。

(二) OMT方法。

OMT (Object Modeling Technique) 方法是由Loomis, Shan和Rumbaugh最先提出的, 该方法目前在数据库的关系设计中得到了应用。随着不断的发展, 后来该方法应用于面向对象的分析和设计领域中。有了之前的实体和关系模型, 在这个方法中又进一步扩展了类、行为以及继承等。OMT方法主要有三种模型:一是对象的模型:表述对象的静态的结构 (e.g.类、属性) 以及它们之间的相互作用关系 (e.g.操作和继承等) 。二是动态的模型:描述系统动态的变化特点, 例如:随时间的变化等。其主要的概念包括:状态和活动等。三是功能的模型:不同数据值之间在系统内的转换, 包括处理, 数据存储, 数据流和控制流的概念。OMT方法目前已得到广泛应用, 并且该方法在分析数据密集型的信息系统中占有重要的地位。

(三) UML方法。

目前, UML这种建模的语言其特点是有一个清晰、易于表达且功能强大, 在该领域包括了新的思路, 新方法和新技术。UML的模型包括静态, 动态, 系统环境模型等。此外, 交互式可视化建模工具所提供的代码等将模型转换成一种编程语言。例如:XMLDTD代码和JAVA代码等。还可以利用相应的工具和方法将这些代码逆向转换为UML。UML支持大部分面向对象开发过程, 它融合了之前建模技术的经验以及目前优秀的标准建模方法的特点。基于UML的建模可以分为静态和动态两种, 其中基于例图和对象图以及类图等创建的模型为静态的模型。然而, 基于状态图, 活动图等创建的模型为动态的模型。在大多数情况下, 一般采用这些对象模型的组合。由于类之间的关系为静态的模型, 对象之间的相互作用关系为动态的模型, 分别可以用类图和顺序图来描述这些状态以及它们之间的相互联系等。可视化建模是用直观的方式将模型描述出来的过程, 其中利用的基本信息是标准的图形元素。其中的一个重要的问题是选择合适的图形标注方法。比较常用的方法包括Booch, OMT以及UML。对象建模技术 (OMT) 图注方法则使用比Booch方法更简单的图形描述系统。UML方法融合吸收了之前建模技术的各种的经验和特点、方法和思想等。目前, UML是当今公认一种标准的建模语言, 并且近年来, UML技术不断发展完善, 融合了基于Web系统、数据的模型等新的思想。

三、面向对象设计的软件工程开发分析方法的优势

该方法的主要特点包括:对象是基本元素, 简单的对象组成复杂的软件对象, 对象又构成了系统;划分对象类, 不同的对象类对应各自的一组数据和方法;根据子类和父类来设定层次结构;对象之间可以相互联系。

面向对象的方法的优点有:更贴近人类的思维方式;具有较高的稳定性;可复用性强;易于大型产品的开发;方便维护。

四、结语

目前, 随着计算机硬件, 计算机应用的迅速发展, 计算机性能得到改善。然而, 在计算机的软件工程开发领域还面临重大的挑战。面向对象的软件工程方法, 由于它的先进性, 已被广泛应用于计算机技术领域且占据主流。用户的需求分析与设计阶段在这个过程中比较重要。面向对象的方法中非常重要的目标是合适地解决分析与设计过程中的复杂性同时提高其可重用性。因此, 当前软件工程开发分析领域面临的一个重点和难点是面向对象的分析与设计, 开发和研究应用性强, 可实现性以及复现性强的面向对象软件工程方法是一个重要的研究课题和方向。

摘要:随着计算机软件的规模以及它的复杂性不断迅速增长, 面向对象的软件工程方法成为当今软件技术的主要研究方向。本文主要针对这一问题, 首先简要概述了面向对象设计与分析, 然后探讨了主要的几种面向对象的软件开发方法, 最后针对其优点进行了进一步的概述和讨论。

关键词:面向对象设计,面向对象分析,软件工程开发

参考文献

[1] .胡家芬.思维导图在《C语言程序设计》语法教学中的应用研究[J].电脑编程技巧与维护, 2012

[2] .魏艳红.简单案例在C语言教学中的应用[J].现代电子技术, 2012

开发对象 篇4

1 系统开发背景与需求

《面向对象程序设计》是广东石油化工学院高州师范学院计算机专业学生的一门必修课程,也是进一步学习后续专业课程的重要根底课。学生在学习该门课程时,普遍感到教学内容笼统,难以了解,使学生不只在课堂上需求教员的引导,而且还需求课堂教学之外的有效补充。因而,迫切需求创立一个网络平台,引导学生自主学习交流,协助学生了解课程的重点与难点,提高广阔师生互动,完成网课教学统一。而《面向对象程序设计》精品课程网站就是这样一个网络平台。

2 精品课程网站的功用剖析

精品课程网站是一个基于 B/S 形式的对课程资源高效管理与应用的系统,它的用户主要是学生和教员以及管理员。三类用户的运用功用如图 1 所示。

3 网站设计与完成

3.1 主要技术

本网站主要用到 JSP(Java Server Pages)、Struct2、Hibernate、Div+CSS 及 JavaScript 等 技 术。JSP 是 使 用JAVA 编程言语编写类 XML 的 tags 和 scriptlets,一个封装产生动态网页的处置逻辑网页能经过 tags 和 scriptlets 访问存在与效劳端资源的应用逻辑[1].Struct2 是在 JSP Model2根底上完成的一个 MVC 框架,有助于减少运用 MVC 设计模型开发 Web 应用的时间[2].Hibernate 是一个面向 Java环境的对象 / 关系数据库映射工具,能够管理 Java 类到数据库表的映射,并提供数据的查询和获取办法。

摘要

3.2 数据库设计

将网站的数据笼统为下列的 14 张数据表:权限表(编号,权限名);用户表(编号,用户账号,密码,姓名,所在系,班级,性别,权限 ID);目录表(编号,目录称号);父子关系目录表(编号,子目录 ID,父目录 ID);文章列表(编号,文章标题,文章作者 ID,所属目录 ID,发表时间,文章内容,缩略图地址);附件表(编号,附件名,所属文章 ID);日志表(编号,用户 ID, 操作来源,操作,操作地址,操作时间);外部链接表(编号,链接称号,链接地址)根贴表(编号,发帖用户 ID,帖子主题,帖子内容,发帖时间,引荐标识,置顶标识,被置顶时间);回帖表(编号,回帖用户 ID,所属跟帖 ID,回帖内容,回帖时间,回帖数量);作业任务表(编号,教员 ID,作业标题,作业任务,作业发布时间);学生作业状态表(编号,作业任务 ID,作业学生 ID,作业状态);学生作业细致表(编号,作业学生ID,学生答案,得分,作业上传时间);数据库备份记载表(编号,数据库文件称号,备份时间)。

3.3 精品课程网站模块设计与完成

3.3.1 课程管理模块

课程管理模块只允许管理员与教员对其进行各种操作。它包括课程分类管理和课程资源管理两大子功用。课程分类管理子模块是用于添加或删除课程资源类别,包括父类与子类的设置;父类即主导航栏目的设置,子类即父类中的分类列表,这样不只有利于教员或管理员对课程进行自在地设置,也便于学生进行阅读。依据精品课程网站的目的及《面向对象程序设计》课程特征,初步设置了六大课程资源类别:学习指导、教学指南、授课教案、多媒体教学、教学录像、课程源码及实验指导。

其中,为学习指导类设定了最新公告、在线答疑两子类;教学指南类设定了课程引见、教学大纲、考试大纲、教材引见及参考学惯用书五个子类。

3.3.2 作业管理模块

作业模块是在线布置作业、在线提交、修改一体的管理模块。包括教员在线布置、查看、修改作业,学生提交、下载作业以及查看评语与分数等功用。

本系统中,作业录入、修改功用采用了 CKEeditor 和ckfinder 在线文本编辑器,录入的数据为 html 格式,便于设置作业内容的特殊显现效果。经过设置表格 style 属性,使数据显现自动换行,从而完成编辑与显现相分歧。作业提交、下载则应用 jspSmartUpload 组件来完成。经过表单提交做好的作业,后台将获取学生的答复,并在学生作业细致表中写入学生答案,最后将学生作业状态表中的任务状态改为 1,标识该学生此次任务已完成并上交。

3.3.3 论坛交流模块

论坛模块能够让学生与学生、学生与教员之间集中交流互动。学习者经过论坛能够分享学习心得,提出问题,以至交友互动。教员与管理员共同对论坛发表的帖子进行管理,如删除、置顶、引荐等操作。一切的操作都在用户客户端的阅读器中完成,由 JSPWeb 程序处置后,对效劳器的数据库进行操作,再处置成 HTML 文件传到用户客户端阅读器,响应用户的需求。

3.3.4 日志管理模块

日志是调试系统和定位毛病的.重要手腕之一。系统管理员依据日志来评价平安程序的效率,以及肯定惹起平安毁坏及系统功用失效的缘由,为审计和监测提供数据。

本模块的设计请求将一切记载日志的操作提取出来,构成一个独立的模块,用来管理和记载整个系统需求记载的日志。用户登录后,教员和学生能够经过日志管理模块来查询个人一切的操作记载,而管理员既能够查看一切用户一切的操作记载,也能够执行清空操作。

3.3.5 外链管理模块

外链是指从其他网站导入到本人网站的链接。导入链接关于网站优化来说是一个重要的过程。经过外链管理模块,一切用户能够外链,教员能够对个人外链进行添加、删除、修正操作,管理员能够对恣意外链进行各种操作。

本网站除了上述功用模块外,还有网站常见的注册登录模块、用户管理模块及网站信息管理模块。其中注册登录模块请求用户在登录界面中输入合法的用户名、密码及正确的考证码来登录本精品课程网站。

用户管理模块是用于集中对各层次的用户进行有效的辨认和管理,包含个人材料和权限的修正等。网站信息管理模块便于管理员检查网站各类信息和课程资源状态,及时备份数据和处置异常问题。

4 结 语

开发对象 篇5

早期SQL Server的Transact-SQL语句在自身数据管理等方面功能强大,但与系统之外的交互较弱。自SQL Server 6.5起,SQL Server内置了引用和操作外部OLE对象的存储过程,允许用户利用内置存储过程引用和操作外部OLE对象,有效地克服了上述弱点,扩展了SQL Server的应用范围。SQL Server支持的OLE对象必须是有效且必须支持IDispatch接口,IDispatch接口作为COM组件中的常用接口,也是Automation(自动化)的核心技术。流行的开发语言如C++、VB、Delphi等,均可开发出符合该接口的COM组件,在SQL Server中作为OLE对象进行操作。

2 SQL Server内置OLE对象的存储过程

2.1 OLE对象操作存储过程介绍

SQL Server内置了较为完整的OLE对象操作存储过程,按功能一般可分为创建、操作、错误捕捉和释放等几类,如表1所示。

2.2 OLE对象操作通用步骤

在SQL Server中操作一个OLE对象时,通用步骤是:创建OLE对象、设置或读取OLE对象属性值、调用OLE对象方法、释放OLE对象。对于内置的OLE对象存储过程,在执行完成后,都返回一个HRESULT的整数值,返回0表示执行成功,非0值表示失败,因此可以定义一个整型变量接收该值,用于错误捕捉。

3 实例开发及应用

实例在SQL Server 2000中创建一个测试数据库SQLO-LETEST,创建一个虚拟考生考籍数据表KSB,数据表中通过调用自定义函数更新每位考生的电子图像文件大小(字节数),以及电子图像文件是否存在(0/1)。自定义函数功能主体由OLE对象操作组成。OLE对象(COM组件)由VB6.0开发。

3.1 数据表准备

数据表KSB由若干字段组成,其中ZPDX和SFYZP字段默认为空,由自定义函数更新字段值,其余字段填充若干虚拟数据,如表2所示。

3.2 VB6.0开发OLE对象

新建一个ActiveX DLL工程,工程名称为SQLOLE_Test,默认类模块名称修改为EPLib,类模块主体包含一个类属性FilePath(用于接收电子图像文件完整路径);两个函数CheckFileExist()和GetFileSize()(分别用于返回文件是否存在和文件大小)。编译生成SQLOLE_Test.dll文件。代码如下:

3.3 SQL Server自定义函数

在SQL Server 2000中,新建用户定义的函数EP_Fun,输入参数分别为电子图像文件完整路径、文件名(不含扩展名)、扩展名和函数返回值类型。关键代码如下:

3.4 SQL Server自定义函数调用

在任一文件夹中创建若干与数据表KSB字段ZPWJM和ZPKZM值对应命名的虚拟电子图像文件。运行下列T-SQL语句(语句中调用用户自定义函数):

其中'D:ZP'为电子图像所在文件夹,更新数据表字段ZPDX和SFYZP值(运行结果如图1,图2所示)。

4 结语

SQL Server对OLE对象的支持,使得自身功能不满足应用需求时,可以引入外部OLE对象来扩展。对于开发者而言,编写特定的、复杂的OLE对象供SQL Server调用,在完成功能扩展的同时,还具有保护知识产权的作用。(下转到99页)(上接第60页)

参考文献

[1]Microsoft SQL Server联机丛书[M].Microsoft Corporation,1998.

[2]Microsoft Corp.How to run a DLL-based COM object outside the SQL Server process[EB/OL].http://support.microsoft.com/kb/198891/en-us,2007-2-22.

[3]Microsoft Corp.Examples of how to use Sp_OA pocedures and the SQLOLE.Transfer(or SQLDMO.Transfer)object[EB/OL].http://support.microsoft.com/kb/152801/en-us,2007-2-22.

[4]Microsoft Corp.HOW TO:Use sp_OA Stored Procedures and SQL Distributed Management Objects(SQL-DMO)to Script Out Jobs in SQL Server[EB/OL].http://support.microsoft.com/kb/321835/en-us,2005-6-23.

[5]刘炳文.Visual Basic ActiveX程序设计[M].北京:清华大学出版社,2002.8.

面向对象的实时软件开发方法研究 篇6

1.阐释实时软件的内涵

实时软件是实时系统中的软件。当外部世界发生变化时, 相应地实时系统就会对这种变化做出动作进行回应, 并在规定的时间内、依靠严格的控制、最大化地获取数据来实现这一功能。特别要指出的是, 这些控制是有严格规范的, 这便对实时系统的应用进行了限制, 只应用于它相对应的方面。

另外, 实时系统具有高标准的要求, 主要可以体现在以下方面:其一、时间方面, 必须在规定的时间内处理完突发事物, 如果超过时间就会造成不可弥补的损失;其二、正确性方面, 在规定的时间内对突发事物做出合理的逻辑判断和处理, 这就确保了结果的正确性。同时, 存在着对实时系统的实时性有一个普遍的误区, 他们狭隘地臆断实时就是速度要快。以第一时间对外部情况做出反应是实时系统的一个优点, 快速反应是实时性的一个要求, 但是两者有着本质的区别, 不可混淆概念。有时快速反应并不意味着实现了实时性。所谓的实时性是指要求圆满处理完外部相应的事物和要求必须在规定的时间内。

除了具有一般软件系统的特点外, 实时系统软件还具有:首先, 时间限制, 即实时性。要求在规定的时间内对于外部的发生的事物系统要做出反应并处理好;其次, 稳定性。如果系统重启和故障恢复系统会很快复原且数据不受损;再次, 多任务、并行性、分布性。实时系统可以同时同步对于外部世界或者分布较广的多个问题和任务, 进行有效的处理并有效地保证处理的结果具有可靠性。而这种处理的有效性和可靠性是由系统的实时性决定的;最后, 对于操作系统的底层具有开发性, 实时操作系统就是实时软件应用中所使用的操作系统, 要求在优先调配机制和内存锁定机制控制下, 实现多任务同时同步处理。特别要注意的是, 对于系统中的语言开发原则也要坚持实时性原则, 选择实时性语言, 以求对多个任务进行并行处理。

2.探讨实时软件开发方法

与普通的实时软件相比, 复杂性是两者的共性, 实时系统的软件还具有自己的特殊性要求, 那就是时间控制的因素, 这就是实时软件的结构和开发方法的优势。

■2.1实时分析技术

以面临解决的事实问题或既定的目标为依托, 全面解析实时系统的软件和硬件部分, 而后对硬件和软件进行拆解, 以求对设计实时软件奠定根基, 这就是实时系统在分析阶段中所要完成的任务。建模和仿真技术是实时系统进行分析才应用的技术。对实时系统元素进行建模时要求分析人员必须利用好数学辅助工具, 另外, 把握时间长短和对资源大小进行估量是分析人员在这一过程中特别要注意的问题。根据在对数据流进行分析的基础上, 分析人员要建模实时系统的硬件和软件元素, 控制以概率的形式进行, 这就是数学分析方法应该注意的。同时, 对系统时间和资源大小如何进行评估, 就要求分析人员以网络分析、序列论、图形论和数据模型等方式来推导出来。RMS理论为基础, 能够分析并行的多任务的分析技术, 是为了辅助RMAM的分析方法而设立的理论。判断在实时系统中在调度方面利用RMS处理并行任务是否能够满足他们的实时性的依据, 那就是看有没有采用采用RMA分析技术。分析系统的性能需要使用仿真和建模工具, 利用这两种工具软件工程师还能够构建一个模型, 通过这样的形式, 可以有效地理解系统的运作。为建立一个实时系统的概念模型需要通过系统的状态图、活动图和模块图, 这就是系统的建模方法。然后在在建立的模型的基础上, 分析和仿真系统的行为和执行情况, 并测试系统是否具有一致性和完整性, 最后, 汇总在真实系统中的各种数据和特性。

■2.2实时设计和实现技术

在给定的时间控制情况下如何完成系统的目标是实时设计阶段中主要面对的任务。处理实时软件中的优先权的选择、多任务和并行、同步和异步、时间约束等问题是设计实时软件所必须考虑的因素。通常都是通过扩展一些非实时设计方法是实时软件的设计方法所采用的手段, 而基于过程的模块化的设计方法是传统的实时软件的设计方法才采用的手段。不仅可以采用自顶向下和结构化的程序设计, 而且可以采用图形化的语言描述设计, 还有一些运用有限状态机、Petir网、消息传递系统或一某种专门语言等是使用面向数据的设计方面向对象的实时软件开发方法所研究的基础性方法。

■2.3传统实时软件开发方法应该注意的问题

临的问题越来越多, 最终使实时软件很复杂了。在过程的设计方法上而建立的传统实时软件已不能够适应变化的新情况了。它主要存在以下问题:首先, 分别对过程和数据进行处理, 这样就使真实世界的实际情况失去了本来面目, 更加剧了分析和设计实际世界的难度;其次, 没有统一性的划分原则对采用层次化的功能模块划分系统, 最为严重的是, 某个别的开发人员的主观看法完全左右了对组织软件单元, 系统的划分, 这样就失去了客观性加剧了实时软件开发的困难;最后, 由于人为的局限性使得对调度的分析和描述过程也相当的复杂。

3.结语

随着电子信息技术的发展, 我们研究实时软件开发时, 要具有勇于突破和敢于创新的斗志, 在对现实情况进行分析和研究的基础上, 要不断对实时软件进行改进, 以达到它更好地服务于社会的目的。

参考文献

[1]肖亚利.面向对象的实时软件开发方法研究[D].四川大学, 2003.

开发对象 篇7

关键词:面向对象,软件开发,代码重用,代码分离

为提高软件的开发效率,软件工程师们越来越追求开发更多、更有通用性的可重用构件。传统的结构化方法是将系统功能分解编写模块,每个模块实现特定的功能,可重用的单位只能是模块,且用户需求的变化需花费较大代价去实现。为了适应软件开发的更高要求,提高软件产品的稳定性和可修改性,从而产生了面向对象[1]。

1 面向对象的软件开发

面向对象(Object Oriented,OO)是一种软件开发的方法。起初,其专指在程序设计中采用封装、继承和多态等设计方法。但如今,面向对象开发方法的研究已日趋成熟,面向对象的思想已涉及到软件开发的各个方面。

面向对象的软件开发包括3个阶段:面向对象的分析(Object Oriented Analysis,OOA),面向对象的设计(Object Oriented Design,OOD)、以及面向对象的实现(Object Oriented Programming,OOP)。面向对象分析的目的是对客观世界的系统进行建模,用分析模型来明确问题需求,为用户和开发人员提供一个协商的基础,同时为面向对象设计和实现提供了一个基本框架。面向对象的设计以面向对象的分析为基础,通过系统设计和对象设计将分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案。面向对象的实现即选用能最完善、准确地表达问题域语义的面向对象语言开发软件,其基本目的和主要优点是通过重用提高软件的生产率[1]。

2 代码重用的实现策略

在面向对象的软件开发过程中,一般通过对接口编程、改写类的实例方法和代码分离的方式来实现代码重用。

2.1 对接口编程

面向接口编程是实际开发过程中实现代码重用的一个重要方法,其根本思想是将一个接口或抽象类从一组功能相同的组件中进行抽象形成。通过面向接口编程,当任务中需要其他组件时,无需对程序代码进行更改,而只需更改该接口的实现即可。现存的组件不能满足设计需求时,通常有两种方法来完成:一是创建一组新的组件;二是对现存的相关组件进行扩展,通过新的子类来完成所需的扩展功能[2]。

继承是代码重用的一个基本方法,但在面向对象编程中,类继承不是代码重用的真正要点,可通过对接口编程来达到代码重用的目的[3]。在实际应用过程中,当某块代码能编写成独立的全局过程时,只要将其所有类形式的参数改为接口的形式,就可进一步提高的可重用能力。经此改动后,过程的参数就不仅是原来类所创建的对象,而是实现了该接口所有类的对象。

例如,假设有这样一个全局静态方法contains():

该方法用于检查指定的点是否包含在矩形内,若将rect的参数类型Rectangle改成接口:

其中,Rectangular接口的定义如下

经此改动后,contains方法的参数变成所有实现了Rectangular接口类的对象。通过将参数类型改为接口的形式,可放宽对参数类型的限制,扩大过程所使用参数的范围,从而大幅提高方法的可重用能力。

通过上述分析可知,将参数类型改为接口可提高代码的可重用能力,但在实际应用过程中,将参数类型改成接口可能有多种方式,不同的更改方式其实现所需的代码、数据和容易程度均不相同。因此,首先需确保方法对参数的要求,然后尽量将参数类型改为简单的接口。接口越简单,类实现接口时就越容易,能将其作为参数进行使用的类也就越多,代码的可重用能力则越大[4]。

2.2 改写类的实例方法

在实际编程过程中,对于那些能执行某个单一任务的方法,可进行重用来节省编程的成本。为此,可通过将相关的实例方法组织成为独立的类,使其成为一个公用的全局性静态过程。为了提高这种过程的可重用性,过程代码应同静态工具方法编写一致:即只能使用自身的输入参数,仅可调用其他全局性的过程,不能使用任何非局部的变量[5]。这种对外部依赖关系的限制简化了过程的应用,使得过程能方便地用于任何地方。这种组织方式的使用使得代码结构更加清晰。因此,即使不考虑重用性的代码也能从中获益。

众所周知,Java中的方法不能脱离类而单独存在。所以为实现代码重用,可将相关过程定义为公用的静态方法,并组织为独立的类。例如,对于Polygon有:

可将其改写为:

其中,p Polygon类定义如下:

在上述例子中,p Polygon类中封装的公用静态方法参数均与Polygon类型的对象有关,通过改写pPolygon类的实例方法,Polygon类的功能转由p Polygon类以过程为单位进行提供,不继承Polygon类也可使用Polygon类的功能。由此,客户代码只使用自身需要的代码,而无需关心其他不需要的功能。

2.3 代码分离

由于继承会带来一些多余的方法和数据成员,且更改父类时会影响子类功能,子类对父类的依赖关系会使代码变得复杂,子类中的覆盖方法是否要调用父类中的对应方法有时也并不明显。因此,仅通过继承来实现代码重用会存在一定的不足,其并不是最为理想的代码重用机制,所以通常是将继承与代码分离技术相结合来实现代码的重用。所谓代码分离就是将可变部分和不可变部分分离开,其是面向对象设计的一个重要原则。在通过继承进行代码重用时,可在抽象基类中定义好不可变的部分,然后由其子类去实现可变的部分[6]。

3 代码重用的注意事项

尽管代码重用的优势明显,但并非所有的代码均能进行代码重用。代码重用需注意以下几点:(1)只有高通用性的代码才可重用。一般来说,通用性较低的代码不适合进行代码重用。因在多个项目间重用不为通用性设计的代码,反而会使整个开发过程变得复杂,同时会增加开发的时间和成本。(2)依赖度高的代码不适合重用。有些代码与开发人员有较大的依赖性,且无相应的文档来描述程序设计细节。新进项目的人需花费大量的时间和精力才可理清楚代码间的相互关系。类似依赖度高的代码越多,工作难度越大,进行代码重用就越困难。(3)高成本、低使用率的代码不适合重用。代码重用虽有众多优势,但在使用过程中仍需考虑其成本和使用率。若需付出过高的成本,且重用代码的使用率较低,则不适合进行代码重用。

4 结束语

开发对象 篇8

关键词:房地产开发企业,会计对象,任务,职能

房地产开发企业会计的对象就是企业的资金运动。与其他企业一样, 资金运动流程为资金进入企业——进行循环周转——资金退出企业这样一个过程。众所周知, 资金关乎着企业的安危, 而房地产开发企业的会计对象, 正是对企业资金运动的监督。所以, 我们必须明确房地产开发企业会计的对象及其任务, 这也是会计人员最基本的职业素质。

一、房地产开发企业的会计对象

(一) 房地产开发企业的会计对象

房地产开发企业的会计对象是房地产业从事房地产开发建设、出售、税务清算等经营过程中的资金运动。这些资金运动具体表现为六大会计要素, 即资产、负债、所有者权益、收入、费用和利润等。房地产开发企业的会计核算, 就算对这六大会计要素的增减变动进行监督、核算和反映。

(二) 房地产开发企业的资金运动过程

房地产开发企业的资资金运动过程具体来说, 是购买土地、开发产品和产品销售、转让、出租及税务清算的过程, 在这其中资金不断的发生增减变动。包括负债和所有者权益也会发生变动, 所有的这些变动, 都要在会计中有所反映。

1. 在供应过程中, 房地产企业用贷币购买土地, 并办理开发的各项手续交纳各项费用, 并将工程按出包方式出包给设计、监理和施工单位, 并按照合同上的规定, 用约定好的资金预付承包单位的工程款及备料款。这样以来, 房地产开发企业的货币资金就发生了变化, 即现有货币转变为储备资金。当发生了这些转变, 房地产就进入了开发过程。

2. 在开发过程中, 随着工程的进展, 开发企业按照合同的规定支付承包工程的单位工程进度款, 并且购买应由开发企业购买的设备, 这样这一部份的货币资金又转化成在建资金。并随着工程的竣工转化成建成资金。

3. 之前在供应和开发的过程中, 已经耗用了大部分的资金, 现在马上转入产品销售、转让或出租的环节, 这时企业又通过出售房产、出租房产等等形式重新获得了资金。企业获取资金后, 又将资金再度运用与购置土地, 进行再一次的开发。如企业在开发产品销售、转让、出租过程中收回的货币资金的数额, 比原来投入的资金的数额大。这里所增加的资金就是企业的纯收入, 纯收入的资金并不等于就是企业的纯利, 因为还要扣除税金和投资者的红利, 还有留一些作为企业的盈余公积金。因此, 企业的资产和所有者权益就发生变动了。如收回的资金和剩余的产品不足以弥补支出, 则是亏损, 留待以后弥补。

二、房地产会计的职能

(一) 反映房地产企业的生产经营活动情况

企业会计通过设立账户并按照时间顺序分类记录企业发生的各项经济活动, 对于已经记录的经济活动, 还要及时的对账, 企业发生的每笔资金变动都要进行逐笔登记, 到了一个会计期间的期末要进行结账, 最后编制会计报表。

(二) 房地产会计监督企业经济活动的整个过程

房地产开发企业一般都会建立严格的会计制度, 保证让每一笔经济业务在记录的时候就已经通过了严格的审核, 这样就对每笔经济业务进行了最初的保障。房地产会计对企业经济活动的监督分为事前监督、事中监督和事后监督。事前监督, 比如说对不合格的发票不予办理等;事中监督, 例如在开发过程中对财产物资的消耗、预算执行等情况进行控制, 促使企业管理者真正的了解和清楚整个经济活动过程和结果;事后监督, 例如对会计资料及财产物资的安全与完整进行监督, 督促作好入账后的管理。

(三) 控制开发成本

在房地产企业开发经营业务过程中, 开发成本的控制是非常重要的。所以企业必须要及时的计算开发成本, 要反映出在开发过程中的生产耗费。开发成本能反映土地征用及拆迁补偿费、前期工程费、基础实施费、建筑安装工程费、配套设施费的发生和各项开发间接费用的开支情况。如果我们能够控制间接费用的指出, 那么久能够降低开发前期的费用, 从而降低整个企业的成本, 使企业利益达到最大化。因此, 房地产开发企业的会计还具有控制成本的职能, 通过提前做好开发的经营预算, 在接下来的开发过程中, 严格按预算计划支出各项费用的开支, 从而提高资金的使用效率。房地产企业会计要主动提供各种不同的决策方案, 供企业领导参考, 然后抉择出最为优秀的方案, 最大程度的降低开发经营成本。

三、房地产开发企业会计的主要任务

(一) 向国家和投资者反映真实的企业经营的会计信息

作为房地产开发企业, 必须要时刻掌握自身的开发能力, 还要清楚的了解到房地产市场的需求, 合理安排房地产开发任务。加强房地产企业开发经营管理, 一方面要接受国家综合管理部门的指导, 一定要根据国家的产业政策要求来选择开发活动和项目;另一方面要接受投资者的监督, 企业的发展必定要靠雄厚的资金作为物质基础, 尤其是房地产开发企业, 所需的资金量相当大, 所以必须要让投资者关心企业, 为企业提供更多的资金。因此, 企业一定要做好会计工作, 要保证所提供的会计信息真实可靠, 能够正确的反映企业的经营状况, 以满足国家宏观经济管理的要求和投资者进行投资决策的需要。

要及时真实地提供会计信息, 企业必须遵循客观性原则、相关性原则、可比性原则、及时性原则、权责发生制原则、谨慎性原则、实际成本核算原则、资本性支出原则。要保证所反映的企业财务状况和经营成果是客观真实的, 要满足各有关方面对会计信息的需要, 要采用相同的会计核算方法, 要考虑企业经营风险和财务风险, 要正确区分计入当期损益的支出与计入资产价值的支出, 在全面核算企业开发经营情况的同时, 还要对重要的经济业务, 单独进行核算反映。

(二) 反映和监督财产物资保管

现代社会是一个竞争的社会, 为了提高房地产开发企业的竞争力, 企业自身必须提高经济效益, 多快好省地进行开发活动。一方面要搞好项目规划, 做好前期准备工程;另一方面要做好财产物资的保管工作, 要用最少的材料设备获取最大的利润, 在开发过程中, 一定要保证财产物资的安全完整, 尽量减少物资消耗, 达到利润最大化。

做好会计工作是保证财产物资的安全完整的重要前提。对于一切资金的收支, 财产物资的任何变动, 都要填制凭证, 认真审核, 及时登记账簿。还要定期进行财产清查, 明确保管人员的经济责任。

要不断减少物资消耗, 降低开发成本, 就必须及时计算开发成本, 反映开发产品在开发过程中的生产耗费。如果提高了开发管理水平, 减少了前期工程费, 控制了开发间接费用的开支, 那么就必然能降低开发产品的成本。因此, 房地产开发企业要通过开发产品成本的计算和分析, 及时发现开发过程中出现的问题, 采取降低开发成本的有效措施, 为企业节约资金, 促进企业可持续发展。

(三) 反映和监督执行财经制度和财经纪律的情况

房地产开发企业的开发经营过程, 也是贯彻国家财经制度和财经纪律的过程。任何一个企业的开发生产经营, 都必须要遵循国家的财经法规, 执行国家制定的相关制度, 不得逾矩。尤其房地产开发涉及税种较多、税负高、计算复杂, 更要求会计核算准确及时, 不能多交少交或迟交税。房地产开发企业的各项经营活动和资金的运动都是通过在会计核算的过程中反映出来, 因此, 我们要对会计凭证的审查和会计报表最初更为深入的分析和更为严格的考核, 这样就能清晰的看出企业的开发活动是否遵守了国家的相关制度和财经法规。通过管理费用的核算, 我们还能发现企业管理人员有无假公济私、铺张浪费、贪污受贿等现象。通过利润分配的核算, 我们能够从出发现企业是否存在不按有关规定少提或不提盈余公积金的情况。

(四) 有效的进行会计核算

一般来说, 会计核算流程就是由做凭证开始到编制会计报表这一过程, 也叫会计循环。但是房地产开发企业同其他企业的会计核算是有区别的, 这个区别主要体现在成本费用方面的核算, 成本一般是指开发成本, 一般下设:“土地征用及拆迁补偿费”、“前期工程费”、“建筑安装工程费”、“基础设施建设费”、“配套设施费”“和开发间接费用”等六个成本项目专栏, 如果有项目贷款的还可设“项目利息支出”。由于房地产开发企业经营活动的特殊情况和管理要求, 与施工企业相比, 房地产开发企业的会计核算有如下特殊情况:开发产品单件性, 开发周期长, 涉及税收种类多, 产品成本的核算复杂;经营收入及其相关税金的核算不同。

参考文献

[1]俞文青.房地产开发企业会计[M].上海:立信会计出版社, 2008.

[2]边霞, 赵业猛.房地产开发企业会计核算问题初探[J].江苏科技信息, 2011 (02) .

开发对象 篇9

关键词:面向对象,设计模式,模块化,映射

在手机开发平台中,从硬件到软件,采用了分层架构设计,整个系统分成Hardware、BIOS、OS、GUI和APP等层结构,并进行了合理地封装。每一层构成了功能完备的子系统,并为上层提供服务。层与层之间采用消息的方式进行通信,很好地保证了子系统之间的信息隔离。同时,按照功能的需求对子系统又可以进行进一步划分。在模块划分过程中,按照粒度粗细可以将整个系统分成三个级别的模块:子系统(粗粒度)、模块(中粒度)和组件(细粒度),每个子系统可以划分为各个模块,在模块内部又可细分为各个组件。在不同级别模块的划分上,存在不同的特点与难点。针对上述手机平台功能性需求比较复杂,数据量相对少而简单,但对系统的实时性和效率要求较高的情况,可以把面向对象的分析和设计方式引用到手机开发平台设计中,利用模块化的设计思想提供良好设计公共接口,进行接口与实现的分离,从而实现手机软件开发的模块化,并且有利于后期整个系统的扩展和维护。

C语言是一种面向过程的程序设计语言[1],在C语言的基础上建立的C++语言是一种面向对象的程序设计语言。如果在开发C语言程序的同时,使用面向对象分析方法,这样开发的程序将会具有面向地对象程序的设计优点[2]。C语言运用比较灵活,执行效率高,与汇编语言联系紧密,可以开发出非常精巧的软件系统,但C语言没有名字空间和类的概念,缺少封装机制和访问级别,数据和操作各自分离,给模块化工作和维护带来较大难题,为此本文使用一个映射机制将对象的分析模型转换到过程设计模型,即对象映射到组件,从而实现模块化编程。

1面向对象分析设计思想

利用面向对象的方式进行思考[3],既可以提高软件开发的模块化,又符合人类思维的特点,它是人类认识世界的方式。对象包括数据和对数据进行操作的行为。对象在收到请求或消息后,执行相应的操作。请求或消息是使对象执行操作的唯一方法,操作又是对象改变内部数据的唯一方法。由于这些限制,对象的内部状态是被封装的,它不能被直接访问,它的表示对于对象外界是不可见的,外界只能通过其公开的接口(操作)访问对象的数据以及相关的操作。将面向对象的分析设计方式引用到手机软件开发中,可以提高手机软件开发的模块化,增加可理解性和可维护性。在手机运行环境中,存在大量的功能性需求。在进行模块的划分工作后,每个组件对应一个对象,而每个功能性需求对应对象的一个具体行为。由于在手机运行环境中,功能要求复杂,数据结构相对简单;同时,数据内容具有不断更新的特点。为了避免对象创建和销毁时不必要的开销,保证数据传输的实时性,提高运行效率,可以采用SINGLETON的设计模式[4]。在这种模式下,每个对象只需保证一个实例,而且可以严格控制客户怎样、以及何时访问它,提高运行效率,满足手机运行时所需要的功能性需求。因此,可以为对象提供一个全局变量,供对象的所有操作进行访问,而这些操作可以由组件中的函数实现。如图1所示,介绍了不同阶段从建模到实现的关系。

将对象的数据和操作映射为组件的数据和函数后,需要提供组件的封装和访问机制。对于每一个组件,针对三个级别的模块划分,相应需要提供三种级别的封装和访问机制[5]:public、internal 和private,参见表1。public 提供了模块外访问的接口,可以被其他模块使用,在子系统设计时划分模块的过程中就已经确定;internal 提供了模块内部访问的接口,是模块内其他组件通信的桥梁,由模块的设计者提供并实现;而private 是组件内部使用的一些私有接口,提供了进行内部操作的辅助行为。

这些机制为对象的封装和访问提供了良好的方法,充分保留了模块设计和实现时的信息,降低了不同人员交流的难度,增加了模块的可理解性与可维护性。

2结构化开发环境的编码实现

在结构化开发环境中,由于实现方法是非面向对象的,需要使用一个映射把面向对象的分析模型转换到过程设计模型,即需要将对象映射到组件(每个源代码文件)。在每个组件中,对象的数据封装到一个structure 结构中。由于考虑手机开发的特点并采用SINGLETON 设计模式,每个对象只需保证一个数据备份,因此可使用一个全局变量记录这个结构的数据,以便在对象的操作中共享这一个全局变量,为提高对象的模块化,其访问级别应该设为private。同时,使用public 访问机制向模块外公开其访问接口或使用internal 访问机制向模块内公开其访问接口,其中,对数据的访问采用公开的Set 和Get 方法进行。

利用C语言[6]开发环境的特点,可以在组件中将对象的封装与访问通过三个文件File.i、File.h和File.c 实现,这三个文件的关系见图2。隐藏或暴露一个接口的方式只需将这个接口的声明从一个文件移动到另外一个文件中。将模块中的所有组件组织成一个包后,可以定义一个统一的模块接口文件module.i,其内容包含了该模块中所有的File.i 文件。模块接口文件在所属的子系统中定义,由模块中的组件实现,并供其他模块使用,整个子系统中各模块间的关系如图3所示,图3中的虚线显示了各模块和各组件间的依赖关系。

从图3中可见,在子系统设计中进行了模块的划分,将模块组织为包,声明了模块的接口module.i,并指出了各模块间的依赖关系。在模块设计中,进一步划分了各个组件,将module.i中的接口分布在各个File.i 中得以实现,模块的可理解性[7]和可维护性都得到了提高。

3源代码开发示例

以“用户来电”这一场景进行分析,“用户来电”的时序图如图4所示,从时序图片断中可以看出各模块间的交互关系,这些交互关系定义了每个模块对其他模块的外部接口。其中CallLog 模块的外部接口有:接口1——存储来电记录(StoreCallLog ToQueue),接口2——查看来电记录(Display CurrentCallLog),接口3——显示号码(Display PhoneNumber)等。

这些接口可大致分为两类:接口1 与Data 直接相关;接口2 和接口3 与UI 直接相关,而后者又与Data 间接相关,即需要访问Data 的某些接口。因此在Call Log 子模块——allLogData中,接口被分为三个层次,如图5所示。图中符号“+”代表该接口可被外部模块访问,“#”代表该接口可被模块内部其他子模块访问,“-”代表仅能在该子模块内部访问,其中包含相关的数据信息。

从图5可知:CallLogData 子模块中必须被维护的外部接口为StoreCallLogToQueue 函数,该函数被Call 模块所调用;-CALLLOGITEM 数据结构被局限于CallLog 模块内部访问,可以被CallLogUI 子模块引用;而_CALLLOGQUEUE 数据结构被局限于CallLogData 子模块内部访问,不能被其他任何文件引用等。这些信息在分析与设计阶段已经被充分考虑,此处以源代码的形式在实现阶段保留下来,分别被不同的开发人员所理解和维护。

4结束语

本文通过前述三种封装和访问机制,保证了架构中各个模块接口的实现和模块的独立性[8],应用面向对象思想和三级封装和访问机制之后,模块与模块之间的依赖通过.i文件进行,内部依赖通过.h文件进行操作,相互依赖性减少,模块的独立性增加;系统设计信息和模块设计信息分离,分级暴露数据结构和全局变量的定义;另外模块接口不变,内部接口的修改对其他模块没有影响,修改代码也少。总之,在结构化编程语言中采用面向对象思想进行设计,一方面需要有面向对象分析的思想,另一方面需要提供恰当的封装和访问机制,这样才能更好地实现模块化,提高手机开发平台的可扩展性和可维护性。

参考文献

[1]黄锡伟,胡建彰.一种基于面向对象思想和结构化技术的软件开发方法.小型微型计算机系统,1996;17(4):17—24

[2] Erich G,Helm R,Ralph J,et al.设计模式—可复用面向对象软件的基础.李英军,马晓星,蔡敏,等译.北京:机械工业出版社;2000

[3]车万方,张凤鸣,宋志平.基于UML的C3I系统体系结构的面向对象分析和设计方法.系统工程理论与实践,2003;23(7):88—94

[4]赵慧.面向对象技术模式之Singleton及其应用.南通职业大学学报,2004;18(2):43—46

[5]龙鹏飞,张芳.面向对象方法在嵌入式应用软件开发中的应用.计算机应用与软件,2007;24(8):53—56

[6]谭浩强.C程序设计(第四版).北京:清华大学出版社,2010

[7]何昭.基于面向对象框架的软件开发方法.计算机工程,2002;28(4):5—6

上一篇:融合体育教学模式下一篇:纳米纤维