UML 语言对构件设计和描述没有明确的支持。
采用UML中的面向对象标记只能描述方法调用的交互类型,无法描述构件之间多样的连接类型;而且它们还不支持构件的层次结构的描述、系统族的定义等。
本文的后几节打算按以下几部分进行描述。第2节分析软件生产线的可变点问题,然后提供一种可变点描述方法。第3节描述基于可重用构件的软件生产线描述方法。第4节对本文工作进行了总结和展望。
软件生产线的可变点
软件生产线的体系结构
稳定而不失灵活性的体系结构是一个成功的软件生产线的基础。体系结构描述了软件产品线应用领域的业务体系结构共性和个性、支持该业务体系结构的信息体系结构、应用体系结构和技术体系结构。软件生产线为获得体系结构的重用,必须依据"低耦合、高内聚"的原则,设计能够适应变更的体系结构,这就要求在捕获需求时使用域分析的方法,对历史和前景进行分析(历史分析用于总结该类系统需求的不变点和可变点,前景分析用来预测系统需求今后可能发生的变化),得到不变和可变的功能需求和质量场景。从体系结构的各个侧面来看,变更对体系结构影响的程度从大到小依次为业务、位置、技术、组织、信息和应用。要特别注意对族体系结构可变点的实现。详细设计的方案应使含有可变点的构件尽可能灵活地适应可变点的变化,提高构件的可重用性。
软件生产线的可变点分析
关于软件生产线的可变点描述,我们将以ERP软件的"库存子系统"为实例详细阐述。
对于单个应用系统而言,其可变点可以通过UML建模来实现。可变点可以作为类的属性来实现,例如:仓库中的某项器材的库存数量经常处于变动之中,这样我们可以为器材类添加一个"库存数量"的属性。可变点还可以通过继承的方式来实现,由同一父类派生出多个子类,每个子类完成特定的功能。这些都是标准UML语言可以支持的。
对于软件生产线,它的可变点存在于从需求分析直到设计、实现的各个阶段。例如:两个制造企业都要完成器材的出入库的功能,但是,某个企业在器材入合格库之间需要首先进入待验库,而另一个企业则无需经过器材检验的步骤。这种系统层的可变点通过标准UML语言无法实现。软件生产线的可变点描述既要实现同一产品族系统的集成,又要清晰地表现同一产品族内单个系统之间的可变性。