通常,一个人员或小型团队负责一组设计元素(通常是包含其他设计元素的一个或多个包或子系统)。该人员/团队负责充实包或子系统中包含的元素的设计详细信息:完成所有操作定义和与其他设计元素的关系的定义。 任务:封装体设计侧重于根据封装体和(被动或数据)类的系统中功能的递归分解。任务:类设计侧重于优化被动类设计元素的设计,而任务:子系统设计侧重于将映射到子系统自身的行为分配给包含的设计元素(包含的封装体和类或子系统)。通常子系统主要用作粗粒度的模型组织结构,而封装体用于大批工作和“普通”类(大部分用于信息的被动存储)。
负责设计封装体的个人或团队应具有实施语言的知识,以及一般并发问题经验。负责设计被动类的个人也应具有实施语言的知识,以及该类使用的算法或技术的知识。负责子系统的个人或团队应更多才,能够决定设计元素之间适当的功能分区,并能够理解各种设计选择中涉及的内在权衡。
当优化个别设计元素时,必须优化用例实现以反映设计元素职责的演化。通常,一个人员或小型团队负责优化一个或多个相关的用例实现。添加或优化设计元素时,需要重新考虑用例实现并在它们过时时进行更新,或设计模型中的改进可以简化用例实现。负责用例实现的个人或团队应对用例所需的行为以及在设计元素之间分配该行为的不同方法的权衡有更广泛的了解。另外,因为他们负责选择将执行用例的元素,他们需要对设计元素自身的外部(公共)行为有较深的理解。
|