欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    信息系统分析与设计(第三版)陈圣国第7章.ppt

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

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

    信息系统分析与设计(第三版)陈圣国第7章.ppt

    第7章面向对象开发方法与UML第第7章面向对象开发方法与章面向对象开发方法与UML7.1面向对象开发方法面向对象开发方法 7.2标准建模语言标准建模语言(UML)简介简介 7.3UML静态建模机制简介静态建模机制简介 7.4UML动态建模机制简介动态建模机制简介 7.5RUP简介简介 习题习题 第7章面向对象开发方法与UML7.1面向对象开发方法面向对象开发方法7.1.1面向对象技术的发展过程面向对象技术的发展过程20世纪70年代末至80年代初,计算机应用领域日渐扩大,系统软件和应用软件的需求日益多样化,系统规模日益膨胀,传统的结构化分析方法和面向过程的编程技术已无法给予有效的支持,导致软件的生产方式和效率远远赶不上信息化社会发展的需要。人们开始寻找和研究新的方法和技术,面向对象方法和技术应运而生。第7章面向对象开发方法与UML面向对象(OO,Obeject Oriented)方法和技术起源于面向对象的程序设计语言(OOPL)。20世纪80年代以来,出现了大批OOPL,其实用性、效率不断提高,OO技术开始走向繁荣和实用化。第7章面向对象开发方法与UML面向对象方法适合于解决分析与设计期间的复杂性,实现分析与设计的复用。从20世纪80年代中期开始,面向对象技术的焦点逐渐从程序设计转移到软件工程的其他阶段,面向对象分析与设计(OOAOOD)技术得到了快速的发展,初步形成新的方法论和开发技术。近年来又出现了一些新的高级技术,例如面向对象数据库、对象分布、对象总线、面向对象的系统框架构造以及面向对象的系统集成等。第7章面向对象开发方法与UML7.1.2面向对象方法的基本思想面向对象方法的基本思想传统的结构化开发方法用过程化方式描述应用系统,而面向对象方法认为客观世界是由各种各样的对象组成的,每个对象都有各自的内部状态和运动规律,不同对象之间通过消息传送相互作用和联系就构成了各种不同的系统。第7章面向对象开发方法与UML将对象模型映射到计算机上,面向对象方法将软件系统看成是一系列对象的集合,并强调描述对象性质的数据及行为的紧密联系数据和行为的封装技术。例如,学籍管理系统可以看成是由学生、教师、课程、各种规章制度等多个彼此独立而又相互关联的对象集合而成的。第7章面向对象开发方法与UML面向对象的本质是确定动作的主体在先,而执行动作在后,这种面向对象的模式称为“主体动作”模式。例如学生总是先选定某门课程,然后才去考虑如何学好这门课程。而在窗口系统的界面上,总是先选定一个界面对象(图标或按钮),然后在其上进行相应的操作(例如移动、单击等)。第7章面向对象开发方法与UML反映面向对象本质的“主体动作”模式是与人们对客观世界的认识规律相符合的。因此,采用对象的观点看待所要解决的问题,并将其抽象为系统是极其自然与简单的,符合人类的思维习惯,应用系统也更容易被理解。“主体动作”模式的特点是将对象作为软件系统结构的基本组成单元,以主体数据为中心,对数据和作用在数据上的操作进行封装,以标准接口对外提供服务。第7章面向对象开发方法与UML7.1.3面向对象的基本概念面向对象的基本概念1.对象对象(Object)对象是客观世界中事物在计算机领域中的抽象,是一组数据(描述对象的特性或属性)和施加于该组数据上的一组操作(行为)组成的集合体。例如,Windows系统中窗口上的一个文本框对象包含有外部名(Name)、字体(Font)、数据源()、前景颜色(、高度和宽度(Width)等多种属性,同时还带有单击左键(Click)、双击左键(Double Click)、修改文本(Change)等多个操作。第7章面向对象开发方法与UML对象的属性可以是简单数据类型、结构数据类型,也可以是复杂数据类型(另一个对象)。例如,公司是对象,公司中包含有员工这一属性,而员工本身又是一个对象。从系统的观点出发,可以给对象作如下定义:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,一个对象是由一组属性和对这组属性进行操作的一组服务构成的。属性是用来描述对象静态特征的一个数据项,也叫对象特性;服务是用来描述对象动态特征(行为)的一个操作;属性和操作称为对象的性质。第7章面向对象开发方法与UML当系统运行时,系统中的对象显现出其动态特征,即对象内部状态的转换和对象间的相互作用,例如,A对象向B对象传送一个消息,这一消息附带的一个事件可能导致B对象被激发或B对象由于执行某一传送方所要求的操作,改变了某些内部属性值,从而由一个状态转入另一个状态(对象的一个状态是由某些内部属性值构成的)。第7章面向对象开发方法与UML在面向对象系统中,对象之间的相互作用是通过消息传送来进行的。消息是向对象发出的服务请求,它应该含有下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。消息通常由接收对象(提供服务的对象标识)、调用操作名(服务标识)以及必要的参数等三部分组成。第7章面向对象开发方法与UML消息的接收者是提供服务的对象,在设计该对象时,它对外提供的每个服务应规定消息的格式消息协议。消息的发送者是要求服务的对象或其他系统成分,在每个发送点上,需要按服务方规定的消息协议写出一个完整的消息。一个对象在映射为软件实现时由三个部分组成:(1)私有的数据结构。它用于描述对象的内部状态。(2)处理,称为操作或方法。它是施加于数据结构之上的。第7章面向对象开发方法与UML(3)接口。这是对象可被共享的部分,消息通过接口调用相应的操作。接口规定哪些操作是允许的;它不提供操作是如何实现的信息。客观世界的同一对象在不同的应用系统中,由于考察对象的角度不同,对其抽象的数据结构和操作都可能是不同的。例如,对于一个学生,在学籍管理系统与户籍管理系统两个不同的应用系统中,抽象出的表示内部状态的数据结构和对数据结构进行的操作都是不同的。第7章面向对象开发方法与UML因此,在对实际应用系统中的对象进行分析时应注意该系统的要求,区分哪些是该对象的本质特征。2.类与实例类与实例把具有共性的一些事物归为一类,是人们认识客观世界和分析问题的一般方法。这里的共性是指事物的本质特征,分类实际上是一种抓住事物的本质而忽略一些无关紧要的细节的抽象过程,图7.1就是从各种自行车到自行车类的抽象。第7章面向对象开发方法与UML图7.1各种自行车到自行车类的抽象第7章面向对象开发方法与UML同样,采用面向对象方法进行系统分析与设计时,对于一个具体的系统而言,可能存在很多具有相同特征的对象。例如,对于一个学籍管理系统,存在许多学生对象,它们具有相同的结构特征和行为特征,只是表示内部状态的数据值不同。为了描述这种相同结构特征和行为特征的对象,面向对象方法引入了类的概念。第7章面向对象开发方法与UML类是一组具有相同性质(属性和操作)的对象的抽象,或者说类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。第7章面向对象开发方法与UML类是对一组具有相同特征的对象的抽象描述,所有这些对象都是这个类的实例。对于学籍管理系统,学生是一个类,而一个具体的学生则是学生类的一个实例。一个类的不同实例具有相同的操作或行为的集合和相同的信息结构或属性的定义,但属性值可以不同;不同的实例具有不同的对象标识。对于学生类中的每一个对象,描述它们所使用的数据结构相同,但是其值不同。因此,一个类的定义至少包含以下两个方面的描述:第7章面向对象开发方法与UML(1)该类所有实例的属性定义或结构定义;(2)该类所有实例的操作(或行为)的定义。在一个系统中,每一个对象均属于某个类,类是对象的属性和操作的定义模板,而实例是某个具体的对象。第7章面向对象开发方法与UML7.1.4面向对象系统的特性面向对象系统的特性一个对象具有抽象、继承性、封装性和多态性等特性,要构造一个性能优越的面向对象系统必须充分利用面向对象方法的这些特性。1.抽象抽象所谓抽象,是指在分析问题时,强调实体的本质、内在属性而忽略一些无关紧要的细节。抽象是分析问题的基本方法。第7章面向对象开发方法与UML在系统开发的整个过程中,尤其在分析阶段,抽象具有特别重要的意义,其作用如下:(1)使用抽象仅仅涉及到应用域的概念而不必涉及问题域的求解,因此可以尽可能避免过早地考虑实现的细节。(2)合理地使用抽象,可以在分析、高级设计以及文档化等阶段和过程中使用统一模型(对象模型)。第7章面向对象开发方法与UML(3)抽象可以帮助我们明确对象是什么、对象做什么而不必考虑对象怎么做。对象怎么做属于编程方面的细节,可以延迟到开发的最后阶段物理设计阶段去实现。2.继承性继承性人们在对客观世界的事物进行描述时,经常采取分类的方法。类是有层次的,即某个大类的事物可能分为若干小类,而这些小类可能又分为若干个更小的类。第7章面向对象开发方法与UML面向对象思想采纳了事物分类的层次思想,在描述类的时候,某些类之间具有结构和行为的共性。例如,教师类与学生类在结构方面均具有姓名、年龄、身高、体重等共性,在行为(或操作)方面均具有回答身高、回答体重等操作。将这些共性抽取出来,形成一个单独的类人,描述教师类和学生类中的共性。类人的结构特征和行为特征可以被多个相关的类共享。例如,教师类和学生类继承了类人的结构和行为特征。一个教师类的对象与一个学生类的对象都具有类人所描述的特征,同时又具有各自所属教师类和学生类独有的特征。此时类人称为教师类和学生类的父类,而学生类和教师类为类人的子类。第7章面向对象开发方法与UML上面例子中的类人也可以称为教师类和学生类的一般类,而教师类和学生类为类人的特殊类。面向对象方法中一般类和特殊类的定义是:如果类A具有类B的全部属性和服务,而且具有自己特有的某些属性或服务,则类A叫做类B的特殊类,类B叫做类A的一般类。利用类之间的继承关系,可以简化对类的描述。在类人中描述教师类和学生类的共性,而在学生类和教师类中只需描述各自的个性。第7章面向对象开发方法与UML利用继承机制可以提高软件代码的可重用性。在设计一个新类时,不必从头设计编写全部的代码,可以通过从已有的具有类似特性的类中派生出一个类,继承原有类中的部分特性,再加上所需的新特性。这一点与面向过程的设计语言中的过程或函数不同,要使用具有相似功能的过程或函数必须修改源程序代码以使其适应新系统的功能需求,而类的派生机制无须原有类的源代码即可派生出新的类。第7章面向对象开发方法与UML利用类及其继承性描述系统时,由于类之间的继承关系,可能会形成一种具有层次性的类结构。在使用类的层次结构描述系统时,某些类之间的层次关系可以有多种实现方案。例如,中学生类既可以直接从类人派生出来,也可以从类人的派生类中学生类派生出来。在设计类的层次结构时,应注意建立的类层次结构是否易于理解以及组织类结构的费用等方面的问题。设计出来的类层次结构是否合理,往往取决于系统分析员的经验等因素。第7章面向对象开发方法与UML另外,人们在对客观世界的事物分类时,一个事物可能属于多个类,同时具有多个类的特性。例如一个黑人学生,他既属于学生类,又属于黑人类。这种情形在面向对象方法中称为多继承,即一个类同时从多个类中派生出来,此时类的层次结构是网状的。多继承在有些面向对象的程序设计语言中是不允许的。只允许派生类有一个基类称为单继承,单继承的类层次结构是树状的。第7章面向对象开发方法与UML3.多态性多态性多态性是面向对象系统的又一重要特性。所谓多态,是指一个名词可具有多种语义。在面向对象方法中,多态并不是指一个对象类有多种形态或状态,而是指同一个操作在不同的类中有不同的实现方法和不同的执行结果。例如,图7.2中的图形类和其子类圆类、点类中都定义了显示和隐藏操作,图形类中的显示和隐藏并不确定到底显示或隐藏何种图形,但子类中的显示和隐藏就涉及到具体应该显示或隐藏何种图形,并且所显示的图形显然是不一样的。第7章面向对象开发方法与UML图7.2多态性的例子第7章面向对象开发方法与UML这就是显示和隐藏这两个操作体现出来的多态性。其特点是源于继承而并非简单的继承,必须有不同的表现。多态性不仅仅局限于操作,同一个属性在不同的对象类中也可以具有不同的数据类型,即属性的多态性。综上所述,多态性可定义为:“一个类中定义的属性或操作被继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一属性或操作在父类和子类(或子类的子类,可多次继承)中具有不同的语义。”第7章面向对象开发方法与UML就图7.2中的例子而言,当外部的某个对象调用图形对象的显示操作时,无须考虑该操作具体对应多少种实现方法,即该对象发出的请求服务的消息中只须写上“显示”,究竟对应哪个显示由图形类的操作自动识别,并传给对应的子类,由子类去执行不同的显示操作,这也称为“动态绑定”。第7章面向对象开发方法与UML4.封装性封装性封装是一种信息隐藏技术,对象内部对用户是隐藏的,不可直接访问;用户只能见到对象封装界面上的信息,通过对象的外部接口访问对象。用户向对象发送消息,对象根据收到的消息调用内部方法作出响应。封装的目的在于将对象的使用者和设计者分开,使用者无须知道对象内部实现的细节,只需要知道对象接收的消息。第7章面向对象开发方法与UML封装的定义为:(1)一个清楚的边界。所有对象的内部软件的范围被限定在这个边界内。(2)一个接口。该接口用以描述这个对象和其他对象之间的相互作用。(3)受保护的内部实现。这个实现给出了由软件对象提供的功能的实现细节,实现细节不能在定义这个对象的类的外面访问。第7章面向对象开发方法与UML因为封装技术强调客观实体的内在属性和服务(操作)的不可分割性以及内部信息的隐蔽,自然而然就增加了系统中对象的相对独立性,减少了它们之间的相互依赖,同时也增加了其应用的灵活性。封装可以保证对象的界面清晰、简单,防止由于模块之间的相互依赖所带来的变动的相互影响。第7章面向对象开发方法与UML在非面向对象的系统中,如果某个函数的某些参数改变了(类型、个数等),或者某些非私有数据改变了,即使函数的外部功能没有改变,都要求调用该函数的其他模块必须随之作相应的改变,否则后果不堪设想。因为调用者可能会直接操纵被调用者中改变了的这些数据。相反,面向对象的封装性不允许一个对象直接操纵另一个对象的数据,即调用者无须知道被调用者的内部实现细节,所以只要外部功能没变,就不存在上述变动的相互影响。第7章面向对象开发方法与UML就比如甲、乙两人互传电子邮件,双方关心的是内容和格式是否符合要求,而不是电子邮件的素材、编辑工具以及传送方式。对象的封装特性可以提高模块之间的独立性,使得系统易于调试和维护。封装使得一个对象可以像一个可插接的部件一样用在各种程序中,就像一种集成块可以用在不同的电路中一样。第7章面向对象开发方法与UML7.1.5面向对象的设计方法面向对象的设计方法采用面向对象方法进行系统开发的首要任务是采用面向对象的概念及其抽象机制将开发的系统对象化和模型化,建立应用系统模型,然后使用面向对象的程序设计语言来实现系统中的对象。尽管面向对象的概念早已出现,但直到20世纪80年代初还没有人能给出一种方法,用以实现面向对象的设计。20世纪80年代以后,面向对象设计的设计方法取得了逐步进展。下面我们介绍由Booch提出的面向对象设计的步骤:第7章面向对象开发方法与UML(1)定义问题。(2)为真实世界问题域的软件实现开发一个不严格的概括描述。(3)按以下子步骤把方法严格化:弄清对象及其属性;弄清可能被施于对象的操作;利用表达对象与操作的关系建立每个对象的接口;决定详细设计问题,从而给出对象的实现描述。第7章面向对象开发方法与UML(4)递归地重复步骤(1)、(2)和(3),以得到完整的设计。以上步骤中,前面两步工作实际上是属于软件需求分析的范畴,相当于我们在需求分析阶段得到的规格说明书。面向对象设计方法将数据设计、结构设计和过程设计三类设计元素结合起来。为了弄清对象,产生了数据抽象;借助定义抽象,描述了模块,软件的结构也就建立起来了;靠开发使用对象的机制(如生成消息),接口得到了描述。下面对Booch提出的面向对象设计的各步骤作一简单的介绍。第7章面向对象开发方法与UML1.问题定义问题定义这里的问题定义是需求分析的另一种说法,此步骤中系统分析人员和设计人员应完成两项必不可少的工作:(1)描述问题本身;(2)分析并说明已知的限制。无论现实问题的大小和复杂性如何,其软件实现都应以语法正确的简单语句来描述,通过它应该让承担项目的软件工程师对问题有一个确切的、惟一的理解。第7章面向对象开发方法与UML2.概括描述概括描述面向对象的设计的下一步是根据问题描述中给出的问题的解写出不十分严格的概括描述。这种概括描述具有以下几个特点:(1)它是简明易懂的一段文字描述;(2)它所涉及的对象具有同一级抽象的特点,即其详细程度在概括描述中保持一致;(3)它应主要表达为解决问题必须要做什么,而不是如何得到解的过程;第7章面向对象开发方法与UML(4)无须包括需求分析过程中所涉及的全部信息。概括描述的好坏可由提出一个问题来加以判断:“假如严格遵循概括描述实现解答,问题能得到解决吗?”概括描述应尽可能重复使用相同的术语来描述同一件事物,避免使用同义词。此外,为便于理解,应注意不要使用过分专业化的名词。第7章面向对象开发方法与UML3.形式化处理形式化处理面向对象的设计经过前面的分析和描述后,到此实际上才展开。如前所述,形式化处理分为如下四个子步骤。1)标识对象及其属性弄清对象是面向对象设计的核心问题,标识对象可以从应用系统的概括描述中的名词来导出。在这一步应把注意力集中在如何将概括描述中所含的名词和名词短语分离出来。对象标识出来后,还应注意对象之间的类似之处,以建立对象类。第7章面向对象开发方法与UML2)标识每个对象所要求的操作和提供的操作这一步必须标识出该对象执行的功能,这些功能描述了每个对象的行为。例如,窗口被打开、关闭、缩放和滚动等。同时还应关心由其他对象提供给它的操作,因为通过标识这些操作有可能导出新对象。第7章面向对象开发方法与UML3)建立对象之间的联系和每个对象的接口这一步建立对象和对象类之间的联系,标识出每一个对象都与什么对象和对象类有关。这一步中可能找出一些对象的模式,并决定是否要建立一个新类以表示这些对象的共同行为特性。第7章面向对象开发方法与UML4)建立每个对象的接口识别出系统中的对象和类以后,还应该识别出对象之间的相互作用,即对象的外部接口。在面向对象系统中,对象和对象之间的联系是通过消息的发送和响应来完成的。一旦对象、对象的操作、数据和对象间交互作用被了解,对象的实现就很容易用某种面向对象的语言来完成。面向对象设计方法是以上步骤反复进行,直到建立起完整软件设计的过程。第7章面向对象开发方法与UML上面介绍的Booch的步骤是一种松散的、不十分严格的方法。其他一些主要的面向对象的设计技术还有Rumbaugh提出的一种称为“对象模型技术OMT”的设计方法、Alabiso提出的基于数据流分析的面向对象设计技术等。第7章面向对象开发方法与UML7.2标准建模语言标准建模语言(UML)简介简介7.2.1UML概述概述面向对象的分析与设计方法的发展在20世纪80年代末至90年代中期出现了一个高潮,UML是这个高潮的产物。它统一了Booch、Rumbaugh等的表示方法,并且对其作了进一步的发展,最终统一为大众所接受的标准建模语言。第7章面向对象开发方法与UML1.标准建模语言标准建模语言UML的发展历史的发展历史早期的面向对象建模语言出现于20世纪70年代中期,到90年代初,数量从不到10种增加到了50多种。虽然不同建模语言的创造者都努力推崇自己的产品,并在实践中不断完善,但是由于用户并不了解不同建模语言的优缺点及相互之间的差异,因而很难根据应用特点选择合适的建模语言,于是爆发了一场“方法大战”。90年代中期,一批新方法出现了,其中最引人注目的是Booch 1993、OOSE和OMT-2等。第7章面向对象开发方法与UMLBooch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991 年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch 1993比较适合于系统的设计和构造。第7章面向对象开发方法与UMLRumbaugh等人提出了面向对象的建模技术(OMT)方法,采用了面向对象的概念,并引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模型来共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程。软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2特别适用于分析和描述以数据为中心的信息系统。第7章面向对象开发方法与UMLJacobson于1994年提出了OOSE方法,其最大特点是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,贯穿于整个开发过程,包括对系统的测试和验证。OOSE比较适合支持商业工程和需求分析。另外,还有Coad/Yourdon方法,即著名的OOA/OOD,它是最早的面向对象的分析和设计方法之一。该方法简单、易学,适合于面向对象技术的初学者使用,但由于该方法在处理能力方面的局限,目前已很少使用。第7章面向对象开发方法与UML虽然不同的建模语言大多类同,但仍存在某些细微的差别,妨碍了用户之间的交流。因此,有必要在精心比较不同的建模语言优缺点及总结面向对象技术应用实践的基础上,根据应用需求,求同存异,统一建模语言。1994年10月,Grady Booch和Jim Rumbaugh开始致力于这一工作。1995年秋,OOSE 的创始人Ivar Jacobson加盟到这一工作。第一个公开版本,称为统一方法UM 0.8(Unitied Method)。1996年6月和10月又分别发布了两个新的版本,即UML 0.9和UML 0.91,并将UM重新命名为UML(Unified Modeling Language)。第7章面向对象开发方法与UML1996年成立了UML成员协会,以完善、加强和促进UML的定义工作。当时的成员有DEC、HP、I-Logix、Itellicorp、IBM、ICON Computing、MCI Systemhouse、Micr osoft、Oracle、Rational Software、TI以及Unisys等。这一机构对UML 1.0(1997年1月)及UML 1.1(1997年11月17日)的定义和发布起了重要的促进作用。图7.3描述了UML的发展历程。第7章面向对象开发方法与UML图7.3UML的发展历程第7章面向对象开发方法与UMLUML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术,支持从需求分析开始的软件开发的全过程。UML融合了Booch、OMT和OOSE等方法中的基本概念,但又不仅仅是上述方法的简单汇合,而是在这些方法的基础上集众家之长,几经修改而完成的,它扩展了现有方法的应用范围。第7章面向对象开发方法与UMLUML已获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML作为建模语言,它已成为可视化建模语言事实上的工业标准。1997年11月17日,OMG组织采纳UML 1.1作为基于面向对象技术的标准建模语言。UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。第7章面向对象开发方法与UML2.标准建模语言标准建模语言UML的主要特点的主要特点标准建模语言UML的主要特点可以归结为三点:(1)UML统一了Booch、OMT和OOSE等方法中的基本概念。(2)UML还吸取了面向对象技术领域中其他流派的长处,其中也包括非OO方法的影响。UML符号考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。因此,在UML中汇入了面向对象领域中很多人的思想。第7章面向对象开发方法与UML(3)UML在演变过程中还提出了一些新的概念。在UML标准中新加了构造型(Stereotypes)、职责(Responsibilities)、扩展机制(Extensibility Mechanisms)、线程(Threads)、过程(Processes)、分布式(Distribution)、并发(Concurrency)、模式(Patterns)、协作图(Collaborations)、活动图(Activity Diagram)等新概念,并清晰地区分类型(Type)、类(Class)、实例(Instance)、细化(Refinement)、接口(Interfaces)和组件(Components)等概念。第7章面向对象开发方法与UMLUML以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统。UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。如何恰当地将这种可视化图形建模技术用于解决软件开发所面临的问题,如何研制和开发支持UML的建模过程及其支持环境,仍是目前该领域的热点问题。第7章面向对象开发方法与UML目前,在基于UML的开发方法和环境方面,国际上已经进行了一些研究和实际开发工作。IBM公司目前正致力于推广统一开发过程(RUP,Rational Unified Process),研究初期称为Objectory),支持UML建模。国内对UML支持环境的研制开发工作尚处于起步阶段。第7章面向对象开发方法与UML7.2.2基于基于UML的软件开发方法的软件开发方法1.需求分析阶段需求分析阶段UML语言采用用例来捕获客户的需求。通过用例模型,可以使那些对系统感兴趣的外部参与者与他们要求系统具备的功能(即用例)一起被建模。外部参与者和用例之间是通过关系建模的,并允许相互之间存在通信关联,或者被分解为更具体的层次结构。参与者和用例由UML的用例图描述,在用例图中参与者被称为执行者或角色(Actor)。每一个用例都是用文本进行描述的,它确定了客户的需求,即在不考虑功能如何实现的情况下客户所企盼的功能。第7章面向对象开发方法与UML2.分析阶段分析阶段分析阶段所关注的是出现在问题域中的主要抽象(类和对象)和机制。被建模的类以及类之间的关系在UML的类图中被明确指定和描述。为了实现用例,各类之间需要相互协作。这种协作由UML中的动态模型描述。在分析阶段,只有在问题域(现实世界的概念)中的类才被建模,不包括那些在软件系统中定义了细节和解决方案的技术类,如用户界面类、数据库类、通信类等。第7章面向对象开发方法与UML3.设计阶段设计阶段在设计阶段,分析阶段的结果被扩展为一个技术解决方案。新类被加入进来,以提供以下一些基础结构:用户界面、处理对象存储的数据库、与其他系统的通信、与系统各种设备的接口等。在分析阶段获得的问题域中的类被“嵌入”到此技术基础结构中,这样就能够同时改变问题域和基础结构。设计阶段将为随后的构建阶段产生详细的规格说明。第7章面向对象开发方法与UML4.编码阶段编码阶段在编码阶段(或者称为构建阶段),设计阶段的类被转换为使用面向对象程序设计语言编制的实际代码。这一任务的难度取决于编程语言本身的能力。用UML创建分析模型和设计模型时,应避免试图将模型转换为代码。在开发的早期阶段,模型是帮助理解和搭建系统结构的一种手段。如果在早期阶段就考虑代码,势必达不到预期的目的。因此,编码是一个独立的阶段,只有到了编码阶段,模型才被转换为代码。第7章面向对象开发方法与UML5.测试阶段测试阶段与结构化系统开发方法类似,面向对象的开发方法也需要经过单元测试、集成测试、系统测试和验收测试。对于面向对象的开发方法,单元测试是对单个类或一组类的测试,一般情况下由编程者自己完成。集成测试集成组件和类,以校验它们是否像指定的那样合作。系统测试将系统看成是一个黑盒子,检验系统是否具有最终用户所期望的功能。验收测试由用户实施,验证系统是否满足客户的要求。第7章面向对象开发方法与UML不同的测试团队使用不同的UML图作为他们测试的基础:单元测试团队使用类图和类规格说明;集成测试团队一般使用组件图和协作图;系统测试团队使用用例图检验最初在这些图中定义的系统行为。第7章面向对象开发方法与UML7.3UML静态建模机制简介静态建模机制简介任何建模语言都以静态建模机制为基础,标准建模语言UML也不例外。UML的静态建模机制包括用例图(Use Case Diagram)、类图(Class Diagram)、对象图(Object Diagram)、包(Package)、构件图(Component Diagram)和配置图(Deployment Diagram)。第7章面向对象开发方法与UML7.3.1用例图用例图长期以来,在面向对象开发和传统的软件开发中,人们一直用典型的使用情景来描述需求。但是,这些使用情景是非正式的,难以规范化描述。用例模型由Ivar Jacobson在开发AXE系统中首先使用,并加入由他所倡导的OOSE和Objectory方法中。用例方法引起了面向对象领域的极大关注,面向对象领域已广泛接纳了用例这一概念。第7章面向对象开发方法与UML1.用例模型用例模型(Use Case Model)用例模型用于需求分析阶段,描述的是外部执行者(Actor)所理解的系统功能。它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。用例模型描述了待开发系统的功能需求,将系统看作黑盒,从外部执行者的角度来理解系统。它驱动了需求分析之后各阶段的开发工作,不仅在开发过程中保证了系统所有功能的实现,而且被用于验证和检测所开发的系统,从而影响到开发工作的各个阶段和UML的各个模型。第7章面向对象开发方法与UML2.用例用例(Use Case)与执行者与执行者(Actor)一个用例从本质上讲是用户与计算机之间的一次典型交互作用。例如,在文字处理软件中,“将某些正文置为黑体”和“创建一个索引”便是两个典型的用例。执行者是指用户在系统中所扮演的角色。UML将用例定义成系统执行的一系列动作,动作执行的结果能被指定执行者察觉到。图7.4是一个图书管理系统的用例图的一部分,其中的椭圆表示用例,小人表示执行者。第7章面向对象开发方法与UML图7.4用例图第7章面向对象开发方法与UML3.通信联系通信联系在图7.4中,不带箭头的线段将执行者与用例连接到一起,表示两者之间交换信息,称之为通信联系。执行者触发用例,并与用例进行信息交换。单个执行者可与多个用例联系;反过来,一个用例可与多个执行者联系。对同一个用例而言,不同执行者有着不同的作用:他们可以从用例中取值,也可以参与到用例中。第7章面向对象开发方法与UML4.使用和扩展使用和扩展(Use and Extend)用例图除了包含执行者与用例之间的连接外,还可以有另外两种类型的连接,用来表示用例之间的使用和扩展关系。使用和扩展是两种不同形式的继承关系。当一个用例与另一个用例相似,但所做的动作多一些,就可以用到扩展关系。当有一大块相似的动作存在于几个用例,又不想重复描述该动作时,就可以用到使用关系。第7章面向对象开发方法与UML用例用来获取需求、规划和控制项目。用例的获取是需求分析阶段的主要任务之一,而且是首先要做的工作。大部分用例将在项目的需求分析阶段产生,并且随着工作的深入会发现更多的用例,这些都应及时增添到已有的用例集中。用例集中的每个用例都是一个潜在的需求。对一个大系统,要列出用例清单常常十分困难。可先列出执行者清单,再对每个执行者列出它的用例,问题就会容易很多。第7章面向对象开发方法与UML下面给出一个较完整的图书馆应用系统的用例图。用户或客户对它最初的需求描述如下:这是一个图书馆支持系统。图书馆应用系统将图书和杂志借给读者,这些读者已经在系统中注册了,借阅的图书和杂志也已在系统中登记了。图书馆负责新书的购买。一本图书可以购买多个副本。当书和杂志已经过时或破旧不堪时,将它们从系统中删除。第7章面向对象开发方法与UML 读者可以预订图书馆当前还没有的图书或杂志,当预订的图书或杂志归还或购进时,应用系统就通知预订人。当读者借阅了它所预订的图书或杂志后,或者读者要求取消预订时,他的本次预订就被取消了。图书馆应用系统能够很容易地建立、修改和删除系统中的信息,包括书名、借书者、借阅信息和预订信息。用例描述了图书馆系统提供的所有功能系统的功能需求。用例分析包括阅读和分析规格说明,同时也包括与潜在的用户一起讨论系统。第7章面向对象开发方法与UML图书馆系统的执行者包括图书管理员和读者。图书管理员是软件系统的用户,而读者则是来借阅或预订图书和杂志的客户。读者不直接和软件系统打交道,读者的要求由图书管理员代为执行。图书馆系统中的用例有:借书 还书 预订 取消预订 增加标题第7章面向对象开发方法与UML 删除或更新标题 增加书目 删除书目 增加读者 删除或更新读者因为一本书可能有多个副本,所以这里必须分离出标题的概念。标题可以是一本书的名称、书的作者或者是用来表示指定标题的一个物理副本的其他信息。而书目是指读者从图书馆中借阅的书。在图书馆拥有某本书之前,就可以在系统中增加该书的标题以允许读者预订此书。第7章面向对象开发方法与UML上述列表中没有列出用例图中的维护用例,该用例是一个使用其他用例的更一般的用例,我们可以不将它作为一个用例画出来。这里将它作为一个用例,主要是为了能够将维护任务从系统的主要功能中清晰地分离出来。图书馆应用系统分析的结果绘制在UML用例图中,如图7.5所示。每一个用例都附带有文本文档,用来描述用例以及用例与执行者之间的交互。下面是借书用例的描述:第7章面向对象开发方法与UML(1)如果读者没有预订:a.确定标题b.确定该标题下可用的书目c.确定读者d.图书馆将书借出e.登记一个新的借阅第7章面向对象开发方法与UML(2)如果读者有预订:a.确定读者b.确定标题c.确定该标题下可用的书目d.图书馆将相应的书目借出e.登记一个新的借阅f.取消预订第7章面向对象开发方法与UML图7.5图书馆系统的一个用例图第7章面向对象开发方法与UML7.3.2类图、对象图和包类图、对象图和包类(Class)、对象(Object)和它们之间的关联是面向对象技术中最基本的元素。对于一个想要描述的系统,其类模型和对象模型揭示了系统的结构。UML用类图和对象图分别表示类和对象模型。类图技术是OO方法的核心。例如,图7.6是一个金融保险系统的类图。第7章面向对象开发方法与UML图7.6类图第7章面向对象开发方法与UML1.类图类图类图(Class Diagram)描述类和类之间的静态关系。它不仅显示了信息的结构,同时还描述了系统的行为。类图是定义其他图的基础。在类图的基础上,状态图、合作图等进一步描述了系统其他方面的特性。UML中类的图形表示为一个划分成三个格子的长方形(下面两个格子可省略)。图7.6中的“客户”就是一个典型的类。第7章面向对象开发方法与UML最顶部的格子包含类的名字,类的命名应尽量用应用领域中的术语,应明确、无二义性,以利于开发人员与用户之间的相互理解和交流。中间的格子包含类的属性,用以描述该类对象的共同特点(该项可省略)。图7.6中“客户”类有“客户名”、“地址”等属性。底部的格子表示该类的操作(Operation)。该项也可省略。操作名、返回类型和参数表组成操作界面。定义了类之后,就可以定义类之间的各种关系了。类之间的关系主要有以下几种。第7章面向对象开发方法与UML1)关联关系关联(Association)表示两个类之间存在某种语义上的联系。在图7.6中最上部存在一个“属于”/“签定”关联:每个“保险单”属于一个“客户”,而“客户”可以签定多个“保险单”。关联可以有方向,表示该关联单方向被使用。关联上加上箭头表示方向,在UML中称为导航(Navigability)。只在一个方向上存在导航表示的关

    注意事项

    本文(信息系统分析与设计(第三版)陈圣国第7章.ppt)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开