1《面向对象系统的分析与设计》学习报告题目:院系:计算机学院专业:软件工程年级:2012级姓名:刘勇学号:2012127072指导教师:刘晓鸿提交日期:2013年7月21.面向对象技术面向对象的开发方法OOSD是一种新的软件工程方法,基本思想是尽可能的按照人类认识世界的方法和思维方式来分析和解决问题,这种方法能够提供更加清晰的需求分析和设计,是指导和开发活动的系统方法。但是至今在面向对象领域,大多数工作都集中在编程语言上。面向对象的开发方法,贯穿了整个软件的生命期,这里主要讨论一下面向对象的基本概念、方法和设计等内容。1.1面向对象的基本概念这里主要讨论几个重要的面向对象的基本概念,了解基本概念对面向对象的思想,学习和掌握你想的开发方法十分重要。1.1.1对象和分类面向对象的方法是以对象作为最基本的元素,它是分析问题、解决问题的核心,对象与类是讨论面向对象的最基本概念。1)对象对象是客观事物活动概念的抽象表述,对象不仅能表示具体的实体,也能表示抽象的规则、计划或事件。通常有以下的对象类型:(1)有型的实体:在现实世界中,每个实体都是对象,入飞机、计算机、机器、房子等都属于有型的实体,这是容易识别的对象。(2)作用:指人或组织,入学生、老师、公司、政府部门等所起的作用。(3)事件:指在摸个特定时间所发生的事情。入学习、演出等。(4)性能说明:如对产品的行为能够说明,比如计算机硬盘、3内存、性能说明等。即对象不仅能表示结构化的数据,而且也能表示抽象的事件、规则以及复杂的工程实例,这是结构化方法所不能做到的,因此,对象具有很强的表达能力和描述功能。2)类类又称对象类是指一组具有相同属性和运算的对象的抽象,u、一组具有相同数据结构和相同操作的对象的几盒,类是对象的模板。在一个类中,每个对象都是累的实例,它们都可以使用类中的提供的函数。例如轿车是一个类,东风牌轿车、奇瑞轿车都是它的一个对象。类具有属性,用数据结构来描述累的属性,类具有操作,它是对象行为的抽象,用操作名和实现操作方法,即操作时间实现的过程和描述。3)对象和类的描述类和对象的描述如下图1.1和1.2所示:在图1.1中人事类名,包括两个属性:姓名和年龄,具有两个运算:改变工作和改变地址。图1.2则描述了人这个类的两个对象实例。类名属性操作图1.1类的描述人姓名:字符型年龄:整型改变工作改变地址几何对象颜色位置移动(矢量)选择:布尔型4(人)李军24司机无图1.2对象的描述由于对象是类的实例,在进行系统分析和设计时,通常把注意力集中在类上,而不是具体对象上。4)继承继承是使用现存的定义作为基础,建立新定义的技术,是父类和子类之间共享数据机构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以再一个已经纯在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新内容。图1.3是集成的一种图式方法。继承现存类定义新类定义子类父类(一般类)图1.3继承性5)多态性(人)刘洋28售票员人民大街3号父类子类A子类B5多态性是指相同的操作或函数、过程作用于不同的对象上并获得不同的结果。相同的操作的消息发送给不同的对象时,每个对象将根据自己所属类中所定义的操作去执行,而产生不同的结果。一个行为的多态性从外界看来具有相同的行为属性,因此外界看到的是一种行为,而具体执行那种形态则有对象自己根据所接到的消息的相关参数决定。6)消息消息是指对象之间在交互中所传送的通信消息。一个消息包括以下信息:消息名、接收消息对象的标识、服务标识、消息和方法。7)方法类中操作的实现过程成为方法,一个方法包括方法名、参数及法体。2.1面向对象的设计面向对象的方法不强调分析与设计之间严格的阶段划分。按照描述OO方法的“喷泉模型”,软件生命周期的各阶段交叠回溯,整个生命周期的概念一致,表示方法也一致,因此从分析到设计无需表示方式的转换。当然,分析和设计也有不同的分工和侧重。与OOA的模型比较,OOD模型的抽象层次较低,因为它包含了与具体实现有关的细节,但是建模的原则和方法相同。2.1.1面向对象设计的准则由于OOA与OOD在概念,属于、描述方式的一致性,建立一个针对具体是辖区内的OOD模型,可以看做是按照设计的准则,对分析6模型进行细化。虽然这些准则并非面向对象的系统独用,但对面向设计起着重要的支撑作用。面向对象的准则有:1)抽象抽象是指强调实体的本质、内在的属性,二忽略了一些无关紧要的属性。在系统开发中,分析阶段使用抽象仅仅涉及应用域的概念,在理解问题域以前不考虑设计与实现。而在面向对象的设计阶段,抽象概念不仅用于子系统,在对象设计中,由于对象具有极强的抽象表达能力,而类实现了对象的数据和行为的抽象。2)信息隐蔽信息隐蔽在面向对象的方法中也称“封装性”,封装性是保证软件不见具有优良的模块性的基础。3)弱耦合按照抽象与封装性,弱耦合是指子系统之间的联系应该尽量的少。子系统应具有良好的接口,子系统接口与系统的其他部分联系。4)强内聚是指子系统内不时有一些关系的类构成,除了少数的通信类外,子系统的类应该只与该子系统中的其他类协作,构成强内聚性的子系统。5)可重用弱耦合、强内聚的子系统和类,才能有效的提高所设计的部件的可重用性。72.2.2面向对象涉及的基本任务面向对象的设计OOD是面向对象方法阿紫哦软件设计阶段应用与扩展的结果,试讲OOA所创建的分析模型转换为设计模型,解决如何做的问题。面向对象的设计主要目标是提高生产效率,提高质量和提高可维护性。OOA主要考虑系统做什么,而不是关心系统如何实现的问题。在OOD中为了实现系统,需要以OOA模型为基础,重新定义或补充一些新的类,活在原有的类中补充或修改一些属性及操作。因此,OOD的目标是产生一个满足用户需求,可实现的OOD模型。1)系统设计系统设计的任务包括:将分析模型中紧密相关的类划分为若干子系统,子系统应该具有良好的接口,子系统中的类相互协作。标识问题本身的并发性,将各子系统分配给处理器,建立子系统之间的通信。进行系统设计关键是子系统的划分,子系统由它们的责任及所提供的服务表示,在OOD中这种服务是完成特定共轭能的一组操作。讲划分的子系统组织成完整的系统时蛮有水平的层次组织和垂直组织两种方式,层次结构分为封闭式和开放式。所谓封闭式是指每个子系统仅使用其直接下层的服务,这就降低了各层次之间的互相依赖,提高了易理解性和可修改性。开放式则润徐隔层子系统使用其下属任意子系统提供服务。8应用软件包人机对话控制窗口图形仿真软件包屏幕图形像素图形操作系统计算机硬件图1.4典型应用系统的组织结构2)对象设计在面向对象的系统中,模块、数据结构及接口等都是集中体现在对象和对象层次结构中,系统开发的全过程都与层次结构直接相关,是面向对象系统的基础和核心。面向对象的设计通过对象层次结构的组织,确定解空间中应存在的对象和对象层次的结构,并确定外部接口和主要的数据结构。3)设计优化对设计进行优化,主要涉及提高效率的技术和建立良好的继承结构的方法。提高效率的技术包括增加冗余来提高访问效率,调整查拳层次,优化算法等技术。建立良好的继承关系式优化设计的重要内容,通过对继承关系的调整实现。3.1典型的面向对象的方法随着面向对象开发方法的发展,逐渐形成了几个主要的流派:9Coad/Yourdon方法、BOOCH方法、OMT方法和OOSE法。它们各有特色,主要描述方式、图例,考虑的重点有所不同。但在描述方式上有意图形方式为主的特性。下面主要讲一下Coad/Yourdon方法和OOSE方法。3.1.1Coad/Yourdon方法Coad/Yourdon方法由于1990年推出,该方法主要是面向对象的分析和面向对象的设计构成,特别强调OOA和OOD采用完全要养的概念和表示法,是分析和设计之间不需要表示发的转换。该方法的特点是表示简练、易学,对于对象、结构、服务的认定较系统、完整、可操作性。1)OOA在Coad/Yourdon方法中,OOA的任务是主要建立问题域的分析模型。分析过程和构造OOA概念模型的顺训有5个层次组成,这五个层次是:类与对象、属性层、服务层、结构层和主题层。(1)类和对象的认定:面向对象的分析的核心是确定系统的累及对象,它们是构成软件系统的基本元素。(2)结构的认定:指的是描述累及对象之间的结构关系,用来反映问题空间中复杂的实物和复杂关系。(3)认定主题:主题是一种帮助理解复杂模型的抽象机制,它是将关系较密切的类及对象住址在一起,主题起到一种控制作用。(4)定义属性:属性是类的实质,定义类和对象的属性和实例连接。10(5)定义服务:定义类和对象的服务和消息连接。下图给出了Coda/Yourdon方法一些应用实例:图1.5服务层的例子图1.6泛华与特化结构的例子2)OOD面向对象的设计结构通过对象的认定和层次结构的组织,确定解空间中应存在的对象和对象层次结构,病确定外部接口和主要的数据结构。面向对象设计的主要目标是提高生产效率,提高质量及可维护性。报刊订阅属性服务确定订阅订阅请求录入定款额生成报告订户属性服务录入订户录入地址报告地址印刷厂采访组报社编辑室11主题层类与对象层结构层属性层服务层图1.7Coda方法的OOD模型OOD设计模型是在面向对象的分析模型的5各层次上由四个部件构成,如图1.7所示。3.1.2OOSE方法面向对象软件工程是将面向对象的思想应用于软件的工程中。OOSE方法采用五类模型建立目标系统:需求模型RM、分析模型AM、设计模型DM、实现模型IM和测试模型TM。OOSE的开发活动主要分为三类,分析、构造和测试。其中分析过程分为需求分析和健壮分析两个子过程,分析活动分别产生需求模型和分析模型。构造活动包括设计和实现两个子过程,分别忏悔是呢过设计模型和实现模型。测试过程包括单元测试、集成测试和系统测试三个过程,共同产生测试模型。下图是00SE的开发活动:PDC问题域部件HIC人机交互部件TMC任务管理部件DMC数据管理部件12需求模型RM设计模型DM测试模型TM分析模型AM实现模型IM以上从基本概念、方法和设计,讨论了面向对象技术这门课程,还有很多不足的地方,还请老师多多指教。测试构造分析