浅谈UML与面向对象程序设计方法摘要:在软件开发过程中,面向对象的方法是主流的软件开发方法,UML是用于面向对象分析设计的标准化建模语言。这种方法将传统的以数据为中心的软件开发方法改变为同时关注数据的信息与功能,从而可以开发出适应信息与功能变化的系统。关键词:UML;面向对象程序设计;软件工程TalkingaboutthemethodofUMLandobjectorientedprogrammingAbstract:Intheprocessofsoftwaredevelopment,objectorientedmethodisthemainstreamsoftwaredevelopmentmethod,UMLisastandardmodelinglanguageforobject-orientedanalysisanddesign.Thismethodwillbethetraditionalsoftwaredevelopmentmethodofdata-centricchangetofocusondatainformationandfunctionatthesametime,whichcanbedevelopedtoadapttotheinformationsystemandfunctionchange.Keywords:UML;Object-OrientedProgramming;SoftwareEngineering0引言面向对象方法是一种新的思维方式,他不是把程序看作是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合。因此,UML在面向对象程序设计中的应用变得更加广泛。1UML概述1.1UML简介统一建模语言(UnifiedModelingLanguage,UML)是对象管理组织制定的一个通用的、可视化的建模标准,可以用来可视化、描述、构造和文档化软件密集型系统的各种工件。这种建模语音已经得到了工业界的广泛支持和应用,目前已成为ISO国际标准。UML的最大用途是利用图形来描述真实世界各个对象。UML定义了一系列图形工具,以对现实世界进行面向对象建模。1.2UML的图形工具UML提供了7个图形工具:用例图、类图、序列图、状态图、活动图、构件图、部署图。(1)用例图用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的角色(actors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。(2)类图类图表示不同的实体(人、事物和数据)如何彼此相关,它显示了系统的静态结构。(3)序列图序列图显示具体用例(或者是用例的一部分)的详细流程。它几乎是自描述的,并且显示2了流程中中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。(4)状态图状态图表示某个类所处的不同状态和该类的状态转换信息。有人可能会争论说每个类都有状态,但不是每个类都应该有一个状态图。只对感兴趣的状态的类(也就是说,在系统活动期间具有三个或更多潜在状态的类)才进行状态图描述。(5)活动图活动图表示在处理某个活动时,两个或者更多类对象之间的过程控制流。活动图可用于在业务单元的级别上对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。(6)构件图构件图提供系统的物理视图。它的用途是显示系统中的软件对其他软件组件(例如,库函数)的依赖关系。(7)部署图部署图表示该软件系统如何部署到硬件环境中。它的用途是显示该系统不同的组件将在何处物理地运行,以及它们将如何彼此通信。因为部署图是对物理运行情况进行建模,系统的生产人员就可以很好地利用这种图。1.3UML的优势(1)UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。(2)UML建模能力比其它面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。(3)使用UML使硬件组件和软件组件之间将会有更大的透明度。便携性和综合效率将会增加。2面向对象的实现2.1程序设计语言采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的生产率。因此,应该优先选用能够最完善、最准确地表达问题域语义的面向对象语言。在选择编程语言时,应该考虑的其他因素还有:对用户学习面向对象分析、设计和编码技术所能提供的培训操作;在使用这个面向对象语言期间能提供的技术支持;能提供给开发人员使用的开发工具、开发平台,对机器性能和内存的需求,集成已有软件的容易程度。2.2程序设计风格(1)提高重用性。(2)提高可扩充性。(3)提高健壮性。装对象原则使得它对变化比较有弹性。因此从整体看,面向对象分析以对象作为系统的基本构成单位,对象的稳定性和相对独立性使系统具有一种宏观的稳定效果。(4)软件复用。软件复用已从20世纪80年代中期主要着眼于程序的复用发展到注重分析结果和设计结果3的复用,这样产生的效果更加显著。面向对象分析中,类由于其完整性和独立性很适于作为可复用构件。当分析员完成一个系统的面向对象分析工作后,其面向对象分析结果较容易通过复用而扩展为一个系统族。因此能很好的支持软件分析复用。2.3面向对象语言的技术特点(1)支持类与对象概念的机制。(2)实现整体-部分结构的机制。(3)实现一般-特殊结构的机制。(4)实现属性和服务的机制。(5)可以按照编译时进行类型检查的严格程度来分类。(6)提供了一个实用的类库。(7)效率高。(8)持久保存对象。(9)参数化类。(10)开发环境良好。3应用分析3.1面向对象实例的简述ATM自动取款机系统想用户提供了一个方便、简单、及时、随时随地取款的互联的现代计算机化的网络系统。它可以大大减少工作人员,节约人力资源的开销,同时由于手续程序减少也可以减轻业务员的工作负担,有效的提高了整体的工作效率和精确度,减少了用户办理业务的等待时间。在ATM自动取款系统中,要为每个用户建立一个账户,账户中存储用户的个人信息、存款信息、取款信息和余额信息。根据账号,用户可以通过ATM自动取款系统进行存款、取款、查询余额、转账等操作。3.2UML用例建模(1)角色确定:客户、银行管理人员、ATM机。(2)创建用例:开户、修改密码、挂失账户、存取现金、余额查询、转账、销户3.2.1业务建模(1)业务用例如图1所示:图1ATM机模拟系统业务用例模型(2)办理银行业务流程如图2所示:4图2办理银行业务流程图3.2.2系统用例建模系统用例模型如图3所示:图3系统用例模型3.2.3活动图5图4开户用例在ATM机系统中,用户可以存取现金、转账、登录、修改个人密码、查询余额等,而银行管理人员可以挂失账户、开户、销户、修改个人密码、登录、重置客户密码。在开户用例的活动图中,用户需要输入客户信息,然后系统验证该客户信息是否存在,若客户信息存在,则直接结束,否则系统需要客户录入自己的详细信息,系统保存客户的详细信息,然后客户输入账户的信息,系统保存账户信息,最后结束。4.总结在需求分析阶段,面向对象的方法从问题的用例开始,从系统的需求描述中提取出不同的用例,UML通过用例图,对系统感兴趣的外部角色和他们对系统的功能要求进行描述。然后就是识别类、对象、不断细化的过程;对象和它们之间的关系成为分析、设计和编码等各个阶段的共同表达媒介,每一个阶段都可以相互反馈,整个过程一种迭代渐增的开发过程,UML提供了强大的静态和动态建模机制,通过类图、交互图和行为图分别进行描述。在发布阶段,UML又提供了实现图来描述。参考文献:6[1]谢星星、刘小松、王坚宁.UM统一建模教程与实验指导[M].北京:清华大学出版社.2012[2]GradyBooch.面向对象分析与设计[M].北京:机械工业出版社.2003[3]王少峰.面向对象技术教程[M].北京:清华大学出版社.2002[4]刘超.可视化面向对象建模技术[M].北京:北京航空航天大学出版社.2009[5]邱郁惠.UML和OOAD快速入门[M].北京:机械工业出版社.2007