Skip to content

Latest commit

 

History

History
189 lines (138 loc) · 5.42 KB

20181031面向对象系统分析与设计.md

File metadata and controls

189 lines (138 loc) · 5.42 KB

20181031面向对象系统分析与设计

考试内容:面向对象的分析与设计 客观题60分;填空题40分

复习以PPT为基础 UML要弄懂

面向对象系统设计

将分析模型的逻辑结构适应到实现环境中(环境约束): 更多考虑的是非功能性需求的影响 考虑系统范围内的设计因素:什么环境 什么语言等 考虑环境约束 如何划分子系统 子系统之间怎样交互

面向对象中更注重的是系统整体的设计 系统中的类不能太复杂(一两个职责)

为什么不直接实现: 1 需要考虑非功能性需求的影响 2 系统需要适应环境 3 分析模型还不够格式化 需要 提炼出分析类 定义操作 定义类之间如何交互 4 我们需要验证分析结果

面向对象设计:连通分析与编程的桥梁

需求与新系统编程的桥梁 面向对象设计的进程是基于何种面向对象模型来进行的 开发人员通过设计来编程和测试 用户界面 网络 控制 安全等细节都需要设计任务和模型

面向对象编程:

对象的设置帮助完成结果 对象包含了编程逻辑与必要的属性 对象互相发送消息来协作提供主程序的功能 面向对象系统设计者为编程人员提供细节(各种UML图)

事件驱动的编程模式 那张图

需求模型与设计模型 那张图 设计模型中多了Package diagram

分析模型与设计模型的比较 那张

设计目标: 质量主要来源于非功能性需求 需要对设计目标排序一个优先级

设计目标:一些必须拥有的品质 性能标准(响应时间 吞吐量 内存) 可维护性标准(可扩展性 可修改性 适应性 可移植性 可读性) 依赖性标准(鲁棒性 可依靠性 可用性 容错率 安全性) 成本标准(开发 部署 升级 持久化 管理 回溯) 端用户标准(工具 可用性)

系统范围的设计因素

数据操作:文件 关系型DBMS 面向对象DBMS 访问控制:全局访问表 访问控制表 访问能力 控制流:过程驱动 事件驱动 多线程 边界条件:系统如何启动 关机和处理异常

对开关机具体说明系统管理用例 对错误具体说明异常处理机制

实现环境 系统需要的硬件/软件 程序设计语言:面向对象 非面向对象 已有软件:DBMS 旧版系统等 开发人员与组织

一般的实现环境的设计策略:创建代理构件(代理类)以本地化和概括系统需要环境的依赖 通常需要定义附加的类来处理实现环境 那张图

人工制品与工作者(职责) 架构师:设计模型 部署模型 架构描述 用例工程师:用例实现设计 组件工程师:设计类 设计子系统 系统接口

用例设计 找出系统中的设计类 详细说明:类图 找出主动类 实现方面的需求(非功能性)

面向对象设计的迭代过程 1 初步设计 2 对每个用例或场景开发交互图 3 回到设计类图 4 用包将类图分割为关联功能类

总体设计过程 1 开发首个设计类图展示导航可视性 2 对每个用例开发时序图 3 更新设计类:增加方法签名和导航信息 4 恰当地分割解决方案

第一轮设计图:详细定义系统的边界(与外界的交流) 标注系统顺序 第一轮设计的假设 完美技术假设(忽略系统控制) 完美内存假设(忽略对象创建) 完美解决方案假设(忽略异常)

DataAccess层:数据控制 负责数据库与内存的数据交互 在系统启动时就创建 数据操作之前先访问DA类 那张图

View层:在角色和控制类之间加入GUI表格或Web页面 那张图

视图层 领域层 数据访问层 那张图

类的设计

设计类是那些具体性达到可实现程度的类

设计类有两个来源: 问题领域 解决方案领域

对边界类:详细说明用户接口技术 对实体类:详细说明数据管理技术 对控制类:分发问题 性能问题 事务控制问题

设计活动: 将类的本身做完整: 忽略的属性 关系和操作 细化类型签名(方法名 返回值 参数 条件等)与可见性 操作的约束(先决条件 后续条件) 异常值捕获

选择可重用组件: 类库 泛型设计机制

重构设计模型: 实现关系 增加可重用性 规划继承/代理层次

充分利用设计模型: 修改控制路径 合并部分的类 将代价高的计算结果缓存 延迟代价高的计算(如图片显示懒加载)

  • 设计模式原理 要懂得解决问题应该对应使用哪种设计模式

好的设计类: 完整且自满足 应该做用户期望的事 类从概念上来说应该是基本的不可分的 高度一致性 低耦合性

泛型设计机制

设计模式 对通用问题的一个有名字的易理解的解决方案 框架 构造了系统本身的架构

内存模型与永久存储模型(DBMS) 设计模式:对象到表的转换 类 -> 表 每个原始属性 -> 表的列 主键对应类的id 用户不可见 对象 -> 表的记录项(行) 关系 -> 类

数据库访问的设计模式

子系统的设计:包 包可能包括:类 子系统 用例的实现 接口 用例可以设计成一系列子系统(而不是类)的协作 子系统可以在交互图中使用(允许分层概念 层间架构有约束 一般3至5层)

子系统 那张图

子系统接口 应用编程接口(API) 主要强调服务 要求耦合度低(接口独立性)

部署模型 展示结点与它们的关系 示例图