《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描述的是原始图类型,如类图和顺序图,它并没有在这些图上叠加建模的透视图。
- 概念透视图:用图来描述现实世界或关注领域中的事物。
- 规格说明(软件)透视图:用图来描述软件的抽象物或具体规格说明和接口的构建,但并不约定特定实现(例如非特定为C#或Java中的类)。
- 实现(软件)透视图:用图来描述特定技术(如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项目将其工作和迭代组织为四个主要阶段:
- 初始(Inception):大体上的构想、业务案例、范围和模糊评估。
- 细化(Elaboration):已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。
- 构造(Construction):对遗留下来的风险较低和比较简单的元素进行迭代实现,准备部署。
- 移交(Transition):进行bata测试和部署。
UP描述了科目(discipline)中的工作活动,例如编写用力。科目是在一个主题域中的一组活动(及相关制品),例如需求分析中的活动。在UP中,制品(artifact)是对所有工作产品的统称,如代码、Web图形、数据库模式、文本文档、图、模型等。
《UML和模式应用》读书笔记(一)的更多相关文章
- 《html5 从入门到精通》读书笔记(一)
今天看了<html5 从入门到精通>这本书,感觉阅读下来很舒心,不像阅读其他书籍很揪心.html增加的知识点,我觉得非常有价值,看完几章记录了一些内容,不但能巩固,也为下次遗忘知识点做好准 ...
- HTML5从入门到精通(明日科技) 中文pdf扫描版
HTML5从入门到精通(明日科技) 中文pdf扫描版
- HTML5从入门到精通(千锋教育)免费电子版+PDF下载
本书是HTML5初学者极好的入门教材之一,内容通俗易懂.由浅入深.循序渐进.本书内容覆盖全面.讲解详细,其中包括标签语义化.标签使用规范.选择器类型.盒模型.标签分类.样式重置.CSS优化.Photo ...
- Unity Shader入门精要读书笔记(一)序章
本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...
- Oracle从入门到精通----学习笔记
书名:<Oracle从入门到精通:视频实战版>秦靖.刘存勇等编著 第4章 SQL基础 1.SQL语言分类 数据定义语言 --- DDL,Data Definition Language 数 ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- Unity Shader入门精要读书笔记(二)UnityShader概述
第三章<UnityShader概述>的读书笔记: 1.Unity Shader模板提供了几种选择: 标准光照模型(新添加的基于物理的渲染方法) 不含光照的基本的顶点.片元着色器 屏幕后处理 ...
- 《html5 从入门到精通》读书笔记(二)
接着上面继续记录笔记,这次要记的知识点比较多...记录下我认为比较重要的东西. 一.表单属性 1.autocomplete属性 该属性规定form或input域应该拥有自动完成功能. <form ...
- 《html5 从入门到精通》读书笔记(三)
二.标签详解 标签 描述 4 5 <form> 定义表单. 4 5 <h1> to <h6> 定义标题1到标题6. 4 5 <head> 定义关于文档的 ...
- 《HTML5 CANVAS基础教程》读书笔记
一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...
随机推荐
- 浅析 JavaScript 中的闭包(-------------------------------------------)
一.前言 对于 JavaScript 来说,闭包是一个非常强大的特征.但对于刚开始接触的初学者来说它又似乎是特别高深的.今天我们一起来揭开闭包的神秘面纱.闭包这一块也有很多的文章介绍过了,今天我就浅谈 ...
- 在Dev GridControl中添加颜色可变的ProgressBar z
在使用DevExpress,GridControl自带的ProgressBarControl的时候 由于无法通过BackColor/ForeColor来改变进度条的颜色所以很多特效是实现不了的.如下面 ...
- CA认证原理以及实现(下)
在上述的文章后了解到原理之后,我们这篇文章来进行CA的搭建. OPEN SSL 环境搭建在基础原理中我们提到了两种认证服务,单项认证服务和双向认证服务,我们就以双向认证服务举例说明.OpenSSL是一 ...
- G - Specialized Four-Digit Numbers(1.5.2)
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit cid=1006#sta ...
- sql的一些知识_数据分组
group by--------按**分组查询 SELECT rank, MIN(weight)as min_weight FROM userinfo GROUP BY rank 对分组的值进行过滤需 ...
- Linux安装Java/Maven
所需文件:jdk 下载 安装Java INSTALL_PATH=/opt/soft TAR_FILE=/mnt/d/resources/soft/jdk-8u152-linux-x64.tar.gz ...
- 爬虫框架_scrapy1
介绍: Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可用 ...
- Jquery 插件 实例
先说明下应用场景,通过可配项的配置和默认项覆盖,获取指定的需求数据,填充到指定的位置(两个指定其实都是可配的) (function($) { $.fn.extend({ getOneNews: fun ...
- OcelotAPI 简单使用—服务发现、流控
我这人比较懒 直接上配置文件的图 其中serviceName是服务名称, LoadBalancer是负载均衡策略. 对于流控我为了做测试写的1s 限制5次请求. 剩下的看名字就OK了. 要使用服务发现 ...
- poj 1730Perfect Pth Powers(分解质因数)
id=1730">Perfect Pth Powers Time Li ...