(计算机软件与理论专业论文)面向对象软件开发方法的实例分析.pdf_第1页
(计算机软件与理论专业论文)面向对象软件开发方法的实例分析.pdf_第2页
(计算机软件与理论专业论文)面向对象软件开发方法的实例分析.pdf_第3页
(计算机软件与理论专业论文)面向对象软件开发方法的实例分析.pdf_第4页
(计算机软件与理论专业论文)面向对象软件开发方法的实例分析.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

(计算机软件与理论专业论文)面向对象软件开发方法的实例分析.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学硕士学位论文 摘要 摘要 从软件建模方法论的角度上看,应用软件系统的开发方法已历经两代技术变 更,由面向过程发展到现在主流的面向对象的方法。面向过程包括面向功能和面 向数据流程。面向对象的思想用对象和对象之间的关系表现系统。模块封装和局 部化的特点使面向对象的方法更有利于改善软件质量、理解和维护软件系统。面 向对象的方法和一些过程方法结合,组成完整的开发方法。 本文的实例中包含四部分工作,以天为单位类型的新报告类型的开发、添加 报表产生中的过滤规则、使用合并的数据读取的性能优化和采用分页的方式显示 请求状态信息。面向对象的方法应用于软件过程的分析、设计和测试等阶段。实 例所在环境的系统开发用到一些软件过程的方法,而对于实例内容自身,在开发 中也用到了不同的过程方法。面向对象的思想应用于这些过程中,取得了良好的 效果。瀑布过程中,系统的建模和设计可以使用面向对象的方法;而在特征驱动 的过程中,整体上面向功能的分析更适合系统建模,但单个开发阶段中的设计也 可以结合面向对象的思想。本文通过对实例开发工作内容的介绍、分析面向对象 方法在开发中的应用以及对面向对象方法和软件过程方法结合的分析,介绍面向 对象应用的特点、过程和能取得的效果。面向对象的方法在优化建模设计的同时 也间接影响着软件过程的定义,与过程方法的结合可以帮助系统开发中定义出清 晰、合理的软件开发过程,实现软件系统开发的质量保证和开发过程的有效管理。 本文给出面向对象方法在具体层面上的概念和在软件系统的开发中具体应 用过程。应用于多种过程上的开发方法,面向对象的方法和思想能够使系统的分 析、设计和测试更有效。与过程方法的结合,既保持了原有过程的特点,又把面 向对象的思想引入软件过程,使系统设计和开发过程更合理。在软件开发发展的 方向下,面向对象的方法将会在新的软件开发中得到更广泛的应用。 关键词:面向对象,属性,方法,系统表示,测试层次 浙江大学硕士学位论文a b s t r a c t a b s t r a c t f r o mt h ev i e wo fs o f t w a r em o d e l i n g , t h ed e v e l o p m e n tm e t h o do fa p p l i c a t i o n s o f t w a r es y s t e m sh a se x p e r i e n c e dt w og e n e r a t i o n so ft e c h n o l o g y , f r o mt h ep r o c e s s o r i e n t e dt oo b j e c to r i e n t e dw h i c hi su s e dm o s t l yn o w a d a y s p r o c e s so r i e n t e d i n c l u d e sf e a t u r eo r i e n t e da n dd a t af l o wo r i e n t e d t h ei d e ao fo b j e c to r i e n t e d r e p r e s e n t st h es y s t e mt h r o u g ht h er e l a t i o n s h i p sb e t w e e na n dt h eb e h a v i o r so fo b j e c t s t h ee n c a p s u l a t i o na n dl o c a l i z a t i o no fo b j e c t e do r i e n t e di sh e l p f u lt oi m p r o v es o f t w a r e q u a n t i t y , u n d e r s t a n d i n ga n ds u p p o r t i n gt h es y s t e m t h em e t h o do fo b j e c to r i e n t e di s u s e d 谢t l ls o m es o f t w a r e p r o c e s sm e t h o d s ,c o n s t r u c t i n g w h o l em e t h o d so f d e v e l o p m e n t t h ew o r k i n g e x a m p l e sc o n t a i nf o u rp a r t s t h e ya r ed a i l yr e p o r tt y p ed e v e l o p m e n t , a d d i n gf i l t e rr u l e sb e f o r er e p o r t sg e n e r a t e d ,g r o u p i n gl o a d i n gf o rp e r f o r m a n c et u n i n g a n dp a g i n gf o rv i e w i n gr e q u e s ts t a t u si n f o r m a t i o n i nt h i sa r t i c l e ,f o re a c hs a m p l e ,t h e r e q u i r e m e n t ,s t r u c t u r eo fi m p l e m e n t a t i o n ,t e s t i n ga n do b j e c to r i e n t e da n a l y s i sa l e i n t r o d u c e d t h es y s t e md e v e l o p m e n to ft h ee n v i r o n m e n t ,i nw h i c ht h es a m p l e sa r e ,h a s u s e ds o m es o f t w a r e p r o c e s sm e t h o d s a n d f o rt h e s a m p l e st h e m s e l v e s ,t h e d e v e l o p m e n th a si n v o l v e do t h e rp r o c e s sm e t h o d s u s e di nt h i sp r o c e s s e s ,t h ei d e ao f o b j e c to r i e n t e dw o r k e dw e l l i nt h ep r o c e s so fw a t e rf a l l ,o b j e c to r i e n t e dc a l lb e u s e df o rs y s t e mm o d e l i n ga n dd e s i g n ;i nf e a t u r ed r i v e np r o c e s s ,f e a t u r e o r i e n t e d a n a l y s i si sm o r es u i t a b l ef o rt h es y s t e mm o d e l i n go nt o t a ll e v e l ,w h i l ei ns i n g l e d e v e l o pp h a s e s ,t h ed e s i g nc a nb ep e r f o r m e du n d e rt h ei d e ao fo b j e c to r i e n t e d t h r o u g hi n t r o d u c i n gw o r kd o n ef o rt h es a m p l e s ,a n a l y z i n go nh o wo b j e c t - o r i e n t e d m e t h o di su s e di nt h es o l , r a r ed e v e l o p m e n ta n da n a l y z i n go nt h ec o m b i n a t i o no f o b j e c to r i e n t e da n ds o f t w a r ep r o c e s sm e t h o d s ,t h i sa r t i c l ei l l u s t r a t e st h ef e a t u r e so f o b j e c t - o r i e n t e da p p l i c a t i o n ,i t sp r o c e s sa n dw h a ti tc a na c h i e v e i nt h em e a nt i m eo f t u n i n go nd e s i g nm o d e l i n g ,t h ei d e ao fo b j e c to r i e n t e da l s oh a se f f e c to ns o f t w a r e p r o c e s sd e f i n i t i o n c o m b i n e d 谢t hp r o c e s sm e t h o d s ,i tw i l lh e l ps y s t e md e v e l o p m e n t t og e tac l e a ra n dr e a s o n a b l es o f t w a r ep r o c e s sd e f i n i t i o n ,m a k i n gs u r et h eq u a n t i t yo f 浙江大学硕士学位论文a b s t r a c t s o f t w a r ed e v e l o p m e n ta n de f f i c i e n tm a n a g e m e n to nd e v e l o p p r o c e s s i nt h i sa r t i c l e ,t h ec o n c e p to np r a c t i c a ll a y e ro fo b j e c to r i e n t e da n di t sa p p l i c a t i o n p r o c e s s e si ns o f t w a r ed e v e l o p m e n ta r ei l l u s t r a t e d 1 f l 地m e t h o da n di d e ao fo b j e c t o r i e n t e dm a k et h ea n a l y z i n g ,d e s i g na n dt e s t i n gf o rs y s t e m sm o r ee f f i c i e n t c o m b i n e d 、) i ,i t l l p r o c e s sm e t h o d s ,i tk e e p st h ea d v a n t a g e so fp r o c e s sm e t h o d sa n di n t r o d u c e s o b j e c t - o r i e n t e dc o n c e p ti n t ot h ep r o c e s so fs o f t w a r ed e v e l o p m e n t , m a k i n gt h ed e s i g n a n dd e v e l o pp r o c e s sm o r er e a s o n a b l e u n d e rt h ed i r e c t i o no fs o f t w a r ed e v e l o p m e n t , o b j e c to r i e n t e dm e t h o dw i l lb eu s e dm o r ew i d e l yi nt h en e ws o f t w a r ed e v e l o p m e n t p r o c e s s k e y w o r d s :o b j e c to r i e n t e d ,s t a t i cp r o p e r t yi n f o ,m e t h o d ,s y s t e mr e p r e s e n t ,t e s t i n g l a y e r 浙江大学硕士学位论文图目录 图目录 图3 1 实例金融软件系统的框架结构2 5 图3 2 计算组织模块,框架概念上的视图2 9 图3 3 计算组织模块,框架结构视图2 9 图4 1 回报率统计量的定义结构3 6 图4 2 分布统计量的定义结构3 6 图4 3 原有报告类型的对象结构图4 0 图4 4 新报告类型的对象结构图4 1 图4 5 对象化要添加的过滤规则5 0 图4 6 细化后的过滤规则对象描述5 1 图4 7 对象结构和平台系统信息的对应关系5 2 图4 8 分离的数据读取过程对象的整体描述5 9 图4 9 合并的数据读取过程对象的整体描述5 9 图4 1 0 调整后和细化的合并数据读取对象描述6 0 图4 1 1 分离的数据读取过程对象的结构6 0 图4 1 2 合并的数据读取过程对象的结构6 1 图+ 4 13 分页后的效果图像6 7 图4 1 4 未分页的计算请求状态信息查看的对象结构图6 8 图4 1 5 分页的计算请求状态信息查看的对象结构图6 8 图4 16 页码选择对象化结构图6 9 图4 1 7 数据记录读取模块的结构一版本1 6 9 图4 1 8 数据记录读取模块的结构一版本2 7 0 l 浙江大学硕士学位论文 表目录 表目录 表4 1 以天为单位增长贡献报告类型的国内资金类型的统计量3 2 表4 2 以天为单位增长贡献报告类型的全局特有的其它统计量3 2 表4 3 统计量基本信息的定义3 5 表4 4 统计量数据和计算相关信息的定义3 5 表4 5 统计量计算的操作数信息定义3 5 表4 6 以天为单位报告类型的时间段的修改3 7 表4 7 统计量的系统抽象过程的代码调整3 7 表4 8 统计量计算过程的代码开发3 8 表4 9 过滤规则静态信息的定义4 5 表4 1 0 过滤规则系统表示的读取和转化过程的实现4 5 表4 1 1 过滤规则系统表示使用条件判断的实现4 6 表4 1 2 排除条件的判断过程的实现。4 6 表4 1 3 过滤规则系统表示过滤行为在系统中的实现。4 7 表4 1 4 统计量分组信息的实现5 5 表4 1 5 统计量组的信息传递实现。5 5 表4 1 6 数据查询对分组读取的调整5 6 表4 17 数据组织对分组读取的调整5 6 表4 1 8 版本1 的性能测试结果,分离读取。5 7 表4 1 9 版本1 的性能测试结果,合并读取5 7 表4 2 0 版本2 的性能测试结果,分离读取5 7 表4 2 l 版本2 的性能测试结果,合并读取5 7 表4 2 2 版本2 的性能测试结果,性能比较5 7 表4 2 3 页面选择模块的实现6 4 表4 2 4 静态信息的添加。6 4 表4 2 5 数据纪录条数读取模块的实现6 5 表4 2 6 数据纪录读取模块实现一版本1 6 5 表4 2 7 数据纪录读取模块实现一版本2 6 5 i v 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得逝姿盘堂或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文作者签名:侉夸1 ) 巾签字日期:y 4 8 年f 月7 日 学位论文版权使用授权书 本学位论文作者完全了解盘江盘堂有权保留并向国家有关部门或机 构送交本论文的复印件和磁盘,允许论文被查阅和借阅。本人授权逝江盘堂 可以将学位论文的全部或部分内容编入有关数据库进行检索和传播,可以采用影 印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 签字日期:妒8 年 彳象瓠9 中 l 1 f 月 e l 导师签名: 签字日期:研年月- ) 日 浙江大学硕士学位论文 第l 章绪论 第1 章绪论 1 1 软件建模角度上的方法论概述 从软件建模方法论的角度上看,应用软件系统的开发方法已历经两代技术变 更,由面向过程发展到现在主流的面向对象的方法【1 1 。面向过程,包括面向功能 和面向数据流程,开发的重点是在实现系统运作时的处理过程。面向对象的思想, 体现了功能与数据抽象方法的统一,用对象的概念表述属性和方法的结合,通过 对象之间的关系和行为,体现出系统的功能。 面向功能的建模方法是在功能的角度抽象和实现分析系统。建模过程中,从 系统使用的方面,分析系统的用例情况,和在各个用例下的属性和行为。建模的 结果是系统的各部分属性体现在定义系统的功能集中。这些功能涵盖系统需求中 的各个用例。这样就实现了需求中的系统到功能集上的抽象过程。在之后的开发 过程中完成功能集到软件实现的转化。面向数据流程的建模方法中,分析和抽象 系统的介质是系统或部分系统的属性。需要用软件实现的系统,本身又有很多方 面的属性。其中的一部分是软件系统需要关注的,这些内容的计算机表示就是数 据。在抽象和用软件重现系统的过程中,如果把分析的目标体定义在这些属性上, 根据数据的变化过程体现系统的内容,这样的方法就是面向数据流程的方法。 面向过程的方法有自身的局限性,在系统规模和复杂程度到一定值之后,面 向过程的方法就很难清晰的体现系统的结构,对系统变化的适应能力也有限。这 样,当新一代的建模方法出现时,面向过程的方法就渐渐被取代。面向对象的思 想的出现给计算机领域带来了巨大的变革。面向对象一部分思想来源是计算机硬 件的开发方法。 硬件技术在这几十年中取得了显著的成绩。硬件系统的复杂度很高,但与软 件相比,设计和实现错误却较少。硬件设计从微观集成电路到宏观的分布式系统 均充分体现了技术重用的思想,系统中每一子系统的设计都经过了详尽的分析和 浙江大学硕士学位论文第l 章绪论 测试,上层系统由多个可靠的下层子系统构造而成。所以经过几十年的知识积累, 硬件产业终于达到了今天的高峰1 2 椰。面向对象在很大程度上借鉴了硬件技术的思 想,类似于硬件系统中的组件,软件的对象可以是任何可执行的信息处理程序体。 通过确定公共的接口语言和对象表示形式实现的软件系统单元。具有接口和内部 结构封装的优点,达到了直接将面向对象技术展现在最终用户面前的效果。面向 对象在对象划分的粒度上又分为纯粹对象级别上的建模和细化的构件级别的建 模。两者在本质上都是面向对象的思想在建模过程中的应用,区别是前者的对象 粒度上的建模偏向于原子级的应用,针对需要开发的实物,进行对象化抽象。而 构件粒度的方法更倾向于通用的因素,把很多有相同功能的结构统一抽象成构 件,更有利于软件的复用。 传统的软件开发技术与其相比,无论在程序代码的可读性、可扩充性、可视 性、重用性方面,还是在程序维护、适应性、软件的生存周期等方面都是无法比 拟的【5 l 。而同时,把面向对象的思想应用到软件开发的整体过程中,用面向对象 的开发方法进行系统框架设计和开发,对开发工作和软件开发过程控制都有很大 帮助,解决因为传统的开发方法不适应软件应用而带来的很多问题。在建立可重 复使用的组件时,最重要的是封装性,即把组件作为一个“黑盒子 ,组件的用户 无需清楚组件内部的工作原理,用户也无需清楚一个对象的工作原理,只需知道 如何使用它即可【6 ,刀。局部化是软件开发中的一个重要原则。这个思想就是不希望 软件一部分过多地涉及或影响软件的其它部分i s 。在面向对象的开发方法中,局 部化主要体现在对系统元素与元素的关系操作的封装,采用对数据、代码的封装, 即将数据、代码和操作方法封装成一个类似“黑箱 的整体对象。 整体对象有自身的结构和属性,还有一些功能方法,同时它对外提供一些方 法和接口,其它的对象可以通过对这些方法和接口的调用来实现获得一项服务或 是对口的整体对象差生影响。封装后的对象之间的关系和行为是这样实现的,这 样提高了程序的可靠性和安全性,同时增强了系统的可维护性。也就是说面向对 象方法在局部化方面运用得更加深入,更彻底。 2 浙江大学硕士学位论文 第l 章绪论 项目管理技术的本质是采用活动网络进行计划,基于里程碑进行进度控制, 面向对象开发方法中,项目迭代的特点使得管理更具有挑战性。过程设计有两个 视角,一个面向任务,另一个面向对象。这样就会更有利于与一些过程上的开发 方法结合,体现出面向对象思想的优势。不要期望面向对象项目在一个阶段完成 时提交一个完备的产品,产品内容在整个生命周期中需要不断地演进,并在一个 阶段结束时达到一个渐进目标【9 】,按照面向任务的传统视角来设计面向对象的过 程会走入一个误区,因为面向对象的项目迭代的本质造成阶段或活动的边界交叠 且难以确定。领域框架是从实际应用领域中抽象出来的具有领域特征支撑性功能 体。它可以是一组系统级对象,也可以是由一组程序模块组成的模板。构件化领 域框架由一组实现领域内系统共性的基本功能构件组成,它们也具有构件接口标 准和内部信息封闭的优点【1 0 1 。与硬件系统的开发设计类似,软件构件的概念可以 是任何可执行的信息处理程序体,而软件系统的结构也可以有不同的软件构件来 协作完成。 总体来说,下面四个要素可以用来描述软件构件概念的特征,构件本身的结 构、逻辑和行为,构件和外部分的作用,包括构件的插口和构件使用其它构建的 接口,构件与其他构件协作的能力、以及构件在环境中的位置和作用。面向构件 的软件开发方法把构件开发的范围,从运用面向构件的思路建立软件,扩展到了 整个软件开发周期,包括它的所有阶段和所有方面都以构件为中心】。如果希望 构件可随时用于组装,这些构件必须作为项目的灵活组装部分来建造,此时面向 构件显得特别有优势。要具备快速应对业务变动的能力,必须以面向对象的方法 论指导集中交易系统的开发。但是要构建一个能够快速应对业务变动的系统,仅 有面向对象的封装、继承、聚合、多态等等是不够的。在集中交易系统设计中, 引入了用以保持软件的灵活性、可维护性的设计原则。 采用面向对象的方法论,运用保持软件的灵活性、可维护性的设计原则,是形 成快速应对业务变动能力的一个方面,目的在于有效地分离不同的机制,从而达到 松耦合、强内聚的软件可维护性的最高原则【l2 1 。本文中分析的面向对象的方法是 3 浙江大学硕士学位论文第l 章绪论 迭代的面向对象的分析过程,在迭代的最下层,单个模块的结构比较简单,可以 使用其它的建模方法实现。 1 2 面向对象的方法与开发过程角度上方法的结合 建模角度上的方法是用于系统分析和设计,而针对于软件开发过程上是用开 发过程的控制方法来完成的。软件开发过程,包含不同部分的开发工作,同时也 有协调,管理的工作。软件开发过程的方法对软件的实现有重要作用。1 9 9 9 年的 在英国公司中的一项调查显示,5 7 的公司在使用一定的开发方法,而只有1 1 在使用传统的商业开发方法【1 3 1 。 面向对象的建模方法应用于传统的瀑布开发过程,可以系统分析和设计,系 统的分解,和系统的集成等工作简化,有效。瀑布模式的开发方法是早期的软件 开发方法,这个传统的方法是后来一切软件开发方法产生和发展的基础【l 钔。瀑布 模型把整个软件开发的过程划分成若干阶段,每个阶段的任务相对独立,这样有 利于开发过程的控制,和不同开发人员之间的协调,。从而降低了整个工程的工作 难度。在软件生命周期的每个阶段都采用科学的管理技术和良好的方法与技术, 而且每个阶段结束之前,都从技术和管理的角度进行严格的检查,经过确认之后, 再开始下一阶段的工作。项目是按照一定的顺序执行。瀑布模型规定了各项软件 工程活动,其中包括:制定软件项目计划,进行需求分析和定义,软件设计,程 序编码,测试及运行维护。同时还规定了它们是自上而下,相互衔接的不变固定 次序,如同瀑布流水,逐级下落。瀑布开发方法是一种连续验证生命周期模型。 这种模型基于这样两个基本假设,用户能清楚地,完整地提供系统需求和开发者 能完整地、严格地理解和定义这些需求。在这些假设的支持下,将软件开发生命 周期划分为需求分析、规格说明、软件设计、编码、运行及维护等阶段,自然地 形成一个严格的线性开发顺序。每一后继阶段的开始均依赖于前一阶段产生的完 整定义和描述等结果。每一阶段结束后,通过严格的审查和确认,得到该阶段的 一致、完整、正确并且无二异性的文挡资料。这些文挡是该阶段结束的标志,并 且它们也是下一阶段活动的唯一基础。以每一步的正确性和完整性来保证最终产 4 浙江大学硕士学位论文第1 章绪论 品的质量和可靠性。 和敏捷的开发模型结合使用,面向对象的分析和设计就更明显的体现出优 势。敏捷开发的方法是适应软件系统规模不断变大,系统的结构日趋复杂的情况 下产生的。开发庞大规模的,应用情况和自身结构很复杂的系统,传统的开发模 式就难以有效的运作,开发的系统就很难保证功能和效率目标同时达到,系统的 缺陷数量在老的开发模式下很难得到控制。敏捷开发自身的特点,有助于解决这 些问题,使得软件开发的工作顺利进行,这样各种形式的敏捷开发方法就产生、 应用和不断演化。而对于不同的具体应用方面,不同的开发方法又显示出它们的 特点。对系统进行对象化描述之后,敏捷开发过程的单个迭代就可以通过实现系 统的属性和行为来定义。敏捷开发最主要的特征是单个的开发周期用时较短,开 发工作相对较灵活,很多周期的迭代,使得系统的功能不断增强,最终达到开发 需求。同时,开发周期的迭代,又要求系统的设计上有良好的扩展性能,使系统 的结构设计方面和传统的软件开发中的设计有着不少区别。用户提出需求的时 候,有时会急着使用系统的部分功能,有时也很难清除明确的描述自己的需要l l 。 软件系统的用户的不同特性,决定了传统的需求分析阶段处于这个开发过程的前 期是不能满足大规模复杂系统或特定用户系统的开发要求【1 6 1 。极限开发的把开发 工作的重点放在系统急需实现的功能上,以尽快的速度把它们实现出来,呈现给 用户,这样用户就能有很直接的体验和感受,有助于提出进一步的需求,然后开 发的工作就根据用户的反馈进行下去,进入到下一个开发迭代中。 如果建模中构建的对象能够根据需求自适应的进行调整,这样面向对象就应 用到自适应性的软件开发( a d a p t i v es o f t w a r ed e v e l o p m e n t ,a s d ) 中。该过程方 法的主要思想是引入自适应的过程到软件开发中【1 7 】,把软件开发作为一个有自 身结构和行为的组织,可以在开发过程中有不断的自我调整动作。自适应的开发 方法为开发过程提供一个相对清楚确定的框架,使得软件开发过程可以处于控制 中进行。a s d 方法的一个前身是r a d i c a ls o f t w a r ed e v e l o p m e n t 18 。对象的属性 细化,方法也相对具体是属性和方法的实现可以在短周期内完成。这样对象的思 浙江大学硕士学位论文第l 章绪论 想就可以应用到极限编程的方法( e x t r e m ep r o g r a m m i n g ,x p ) 。极限编程的方法 是一种很典型的敏捷开发方法。在该模式下的开发过程中,需求可以是开始不明 确,也可以是不断增加。开发中使用短的开发周期和小的功能发布 1 9 2 1 ,用户 比较多的参与开发功能的使用并且能快速的把反馈传达到开发部分。抽取对象主 要的属性和方法,就可以构建原型,与敏捷模型的开发方法( a g i l em o d e l i n g , a m ) 结合使用。在原型的开发方法中引入敏捷开发的思想,使两者结合,就形 成了这样的方法【2 2 】。在敏捷原型开发过程中,开发者在一个或多个敏捷迭代的 周期中,可以引入模型的过程,快速的构建模型,呈现给用户,收集用户反馈和 开发该阶段的需求。特征驱动的开发( f e a t u r e d r i v e nd e v e l o p m e n t ) 应该在总体 设计上更自然会是用面向功能的建模,而在单个的功能开发中,可以结合对象的 思想。商业的系统开发,软件系统可以从功能上分成相对独立的不同部分,或者 在不同的阶段又有不同的功能需求需要添加,这样系统的开发就可以在不同的开 发阶段中进行,而在各个阶段中,开发完成的主要是系统的相对独立的部分和特 征,这样的开发是以系统的特征驱动的方法 2 3 ,2 4 。在敏捷开发方法发展的过程 中,产生了一系列的软件开发的具体开发,应用于各自的适应领域,上边简单的 介绍了典型的几种,另外还有像英国一家社团开发的动态系统的开发方法 ( d y n a m i cs y s t e m sd e v e l o p m e n tm e t h o d ) 【2 5 ,2 6 ,适合开发周期很短的网络快速 的开发( i n t e m e t s p e e dd e v e l o p m e n t ) 【2 7 2 9 等方法,也属于敏捷开发的范围。这 些过程的方法都可以与面向对象的方法结合使用。 1 3 本文内容介绍 1 3 1 本文的主要工作 本文主要的工作是在一个金融系统软件上的开发的四部分工作,并且结合这 些实例工作,分析面向对象的思想在软件开发过程中,包括在问题需求分析,解 决方案的确定,工作的分解,测试等各个阶段过程中的应用。通过对面向对象软 件方法的背景理论内容和本文中的这几部分工作的环境平台的简单介绍,使阅读 6 浙江大学硕士学位论文 第l 章绪论 者对本文的背景和环境有大体的了解。在这基础上,介绍本文实例的具体内容, 并且对实例的开发过程用面向对象的开发方法进行分析。这四部分工作包括,以 天为单位类型的新报表类型的开发,添加报表产生中的过滤规则,使用并行的数 据读取方式达到数据库数据读取的性能优化,和采用分页的方式显示请求记录信 息来提高界面上的用户的友好使用和提高用户查看的速度。这四部分的工作内容 自身有着不同的特点,有些内容包括问题的发现和分析过程,有些开始的工作就 建立在收到需求,需求在后来的过程中有一定变化的基础上。但这些工作的内容 在方法上有着相同的地方,就是在开发工作的不同阶段,用到面向对象的分析方 法或者是面向对象的思想和开发方法。 以天为单位的一种新类型报表的开发经历了需求文档的分析和确认,后来的 一些需求变动,代码的添加和修改,数据库设置的修改,和任务的单元测试和测 试结果。这部分工作的最主要的特点是工作量巨大,持续的时间较长。开发工作 的开始阶段,对需求,系统和报表类型的相关知识了解不是完全足够,在后来的 工作过程中,了解不断深入,同时,因为工作量比较大,开发过程包括了相对独 立的几个内部阶段。 添加报表产生中的过滤规则,包括两方面的内容,分别是对定义在目标的两 个属性上的过滤规则。这两个过滤规则的对象是包含在投资基金下面的投资在不 同股票或证券上的组合内容。在一个股票或者证券上的组合项,自身有一些属性 的统计量,比如说开始的市值,结束时的市值,增长量,和增长回报率等内容。 该金融系统产生的报表包含的内容就是一系列这些属性统计量以及由这些统计 量出发计算出来的衍生统计量。在过滤规则添加的这项工作中,一条过滤规则是 定义在结束时的市值上的过滤,另一条规则是定义在投资组合项的股票或者证券 的标志码上的。 使用合并的数据读取方式来实现从数据库读取数据的性能优化工作是对系 统的一部分内容做的功能优化和增强。从整体的系统性能来看,产生报表的速度 不够快,有提高的需要。接下来的工作是根据系统处理的流程去看到底是哪一个 7 浙江大学硕士学位论文第l 章绪论 处理阶段用掉了比较多的时间,又较大的提升空间,并且可能得到较好的效果。 这样分析的结果是数据读取过程占了整个处理耗时的很大比重。然后就去根据理 解和具体的分析,去找存在的可以提高这部分性能的方法,并且对不同的方法做 模拟和分析,确定一种方案。进行修改,添加代码和单元测试。 用分页的方式显示请求记录信息的工作起因是因为显示请求记录信息的一 个性能问题。开始的实现方式是把所有的纪录信息一次放入一个列表框中显示给 用户,在记录信息条数少的情况下,这种方式能够正常工作。记录的条数大到一 定数目时,列表框里就显示了很多条数,内容很多是的列表框的滚动条变得很小, 用户查看时就不方便,还有一个更严重的问题,记录的条数很大时,用户的查询 就会很慢,有时会用到几分钟,甚至会产生错误。从这个问题出发,实现分页的 显示,用户的每次查询提交,只是显示当前页的请求记录信息,上述的问题就解 决了。 在对这四部分工作介绍这后,针对于每一部分的工作,本文都对其设计实现 过程中的软件开发方法进行分析,介绍面向对象的方法和思想在过程中的应用和 对方法应用的效果进行描述和评价。 1 3 2 本文的意义 本文在引言部分综述了软件开发领域的建模方法、过程方法以及二者的结 合。对建模方法的大致思想和大致过程作了简单的介绍,之后还描述了每个方法 的特点和应用情景和大的应用领域,使阅读者对软件开发方法有总体的了解,为 后面的阅读和理解软件开发中面向对象的思想和方法过程,以及这种方法在本文 描述的工作实例中的应用,构建背景的知识,有助于帮助阅读者理解面向对象方 法所在的环境,可以对比的去理解面向对象的思想和方法。 本文在主体部分介绍了开发工作的四部分实例,并结合这些实例分析面向对 象思想和方法在其中的应用和结果。这些分析直接呈现给阅读者面向对象的思想 是怎样的,这种思想下的开发方法又是怎样的过程,以及通过和实例的结合,呈 8 浙江大学硕士学位论文第1 章绪论 现出一幅面向对象的软件开发方法在实际开发工作中的应用形式,同时在分析该 方法应用和对应用的结果描述基础上对方法本身进行讲解和评价,让阅读者全面 的感受和体验面向对象的开发方法。 面向对象的思想在计算机的很多领域中的应用都有着积极的效果,在软件开 发过程管理中,面向对象的思想和开发方法,有利于开发工作的规模评估,复杂 项目的分析,结构框架设计,开发工作的分解和集成【3 0 】。本文通过介绍项目工作 的相关实例,并且进行面向对象方法上的分析,说明该方法的应用在实际中的相 关过程,和在应用中的效果和优点。同时是阅读者对该方法的一些限制也有一定 的体验。把面向对象的开发方法以一种直接具体的分析和体验的方式呈献给阅读 者,在具体的实践项目开发选择时,面向对象的方法可以作为一个不错的候选项, 供阅读者进行评价和考虑。 面向对象的软件开发在思想和过程中和过程的开发模式是不同角度的方法。 这也就是说过程开发方法可以应用面向对象的思想,比如面向对象的方法可以和 瀑布的开发模型或者是敏捷的开发方法同时使用,比如面向对象的方法可以和瀑 布的开发模型或者是敏捷的开发方法结合使用,在应用的开发阶段和领域概念 上,面向对象的方法和过程方法从不同角度构成软件开发方法,它可以结合过程 的方法进行使用【6 7 ,3 1 1 。在敏捷的开发模式方法下,如果用极限编程的模式开发, 在总体开发的设计过程中,像每个迭代需要完成那些功能,这些功能之间的衔接 是怎么样实现,每一个开发周期中,需求的制定,开发工作的设计,开发进程的 过程控制,测试的进行,这些内容够可以使用面向对象的方法进行分析。 1 3 3 本文的结构 本文共包括5 部分内容。其中第3 ,4 部分,这三章的内容是文章的主体。这 三部分的内容介绍了本文的4 个工作实例,并且对工作实例在开发过程,包括需 求分析和确定,功能设计和开发,测试和评价等各个阶段分析面向对象思想和方 法在其中的应用进行分析。通过主题内容的描述,本文呈献给阅读者面向对象方 9 浙江大学硕士学位论文第l 章绪论 法的实例体验。本文具体每部分的内容介绍如下: 第1 章,概述了软件建模角度上的方法和面向对象的方法和软件开发过程方 法的结合。 第2 章,具体介绍面向对象软件开发相关的内容,包括方法的产生背景,方 法的思想,方法的概念和实施过程以及对面向对象开发方法的评价。 第3 章,介绍实例工作的平台系统介绍。本文介绍的四部分实例工作都是在 一个金融软件系统的某个模块上开发的,所以在具体介绍实例工作之前有必要对 该系统平台进行介绍。 第4 章,详细说明实例开发工作的内容。分别对每个开发实例进行分析,呈 现出面向对象思想和方法的体验。 第5 章,总结本文工作和分析,说明面向对象软件开发方法的意义和前景。 l o 浙江大学硕士学位论文第2 章面向对象的开发方法 第2 章面向对象的开发方法 2 1 面向对象的方法学 2 1 1 软件建模方法碰到的问题和分析 在计算机知识的学习和使用过程中,有很多接触到面向对象的概念,其中最 主要的是面向对象的开发语言,使用类的概念对对象进行封装,元素或者实体用 类来表示,定义类概念上的数据和操作方法。面向对象对程序的结构,代码功能 上的封装和安全性都有很大的提高。但面向对象的概念,最为一种思想,其应用 远不止是在计算机程序语言领域,其它的过程和领域中也有着比较广泛的应用。 应用于软件开发方法上,面向对象的思想同样有很多好处。实际的软件应用开发 中,互联网相关的开发是比较多的一类开发。其中有的系统可以很复杂。进行这 类开发是,网页设计过程,经常需要对原有的代码进行编辑修改,但我们最多只 能重复使用代码,把原有相近的代码复制一份,用到新的开发工作中去,而不能 直接重复的使用原有的组件。 而使用原来的代码有时会牵涉到对复制的代码进行改动,造成代码冗余的同 时,可能因为对原来的代码模块不够熟悉,复制代码上的修改不够全面等原因, 带来新的代码质量问题,采用面向对象的方法,通过构建和测试基本的对象,可 以建立一个经过严格测试的代码库和可靠的组件,从而无需在以后的使用中对每 个组件重新测试,而仅需对组件的整体进行测试。这种方法有助于加快开发的进 度,提高代码的质量。 面向对象的软件开发方法是解决软件设计过程中所出现问题的基础性的解 决方案,它可以使我们无需做重复的工作,让我们的工作变得更有效率。即进行 可重复使用性设计,软件的总体框架中可以设计在一起用同一个功能模块实现的 不同部分也可以通过面向对象的设计,和模块的复用来实现重复利用,减少开发 得重复工作,提高开发效率。比如设计可重复使用的代码,一项功能可以有一段 相对独立的代码来完成。如果这项功能在系统中多个位置调用到,这段代码就可 浙江大学硕士学位论文第2 章面向对象的开发方法 以重复利用。 6 0 年代末开始,计算机软件开发领域,出现了“软件危机 ,其主要表现是: 软件质量变差、成本及开发进度变得难以控制,软件产品的维护工作也变得很麻 烦。这些变化是随着计算机应用的规模不断变大,领域范围不断广泛,软件应用 不断复杂产生的,这一危机的根本原因在于结构化的方法强烈依赖于系统逻辑模 型的完整性描述,传统的软件开发模式方法是由最简单和一般的情况出发,建立 在系统逻辑模型完整性描述和系统是静态不会变动的基础之上,这样,传统的方 法就难以做到适应系统的动态变化与扩展,使系统开发质量和效率都不高、而且 容易产生开发到中间的系统由于碰到难以解决的问题而使前面的工作回滚,浪费 资源甚至有时被迫取消系统的开发。开发的周期很长,费用也是很高,传统结构 化设计方法中主要是是自顶而下的瀑布模式的开发方法,在其设计中,使数据结 构的设计仅服从于当前功能实现的要求,为以后的扩充和重用设置了巨大的障 碍。 我们都知道,就软件开发而言,面向对象技术( o b j e c to r i e n t e dt e c h n o l o g y , 简 称o o t ) 的确带来革命性的变化,因为面向对象技术是一种完全崭新的软件开发和 程序设计技术,其所开发的程序是面向对象程序,直接描述客观世界的对象及其相 互关系1 6 】。随着i t 技术的飞速发展及计算机大规模的应用和普及,软件的应用范 围越来越广,规模也是越来越大,要解决的问题越来越复杂,人们对软件的要求 也越来越高,包括纯粹软件功能上的,同时还有软件易用方面上的,既要求实现 一项功能,又要使得这项功能在使用上方便好用。传统的软件开发技术根本无法 满足现实需要,只能通过引入像面向对象的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论