详细设计思路
1. 指导方略
① 软件架构师完成设计规范的制定
② 设计任务由架构师分配
③ 设计的过程由架构师来进行制定
④ 推荐使用
n Rational RMC
2. 获得设计素材
① 局部分析
n 边界对象
n 实体对象
n 控制对象
② 健壮性分析
③ 场景装换
④ 对象整理工作(获得80%的类)
3. 去除重复性设计
① 类更小分解
n 重复性提取
② 重复性类只做一次
4. 去除相似性设计
① 共性与个性的分离
② 封装共性到基类
n 抽象类或接口
n 深层次设计
考虑扩展性问题
à 桥接模式
对象管理
à 工厂模式
算法问题
à 模板模式
à 策略模式
à 状态模式
à 职责链模式
流程问题
à 状态模式
à 构建者模式
à 管道过滤器模式
管理问题
à 微核模式
取自架构
à 管道过滤器
à 代理者模式(10种)
à IOC模式
à AOP模式
à 反射模式
5. 发现变化趋势
① 用例的扩展点发现变化趋势
② 看到趋势后–封装变化趋势
6. 类的元模型提取
① 类不断的原子化
② 类的分类
7. 类的质量设计
① 质量属性
n 用户的视角获得质量描述
② 设计质量
n 服务性元素
8. 类的环境设计
① 类的依赖平台
② 软件环境
n 操作系统
n 语言
n 框架
UML容易让一些人望而生畏,这也不奇怪,因为它看起来有些复杂,不过作为一种描述的文档,它毕竟是有用的。
use case:在需求阶段,捕捉用例,为后面的分析提供初步的依据
健壮性分析 :画出边界对象、控制对象、实体对象
序列图:描述场景
类图
整体关系如下:
继续谈我的软件设计师课程中的体会:
这次课程中看到老师的硬盘里充满了实际的项目,一方面佩服老师做过的项目之数量之惊人,另一方面也感受到到处充满着设计的内涵,从系列的文档之中感觉到做的之专业。
老师提示: 多阅读经典源代码,比如jive,junit,类库等等,最好也多从宏观的角度来观察,比如uml角度,设计模式的角度。这次我就把jdk和junit、hibernate等的代码导入到EA,下一步就是好好的阅读下 ,希望能有收获。
另外一点:技术的互通性是正常的,做java的不要对微软有敌视,反之也然,作为架构师或系统分析师,应该从设计的角度来看待二者,具体展现可能不同,但是思想总是可以借鉴的。当然,这是更高的一个境界了。
最近参加了一个软件设计师的课程,老师推荐了几本比较经典的书
1.变化是绝对的,静止是相对的
2.需求是一定要变的,设计的人希望需求不变,此时,用的方法叫“面向过程”
3.客户永远是对的,所以,请满足客户的要求.
4.用面向对象分析与设计的方法来进行系统设计,注意,设计,没有设计后果很严重。用架构的思想来设计的时候,就叫”面向对象”.
5.架构设计是一种艺术,也是一种平衡
6.先从uml开始吧.
软件架构基础
软件架构设计
软件架构实践
系统架构师
1.架构的分类:业务架构、数据库架构、软件设计架构,正在流行的所谓soa架构也算吧
2. 涉及到的主要内容:
3.今天一同事说在网上看到统计数据说基于soa的架构做的项目比传统的做法成功率确实高,可能性是存在的,不过也不排除这些统计数据是某些大厂赞助的结果
4.今年打算有机会的话培训一下软件设计师的课程,内容摘要如下:(来自国信培训)
一、面向对象分析设计与UML
Ø 面向对象分析与设计OOAD
Ø UML建模与ICONIX进程
Ø 领域建模与用例建模
Ø 需求分析与UseCase
Ø 健壮性分析
Ø 时序图
Ø 对象图、状态图、活动图与协作图
Ø 类图、包图与组件图
Ø 部署图
Ø UML与RUP
Ø 设计进度和设计粒度的控制
二、设计模式
Ø GOF设计模式
Ø 创建型模式
Ø 结构型模式
Ø 行为型模式
Ø 模式扩展
Ø 开源项目中的设计模式
Ø 模式与交流
三、软件设计管理
Ø 软件设计文档
Ø 软件流程改进策略
Ø 软件设计风险管理
四、相关软件设计案例集
5.有兴趣的朋友可以看一下这张IT培训方面的图,还是挺全面的: