目录
1、COMET基于用例的软件生命周期
1.1、需求建模
1.2、分析建模
1.3、设计建模
1.4、增量软件构建
1.5、增量软件集成
1.6、系统测试
2、COMET与其他软件过程比较
2.1、与RUP对比
2.2、与螺旋模型对比
3、需求、分析和设计建模
3.1、需求建模活动
3.2、分析建模活动
3.3、设计模型活动
4、设计软件体系结构
COMET(Collaborative Object Modeling and Arch-itectural Design Method,协作的对象建模和体系结构设计方法)。
COMET是一个选代的用例驱动和面向对象的方法,
强调软件开发生存周期的需求、分析和设计建模阶段。
1)需求模型:用参与者和用例来描述系统的功能性需求。每个用例定义了一个或多个参与者与系统之间的交互序列。
2)分析模型:实现用例,以描述参与用例的对象以及它们之间的交互。
3)设计模型:开发软件体系结构,以描述构件以及它们之间的接口。
1、COMET基于用例的软件生命周期
1.1、需求建模
所开发的需求模型使用参与者和用例描述了系统的功能性需求。每个用例要开发一个叙述性描述。在此过程中,用户的输人和主动的参与是必不可少的。如果需求没有被很好地理解,那么可以开发一个抛弃型原型来帮助澄清需求。
1.2、分析建模
开发系统的静态和动态模型。
1)静态模型:定义了问题域类之间的结构关系(类图)。对象的组织准则用来决定在分析模型中要考虑哪些对象。
2)动态模型:实现来自需求模型的用例,以显示每个用例中参与的对象以及对象间是如何交互的。对象和它们之间的交互描绘在通信图或者顺序图中。使用状态图来定义状态相关的对象。
1.3、设计建模
设计系统的软件体系结构。在此阶段中,分析模型被映射到一个运行环境。
分析模型(问题域)被映射到设计模型(解域)
子系统被视为聚合或者复合对象。
1)将分布式的子系统设计为使用消息相互通信的可配置构件
2)对于顺序系统,重点放在信息隐藏、类和继承的面向对象的概念。
3)对于并发系统的设计,如实时的、客户端/服务器(C/S)和分布式应用,考虑面向对象、并发任务的概念。
1.4、增量软件构建
基于为每次增量选择系统的一个子集构建。子集的确定是通过选择要包含在该增量中的用例和参与这些用例的对象。
增量软件构建包含该子集中类的详细设计、编码和单元测试。
这是一个分阶段的方法,软件被逐渐地构建和集成,直到整个系统构造完成。
1.5、增量软件集成
要执行每个软件增量的集成测试。
为每个用例都要开发集成测试用例。集成测试是白盒测试的一种形式,对参与每个用例的对象之间的接口都进行了测试。
1.6、系统测试
包括系统的功能测试,即针对系统的功能性需求测试系统。基于黑盒用例。
2、COMET与其他软件过程比较
可以参考【软件建模与设计】-03-软件生存周期模型和过程-CSDN博客
2.1、与RUP对比
COMET生存周期的每个阶段都对应RUP中的一个工作流。
2.2、与螺旋模型对比
在为螺旋模型的一个给定周期进行项目计划期间,
1)在项目开发象限(第三象限)中执行哪些特定的技术活动。被选中的技术活动(例如需求建模、分析建模或者设计建模)都将会在第三象限中执行。
2)在第二象限中执行的风险分析活动
3)在第四象限中执行的周期计划决定了在每个技术活动中需要多少次迭代。
3、需求、分析和设计建模
需求建模解决开发系统的功能性和非功能性需求。
分析是拆解或分解问题,以便问题能够被更好地理解;
设计是综合解决方案或组合解决方案(把解决方案放在一起)
3.1、需求建模活动
在需求模型中,系统被认为是一个黑盒。要开发用例模型。
- 用例建模
定义参与者和黑盒用例。系统的功能性需求采用用例和参与者来描述。用例描述是一个行为视图;用例之间的关系给出了一个结构视图。
- 陈述非功能性需求
对用例建模方法进行补充来陈述非功能性需求,
3.2、分析建模活动
标识问题域中的对象以及对象之间传递的信息。
有些问题要推迟到设计阶段,例如对象是主动的还是被动的,消息发送是异步的还是同步的,以及接收对象调用哪些操作等。
- 静态建模
定义特定问题的静态模型。
类是由它们的属性及其和其他类之间的关系定义的。
操作在设计模型中定义。
- 对象的组织
决定参加每个用例的对象。给出对象的组织准则,
确定系统中的软件对象:实体对象、边界对象、控制对象以及应用逻辑对象
- 动态交互建模
实现用例来显示参与每个用例的对象之间的交互。开发通信图或顺序图来显示对象如何相互通信来执行用例。
- 动态状态机建模
系统的状态相关的视图使用层次状态图来定义。每个状态相关的对象由其状态图来定义。
3.3、设计模型活动
考虑的是解域。
分析模型被映射到一个并发设计模型。设计软件体系结构,执行以下活动:
- 集成对象通信模型
开发集成的对象通信图。
- 做关于子系统结构和接口的决策
开发总体的软件体系结构。将应用组织为子系统。
- 做关于在软件体系结构中使用什么软件体系结构模式和设计模式的决策。
- 做关于类接口的决策。
、对每个子系统,设计信息隐藏类(被动类)。设计每个类的操作和每个操作的参数。
- 做关于如何将分布式应用组织为分布式子系统的决策
其中子系统被设计成为可配置的构件,并且定义构件之间的消息通信接口。
- 做关于对象特性的决策
特别是它们是主动的还是被动的。对于每个子系统,将系统组织为并发的任务(主动对象)。在任务的组织过程中,使用任务组织准则来组织任务,并定义任务的接口。
- 做关于消息特性的决策
特别是它们是同步的还是异步的(要不要回复)。体系结构通信模式
COMET强调在分析和设计过程中的特定阶段使用组织准则:
1)对象组织准则用来帮助确定系统中的对象
2)子系统组织准则用来帮助确定子系统
3)并发对象组织准则用来确定系统中并发(主动)对象。
4、设计软件体系结构
- 面向对象的软件体系结构
使用信息隐藏、类和继承的概念来描述面向对象设计。
- 客户端/服务器软件体系结构
一个典型的设计包含了一个服务器和多个客户端。
- 面向服务的体系结构
它包含了多个分布式自治服务,这些服务能被组合成分布式软件应用。
- 基于构件的分布式软件体系结构
可以在分布式配置的分布式平台上部署执行。
- 实时软件体系结构
用来处理多个输人事件流的并发体系结构。它们典型地依赖于状态,带有集中的或分散的控制。
- 软件产品线体系结构
为产品族的,需要捕获产品族中的共性和可变性。