- 浏览: 503997 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (329)
- [发布至博客园首页] (12)
- [随笔分类][01] .Net X (59)
- [随笔分类][20] Architecture (16)
- [随笔分类][21] Developer Logs (13)
- [网站分类]Windows 7 (1)
- [随笔分类][13] Oracle & .Net (7)
- [随笔分类][16] Love in China (14)
- [随笔分类][15] Development Tools (20)
- [随笔分类][18] Windows Phone (12)
- [随笔分类][12] Design & Pattern (17)
- [网站分类].NET新手区 (22)
- [网站分类]首页候选区 (2)
- [随笔分类][08] Windows (Server) (13)
- [随笔分类][02] CSLA.Net (3)
- [随笔分类][10] jQuery & javaScript (10)
- [随笔分类][11] SQL Server (4)
- [随笔分类][22] Enterprise Logs (3)
- [随笔分类][03] News (9)
- [随笔分类][19] Quality Assurance (2)
- [随笔分类][05] Silverlight (20)
- [随笔分类][14] Google Earth & .Net (6)
- [网站分类]非技术区 (9)
- [随笔分类][07] WWF (2)
- [随笔分类][04] SharePoint (1)
- [随笔分类][20] Analysis & Design (36)
- [随笔分类][06] WCF (5)
- [随笔分类][12] Architecture (1)
- [随笔分类][09] WPF (0)
- [随笔分类][17] VStudio & Expression (5)
最新评论
-
zhangyy130:
你好,我关于第二段的那个表视图、模型与图这三者的关系我没有看明 ...
UML模型的组成 -
guji528:
谢谢分享!
Enterprise Architect 基础应用 -
studentsky:
好文章,图文并茂!
WCF 第一个用 Visual Studio 2010 创建的WCF服务 -
chen975311486:
用哪个工具画的????
UML中对关系的描述 (二) -
frankies:
继续学习中。。
UML 交互概述图
面向对象的分析和设计(Object Oriented Analysis And Design )3个重要的概念 -- 对象、分析、设计
对象
封装(Encapsulation)
公布功能部分内容,隐含内部实现。
松散耦合(Loose coupling)
耦合代表一个系统使用另一个系统功能的深度或依赖程度,依赖程度越大对于修改所带来的维护就会越多,对其他系统的影响越大,通过接口定义实现前期考虑,这样,对接口内部的修改或者扩充都不会影响到系统其他部分
强内聚(Strong cohesion)
内聚指一个对象中的属性和方法对所描述和实现的内容的完整封装程度,强的内聚可以让程序更好理解,更可靠。
面向对象编程包括核心概念
类,属性,操作,对象,继承,组件,接口
组件:组件是相关类的集合,你可以理解为一个类库项目生成的dll,或者应用程序exe,或者asp.Net 网站
接口:接口你可以从两个方面去理解,
1.从interface理解,就是我们程序中interface文件,必须对他进行进一步的实现,提供了一些方法的约定。
2.接口是组件或者类提供的一组服务的定义,就是我们理解的调用接口,或者称它为使用方法,每个组件或者程序都会提供使用它的方法比如Button控件,提供了Text属性和Click事件,这就是接口。
接口的用意就是希望定义使用规则,而隐含实现细节
分析
软件开发中,分析是研究并定义所要解决问题的过程。
他们包括要实现的需求,以及要达到的结果目标
面向对象的分析(OOA),是根据对象来定义问题,查找关注领域中的对象,分析这个对象,并验证这个对象是否符合我们的要求的过程。(用例图,部署图,组件图,术语表)
设计
如果分析意味着定义问题,那么设计就是定义解决方案的过程,他包括定义一些方法,系统将使用这些方法来满足分析期间表示的每个需求。
面向对象的设计(OOD)是定义组件、接口、对象、类、属性和操作的过程(组件图和类图),以满足各种需求,细化需求模型中的定义,重点在:体系结构的设计(组件图,定义组成系统的模块和组件,子系统等),以及组件设计(类图,定义组件中的类和接口)
模型
建立模型的目的是希望通过更简单更短时间,尽可能早的 对不存在的准备开发的系统进行更加深入的了解和沟通。
在使用UML的OOAD情况中,模型主要由图组成:
静态图描述了系统的结构,你可以确保每个组件或类可以访问执行它应当负责行为需要的接口和信息。
动态图则描述了系统的行为,你可以跟踪具体的行为,并且分析不同的情况结束。
OOAD过程的劳动结果是模型,生成多种模型
分析模型:该模型是针对已有的系统,终端用户的需求,以及这些需求的可能解决方案的高层次理解。(用例图,界面原型,术语表)
体系结构模型:解决方案的组件,接口和结构,该结构在多个节点间的部署(组件图和部署图),确定该结构的各种权衡和决策;
组件(设计)模型:以组件为单位,一个组件定义一个类图,类图中包含这个组件中的所用的所有的类,属性,操作,依赖关系,和行为。(类图)
图形画的再好也不如真正的软件来的直观,如果有可能还是希望拿出一些时间,做一个界面原型,利用界面原型去沟通可以发现很多存在的问题,给客户最真实的体验。
通过模型,我们可以更早的改变模型,而不是改变代码,在前期思考和解决80%的缺陷(bug),降低成本开销。
但是对于极限开发(XP),敏捷开发来说这套按部就班的方法已经过时了,他们认为现在的开发工具可以控制代码修改的开销。
每种观点都有他的道理,而这UP和XP却在很多关键思路上发生冲突,那么哪一种是正确的呢,还是自己体会吧。
如果你在一家小公司,没有协作那么建模的沟通也许意义也不大,自己的心里有数,并且你的经验能力可以,也许XP是可行的,但是如果是在一家正规的大企业,应对大的项目,支撑XP继续可行就需要演变,那么演变的方法方式实际上还是UP。
建模起到了引导的作用,可以使得我们的注意力更加的集中,问题更加的突出,时间更容易把握
建模好像对一本书建立一个提纲,这个提纲可以让我们有计划的,全面地在脑海里面拥有一个计划和概念框架,很多时候往往这些更加的重要。
当然我们不能忘记建模给交流和资料存档所带来的好处。
在网上其他朋友的理解
OOAD概述
出自:http://www.cnblogs.com/leetle/archive/2006/12/10/588246.html
OOA
Object-Oriented Analysis (OOA):面向对象的分析与设计
OOA的侧重点是业务领域分析,与软件所要应用的行业领域相关,而与软件技术关系不大,需要由领域专家进行。这一部分的工作被称为“需求分析”。
OOA的成果:
业务领域用例图
活动图
协作图
大量的业务文档资料
OOD
Object-oriented design (OOD),用面向对象的方法为真实世界建立一个
计算机中的虚拟模型
OOD的地位
OOD的主要任务是跨越业务领域模型与可实际运行的软件系统之间的鸿沟。
OOD的难度是非常大的,负责OOD工作的人被称为系统架构设计师
系统架构设计师的任务
确定系统的总体框架---大多采用已有的领域框架
正确理解需求分析得出的领域模型,用面向对象的思想设计出软件体系结构---系统概要设计
分析现实的可获取的技术资源,分解出软件的各个组件,安排好开发任务流程---系统详细设计
OOD的成果
系统中有多少个类?
系统中这些类间有什么关系(系统静态特性)?
系统中这些类生成的对象如何协作来完成工作(系统动态特性)?
系统中如何管理这些类和对象?
类图,数据库模型,部署图,组件图,开发框架确定,用户UI确定
OOP
Object-oriented Program (OOP)
用一种面向对象的语言来实现OOD完成的系统设计
流行的面向对象语言简介
Java、C++、Object Pascal、C#、VB.net……
关于OOP
用面向对象的语言编程不是OOP!
OOP最重要的特征是面向对象理论的广泛应用
OOP的成果是可运行的实际系统
OOP中掺杂着OOD,OOP与OOD你中有我,我中有你,OOP是具体的OOD,二者的区别就在于应用范围的不同。
发表评论
-
享元模式(Flyweight)
2009-12-13 19:26 769重点概念 1. 这个模式相对简单。享元模式,就是在工厂 ... -
理解软件外包的种类
2009-12-17 21:11 554包项目 包人 包时间 -
解释器模式(Interpreter)
2009-12-20 14:02 617重要概念 1. 给定一个语言,定义它的文法的一种表示,并定义 ... -
访问者模式(Visitor)
2009-12-20 16:13 760重点概念 1. 双分派:得到执行的操作决定于请求的种类和接收 ... -
观察者(发布订阅)模式 与 委托事件
2009-12-02 17:07 998多一些宽容 重点概念 1. 开放封闭原则,修改原有代码就说 ... -
抽象工厂模式(Abstract Factory)
2009-12-02 22:20 1051开闭原则和依赖倒置原则是面向对象设计的重点,编程是一门艺术,大 ... -
状态模式(State)
2009-12-03 17:53 679重点概念 1. 方法内容如果过长其实就有可能出了问题。 2. ... -
适配器模式(Adapter)
2009-12-03 22:59 715适配器模式比较简单常 ... -
备忘录模式(Memento)
2009-12-06 10:59 722重点概念 1. 希望把存取状态的细节封装起来,而且最好是封装 ... -
组合模式(Composite)
2009-12-06 15:39 617重要概念 1. 将对象组合成树形结构以表示‘部分-整体’的层 ... -
迭代器模式(Iterator)
2009-12-06 16:48 907C# 中已经实现了迭代器功能, foreach in 和 IE ... -
单例模式(Singleton)
2009-12-06 19:55 788重点概念 1. 所有类都有构造方法,不编码则系统默认生成空的 ... -
大型网站性能优化的通用方法
2009-12-10 12:56 7781、HTML静态化其实大家 ... -
桥接模式(Bridge)与合成/聚合复用原则(CARP)
2009-12-13 12:40 1052重要概念 1.合成/聚合 ... -
命令模式(Command)
2009-12-13 14:16 754重要概念 1.命令抽象类,也是命令模式的核心理解 2. ... -
职责链模式(Chain of Responsibility)
2009-12-13 16:13 1094重要概念 1. 使多个对象都有机会处理请求,从而避免请求的发 ... -
依赖倒转(依赖倒置)原则
2009-11-30 15:23 7691. 抽象不应该依赖细节,细节应该依赖于抽象(接口,抽象类)。 ... -
装饰模式(Decorator)
2009-11-30 18:32 778重点概念 1. 把所需的功能按正确的顺序串联起来进行控制。 ... -
代理模式(Proxy)
2009-11-30 21:55 717大话设计模式讲的和连环画一样,还可以接上,作者真用心,看起来很 ... -
工厂方法模式(Factory Method)
2009-12-01 10:57 906重要概念 本章内容围绕简单工厂与工厂方法的比较很好的说明了工 ...
相关推荐
面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程领域中的一种重要方法,它强调在软件开发过程中,以对象作为基本的思考和组织单元,通过分析问题域中的实体及其相互关系,来构建...
面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程领域中的一种重要技术,它主要用于构建复杂、可维护的软件系统。本课件是北大青鸟内部培训材料,全面且深入地讲解了面向对象的理论...
面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程领域中的一个核心概念,它强调在软件开发过程中,以对象作为基本的思考和组织单元,通过分析现实世界的问题来构建软件模型。...
本书旨在为读者提供一套完整的面向对象分析与设计(OOAD)的方法,并结合实际应用案例来帮助读者深入理解面向对象的核心概念和技术。 #### 面向对象分析与设计概述 面向对象分析与设计是一种软件开发方法,它强调...
由于提供的文件内容不包含实际的文本信息,而是重复的URL链接,因此无法从该部分提供有关面向对象分析与设计(OOAD)的知识点。但是,我将尽可能详细地介绍面向对象分析与设计的相关知识点,以满足您的需求。 面向...
在处理复杂系统时,Booch 等作者提出了一种系统化的新方法,结合了面向对象分析与设计(OOAD)和UML,来构建系统的架构。这种方法强调了系统架构的重要性,使得整个系统的构建过程更为清晰和有序。此外,书中还对对象...
面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程领域中一种重要的方法论,用于创建复杂系统的过程。它强调通过识别和建模现实世界中的对象来理解和解决问题,从而实现软件的高效...
面向对象分析与设计(OOAD)是软件工程领域的一个核心概念,它涉及到将现实世界的问题转化为计算机程序的过程。本主题涵盖了面向对象编程的基本原理、分析方法、设计模式以及相关工具和技术。以下是对这一主题的详细...
面向对象分析与设计(OOAD)是软件工程领域的一个核心概念,它强调通过模拟现实世界的对象及其相互作用来设计和构建软件系统。OOAD不仅是一种技术,也是一种思维方式,旨在简化复杂系统的开发,提高代码的可读性和可...
面向对象分析与设计(Object-Oriented Analysis and Design, 简称OOAD)是软件开发过程中的关键步骤,它结合了模型驱动工程(Model-Driven Engineering)与统一建模语言(Unified Modeling Language, UML)等现代...
10. **分析模型的表示**:统一建模语言(UML)是面向对象分析和设计的主要表示工具,包括类图、对象图、序列图、协作图、用例图等多种图形表示。 这些知识是学习面向对象分析的基础,理解和掌握这些概念对于软件...
总的来说,这个面向对象与分析的习题集是一份宝贵的资源,可以帮助学习者巩固理论知识,提升实践技能,对于理解和掌握面向对象分析设计方法,特别是UML的应用,有着积极的促进作用。通过深入学习和解答这些习题,你...
根据提供的文件信息,有关《面向对象分析与设计 Grady 著 中文版(第三版)》的知识点将围绕面向对象分析与设计(Object-Oriented Analysis and Design, 简称OOAD)的主要概念进行详细说明。由于提供的部分内容重复...
面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是计算机科学领域中一个核心的概念,尤其在软件工程中占据着重要的地位。它是一种系统化的方法,用于理解和构造复杂的软件系统,通过模拟真实...
面向对象分析与设计(Object-Oriented Analysis and Design,OOAD)是软件工程领域的一种方法论,专注于如何通过面向对象(Object-Oriented,OO)的方法来分析和设计软件系统。面向对象的方法强调对象是系统的基本...
面向对象的分析和设计是现代软件企业广为采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的对象和实体。面向对象能够更好的去理解你要做的东西应该如何去做。