文章目录
Software Engineering
http://www.uml.org.cn/oobject/OObject.asp
http://www.xin3721.com/eschool/rjgcjc/
UML: Unified Modeling Language
软件需求
需求分析 ➕ 需求定义 ➡️ 快速原型 ➡️ 需求说明书文
概要设计说明书**(文)** ➕ 详细设计说明书文
软件设计
组件图
模块之间的关系(包括:运行时库,可执行文件)
序列图
业务的作业流程(先后关系)
类图
系统的子系统. 目的:构建所有必须的类,以及这些类之间的关系
部署图
描述了系统的物理布局,如数据库服务器,因特网等之间的关系
软件测试
测试报告文
- 单元测试(模块的测试,可以并行) +
- 集成测试(模块的集成测试,自顶向下或自底向上测试法,主要依据设计文档) +
- 系统测试(功能测试、压力测试等,主要依据需求规格说明书)
黑盒测试
又称功能测试(着眼在接口上).根据需求,设计文档来测试
白盒测试
又称结构测试,对源代码进行测试,检测代码中每条分支和路径.
JIRA
错误管理(或bugzilla
), LoadRunner
:压力测试, 按键精灵:功能测试
软件维护
软件配置管理(软件发布), 用户手册文
软件开发模型
- 瀑布模型 线性化的模型,很难回溯,过于的理想,现实的问题都是非线性的
- 增量模型 分模块并行开发,每一个模块开启一个流水线
泛化(generalization) is a
继承 inheritance/extends
A ——|> B
实现 implements
A ()---|> B
依赖(dependent) use a
- A类有一个method,它的参数类型是B;
- A类中有个一方法,其实现中用到了一个CB类型的局部变量;
- A类中有一个方法它调用了B的一个静态方法;
A ---> B
关联(association) has a
- CA中有一个成员是CB类型或CB&类型(CA,CB地位相等)
- CA中有一个成员是全局的,它是CB类型对象
- 双向的关联关系可以有两个箭头或者没有箭头; 自身关联表示,CA有一个CA(或CA&)类型的成员
A <>——> B
聚合(aggregation: has a)
- 菱形为实心则为 组合Composition:contains a
- 聚合和组合都是一种更强的关联关系,都表现为:CA有一个CB类型的成员,只能用语义来区别他们:
部分的生命周期是否独立于整体?
A <>---> B
Rose
Rational Rose 逆向工程
新建组件 - 属性-语言 - VC++
组件右键 - Assign to project - 关联工程
组件右键 - update model
但是上面的方法可能生成的类图并不完整.
使用ANSI C++逆向工程
属性-语言 - ANSI C++
组件右键 - ANSI C++-属性 - 添加工程目录,添加文件 - 确定
组件右键 - ANSI C++ - Reverse Engineer
新建类图 - 双击 - Query-Add Classes
如果需要显示的类图简洁些(只显示类名)
Tools - Options - Diagram - Show all…
组合关系
在聚合关系的属性上 Role B Detail - By Value