UML相关知识点【软件开发环境、工具】

【摘录于teacher课件】

【复习啊复习】

软件工程概述

  • 软件工程:
    软件工程就是用现代工程的原理、技术和方法进行软件的开发、管理、维护和更新。软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件开发和维护的学科,综合应用数学、管理学、计算机科学的知识原理,以达到提高软件质量,降低成本的目的.
  • 简述软件工程的7条基本原理?
    1、用分阶段的生存周期计划严格管理;
    2、坚持进行阶段评审;
    3、结果应能清楚地审查;
    4、实施严格的产品控制,不要随意改变需求;
    5、采用现代程序设计技术;
    6、开发小组的人员应该少而精;
    7、承认不断改进软件工程实践的必要性。
  • 简述建模的原则?
    模型要反映你难于处理的开发问题;
    模型要在不同的精度级别上来表示;
    建造的模型要和现实相连;
    重要的系统要用一组独立的模型去处理;
    模型应突出问题的主要特征;
    不必追求绝对的真实和完美;
    建模应该支持由模糊到清晰,由粗到细的逐渐完善的认识过程;
    应采用可视化的图形建模语言,如UML。

建模处在软件生命周期的哪个阶段?为什么?
??????

面向对象的软件开发

  • 简述面向对象分析(OOA)和面向对象设计(OOD)之间的差异和共同点?
    面向对象分析(Object-Oriented Analysis)是指在一个软件系统的开发过程中,按照面向对象的方法来分析问题。OOD的作用是对OOA的分析结果按照编程模型的形式做进一步的规范化整理,以便能够使OOP直接使用。实际上OOA相当于对现实世界的直接抽象,即分析建模,而OOD是对OOA的结构按照计算机数据结构的要求进行规范化,是设计建模。
  • 简述面向对象分析(OOA)的步骤?
    1、识别对象
    2、识别对象的属性
    3、识别对象的行为
    4、识别对象所属的类
    5、定义主题词
  • 简述面向对象设计(OOD)的主要工作?
    1、对象定义规格的求精过程
         整理分析对象的结构、属性和方法,改正错误,删除不必要的重复类型等
         进行分类整理,形成主题
    2、数据模型和数据库的设计
    3、优化

UML语言概述

  • 静态逻辑模型(Static logic model)
    描述类及类的实例化、关联、聚集、继承等关系,表达了对象之间的静态逻辑关系。
  • 动态逻辑模型(Dynamic logic model)
    描述对象之间的相互作用,相互作用通过一组协同的对象,对象之间的消息序列,参考对象的可见性来定义系统运行时的行为,表达了对象之间的动态逻辑关系。
  • UML语言(Unified modeling language)
    UML语言(Unified Modeling Language,统一建模语言)是一个通用的可视化的建模语言,用于对软件进行描述,可视化处理、构造和制造软件系统制品的文档。
  • 视图(View)
    是表达系统的某一方面特征的UML建模元素的子集,它是由一个或多个图组成的对系统某个角度的抽象。
  • 图(Diagram)
    是模型元素集的图形表示,通常由弧(关系)和顶点(模型元素)相互连接构成。
  • 简述Booch、OMT和OOSE方法之间的异同点?
    ??????????
  • 谈谈UML的历史?
    ??????????
  • 简述UML语言的特点?
    UML统一了Booch、OMT和OOSE等方法中的基本概念
    UML还吸取了面向对象技术领域中其他方法的优点,因此UML方法统一适用,易于得到大家的认可
    UML在演变过程中还提出了一些新的概念,它是一个不断完善的语言

UML用例图

  • 执行者(Actor)
    执行者(Actor)是系统外部的一个实体,它以某种方式参与用例的执行
  • 用例(Use case)
    用例是外部可见的系统功能部分,也就是外部执行者(Actor)所能理解的系统功能
  • 包含关系(Include association)
    一个用例可以使用其它用例具有的行为,并把它所包含的用例行为作为自身的一部分,叫做包含关系
  • 简述用例三种关系之间的差异
    包含关系是调用关系,两个用例之间可以不存在逻辑关系,比如我们建立一个数学函数库,提供sin,cos等函数被使用,这些函数与使用者之间没有直接的逻辑关系;
    泛化关系用例之间存在着内在的逻辑关系,子用例可以代替父用例 ;
    扩展关系属于一种特殊的泛化关系,实际上是增加接口,是一种抽象类的泛化关系。
  • 简要说明如何构建一个系统的用例图
    ???????????????
  • 通过查阅资料说明用例图和软件需求规格说明书之间的差异
    ????????????????????

