一、软件过程:
需求-->分析-->设计-->实现-->发版,维护(测试需要伴随着每一个环节,而不是开发完成之后再参与)
二、需求获取&分析:
侧重于业务端,也包括简单类图(只包括类名),产出分别是PRD文档和需求规格说明书(需求分析文档)
三、面向对象泛型(OOP)
模块内部,高内聚(cohesion)
low-->high
共同特点:可重用性&可扩展性。
偶然性(concidental
)内聚:模块内部杂乱;解决方法:拆分成多个模块
逻辑性内聚:调用&被调用关系错乱,调用模块依赖被调用模块,被调用模块内部功能较多。可重用性差。
时间性内聚:
过程性内聚;
通信性内聚:
功能性内聚:一个模块只有一个功能。
信息性内聚:
模块之间,低耦合(coupling):
bad-->good
内容耦合;
公共耦合;
控制耦合;
印记(stamp)耦合
数据耦合
类之间的关系:
继承(父类&子类)
聚合(整体&部分):注意实心菱形代表整体销毁了,部分也销毁了,如人&腿;空心菱形不一定,如PC&CPU
关联(主语&宾语)、
多态与动态绑定
面向对象泛型:是相对于结构化泛型而言的;
做法:
属性&行为放在一起(既面向行为,也面向数据);
数据封装&信息隐藏;
职责驱动设计(合同设计)
VS结构化泛型:
OOA阶段:决定产品做什么;提取Objects
OOD阶段:详细设计
OOP阶段:编码阶段,使用合适的面向对象编程语言
UML
常用的UML图;
软件过程每个阶段需要使用的UML图:
这块需要细化
四、面向对象分析(OOA)
用例建模;
类建模(CRC卡片法;名词抽取法);产出:类图,包括实体类、边界类、控制类
动态建模:产出是状态图;
测试OOA:这块需要细化
五、面向对象设计(OOD)
高层设计--架构设计,产出是架构设计文档
详细设计--UI、数据库设计、详细类设计、数据结构&算法
UI设计:美观性、易用性
数据库设计:另起文章说明
面向对象设计:顺序图;详细类图(包括数据结构&方法&算法)