《UML及建模》读书笔记-阿里云开发者社区

开发者社区> 开发与运维> 正文

《UML及建模》读书笔记

简介: 《UML及建模》读书笔记     (一)面向对象技术概述   一、软件及其特性   软件是计算机系统的思维中枢,是软件产业的核心。作为信息技术的灵魂——计算机软件,在现代社会中起着极其重要的作用。
《UML及建模》读书笔记
 
 
(一)面向对象技术概述
 
一、软件及其特性
  软件是计算机系统的思维中枢,是软件产业的核心。作为信息技术的灵魂——计算机软件,在现代社会中起着极其重要的作用。
概念:
  软件是计算机系统操作有关的程序、规程、规则及其文档和数据的统称。
  程序是按事先设计的功能和性能要求执行的语句序列。数据是程序所处理信息的数据结构。文档是与程序开发、维护和使用相关的各种图文资料,如规范说明书、设计说明书、用户手册等。
  软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。
 
二、软件的特点
  软件是一种逻辑产品而不是实物产品,软件功能的发挥依赖于硬件和软件的运行环境,没有计算机相关硬件的支持,软件毫无实用价值。
  1.软件固有的特性(复杂性、抽象性、依赖性、软件的使用特性)
  2.软件的生产特性(软件的开发特性、软件产品的形式特性、软件的维护特性)
  
三、软件危机
  软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重问题。
  1.软件危机的突出表现
   a.软件生产率低。
   b.软件产品常常与用户要求不一致。
   c.软件规模的增长。
   d.不可维护性突出。
   e.软件文档不完整。
  2.产生软件危机的原因
   a.软件独有的特点给开发和维护带来困难。
   b.软件人员的错误认识。
   c.软件生产技术进步缓慢。
   d.软件开发工具自动化程序低。
 
四、软件工程的目标
  软件工程的目标是基于软件项目目标的成功实现而提出的,主要体现在以下几方面:
  1.软件开发成本较低;
  2.软件功能能够满足用户的需求;
  3.软件性能较好;
  4.软件可靠性高;
  5.软件易于使用、维护和移植;
  6.能按时完成开发任务,并及时交付使用。
  在实际开发中,企图让以上几个质量目标同时达到理想的程度往往是不现实的。
79045_080923144817.jpg
 
 
五、软件工程学研究范畴
  软件工程学是研究软件开发过程、开发方法、工程开发技术和工具,指导软件生产和管理的一门综合性的应用学科。根据研究范畴,软件工程学分成软件开发技术与软件工程管理两个方面。软件开发技术又可分为软件开发方法、软件工具和软件工程环境三方面。软件工程管理又可分为软件管理学、软件经济学和软件产权保护。
  
六、定义软件质量的主要特性:正确性、可靠性、效率、完整性、可用性、风险性、可理解性、可维修性、灵活性、可测试性、可移植性、可重用性、可运行性。
 
七、控制软件复杂性的基本方法
  1.推迟实现
  2.逐步求精
  3.抽象
  4.信息隐蔽
  5.模块化
 
