《UML和模式应用》读书笔记(一)

一、绪论

1. 面向对象分析和设计

1.1 什么是分析和设计

分析(analysis)强调的是对问题和需求的调查研究,而不是解决方案。

设计(design)强调的是满足需求的概念上的解决方案,而不是其实现。例如对数据库方案和软件对象的描述。

1.2 什么是面向对象分析和设计

在面向对象分析(object-oriented analysis)过程中,强调的是在问题领域内发现和描述对象(或概念)。

在面向对象设计(object-oriented design)过程中,强调的是定义软件对象以及他们如何协作以实现需求。

1.3 什么是UML

统一建模语言(UML)是描述、构造和文档化系统制品的可视化语言,UML定义了各种UML简档(UML profile),这些简档专用于某些常用主题领域的表示法子集,例如对EJB使用UML EJB文档。

1.3.1 应用UML的三种方式

  • UML作为草图——非正式的、不完整的图。
  • UML作为蓝图——相对详细的设计图,用于逆向工程或代码生成。
  • UML作为编程语言——用UML完成软件系统可执行规格说明。可执行代码能够被自动生成(仍处于发展阶段)。

敏捷建模(agile modeling)强调了UML作为草图的方式,这也是使用UML的普通方式,而且通常对时间投入具有高回报。

1.3.2 应用UML的三种透视图

UML描述的是原始图类型,如类图和顺序图,它并没有在这些图上叠加建模的透视图。

  1. 概念透视图:用图来描述现实世界或关注领域中的事物。
  2. 规格说明(软件)透视图:用图来描述软件的抽象物或具体规格说明和接口的构建,但并不约定特定实现(例如非特定为C#或Java中的类)。
  3. 实现(软件)透视图:用图来描述特定技术(如Java)中的软件实现。

1.3.3 不同透视图中“类”的含义

  • 概念类(conceptual class)——现实世界中的概念或事物。在概念或本质透视图中使用。UP领域模型中包含概念类。
  • 软件类(software class)——无论在过程还是方法中,都表示软件构建在规格说明或实现透视图中的类。
  • 实现类(implementation class)——特定OO语言(如Java)中的类。

2. 迭代、进化和敏捷

2.1 什么是UP

软件开发过程(software development process)描述了构造、部署以及维护软件的方式。统一过程(Unified Process)已经成为一种流行的构造面向对象系统的迭代软件开发过程。特别是Rational统一过程(Rational Unified Process, RUP)是对统一过程的详细精化,并且已经被广泛采纳。

UP吧普遍认可的最佳实践结合起来,成为联系紧密并具有良好文档的过程描述。

2.2 什么是迭代和进化式开发

  迭代开发(iterative development)是UP和大多数其他现代方法中的关键实践。在这种生命周期方法中,开发被组织成一系列固定的短期(如三个星期)小项目,称为迭代;每次迭代都产生经过测试、集成并可执行的局部系统。每次迭代都具有各自的需求分析、设计、实现和测试活动。

  迭代生命周期基于对经过多次迭代的系统进行持续扩展和精化,并以循环反馈和调整为核心驱动力,使之最终成为适当的系统。随着时间一次次迭代递进,系统增量式地发展完善,因此这一方法也被称为迭代和增量式开发(iterative and incremental development)。因为反馈和调整使规格说明和设计不断进化,所以这种方法也称为迭代和进化式开发(iterative and evolutionary development)。

  迭代的输出不是实验性的或将丢弃的原型,迭代开发也不是构造原型,与之相反,其输出是最终系统的产品子集。

  迭代的一个关键思想是时间定量(timeboxed),例如,假定选择下一次迭代时间为3周,则必须依照时间表来集成、测试和稳定局部系统——推迟时间则违约。

2.3 什么是瀑布生命周期

在瀑布生命周期过程中,试图在编程之前(详细)定义所有或大部分需求。

准则:不要让瀑布思维侵蚀迭代或UP项目

2.4 什么是风险驱动和客户驱动的迭代计划

  UP提倡风险驱动(risk-driven)与客户驱动(client-driven)相结合的迭代计划。这意味着早期的迭代目标要能够识别和减低最高风险,并且能构造客户最关心的可视化特性。风险驱动迭代开发更为明确地包含了以架构为中心迭代开发的实践,意味着早期迭代要致力于架构的构造、测试和稳定。因为没有稳定的架构就会带来高风险。

2.5 什么是UP的阶段和UP科目

UP项目将其工作和迭代组织为四个主要阶段:

  1. 初始(Inception):大体上的构想、业务案例、范围和模糊评估。
  2. 细化(Elaboration):已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。
  3. 构造(Construction):对遗留下来的风险较低和比较简单的元素进行迭代实现,准备部署。
  4. 移交(Transition):进行bata测试和部署。

  UP描述了科目(discipline)中的工作活动,例如编写用力。科目是在一个主题域中的一组活动(及相关制品),例如需求分析中的活动。在UP中,制品(artifact)是对所有工作产品的统称,如代码、Web图形、数据库模式、文本文档、图、模型等。

 

posted @ 2016-03-18 14:48  骑着蜗牛看雪  阅读(1803)  评论(1编辑  收藏  举报