* 2、系统集成 系统集成的输入和结果 补充需求 用例模型 实现模型(后续的构造) 系统集成 系统集成人员 集成构造计划 设计模型 实现模型(以前的构造) * 系统集成的主要任务是为前面设计的实现模型规划后续的构造(Structure,是系统的特定组成部分,通常指系统的一个可执行版本),即按照可管理的步骤对系统进行增量构造。 规划后续构造的准则: (1)每步构造应该实现一个完整的用例,因为测试一个完整的用例比测试它的片断要容易。 (2)构造的一次迭代不能包括太多的新增构件。可用“桩”代替一些构件,使新构件的数量最小化。 (3)每个构造应以先前的构造为基础,初始的构造应该在较低的层次上开始,如中间件和系统软件层。随后逐步将构造扩展到通用应用层和专用应用层。 * 系统集成人员根据以上准则制定构造计划,构造计划为每个构造做如下描述: ? 说明在构造中要实现的功能。 ? 实现模型在哪些部分受到该构造的影响。 构件工程师可按照计划在当前的构造中实现子系统或构件,并对它们进行单元测试,然后将实现的子系统移交给系统集成人员进行集成。 如果对构造做了仔细的规划,构造集成就比较容易。通过汇集合适版本的实现子系统和构件,对它们进行编译、链接,就可以得到一个构造。在后续的构造创建之前,对前面的每个构造进行集成测试。这样可尽早地产生系统的一个可执行版本并尽早地发现系统级的错误。 * 实现一个子系统的输入和结果 集成构造计划 设计子系统 实现子系统 接口 实现一个子系统 构件设计师 接口 (为某个构造而实现) (为某个构造而实现) 构架描述 (实现模型视图) (已完成设计) (已完成设计) 3、实现一个子系统 目的是确保一个子系统履行它在每个构造中的角色。 * 《设计子系统》 《实现子系统》 《文件》 《文件》 设计模型 实现模型 《跟踪》 当前构造所需要的类 虽然子系统的内容在设计时确定,随着实现模型的进一步完善,子系统仍需要包括以下两方面的精化: (1)当前构造所需要的设计子系统内的每个类应该由实现子系统中的构件来实现。 通过构件来实现在某个构造中所需的设计类 * (2)当前构造所需要的设计子系统所提供的每个接口也应该由实现子系统提供,即实现子系统必须包含提供该接口的构件。实现接口的构件必须实现接口所定义的全部操作。 《设计子系统》 《实现子系统》 《文件》 《文件》 设计模型 实现模型 《跟踪》 当前构造所需的接口β 实现子系统提供 β 该构件实现接口β * 4、实现一个类 目的是实现构件中的设计类。一个构件可能有多个设计类和接口。 实现一个类的输入和结果 实现一个类 构件设计师 接口 (已完成设计) (由设计类提供) 设计类 构件 (已实现) * 本活动包含下列任务: (1) 建立文件构件 由于实现设计类的源代码存放在文件构件中,因此必须创建文件构件并考虑其作用域。在一个文件中存放几个设计类是很正常的,但应注意使用的语言和平台对文件构件的限制。如,使用Java语言时,要求为每个类创建一个“. Java”格式的文件构件。 (2)将设计类及其关系生成源代码 设计人员根据设计类的属性定义、操作算法说明和接口说明(这些已经用自然语言或伪码描述了)生成设计类的源代码。对于类的关联和聚合的实现方法取决于所用的编程语言。如用“引用”实现关联,这个引用将作为引用对象的一个属性,属性名就是关联另一端的角色名。关联另一端的重数决定属性类型是一个简单指针或是一个指针集合。 * (3)实现设计类的操作 设计类中的每一个操作都应该实现,如果操作是抽象的,这个操作应该由该类的子类来实现。 操作的实现一般用术语“方法”表示。在实际存在的文件构件中,方法定义的实例有:Java中的method、Visual Basic中的method、C++中的member function。 实现设计类的操作包括选择合适的算法和支持的数据结构,这些在设计阶段用自然语言或伪码描述了,实现阶段只是将它们翻译为源代码。 (4) 确保构件提供与它所实
原创力文档

文档评论(0)