欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    UML读书报告.docx

    • 资源ID:507185       资源大小:26.40KB        全文页数:11页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    UML读书报告.docx

    1、专业收集整理精品文档精品文档,值得下载,可以编辑!-!-!=UML 读书报告专业:计算机技术姓名:李涛学号:201031288=专业收集精品文档,您的最好选择=面向对象分析设计与 UML 建模语言一、 阅读书目情况介绍1、面向对象分析与设计l 书名:面向对象基础实践教程l 作者:吴洁明l 主要内容:全书沿着面向对象的需求分析,介绍基于 UML 的面向对象分析方法,结合图书馆信息管理系统的实例,分步骤讲述了面向对象分析方法的过程。面向对象设计,介绍基于 UML 的面向对象设计方法,结合实例详细讲述了面向对象设计的几个重要原则,简单介绍了面向对象设计过程中常用的 XML 技术,结合前一部分图书信息

    2、管理系统的分析结果讲述面向对象的设计过程。面向对象的实现,介绍面向对象程序设计的特点和风格,指导读者编写可复用性、可扩展性更高的程序。面向对象测试,主要讲述了面向对象的软件测试特点和测试策略,讲述面向对象软件测试的具体过程。l 特点:从面向对象的概念入手,结合 UML 讲述面向对象分析和设计的方法、工具和步骤,最后以图书信息管理系统为例进行实际演练。2、UML 统一建模语言l 书名:UML 基础、案例与应用(第三版)l 作者:Joseph Schmuller 著(李虎,赵龙刚译)l 主要内容:全书分为基础知识,学习案例,高级应用和附录四大部分。基础知识部分包括:UML 简介,对象,关系跟UML

    3、 中的各种图;学习案例部分包括:领域分析,收集系统需求,开发用例,交互,设计外观、感觉和部署,和理解设计模式;高级应用部分包括:嵌入式系统建模,描绘UML 的未来;附录部分包括:小测验答案,UML 建模工具,UML 图总结。二、 面向对象建模与设计1. 简介面向对象语言正取得令人振奋的发展的同时,编程并不是软件开发问题的主要根源。需求分析与设计问题更为普遍并且更值得解决。因此面向对象开发技术的焦点不应该只对准编程阶段,而应更全面地对准软件工程的其他阶段。面向对象方法真正意义深远的目标是它适合于解决分析与设计期间的复杂性并实现分析与设计的复用。面向对象的开发不仅仅是编程,必须在整个软件生命周期采

    4、用一种全新的方法,这一观点已被人们所接受。面向对象技术出现在 20 世纪 70 年代末期。它比较自然的模拟人类的认识客观事物的方式,面向对象是先确定动作的主体-对象,找出要解决问题所需要的对象和他们之间的关系。这一点与面向过程方法不同,在面向过程方法中,关心的是过程。而过程实施的对象是作为过程的参数传递的面向对象的这种主体 -动作模式是人们对客观世界的抽象。2. 面向对象方法特点面向对象方法学的出发点是尽可能的模拟人类的习惯思维方式,使得开发软件的方式接近人类认识问题和解决问题的过程。面向对象方法具有以下特点:2.1 面向对象方法认为客观世界是由各种对象组成的在面向对象方法中,一切都是对象。复

    5、杂的对象可以有简单的对象组成。2.2 每个对象都有自己的属性例如 一个学生有自己的学号,姓名,班级,专业等属性。2.3 所有的对象都被划归到相应的类类是从对象中抽象出共有的属性和方法,对象是类的一个实例。每当一个类创建一个新的实例时,就会按照类中定义的属性为这个对象生成一组专用的数据,以描述该对象所特有的属性,对象的属性值是可以经常改变的,对象的某些属性一旦改变它们的值,对象就进入了一个新的状态。对象的各种状态从对象的产生到析构会不断转换。而类中的属性是静态的,类中的方法是被这个类的所有实例所共享的,当我们创建一个对象时,并不会为每个对象复制一份类中方法的副本。在对象中只是保存了指向类中方法的

    6、引用。2.4 继承继承是表示相似性质的机制,指多个类基于一种分层关系,共享类间属性和操作。父类拥有各种子类所具有的一些共同的属性和方法,是不具体的。每个子类继承其父类全部的特征,并增加它自己所特有的特征。子类不需要重复其父类的特征,只需添加子类相对于父类多出来的属性跟方法。继承是一种泛化关系。这种功能可以大大减少设计和程序内部的重复。子类并且允许对某些继承的方法和属性重新定义,也就是说下层的特性将屏蔽上层的同名特性。2.5 多态多态是指一个对象具有多种性态,在不同的性态下的操作可能是不同的,但操作名却是相同的,对于不同的类来说,相同的操作会有不同的动作。由特定的类实现的操作被称为方法。基于操作

    7、名和被操作对象的类,语言会自动选择正确的方法来实现操作。操作的用户不需要知道有多少种方法实现了给定的多态操作,无须改动代码,开发者就可以增加新类,只要他们为每一种可行操作提供方法即可。2.6 消息消息通信是面向对象方法中相互联系的方法,对象之间只能通过消息交互, 对象内部的私有属性不能被对象的外部访问,外部对象只能通过对象向外提供的接口去访问。一个对象要访问另一个对象的方法,必须向被访问的对象发送一个该方法的消息。被访问对象收到消息后,就可以调用自己的方法,完成消息发送者需要得功能。2.7 封装或信息隐藏在面向对象方法中,封装是指将功能和数据同时装入一个对象中,在外界看来,对象是一个黑盒子。外

    8、部看不到对象内部的结构,只能通过对象对外提供的借口访问该对象提供的功能。2.8 关联关联有助于把多个对象相互联系起来,例如:一个教师是一个对象,一门课程也是一个对象,教师上课便将教师跟课程这两个对象关联了起来。通过对象之间的关联的建立,各种不同的对象便相互联系,结合在一起实现系统所要求的功能。3. 面向对象设计3.1 简介面向对象设计(OOD)强调定义软件对象,并且使用这些软件对象相互协作来完成用户的需求。面向对象的设计跟分析之间的界限是模糊的,从面向对象的分析到面向对象的设计师一个逐渐扩充模型的过程。面向对象分析的结果可以通过逐步的细化直接生成面向对象设计的结果,在设计过程中会加深对需求的理

    9、 解,从而进一步完善需求分析的结果。因此分析和设计师一个反复迭代的过程。3.2 面向对象的设计过程面向对象设计首先要进行高层设计:确定系统的总体风格和结构,构造系统的物理模型,将系统划分为不同的子系统。接着要进行中层设计:对每个用况进行设计,规划实现用例功能的关键类,确定类之间的关系。然后进行底层设计: 对每个类进行详细设计,设计类的属性和操作,优化类之间的关系,最后补充实现非功能性需求所需要的类。3.3 面向对象的设计原则在面向对象设计中,如何通过很小的设计改变就可以应对设计需求的变化, 这是设计者极为关注的内容。人们为此提出了很多有关面向对象设计的原则,用于指导面向对象的设计和开发。开闭原

    10、则 OCP:一个模块在扩展性方面应该是开放的,在更改性方面应该是封闭的,在进行面向对象设计时要尽量考虑借口封装机制,抽象机制和多态技术。这也是符合面向对象的三条基本规则:在接口上设计;发现变化,并且封装变化; 先考虑组合,再考虑继承。替换原则 LSP:子类应该可以替换父类并能够出现在父类能够出现的任何地方,一个显然的例子就是:圆是椭圆的一个子类,任何出现椭圆的地方,圆都可以出现,但反过来是不行的。依赖原则 DIP:在进行软件结构设计时,类之间的依赖关系应该尽量依赖接口和抽象类,而不是依赖具体类。具体类只负责相关业务的实现,修改具体类是不会影响到上层的抽象类。单一职责原则 SRP:这个原则的核心

    11、含义是一个类应该有而且只有一个职责。职责是指引起类变化的原因,如果一个类有一个以上的职责,那么就会有多个不同的原因引起该类的变化,其实就是耦合了多个互不相关的职责,就会降低这个类的内聚性。接口分离原则 ISP:采用多个与特定客户类有关的接口比采用一个通用的覆盖多个业务方法的接口更好。4. 面向对象的实现4.1 简介面向对象实现的主要任务就是把设计阶段产生的结果用代码,脚本和可执行文件等构件来实现,并且对构件进行单元测试,然后通过编译和链接把它们集成为一个或多个可执行的程序。虽说面向对象软件质量只要是由设计阶段决定的, 但是所选择的程序设计语言特点和程序员的编程风格对软件的可靠性、可复用 性,可

    12、维护性也会产生很大的影响。4.2 选择编程语言面向对象设计的结果既可以用面向对象的语言来实现,也可以由非面向对象的语言来实现。如果语言本身支持面向对象的概念,那么当然在实现面向对象设计的时候更加容易。选择什么样的面向对象设计语言主要是考虑该语言的表达能力和语言的可理解性、可维护性。面向对象分析和设计使用的表示方法在表达内容上具有层次性,表示形式上具有一致性。这种表示形式从问题域到系统分析、系统设计和实现始终不变。一致的表示方法既有利于软件开发过程中使用统一的概念,也有利于维护人员理解软件的各种配置。因此,在选择面向对象设计语言时要考虑语言对分析和设计模型的一致性表示。面向对象方法追求的目标之一

    13、就是软件的可复用性。通过复用已有的软件元素不但可以提高软件开发效率,降低成本,同时可以大幅度提高软件产品的质量。软件的可复用性体现在分析,设计和实现的各个阶段中。选择的语言应该支持继承,封装,多态特性,使得软件可以在代码层次上易于复用。C+和 JAVA 是面向对象中的两种主流语言,C+和 JAVA 有许多共同之处, JVAV 比 C+年轻,大量借鉴了 C+语法,二者都是强类型语言,变量和值要么是内置类型,要么是用户自定义类型。通过检测不匹配的方法参数和赋值,强类型可以提高可靠性,增强代码优化。C+允许重载,方法和函数可以共享相同的名称,但参数数量和类型有差别。访问限定符将对类成员的访问限制于私

    14、有的、保护的、公用的,从而促进封装性。C+使用引用,绑定在创建好的现有对象上。C+类有构造函数和析构函数,在创建和销毁对象时会自动调用这些方法。总之,C+的主要特征是运行时效率高。相比较而言,JAVA 强调运行时的可移植性,以及以效率和灵活性为代价的代码安全性。JAVA 提供了抽象接口,可以模拟多重继承,区分对象和原始类型之间的语义,提供丰富的通用类库以及分布式平台上的系统级整合功能。5. 面向对象程序风格创建出可复用、可扩展和健壮的程序,面向对象方法的优势才可以体现出来。可复用软件设计通过把工作量分摊到几项应用中,减少了设计、编码和测试的成本。代码量减少将会简化理解的难度。增加代码设计无错的

    15、可能性。可复用有两种方式:在应用程序内部共享新代码,在新应用程序中复用旧代码。使用继承技术,每个子类实例同时也是父类的实例,父类全部操作和属性都可以统一于子类。继承方法实现时可以通过提取代码共性、提取差异性、委托和封装外部代码。可扩展性需要遵循封装类、确定方法的可见性、隐藏数据结构、避免遍历多项链接或方法以及避免在对象上使用分支语句的准则。健壮的方法即使在接受了不合理的参数时也不会导致失败,软件应该可以保护自己,抵御用户的错误输入,避免崩溃。6. 面向对象测试传统的测试计算机软件的策略是从“小型测试”开始,逐步走向“大型测试”。即我们从单元测试开始,然后逐步进入集成测试,最后是有效性和系统测试

    16、。在传统应用中,单元测试集中在最小的可编译程序单位子程序(如,模块、子例程、进程),一旦这些单元均被独立测试后,它被集成在程序结构中,这时要进行一系列的回归测试以发现由于模块的接口所带来的错误和新单元加入所导致的副作用,最后,系统被作为一个整体测试以保证发现在需求中的错误。面向对象程序的结构不再是传统的功能模块结构,作为一个整体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已成为不可能。而 且,面向对象软件抛弃了传统的开发模式,对每个开发阶段都有不同以往的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。因此, 传统的测试模型对面向对象软件已经不再适用。1、

    17、 面向对象测试模型2、 面向对象分析的测试3、 面向对象设计的测试4、 面向对象编程的测试5、 面向对象的单元测试6、 面向对象的集成测试7、 面向对象的系统测试面向对象测试的整体目标 以最小的工作量发现最多的错误 和传统软件测试的目标是一致的,但是 OO 测试的策略和战术有很大不同。测试的视角扩大到包括复审分析和设计模型,此外,测试的焦点从过程构件(模块)移向了类。三、 UML 统一建模语言1. UML 简介什么是 UML?用一句话来回答这三个问题即:UML 是一种获取了国际双标准的图形语言,专门用来表达 OOAD 的生成。这句话概括了 UML 的四项特色:1) UML 是一种语言,而不是一

    18、种方法。2) UML 是一种图形语言,而不是编程语言,更不是自然语言。3) UML 通过了两项国际标准。4) UML 具有浓厚的面向对象特色。OOAD 包括建模概念,表示法,开发过程,经验规则。UML 本身就是 OO 概念表示法,也就是说结合了建模概念和表示法。但它并不包含开发过程。在搭配UML 的开发过程中,除了需要说明必要的开发步骤以外,还必须指出每个步骤将生成什样的 UML 图。最蓬勃发展的经验法则就是模式,每个模式针对一个特定的问题。UML 是由 Grady Booch、James Rumbaugh、Ivar Jacobson(UML 三友)提出的。现在 UMl 已经成为 OOAD 领

    19、域里唯一的标准语言。2. UML 的主要内容2.1 事物事物是是实体抽象化的最终结果,是模型中的基本成员,UML 中包含结构事物、行为事物、分组事物和注释事物。(1) 结构事物(Structural things)结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,共有以下七种:类(Class):类是指具有相同属性、方法、关系和语义的对象的集合。接口(Interface):接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作。协作(Collaboration):协作描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模。用例(Us

    20、e case):用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标。活动类(Active Class):活动类的对象有一个或多个进程或线程。活动类和类很相象,只是它的对象代表的元素的行为和其他的元素是同时存在的。组件(Component):组件是物理的、可替换的部分,包含接口的集合,例如COM+ 、JAVA BEANS 等。结点(Node):结点是系统在运行时存在的物理元素,代表一个可计算的资源,通常占用一些内存和具有处理能力。(2) 行为事物(Behavioral things)行为事物指的是 UML 模型中的动态部分,代表语句里的动词,表示模型里随着时

    21、空不断变化的部分,包含两类:交互(ineraction):交互是由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作。状态机(state machine):状态机由一系列对象的状态组成。(3) 分组事物(Grouping things)可以把分组事物看成是一个盒子,模型可以在其中被分解。目前只有一种分组事物,即包(package)。结构事物、动作事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。(4) 注释事物(Annotational things) 注释事物是 UML 模型的解释部分。2.2 关系关系是将事物联系在一起

    22、的方式,UML 中定义了四种关系:(1) 依赖(Dependencies):两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。(2) 关联(Association):一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系)。(3) 泛化(Generalization):一种一般化-特殊化的关系。(4) 实现(Realization) :类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。2.3 图图是事物集合的分类,UML 中包含多种图:(1) 类图(Class Diagram):类图描述系统所包含的类、类的内部结构及类之间的关系。换句话说,它

    23、显示了系统的静态结构。类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类-摇滚乐队、CD、广播剧;或者贷款、住房抵押、汽车信贷以及利率。类图还可用于表示实现类,实现类就是程序员处理的实体。实现类图或许会与逻辑类图显示一些相同的类。(2) 对象图(Object Diagram):对象图是类图的一个具体实例。它是一种结构图,用来显示系统在一个特定时刻的对象,以及对象之间的链接。(3) 包图(Package Diagram):包图表明包及其之间的依赖类图。主要用来为相关的元素分组,对于拥有大量繁杂元素的项目而言,适合用包图来维护管理元素。(4) 组件图(Compoment Diagram,

    24、也称构件图):组件图描述代码部件的物理结构以及各部件之间的依赖关系。组件图提供系统的物理视图。它的用途是显示系统中的软件对其他软件组件(例如,库函数)的依赖关系。组件图可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组件包层次上显示。(5) 部署图(Depl oyment Diagram):定义系统中软硬件的物理体系结构。部署图表示该软件系统如何部署到硬件环境中。它的用途是显示该系统不同的组件将在何处物理地运行,以及它们将如何彼此通信。因为部署图是对物理运行情况进行建模,系统的生产人员就可以很好地利用这种图。(6) 用例图(Usecase Diagram):用例图描述了系统提供的

    25、一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的角色(actors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。用例图一般表示出用例的组织关系-要么是整个系统的全部用例,要么是完成具有功能(例如,所有安全管理相关的用例)的一组用例。要在用例图上显示某个用例,可绘制一个椭圆,然后将用例的名称放在椭圆的中心或椭圆下面的中间位置。要在用例图上绘制一个角色(表示一个系统用户), 可绘制一个人形符号。(7) 顺序图(Sequence Diagram):顺序图表示对象之间动态合作的关系。(8) 协作图(Collaboration Diag

    26、ram):合作图描述对象之间的协作关系。(9) 状态图(Statechart Diagram):状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件。有人可能会争论说每个类都有状态,但不是每个类都应该有一个状态图。只对感兴趣的状态的类(也就是说,在系统活动期间具有三个或更多潜在状态的类)才进行状态图描述。(10) 活动图(Activity Diagram):活动图表示在处理某个活动时,两个或者更多类对象之间的过程控制流。活动图可用于在业务单元的级别上对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。根据我的经验,活动图最适合用于对较高级别的过程建模,比如公司当前在如何运

    27、作业务,或者业务如何运作等。这是因为与序列图相比,活动图在表示上不够技术性的,但有业务头脑的人们往往能够更快速地理解它们。3. UML 用于软件开发UML 是一个建模语言,常用于建立软件系统模型,适用于系统开发的不同阶段。(1) 用户需求该阶段可用用例图来捕获用户需求,用例图从用户的角度来描述系统的功能,表示了操作者和系统的一个交互过程。通过用例建模,描述对系统感兴趣的外部角色和他们对系统的功能要求。(2) 系统分析分析阶段主要关心问题领域中的主要概念,如对象,类以及他们之间的关系等,需要建立系统的静态模型,可用类图来描述。为了实现用例,类之间需要协作,可用动态模型的状态图,顺序图和合作图来描

    28、述。在分析阶段,只考虑问题域中的对象建模,通过静态模型和动态模型来描述系统结构和系统行为。(3) 系统设计在分析阶段建立的分析模型基础上,考虑定义软件系统中的技术细节用到得类。如引入处理用户交互的接口类、处理数据的类、处理通信和并行的类。因此,设计阶段为实现阶段提供了更加详细的设计说明。(4) 系统实现实现阶段的任务是使用面向对象程序设计语言,将来自设计阶段的类转换成程序源代码,用构件图来描述代码构件的物理结构以及构件之间的关系。用配置图来描述和定义系统中软硬件的物理体系结构。(5) 测试UML 建立的模型也是测试阶段的依据,可使用类图进行单元测试,可使用构件图,合作图进行集成测试,可使用用例

    29、图进行确认测试,以验证测试结果是否满足用户的需求。UML 用于软件开发时一般可以分为以下5 步:1. 定义:通过用例图标识系统的需求,添加其他可清楚显示用例的图。2. 细化:通过在活动图中捕捉场景(context)来详细的描述每个需求中的步骤。3. 分配:使用活动图来将步骤分配给系统的元素。4. 设计:使用组件图来显示元素之间的关系,添加其他可清楚显示组件的图。5. 重复迭代钻取划分和征服:将过程单元缩小为单独的元素(使用类图进行设计);或者将其扩展到超阶级出整个系统的范围(使用部署图进行设计)。添加其他可帮助理解系统的图。根据当前的范围重复一到四步。结束语这学期通过学习面向对象设计方法,使自己对面向对象思想和统一建模语言UML 有了更加清楚的认识,发现以前很多的认识都是模糊的,更谈不上将这些思想应用到程序的编写中。通过这学期的学习,尤其是参加小组分析一个图书馆信息管理的过程,使自己对 UML 和面向对象的认识提高了很多。UML 对软件开发的帮助时显而易见的,系统中很多不清楚的地方,借助UML 中的图便可以很容易的表示清楚。面向对象思想模拟了人类认识世界的方式,是一种对真实世界的抽象思维方式,而UML 则提供了一种简明准确的表示模型的手段。


    注意事项

    本文(UML读书报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开