免费智能真题库 > 历年试卷 > 系统分析师 > 2025年上半年 系统分析师 下午试卷 论文
  第4题      
  知识点:   OMT方法   OOSE   面向对象方法   OOA   OOD   对象建模技术   建模   建模技术   软件系统   统一建模语言

 
论面向对象建模方法的应用
随着软件技术的发展,面向对象方法日益成为信息系统软件开发的主流技术,而面向对象建模技术是其中的关键。模型是软件开发的根本,大型、复杂的软件系统的开发是一项工程,而建模是系统化认识所开发软件的一个初步途径。
面向对象建模技术流派众多,包括OMT方法OOSE方法、OOA/OOD方法等。统一建模语言的出现极大地促进了面向对象建模方法的普及与应用,己经成为当前面向对象建模方法的标准.
 
问题:4.1   1 概要叙述你参与管理和开发的信息系统项目以及你在其中所承担的主要工作。
2. 论述常见的面向对象建模方法的主要内容,包括每种模型的核心思想。
3. 具体阐述你参与管理和开发的项目中使用的是哪种面向对象建模方法以及选择该方法的原因,给出具体的实施过程和实施效果。
 
 
 

   知识点讲解    
   · OMT方法    · OOSE    · 面向对象方法    · OOA    · OOD    · 对象建模技术    · 建模    · 建模技术    · 软件系统    · 统一建模语言
 
       OMT方法
        OMT作为一种软件工程方法学,支持整个软件生存周期,覆盖了问题构成分析、设计和实现等阶段。OMT方法使用了建模的思想,讨论如何建立一个实际的应用模型。从3个不同而又相关的角度建立了3类模型,分别是对象模型、动态模型和函数模型,OMT为每一个模型提供了图形表示。
        (1)对象模型。描述系统中对象的静态结构、对象之间的关系、属性和操作。它表示静态的、结构上的、系统的“数据”特征。主要用对象图来实现对象模型。
        (2)动态模型。描述与时间和操作顺序有关的系统特征,如激发事件、事件序列、确定事件先后关系的状态。它表示瞬时、行为上的和系统的“控制”特征。主要用状态图来实现动态模型。
        (3)函数模型。描述与值的变换有关的系统特征,包括功能、映射、约束和函数依赖。主要用数据流图来实现功能模型。
        在进行OMT建模时,通常包括4个活动,分别是分析、系统设计、对象设计和实现。
        (1)分析:建立可理解的现实世界模型。通常从问题陈述入手,通过与客户的不断交互及对现实世界背景知识的了解,对能够反映系统的3个本质特征(对象类及它们之间的关系,动态的控制流,受约束的数据的函数变换)进行分析,构造出现实世界的模型。
        (2)系统设计:确定整个系统的体系结构,形成求解问题和建立解答的高层策略。
        (3)对象设计:在分析的基础上,建立基于分析模型的设计模型,并考虑实现细节。其焦点是实现每个类的数据结构及所需的算法。
        (4)实现:将对象设计阶段开发的对象类及其关系转换为程序设计语言、数据库或硬件的实现。
 
       OOSE
        OOSE在OMT的基础上,对功能模型进行了补充,提出了用例(use case)的概念,最终取代了数据流图来进行需求分析和建立功能模型。
        OOSE方法采用5类模型来建立目标系统。
        (1)需求模型:获取用户的需求,识别对象,主要的描述手段有用例图、问题域对象模型及用户界面。
        (2)分析模型:定义系统的基本结构。将分析模型中的对象分别识别到分析模型中的实体对象、界面对象和控制对象三类对象中。每类对象都有自己的任务、目标并模拟系统的某个方面。实体对象模拟那些在系统中需要长期保存并加以处理的信息。实体对象由使用事件确定,通常与现实生活中的一些概念相符合。界面对象的任务是提供用户与系统之间的双向通信,在使用事件中所指定的所有功能都直接依赖于系统环境,它们都放在界面对象中。控制对象的典型作用是将另外一些对象组合形成一个事件。
        (3)设计模型:分析模型只注重系统的逻辑构造,而设计模型需要考虑具体的运行环境,即将分析模型中的对象定义为模块。
        (4)实现模型:用面向对象的语言来实现。
        (5)测试模型:测试的重要依据是需求模型和分析模型,测试的方法与9.8节所介绍的方法类似,而底层是对类(对象)的测试。测试模型实际上是一个测试报告。
        OOSE的开发活动主要分为3类,分别是分析、构造和测试。其中分析过程分为需求分析和健壮性分析两个子过程,分析活动分别产生需求模型和分析模型。构造活动包括设计和实现两个子过程,分别产生设计模型和实现模型。测试过程包括单元测试、集成测试和系统测试三个过程,共同产生测试模型。
        用例是OOSE中的重要概念,在开发各种模型时,它是贯穿OOSE活动的核心,描述了系统的需求及功能。用例实际上是描述系统用户(使用者、执行者)对于系统的使用情况,是从使用者的角度来确定系统的功能。因此,首先必须分析确定系统的使用者,然后进一步考虑使用者的主要任务、使用的方式、识别所使用的事件,即用例。
 
       面向对象方法
        面向对象方法是当前的主流开发方法,拥有大量不同的方法,主要包括OMT(Object Model Technology,对象建模技术)方法、Coad/Yourdon方法、OOSE(Object-Oriented Software Engineering,面向对象的软件工程)及Booch方法等,而OMT、OOSE及Booch最后统一成为UML(United Model Language,统一建模语言)。
               Coad/Yourdon方法
               Coad/Yourdon方法主要由面向对象的分析(Object-Oriented Analysis, OOA)和面向对象的设计(Object-Oriented Design, OOD)构成,特别强调OOA和OOD采用完全一致的概念和表示法,使分析和设计之间不需要表示法的转换。该方法的特点是表示简炼、易学,对于对象、结构、服务的认定较系统和完整,可操作性强。
               在Coda/Yourdon方法中,OOA的任务主要是建立问题域的分析模型。分析过程和构造OOA概念模型的顺序由5个层次组成,分别是类与对象层、属性层、服务层、结构层和主题层,它们表示分析的不同侧面。OOA需要经过5个步骤来完成整个分析工作,即标识对象类、标识结构与关联(包括继承、聚合、组合及实例化等)、划分主题、定义属性和定义服务。
               OOD中将继续贯穿OOA中的5个层次和5个活动,它由4个部分组成,分别是人机交互部件、问题域部件、任务管理部件和数据管理部件,其主要的活动就是这4个部件的设计工作。
               Booch方法
               Booch认为软件开发是一个螺旋上升的过程,每个周期包括4个步骤,分别是标识类和对象、确定类和对象的含义、标识关系、说明每个类的接口和实现。Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型(类图、对象图)和物理模型(模块图、进程图),描述了系统的构成和结构。动态模型包括状态图和顺序图。该方法对每一步都做了详细的描述,描述手段丰富而灵活。
               Booch不仅建立了开发方法,还提出了设计人员的技术要求,以及不同开发阶段的人力资源配置。Booch方法的基本模型包括类图与对象图,主张在分析和设计中既使用类图,也使用对象图。
               OMT方法
               OMT作为一种软件工程方法学,支持整个软件生存周期,覆盖了问题构成分析、设计和实现等阶段。OMT方法使用了建模的思想,讨论如何建立一个实际的应用模型。从3个不同而又相关的角度建立了3类模型,分别是对象模型、动态模型和函数模型,OMT为每一个模型提供了图形表示。
               (1)对象模型。描述系统中对象的静态结构、对象之间的关系、属性和操作。它表示静态的、结构上的、系统的“数据”特征。主要用对象图来实现对象模型。
               (2)动态模型。描述与时间和操作顺序有关的系统特征,如激发事件、事件序列、确定事件先后关系的状态。它表示瞬时、行为上的和系统的“控制”特征。主要用状态图来实现动态模型。
               (3)函数模型。描述与值的变换有关的系统特征,包括功能、映射、约束和函数依赖。主要用数据流图来实现功能模型。
               在进行OMT建模时,通常包括4个活动,分别是分析、系统设计、对象设计和实现。
               (1)分析:建立可理解的现实世界模型。通常从问题陈述入手,通过与客户的不断交互及对现实世界背景知识的了解,对能够反映系统的3个本质特征(对象类及它们之间的关系,动态的控制流,受约束的数据的函数变换)进行分析,构造出现实世界的模型。
               (2)系统设计:确定整个系统的体系结构,形成求解问题和建立解答的高层策略。
               (3)对象设计:在分析的基础上,建立基于分析模型的设计模型,并考虑实现细节。其焦点是实现每个类的数据结构及所需的算法。
               (4)实现:将对象设计阶段开发的对象类及其关系转换为程序设计语言、数据库或硬件的实现。
               OOSE
               OOSE在OMT的基础上,对功能模型进行了补充,提出了用例(use case)的概念,最终取代了数据流图来进行需求分析和建立功能模型。
               OOSE方法采用5类模型来建立目标系统。
               (1)需求模型:获取用户的需求,识别对象,主要的描述手段有用例图、问题域对象模型及用户界面。
               (2)分析模型:定义系统的基本结构。将分析模型中的对象分别识别到分析模型中的实体对象、界面对象和控制对象三类对象中。每类对象都有自己的任务、目标并模拟系统的某个方面。实体对象模拟那些在系统中需要长期保存并加以处理的信息。实体对象由使用事件确定,通常与现实生活中的一些概念相符合。界面对象的任务是提供用户与系统之间的双向通信,在使用事件中所指定的所有功能都直接依赖于系统环境,它们都放在界面对象中。控制对象的典型作用是将另外一些对象组合形成一个事件。
               (3)设计模型:分析模型只注重系统的逻辑构造,而设计模型需要考虑具体的运行环境,即将分析模型中的对象定义为模块。
               (4)实现模型:用面向对象的语言来实现。
               (5)测试模型:测试的重要依据是需求模型和分析模型,测试的方法与9.8节所介绍的方法类似,而底层是对类(对象)的测试。测试模型实际上是一个测试报告。
               OOSE的开发活动主要分为3类,分别是分析、构造和测试。其中分析过程分为需求分析和健壮性分析两个子过程,分析活动分别产生需求模型和分析模型。构造活动包括设计和实现两个子过程,分别产生设计模型和实现模型。测试过程包括单元测试、集成测试和系统测试三个过程,共同产生测试模型。
               用例是OOSE中的重要概念,在开发各种模型时,它是贯穿OOSE活动的核心,描述了系统的需求及功能。用例实际上是描述系统用户(使用者、执行者)对于系统的使用情况,是从使用者的角度来确定系统的功能。因此,首先必须分析确定系统的使用者,然后进一步考虑使用者的主要任务、使用的方式、识别所使用的事件,即用例。
 
       OOA
        OOA模型由下列5个层次和5个活动组成。
        (1)5个层次:主题层、对象类层、结构层、属性层、服务层。
        (2)5个活动:标志对象类、标志结构、定义主题、定义属性、定义服务。
        在这种方法中定义了两种对象类之间的结构,一种称为分类结构,另一种称为组装结构。
 
       OOD
        OOA中的5个层次和5个活动继续贯穿在OOD过程中。OOD模型由4个部分和4个活动组成。
        4个活动是设计问题域部件、设计人机交互部件、设计任务管理部件、设计数据管理部件。
 
       对象建模技术
        对象建模技术(OMT)是一种面向对象的软件开发方法,它与传统的面向功能的方法截然不同。对象建模技术将事物的属性和方法封装形成对象,从对象和对象之间的关系的角度将系统文档化,这是面向对象分析和设计方法的基础。
        对象建模技术包括三种模型,即对象模型、动态模型和功能模型。对象模型是通过描述系统中的对象和对象之间的关系,标识类中的对象的属性和操作表组织系统的静态结构,是三种模型中最重要的模型,它为动态模型和功能模型提供了实质性框架。动态模型描述与时间操作和次序有关的系统属性,它关心的是控制,从事件和状态的角度描述系统的数据结构。功能模型从值和功能的角度描述系统的计算结构,它不考虑系统干什么或如何干。一个典型的软件肯定包含以下三种性质:使用数据结构(对象模型)、顺序执行操作(动态模型)、完成值的变化(功能模型)。这三种模型描述的是系统的不同方面,但各种模型之间又互相联系,对象模型描述了动态模型和功能模型中操作的数据结构,对象模型中的操作对应于动态模型中的事件及功能模型中的功能,而功能模型描述了对象模型中的对象唤醒和动态模型中行为唤醒的功能。
               几何建模
               几何建模是20世纪70年代中期发展起来的,它是一种通过计算机表示、控制、分析和输出几何实体的技术,是CAD/CAM技术发展的一个新阶段。
               以几何信息和拓扑信息反映结构体的形状、位置、表现形式等数据的建模方法称为几何建模。几何信息即指在欧氏空间中的形状、位置和大小,最基本的几何元素是点、直线、面。拓扑信息是指拓扑元素(顶点、边棱线和表面)的数量及其相互之间的连接关系。
               几何建模可以进一步划分为层次建模法和属主建模法。
               ①层次建模法利用树形结构表示物体的各个组成部分。例如,手臂可以描述成由肩关节、大臂、肘关节、小臂、腕关节、手掌、手指等构成的层次结构,而手指又可以进一步细分为大拇指、食指、中指、无名指和小拇指。在层次建模中,较高层次构件的运动势必会改变较低层次构件的空间位置。
               ②属主建模法让同一种对象拥有同一个属主,属主包含该类对象的详细结构。当要建立某个属主的一个实例时,只要复制指向属主的指针即可。每一个对象实例是一个独立的节点,拥有自己独立的方位变换矩阵。以木椅建模为例,木椅的四条凳腿有相同的结构,可以建立一个凳腿属主,每次需要凳腿实例时,只要创建一个指向凳腿属主的指针即可。
               图像建模
               图像建模技术是指通过相机等设备对物体进行拍照,利用计算机进行图形图像处理以及三维计算,从而全自动生成被拍摄物体的三维模型的技术,属于三维重建技术范畴。
               基于图像的建模和绘制(Image-Based Modeling and Rendering, IBMR)是当前计算机图形学界中一个极其活跃的研究领域。同传统的基于几何的建模和绘制相比,IBMR技术具有许多独特的优点。基于图像的建模和绘制技术提供了获得照片真实感的一种最自然的方式,IBMR技术可以使建模变得更快、更方便,可以获得更高的绘制速度和真实感。
               IBMR的最新研究已经取得了许多丰硕的成果,并有可能从根本上改变人们对计算机图形学的认识和理念。由于图像本身包含丰富的场景信息,自然容易从图像中获得照片般逼真的场景模型。基于图像建模的主要目的是由二维图像恢复景物的三维几何结构。由二维图像恢复景物的三维形体原先属于计算机图形学和计算机视觉方面的内容,由于它的广阔应用前景,如今计算机图形学和计算机视觉方面的研究人员都对这一领域充满兴趣。与传统的利用建模软件或者三维扫描仪得到立体模型的方法相比,基于图像建模的方法成本低廉、真实感强、自动化程度高,因此具有广泛的应用前景。此种方式操作简单、自动化程度高、成本低、纹理颜色真实感强、不受时空限制,如国内3Dcloud以云端形式运行,只要将照片上传至云端,即可全自动生成三维模型,主要应用于3D展示、3D打印、影视媒体、广告制作、虚拟现实等众多应用领域,加之成本较低等因素,其发展前景较好。
 
       建模
        建模是在计算机上创造三维形体的过程,建模是三维动画的基础,没有一个好的模型,其他好的效果都难以表现。三维建模的基本方法主要有:利用二维形体的技术、直接进行三维物体建模、造型组合等。
        利用二维形体进行建模的技术的主要思想是首先创建简单的二维形体,如样条线和形状等,然后对这些创建的二维形体进行挤压、旋转、放样等操作以创建三维造型。
        直接进行三维物体建模的常用方法有多边形建模、面片建模、NURBS建模等。
        造型组合是把已有的物体组合成新的物体,其中布尔运算是最重要的组合技术。
 
       建模技术
        制订进度计划时可能用到的建模技术包括:
        .假设情景分析。假设情景分析是对各种情景进行评估,预测它们对项目目标的影响(积极或消极的)。例如,推迟某主要部件的交货日期,延长某设计工作的时间,或加入外部因素等。可以根据假设情景分析的结果,评估项目进度计划在不利条件下的可行性,以及为克服或减轻意外情况的影响而编制应急和应对计划。
        .模拟。模拟技术基于多种不同的活动假设(通常使用三点估算的概率分布)计算出多种可能的项目工期,以应对不确定性。最常用的模拟技术是蒙特卡洛分析,它首先确定每个活动的可能持续时间的概率分布,然后据此计算出整个项目的可能工期的概率分布。
 
       软件系统
        网络系统软件包括网络操作系统和网络协议等。网络操作系统是指能够控制和管理网络资源的软件,是由多个系统软件组成,在基本系统上有多种配置和选项可供选择,使得用户可根据不同的需要和设备构成最佳组合的互联网络操作系统。网络协议是保证网络中两台设备之间正确传送数据的约定。
 
       统一建模语言
        UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
        在这个知识点,要求掌握UML的图形和类之间的关系,以及用例之间的关系。
               UML的图形
               UML2.0包括14种图,分别列举如下。
               (1)类图(Class Diagram):展现了一组类、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出了系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。
               (2)对象图(Object Diagram):展现了一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。
               (3)构件图(Component Diagram):展现了一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。
               (4)组合结构图(Composite Structure Diagram):它可以描绘结构化类(例如构件或类)的内部结构,包括结构化类与系统其余部分的交互点。它显示联合执行包含结构化类的行为的部件配置。组合结构图用于画出结构化类的内部内容。
               (5)用例图(Use Case Diagram):展现一组用例、参与者(一种特殊的类)及它们之间的关系。用例图给出系统的静态用例视图。这些图在对系统的行为进行组织和建模时是非常重要的。
               (6)顺序图和通信图:两者都是交互图。交互图(Interaction Diagram)展现了一种交互,它由一组对象或角色以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图(Sequence Diagram)是强调消息的时间次序的交互图;通信图(Communication Diagram)也是一种交互图,它强调收发消息的对象或角色的结构组织。顺序图和通信图表达了类似的基本概念,但每种图所强调的概念不同,顺序图强调的是时序,通信图则强调消息流经的数据结构。
               (7)状态图(State Diagram):展现一个状态机,它由状态、转移、事件和活动组成。状态图展现了对象的动态视图。它对于接口、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。
               (8)活动图(Activity Diagram):将进程或其他计算的结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图。它对系统的功能建模特别重要,并强调对象间的控制流程。
               (9),部署图(Deployment Diagram):展现了对运行时的处理结点及在其中生存的构件的配置。部署图给出了体系结构的静态部署视图,通常一个结点包含一个或多个部署图。
               (10)制品图(Artifact Diagram):展现了计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理位集合。制品图通常与部署图一起使用。制品也展现了它们实现的类和构件。
               (11)包图(Package Diagram):展现了由模型本身分解而成的组织单元,以及它们的依赖关系。
               (12)定时图(Timing Diagram):是一种交互图,它展现了消息跨越不同对象或角色的实际时间,而不仅仅只是关心消息的相对顺序。
               (13)交互概览图(Interaction Overview Diagram):是活动图和顺序图的混合物。
               用例之间的关系
               两个用例之间的关系可以概括为两种情况:一种是用于重用的包含关系,用构造型include或use表示;另一种是用于分离出不同行为的扩展关系,用构造型extend表示。
               (1)包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例很重要的部分功能时,应该使用包含关系来表示它们。
               (2)扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,则可以断定将这个用例分为一个主用例和一个或多个辅用例进行描述可能更加清晰。
               另外,用例之间还存在一种泛化关系。用例可以被特别列举为一个或多个子用例,这被称做用例泛化。当父用例能够被使用时,任何子用例也可以被使用。例如,购买飞机票时,既可以通过电话订票,也可以通过网上订票,则订票用例就是电话订票和网上订票的抽象。
               类之间的关系
               (1)关联关系。描述了给定类的单独对象之间语义上的连接。关联提供了不同类之间的对象可以相互作用的连接。其余的关系涉及类元自身的描述,而不是它们的实例。用“”表示。
               (2)依赖关系。有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。在UML中,使用带箭头的虚线“”表示依赖关系。
               在类中,依赖由各种原因引起,例如,一个类向另一个类发送消息;一个类是另一个类的数据成员;一个类是另一个类的某个操作参数。如果一个类的接口改变,则它发出的任何消息都可能不再合法。
               (3)泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类继承的,而父类则是子类的泛化。在UML中,使用带空心箭头的实线“”表示泛化关系,箭头指向父类。
               (4)聚合关系。聚合是一种特殊形式的关联,它是传递和反对称的。聚合表示类之间的关系是整体与部分的关系。例如一辆轿车包含4个车轮、一个方向盘、一个发动机和一个底盘,就是聚合的一个例子。在UML中,使用一个带空心菱形的实线“”表示聚合关系,空心菱形指向的是代表“整体”的类。
               (5)组合关系。如果聚合关系中表示“部分”的类的存在与否与表示“整体”的类有着紧密的关系,例如“公司”与“部门”之间的关系,那么就应该使用“组合”关系来表示这种关系。在UML中,使用带有实心菱形的实线“”表示组合关系。
               (6)实现关系。实现关系将说明和实现联系起来。接口是对行为而非实现的说明,而类之中则包含了实现的结构。一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。实现关系用“”表示。
               (7)流关系。流关系将一个对象的两个版本以连续的方式连接起来。它表示一个对象的值、状态和位置的转换。流关系可以将类元角色在一次相互作用中连接起来。流的种类包括变成(同一个对象的不同版本)和复制(从现有对象创造出一个新的对象)两种。用“”表示。
   题号导航      2025年上半年 系统分析师 下午试卷 论文   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
 
第4题    在手机中做本题