斗爷

导航

[在职软件工程]面向对象的分析与设计

第一部分 基础篇

第1章 面向对象方法概述

对象,:系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和施加于这组属性的一组操作构成。

类,:具有相同属性和操作的一组对象的集合。

封装,把对象的属性和操作结合成一恶搞独立的系统单位,并尽可能隐蔽对象的内部细节

继承,特殊类拥有其一般类的全部属性与操作

聚合,两个类之间的一个二元关系,它表示一个类的对象实例以另一个类的对象实例作为其组成部分

关联,两个或者多个类上的一个关系

消息,消息是对象之间在一次交互中所传送的信息

多态,被类继承后,可以具有不同的数据类型或表现出不同的行为

第2章 不同的分析与设计方法

功能分解法,结构化方法,信息建模法,面向对象方法

优点:1.问题域和系统责任的复杂性  2.交流问题 3.需求的变化 4.软件复用的要求

第3章 统一建模语言UML简介

OOA模型框架,OOA过程模型

第4章 本书的OOA&D方法概貌

OOD模型框架,OOD过程模型

¡什么是面向对象的分析(OOA)?
§OOA
▪就是运用面向对象方法进行系统分析。
▪运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系。
§基本任务是:
▪运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域及系统责任所需的对象,定义对象的属性、操作以及它们之间的关系。
§目标是:
▪建立一个符合问题域、满足用户需求的OOA模型

第二部分 分析篇

第5章 建立需求模型--用况图

系统边界

参与者:1.人员 2.设备 3.外系统

用况:是对参与者使用系统的一项功能时所进行的交互过程的描述,其中包含由双方交替执行的一系列动作。

参与者与用况之间的关系:延伸,包含,泛化(继承)

开发过程:1.确定系统边界。2.发现参与者 3.定义用况 4.建立用况之间的关系 5.确定参与者和用况之间的关系 6.绘制用况图

 

¡简单的功能罗列
§呈扇形排开
§二者没有任何语义上的区别
§
¡建模不充分
§对于问题域的用况关系(需求)
没有充分地使用用况图提供的
建模元素
§
§例如:
▪参与者间的继承/泛化关系
▪用况之间的延伸(extend)、包含(include)、以及泛化(generalize)关系 *
§注意:并非鼓励增加不必要的复杂度
§          KISS 原则 Keep It Short & Simple)

第6章 发现对象,定义对象类

1.考察问题域:人员,组织,物品,设备,抽象事物,事件,文件,结构

2.考察系统边界

3.对照系统责任

------------------------------------------------------------------

策略与启发
◦ 考虑问题域
􀁸 人员,组织,物品,设备,抽象事物,文件,结构
◦ 考虑系统边界
􀁸 人员,设备,外系统
◦ 考虑系统责任

--------------------------------------------------------------------

􀁠 问题域
◦ 人员
􀁸 买家、卖家、系统管理员、业务管理人员
◦ 抽象事物
􀁸 支付宝账户、支付平台-银行交易信息、买家-卖家交易信息、
客户充值/提现交易信息
◦ 结构
􀁸 一般-特殊结构:普通用户、工作人员
􀁸 整体-部分结构:实名认证资料(卖家)
􀁠 考虑系统边界
◦ 与银行网关接口、与商户系统接口
􀁠 考虑系统责任
◦ 检查疏漏的对象

第7章 定义对象的属性和操作

属性:是用来描述对象静态特征的一个数据项

操作:是用来描述对象动态特征的一个动作序列

实现接口:空心三角形+虚线

第8章 建立对象间的关系

一般特殊结构:继承,泛化:空心三角形+实线

整体与部分结构:聚合,空心菱形+实线;组合实心菱形+实线

关联:实线

            <<call>>

消息:--------------->

依赖:虚线箭头

第9章 建立辅助模型

包图:是一种把元素组织到一起的通用机制。包之间的关系:引入,访问,合并。

顺序图:对象之间如何进行交互。对象(生命线),操作(控制焦点,执行规约),消息(激发)

活动图:流程图。动作和活动,判断与合并,分叉与汇合,起点,活动结束和流结束,活动边,泳道

状态图:例子,电话的状态。

构件图:接口,实现与使用。

部署图:

第10章 模型规约

对软件的建模中产生的模型所做的详细解释与说明。

对模型的细节进行详细解释和说明
􀁠 图形文档不够详细、精确
􀁠 类规约
◦ 类的总体说明、属性说明、操作说明、。。
􀁠 对用况图的规约
◦ 对每个用况进行文字描述
􀁠 对其他模型图的规约

