分析设计问题的引入 |
- 一个案例中的设计问题
- 思考
- 为什么设计
- 设计什么
- 如何描述设计-采用UML建模
- 展望后续的路线图
|
软件组成原理 |
- 软件架构的基本结构
- 不同设计粒度的贯穿思考:从程序到架构
- 通用设计原则
|
需求分析 |
- 基于用例的捕获功能需求
- 识别Actor和用例
- 正确书写用例文档
- 识别用例的关系
- 确定非功能需求:
- 案例实践:利用UML图对需求进行建模
|
领域分析 |
- 什么是领域类
- 如何识别领域类
- 领域类在软件中处于什么层次,
- 领域类的粒度如何把握
- 建立领域类,属性,关系
|
软件设计策略 |
- 可扩展性设计策略
- 可靠性设计策略
- 性能设计策略
- 可维护性设计策略
- 易用性设计策略
- 通过案例,思考设计策略如何应用
|
设计原则在设计中的应用 |
- 单一职责原则
- 开放封闭原则
- 依赖倒置原则
- 接口分离原则
- 里氏替换原则
- 如何进行职责划分?如何识别变化?
- 并防止过度设计
|
子系统与模块设计 |
- 软件系统边界和外部系统接口的定义
- 划分子系统原则
- 子系统功能模块的分解
- 子系统间的通信接口的设计
- 如何应对系统内部紧耦合、高内聚
- 案例实践:子系统与模块设计
|
层次设计 |
- 典型的层次模式
- 各个层次划分方法的适应性
- 层次之间的依赖关系
- 案例实践:层次设计
|
类设计与建模 |
- 识别类,
- 确定类的属性和方法
- 设计类之间的泛化
- 设计类之间的关联(聚合、组合、连接)
- 类设计的常见问题于解决方法
- 类的职责划分与对象交互设计
- 案例实践:类设计与建模
|
程序处理流程设计 |
- 处理流程的组成
- 采用活动图建模流程
- 理解处理过程的组成:活动、状态、转移
- 案例实践:处理流程设计与建模
|
状态分析、设计与建模 |
- 理解状态图组成:活动、状态、决策点、同步
- 针对需求识别状态
- 为状态建模
- 把状态转化为设计
- 案例:状态分析、设计与建模
|
详细设计转化为代码 |
- 详细设计转化代码结构
- 详细设计与代码的同步方式
- 结构设计与代码关系
- 交互设计与代码关系
|
设计评审与归档 |
- 设计文档撰写
- 设计文档的评审与基线
- 设计文档的版本管理
- 设计文档的变更控制
|
分析代码,对详细设计进行重构,优化设计 |
- 分析并初步重构一个案例
- 重构准备
- 理解重构原则
- 学习重构名录
- 构筑测试体系
- 选择重构工具
- 分析代码
- 把握优秀程序结构的风格
- 把握如何观察代码
- 发现代码的坏味道
- 重构设计和代码
- 重新组织函数与属性
- 重新组织对象关系
- 简化表达式
- 组织继承体系
- 让重构成为习惯
- 案例:基于现有系统进行代码重构实战
|