Structural model#
- class besser.BUML.metamodel.structural.structural.Association(name: str, ends: set[Property])[source]#
Bases:
NamedElement
Represents an association between classes.
An Association defines a relationship between classes and is composed of two or more ends, each associated with a class. An association must have more than one end.
- Parameters:
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.AssociationClass(name: str, attributes: set[Property], association: Association)[source]#
Bases:
Class
An AssociationClass is a class that that has an association nature. It inherits from Class and is associated with an underlying Association.
- Parameters:
name (str) – The name of the association class.
attributes (set[Property]) – The set of attributes associated with the association class.
association (Association) – The underlying association linked to the association class.
- attributes#
Inherited from Class, represents the set of attributes associated with the association class.
- association#
The underlying association linked to the association class.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property association: Association#
Get the underlying association of the association class.
- Type:
- class besser.BUML.metamodel.structural.structural.BinaryAssociation(name: str, ends: set[Property])[source]#
Bases:
Association
Represents a binary association between two classes.
A BinaryAssociation is a specialized form of Association that specifically involves two ends, each associated with a class. It enforces constraints on the association, such as having exactly two ends. Exactly two ends are required
- Parameters:
- ends#
Inherited from NamedElement, represents the set of ends related to the binary association.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.Class(name: str, attributes: set[Property], is_abstract: bool = False, is_read_only: bool = False)[source]#
Bases:
Type
Represents a class in a modeling context.
A Class is a type that defines a blueprint for objects. It can have attributes, associations, and generalizations with other classes.
- Parameters:
- __associations#
Set of associations involving the class.
- Type:
- __generalizations#
Set of generalizations involving the class.
- Type:
- _abc_impl = <_abc._abc_data object>#
- _add_association(association)[source]#
Association: Add an association to the set of class associations.
- _add_generalization(generalization)[source]#
Generalization: Add a generalization to the set of class generalizations.
- _delete_association(association)[source]#
Association: Remove an association to the set of class associations.
- _delete_generalization(generalization)[source]#
Generalization: Remove a generalization to the set of class generalizations.
- add_attribute(attribute: Property)[source]#
Property: Add an attribute to the set of class attributes.
- Raises:
ValueError – if the attribute name already exist.
- all_association_ends() set[Property] [source]#
set[Property]: Get the set of direct and indirect association ends of the class.
- all_attributes() set[Property] [source]#
set[Property]: Get all attributes, including inherited ones.
- all_specializations() set [source]#
set[Class]: Get the set of direct and indirect specializations (children) of the class.
- class besser.BUML.metamodel.structural.structural.Constraint(name: str, context: Class, expression: Any, language: str)[source]#
Bases:
NamedElement
A Constraint is a statement that restricts or defines conditions on the behavior, structure, or other aspects of the modeled system.
- Parameters:
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.DataType(name: str)[source]#
Bases:
Type
Represents a data type.
This class inherits from NamedElement and is used to model data types.
- Parameters:
name (str) – The name of the data type.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.DomainModel(name: str, types: set[Type] = None, associations: set[Association] = None, generalizations: set[Generalization] = None, enumerations: set[Enumeration] = None, packages: set[Package] = None, constraints: set[Constraint] = None)[source]#
Bases:
Model
A domain model comprises a number of types, associations, generalizations, packages, constraints, and others.
- Parameters:
name (str) – The name of the domain model.
types (set[Type]) – The set of types (classes and datatypes) in the domain model.
associations (set[Association]) – The set of associations in the domain model.
generalizations (set[Generalization]) – The set of generalizations in the domain model.
enumerations (set[Enumeration]) – The set of enumerations in the domain model.
packages (set[Package]) – The set of packages in the domain model.
constraints (set[Constraint]) – The set of constraints in the domain model.
- associations#
The set of associations in the domain model.
- Type:
- generalizations#
The set of generalizations in the domain model.
- Type:
- enumerations#
The set of enumerations in the domain model.
- Type:
- constraints#
The set of constraints in the domain model.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property associations: set[Association]#
Get the set of associations in the domain model.
- Type:
- classes_sorted_by_inheritance() list[Class] [source]#
list[Class]: Get the list of classes ordered by inheritance.
- property constraints: set[Constraint]#
Get the set of constraints in the domain model.
- Type:
- property enumerations: set[Enumeration]#
Get the set of enumerations in the domain model.
- Type:
- property generalizations: set[Generalization]#
Get the set of generalizations in the domain model.
- Type:
- class besser.BUML.metamodel.structural.structural.Element[source]#
Bases:
ABC
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.Enumeration(name: str, literals: set[EnumerationLiteral])[source]#
Bases:
DataType
Class representing an enumeration.
This class is a subclass of DataType and is used to represent enumerations with a specified name and a set of enumeration literals.
- Parameters:
name (str) – the name of the enumeration data type.
literals (set[EnumerationLiteral]) – set of enumeration literals associated with the enumeration.
- literals#
Represents a set of enumeration literals associated with the enumeration.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property literals: set[EnumerationLiteral]#
Get the set of literals.
- Type:
- class besser.BUML.metamodel.structural.structural.EnumerationLiteral(name: str, owner: DataType)[source]#
Bases:
NamedElement
Class representing an enumeration literal.
This class is a subclass of NamedElement and is used to represent individual literals within an enumeration.
- Parameters:
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.Generalization(general: Class, specific: Class)[source]#
Bases:
Element
Represents a generalization relationship between two classes.
A Generalization is a relationship between two classes, where one class (specific) inherits attributes and behaviors from another class (general).
- Parameters:
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.GeneralizationSet(name: str, generalizations: set[Generalization], is_disjoint: bool, is_complete: bool)[source]#
Bases:
NamedElement
Represents a set of generalization relationships.
- Parameters:
name (str) – The name of the generalization set.
generalizations (set[Generalization]) – The set of generalization relationships in the set.
is_disjoint (bool) – Indicates whether the set is disjoint (instances cannot belong to more than one class in the set).
is_complete (bool) – Indicates whether the set is complete (every instance of the superclass must belong to a subclass).
- generalizations#
The set of generalization relationships in the set.
- Type:
- is_disjoint#
Indicates whether the set is disjoint (instances cannot belong to more than one class in the set).
- Type:
- is_complete#
Indicates whether the set is complete (every instance of the superclass must belong to a subclass).
- Type:
- _abc_impl = <_abc._abc_data object>#
- property generalizations: set[Generalization]#
Get the generalization relationships.
- Type:
- class besser.BUML.metamodel.structural.structural.Model(name: str)[source]#
Bases:
NamedElement
A model is the root element. A model is the root element. There are different types of models that inherit from this class. For example, DomainModel, ObjectModel, or GUIModel.
- Parameters:
name (str) – The name of the model.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.Multiplicity(min_multiplicity: int, max_multiplicity: int)[source]#
Bases:
object
Represents the multiplicity of a Property.
It consists of a minimum and maximum value, indicating the allowed range.
- Parameters:
- class besser.BUML.metamodel.structural.structural.NamedElement(name: str, visibility: str = 'public')[source]#
Bases:
Element
The NamedElement is the Superclass of all structural elements with a name.
- Parameters:
name (str) – the name of the named element
visibility – Determines the kind of visibility of the named element (public as default).
- visibility#
Determines the kind of visibility of the named element (public as default).
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.Package(name: str, classes: set[Class])[source]#
Bases:
NamedElement
A Package is a grouping mechanism that allows organizing and managing a set of classes.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.PrimitiveDataType(name: str)[source]#
Bases:
DataType
Class representing a primitive data type.
This class is a subclass of DataType and is used to represent primitive data types with a specified name.
- Parameters:
name (str) – the name of the primitive data type.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.Property(name: str, type: Type, owner: Type = None, multiplicity: Multiplicity = Multiplicity(1, 1), visibility: str = 'public', is_composite: bool = False, is_navigable: bool = True, is_id: bool = False, is_read_only: bool = False)[source]#
Bases:
TypedElement
A property can represents an attribute of a class or an end of an association.
Properties are owned by a class or an association.
- Parameters:
name (str) – The name of the property.
type (Type) – The type of the property.
owner (Type) – The type that owns the property.
multiplicity (Multiplicity) – The multiplicity of the property.
visibility (str) – The visibility of the property (‘public’, ‘private’, etc.).
is_composite (bool) – Indicates whether the property is a composite.
is_navigable (bool) – Indicates whether the property is navigable in a relationship.
is_id (bool) – Indicates whether the property is an id.
is_read_only (bool) – Indicates whether the property is read only.
- multiplicity#
The multiplicity of the property.
- Type:
Indicates whether the property is navigable in a relationship.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property multiplicity: Multiplicity#
Get the multiplicity of the property.
- Type:
- class besser.BUML.metamodel.structural.structural.Type(name: str)[source]#
Bases:
NamedElement
Type is the Superclass of classes and data types in the model.
- Parameters:
name (str) – the name of the Type.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.structural.structural.TypedElement(name: str, type: Type, visibility: str = 'public')[source]#
Bases:
NamedElement
TypedElement is a subclass of NamedElement and is used to represent elements that have a specific type.
- Parameters:
- visibility#
Inherited from NamedElement, represents the visibility of the typed element.
- _abc_impl = <_abc._abc_data object>#