第三部分 设计篇

第11章 问题域部分的设计

在OOA的基础上,按照具体的实现条件进行必要的修改,调整和细节补充而得到的。

1.针对编程语言支持能力的调整:继承和多态的调整

2.增加一般类,提供共同协议

3.为实现复用采取的设计策略

4.提高性能

影响性能的因素:数据传输时间,数据存取时间,数据处理时间

a.调整对象分布b.缩短对象存取时间.c.合并消息频繁的类.d增加属性以减少重复计算.e.降低算法的计算复杂度.f.细化对象的分类.g将复杂对象化为整体-部分结构

5.为实现对象持久化存储所做的修改

6.完善对象的细节

a.弥补OOA模型的不足 b.解决OOA阶段推迟考虑的问题 c.设计对象的操作 d.设计表示关联的属性 e.设计表示聚合关系的属性

7.定义对象实例

8.修改或补充辅助模型及模型规约

建立于OOA文档的映射

---------------------------------------------------------------------------------------------------------

•主要集中于对OOA阶段的基本模型进行必要的修改、调整和补充。
–完善细节(属性、操作)
–对多继承的调整(整体-部分)
–增加类及提取一般类(管理器——与数据库相关的操作提取出来,分别新建专门的信息管理的类来完成相应的数据库操作,如添加、删除等)
----------------------------------------------------------------------------------------------------------
¡主要集中于对OOA阶段的基本模型进行必要的修改、调整和补充
§完善细节(属性、操作)
§对多继承的调整(整体-部分)
§增加类及提取一般类
▪管理器——与数据库相关的操作提取出来,分别新建专门的信息管理的类来完成相应的数据库操作,如添加、删除等
§提高性能的 7 个修改方法
§为数据存储管理增补属性与操作
§等等
 
 

第12章 人机交互部分的设计

人机交互部分的需求分析:

1.分析参与者

2.从用况分析人机交互

3.分析处理异常事件的人机交互

4.命令的组织

5.输出信息的组织

人机界面的设计准则:

1.使用简便 2.一致性 3.启发性 4.减少人脑记忆的负担 5.减少重复的输入 6.容错性 7.及时反馈

------------------------------------------------------------------------------------------------------

•用户体验
–Web1.0和Web 2.0,Windows vs. Linux,Office 2003 vs. Office 2007
•主要思考
–有哪些交互(输入、输出)
–交互的过程
–如何交互(表现形式)
•人机交互的需求分析
–分析参与者
–分析用况
–分析异常事件
•目标
–对用户和系统交互的界面进行设计
–用OO的概念表示界面
-------------------------------------------------------------------------------------------
¡人机交互形式 UI
§本地应用程序
§窗口式、命令行式、悬浮式工具栏
§Web应用程序
§静态HTML vs. Web2.0 & AJAX
§
¡主要思考
§有哪些交互(输入、输出)
§交互的过程、如何交互(表现形式)
§
¡人机交互的需求分析
§分析参与者、分析用况
§
¡用户体验 UE
¡Apple 

第13章 控制驱动部分的设计

•明确系统如何并发,有哪些控制流;
•运行时,当一个主动对象被创建,其主动操作将被创建为一个控制流;所有的主动对象由主动类描述,所有的主动类构成OOD模型的控制驱动部分
•设计
–选择软件体系结构风格:(C/S)
–确定系统分布方案
–识别控制流并用主动对象表示之
–表示:类图,顺序图等
---------------------------------------------------------------------------------------------------------
¡明确系统如何并发,有哪些控制流;
¡
¡运行时,当一个主动对象被创建,其主动操作将被创建为一个控制流;
¡
¡所有的主动对象由主动类描述,所有的主动类构成OOD模型的控制驱动部分
 
 

第14章 数据接口部分的设计

•负责与具体的数据管理系统衔接
•为永久对象提供了在选定的数据管理系统中进行数据存储与恢复功能
•主要包括
–数据接口部分的对象设计
–问题域部分的修改
–数据库表设计
------------------------------------------------------------------------------------------
¡系统中需要持久化的对象
§对象的属性
§对象之间的关联关系
¡
¡高阶话题
§面向对象数据库
§成熟框架: Hibernate
 
 

第15章 构件化与系统部署

posted on 2014-03-20 16:41  斗哥哥  阅读(536)  评论(3编辑  收藏  举报