面向对象分析与设计
分析:对问题和需求的调查研究
设计:满足需求的概念上的解决方案
面向对象分析(OOA):在问题域内发现和描写对象
面向对象设计(OOD):如何定义软件对象预计它们之间如何协作以实现需求,所关注的是软件对象的定义-职责与协作
RUP(统一软件过程):架构为中心,用例驱动,迭代与增量式开发,是一种流行的面向对象系统的迭代软件开发过程
测试驱动开发:先写好测试用例,100%通过证明软件开发完成
迭代过程的优点:
- 降低在一个增量上的开支风险,若开发人员重复某个迭代,那么损失只是这个开发有误的迭代的花费
- 降低了产品无法按照既定进度进入市场的风险,通过开发早期就确定风险,可以尽早解决不至于在开发后期匆匆忙忙
- 加快了整个开发工作的进度,开发人员清楚问题的焦点所在,他们的工作会更加有效率
Java三件宝:框架(最不重要),模式(设计模式,问题),领域模型(概念模型) 如何创建领域模型:
- 寻找概念类
- 绘制类型
- 添加关联和属性
- 属性的表示法:
- 普通数据类型表示为属性
- 不要把复杂的领域模型建模为属性
统一软件过程(RUP)就是一个迭代的过程
RUP软件开发周期是一个二维的软件开发模型,有4个阶段,9个工作流
- 初始阶段:为系统建立商业案例并确定项目的边界
- 细化阶段:分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰风险最高的元素
- 构造阶段:所以构件和应用程序功能被开发并集成为产品,所有的功能被详细测试
- 产品化阶段:确保软件对最终用户是可用的
类图
用例定义:用例是文本形式的情节描述,用于对需求的发现和记录,用例会影响后续的OOA/D工作
场景是参与者和系统之间的一系列特定的交互和活动
用例:就是一组相关的成功与失败场景的集合
用例,强调用户的目的和观点
用例的名称应使用动词开头
编写用例的时候用尽量使用行业的专业名称,而不是专业术语