UML和模式应用(1):面向对象的分析与设计

UML和模式应用(1):面向对象的分析与设计
 
学习笔记:1小时
 
1.1、什么是分析和设计
 
分析(analysis):强调的是对问题和需求的调查研究,而不是解决方案,即应该如何使用系统,系统应该具有哪些功能。
设计(design):强调的是满足需求的概念上的解决方案(在软件和硬件方面),而不是其实现。最终,分析可以实现,而实现则表达了真实和完整的设计。
分析和设计一词最好加以限制,如面向对象的设计、数据库设计。
 
有益的分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)。
 
1.2、什么是面向对象的分析和设计
 
在面向对象分析(OOA)过程中,强调的是在问题领域内发现和描述对象(或概念)。如,明确一些概念,这些概念也许对应着一些对象。
在面向对象设计(OOD)过程中,强调的是定义软件对象以及它们如何协作以实现需求。如,明确类的属性和方法。
 
1.3、分析和设计的大概步骤
 
1)、定义用例
需求分析可能包括人们如何使用应用的情节或场景,这些情节或场景可以被编写成用例。
 
2)、定义领域模型
OOA关注从对象的角度创建领域描述。OOA需要鉴别重要的概念、属性和关联。
OOA的结果可以表示为领域模型(domain model),在领域模型中展示重要的领域概念或对象。
需要注意的是:领域模型并不是对软件对象的描述,它是真实世界领域中的概念和想像可视化。因此也被称为概念对象模型。
 
3)分配对象职责并绘制交互图
OOD关注软件对象的定义----他们的职责和协作。常用UML顺序图来描述。
 
4)定义设计类图
除了在交互图中显示对象协作的动态视图外,还可以用设计类图来有效的表示类定义的静态视图。这样可以描述类的属性和方法。
 
1.4、什么是UML
 
统一建模语言(UML)是描述、构造和文档化系统制品的可视化语言。
 
UML是一个庞大的语法体系,UML定义了各种UML简档(UML profile),这些简档专用于某些常用主题领域的表示法子集,例如对EJB使用EJB简档。
 
1.5  应用UML的三种方式
1)、UML作为草图----用于探讨问题或解决方案空间的复杂部分。
2)、UML作为蓝图----相对详细的设计图,用于:逆向工程或代码生成(前向工程)。
3)、UML作为编程语言----用UML完成软件系统可执行规格说明,代码可能被自动生成。
 
如果不具备良好的OO设计和编程技能,那么即使使用UML,也只能画出拙劣的设计。
 
敏捷建模(agile modeling)强调了UML作为草图的方式,这也是使用UML的普通方式,而且通常对时间投入具有高回报。
 
1.5 应用UML的三种透视图
 
1)、概念透视图:用图来描述现实世界或关注领域中的事物。
2)、规格说明(软件)透视图:用图来描述软件抽象物或具有规格说明和接口的构建,但并不约定特定的实现。
3)、实现(软件)透视图:用图来描述特定技术(如Java)中的软件实现。
 
1.6 不同透视图中“类”的含义
 
以上三种透视图中“类”的含义分别为:
1)、概念类----现实世界中的概念或事物。
2)、软件类----软件构建在规格说明或实现透视图中的类。
3)、实现图----特定OO语言中类。
 
1.7 可视化建模的优点
 
可视化的工作方式更容易理解和开发大脑,快速掌握符号、单元及关系。
图可以帮助我们更为遍历的观察全景,发现软件元素或分析之间的联系,同时允许我们忽略和隐藏旁枝末节。这是UML或其他图形化语言的本质价值。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言 第一部分 绪论 第1章 面向对象分析设计 1.1 本书的主要内容 1.2 最重要的学习目标 1.3 什么是分析设计 1.4 什么是面向对象分析设计 1.5 简短示例 1.6 什么是UML 1.7 可视建模的优点 1.8 历史 1.9 参考资料 第2章 迭代、进化和敏捷 2.1 什么是UP?其他方法能否对其进行补充 2.2 什么是迭代和进化式开发 2.3 什么是瀑布生命周期 2.4 如何进行迭代和进化式分析设计 2.5 什么是风险驱动和客户驱动的迭代计划 2.6 什么是敏捷方法及其观点 2.7 什么是敏捷建模 2.8 什么是敏捷UP 2.9 UP的其他关键实践 2.10 什么是UP的阶段 2.11 什么是UP科目 2.12 如何定制过程和UP开发案例 2.13 判断你是否理解迭代开发或UP 2.14 历史 2.15 参考资料 第3章 案例研究 3.1 案例研究中涵盖的内容 3.2 案例研究策略:迭代开发+迭代学习 3.3 案例一:NextGen POS系统 3.4 案例二:Monopoly游戏系统 第二部分 初 始 阶 段 第4章 初始不是需求阶段 4.1 什么是初始 4.2 初始阶段的持续时间 4.3 初始阶段会创建的制品 4.4 何时知道自己并不了解初始阶段 4.5 初始阶段中有多少UML 第5章 进化式需求 5.1 定义:需求 5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 6.3 用例和用例模型 6.4 动机:为什么使用用例 6.5 定义:用例是功能性需求吗 6.6 定义:参与者的三种类型 6.7 表示法:用例的三种常用形式 6.8 示例:详述风格的处理销售 6.9 各小节的含义 6.10 表示法:有其他格式吗?两栏变体 6.11 准则:以无用户界面约束的本质风格编写用例 6.12 准则:编写简洁的用例 6.13 准则:编写黑盒用例 6.14 准则:持有参与者和参与者目标的视点 6.15 准则:如何发现用例 6.16 准则:什么样的测试有助于发现有用的用例 6.17 应用UML:用例图 6.18 应用UML:活动图 6.19 动机:用例还有其他益处吗?语境中的需求 6.20 示例:Monopoly游戏 6.21 过程:在迭代方法中如何使用用例 6.22 历史 6.23 参考资料 第7章 其他需求 7.1 如何完成这些示例 7.2 准则:初始阶段是否应该对此彻底地进行分析 7.3 准则:这些制品是否应该放在项目Web站点上 7.4 NextGen示例:(部分)补充性规格说明 7.5 注解:补充性规格说明 7.6 NextGen示例:(部分)设想 7.7 注解:设想 7.8 NextGen示例:(部分)词汇表 7.9 注解:词汇表(数据字典) 7.10 NextGen示例:业务规则(领域规则) 7.11 注解:领域规则 7.12 过程:迭代方法中的进化式需求 7.13 参考资料 第三部分 细化迭代1—基础 第四部分 细化迭代2—更多模式 第五部分 细化迭代3——中级主题 第六部分 其他主题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值