精华内容
下载资源
问答
  • 软件建模

    千次阅读 2018-06-20 12:50:08
    1、软件建模的三个层面: (1)计算无关模型(CIM) (2)平台无关模型(PIM) (3)平台相关模型(PSM),又称平台特定模型 从1到3,从抽象到具体 2、基于模型的软件开发生命周期 业务建模:计算无关模型,...

    1、软件建模的三个层面:
    (1)计算无关模型(CIM)
    (2)平台无关模型(PIM)
    (3)平台相关模型(PSM),又称平台特定模型
    从1到3,从抽象到具体

    2、基于模型的软件开发生命周期
    业务建模:计算无关模型,CIM
    需求:需求
    分析:平台无关模型,PIM
    设计:平台有关模型,PSM
    编码:代码

    3、软件建模方法:
    结构化方法 (Structured Method)
    面向对象方法(Object Oriented Method)
    基于构件的开发方法(Component Based Development)
    面向服务方法(Service Oriented Method)
    面向方面方法(Aspect Oriented Method)
    模型驱动开发方法 (Model Driven Development)
    形式化方法 (Formal Method)
    产品线开发方法和领域工程

    4、结构化方法
    核心: 自顶向下,逐步求精
    手段: 分解(模块化)、抽象
    任务:结构化分析、结构化设计、结构化编程
    常用建模工具:
    需求建模:
    DFD(数据流图)
    DD(数据字典)、ERD(实体关系图)
    STD(状态图)
    设计建模:
    概要设计:结构图(SC)
    详细设计:程序流程图、 N-S图、PAD图、伪代码
    结构化编程:三种经典程序结构

    5、面向对象方法
    面向对象=对象+类+继承+消息通信

    6、基于构件的开发方法
    (Component Based Software Development,CBSD)
    跨时间、跨空间、跨用户以及跨用户的共享
    异构协同工作、各层次集成、反复重用
    支持分布式计算与构件化集成、不同标准构件拼装
    CBSD具备:
    (1)用预先编程功能明确的部件定制而成,可用不同版本部件实现应用扩展;
    (2)系统分解为相互独立协同工作的部件,可反复重用;
    (3)利用统一的接口和标准实现跨平台的互操作。
    CBSD通过构造和组装可复用构件来开发一个新系统。
    抽象程度:
    面向对象方法,以类为封装单位,为类级重用;
    构件化方法,对一组类进行组合封装,通过接口将底层多个逻辑组合成高层次的新构件,可在代码级、对象级、架构级、系统级重用,实现定制组装软件。

    构件的概念:独立于特定平台和应用系统,具有标准接口,支持一定功能,可重用与自包含的软件构成部分。

    构件的类型:
    (1)按重用的方式
    白盒构件、灰盒构件、黑盒构件
    (2)按使用的范围
    通用构件、领域共性构件、应用专用构件
    (3)按粒度的大小
    小粒度,基本数据结构构件,如窗口、菜单等
    中粒度,如文本录入、查询、删除功能构件等
    大粒度,子系统构件,如文本编辑子系统、图形图像处理子系统等。
    (4)按用途
    系统构件,整个集成与系统环境中都使用的构件;
    支撑构件,在集成环境和构件管理系统中使用的构件;
    领域构件,专门领域开发的构件。
    (5)按构件结构
    原子构件,无需再分的最小基本单元;
    组合构件,由多个构件聚集而成。

    常用的构件标准:
    (1)CORBA
    CORBA(Common Object Request Broker Architecture),公共对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案。
    CORBA的三个层次:
    最底层:对象请求代理ORB,分布对象的定义(接口)和语言映射,实现对象间的通信和互操作,是分布式对象系统中的软总线;
    中间层:公共对象服务,提供并发服务、名字服务、事务服务、安全服务等;
    最上层:公共设施,定义了构件框架,提供直接由业务对象使用的服务,规定了协作规则。
    优点:大而全、互操作性和开放性好;
    缺点:慢

    (2)COM/DCOM/COM+
    COM(Component Object Model)提供了一个 Windows 平台上的对象通讯技术,并且逐渐成为应用程序之间彼此通讯及互动的技术主流。
    DCOM(Distributed COM) ,DCOM 解决了计算机的通信和互动技术,负责让 COM 组件可以在网络环境下持续提供服务。
    COM+把COM组件提升到应用层,把底层细节留给操作系统,使COM+与操作系统的结合更加紧密。COM+的底层结构仍然以COM为基础,但在应用方式上则更多地继承了MTS(Microsoft Transaction Server)的处理机制,包括MTS的对象环境、安全模型、配置管理等。
    COM+把COM、DCOM和MTS三者有机地统一起来,同时也新增了一些服务,如负载平衡、内存数据库、事件模型、队列服务等,形成一个概念新、功能强的组件体系结构,使得COM+形成真正适合于企业应用的组件技术。

    (3)Java EE和EJB
    Java EE(Java Platform,Enterprise Edition,J2EE)是sun公司推出的企业级应用程序版本,能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序。它提供Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0应用程序。
    EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。EJB 定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(Message Driven Bean)。

    (4)SCA
    服务组件架构(Service Component Architecture,简称SCA)
    以上三种构件互操作机制具有紧耦合的特征,难适应
    Intemet 开放、动态和多变的特征。
    面向服务架构(Service-Oriented Architecture,SOA),
    SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模。它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。
    SOA 和构件技术相结合,产生了服务组件架构(SCA), 目前业界主要的软件厂商大力推行的一种与实现语言无关的构件模型。组成系统的单元是粗粒度的服务构件,实现一个完整业务功能服务的单位。在系统建模阶段,系统模型中的SCA 构件实例与具体实现技术无关,是抽象概念的构件。

    基于构件的开发方法:
    (1)构件开发
    领域分析与设计
    构件设计与实现
    构件入库
    (2)构件管理
    组织、描述、分类、检索构件
    管理与维护构件库
    评估构件资产,不断改进
    (3)应用开发与组装
    基于构件的设计(基于构件的应用系统体系结构)
    构件组装
    系统测试与发布

    7、面向服务的方法
    Service Oriented Method
    服务、构件和类之间的关系:
    构件是业务实体的映射,服务是业务规划的映射。

    服务的特征:
    服务的抽象性(基于接口的编程)
    服务是实际程序、数据库、业务过程等软件实体的抽象了的逻辑视图。
    实现平台透明性
    服务的自治性(实现分布式应用)
    You don’t “new” a service – it’s just there.
    服务间的松耦合式绑定,基于标准化消息进行通信
    服务的自描述性(支持动态发现与延迟绑定)
    服务具有可发布、可发现、机器可处理的接口契约
    服务的粗粒度(支持基于业务逻辑的积木式装配)

    SOA模型:
    SOA架构基本的要求:
    (1)相对较粗的粒度上对应用服务或业务模块进行封装与重用;
    (2)服务间保持松散耦合,基于开放的标准, 服务的接口描述与具体实现无关;
    (3)灵活的架构 -服务的实现细节,服务的位置乃至服务请求的底层协议都应该透明;

    企业服务总线(Enterprise Service Bus,ESB)
    在SOA中还需要一个中间层,能够帮助实现在SOA架构中不同服务之间的智能化管理。这就是企业服务总线.
    ESB的主要功能是:
    1. 对各个服务之间消息监控与路由
    2. 解决各个服务组件之间通信
    3. 控制服务版本与部署
    4. 满足服务像事件处理,数据转换与映射,消息与事件查询与排序,安全或异常处理,协议转换,保证服务通讯的质量.

    面向服务软件开发SOAD
    业务建模
    服务分析
    服务设计

    服务分析
    (1)服务识别
    自顶向下分解:由业务需求驱动,设计服务。如果没有已有的软件服务相对应,就需要设计一个全新的服务。
    优点:业务流程中的业务服务和软件服务之间的交互是完全匹配的;
    缺点:可能对现有软件服务的利用率不高,因为识别出来的业务服务有可能与现有软件服务之间不能完全匹配。
    自底向上抽象:以现有服务驱动进行匹配
    优点:通过不断地将业务服务与已有的软件服务进行匹配,使得对已有软件服务能够进行最大限度的复用;
    缺点:可能会发现很多业务服务无法找到合适的现有服务进行匹配,导致需要新开发的服务数量变多。
    中间汇合,两头并行设计
    (2)服务粒度的确定
    以对业务的精确掌握和理解为基础,在性能、可维护性和随需应变之间进行平衡,选择适合的粒度进行服务的识别和划分。
    服务粒度太细会使得服务流程过于复杂,而且服务流程执行的效率也会降低很多;
    服务流程太粗会使得服务流程难以改动,从而使得随需应变无法实现。
    需要我们能够预判业务流程在将来有可能出现的变化,然后根据这种预判来设计服务的粒度。
    (3)服务的组织
    编制
    在流程中有一个作为流程中心的服务,它负责控制流程中其他参与交互的服务,协调服务间的消息传递。
    除流程中心服务之外的其他参与交互的服务。
    编排
    参与业务过程的Web服务之间是协作关系,为了实现一个业务流程,每一个参与其中的服务都需要明确地知道自己应该在什么情况下与哪些其他服务进行交互。

    面向服务建模所涉及的三个层面:
    (1)业务层面
    功能域:业务逻辑描述
    业务流程:业务逻辑编排
    业务服务:识别服务,产生业务服务集
    (2)服务层面
    根据业务流程和业务服务集设计软件服务集。
    (3)构件层面
    服务最终由构件实现的,在特定的开发语言与框架中进行设计,可将多个服务中的共用部分抽取出来构成通用的工具构件。
    通过面向服务的架构将多个相关但独立开发的应用系统集成。
    从底层构件层面向上,并从顶层的业务层面向下,最终在软件服务和业务服务的中间点会合,得到完整的设计方案。

    8、模型驱动开发
    软件生命周期以模型为载体并由模型转换来驱动的过程
    将软件的开发集中于模型而不是程序(代码)的一种开发方法

    • 从模型自动产生程序(代码)
    • 主要用来提高开发生产率和代码的可靠性

    OMG 定义模型驱动的体系结构(Model-Driven Architecture,简称MDA)的初衷

    • 定义一组标准来支持模型驱动的开发
    • UML 是 MDA 的基础之一

    9、模型驱动的软件开发(MDD)
    以模型为中心(相对于以代码为中心)的软件开发方法
    基于以下两种久经考验的技术
    (1)抽象:建模语言
    (2)自动化:建模工具

    MDD主要方法
    (1)可执行的UML(xUML)
    xUML =UML-语义较弱的元素+精确定义的动作语义
    (2)从PIM到PSM或代码的(半)自动生成
    通过标记、profile、OCL或者其他途径进行平台无关模型(PIM)的刻画,然后定义相关的转换规则来完成从平台无关模型到平台相关模型或代码的转换。
    (3)基于DSL的开发方法
    领域描述语言(Domain Specific Language,DSL)通过适当的表示方法和抽象机制来提供对特定问题领域的表述能力,DSL 常用来生成特定应用领域中的一个产品/应用家族的应用。

    OCL(Object Constraint Language),主要用于UML模型上施加的约束。

    10、形式化方法

    展开全文
  • 软件建模和UML

    千次阅读 2020-05-19 09:56:53
    1、软件建模的原则? 从不同的视角,选取最显著的特征,可以建立出不同的模型。 主要有四种视角: 外部视角:对软件所处上下文环境进行建模。 交互视角:对软件的各个构件之间交互进行建模。 结构化视角:对软件...

    如果要建造一个高楼大厦,首先要做的肯定不是先去买所需的材料,而是需要对建筑物的大小,形状和样式建立一个模型,设计相应的图纸。而软件同样也需要建模。

    1、软件建模的原则?

    从不同的视角,选取最显著的特征,可以建立出不同的模型。
    主要有四种视角:
    外部视角:对软件所处上下文环境进行建模。
    交互视角:对软件的各个构件之间交互进行建模。
    结构化视角:对软件处理数据的结构进行建模。
    行为视角:对软件如何响应事件进行建模。

    2、软件建模工具?

    既然软件建模是一个高楼大厦的“设计前提”,那么用什么来建模呢? 比较通用的就是:UML(Unified Modeling Language)统一建模语言。
    UML是面向对象开发中一种通用的图形化建模语言。它有如下特点:
    1、统一标准:支持统一的标准(被OMG所认定的建模语言标准)
    2、面向对象:可以按照面向对象的概念,简明的表达。
    3、可视化:UML是一种可视化的建模语言,可以更清晰的表示系统的逻辑模式和实现模型。
    4、独立于过程:建模的阶段是独立于开发过程的。
    5、独立于程序设计语言:UML是针对面向对象的建模语言,对于JAVA、C++、Smalltalk都可用,独立于实现语言。
    6、易于掌握:UML图形结构清晰,容易掌握。

    3、UML的基本概念:

    事物:是UML中重要的组成部分,是UML模型中最基本的面向对象的构造块。它们在模型中属于最静态的部分,代表概念上或物理上的元素。
    关系:把事物紧密联系在一起。
    图:是很多有相互相关的事物的组。

    具体可以下载:https://download.csdn.net/download/jjs15259655776/12435938

     

    更多内容请关注微信公众号“外里科技

    官方公众号 外里科技
    运营公众号 英雄赚
    微信 wxid_8awklmbh1fzm22
    QQ 1247408032
    开源代码 https://gitee.com/B_T/beimi

     

    展开全文
  • 好久没有写写新东西了,最近闲下来了,看了一本名叫《URL与软件建模》这边书,感觉里面讲的不错,现在将我学习到的东西和大家做一个简单的分享。 横竖都是写,建模和不建模有什么区别呢?如果你是一个资深的软件...

    好久没有写写新东西了,最近闲下来了,看了一本名叫《URL与软件建模》这边书,感觉里面讲的不错,现在将我学习到的东西和大家做一个简单的分享。

    横竖都是写,建模和不建模有什么区别呢?如果你是一个资深的软件开发人员,也许你对建模的好处深有体会,下来我们就来先讲讲建模的好处:

    模型是现实系统的简化。建模是对现实系统进行适当的过滤,用适当的表现规则描绘出简洁的模型。通过模型,人们可以了解到所研究事物的本质,而且在形式上便于人们对之进行分析和处理。UML(统一建模语言)是一种通用的建模语言,它获得了工业界和学术界的广泛支持,目前已经成为建模语言的标准。

    1.1那么什么是模型呢?

    模型是现实系统的简化,它是抓住现实系统的主要方面而忽略次要方面的一种抽象。因此,模型即反映了现实系统,又不等同于该现实系统。模型是理解、分析、开发或改造现实系统的常用手段。模型和现实系统之间的关系如下:

    由于人们对复杂性的东西认识有限,因此系统设计者在系统设计之初往往无法完全理解整个系统。此时人们就需要将系统建模。现实生活中也是如此,再建造一个大楼的时候往往要先画设计图纸。建模可以使设计者能够从全局把握系统及内部的联系,而不至于陷入每个模块的细节之中。模型可使具有复杂关系的信息简单易懂,使人们容易洞察复杂堆砌而成的原始数据背后的规律,并能够有效的人们将系统需求映射到软件结构上。具体而言,模型的作用如下:

    (1)模型可以促进项目有关人员对系统的理解和交流。模型对于问题的理、项目有关人员(客户、领域专家、分析人员和设计人员等)之间的交流、文档的准备以及程序和数据库的设计等都非常有益。模型可使得人们直接研究一个大型的复杂软件系统。建模促使人们对需求的理解,从而可得到更清楚的设计,进而得到更容易维护的系统。

    (2)模型有助于挑选出代价较小的解决方案。再研究一个大型系统的软件模型时,人们可以提出多个实际方案并对它们进行比较,然后挑选一个最好的解决方案。

    (3)模型可以缩短开发周期。模型实际上是通过过滤掉一些不必要的细节而刻画复杂问题或者结构的必要特效的抽象,它使得问题更容易理解。有了模型之后,软件系统的开发就会变的较快,同时也降低了系统的开发成本。

    为了建立复杂的系统,开发人员必须先抽象出不同的视图,并用精确的表示法来建立模型,最后在模型转换为实现中逐渐添加细节。如右图所示,表示法、过程和工具是成功建模的3要素,三者缺一不可。如果建模人员了解表示法的含义,但不知道如何使用这些表示法(过程),那么最终有可能会失败;如果建模人员知道建模的过程,但不知道各个表示法的含义,那么最终也可能会失败;如果建模人员不能借助工具记录下建模过程所得的各制品,那么最后还是有可能会失败。

    1.2面向对象的软件开发

    在面向对象的程序设计方法出来之前,传统的设计方法大都是面向过程的(少数是面向数据结构的)。面向过程的程序设计结构清晰,它是历史上为缓解软件危机做出了贡献。面向过程的程序设计方法是以功能分析为基础的,它强调自顶向下的功能分解,并或多或少的对功能进行分离。换言之,在采用这种方法开发系统时,不管是在模型设计中还是在现实系统实现中,数据和操作都是分开的。对用这种设计方法设计出的系统而言,模块独立性较差,模块之间的耦合度较高,对一个模块的修改可能会造成很多其它模块功能上的改变。因此,系统的理解和维护都存在一定的难度。具体而言,面向过程的程序设计方法存在如下问题:

    (1)操作和数据分离的软件设计结构和人类(所认识)的现实环境很不一样,和人的思维方式不相一致。因此,人们对现实世界的认识与程序之间设计之间存在一道理解上的鸿沟。

    (2)系统是围绕着如何实现一定行为来进行的,当系统行为易变,需要常常修改时,修改工作颇为困难。因为这类系统的结构是基于上层模块必须掌控和控制下层模块工作的前提的,因此在底层模块变动时,常常会迫不得已改一些上层模块,而这种一系列的上层模块的修改不是当时变动底层模块的目的。同样,在需要修改上层模块时,新的上层模块也需要了解它的所有下层,编写这样的上层模块当然颇为困难。所以,这种结构无法适应迅猛变化的技术发展。

    (3)在系统中模块之间的控制作用有重要的影响时(亦即在实际的控制发生的根源来自分散的各个模块之中时),由于在“良好的模块结构”中的模块间的控制作用只能通过上下之间的关系调用关系来执行,这样会造成信息路径过长,效率低,易受干扰甚至出现错误。如果允许模块间为进行控制而直接进行通信,那么结果是系统总体结构混乱,从而难于维护。所以,这种结构是无法适应以控制关系为重要特性的系统要求的。

    (4)用这种方法开发出来的系统往往难于维护,主要原因是所有的函数都必须知道数据结构。许多不同的数据类型的数据结构之间只有细微的差别。在这种情况下,函数中常常充满了条件判断,它们与函数的功能毫无关系,只是因为数据结构的不同而不得不使用他们,结果使得程序变的非常难读。

    (5)自顶向下功能分解的分析方法大大的限制和降低了软件的易用性,导致对同样对象的大量重复性操作,从而降低了开发人员的生成率。

    面向对象设计方法是对面向过程设计方法强有力的补充。面向对象的设计的方法是一种新型、实用的程序设计方法,它强调数据的抽象、易扩展性和代码复用等软件工程原则,特别有利于大型、复杂软件系统的生成,因而被称为20世纪90年代的“结构化程序设计方法”。该方法的主要特征在于支持数据抽象、封装、继承等概念。借助数据抽象和封装,可以抽象的定义对象的外部行为而隐藏其实现细节,从而达到规约和实现的分离,有利于程序的理解、修改和维护。对系统原型速成和有效实现大有帮助;支持继承则可以在原有的代码上构建新的软件模块,从而有利于软件的复用。在采用面向对象的程序设计方法开发系统时,系统实际上是由许多对象构成的集合。图1-3形象的描绘了结构化程序的和面向对象程序之间的主要差别。

    面向对象程序设计语言可以直接、充分的支持面向对象程序设计方法,从而称为软件开发的有力工具。在面向对象程序语言设计当中,对象由属性和方法封装而成。对象的行为通过操作展示,外界不可以直接访问其内部属性,操作的实现对用户透明。消息的传递是对象间唯一的交互方式,对象的创建和对象中操作的调用通过消息传递来完成。类是对具有相同内部状态和外部行为对象结构的描述,它定义了表示对象状态的实例变量集和表示对象变量的方法集。类是待创建对象的模板,而对象则是类的实例。子类可以继承父类的的实例变量和方法,同时还可以定义新的变量和方法。对象的分装性降低了对象间的耦合度,从而使得程序的理解和修改变的容易。类之间的继承机制使得易于在现有代码基础上为系统增加新的功能。总之,可以把面向对象模型看作是一个由如下主要元素构成的概念框架:

    • 抽象
    • 封装性
    • 模块化
    • 层次性
    • 并发性
    • 类型化
    • 持久化
    • 易复用性
    • 易扩展性
    • 动态绑定
    面向对象的软件开发方法涉及从面向对象分析(OOA)-->面向对象设计(OOD)-->面向对象程序设计和编码(OOP)-->面向对象测试(OOT)等一系列特定阶段。面向对象设计方法期望获得一种独立于语言的设计和描述,以求达到从客观世界中的事物原型到软件系统间的的尽可能的平滑过渡。
    面向对象的方法把功能和数据看作是高度统一的,其优点主要有:
    (1)它能较好的处理软件规模和复杂性不断增加所带来的问题。
    (2)它更适合于控制关系复杂的系统。
    (3)面向对象系统通过对象间的协作来完成任务,因而更容易管理。
    (4)它使用各种直接模仿应用域中实体的抽象和对象,从而使得规约和设计更加完整。
    (5)它围绕对象和类进行局部化,从而提高规约、设计和代码的易扩展性、易维护性和易复用性。
    (6)简化了开发者的工作,提高的软件和文档的质量。
    当开发人员正确的使用了面向对象开发方法时,就能够有效的降低软件开发的成本,提高系统的易复用性、易扩展性、易维护性和易理解性。
    1.3  面向对象的软件建模
    面向对象建模语言起始于20实际70年代中期。从1989年到1994年,其数量从不到10种迅速增加到50多种。各种建模语言的设计者都努力推崇自己的语言产品,并在实践中不断完善。然而,OO(面向对象)方法的用户并不了解不同建模语言的优缺点以及相互之间的差异,因而很难根据应用 的特点选择合适的建模语言。于是,爆发了一场“方法大战”。
    Booch是面向对象方法最早的倡导者之一,它提出了面向对象软件工程的概念。1991年,它将以前所进行的面向Ada的工作扩展到整个面向对象设计领域。1993年,Booch对其之前的方法做了一些改进,使之适合系统的设计和构造。Booch在其OOAda中提出了面向对象的4个模型:逻辑视图,物理视图以及其相应的静态和动态语义。对逻辑结构的静态视图,OOAda提供提供对象图和类图;对逻辑结构的动态视图,OOAda提供的状态变迁图和交互图;对于物理结构的静态视图,OOAda提供了模块图和进程图。
    Jacobson于1994年提出了面向对象的软件工程(OOSE)方法,该方法的最大特点就是面向用案(User Case)。OOSE是由用案模型、域对象模型、分析模型、设计模型、实现模型和测试模型组成的。其中用案模型贯穿于整个开发过程,它驱动所有其它模型的开发。
    Rumbaugh等人提出了OMT方法。在OMT方法中,系统是通过对象模型、动态模型和功能模型来描述的。其中,对象模型用来描述系统中各对象的静态结构以及它们之间的关系;功能模型描述系统实现什么功能(即捕获系统所执行的计算),它通过数据流图来描述如何由系统的输入值得到输出值。功能模型只能够指出可能的功能计算路径,而不能确定哪一条路线会实际发生。动态模型则描述系统在何时实现其它功能(控制流),每个类的动态部分都是由状态图来描绘的。
    Coad和Yourdon提出了OOA/OOD方法。一个OOA模型由主题层、类及对象层、结构层、属性层和服务层组成。其中,主题层描绘系统的划分。类和对象层描述系统中的类和对象,结构层捕获类和对象之间的继承关系及整体-部分的关系,属性层描述对象的属性属性和类及对象之间的关联关系,服务层描述对象所提供的服务(即方法)和对象的消息链接。OOD模型由人机交互(界面)构件,问题域构件,任务管理构件和数据管理构件组成。
    Fusion自认为是“第二代”开发方法。它是在OMT方法、Objectory方法、形式话方法、CRC方法和Booch方法的基础上开发的。面向复用/再工程以及基于复用/再工程的需求开发是Fusion的一大特点。Fusion方法中用于描述系统设计和分析的图形虽然不多,但较全面。Fusion方法将开发过程划分为分析、设计和实现3个阶段,每个阶段由若干步骤组成,每一步骤的输出都是下一步骤的输入。
    OL是Shlaer/Mellor重新修订其先前开发的面向对象系统分析方法(OOSA)后所得到的一种建模方法。OL方法中的OOA使用了信息建模,状态建模和进程建模技术。OOD中使用类图、类结构图、依赖图和继承图对系统进行描述。
    Martin与Odell提出的OOAD方法的理论基础是逻辑和集合论。尽管面向对象的分析通常被划分成结构(静态)和行为(动态)两部分,但Martin与Odell的OOAD却试图将它们集成在一起。它们认为面向对象分析的基础应该是系统的行为,系统的结构通过对系统行为的分析而得到的。
    1.4  统一的建模语言(UML)

    UML是一种定义良好的、易于表达的、功能较强的且普遍适用的建模语言。它吸收了软件工程领域的新思想,新方法和新技术。UML的应用领域相当广泛,它不仅可以用于建立软件系统的模型,同样也可以描绘非软件领域内的系统模型以及处理复杂数据的信息相同、具有实时要求的工业系统或工业过程等。

    作为一种通用的建模语言,UML适用于系统开发过程中从需求规约描述到系统完成后测试的不同阶段。目前,UML已经成为建模语言上的工业标准。

    1.4.1 发展历程

    在UML问世之前,已经有不少人试图将各种建模方法中的不同概念进行统一。其中Coleman和他的同事们曾努力统一OMT、Booch、CRC方法中的概念。但由于这些方法的原作者没有参与到这项工作,其最后的结果是得到了一种新的建模方法,如图1-4所示。UML语言开发始于1994年8月,当时Rational软件公司的Booch和Rumbaugh着手进行统一的Booch方法和OMT方法,以便以后得到一种统一的建模语言。1995年10月,他们发布了统一方法(UM)的初级版本。同年秋天,Jacobson加盟联合开发小组,并力图把OOSE方法也统一进来。

    做为Booch、OMT(对象建模技术)和OOSE方法的创始人,Booch、Rumbaugh和Jacobson决定开发UML有3个原因:首先,这些方法有很多相似之处,消除它们给使用者造成的混淆是非常有意义的;其次,语义和表示法的统一可稳定面向对象技术的市场,使得开发工程能采用一种成熟的建模语言;再次,统一工作可吸收先前各种建模方法中的优秀成果,以便解决以前没有解决好的问题。

    Booch、Rumbaugh和jacobson在着手统一工作时,制定了如下4个目标:

    (1)使用面向对象的概念来构造系统的模型。

    (2)建立设计框架和代码直接的明确关系。

    (3)解决复杂的、以任务为中心的系统内在的规模问题。

    (4)开发人与机器的通用的建模语言。

    开发应用于面向对象的分析和设计的表示法并不像设计一种程序设计语言那么简单。首先,设计者要考虑表示法是不是应该能够表达系统的开发需求,是不是要把表示法设计成形象化的语言。其次,设计者需要在表达能力和简洁程度之间做出权衡,即过于简单的表示法会限制应用的范围,而过于复杂的表示法又会吓到刚入门的使用者。如果设计者是在统一已有的一些方法,那么还要照顾到过去的基础,即改变过多会使原来的使用者感觉到混乱,不作改进,又难以吸引更多的使用者。UML的定义力图在这几个方面权衡利弊。

    经过Booch、Rumbaugh和Jacobson的不懈努力,UML0.9和0.91版终于在1996年的6月和10月出版。1996年间,UML开发者们向各界虚心求教并收到来自社会各界的反馈。他们据此做了相应的改进,但显然还有许多工作需要完成。同年,OMG(对象管理组)发布了向外界征集关于面向对象建模标准方法的消息。UML的3位创始人开始与来自其它公司的软件工程方法专家和开发人员一道制定了一套OMG感兴趣的方法,并设计了一种被软件开发工具提供者、软件开发方法学家和开发人员这些最终用户接受的建模语言。于此同时,其它一些相关人员也在做这项富有竞争性的工作。1997年9月1日产生了UML1.1,并提交到OMG进行讨论。

    OMG于1997年11月正式接纳了UML1.1,然后成立任务组不断的修订,并产生了UML1.2、1.3和1.4版本,其中UML1.3是较为重要的修订版本。目前,该组织正在对UML进行重大修订,其目标是推出UML2.0,做为向ISO提交的标准方案。许多软件开发工具供应商声称他们的产品支持或计划支持UML,软件工程方法学家们也宣布他们将使用UML的表示法进行以后的研究工作。UML的出现深受计算机界的欢迎,因为它是由官方出面集中了许多专家的经验而形成的,减少了各种软件开发工具之间无谓的分歧。建模语言的标准化既能促进软件开发人员广泛使用面向对象的建模技术,同时也能带来UML支持工具的培训市场的繁荣,因为不论是用户还是供应商都不用再考虑到底应该采用哪一种开发方法。

    总之,UML作为一种建模语言,它具有一下几个特点:

    (1)UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。它实际上是一种通用的建模语言,可以为许多面向对象建模方法的用户广泛使用。

    (2)UML建模能力比其它面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。

    (3)UML是一种建模语言,而不是一个开发过程。

    1.4.2   基本组成

    UML是在Booch、OMT、OOSE等面向对象的方法极其它许多方法与资料的基础上发展起来的。UML不仅包含了许多人员的不同观点,而且也受到了非面向对象的影响。UML表示法集中了不同的图形表示方法,剔除了其中容易引起的混淆、冗余或者很少使用的符号,同时添加了一些新的符号。其中的概念来自于面向对象技术领域中众多专家的思想。其中的大部分观点并不是其开发者自己提出来的,他们的工作在很大程度上只是将优秀的面向对象建模方法加以选择和综合。

    UML从考虑系统的不同角度出发,定义了用案图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等9种图。这些图从不同的侧面对系统进行描述。系统模型将这些不同的侧面综合成一致的整体,便于系统的分析和构造。尽管UML和其它开发工具还会设计出许多派生的视图,但上诉这些图和其它辅助性的文档是软件开发人员所见的最基本的构造。其中:

    • UML用案图与OOSE中的用案图类似。
    • UML的类图综合了OMT、Booch等面向对象方法中的类图。
    • UML状态图是对David Harel所提出状态图的改进。
    • UML活动图的基本语义和状态图大致相同,它类似于许多方法(包括面向对象技术之前的一些方法)中的工作流图,
    • UML的协作图是通过对Booch方法的对象图、Fusion方法的对象交互图以及其它一些方法中的相关图表改造而成的。
    • UML的构建图和部署图是在Booch方法中的模块和进程图(处理关系图、处理器图)的基础上发展起来的。

    UML简化了建模方法,它扬弃了Booch、OMT或OOSE等方法中的糟粕,而代之以其它方法中的精华。UML一般不引入新的概念和符号,只有在没有现有的解决方法可以借鉴时,UML的开发者们才考虑加入新的概念。UML的开发者们是在设计一种语言(尽管只是一种图形化语言),因此必须在简明(所有元素一律用方框和文字表示)和繁琐(为每个元素设计单独的符号)之间权衡。尽管如此,UML中还是增添了衍型和扩展机制等一些新的元素,因为这些元素在其它建模语言的实践中已经证明是非常有用的。

    1.4.3  建模能力的比较

    UML并没有从根本上脱离Booch、OMT、OOSE等方法,而是对这些方法有批判的继承。这就意味着,如果目前的读者是一位Booch、OMT或OOSE的使用者,那么你所接受的培训、工作经验和所偏好的开发工具都可以继承与保留下来,因为UML是对这些方法的延续。对于其它方法的使用者来说,UML同样也很容易被接受。与Booch、OMT、OOSE等其它方法相比,UML具有表达能力更强、更清晰和一致的优点。因为UML消除了各种方法在表示法和术语上不必要的差异,而正是这些差异隐蔽了不同方法之间的相似之处。

    Booch等著的UML USER Guide一书从结构建模、行为建模和体系结构建模3个方面给用户提供的具体的指南。为了突出UML与其它建模方法在建模能力上的差异,下面用3个表从结构建模,行为建模,体系结构建模3个方面对它们进行详细的比较。表格中使用的各种符号含义如下:

    √----该概念存在于所指定的方法中。如果概念名字不一样,就在括号中注明。

    ×----所指定的方法中不存在该概念。

    ~----有一些相似之处。

    ?----不清楚所指定的方法中是否存在该概念。

    表1-1为结构建模表,其中设计到的概念有类、属性、操作、关系、依赖、泛化、关联、角色、多重性、聚合、注释、约束和类图。图1-2为行为建模表,其中涉及的概念有消息、链接、顺序、创建、修改和撤销、序列图、协作图、用案图和活动图等等。表1-3为体系结构建模表,其中主要涉及的概念主要有构建和部署图。


    从表1-1可以看出,各种建模方法都支持类,类图和关系等概念,其差别只在于表示符号不一样,这样可以用UML提供的标准符号来解决。从表1-2可以看出,各建模方法对动态建模的支持程度不经相同,但它们之间的差别是无关紧要的,因为UML提供的动态建模设施非常的丰富,足矣解决此问题。从1-3表中可以看出,各建模方法中并没有UML中的许多体系结构概念,其原因是这个概念比较新,因此,UML考虑了先前许多建模方法中都没有考虑的问题。

    总结:

    本节主要介绍了面向对象软件建模的方法。UML是一种良好定义的、易于表达的且功能颇强的建模语言,它吸收了软件工程领域内的新思想、新方法和新技术。UML的出现结束了“方法之战”,消除了面向对象技术早期时代中所面临的符号、术语以及语义上的混乱,UML已经被对象管理组织(OMG)采纳为面向对象建模标准。

    UML很适合用于以体系结构中心的、用案驱动的、迭代式和渐增式的软件开发过程,目前已经在各个领域内得到广泛应用。


    转载请注明出处:http://blog.csdn.net/fwj380891124/article/details/8308349



    展开全文
  • UML面向对象软件建模复习题库

    万次阅读 2020-12-08 11:27:59
    UML软件建模复习题前五章 第一章自测 1 [ 单选题 ]开发人员说“根据客户的需求,我们的系统分为销售子系统、库存子系统、财务子系统……”,这句话反映了开发人员可能有什么样的认识错误? A) 开发人员没有认识...

    UML软件建模复习题前五章

    第一章自测
    在这里插入图片描述
    在这里插入图片描述
    1 [ 单选题 ]开发人员说“根据客户的需求,我们的系统分为销售子系统、库存子系统、财务子系统……”,这句话反映了开发人员可能有什么样的认识错误?
    A) 开发人员没有认识到面向对象设计的重要性
    B) 开发人员直接从设计映射需求
    C) 开发人员直接从需求映射设计
    D) 开发人员没有用UML模型来描述子系统

    2 [ 单选题 ]打开开发人员写的需求规约,发现用例的名字都是“学生管理”、“题库管理”、“课程管理”……,这背后可能隐藏的最大问题是什么?
    A) 用例的名字不是动宾结构,应改为“管理学生”……
    B) 用例粒度太粗,每一个应该拆解成四个用例,“新增学生”、“修改学生”……
    C) 开发人员直接从需求映射设计
    D) 开发人员直接从设计映射需求

    3 [ 单选题 ]以下这些经常在开发团队里使用的词汇,都是不严谨的。其中_______混淆了需求和设计的区别。
    A) 功能模块
    B) 详细设计
    C) 用户需求
    D) 业务架构

    4 [ 单选题 ]以下描述最可能对应于软件开发中的哪个工作流?
    每个项目由若干活动组成,每项活动又由许多任务组成。一项任务消耗若干资源,并产生若干工件。工件有代码、模型、文档等。
    A) 业务建模
    B) 需求
    C) 分析
    D) 设计

    5 [ 单选题 ]以下描述最可能对应于软件开发中的哪个工作流?

    A) 业务建模
    B) 需求
    C) 分析
    D) 设计

    6 [ 单选题 ]以下描述最可能对应于软件开发中的哪个工作流?
    系统向会员反馈已购买商品的信息。
    A) 业务建模
    B) 需求
    C) 分析
    D) 设计

    7 [ 单选题 ]以下描述最可能对应于软件开发中的哪个工作流?
    某集团向优马神州经理提出举办讲座的请求后,经理根据请求决定请哪一位专家,并拟定讲座计划,交给组织工作人员执行。组织工作人员根据经理提供的专家资料通过Email、电话等各种方式联系专家,和专家商议讲座的时间和主题。
    A) 业务建模
    B) 需求
    C) 分析
    D) 设计

    8 [ 多选题 ]如果问开发人员“你在做什么”,他说“我在写文档”,那么他有可能:
    A) 不了解软件开发各工作流的区别
    B) 把自己的工作简单分为“代码”和“文档”
    C) 认为文档就是代码的叙述性文件
    D) 知道“文档”和“代码”的真正区别是什么

    9 [ 单选题 ]以下说法和其他三个最不类似的是:
    A) 如果允许一次走两步,新手也能击败象棋大师
    B) 百米短跑比赛才10秒钟,不可能为每一秒做周密计划,凭感觉跑就是
    C) 即使是最好的足球队,也不能保证每次进攻都能进球,所以练习传球配合是没用的,不如直接大脚开到对方门前
    D) 虽然大家都考不及格,但考58分和考42分是不一样的

    《软件方法》第1章自测题3

    1 [ 单选题 ]UML三友是哪三位?
    A) Messi、Neymar JR和Luis Suárez
    B) Luciano Pavarotti、Placido Domingo和Jose Carreras
    C) Martin Fowler、Kent Beck和Alistair Cockburn
    D) James Rumbaugh、Grady Booch和Ivar Jacobson

    2 [ 单选题 ]以下不属于OOAD方法学的是:
    A) Booch方法
    B) Demarco方法
    C) Rumbaugh OMT
    D) Coad/Yourdon方法

    3 [ 单选题 ]以下不属于UML图形的是:
    A) 流程图
    B) 状态机图
    C) 序列图
    D) 通信图

    4 [ 多选题 ]以下不属于本书推荐常用的UML元素的是:
    A) 用例图
    B) 组件图
    C) 序列图
    D) 类图

    5 [ 单选题 ]以下不是UML工具的是:
    A) Enterprise Architect
    B) DOORS
    C) Astah
    D) MagicDraw
    E) Plato
    F) Rhapsody

    6 [ 单选题 ]一些开发人员更喜欢画“草图”,然后说“来!我给大家讲讲”,深层原因是:
    A) 这样更敏捷,现在流行“敏捷”
    B) 草图更自由,有发挥的空间
    C) 想通过形式的粗陋遮掩内容的粗陋
    D) 亲身讲解胜过模型文档交流

    7 [ 多选题 ]经常被当作“偷懒庇护所”的说辞有:
    A) 软件开发是艺术,艺术是没有道理可讲的
    B) 我们敏捷了

    C) 建模带来竞争优势
    D) 不管用什么方法,把项目做成功就是好方法

    8 [ 单选题 ]以下软件开发名人中,和前央视主持人小崔(崔永元)同龄的是:
    A) Martin Fowler
    B) Kent Beck
    C) Ivar Jacobson
    D) Peter Coad
    E) James Rumbaugh
    F) Grady Booch

    9 [ 单选题 ]以下说法正确的是:
    A) 在项目中可以只挑选一部分UML元素来使用
    B) UML模型的最佳案例就是建模工具附带的例子
    C) 团队引进UML时,努力达到的最终目标应该是完整应用所有的UML元素
    D) UML是软件开发人员和客户之间沟通的绝佳工具

    10 [ 单选题 ]以下说法正确的是:
    A) 功能很少的系统不需要建模
    B) 类很少的系统不需要建模
    C) 市场上已经有很多现存产品的系统不需要建模
    D) 不参加竞争的系统不需要建模

    第二章测试题

    1 [ 单选题 ]一家航空公司把自己定位为“低价的快乐航空”,那么以下做法不合适的是:

     A) 不提供机上餐饮,只提供花生米和水

     B) 在机舱里撒彩纸屑庆祝乘客生日

     C) 模仿唐老鸭的嗓音讲解乘机规则

     D) 所有飞机用同种机型

    2 [ 单选题 ]以下是一位初中数学老师某天的工作描述。

    6:45-7:10 坐K566公交到学校

    7:10-8:00 挑出一些几何课的图,交代课代表在黑板上先画好,整理教学工具、课件U盘

    8:10-8:50 上午第一节课(3班几何)等腰梯形,导入课程,内容展开

    9:00-9:40 上午第二节课(3班几何)等腰梯形,巩固练习,小结,布置作业,抽空批改之前作业

    9:40-10:10 课间休整

    10:10-10:50 上午第三节课(4班几何)等腰梯形,导入课程,内容展开

    11:00-11:40 上午第四节课(4班几何)等腰梯形,巩固练习,小结,布置作业,抽空批改之前作业

    11:40-13:00 午餐、午休

    13:00-14:30 批改作业。课代表送作业上来,摊开摞好,一本本批改,给分

    如果做一个系统改善该老师的工作,这个系统最应该提供的功能是:

     A) 把书上的图复制到黑板上,动态添加和清除辅助线。

     B) 扫一下作业自行给出得分。

     C) 统计作业和测试情况。

     D) 信息不足,看不出来。
    学习通选B

    3 [ 单选题 ]请把左侧功能类似的不同软件系统和右侧不同的老大画线对应。

    1 微信 a 发达公司销售总监侯总

    2 QQ b 意见领袖任大炮

    3 微博 c 武汉市滑坡路小学学生黄艺博

    A) 1-a,2-b,3-c

    B) 1-a,2-c,3-b

    C) 1-b,2-a,3-c

    D) 1-b,2-c,3-a

    E) 1-c,2-a,3-b

    F) 1-c,2-b,3-a

    4 [ 单选题 ]请把左侧功能类似的不同软件系统和右侧不同的老大画线对应。

    1 Rational Rhapsody a 青华大学软件专业学生王思葱

    2 Enterprise Architect b 生产战斗机的LoMa公司研发总监Pony Ma

    3 StarUML c 生存下来进入发展期的京西购物网研发总监李总

    A) 1-a,2-b,3-c

    B) 1-a,2-c,3-b

    C) 1-b,2-a,3-c

    D) 1-b,2-c,3-a

    E) 1-c,2-a,3-b

    F) 1-c,2-b,3-a

    5 [ 单选题 ]研发部要添加一名C#程序员,由人力资源部负责出面招人,请问针对这名C#程序员(一个人脑编程系统),老大是:

    A) 人力资源部经理

    B) 研发部经理

    C) 公司总经理

    D) C#程序员

    6 [ 单选题 ]一款“微信多开”app,可以允许同一台设备开多个微信。以下对该app的老大定位最贴切的是:

    A) 微信用户张大龙

    B) 山水集团董事长高小琴

    C) 阿尔法公司销售经理郑乾

    D) “微信多开”app研发团队领导张多龙

    7 [ 单选题 ]如果有一位程序员告诉您说“我在做一个Python项目”,这时您应该想到:

     A) 他可能从自己的角度定义所做的项目

     B) Python怎么这么火,我也要学

     C) 编程语言背后的道理是一样的

     D) 还是我做的Java需求量大

    《软件方法》第2章自测题2

    1 [ 单选题 ]1999年11月的《财富》杂志题为“20世纪企业家”的文章,评选出了最能代表20世纪企业家精神的企业家─福特汽车的Henry Ford。另外三位候选人是通用汽车的Alfred Pritchard Sloan Jr.、IBM的Thomas John Watson Jr.和微软的William H. Gates Sr.。
    请问,按照本书对愿景的定义,Henry Ford以下哪句话最像福特汽车公司的愿景?
    A) 让每个家庭都拥有一辆汽车。
    B) 让普通大众更经常和家人去兜风。
    C) 尽可能提高质量,尽可能降低成本,尽可能提高薪水。
    学习通A

    2 [ 单选题 ]某年某月的某一天,祁同伟厅长给赵东来局长下了指示“东来啊,我们要加强对扫黄工作的管理”。作为一名需求人员,想要用本章知识剖析祁同伟厅长的指示,最应该做的是:
    A) 针对“强”揣摩祁同伟的度量指标。
    B) 置之不理,祁同伟不是老大。
    C) 针对“黄”揣摩祁同伟的度量指标。
    D) 仔细查阅扫黄的有关法规,严格执行。

    3 [ 单选题 ]做一个研发部内部使用的“统一开发平台”,以下长得像愿景的是:
    A) 建立一个统一开发平台
    B) 为公司赚取更多的利润
    C) 提高代码复用率
    D) 开发人员可以在平台上开发软件

    《软件方法》第3章自测题1

    1 [ 单选题 ]卖饮料有不同吆喝方法,对应了软件开发的工作流,请为以下a) b) c)找出合适的对应选项。
    a)男程序员快来买啊!我可以喝,而且味道不错,保质期又长,便于携带……
    b)男程序员快来买啊!喝了我,老板月月给你加薪,美女疯狂倒追你!
    c)男程序员快来买啊!我这里面有糖、磷酸、咖啡因……
    A) 业务建模是a,需求是b,分析设计是c。
    B) 业务建模是a,需求是c,分析设计是b。
    C) 业务建模是b,需求是a,分析设计是c。
    D) 业务建模是b,需求是c,分析设计是a。
    E) 业务建模是c,需求是a,分析设计是b。
    F) 业务建模是c,需求是b,分析设计是a。

    2 [ 单选题 ]从什么年代开始,银行、政府、商店等机构内部有大量的智能系统?
    A) 20世纪80年代
    B) 20世纪70年代
    C) 20世纪60年代
    D) 早于20世纪

    3 [ 单选题 ]以下不能作为业务建模研究对象的是:
    A) 屌丝
    B) 微信
    C) 八天连锁酒店有限公司
    D) JZ县城管大队

    4 [ 单选题 ]一个组织,从外面看是______的集合,从里面看是_______的集合。
    A) 价值;系统
    B) 业务执行者;业务用例
    C) 业务执行者;业务工人
    D) 功能;性能

    5 [ 单选题 ]以下说法正确的是:
    A) 业务执行者在系统外面,业务工人在系统里面。
    B) 业务执行者在系统里面,业务工人在系统外面。
    C) 业务工人不能取代业务实体的责任。
    D) 业务工人可以取代业务工人的责任。

    6 [ 多选题 ]以医院为研究对象,针对以下概念:护士、患者、CT扫描仪、医生、保安、医院信息系统、卫生局,以下正确的说法有:
    A) 卫生局是业务执行者。
    B) 因为保安的社保关系不在医院,保安不是业务工人。
    C) CT扫描仪是业务实体。
    D) 医生是业务执行者。

    7 [ 多选题 ]以一家超市为研究对象做业务建模。建模人员观察到:顾客到超市买东西,找收银员结账;收银员会使用超市管理系统来结账,结账时超市管理系统会请求银行系统完成交易。上面提到的名词中,属于超市的执行者的有:
    A) 收银员
    B) 顾客
    C) 超市管理系统
    D) 银行系统
    E) 银行

    8 [ 单选题 ]针对以下研究对象,“财务人员”最有可能是业务执行者的是:
    A) 某省注册会计师考试委员会
    B) 某市国税局
    C) 公司人力资源部
    D) 公司财务部
    学习通C

    《软件方法》第3章自测题2

    1 [ 单选题 ]公交公司里有调度员,调度员的工作除了调度之外,还要制定线路行车作业计划,还要不定期上路调查客流等。假设根据愿景判断,下一步改进点应该在调度员上路调查客流的环节,那么这个环节应该归属哪个业务用例呢?
    ①以公交公司为研究对象的“市民→乘车”用例
    ②以公交公司为研究对象的“调度员→调查客流”用例
    ③以系统为研究对象的“调度员→调查客流”用例
    ④以调度室为研究对象的“公司管理层→调度”用例
    ⑤以公交公司为研究对象的“公司董事会→提高运营效率”用例
    A) ①和④
    B) 只有③
    C) ②和⑤
    D) ③和⑤

    2 [ 单选题 ]如果有人问“这个佣金系统的业务用例是什么”,您应该怎么回答,才算是理解了本章内容?
    A) 经纪→领取佣金
    B) 财务部→发放经纪佣金
    C) 不清楚,再给出这个系统更详细的资料才行
    D) 不知道,问题问得不对
    E) 财务人员→计算佣金
    F) 经纪→领取佣金 以及 财务人员→计算佣金
    学习通A

    3 [ 单选题 ]以一家软件公司为研究对象,以下正确的是:

    在这里插入图片描述

    A) ②和③
    B) 只有④
    C) 只有②
    D) ①和④

    4 [ 单选题 ]关于业务用例和系统用例的区别,以下说法正确的是:
    A) 业务用例研究人工,系统用例研究自动化
    B) 业务用例研究组织,系统用例研究系统
    C) 业务用例研究业务,系统用例研究技术实现
    D) 业务用例研究系统外的工作,系统用例研究系统负责的工作
    E) 业务用例抽象,系统用例具体
    F) 业务用例不是所有系统都有,系统用例所有系统都有

    5 [ 多选题 ]如果您使用的建模工具中没有业务执行者、业务用例、业务工人、业务实体等图标,可以怎么做?
    A) 改用有图标的工具
    B) 那就不做业务建模了
    C) 只要注明了研究对象是组织就没关系,就用标准的执行者和类
    D) 自己在工具中添加文本构造型来代替
    学习通AD

    《软件方法》第4章自测题1

    1 [ 多选题 ]适合用于描述业务用例的实现——业务流程的UML图有:
    A) 活动图
    B) 用例图
    C) 序列图
    D) 状态机图
    E) 流程图
    F) 依赖图

    2 [ 多选题 ]关于在业务建模中使用活动图和序列图,以下说法正确的有:
    A) 当前建模人员做业务建模时,序列图使用最多,所以《软件方法》书中以序列图为主。
    B) 序列图表示动作,活动图强迫思考动作背后的目的。
    C) 活动图背后是面向过程的思想,序列图背后是面向对象的思想。
    D) 活动图的“灵活”是优点也是缺点。
    学习通BCD

    3 [ 多选题 ]以下序列图存在错误的地方有:
    在这里插入图片描述

    A) ①
    B) ②
    C) ③
    D) ④
    E) ⑤
    F) ⑥
    4 [ 单选题 ]以下序列图中消息正确的是:
    在这里插入图片描述

    A) ①
    B) ②
    C) ③
    D) ④

    5 [ 单选题 ]在业务流程中有这么一步:助理使用QQ邮箱系统将计划书发给经理。如果QQ邮箱系统在业务流程中有重要的地位,不得忽略,那么以下序列图片段描述了该步骤而且责任分配合理的是:
    A)在这里插入图片描述

    B)在这里插入图片描述

    C)在这里插入图片描述

    D)
    在这里插入图片描述

    6 [ 单选题 ]想做一款男女约会神器,提高上垒的成功率。建模人员在描述现状业务流程时犯难了,现状到底是写情书、酒吧勾搭还是用陌陌约?以下做法正确的是:

    A) 每种现状都描述,分别改进。
    B) 因为是做产品,基本没有现状,不用描述现状业务流程。
    C) 先定位目标人群和老大,再描述现状。
    D) 写情书是最本质的,应该描述写情书。

    《软件方法》第4章自测题2

    1 [ 单选题 ]以下改进属于什么类型的改进?

    在这里插入图片描述

    A) 提炼接口
    B) 封装领域逻辑
    C) 物流变成信息流
    D) 改善信息流转

    2 [ 单选题 ]现在有些数码相机提供“笑脸捕捉”功能,这属于哪一种改进?
    A) 提炼类
    B) 封装领域逻辑
    C) 物流变成信息流
    D) 改善信息流转

    3 [ 单选题 ]针对以下业务序列图的改进,说法正确的是:
    在这里插入图片描述

    A) 标记为1、2、3处有改进二
    B) 标记为9处有改进三
    C) 标记为4、5处有改进一
    D) 标记为4、5处有改进二

    4 [ 单选题 ]有三家网约车公司:D、K和U。它们用各自的模式(姑且称为D模式、K模式和U模式)研发和维护自身业务系统。通过一段时间的竞争,D公司并购了K公司和U公司,成为网约车行业的霸主。并购之后,D公司的研发负责人说“我们胜利了,证明D模式要比K模式和U模式要好得多。”
    针对以上描述,以下说法正确的是:

    A) 在竞争中获胜的公司,其研发方法应该树为典范。
    B) D公司研发负责人的话混淆了并存和因果。
    C) 互联网系统的研发方法和传统软件系统有本质的不同。
    D) D模式比K模式和U模式敏捷。

    5 [ 单选题 ]阿布思考法有两个步骤:
    A) 首先定位目标客户,然后定制需求。
    B) 首先做业务建模,再推导出需求。
    C) 首先山寨,然后慢慢超越。
    D) 首先不考虑资源限制,然后找山寨版。

    6 [ 单选题 ]以下是过去几年发生的著名事件,哪一个和阿布思考法的内涵近似?
    A) 明星妻子出轨经纪人。
    B) 网络名人干**大尺度出任车模。
    C) 专人给市领导打伞观看小学生冒雨表演。
    D) “阿巴”董事局主席马杰克声称自己后悔创建“阿巴”。

    7 [ 单选题 ]如果屌丝男想要送女朋友凤姐生日礼物,以下和阿布思考法相关的思路是:
    A) 凤姐过去收到哪些礼物。
    B) 如果凤姐是绝色美女她会收到什么礼物。
    C) 凤姐自己说出来最想要什么礼物。
    D) 如果凤姐是土豪她最想要什么礼物。

    《软件方法》第5章自测题1

    1 [ 单选题 ]以类似_______这样的系统为研究对象时,“打印机”作为执行者是合适的。
    A) Word
    B) 财务报表系统
    C) Photoshop
    D) 打印管理器

    2 [ 单选题 ]市民想给交通卡充值,来到营业点把钱和卡一起递给营业员,营业员操作“充值系统”充值。针对“充值系统”的执行者,以下看法正确的是:
    A) 执行者应是市民,因为市民比营业员重要,而且营业员最终执行的是市民的指令。
    B) 执行者应该是充值系统,因为充值由充值系统完成。
    C) 执行者应该是营业员,系统执行者与重要无关。
    D) 市民和营业员一起作为执行者。

    3 [ 多选题 ]根据以下业务序列图,请问属于“一卡通系统”执行者的有:
    在这里插入图片描述

    A) 外来办事人员
    B) 一卡通系统
    C) 大院门口保安
    D) 受访人
    E) 来车监控系统
    F) 时间
    4 [ 多选题 ]以下说法正确的有:

    A) 业务执行者不一定是系统执行者。
    B) 系统执行者一定是业务执行者。
    C) 系统执行者一定是业务工人。
    D) 系统执行者一定要和系统交互。
    E) 系统执行者一定是系统的涉众。
    F) 系统的涉众一定是系统执行者。

    5 [ 多选题 ]用例用“执行者”取代了“用户”,关于这两个概念,以下说法正确的有:
    A) 实际上是一回事,只是某些方法学家炒作概念而已。
    B) “用户”把演员和观众混在一起了。
    C) “执行者”指的是“客户”,比“用户”更加值得关注。
    D) “执行者”可以不是人,“用户”默认是人。
    E) “执行者”不一定直接使用系统,“用户”一定直接使用系统。
    F) “执行者”之间可以有泛化关系,“用户”没有。
    套不出来

    6 [ 单选题 ]类似“用户故事”之类的需求描述方式,在开发一些面向大众的互联网系统时还能应付,原因是:
    A) 互联网比较注重创新,用户故事也比较注重创新。
    B) 互联网比较注重敏捷,用户故事更敏捷。
    C) 互联网系统的“用户”和前排涉众重叠程度较高。
    D) 故事的方式更适合和低学历的大众沟通。

    《软件方法》第5章自测题2

    1 [ 单选题 ]以ATM为研究对象,“登录”不是用例,但是,以_____这样的系统为研究对象时,“登录”作为用例是合适的。
    A) 支付宝
    B) 指纹扫描仪
    C) 门禁
    D) OA系统

    2 [ 单选题 ]以ATM为研究对象,“输入密码”不是用例,但是,以_____这样的系统为研究对象时,“输入密码”作为用例是合适的。
    A) 密码保险箱
    B) 支付宝
    C) 门禁
    D) 指纹扫描仪

    3 [ 单选题 ]经过连续八轮不胜,穿着绿色球衣的主队终于2:1险胜客队。主场球迷小张兴奋至极,从球场出来后经过街边一台ATM时,掏出一把钥匙在ATM外壳刻了几个字“**永远争第一”。请问,“刻字”是不是ATM的用例?
    A) 是。没有人强迫小张,这是他自愿做的。
    B) 不是。用例应该是“支持球队”。
    C) 不是。ATM摆在那里的初衷不是为了让人刻字
    D) 不是。小张并没有从刻字获得任何好处。

    4 [ 单选题 ]员工小张每天早上到办公室第一件事就是打开电脑,登录办公系统后扫两眼今天该做的事情有哪些,然后就离开电脑做事情去了。以办公系统为研究对象,以下说法正确的是:
    A) “登录”不是用例,用例是“查看当日任务”。
    B) “登录”不是用例,因为小张不登录也可以看到自己的任务。
    C) “登录”是用例,因为小张登录后已经达到使用系统的目的,然后离开了。
    D) “登录”是不是用例,应该按照办公系统的研发团队在开发时划分模块的情况而定。

    5 [ 单选题 ]我们经常会听到有人说“系统分为几个功能模块”。针对“功能模块”,以下说法正确的是:
    A) 它把外部和内部混在一起了
    B) 它可以看作是用例的一种分包。
    C) 它相当于系统的内部组件。
    D) 它相当于系统的低层用例。

    6 [ 单选题 ]主执行者和辅执行者的区别是:
    A) 主执行者直接和系统交互,辅执行者间接和系统交互。
    B) 主执行者发起用例,辅执行者被动参与
    C) 主执行者发送数据,辅执行者接收数据。
    D) 主执行者是人,辅执行者不是人。

    7 [ 单选题 ]为了保障学校的安全,学校安装了监控系统。系统按照一定的频率不停拍摄访客的影像,显示给坐在监控室里的保安看。根据以上描述,最合适的用例图是:
    A)
    在这里插入图片描述

    B)
    在这里插入图片描述

    C)在这里插入图片描述

    D)
    在这里插入图片描述

    8 [ 多选题 ]根据以下业务序列图,请问属于“一卡通系统”用例的有:
    在这里插入图片描述

    A) 外来办事人员→登记
    B) 一卡通系统→判断黑名单
    C) 大院门口保安→记录来访人员信息
    D) 受访人→确认来访
    E) 来车监控系统→保存车牌信息
    F) 时间→检查是否来车

    9 [ 单选题 ]以下用例图的错误应该如何改正?
    在这里插入图片描述

    A) 提交维修单信息是客服的责任,应该删掉。
    B) 将<>箭头方向反过来。
    C) 右边四个只是步骤不是用例,删掉。
    D) 标出各用例的先后顺序。
    E) 将<>改成<>。
    F) 将右边四个放在下一层次用例包中。

    10 [ 多选题 ]以下形状中,哪些是已完成的用例图可以出现的?
    A)
    在这里插入图片描述

    B)
    在这里插入图片描述

    C)在这里插入图片描述

    D)
    在这里插入图片描述

    《软件方法》第5章自测题1
    1 [ 单选题 ]关于用例规约,以下说法正确的是:
    A) 针对同一个用例,应该为研发团队不同角色准备不同视角的用例规约。
    B) 写了用例规约就可以不用另外写需求规约。
    C) 用例规约一般由该用例排位最靠前的涉众来写。
    D) 用例规约的表达方式必须是文本。

    2 [ 单选题 ]以医生门诊为例,请把左侧涉众和右侧的大白话“涉众利益”对应。
    1 医生 a 看着你的背影,恨不得在你屁股上踹一脚
    2 当前就诊患者 b 从家里跑过来排队大半天容易吗,不好好问清楚怎么行
    3 下一个患者 c 这人真讨厌,一点小毛病在这里啰嗦半天,看来今天上午也看不了几个了
    A) 1-a,2-b,3-c
    B) 1-a,2-c,3-b
    C) 1-b,2-a,3-c
    D) 1-b,2-c,3-a
    E) 1-c,2-a,3-b
    F) 1-c,2-b,3-a

    3 [ 单选题 ]以下适合作为某个用例的前置条件的是:

    A) 系统运行正常,网络连通正常
    ****B) 存在待审批的报销
    C) 经理已经打电话通知工作人员执行活动计划
    D) 系统记录活动计划信息
    4 [ 单选题 ]关于路径步骤,以下说法正确的是:
    A) 有的用例可以没有扩展路径。
    B) 1个回合内的步骤不一定包含4种类型,有时不需要请求,有时不需要少验证。
    C) 1个回合最好由4个步骤组成。
    D) 用例的基本路径最好控制在3个回合之内。

    5 [ 多选题 ]以下是售票系统的“售票员→售票”用例的交互步骤,其中不合适的有:

    1. 售票员询问旅客出发日期、车次和终到站
    2. 顾客回答出发日期、车次和终到站
    3. 售票员提交购票信息
    4. 系统验证购票信息合法
    5. 系统反馈符合要求的余票信息
    6. 售票员重复购票信息,请求旅客确认
      ……
      A) 1
      B) 2
      C) 3
      D) 4
      E) 5
      F) 6

    6 [ 单选题 ]针对某游戏的某个用例的步骤,以下写法合适的是:
    A) 系统自动计算最佳攻击组合
    B) 玩家进入人机对战界面
    C) 系统从剩余武将中随机挑选一位武将
    D) 玩家保存进度

    7 [ 单选题 ]以下用例规约主要违反了书写用例规约的什么要点?

    1. 市民向前台系统请求即时查询话费
    2. 前台系统向后台系统发送查询请求
    3. 后台系统查询话单,解析话单,计算话费
    4. 后台系统传递话费结果给前台系统
    5. 前台系统反馈话费清单
      ……
      A) 遵照请求、验证、改变、回应四部曲
      B) 使用主动语句理清责任
      C) 主语只能是主执行者或系统
      D) 使用核心域概念

    8 [ 多选题 ]什么情况下“类”、“组件”、“UML”、“泛化”、“关联”等词汇出现在用例规约里是合适的?
    A) 做电商系统的分析和设计的时候
    B) 研究的系统是UML建模工具的时候
    C) 电商系统的前排涉众明确指定设计约束的时候
    D) 用UML为电商系统建模的时候

    9 [ 单选题 ]针对以下步骤来寻找扩展路径和补充约束,正确的说法是:
    基本路径

    1. 医生选择需要分析的患者
    2. 系统反馈患者原始数据
    3. 医生请求做脊波分析
    4. 系统判断患者原始数据适合由系统来做脊波分析
    5. 系统对患者原始数据做脊波分析
    6. 系统反馈分析结果
      A) 步骤2应该业务规则
      B) 步骤3应该有性能需求
      C) 步骤5应该有扩展
      D) 步骤6应该有字段列表
    展开全文
  • 第一章 面向对象及软件建模概述

    千次阅读 2017-12-01 09:03:41
    面向对象的软件建模 n6.统一建模语言UML 1 软件与软件工程  软件: 程序+文档+数据  特点:  (1)软件规模大。  (2)软件开发规范并趋于标准化。  (3)软件开发方法多,有大量的软件工具...
  • UML软件建模过程

    2020-10-06 17:13:15
    UML分析设计过程起始于业务建模,接下来就是需求建模、用例建模、架构设计和构建设计,最后就是代码实现。 人人都是业务产品经理:www.woshipm.com/pd/2920580.html 业务建模之业务用例图:...
  • 软件建模技术概述

    千次阅读 2011-01-02 17:27:00
    <br />1. 什么是建模 模型是什么?模型是对现实存在的实体的抽象和简化,模型提供了系统的蓝图。模型过虑非本质的细节信息,抽象出的问题本质,使问题更容易理解。...软件建模是开发优秀软件的一个
  • 需求工程--软件建模与分析 一课的复习资料 内含: 课上所划所有习题 部分习题答案(半数)
  • AMESim软件建模

    万次阅读 2017-04-19 17:03:33
    (1)打开元件的“watch view”面板,将需要的变量拖动到“post processng”(软件最下方), (2)右键空白处,添加新的一行。在title中输入定义的名字比如differ pressure, 在“Expression”中输入表达式...
  • 软件建模工具Enterprise Architect

    千次阅读 2008-10-07 09:56:00
    关键字: uml 软件工程 建模 工具 enterprise architect 简介Enterprise Architect和Rational Rose,Borland Together类似,是软件建模工具。Enterprise Architect简称EA,网址:www.sparxsystems.com.au/是一家...
  • 本节书摘来自华章计算机《软件建模与设计: UML、用例、模式和软件体系结构》一书中的第2章,第2.2节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.2 用例图 一个参与者...
  • 软件建模

    2011-11-22 17:43:24
    建模是研究系统的重要手段和前提。凡是用模型描述系统的因果关系或相互关系的过程都属于建模。再展开点讲我对建模的理解应该是用形式化的图形或语言抽象的描述事物,其中包括了对事物组成结构和相互关系方面的静态...
  • UML,统一建模语言,对于软件工程专业的学生而言,是一门非常重要的技术,对于从事软件行业的的开发人员,设计人员等等,更是不可或缺的,同样是为了大学阶段的非常boring的考试,花费了不少时间整理考试资料,现在...
  • 近日,Sunny利用周末给国内某大型企业做了一次为期两天的UML软件建模技术的内训,以下是本次企业内训的课程大纲:《UML软件建模技术》课程大纲课程描述 全面学习UML 2.X相关知识,学会使用UML来构造系统的需求模型...
  • 系统分析及软件建模

    千次阅读 2004-08-03 18:06:00
    系统分析及软件建模 来源: 网络项目管理学会 作者: 九点 如果眼光仅仅放在满足客户眼下的需求,当问题不断出现时再不断修补,头痛医头,脚痛医脚,甚至系统构架需要不断调整或重新设计,那么,很快就会陷入代码...
  • 就业管理系统【软件建模与分析UML课设】

    千次阅读 多人点赞 2020-01-16 19:43:53
    2需求建模 2.1系统用例模型 (1)识别参与者 参与者:毕业生、招聘单位,系统管理员。 毕业生:大学毕业,通过该系统需要寻找就业单位的人。 招聘单位:通过该系统从大学毕业生中招聘员工的企业。 系统管理员:对...
  • 软件建模之用例图

    千次阅读 2018-09-07 15:34:34
    OOM面向对象建模-》Use Case Diagram   2. 参与者:小人头 用例:椭圆 参与者与用例之间是Assocation 用例与用例之间:泛化generalization、 包含include、扩展extend   3. 如何将页面...
  • 软件建模的误区

    千次阅读 2008-11-18 22:26:00
    无论你遵从的是重量级的方法,比如Enterprise Unified Process(EUP),还是轻量级的开发过程,如Extreme Programming(XP),建模软件开发中都是不可或缺的。但不幸的是其中充斥着各种谬误与迷思。 这来自于各个方面...
  • UML软件建模之UML的构成

    万次阅读 2012-12-21 14:59:01
    UML是一种通用的建模语言,其表达能力相当的强,不仅可以用于软件系统的建模,而且可用于业务建模以及其它非软件系统建模。UML综合了各种面向对象方法与表示法的优点,至提出之日起就受到了广泛的重视并得到了工业界...
  • 软件建模之UML图形讲解

    千次阅读 2013-05-13 14:04:05
    UML:Unified Modeling Language 统一建模语言 主要用来做软件需求分析、开发分析、 系统部署分析,把一些复杂的逻辑用图形表现出来,使抽象的事情有章可循。 a.需求分析,一般会用到用例图、...
  • Enterprise Architect(EA) 软件建模工具

    万次阅读 2013-10-09 13:56:47
    2.1 提供建模工具 2.2 特性丰富系统设计 2.3 端到端跟踪 2.4 提供直观高性能的工作界面 3功能特征 4产品新增特性 5总结 6简称EA 1介绍 生命周期软件设计方案——Enterprise Architect是以目标...
  • 软件建模对软件的重要性是不言而喻的,就象建一栋大楼要不要设计图纸一样。(创建 UML http://www.uml.org 的三位大佬经常以建筑来比喻软件开发)。ModelMaker http://www.modelmakertools.com/ 是面向Delphi的建模...
  • 软件建模对软件的重要性是不言而喻的,就象建一栋大楼要不要设计图纸一样。(创建 UML http://www.uml.org 的三位大佬经常以建筑来比喻软件开发)。ModelMaker http://www.modelmakertools.com/ 是面向Delphi的建模...
  • UML与面向对象的软件建模概述

    千次阅读 2013-05-06 16:37:53
    UML(统一建模语言)是一种通用的建模语言,它获得了工业界和学术界的广泛支持,目前已经成为建模语言的标准。 1.1那么什么是模型呢? 模型是现实系统的简化,它是抓住现实系统的主要方面而忽略次要方面的一种抽象...
  • 本实训帮助软件设计和开发人员使用IBM RSA开始UML建模。学习者将获得使用IBM RSA的实际操作经验,熟悉IBM RSA的建模功能。学习者将学会使用模型模板,各种UML图的绘制。 读者对象 软件设计人员 软件开发人员 ...
  • “电磁场数值仿真技术及天线设计与应用”线上大纲 第一天上午 电磁场理论及天线设计理论基础;天线电磁仿真概述 1 基础理论回顾——了解电磁仿真方法的理论基础 ...2.3 天线仿真常用软件介绍及对比
  • Borland®软件建模介绍我们需要建模工具做些什么?Borland白皮书Christopher Z. Garrett 编写2003年3月软件建模介绍 — 我们为什么需要建模工具?Borland® 2目录介绍..................................................
  • 1. 版本控制技术及工具 ...通过使用版本控制技术及工具,可以确保在软件项目开发中不同的开发人员所涉及的同一文档都得到正确的更新。 1.1 常用版本控制工具  1. CVS (Concurrent Versions System

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,795
精华内容 65,118
关键字:

软件建模