八、面向对象领域中的基本概念
  (需了解的有:对象实例封装继承消息关联多态性永久对象主动对象
 
 
(二)软件建模和软件开发过程
 
  引言:模型是某个事物的抽象,其目的是在构建这个事物之前先来理解它。因为模型忽略了那些非本质的细节,这样有利于更好地理解和表示事物。
 
一、概念
  随着软件系统规模的增加,以及开发团队人数的增加,需要在软件开发过程中引入更多的规范。采用建立模型的方法是人类理解和求解问题的一种有效策略,也是软件工程方法学中最常使用的工具。
  所谓模型就是为了理解事物而对事物做出的一种抽象,是对事物规范的、无歧义描述的一种工具。
  常见的模型可以分为三种类型:数学模型描述模型图形模型
  数学模型是描述系统技术方面的一系列公式,用来精确表示系统的某些特征。
  描述模型是描述系统某些方面的叙述性的备忘录、报表或列表。
  图形模型是由一组图形符号和组织这些符号的规则组成的,利用它们来定义和描述问题域中的概念和术语。
  
  软件过程是指实施于软件开发和维护中的阶段、方法、技术、实践及相关产物(计划、文档、模型、代码、测试用例和手册等)的集合。
 
二、建模原则
  1.准确原则 模型必须准确地反映软件系统的真实情况。
  2.分层原则 在建模过程中,必须有不同的模型,以不同的抽象程序,反映系统的不同侧面。
  3.分治原则 软件系统是复杂的,对于软件模型的任意一个侧面,不可能用一个模型来反映所有整个系统的任何侧面。
  4.标准的原则 模型必须在某种程度上是通用的。
 
 
(三)统一建模语言UML简介
 
  引言:建模是为软件开发服务的,因此,如果模型所包含的信息足够完备,就可以以这些信息为基础,进行软件系统的建造。统一建模语言UML是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模技术,利用UML表达的软件模型,可以直接和某种设计语言建立映射关系,通过UML建造工具,将UML模型转换为对应的程序设计语言源代码框架。
 
一、UML概述
  UML是一个通用的可视化建模语言,是用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。其中制品是指软件开发过程中产生的各种产物,例如模型、源代码、测试用例等。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域及各种开发工具。
 
二、UML的主要特点
  1.统一的标准。UML是被OMG接受为标准的建模语言,越来越多的开发人员使用UML进行软件开发,越来越多的厂商支持UML。
  2.面向对象。UML是支持面向对象软件开发的建模语言。
  3.概念明确。建模表示法简洁,图形结构清晰,可视化、表示能力强大,容易掌握和使用。
  4.独立于过程。UML不依赖于特定的软件开发过程。
  
三、UML中的视图
  1.用例视图
  2.逻辑视图
  3.组件视图
  4.部署视图
  
四、UML的体系结构
  UML由三部分组成:基本构造块规则公用机制。其中,
    基本构造块又包括三种类型:事物关系
      事物划分为以下四种类型
        1.结构事物。包括类、接口、协作、用例、主动类、组件和节点。
        2.行为事物。包括交互机和状态。
        3.分组事物。UML中的分组事物是包。整个模型可以看成是一个根包,它间接包含了模型中的所有内容。子系统是另一种特殊的包。
        4.注释事物。注释给建模者提供信息,它提供了关于任意信息的文本说明,但是没有语义作用。
      关系分为依赖关联泛化实现等关系。
      用例图、顺序图、协作图、类图、对象图、状态图、活动图、组件图、部署图
    规则(名字、作用域、可见性、完整性、执行)
    公用机制分规范说明、修饰、公共划分和扩展机制(构造型、标记值、约束)
   
 
(四)建模
  
  建模用例建模结构建模行为建模软件系统体系架构建模。
  
  
  用例模型主要由用例用例描述用例图组成,用来描述系统的外部特征。它表示了从系统的外部用户(即参与者或角色)的观点看系统应该具备什么功能,因此它只说明系统实现什么功能,而不必说明如何实现。一幅用例图包含的模型元素有系统参与者用例用例之间的关系
 
  用例模型描述的是系统的外部特性,包括从系统外部看到的软件的静态结构和行为特征。为了捕获完整、精确的软件系统的需求,还需要对软件的内部结构和行为特征进行分析和设计。
  结构建模是描述软件的内部结构的一个重要手段,也是从用例视力出发进行软件建造的第一步。结构建模的结果是得到逻辑视力的重要组成部分——类图。类图提供了用对等(关联)和层次(泛化和聚合)结构组织类的方法。很多面向对象的学者是把模型的这部分结构称作静态模型,也有称其为对象模型。
  结构模型的概述
  结构模型是分析阶段的重要模型,它的目的是在系统中形成一个逻辑的、可维护的结构。“逻辑”意味着实际的实现环境不被考虑,因此主要着眼于基本的系统功能。人们可以通过对用例的分析,把系统分解成相互协调的分析类,利用类图来描述系统中所有对象类的属性及对象之间的相互关系,描述系统的结构特征,建立静态模型。
  结构模型的构建是进行抽象的过程,应避免去解决某些具体问题和处理某些需求,最好将它们推迟到设计阶段去完成。因此,结构模型中提出的结构不可能一直持续下去,需要在设计与实现阶段对其进行一定的处理和折中。“维持结构”在实际操作中是行不通的,原因很简单,即在设计阶段要考虑实现平台:程序设计语言、操作系统、系统框架、遗留系统等。从效益的角度来看,当过渡到设计模型关构造系统时,通过修改模型的结构可以获得一个较好的架构。
  建立结构模型的几点建议
  1.把建立结构模型的三个活动(发现对象、定义属性与操作、识别对象间的关系)安排得比较接近,根据需要随时从一个活动切换到另一个活动。
  2.在识别了一些主要对象之后,就可以做一个最初的原型,随着分析工作的深入进行,采用增量式原型开发。在开发的早期阶段建立的原型主要用于证实用户的需求。
  3.在分析较小的系统时,可以活力划分包的活动,或把该活动放在对象模型建立之后进行。在分析大中型系统时,可以按需求先划分包,根据包进行分工,然后开始正规的分析。在分析过程中,若需要,仍可以用包来组织模型元素。
  
  行为模型的任务是定义并描述系统结构元素的动态特征及行为。
  一个完整的模型必须描述系统的静态和动态两个方面。通过对对象及对象之间的操作与行为进行分析与描述,有助于理解系统和认识系统在空间和时间上的行为。行为模型元素是UML模型的动态组成部分。
  在UML中,行为模型包括状态模型活动模型交互模型状态模型关注一个对象的生命周期内的状态及状态变迁,以及引起状态变迁的事件和对象在状态中的动作等。活动模型用于描述多个对象在交互时采取的活动,它关注对象如何相互活动以完成一个事务。交互模型强调对象间的合作关系与时间顺序,通过对象间的消息传递来完成系统的交互。
  
  面向对象的设计是将分析所创建的分析模型(静态模型、动态模型)转换为设计模型,对分析模型进行细化与补充,确定系统的体系架构,选择组件并完成设计类。与传统方法不同,面向对象的设计模型采用的符号与分析模型是一致的,设计是结合实现环境不断细化、调整概念类的过程。
 
 
(五)Web建模
 
  引言:随着Internet的迅速发展,Web方式的应用越来越多。一方面是因为开发Web应用程序的工具、技术的快速发展,但更主要的原因是系统的设计者意识到Web应用系统与传统的应用系统相比具有更重要的优势。同样,建模对于Web系统的开发也非常重要。
  
一、Web建模概述
  Web技术的发展,使得管理系统的开发更方便、功能更强大,在此系统的开发过程中,Web技术起了一个骨架式的支持作用。与此同时组件技术的发展为系统的开放性、集成性提供了便利,有效合理地引入组件技术是当前Web系统开发与发展的一个方向。通过对系统的开发进行建模,形象直观的图形化表示,可以显示系统的流程与功能。
  Web应用系统中很多概念是一般应用系统中所没有的,例如,HTTP协议、HTML、表单、框架网页、Session等。对于基于Web技术的应用系统,用户直接面对的是客户端浏览器。浏览器是运行在客户机上的应用程序,与网络上的服务器连接并请求获取信息页。浏览器通过HTTP与Web服务器通信,承担显示服务器返回的格式化的信息。一般网页还都含有其他网页的链接,这样用户就可以通过这些链接导航,从Web服务器请求获得新的网页。
 
二、Web建模
  Web建模主要考虑两方面的问题,一是如何表示Web应用系统的体系结构,另一个是如何表示Web应用系统中一些特有的概念。页面、脚本、表单和框架是Web应用系统的关键部分,数据流程的模型化表示的关键就是用UML对上述Web元素应用及其关系建模。在对Web应用系统建模时,需要利用UML的扩展机制对UML的建模元素进行扩展,主要是在类和关联上定义一些构造以解决Web应用系统建模的问题。
  几种元素的建模:页面建模(服务器页、客户机页、<<Build>>关联、<<Link>>关联),表单建模(表单、<<Submit>>关联),框架建模。
 
 
(六)软件设计模式
 
  几个比较有代表性的软件设计模式有:
  1.Facade模式
  2.Adapter模式
  3.Abstract Factory设计模式
  4.Observer设计模式
 
 
(七)面向对象的软件建模工具
 
一、软件开发工具的作用
  ·提供了引导人们有效建立正确模型的手段;
  ·可缩短开发时间,有助于减少枯燥、烦琐的重复工作;
  ·便于对系统的修改和维护;
  ·提供了存储和管理有关信息的机制和手段,具有保持信息一致性的能力;
  ·可帮助用户编制、生成及修改各种文档;
  ·有助于生成程序代码;
  ·为重用提供了方便。
 
二、软件开发工具的分类。按功能分为以下几类:
  1.业务系统规划工具
  2.项目管理工具
  3.支持工具
  4.分析和设计工具
  5.编程工具
  6.测试和分析工具
  7.原型工具
  8.维护工具
 
三、面向对象软件建模工具所应具有的功能
  1.绘图
  2.存储
  3.一致性检查
  4.对模型进行组织
  5.导航
  6.协作支持
  7.代码生成
  8.逆向工程
  9.集成
  10.支持多种抽象层和开发过程
  11.文档生成
  12.适当的信息隐蔽
  13.模型库管理
  14.打印支持
  15.脚本编程
  16.元建模
 
四、支持UML的常见工具
  0.Rational Rose (Rational公司)
  1.Together 2006 (Borland公司)
  2.Enterprise Architect(EA) (Sparx Systems公司)
  3.Visual Paradigm
  Visual Paradigm Suite For UML (VP-UML)是一个UML CASE工具,可以很好地和Visual Studio编程环境集成在一起,非常方便使用。
  4.Visio (Microsoft公司)
  5.Poseidon for UML (德国Gentleware AG公司)
  6.JUDE(Java and UML Developers Environment)  JUDE是一款轻量级UML建模工具。
 
 
 
(完 毕)
 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章