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

    5需求分析(3)-面向对象建模.pdf

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

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

    5需求分析(3)-面向对象建模.pdf

    12.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模传统的结构化方法学适合需求比较确定的应用领域,这一点已成为软件工程界大多数学者和实践者的共识。实际上,系统的需求却往往是变化的,而且用户对系统到底要求些什么也不是很清楚,而这些在面向对象方法中不再成为问题,因而对象技术发展十分迅速,成为传统的结构化方法学适合需求比较确定的应用领域,这一点已成为软件工程界大多数学者和实践者的共识。实际上,系统的需求却往往是变化的,而且用户对系统到底要求些什么也不是很清楚,而这些在面向对象方法中不再成为问题,因而对象技术发展十分迅速,成为90年代十分流行的软件开发技术。年代十分流行的软件开发技术。C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模22.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模从狭义上看,面向对象的软件开发包括三个主要阶段:从狭义上看,面向对象的软件开发包括三个主要阶段:?面向对象分析面向对象分析(Object-Oriented Analysis,简称,简称OOA)?面向对象设计面向对象设计(Object-Oriented Design,简称,简称OOD)?面向对象程序设计面向对象程序设计(Object-Oriented Programming,简称,简称OOP)。C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模OOA是指系统分析员对将要开发的系统进行定义和分析,进而得到各个对象类以及它们之间的关系的抽象描述;是指系统分析员对将要开发的系统进行定义和分析,进而得到各个对象类以及它们之间的关系的抽象描述;OOD是指系统设计人员将面向对象分析的结果转化为适合于程序设计语言中的具体描述,它是进行面向对象程序设计的蓝图OOD是指系统设计人员将面向对象分析的结果转化为适合于程序设计语言中的具体描述,它是进行面向对象程序设计的蓝图OOP则是程序设计人员利用程序设计语言,根据OOD得到的对象类的描述,建立实际可运行的系统。OOP则是程序设计人员利用程序设计语言,根据OOD得到的对象类的描述,建立实际可运行的系统。32.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模(1)面向对象建模的发展a开发模型面向对象技术中出现了各种区别于传统的瀑布模型的演化模型,如(1)面向对象建模的发展a开发模型面向对象技术中出现了各种区别于传统的瀑布模型的演化模型,如渐增模型、螺旋模型、组件装渐增模型、螺旋模型、组件装配模型配模型和和并行开发模型并行开发模型。软件工程的目标是要生产高质量的软件产品,这就要求其开发过程中从管理和技术两方面系统化地进行控制。软件工程的目标是要生产高质量的软件产品,这就要求其开发过程中从管理和技术两方面系统化地进行控制。C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模面向对象的面向对象的组件装配模型组件装配模型借用了硬件设中借用了硬件设中“总线总线”概念,将开发的大量软件组件配在软件总线上构成程序,从技术的角系统化地对软件开发过程进行控制,将望大幅度提高软件生产率。概念,将开发的大量软件组件配在软件总线上构成程序,从技术的角系统化地对软件开发过程进行控制,将望大幅度提高软件生产率。并行开发模型并行开发模型则是从管理的角度系统化地对软件开发过程进行控制。则是从管理的角度系统化地对软件开发过程进行控制。42.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模(1)面向对象建模的发展(1)面向对象建模的发展b方法b方法自自20世纪世纪90年代初以来,一些著名学者已相继提出了各自的面向对象方法。年代初以来,一些著名学者已相继提出了各自的面向对象方法。PeterCoad-面向对象分析方法(面向对象分析方法(OOA)Wirfs-Brock-面向对象系统设计面向对象系统设计Grady Booch-面向对象设计面向对象设计(Obiect-Oriented Design with Applications)Jim Rumbaugh-面向对象建模与设计方法面向对象建模与设计方法(Obiect-Oriented Modeling and Design,OOMD)Ivar Jacobson-面向对象软件工程面向对象软件工程(Object-Oriented Software Engineering,OOSE)。尽管不同的方法学中使用的术语和采取的步骤有些不同,但本质上是类似的。尽管不同的方法学中使用的术语和采取的步骤有些不同,但本质上是类似的。C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模52.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模(1)面向对象建模的发展)面向对象建模的发展c建模语言建模语言C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模面向对象方法中一般采用半形式化语言(Semi面向对象方法中一般采用半形式化语言(SemiFormal Language)的表示符号(如图形)进面向对象建模。不同的学者在各自不同的方法框架中采用不同的建模语言,过多过杂会使得用户无所从。因此,建立一种统一的建模语言并使之成为标准非常必要。Formal Language)的表示符号(如图形)进面向对象建模。不同的学者在各自不同的方法框架中采用不同的建模语言,过多过杂会使得用户无所从。因此,建立一种统一的建模语言并使之成为标准非常必要。这就促进了统一建模语言(Unified Modeling Language,简称UML)的形成和发展。这就促进了统一建模语言(Unified Modeling Language,简称UML)的形成和发展。的开发始于94年8月,97年推出l.1版,并被OMG(Obiect Management Group)批准为标准。99年月又发布了l.3版。UML现已获得工业界和科技界的广泛支持,世界上很多大公司都表示将采用UML作建模语言,许多专家、组织机构和工具开发者已经在使用UML。的开发始于94年8月,97年推出l.1版,并被OMG(Obiect Management Group)批准为标准。99年月又发布了l.3版。UML现已获得工业界和科技界的广泛支持,世界上很多大公司都表示将采用UML作建模语言,许多专家、组织机构和工具开发者已经在使用UML。62.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模(1)面向对象建模的发展)面向对象建模的发展d对象建模工具对象建模工具C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模一些大公司为其面向对象的开发提供了建模工具。如IBM公司的可视化对象建模技术VMT就是综合了OMT方法、OOSE方法、RDD方法(Responsibility Driven Design)以及事件跟踪图、状态转换图等基础上提出的可视化工具。一些大公司为其面向对象的开发提供了建模工具。如IBM公司的可视化对象建模技术VMT就是综合了OMT方法、OOSE方法、RDD方法(Responsibility Driven Design)以及事件跟踪图、状态转换图等基础上提出的可视化工具。又如Rational Software司的Rose工具是以UML作为建模语言又如Rational Software司的Rose工具是以UML作为建模语言、以迭代过程为方法论的具有正向和逆向软件工程功能的工具集和支持环境,功能比较强大。又如Microsoft公司费提供的功能比较简单的Microsoft Visual Modeler也是基于UML的建模工具,该工具建立在Rational Rose子工具集的基础之上,并集成到了、以迭代过程为方法论的具有正向和逆向软件工程功能的工具集和支持环境,功能比较强大。又如Microsoft公司费提供的功能比较简单的Microsoft Visual Modeler也是基于UML的建模工具,该工具建立在Rational Rose子工具集的基础之上,并集成到了MicrosoftMicrosoft VisualVisual StudioStudio中中。72.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模(1)面向对象建模的发展)面向对象建模的发展e编程工具编程工具C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模目前已有相当成熟的基于组件装配模型的可视软件编程工具,如目前已有相当成熟的基于组件装配模型的可视软件编程工具,如Visual C+、Visual J+、Visual Basic、PowerBuilder、C+Builder、Delphi等。等。82.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模(1)面向对象建模的发展)面向对象建模的发展f对象体系结构对象体系结构C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模现有用于软件系统集成的对象体系结构的一些标准,最具竞争力的是由现有用于软件系统集成的对象体系结构的一些标准,最具竞争力的是由OMG及其技术供应商支持的开放的CORBA标准OMG及其技术供应商支持的开放的CORBA标准和由微软开发的专有的Windows 平台上的和由微软开发的专有的Windows 平台上的COM/DCOM/COM+标准COM/DCOM/COM+标准,后者也在向多平台扩展。此外,后者也在向多平台扩展。此外,SUN公司的RMISUN公司的RMI等也很有影响。等也很有影响。92.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模(2)面向对象基础)面向对象基础(复习第一章)(复习第一章)a基本概念基本概念C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模面向对象方法学的基本原则:面向对象方法学的基本原则:?一切事物都是对象;一切事物都是对象;?任何系统都是由对象构成的,系统本身也是对象;任何系统都是由对象构成的,系统本身也是对象;?系统的发展和进化过程都是由系统的内部对象和外部对象之间(也包括内部对象与内部对象之间)的相互作用完成的。系统的发展和进化过程都是由系统的内部对象和外部对象之间(也包括内部对象与内部对象之间)的相互作用完成的。102.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模(2)面向对象基础)面向对象基础a基本概念基本概念C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模面向对象方法之所以会如此流行,主要是因为它非适合于人们认识和解决问题的习惯。面向对象方法之所以会如此流行,主要是因为它非适合于人们认识和解决问题的习惯。?首先,它是一种从一般到特殊的演绎方法,如面向对象中的继承,这与人们认识客观世界时常用的分类思想非常吻合。首先,它是一种从一般到特殊的演绎方法,如面向对象中的继承,这与人们认识客观世界时常用的分类思想非常吻合。?其次,它也是一种从特殊到一般的归纳方法,如面向对象中的类,是由一大批相同或相似的对象抽象而得。其次,它也是一种从特殊到一般的归纳方法,如面向对象中的类,是由一大批相同或相似的对象抽象而得。11a基本概念基本概念C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模面向对象方法的主要特征:面向对象方法的主要特征:客观世界是由各种对象(Object)组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合起来。因此,面向对象的软件系统是由对象组成的,软件中的任何元素都是对象;客观世界是由各种对象(Object)组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合起来。因此,面向对象的软件系统是由对象组成的,软件中的任何元素都是对象;把所有的对象都划分为各种类(Class),每个类都定义了一组数据和一种方法。数据用于表示对象的静态属性,描述对象的状态信息;方法是对象所能执行的操作,也就是类中所能提供的服务;把所有的对象都划分为各种类(Class),每个类都定义了一组数据和一种方法。数据用于表示对象的静态属性,描述对象的状态信息;方法是对象所能执行的操作,也就是类中所能提供的服务;12a基本概念基本概念C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模面向对象方法的主要特征:面向对象方法的主要特征:按照子类(也称为派生类)和父类(也称为基类)的关系,把若干个类组成一个层次结构的系统。在这种类层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这一特性称为继承(Inheritance)。按照子类(也称为派生类)和父类(也称为基类)的关系,把若干个类组成一个层次结构的系统。在这种类层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这一特性称为继承(Inheritance)。对象与对象之间只能通过传递消息进行通信(Communication对象与对象之间只能通过传递消息进行通信(Communicationwith Messages)。with Messages)。对象(对象(Objects)类(类(Classes)继承(继承(Inheritance)消息通信(消息通信(Communication with Messages)面向对象(面向对象(Object-Oriented)13a基本概念基本概念-类与对象类与对象C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模类封装了客观世界中实体的特征和行为,即类的属性(数据抽象)和方法(过程抽象)两个方面。左下图所示的表示符号用来描述类,类中的对象的表示符号见右下图。其中,对象的表示符号是在类的表示符号的基础之上加了一个细实线的圆角矩形边框。左下图表示该类只能用于派生新类而不能定义类的实例(即对象),称为抽象类;右下图表示该类既能用于派生新类也能用于定义类的实例(即对象),外部细实线的圆角矩形框表示对象,内部粗实线的圆角矩形框表示类。类封装了客观世界中实体的特征和行为,即类的属性(数据抽象)和方法(过程抽象)两个方面。左下图所示的表示符号用来描述类,类中的对象的表示符号见右下图。其中,对象的表示符号是在类的表示符号的基础之上加了一个细实线的圆角矩形边框。左下图表示该类只能用于派生新类而不能定义类的实例(即对象),称为抽象类;右下图表示该类既能用于派生新类也能用于定义类的实例(即对象),外部细实线的圆角矩形框表示对象,内部粗实线的圆角矩形框表示类。类的名称属性:方法类的名称属性:方法类的名称属性:方法类的名称属性:方法类的表示符类的表示符对象的表示符对象的表示符14a基本概念基本概念-类与对象类与对象C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模类是对一组相似对象的一般化描述。同一个类中的对象继承类的属性和方法。对一组相似的类进行抽象可以得到这一组类的超类(superclass),相应地,类是对一组相似对象的一般化描述。同一个类中的对象继承类的属性和方法。对一组相似的类进行抽象可以得到这一组类的超类(superclass),相应地,超类中的每一个类称为子类(subclass)超类中的每一个类称为子类(subclass)。类、超类和子类的定义隐含地表示了类层次(class hierarchy类、超类和子类的定义隐含地表示了类层次(class hierarchy)的概念。)的概念。在类层次结构中,超类的属性和方法可以由子类继承,而子类中又可能加入新的属性和方法在类层次结构中,超类的属性和方法可以由子类继承,而子类中又可能加入新的属性和方法。同时,子类中从超类继承而来的属性和方法以及子类新定义的属性和方法都可以由这一子类的子类继承。同时,子类中从超类继承而来的属性和方法以及子类新定义的属性和方法都可以由这一子类的子类继承。计算机计算机大型机大型机中型机中型机小型机小型机微型机微型机原装机原装机组装机组装机15a基本概念基本概念属性属性C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模属性附属于类与对象,描述了类与对象区别于其他类与对象的特性。不论是物理对象还是人,他们的每一个特性可以看作一个类与一个特定的域之间的一种二元关系,这属性附属于类与对象,描述了类与对象区别于其他类与对象的特性。不论是物理对象还是人,他们的每一个特性可以看作一个类与一个特定的域之间的一种二元关系,这也就是说属性具有域中定义的某个值也就是说属性具有域中定义的某个值。在大多数情况下,一个域可以简单地用一组特定的值来表示。在大多数情况下,一个域可以简单地用一组特定的值来表示。例如,假定类例如,假定类“人人”有一个属性为有一个属性为“肤色肤色”。而。而“肤色肤色”对应的域为对应的域为黄色,白色,黑色黄色,白色,黑色。这时,属性。这时,属性“肤色肤色”就可以取这就可以取这3种颜色值之一。在一些应用当中,可以为属性设置默认值。例如,可以将种颜色值之一。在一些应用当中,可以为属性设置默认值。例如,可以将“肤色肤色”的默认值设为的默认值设为“黄色黄色”。16a基本概念基本概念方法方法C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模?方法也是附属于类与对象的,方法描述了类与对象的行为。方法也是附属于类与对象的,方法描述了类与对象的行为。?面向对象中的每一个对象都封装了数据和算法两个方面。数据由一组属性表示,算法则用来处理这些数据。这里的面向对象中的每一个对象都封装了数据和算法两个方面。数据由一组属性表示,算法则用来处理这些数据。这里的算法也就是方法,有时也称为操作或服务。算法也就是方法,有时也称为操作或服务。?类与对象封装的每一个方法代表着类与对象类与对象封装的每一个方法代表着类与对象能够进行的一个能够进行的一个“动作动作”。例如,对象。例如,对象“人人”的的“取肤色取肤色”方法可以获取存储在属性方法可以获取存储在属性“肤色肤色”中的值。中的值。17a基本概念基本概念消息消息C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模消息是对象之间进行交互的手段和方法。一个对象发送消息,接收消息的对象会执行相应的动作来做出响应,也就是执行某一方法。当方法执行结束的时候,这一响应动作也就完成了。发送消息的对象通过其内部的某个方法产生如下形式的一个消息。消息:【目标,方法,参数】这里,消息是对象之间进行交互的手段和方法。一个对象发送消息,接收消息的对象会执行相应的动作来做出响应,也就是执行某一方法。当方法执行结束的时候,这一响应动作也就完成了。发送消息的对象通过其内部的某个方法产生如下形式的一个消息。消息:【目标,方法,参数】这里,目标目标代表消息将要传递到的对象,代表消息将要传递到的对象,方法方法是指将要激活的接收对象的方法,是指将要激活的接收对象的方法,参数参数是方法需要成功执行所需要的信息。是方法需要成功执行所需要的信息。18a基本概念基本概念消息传递过程消息传递过程C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模对象之间消息传递的过程示意对象之间消息传递的过程示意传统的结构化方法中,数据和操纵数据的函数传统的结构化方法中,数据和操纵数据的函数(或过程或过程)是分开的,重点是将数据送到函数中,请求执行相应的功能。是分开的,重点是将数据送到函数中,请求执行相应的功能。而在面向对象方法中,数据和操纵数据的方法合在一起构成对象,这时的重点是发送消息到对象以请求对象完成相应的功能。而在面向对象方法中,数据和操纵数据的方法合在一起构成对象,这时的重点是发送消息到对象以请求对象完成相应的功能。发送对象向一个对象发送消息,实质上是请求一个对象完成某项服务。接收对象响应消息:首先选择要执行的方法,然后执行给方法,执行完后将控制权返回发送对象。发送对象向一个对象发送消息,实质上是请求一个对象完成某项服务。接收对象响应消息:首先选择要执行的方法,然后执行给方法,执行完后将控制权返回发送对象。19a基本概念基本概念封装封装C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模封装是指类与对象把数据和操纵数据的方法合在一起构成一个整体,外部只能通过消息来同对象打交道。这样做的优点:封装是指类与对象把数据和操纵数据的方法合在一起构成一个整体,外部只能通过消息来同对象打交道。这样做的优点:?数据和过程的内部实现细节对外部是隐藏起来的(即实现了信息隐藏)。这样一来,当改变发生时可以减少副作用的传播。数据和过程的内部实现细节对外部是隐藏起来的(即实现了信息隐藏)。这样一来,当改变发生时可以减少副作用的传播。?数据结构和操纵数据结构的算法合在一个实体即类这样可以使得复用变得很方便。数据结构和操纵数据结构的算法合在一个实体即类这样可以使得复用变得很方便。?封装起来的对象之问的接口简化了。发送消息的对不必考虑接收消息的对象的内部数据结构的细节,只需要知道接收对象向外部提供的公用接口就可以了。这样一来,不仅接口问题得到了简化,系统间的耦合也降低了。封装起来的对象之问的接口简化了。发送消息的对不必考虑接收消息的对象的内部数据结构的细节,只需要知道接收对象向外部提供的公用接口就可以了。这样一来,不仅接口问题得到了简化,系统间的耦合也降低了。20a基本概念基本概念继承继承C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模?继承是面向对象方法区别于传统方法的一个关键特点。继承是面向对象方法区别于传统方法的一个关键特点。子类可以继承其超类的所有属性和方法子类可以继承其超类的所有属性和方法。这就意味着原来在超类中已经设计和实现的数据结构和算法在子类中不需要进行任何修改即可立即使用,这使得软件复用可以直接实现。这就意味着原来在超类中已经设计和实现的数据结构和算法在子类中不需要进行任何修改即可立即使用,这使得软件复用可以直接实现。?继承使得在超类中对继承使得在超类中对数据结构和算法的任何修改可以在其子类中立即实现数据结构和算法的任何修改可以在其子类中立即实现。这样一来,类层次结构就成了一种能够将高层次的修改立即逐层向下传播到整个系统的一种机制。这样一来,类层次结构就成了一种能够将高层次的修改立即逐层向下传播到整个系统的一种机制。?有关继承还有很重要的一点是:在类层次结构的适当的子类中,有关继承还有很重要的一点是:在类层次结构的适当的子类中,可以加入新的属性和方法可以加入新的属性和方法。21a基本概念基本概念多态多态C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模多态是能够对现有的面向对象系统进行扩展而无需付出大的努力的一种特征。为了理解什么是多态性,考虑绘制不同类型的图多态是能够对现有的面向对象系统进行扩展而无需付出大的努力的一种特征。为了理解什么是多态性,考虑绘制不同类型的图(线条图、饼图和直方图线条图、饼图和直方图)的例子。首先考虑使用传统的方法,这时的控制逻辑可以使用下面的伪语言表示:的例子。首先考虑使用传统的方法,这时的控制逻辑可以使用下面的伪语言表示:CASEOF作图类型作图类型IF作图类型作图类型=线条图线条图THEN作线条图作线条图(数据数据):IF作图类型作图类型=饼图饼图THEN作饼图作饼图(数据数据);IF作图类型作图类型=直方图直方图THEN作直方图作直方图(数据数据);END CASE;*尽管这种设计方法很直接,但是,如果要加入一种新的作图类型的话就比较麻烦了。这时,必须增加一种新的作图模块,而且对上述控制逻辑也必须作相应的修改。尽管这种设计方法很直接,但是,如果要加入一种新的作图类型的话就比较麻烦了。这时,必须增加一种新的作图模块,而且对上述控制逻辑也必须作相应的修改。22a基本概念基本概念多态多态C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模使用面向对象的方法解决这一问题使用面向对象的方法解决这一问题:?从各种特殊的图形从各种特殊的图形(线条图、饼图和直方图等线条图、饼图和直方图等)可得到一个一般化的类可得到一个一般化的类“图形图形”,在图形类中可定义方法,在图形类中可定义方法“作图作图”。?然后,可以从一般化的图形类派生若干子类然后,可以从一般化的图形类派生若干子类(这里为线条图类,饼图类和直方图类这里为线条图类,饼图类和直方图类)。?在各个子类中重载其超类中的在各个子类中重载其超类中的“作图作图”方法。这样,当向这些子类中的任何一个对象发送方法。这样,当向这些子类中的任何一个对象发送“作图作图”消息时,该对象会自动地执行相应的消息时,该对象会自动地执行相应的“作图作图”方法绘制出线条图、饼图或者直方图。方法绘制出线条图、饼图或者直方图。?如果后来需要增加一种新的作图类型,只需从一般化的图形类再次派生一子类并重载相应的如果后来需要增加一种新的作图类型,只需从一般化的图形类再次派生一子类并重载相应的“作图作图”方法即可,一般化的图形类和原有的各图形子类都不需要进行任何修改。方法即可,一般化的图形类和原有的各图形子类都不需要进行任何修改。总之,多态的特点使得完成不同功能的方法可以使用同样的名字。换句话说就是,同一接口可以具有不同功能。多态的基本含义就是总之,多态的特点使得完成不同功能的方法可以使用同样的名字。换句话说就是,同一接口可以具有不同功能。多态的基本含义就是“具有多种形态具有多种形态”的意思。的意思。23b面向对象软件开发模型面向对象软件开发模型C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模面向对象系统通常都具有随着时间演化的特征,因此,与组件装配面向对象系统通常都具有随着时间演化的特征,因此,与组件装配(本质上是组件复用本质上是组件复用)结合的各种演化模型就是面向对象软件开发模型的最好选择。结合的各种演化模型就是面向对象软件开发模型的最好选择。组件装配模型组件装配模型242.7.5 2.7.5 面向对象建模面向对象建模面向对象建模面向对象建模(3)面向对象分析模型)面向对象分析模型C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模面向对象分析的目标是要建立一系列的模型来描述能够满足用户需要的计算机软件面向对象分析的目标是要建立一系列的模型来描述能够满足用户需要的计算机软件。面向对象分析模型需要表示出系统的信息(或数据)、功能和行为三个方面的基本特征面向对象分析模型需要表示出系统的信息(或数据)、功能和行为三个方面的基本特征。相应地,在进行面向对象分析时,需要建立面向对象的相应地,在进行面向对象分析时,需要建立面向对象的?对象模型对象模型?功能模型功能模型?行为模型行为模型建立对象模型时,首先要确定系统中有哪些对象建立对象模型时,首先要确定系统中有哪些对象(或类或类),每一个对象,每一个对象(或类或类)需要哪些属性,然后确定对象需要哪些属性,然后确定对象(或类或类)之间的关系。对象模型通常使用类似于实体一关系图这样的图形工具进行表示。对象模型有时也称为类模型。对象模型是面向对象分析模型中最重要的一种模型。之间的关系。对象模型通常使用类似于实体一关系图这样的图形工具进行表示。对象模型有时也称为类模型。对象模型是面向对象分析模型中最重要的一种模型。建立行为模型,是要确定系统的动态行为,即对象能够发送或接收的事件建立行为模型,是要确定系统的动态行为,即对象能够发送或接收的事件(或刺激或刺激)以及系统状态发生转移的情况。行为模型通常使用类似于状态转换图等图形工具进行表示。以及系统状态发生转移的情况。行为模型通常使用类似于状态转换图等图形工具进行表示。建立功能模型的目的,是要确定如何来对数据建立功能模型的目的,是要确定如何来对数据(即对象中的属性对应的数据结构即对象中的属性对应的数据结构)进行计算和处理。功能模型通常使用类似于数据流图的图形工具进行表示。一般地说,功能模型是面向对象分析模型中最易被忽视的一种模型。进行计算和处理。功能模型通常使用类似于数据流图的图形工具进行表示。一般地说,功能模型是面向对象分析模型中最易被忽视的一种模型。25(3)面向对象分析模型)面向对象分析模型C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模下面以软件工程中的一个经典例子下面以软件工程中的一个经典例子(电梯问题电梯问题)介绍这三种模型的建立过程。电梯问题:假定一栋介绍这三种模型的建立过程。电梯问题:假定一栋m层的建筑物中有层的建筑物中有n个电梯,设计一个电梯运行软件。运行时要求满足下面的约束条件:个电梯,设计一个电梯运行软件。运行时要求满足下面的约束条件:?每一个电梯有m个按钮,每一个按钮对应建筑物的一个楼层。按钮按下时会发亮显示并且电梯会运行到相应的楼层。每一个电梯有m个按钮,每一个按钮对应建筑物的一个楼层。按钮按下时会发亮显示并且电梯会运行到相应的楼层。?除了顶层和底层以外的所有楼层都有两个按钮,一个用于请求上楼,一个用于请求下楼。按钮按下时会发亮显示。当电梯运行到某一楼层然后离开时相应楼层按钮的显示会取消。除了顶层和底层以外的所有楼层都有两个按钮,一个用于请求上楼,一个用于请求下楼。按钮按下时会发亮显示。当电梯运行到某一楼层然后离开时相应楼层按钮的显示会取消。?当没有请求时,电梯会停留在当前楼层,并且电梯的门处于关闭状态。当没有请求时,电梯会停留在当前楼层,并且电梯的门处于关闭状态。26(3)面向对象分析模型)面向对象分析模型C2 C2 需求分析需求分析需求分析需求分析2.1 目标目标2.6 数据流建模数据流建模2.7 2.7 分析建模分析建模分析建模分析建模-实体实体-关系建模关系建模-系统行为建模系统行为建模-IDEF0-用例建模用例建模-面向对象建面向对象建面向对象建面向对象建模模模模一般地说,应该首先建立对象模型,然后建立行为模型,最后建立功能模型。但是,这一建立过程不完全是线性的,而应该是迭代式的。也就是说,随着新的模型的建立,应该回过头考察已建立的模型,并且根据需要对已建立的模型进行必要的修改。一般地说,应该首先建立对象模型,然后

    注意事项

    本文(5需求分析(3)-面向对象建模.pdf)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




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

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

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

    收起
    展开