类(Classs)是具有相似结构、行为和关系的一组对象的描述符
如果有两个类A与B,当我们修改A类时会引起B类的修改,我们称类B依赖于类A。

关联是一种结构关系,它指明一个类与另一个类间的联系,表示类之间的连接,它使一个类的可见属性和方法被另一个类使用
实现关系是规格说明和实现间的关系,它表示不继承结构只继承行为

聚合包含两类:
基本聚合(Aggregation)
组合聚合(Composition)

包在UML中用类似文件夹的符号表示的模型元素表示。系统中的每个元素都只能为一个包所有,一个包可以嵌套在另一个包中
概念层:描述应用领域的概念,与现实世界相关
说明层:描述软件的接口部分
实现层:揭示软件的实现部分,此时的类是严格意义上的类

1.    简化的原则
             在项目的初始阶段不要使用所有的符号,只要能够有效表达就可以了
2.    分层理解的原则
             根据项目开发的不同阶段,使用不同层次的类图来进行表达,便于理解,不要一开始就陷入到实现的细节当中
3.    关注关键点的原则
             不要为每个事物都画一个模型,只把精力放在关键领域

数据库建模应该遵循的策略:
系统类的状态超过其应用系统生命周期
将这些类标记为永久形式(persistent)
描述这些类的详细结构
考虑这些类的行为,保证数据的有效存储和完整性
简化数据库的逻辑设计

类图    对象图
基本元素包含名称、属性和操作    基本元素只包含名称和属性
类的名字由类名构成    对象的名字有对象名:类名构成
类中列出了操作    对象图中不包含操作
类使用关联关系,具有多重属性    类使用链连接,没有多重性
类的属性分栏定义了所有属性的特征    对象只定义了属性的当前值,以用于测试用例

状态图(Statechart Diagram)用来描述一个特定对象基于事件反映的动态行为,显示了该对象如何根据当前所处的状态对不同的事件做出反应
状态(state)是对象执行某项活动等待某个事件时的条件。对象可能会在有限时间长度内保持某一状态
奇迹状态是那种只有变化发出但没有任何变换进来的状态
转换通常由5个部分组成:源状态(source state),目标状态(target state),触发事件(trigger event),监护条件(guard condition)和动作(action)

分支(Branch)是状态机的一个建模元素,它表示一个触发事件在不同的触发条件下引起多个不同的转换
泳道(Swimline)表示对活动分组,将活动按照横向进行分组,同一组活动由一个或多个对象负责完成
活动图对系统的动态行为建模,它是状态机的一种可视化形式。活动图可用于对工作流和业务流进行建模

在系统建模过程中,活动图能够被附加到任何建模元素以描述其行为,这些元素包括用例、类、接口、组件等
建模步骤如下:
识别要对其工作流进行描述的类
对状态建模
对活动建模
对对象流建模
进一步对模型进行细化

顺序图(Sequence diagram)用来表述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序
顺序图由活动者(Actor)、对象(Object)、消息(Message)组成
水平轴表示协作中各独立对象的类元角色
垂直轴表示时间,代表一个对象的生命周期,采用一条纵向的虚线表示,当对象处于激活状态时,生命线是一个狭长的矩形
对于顺序图而言,我们可以按照执行者角色,情景逻辑的控制类,用户接口,业务层以及相关技术类进行分层

协作图(Collaboration diagram)是一种交互图,是动态视图的另一种表现形式,强调的是发送和接收消息的对象之间的组织结构
对象在交互图中可以扮演的角色被称为类元角色(classifier role)
协作(Collaboration)定义了一组对象,它们按照支持给定交互的方式相互联系
交互( Interaction )是协作中的一组消息集合,这些消息被类元角色通过关联角色交换
协作图与顺序图表达的是同一种信息,它们之间可以相互转换。它们都是表达各对象之间的交互关系,但是侧重点不一样:顺序图强调的是交互的时间顺序,协作图强调的是交互的语境与参与交互的对象的整体组织

组件(Component)是定义了良好接口的物理实现单元,它是系统中可以替换的部分
节点是定义运行时的物理对象的类,它一般用于对执行处理或计算机的资源建模

组件图通常包括以下三个部分
组件
接口
关系

部署图可以将节点和组件结合起来,以建模处理资源和软件实现之间的关系

在建模过程中,我们将节点分成两种类型:
处理器(Processor):这是能够执行软件构件,具有计算能力的节点
设备(Device):没有计算能力的节点,这些设备通常是通过其接口为外界提供某种服务,比如打印机,扫描仪等

转载于:https://www.cnblogs.com/huiwen/archive/2009/12/28/1634154.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值